PENGENALAN SISTEM TERDISTRIBUSI
1.1.
Definisi dan contoh Sistem Terdistribusi
Sistem Terdistribusi terdiri dari dua kata yaitu “Sistem”
dan “Terdistribusi”. Sistem terdistribusi merupakan sekumpulan elemen yang
saling berhubungan satu dengan yang lainnya dan membentuk satu kesatuan untuk
menyelesaikan satu tujuan yang spesifik atau menjalangkan sperangkat fungsi.
Adapun terdistribusi berasal dari kata “distribusi” yang merupakan lawan kata
“sentralisasi” yang artinya penyebaran, sirkulasi, penyerahan, pembagian
menjadi bagian-bagian kecil.
Contoh Sistem Terdistribusi :
- Intranet Jaringan (proprietary)
yang teradministrasi secara lokal dan dapat terhubung ke internet melalui
firewall juga adanya layanan internal dan eksternal didalamnya.
- Internet Jaringan global yang
menghubungkan komputer satu sama lain dan dapat berkomunikasi dengan media
IP sebagai protokol.
- World Wide Web Arsiteketur
client/server terbuka yang diterapkan di atas infrastuktur internet dan
juga shared resources melalui URL.
- Mobile dan sistem komputasi
ubiguitos Sistem telepon Celullar (e.g. GSM) re. Resources yang dishare :
frekuensi radio, waktu transmisi dalam satu frekuensi, bergerak, komputer
laptop, ubiquitos computing, handheld devices, PDA, etc
- Sistem terdistribusi multimedia biasanya digunakan
pada infrastruktur internet - karakteristik Sumber data yang heterogen dan
memerlukan sinkronisasi secara real time -video, audio, text Multicast
1.2.
Karakteristik Sistem Terdistribusi
Resource Access and Sharing
Kemampuan
menggunakan hardware, software atau data dimanapun dan kapanpun. Karakteristik
ini juga yang menentukan siapa saja yang dapat mengakses sebuah resource dalam
sebuah sistem terdistribusi. Salah satu contohnya dalam sebuah web, terdapat .htaccess
yang hanya dapat diakses oleh user-user yang telah memiliki grant access
terhadap file tersebut.
Sebuah
keterbukaan dalam sistem terdistribusi memiliki pengertian kemampuan sebuah
sistem dalam mengembangkan fleksibilitas terhadap peningkatan kinerja sebuah
sistem. Seperti penambahan module baru dan ketersediaan extension / plugin yang
dapat terkoneksi dengan sistem lain. Contoh karakteristik ini misalkan sebuah
aplikasi web banking yang dapat terhubung dengan sistem web milik perusahaan
finance.
Concurrency
Semua
proses dalam sistem terdistribusi dilakukan secara concurrency (secara
bersama-sama). Hal ini dilakukan untuk mencegah inkonsistensi dan ketidak valid
an sebuah data dan proses. Sebagai contoh dalam sebuah aplikasi web yang
diakses oleh banyak user. Ketika server melakukan sebuah update. Maka semua
user yang mengakses halaman web tersebut akan langsung mendapatkan update
terbaru tersebut.
Scalability
Skalabilitas
memiliki pengertian bahwa sebuah sistem terdistribusi harus dapat ditingkatkan
kinerjanya tanpa mengubah komponen-komponen di dalamnya. Sebagai contoh, sebuah
aplikasi web yang digunakan oleh user yang terlalu banyak. Maka untuk
meningkatkan kinerja dari web tersebut agar tidak terjadi overload atau system
down maka perlu dilakukan upgrade processor dan ram. Dalam proses upgrading
tersebut, komponen dalam web tidak perlu diubah.
Fault Tolerance (Toleransi Kesalahan)
Kesalahan
pasti terjadi dalam sebuah sistem. Entah itu disebabkan karena masalah
jaringan, power supply, bencana alam atau human error. Sebuah sistem terdistribusi
dirancang memliki kemampuan untuk menangani hal-hal tersebut. Contoh dalam hal
ini adalah dibangunnya sebuah clustering server. Dimana ketika server utama
mengalami down karena beberapa penyebab kesalahan, maka extended server
langsung membackup sistem utama dan menggantikannya.
Transparency
Secara umum, transparansi disini tidak berlaku untuk user
biasa yang mengutamakan fungsionalitas, apakah ia sedang menggunakan sistem
yang terdistribusi atau tidak. Namun secara khusus bagi seorang pengelola baik
itu developer atau administrator sistem sangat perlu untuk mengetahui
arsitektur dari sistem yang sedang
digunakan karena untuk mempermudah
bagi mereka dalam mengembangkan dan memelihara sistem tersebut.
1.3.
Model Sistem Terdistribusi
·
Model
Client Server
Sistem
client-server mempunyai satu atau lebih proses client dan satu atau lebih
proses server, dan sebuah proses client dapat mengirim query ke sembarang
proses server. Client bertanggung jawab pada antar muka untuk user, sedangkan
server mengatur data dan mengeksekusi transaksi. Sehingga suatu proses client
berjalan pada sebuah personal komputer dan mengirim query ke sebuah server yang
berjalan pada mainframe.
Arsitektur
ini menjadi sangat popular untuk beberapa alasan. Pertama, implementasi yang
relatif sederhana karena pembagian fungsi yang baik dan karena server
tersentralisasi. Kedua, mesin server yang mahal utilisasinya tidak terpengaruh
pada interaksi pemakai, meskipun mesin client tidak mahal. Ketiga, pemakai
dapat menjalankan antarmuka berbasis grafis sehingga pemakai lebih mudah
dibandingkan antar muka pada server yang tidak user-friendly. perlu diingat
batasan antara client dan server dan untuk menjaga komunikasi antara keduanya
yang berorientasi himpunan.
1. Model Multiple Server
Gambar 1.1 Model Multiple Server
Service
disediakan oleh beberapa server
Contoh:
• Sebuah situs yang jalankan dibeberapa
server
• Server menggunakan replikasi atau
database terdistribusi
2. Model Proxy Server
Gambar
1.2 Model Proxy Server
Proxy server menyediakan hasil copy (replikasi) dari
resource yang di atur oleh server lain. Biasa nya proxy server di pakai untuk
menyimpan hasil copy web resources. Ketika client melakukan request ke server,
hal yang pertama dilakukan adalah memeriksa proxy server apakah yang diminta
oleh client terdapat pada proxy server. Proxy server dapat diletakkan pada
setiap client atau dapat di pakai bersama oleh beberapa client. Tujuannya
adalah meningkatkan performance dan availibity dengan mencegah frekwensi akses
ke 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
3. Model Peer To Peer
Gambar 1.3 Model Peer To Peer
Bagian dari model sistem terdistribusi dimana sistem
dapat sekaligus berfungsi sebagai client maupun server. Sebuah arsitektur di
mana tidak terdapat mesin khusus yang melayani suatu pelayanan tertentu atau
mengatur sumber daya dalam jaringan dan semua kewajiban dibagi rata ke seluruh
mesin, yang dikenal sebagai peer. Pola komunikasi yang digunakan berdasarkan
aplikasi yang digunakan. Peer-to-peer merupakan model yang paling general dan
fleksible.
4. Model Mobile Code
Gambar 1.4 Model Mobile Code
Kode yang berpindah dan dijalankan pada pc yang berbeda
Contoh: Applet
5. Model Mobile Agent
Sebuah
program yang berpindah
dari satu komputer
ke komputer yang
lain
• Melakukan perkerjaan otomatis
–
Untuk install dan pemeliharan software pada komputer sebuah organisasi
1.4.
Permasalahan Sistem Terdistribusi
Keheterogenan
·
Suatu
sistem terdistribusi dpt dibangun dr berbagai n/w, o/s, h/w, & p/l yg
berbeda.
IP dpt digunakan untuk mengatasi
perbedaan jaringan. Middleware mengatasi perbedaan lainnya.
Keterbukaan
·
Mendukung
extensibility.-Setiap komponen memiliki antarmuka (interface), yang di-publish
ke komponen lain.
Perlu
integrasi berbagai komponen yang dibuat olehprogrammer atau vendor yang
berbeda.
Keamanan
·
Shared
resources & transmisi informasi rahasia perlu dilengkapi dengan enkripsi.
Cegah denial of service.-PS: Dibahas
dalam kuliahCriptography & Information Security.
Scalability
·
Penambahan
pemakai membutuhkan penambahan resource yang konstan. Cegah bottleneck Jika
perlu, gunakan replikasi.
Penanganan Kegagalan
·
Setiap proses
(komputer atau jaringan)
dpt mengalami kegagalan
secara
independen.
Komponen lain harus tetap berjalan
dengan baik. E.g. failed branch in a distributed banking system.
Concurrency
· Multiple users with concurrent
requests to a shared resources. Setiap resource hrs aman di lingkungan tersebut
di atas.
Transparansi
·
Transparan:
bagi pemakai, keberadaan beberapa komponen tampak sebaaig satu sistem saja.
Accesstransparency : Local & remote resources dapat diakses dengan operasi
yang sama.
KOMUNIKASI
2.1.
Protocol
Protokol
adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya
hubungan, komunikasi, dan perpindahan data
antara dua atau lebih titik komputer. Protokol dapat diterapkan
pada perangkat keras, perangkat lunak atau kombinasi dari
keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi
perangkat keras.
Protokol
perlu diutamakan pada penggunaan standar teknis, untuk menspesifikasi bagaimana
membangun komputer atau menghubungkan peralatan perangkat keras. Protokol
secara umum digunakan pada komunikasi real-time dimana standar digunakan
untuk mengatur struktur dari informasi untuk penyimpanan jangka panjang.
2.2.
RPC (Remote Procedure Call)
Remote
|
Procedure Call
|
(RPC)
adalah
|
sebuah metode
yang memungkinkan
|
|||||
kita untuk mengakses
|
sebuah
|
prosedur yang
|
berada
|
di komputer
|
lain. Untuk
|
|||
dapat melakukan
|
ini
|
sebuah
|
server
|
|
harus
|
menyediakan
|
layanan
|
|
remote procedure.Pendekatan yang
dilakuan adalah sebuah
|
server
membuka
|
socket,
lalu
|
||||||
menunggu client yang meminta prosedur
yang disediakan oleh server. Bila client tidak tahu
haruS menghubungi port
yang mana, client
bisa me-request kepada
|
sebuah
|
matchmaker pada sebuah RPC port yang tetap. Matchmaker akan memberikan
|
port
apa
|
yang digunakan oleh prosedur yang
diminta client.
RPC masih
menggunakan cara primitif dalam pemrograman, yaitu menggunakan paradigma
procedural programming. Hal itu membuat kita sulit ketika menyediakan banyak
remote procedure. RPC menggunakan socket untuk berkomunikasi dengan proses
lainnya. Pada sistem seperti SUN, RPC secara default sudah ter-install kedalam
sistemnya, biasanya RPC ini digunakan untuk administrasi sistem. Sehingga
seorang administrator jaringan dapat mengakses sistemnya dan mengelola
sistemnya dari mana saja, selama sistemnya terhubung ke jaringan.
2.3.
Studi kasus RPC
Contoh
studi kasus RPC yaitu pada jasa penge-print-an di rental pengetikan yang di
dalamnya terdapat 1 komputer server, beberapa komputer client dan sebuah
printer yang hanya terhubung dengan server. User dari computer client ingin
mencetak data dari komputernya. Biasanya user memindah data dengan bantuan
device external seperti disket,
6
flash
disk, hard disk, atau cd-rw. Namun dengan RPC hal tersebut akan menjadi lebih
efisien.
Solusi
: Dengan RPC, untuk mencetak data dari computer client, computer client
mengirim pesan “cetak” kepada computer server. Kemudian computer server
menerima perintah tersebut dan kemudian menjalankan perintah mencetak data.
Setelah itu server mengirimkan pesan pada client berupa informasi “file telah
dicetak”.
2.4.
Object Interface
Pengertian
Interface adalah Himpunan operasi – operasi yang menentukan perilaku sebuah
objek, biasanya digunakan apabila kita ingin menentukan apa saja yang harus
dillakukan oleh satu class tetapi tidak menentukan bagaimana cara untuk
melakukannya.
Untuk
memiliki class yang tidak berhubungan yang mengimplementasikan method yang
sama.
Contoh:
– Class Line dan MyInteger : Tidak berhubungan,
Keduanya mengimplementasikan method perbandingan
–
isGreater
–
isles
–
isEqual
◦ Untuk mengungkapkan sebuah interface
pemrograman object tanpa pernyataan
class
◦ Untuk model multi inheritance yang
mengijinkan sebuah class untuk memiliki lebih dari satu superclass.
Cara Membuat Interface
Untuk membuat interface, kita tulis,
--------------------------------------------------------
public interface [InterfaceName]
{
//beberapa method tanpa isi
}
--------------------------------------------------------
PROSES
3.1.
Thread
3.1.1. Pengertian Thread
Thread
adalah sebuah alur kontrol dari sebuah proses. Thread merupakan unit dasar dari
penggunaan CPU, yang terdiri dari Thread_ID, program counter, register set, dan
stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem
operasi dengan Thread lain yang dimiliki oleh proses yang sama.
3.1.2. Pustaka Thread
Pustaka Thread atau yang lebih familiar dikenal dengan
Thread Library bertugas untuk menyediakan API untuk programmer dalam
menciptakan dan memanage thread.
Ada dua cara dalam mengimplementasikan
pustaka thread:
- Menyediakan API dalam level
pengguna tanpa dukungan dari kernel sehingga pemanggilan fungsi tidak
melalui system call. Jadi, jika kita memanggil fungsi yang sudah ada di
pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal
dan bukan system call.
- Menyediakan API di level kernel
yang didukung secara langsung oleh sistem operasi. Pemanggilan fungsi call
akan melibatkan system call ke kernel.
Ada tiga
pustaka thread yang sering digunakan saat ini, yaitu: POSIX Pthreads, Java, dan
Win32. Implementasi POSIX standard dapat dengan cara user level dan kernel
level, sedangkan Win32 adalah kernel level. Java API thread dapat
diimplementasikan oleh Pthreads atau Win32.
3.1.3. Implementasi Threads Pada
User-Space
Kegunaan
Thread yaitu Multithreading berguna untuk multi processor dan single processor.
Kegunaan untuk system multi processor
adalah :
·
Sebagai
unit pararel atau tingkat granularitas pararelisme.
·
Peningkatan kinerja disbanding berbasis
proses. Kegunaan multithreading pada single processor, adalah :
·
Kerja
foreground dan background sekaligus di satu aplikasi.
·
Penanganan
asynchronous proseccing menjadi baik.
·
Pengorganisasian
program menjadi lebih baik.
Manfaat utama banyak thread di satu proses adalah
memaksimumkan derajat kongkurensi antara operasi-operasi yang terkait erat.
Aplikasi jauh lebih efisien dikerjakan sebagai sekumpulan thread disbanding
sekumpulan proses.
3.2.
Client – Server
3.2.1. Pengertian Client Server
Server adalah komputer yang dapat memberikan service ke
client, sedangkan client adalah komputer yang mengakses beberapa service yang
ada di server.
Ketika
client membutuhkan suatu service yang ada di server, dia akan mengirim request
kepada server lewat jaringan. Jika request tersebut dapat dilaksanakan, maka
server akan mengirim balasan berupa service yang dibutuhkan untuk saling
berhubungan menggunakan Socket.
Gambar 3.3 Client-Server
Karakteristik
Server : Pasif; Menunggu request; Menerima request, memproses mereka dan
mengirimkan balasan berupa service. Karakteristik Client : Aktif; Mengirim
request; Menunggu dan menerima balasan dari server.
3.2.2. Model Client-Server
- Arsitektur Mainframe
Pada
arsitektur ini, terdapat sebuah komputer pusat (host) yang memiliki sumber daya
yang sangat besar, baik memori, processor maupun media penyimpanan.
- Arsitektur File Sharing
Pada
arsitektur ini komputer server menyediakan file-file yang tersimpan di media
penyimpanan server yang dapat diakses oleh pengguna.
- Arsitektur Client/Server
Salah
satu hasilnya yaitu berupa software database server yang menggantikan software
database berbasis file server.
- Model Two-tier
Model
Two-tier terdiri dari tiga komponen yang disusun menjadi dua lapisan: client
(yang meminta service) dan server (yang menyediakan service).
Gambar
3.4 Model Two-lier
- Model Three-tier
Pada
model ini disisipkan satu layer tambahan diantara user interface tier dan
database tier.
Gambar 3.5 Model Three-tier
3.3.
Agent
3.3.1. Pengertian Agent
Agent adalah entitas perangkat lunak yang didedikasikan
untuk tujuan tertentu yang memungkinkan user untuk mendelegasikan tugasnya
secara mandiri, selanjutnya software agent nantinya disebut agent saja. Agent
bisa memiliki ide sendiri mengenai bagaimana menyelesaikan suatu pekerjaan
tertentu atau agenda tersendiri. Agent yang tidak berpindah ke host lain
disebut stationary agent.
3.3.2. Karakteristik Agent
- Autonomy
- Intelligence, Reasoning, dan Learning
- Mobility dan Stationary
- Delegation Reactivity
- Proactivity dan Goal-Oriented
- Communication and Coordination Capability
- Klasifikasi menurut Karakteristik yang Dimiliki
Menurut
Nwana, agent bisa diklasifikasikan menjadi delapan berdasarkan pada
karakteristiknya.
Gambar
3.6 Klasifikasi Software Agent Menurut Karakteristik Yang Dimiliki
a) Collaborative Agent : Agent yang
memiliki kemampuan melakukan kolaborasi dan koordinasi antar agent dalam
kerangka Multi Agent System (MAS).
b) Interface Agent : Agent yang memiliki
kemampuan untuk berkolaborasi dengan user, melakukan fungsi monitoring dan
learning untuk memenuhi kebutuhan user.
c) 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.
d) 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.
e) Reactive Agent : Agent yang memiliki
kemampuan untuk bisa cepat beradaptasi dengan lingkungan baru dimana dia
berada.
f) 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.
g) 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.
2. Klasifikasi menurut Lingkungan Dimana
Dijalankan
a) Desktop Agent : Agent yang hidup dan
bertugas dalam lingkungan Personal Computer (PC), dan berjalan diatas suatu Operating
System (OS).
b) Internet Agent : Agent yang hidup dan
bertugas dalam lingkungan jaringan Internet, melakukan tugas memanage informasi
yang ada di Internet.
c) Intranet Agent : Agent yang hidup dan
bertugas dalam lingkungan jaringan Intranet, melakukan tugas memanage informasi
yang ada di Intranet.
Bahasa pemrograman yang dipakai untuk tahap implementasi
dari software agent, sangat menentukan keberhasilan dalam implementasi agent
sesuai dengan yang diharapkan.
Dari karakteristik di atas dapat disimpulkan bahwa bahasa
pemrograman yang layak untuk mengimplementasikan software agent adalah sebagai
berikut :
• Java
• Telescript
• Tcl/Tk, Safe-Tcl, Agent-Tcl
Tidak ada komentar:
Posting Komentar