Anda di halaman 1dari 17

MAKALAH

SISTEM TERDISTRIBUSI
Thread, Clien-Server dan Agent


DAFTAR ISI
1. Pendahuluan
1.1. Definisi Sistem Terdistribusi
1.2. Karakteristik Sistem Terdistribusi
1.3. Model Sistem Terdistribusi
1.4. Permasalahan Sistem Terdistribusi
1.5. Tantangan Sistem Terdistribusi
2. Pengertian Thread
2.1. Kegunaan Thread
2.2. Karakteristik Thread
2.3. Implementasi Thread
3. Pengertian Client Server
3.1. Multiple Server Model
3.2. Proxy Server Model
3.3. Mobile Code Model
3.4. Implementasi
4. Pengertian Agent
5. Kesimpulan


1. Pendahuluan
Definis Sistem Terdistribusi
Sistem terdistribusi adalah sebuah sistem yang komponennya berada pada
jaringan komputer. Komponen tersebut saling berinteraksi dan melakukan
koordinasi hanya dengan pengiriman pesan (message passing).
Sistem terdistribusi merupakan kebalikan dari Sistem Operasi Prosessor
jamak. Pada sistem tersebut, setiap prosessor memiliki memori lokal tersendiri.
Kumpulan prosesor saling berinteraksi melalui saluran komunikasi seperti LAN
dan WAN menggunakan protokol standar seperti TCP/IP. Karena saling
berkomunikasi, kumpulan prosesor tersebut mampu saling berbagi beban kerja,
data, serta sumber daya lainnya.
Dalam penggunaanya sistem terdistribus sangat diperlukan karena :
Performance
Sekumpulan prosesor dapat menyediakan kinerja yang lebih tinggi
daripada komputer terspusat
Distribution
Banyak aplikasi yang terlibat, sehingga lebih baik jika dipisah dalam
mesin yang berbeda
Reliability
Jika terjadi kerusakan pada salah satu mesin, tidak akan mempengaruhi
kinerja sistem secara keseluruhan
Incremental growht
Mesin baru dapat ditambah jika kebutuhan proses meningkat
Sharing data/resoursce
Resource adalah :
- Segala hal yang dapat digunakan bersama dalam jaringan komputer
- Meliputi hardware dan juga software
Communication
Menyediakan fasilitas komunikasi antar manusia


Karakter Sistem Terdistribusi
Dalam sistem terdistribusi terdapat beberapa karakteristik yaitu :
a. No block clock
Terdapat batasan pada ketepatan proses sinkronisasi clock pada sistem
terdistribusi, oleh karena asynchronous message passing
Pada sistem terdistribusi, tidak ada satu proses tunggal yang mengetahui
global state sistem saat ini (disebabkan oleh concurrency dan message
passing).
b. Independent fauilure
Kemungkinan adanya kegagalan proses tunggal yang tidak diketahui
Proses tunggal mungkin tidak peduli pada kegagalan sistem keseluruhan
c. Concurrency of component
Beberapa pemakai browser mengakses suatu halaman web secara
bersamaan

Model Sistem Terdistribusi
Dalam pelaksanaannya sistem terdistribusi memiliki berbagai bentuk (model),
yaitu :
1. Sistem Client Server
Merupakan bagian dari model sistem terdistribusi yang berbagi jaringan
berdasarkan pemberian dan penerima jasa layanan. Pada sebuah jaringan akan
didapatkan : file server, time server, directory server, printer serverI, dan
seterusnya.

2. Sistem Point to point
Merupakan bagian dari model sistem terdistribusi dapat sekaligus
berfungsi sebagai client maupun server

3. Sistem TerKluster
Adalah gabungan dari beberapa sistem individual yang dikumpulkan pada
suatu lokasi, saling berbagi tempat penyimpanan data dan saling terhubung
dengan jaringan local (LAN). Dalam sistem Kluster memiliki persamaan dengan
sistem paralel dalam hal menggabungkan beberapa CPU untuk meningkatkan
komputasi. Jika salah satu mesin mengalami masalah dalam menjalankan tugas
maka mesin lain dapat mengambil alih pelaksanaan tugas itu.
Dalam hal jaringan, sistem kluster mirip dengan sistem terdistribusi
(distributed systems). Bedanya, jika jaringa pada sistem terdistribusi melingkupi
komputer-komputer yang lokasinya tersebar maka jaringan pada sistem kluster
menghubungkan banyak komputer yang dikumpulkan dalam satu tempat.

Permasalahan Sistem Terdistribusi
Masalah dengan terdistribusi yang dapat dimunculkan antara lain berkaitan
dengan :
Software bagaimana merancang dan mengatur software dalam Distribusi
sistem
Ketergantungan pada infrastruktur jaringan
Kemudahan akses data ke data yang di share, memunculkan masalah
keamanan.
Dalam setiap penggunaan suatu sistem, banyak sekali ditemui permasalahan
permasalahan yang muncul, begitu juga dengan sistem terdistribusi.
Tantangan Sistem Terdistribusi
Tantangan yang ada dalam sistem terdistribusi yaitu :
Heterogen komponen
Keterbukaan
Keamanan
Scalability
Penangan kegalan
Concurency of components
Transparansi

2. Pengertian Thread
Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang
multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang
sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian
sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari
arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer
dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah
library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem
operasi. Secara umum, user level thread lebih cepat dalam pembuatan dan pengelolaan
dari pada kernel thread.
Ada tiga perbedaan tipe dari model yang berhubungan dengan user dan kernel
thread.
Model many to one: memetakan beberapa user level thread hanya ke satu
buah kernel thread.
Model one to one: memetakan setiap user thread ke dalam satu kernel
thread. Berakhir.
Model many to many: mengizinkan pengembang untuk membuat user
thread sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya
satu thread yang dapat dijadualkan oleh kernel dalam satu waktu.
Multi Thread Proses
Benefit / manfaat :
Kemampuan dan reaksi
Sumber daya energi
Ekonomi
Scalabilitas
Thread bermanfaat untuk Multithreading yang berguna untuk Multiprocessor dan
Singleprocessor. Kegunaan untuk system Multiprocessor, adalah :
a) Sebagai unit pararel atau tingkat granularitas pararelisme.
b) Peningkatan kinerja disbanding berbasis proses.
Kegunaan Multithreading pada Singleprocessor, adalah :
a) Kerja foreground dan background sekaligus di satu aplikasi.
b) Penanganan asynchronous processing menjadi lebih baik.
c) Mempercepat eksekusi program.
d) Pengorganisasian program menjadi lebih baik.


Kegunaan Thread
Multithreading berguna untuk multiprocessor dan singleprocessor.
Kegunaan untuk sistem multiprocessor:
Sebagai unit paralel atau tingkat granulitas pararelisme
Peningkatan kinerja disbanding berbasis proses


Karakteristik Thread
Proses merupakan lingkungan eksekusi bagi thread-thread yang dimilikinya.
Thread-thread di satu proses memakai bersama sumber daya yang dimiliki proses,
yaitu :
Ruang alamat
Himpunan berkas yang dibuka
Proses-proses anak
Timer-timer
Sinyal-sinyal
Sumber daya sumber daya lain milik proses


Implementasi Paket Thread
a) Thread level kernel
Keunggulan:
Memudahkan koordinasi multithread seperti proses server
Tidak seboros kumpulan proses tradisional

kelemahan :
operasi manajemen thread sangat lebih boros
kernel harus menyediakan semua feature
b) Thread level pemakai
Keunggulan :
Kinerja luarbiasa bagus dibanding thread level kernel
Tidak diperlukan modifikasi kernel
Fleksibilitas tinggi

Kelemahan :
Tidak manfaatkan multiprosessor
Untuk aplikasi keterlibatan kernel yang kecil
Mengharuskan non bloking system call


3. Pengertian Client Server
Client merupakan sembarang sistem atau proses yang melakukan suatu permintaan
data atau layanan ke server sedangkan server ialah, sistem atau proses yang menyediakan
data atau layanan yang diminta oleh client.
Client-Server adalah pembagian kerja antara server dan client yg mengakses server dalam
suatu jaringan. Jadi arsitektur client-server adalah desain sebuah aplikasi terdiri dari client
dan server yang saling berkomunikasi ketika mengakses server dalam suatu jaringan.
Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa
perbedaan karakteristik yaitu :

Servis (layanan)


Hubungan antara proses yang berjalan pada mesin yang berbeda


Pemisahan fungsi berdasarkan ide layanannya


Server sebagai provider, client sebagai konsumen
Sharing resources (sumber daya)

Server bisa melayani beberapa client pada waktu yang sama, dan meregulasi
akses bersama untuk share sumber daya dalam menjamin konsistensinya.





Asymmetrical protocol (protokol yang tidak simetris )

Many-to-one relationship antara client dan server. Client selalu menginisiasikan
dialog melalui layanan permintaan, dan server menunggu secara pasif request dari
client.

Transparansi lokasi

Proses yang dilakukan server boleh terletak pada mesin yang sama atau pada
mesin yang berbeda melalui jaringan.Lokasi server harus mudah diakses dari client.

Mix-and-Match
Perbedaan server client platforms

Pesan berbasiskan komunikasi

Interaksi server dan client melalui pengiriman pesan yang menyertakan
permintaan dan jawaban.

Pemisahan interface dan implementasi

Server bisa diupgrade tanpa mempengaruhi client selama interface pesan yang
diterbitkan tidak berubah.

Client Server System

Client / Server Application


3.1. Multiple Server Model

Servis disediakan oleh beberapa server
Contoh : serbagian besar layanan web komersial diterapkan melalui server fisik
yang berbeda.
kehandalan
server menggunakan replikasi atau database terdistribusi
3.2. Proxy Server Model

Proxy server menyediakan hasil copy (replikasi) dari resource yang diatur
oleh server lain. Biasanya proxy server dipakai untuk menyimpan hasil copy web
resources. ketika client melakukan request ke server, hal pertama yang dilakukan
adalah memeriksa proxy server apakah yang diminta oleh client terdapat pada
proxy server.
Proxy server dapat diletakan pada setiap client atau dapat dipakai bersama oleh
beberapa client. Tujuannya adalah meningkatkan performance dan availibity
dengan mencagah frekuensi akses server.
Proxy server membuat duplikasi beberapa server yang diakses oleh client.
Caching :
- penyimpanan lokal untuk item yang sering diakses
- meningkatkan kinerja
- mengurangi beban pada server
- wajib digunakan pada search engine
Contoh model proxy server : searching satu topik namun dilakukan dua kali maka
searching terakhir memiliki waktu yang lebuh kecil.
3.3. Mobile Code
Kode yang berpindah dan dijalankan pada komputer yang berbeda.
Contoh : Applet.

3.4. Implementasi Clien-Server
Aplikasi pesan, misalnya surat elektronis (email)
Penyebaran basis data pada beberapa jaringan komputer
Memungkinkan berbagi berkas atau periferal atau pengaksesan komputer
melalui jarak jauh
Pemrosesan aplikasi yang intensif dengan suatu pekerjaan (job) dibagi menjadi
tugas-tugas (task) yang masing-masing dilaksanakan pada komputer yang
berbeda

4. Pengertian Agent
Menurut Nwana, konsep agent sudah dikenal lama dalam bidang AI, tepatnya
dikenalkan oleh seorang peneliti bernama Carl Hewitt dengan concurrent actor model-
nya pada tahun 1977. Dalam modelnya Hewitt mengemukakan teori tentang suatu obyek
yang yang dia sebut actor, yang mempunyai karakteristik menguasai dirinya sendiri,
interaktif, dan bisa merespon pesan yang datang dari lain obyek sejenis. Dari berbagai
penelitian berhubungan dengan hal diatas, kemudian lahirlah cabang ilmu besar yang
merupakan turunan dari AI yaitu Distributed Artificial Intelligence (DAI), yang antara
lain membawahi bidang penelitian, Distributed Problem Solving (DPS), Parallel
Artificial Intelligence (PAI), dan Multi Agent System (MAS).
Masa ini terkenal dengan masa generasi pertama penelitian software agent, yaitu
periode 1970-1990. Pada umumnya konsentrasi penelitian pada periode ini tertuju ke
arah: pemodelan internal agent secara simbolik, isu-isu makro mengenai interaksi,
koordinasi, dan komunikasi antar agent dalam kerangka MAS. Tujuan utamanya adalah
untuk menganalisa, mendesain, dan mengintegrasikan system dalam kerangka agent yang
bisa berkolaborasi satu dengan yang lain. Berbagai macam penelitian yang dilakukan
pada generasi pertama (1970-1990) itu terangkum secara lengkap dan terorganisir dengan
baik dalam buku-buku yang dieditori oleh Bond dan Gasser, Gasser dan Huns, dan
Chaib-draa.
Di dalam kamus Websters New World Dictionary [Guralnik, 1983], agent
didefinisikan sebagai:
Agent mempunyai kemampuan untuk melakukan suatu tugas/pekerjaan.
Agent melakukan suatu tugas/pekerjaan dalam kapasitas untuk sesuatu,
atau untuk orang lain.

Karakteristik Agent
Untuk memperdalam pemahaman tentang software agent, fungsi, peran, dan
perbedaan mendasar dikaitkan software program yang ada, berikut ini akan dijelaskan
tentang beberapa atribute dan karakteristik yang dimiliki oleh software agent. Tentu
tidak semua karakteristik dan atribut terangkum dalam satu agent. Pada hakekatnya
daftar karakteristik dan atribut dibawah adalah merupakan hasil survey dari
karakteristik yang dimiliki oleh agent-agent yang ada pada saat ini.

1. Autonomy:
Agent dapat melakukan tugas secara mandiri dan tidak dipengaruhi secara
langsung oleh user, agent lain ataupun oleh lingkungan (environment). Untuk
mencapai tujuan dalam melakukan tugasnya secara mandiri, agent harus memiliki
kemampuan kontrol terhadap setiap aksi yang mereka perbuat, baik aksi keluar
maupun kedalam. Dan satu hal penting lagi yang mendukung autonomy adalah
masalah intelegensi (intelligence) dari agent.

2. Intelligence, Reasoning, dan Learning:
Setiap agent harus mempunyai standar minimum untuk bisa disebut agent, yaitu
intelegensi (intelligence). Dalam konsep intelligence, ada tiga komponen yang
harus dimiliki: internal knowledge base, kemampuan reasoning berdasar pada
knowledge base yang dimiliki, dan kemampuan learning untuk beradaptasi dalam
perubahan lingkungan.

3. Mobility dan Stationary:
Khusus untuk mobile agent, dia harus memiliki kemampuan yang merupakan
karakteristik tertinggi yang dia miliki yaitu mobilitas. Berkebalikan dari hal
tersebut adalah stationary agent. Bagaimanapun juga keduanya tetap harus
memiliki kemampuan untuk mengirim pesan dan berkomunikasi dengan agent
lain.



4. Delegation:
Sesuai dengan namanya dan seperti yang sudah kita bahas pada bagian definisi,
agent bergerak dalam kerangka menjalankan tugas yang diperintahkan oleh user.
Fenomena pendelegasian (delegation) ini adalah karakteristik utama suatu
program disebut agent.

5. Reactivity:
Karakteristik agent yang lain adalah kemampuan untuk bisa cepat beradaptasi
dengan adanya perubahan informasi yang ada dalam suatu lingkungan
(enviornment). Lingkungan itu bisa mencakup: agent lain, user, adanya informasi
dari luar, dsb.

6. Proactivity dan Goal-Oriented:
Sifat proactivity boleh dikata adalah kelanjutan dari sifat reactivity. Agent tidak
hanya dituntut bisa beradaptasi terhadap perubahan lingkungan, tetapi juga harus
mengambil inisiatif langkah penyelesaian apa yang harus diambil. Untuk itu agent
harus didesain memiliki tujuan (goal) yang jelas, dan selalu berorientasi kepada
tujuan yang diembannya (goal-oriented).

7. Communication and Coordination Capability:
Agent harus memiliki kemampuan berkomunikasi dengan user dan juga agent
lain. Masalah komunikasi dengan user adalah masuk ke masalah user interface
dan perangkatnya, sedangkan masalah komunikasi, koordinasi, dan kolaborasi
dengan agent lain adalah masalah sentral penelitian Multi Agent System (MAS).
Bagaimanapun juga untuk bisa berkoordinasi dengan agent lain dalam
menjalankan tugas, perlu bahasa standard untuk berkomunikasi. Tim Finin dan
Yannis Labrou adalah peneliti software agent yang banyak berkecimpung dalam
riset mengenai bahasa dan protokol komunikasi antar agent. Salah satu produk
mereka adalah Knowledge Query and Manipulation Language (KQML).
Kemudian masih berhubungan dengan ini komunikasi antar agent adalah
Knowledge Interchange Format (KIF).


Klasifikasi Software Agent

A. Teknik klasifikasi agent menurut karakteristik dipelopori oleh Nwana. Menurut
Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada
karakteristiknya.


1. Collaborative Agent:
Agent yang memiliki kemampuan melakukan kolaborasi dan koordinasi
antar agent dalam kerangka Multi Agent System (MAS).

2. Interface Agent:
Agent yang memiliki kemampuan untuk berkolaborasi dengan user,
melakukan fungsi monitoring dan learning untuk memenuhi kebutuhan
user.

3. Mobile Agent:
Agent yang memiliki kemampuan untuk bergerak dari suatu tempat ke
tempat lain, dan secara mandiri melakukan tugas ditempat barunya
tersebut, dalam lingkungan jaringan komputer.

4. Information dan Internet Agent:
Agent yang memiliki kemampuan untuk menjelajah internet untuk
melakukan pencarian, pemfilteran, dan penyajian informasi untuk user,
secara mandiri. Atau dengan kata lain, memanage informasi yang ada di
dalam jaringan Internet.

5. Reactive Agent:
Agent yang memiliki kemampuan untuk bisa cepat beradaptasi dengan
lingkungan baru dimana dia berada.

6. Hybrid Agent:
Kita sudah mempunyai lima klasifikasi agent. Kemudian agent yang
memiliki katakteristik yang merupakan gabungan dari karakteristik yang
sudah kita sebutkan sebelumnya adalah masuk ke dalam hybrid agent.

7. Heterogeneous Agent System:
Dalam lingkungan Multi Agent System (MAS), apabila terdapat dua atau
lebih hybrid agent yang memiliki perbedaan kemampuan dan karakteristik,
maka sistem MAS tersebut kita sebut dengan heterogeneous agent system.


B. Klasifikasi Software menurut Lingkungan Dijalankan

1. Desktop Agent:
Agent yang hidup dan bertugas dalam lingkungan Personal Computer
(PC), dan berjalan diatas suatu Operating System (OS). Termasuk dalam
klasifikasi ini adalah:
o Operating System Agent
o Application Agent
o Application Suite Agent

2. Internet Agent:
Agent yang hidup dan bertugas dalam lingkungan jaringan Internet,
melakukan tugas memanage informasi yang ada di Internet. Termasuk
dalam klasifikasi ini adalah:

o Web Search Agent
o Web Server Agent
o Information Filtering Agent
o Information Retrieval Agent
o Notification Agent
o Service Agent
o Mobile Agent

3. Intranet Agent:
Agent yang hidup dan bertugas dalam lingkungan jaringan Intranet,
melakukan tugas memanage informasi yang ada di Intranet. Termasuk
dalam klasifikasi ini adalah:

o Collaborative Customization Agent
o Process Automation Agent
o Database Agent
o Resource Brokering Agent


Bidang ilmu penelitian yang terkain dengan Software Agent

Sudah menjadi hal yang diketahui umum bahwa masalah learning, intelligence,
dan juga proactivity serta reactivity adalah bidang garapan AI klasik. Kemudian
penelitian dalam bidang DAI pada umumnya adalah berkisar ke masalah koordinasi,
komunikasi dan kerjasama (cooperation) antar agent dalam Multi Agent System
(MAS). Dengan perkembangan penelitian di bidang distributed network dan
communication system, membawa peran penting dalam mewujudkan agent yang
mempunyai kemampuan mobilitas dan komunikasi dengan agent lain.
Pesatnya perkembangan penelitian tentang software agent tak lepas dari pengaruh
bidang ilmu psikologi yang banyak mengupas agent secara teori dan filosofi,
kemudian juga software engineering yang berperan dalam menyediakan metodologi
analisa dan desain, serta implementasi dari software agent. Dan yang terakhir adalah
bidang decision theory dengan kupasan tentang bagaimana agent harus menentukan
strategi dalam menjalankan tugas secara mandiri (autonomously).

Bahasa Pemrograman
Pada bagian ini akan dibahas tentang bahasa pemrograman yang banyak
dipakai untuk tahap implementasi dari software agent. Bagaimanapun juga setiap
bahasa pemrograman memiliki karakteristik sendiri sesuai dengan paradigma
pemrograman yang dia anut. Sehingga pemakaian bahasa permrograman yang kita
pakai akan menentukan keberhasilan dalam implementasi agent sesuai yang kita
harapkan.
Beberapa peneliti memberikan petunjuk tentang bagaimana karakteristik bahasa
pemrorgaman yang sebaiknya kita pakai. Petunjuk-petunjuk tersebut adalah:

1. Object-Orientedness:
Karena agent adalah berhubungan dengan obyek, bahkan beberapa peneliti
menganggap agent adalah obyek yang aktif, maka bagaimanapun juga agent harus
diimplementasikan kedalam pemrorgaman yang berorientasi obyek (object-
oriented programming language).

2. Platform Independence:
Seperti sudah dibahas pada bagian sebelumnya, bahwa agent hidup dan berjalan
diatas berbagai lingkungan. Sehingga idealnya bahasa pemrograman yang dipakai
untuk implementasi adalah yang terlepas dari platform, atau dengan kata lain
program tersebut harus bisa dijalankan di platform apapun (platform
independence).

3. Communication Capability:
Pada saat berinteraksi dengan agent lain dalam suatu lingkungan jaringan
(network environment), tentu saja diperlukan kemampuan untuk melakukan
komunikasi secara fisik. Sangat lebih baik seandaianya bahasa pemrograman
mensupport pemrograman untuk network dan komunikasinya.



4. Security:
Faktor keamanan (security) juga hal yang harus diperhatikan dalam memilih
bahasa pemrorgaman untuk implementasi software agent. Terutama untuk mobil
agent, diperlukan bahasa pemrograman yang mensupport level-level keamanan
yang bisa membuat agent bergerak dengan aman.

5. Code Manipulation:
Beberapa aplikasi software agent memerlukan manipulasi kode program secara
runtime. Bahasa pemrograman untuk software agent sebaiknya juga harus bisa
memberikan support terhadap masalah ini.


5. Kesimpulan

Pada makalah ini telah dibahas tentang Sistem Terdistribusi baik dalam tinjauan
teori maupun praktis, dan juga telah dijelaskan secara mendetail tentang aplikasi dari
teknologi software agent diberbagai bidang, Thread & Client Server . Salah satu tujuan
dari makalah ini adalah memberi penjelasan secara global Sistem Terdistribusi, dimulai
dari penjelasan tentang sejarah, definisi, dan karakteristik.

Daftar Pustaka
http://deris.unsri.ac.id/materi/sist_terd/Overview.pdf
http://te.ugm.ac.id/~risanuri/distributed/ringk/Bab01_02.pdf
http://romisatriawahono.net
http://dunovteck.wordpress.com/2011/06/07/client-server/
http://bennot347.blogspot.com/2013/05/sistem-terdistribusi.html
http://pranaprayudha.blogspot.com/2013/04/sistem-terdistribusi-agent.html
ikc.dinus.ac.id/umum/romi/romi-agent.doc
http://www.scribd.com/doc/46591625/Bab-3-Proses
budi.insan.co.id/courses/ec7010/2003/report-bambang-revisi.doc

Anda mungkin juga menyukai