Komunikasi Dalam Sistem Terdistribusi
Interproses komunikasi adalah jantung dari semua sistem
terdistribusi. Tidak masuk akal untuk mempelajari sistem terdistribusi tanpa
hati-hati dengan cara bahwa proses pada mesin yang berbeda dapat saling
bertukar informasi. Komunikasi dalam sistem terdistribusi selalu didasarkan
pada pesan tingkat rendah yang lewat seperti yang ditawarkan oleh jaringan yang
mendasarinya. Sistem terdistribusi modern biasanya terdiri dari ribuan atau
bahkan jutaan proses yang tersebar di seluruh jaringan internet.
Dalam pembahasan kali ini, kita mulai dengan membahas
aturan bahwa proses berkomunikasi harus ada yang dikenal sebagai protokol, dan
cocencrate. Pada penataan tersebut protokol dalam bentuk lapisan. Dari tampilan
diempat luas dan model yang digunakan untuk komunikasi terbagi atas: prosedur
panggilan jarak jauh (RMC), remote metode doa (RMI), pesan middleware
berorientasi (MOM) dan streams.
Model pertama untuk komunikasi dalam sistem terdistribusi
adalah panggilan prosedur remote (RPC). Sebuah RPC bertujuan menyembunyikan
sebagian besar seluk-beluk pesan lewat, dan sangat ideal untuk aplikasi
client-server. perbaikan untuk model RPC datang dalam bentuk doa metode remote
(RMIs), yang didasarkan pada gagasan obyek terdistribusi. RPC dan RMIs dibahas
dalam bagian terpisah.
Pesan-berorientasi middleware (MOM) adalah disebut juga
sebagai suatu message-queuing sistem, suatu kerangka pesan, atau sekedar
messaging sistem. MOM dapat membentuk suatu lapisan middleware yang penting
untuk aplikasi perusahaan melalui Internet. MOM dapat menerbitkan dan mendaftar
model, suatu klien dapat mendaftarkan sebagai penerbit atau seorang langganan
dari pesan. Pesan dikirimkan hanya untuk tujuan yang relevan dan hanya sekali,
dengan berbagai metoda komunikasi yang mencakup komunikasi one-to-many atau
many-to-many. Sumber data dan tujuan dapat decoupled di bawah model tersebut.
1. Protocol Layer
Protokol merupakan sebuah rule, prosedur dan pengaturan
sejumlah operasi peralatan komunikasi data, dalam komunikasi data,
aturan-aturan meliputi cara membuka hubungan, mengirim paket data,
menginformasi jumlah data yang diterima, dan meneruskan pengiriman data.
Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi
dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi
perangkat keras.
Prinsip dalam membuat protokol ada tiga hal yang harus
dipertimbangkan, yaitu efektivitas, kehandalan, dan Kemampuan dalam kondisi
gagal di network. Protokol distandarisasi oleh beberapa organisasi yaitu IETF,
ETSI, ITU, dan ANSI.
Tugas yang biasanya dilakukan oleh sebuah protokol dalam
sebuah jaringan diantaranya adalah :
Melakukan deteksi adanya koneksi fisik atau ada tidaknya
komputer / mesin lainnya.
Melakukan metode “jabat-tangan” (handshaking).
Negosiasi berbagai macam karakteristik hubungan.
Bagaimana mengawali dan mengakhiri suatu pesan.
Bagaimana format pesan yang digunakan.
Yang harus dilakukan saat terjadi kerusakan pesan atau
pesan yang tidak sempurna.
Mendeteksi rugi-rugi pada hubungan jaringan dan
langkah-langkah yang dilakukan selanjutnya.
Mengakhiri suatu koneksi.
Dalam Model OSI terdapat 7 layer dimana masing-masing
layer mempunyai jenis protokol sesuai dengan peruntukannya. Sebuah standar
protokol yang dikenal sebagai OSI (Open System Interconection) model dengan
aisitrktur sebagai berikut.
Arsitektur OSI dibuat berlapis-lapis dengan fungsi yang
berbeda pada setiap lapisannya. Lapisan yang lebih tinggi menyembunyikan
kerumitan dari operasi di lapisan yang lebih rendah dan suatu lapisan hanya
dapat di akses oleh lapisan yang ada di atasnya atau di bawahnya.Hal tersebut
di maksudkan untuk memberi kemudahankepada para pembuat perangkat keras dan
perangkat lunak komunikasi dalam mengembangkan berbagai protokol yang berbeda
sesuai kebutuhan. Namun tetap mereka harus mematuhi standar yang telah di
berikan OSI.
Lapisan layer protokol tersebut dapat di golongkan lebih
jauh menjadi:
Low level Layers
Transport Layers
Higher Level Layer
a. Low level
Layers
Yang termasuk Low layers adalah lapisan-lapisan sebagi
berikut:
Physical Layer: Spesifikasi dan implementasi dari bit-bit
dan proses transmisi dari pengirim ke penerima. Berfungsi untuk mendefinisikan
media transmisi jaringan, metode pensinyalan, sinkronisasi bit, arsitektur jaringan
(seperti halnya Ethernet atau Token Ring), topologi jaringan dan pengkabelan.
Selain itu, level ini juga mendefinisikan bagaimana Network Interface Card
(NIC) dapat berinteraksi dengan media kabel atau radio.
Data Link Layer: Bertanggung jawab mengurusi perubahan
bit=bit data menjadi frame untuk mengatasi error dan penontrolan pengiriman
frame. Befungsi untuk menentukan bagaimana bit-bit data dikelompokkan menjadi
format yang disebut sebagai frame. Data link layer melakukan tugasnya dengan
meletakkan pola bit khusus pada awal dan akhir dari setiap frame untuk menandai
mereka, serta komputasi checksum dengan menjumlahkan semua byte dalam bingkai
dengan cara tertentu.
Ketika frame tiba, penerima recomputes checksum dari data
dan membandingkan hasilnya dengan checksum mengikuti frame. Jika setuju, frame
dianggap benar dan diterima. Jika mereka tidak setuju, penerima meminta
pengirim untuk retrasmit itu. Frame ditugaskan nomor urut (di header), sehingga
semua orang dapat memberitahukan yang mana.
Network Layer: Mengatur bagaimana paket-paket di arahkan
berdasarkan alamat logik. lapisan bertanggung jawab untuk menerjemahkan alamat
logis jaringan ke alamat fisik jaringan. Berfungsi untuk mendefinisikan
alamat-alamat IP, membuat header untuk paket-paket, dan kemudian melakukan
routing melalui internetworking dengan menggunakan router dan switch layer.
Lapisan ini juga member identitas alamat, jalur perjalanan pengiriman data, dan
mengatur masalah jaringan misalnya pengiriman paket-paket data.
Saat ini, mungkin protokol jaringan yang paling banyak
digunakan adalah IP connectionless (Internet Protocol), yang merupakan bagian
dari protokol internet. Sebuah paket IP dapat dikirim tanpa pengaturan apapun.
Setiap paket IP diarahkan ke tujuan yang independen dari semua orang lain.
Tidak ada jalur internal dipilih dan diingat.
b. Transport
Layers
Merupakan lapisan yang memberi fasilitas komunikasi bagi
kebanyakan sistem tersebar. Berfungsi untuk memecah data ke dalam paket-paket
data serta memberikan nomor urut ke paket-paket tersebut sehingga dapat disusun
kembali pada sisi tujuan setelah diterima. Selain itu, pada level ini juga
membuat sebuah tanda bahwa paket diterima dengan sukses (acknowledgement), dan
mentransmisikan ulang terhadap paket-paket yang hilang di tengah jalan.
Pada lapisan ini terdapat dua macam protokol yang sering
digunakan, yaitu:
Transport Control Protocol (TCP) adalah protocol yang
connection-oriented, yang berarti komunikasi yang melewatinya membutuhkan
handshaking untuk mengatur koneksi end-to-end. Koneksi dapat dibuat dari client
ke server, dan kemudian banyak data dapat dikirimkan melalui konesi itu. TCP
memiliki karakteristik sebagai berikut:
Connection-oriented merupakan sistem yang akan
berkomunikasi harus terlebih dulu saling mengetahui dan sepakat
Reliable, tersedia mekanisme menjamin paket yang rusak
atau hilang dikirim ulang
Stream –oriented communication
Membutuhkan sumberdaya komputasi dan jaringan lebih dari
UDP
User Datagram Protocol (UDP) adalah protocol
connectionless message-based yang lebih sederhana. Di protocol connectionless,
tidak ada usaha yang dibuat untuk koneksi end-to-end. Koumikasi dicapai dengan
mengirimkan informasi satu arah, dari source ke destination tanpa mengecek
untuk melihat apakah tujuan masih ada, atau apakah koneksi disiapkan untuk
menerima informasi. Paket UDP melewati jaringan dalam unit-unit yang berdiri
sendiri. UDP memiliki karakteristik sebagai berikut:
Connectionless, tidak memerlukan adanya saling mengetahui
dan kesepakatan
Unreliable datagram communication, tidak tersedianya
mekanisme yang menjamin paket rusak atau dikirim ulang.
Manfaat TCP dibandingkan dengan UDP adalah bahwa ia
bekerja andal melalui jaringan apapun. Kelemahan yang jelas adalah bahwa TCP
memperkenalkan overhead yang jauh lebih, terutama dibandingkan dengan
kasus-kasus di mana jaringan yang mendasarinya sangat handal, seperti dalam
sistem area lokal. Ketika kinerja dan kehandalan yang dipertaruhkan, solusi
alternatif selalu untuk menggunakan UDP, dan mengkombinasikannya dengan
kesalahan tambahan dan kontrol aliran yang dioptimalkan untuk aplikasi
tertentu. Kelemahan dari pendekatan ini adalah bahwa pekerjaan pembangunan
banyak ekstra perlu dilakukan, tetapi juga bahwa solusi proprietary
diperkenalkan, yang mempengaruhi keterbukaan sistem.
Apa yang membuat TCP begitu menarik dalam banyak kasus,
adalah bahwa hal itu tidak disesuaikan untuk mendukung jawaban perilaku
permintaan sinkron interaksi klien yang paling server. Dalam keadaan normal,
ketika pesan tidak tersesat, menggunakan TCP untuk interaksi client server
hasil seperti yang ditunjukkan pada gambar 2-4 (a). Pertama, klien memulai
setup sambungan, yang dilakukan dengan menggunakan tiga cara protokol jabat
tangan, ditampilkan sebagai tiga pesan pertama di gambar 2-4 (a). Protokol ini
diperlukan untuk kedua belah pihak untuk mencapai kesepakatan pada urutan
penomoran untuk paket yang akan dikirim melalui sambungan. Ketika koneksi telah
dibentuk, client mengirimkan permintaannya (pesan 4), langsung diikuti oleh
paket memberitahu server untuk menutup koneksi (pesan 5).
Gambar 2-4 (a) Pengoperasian normal TCP. (B)
Transaksional TCP
Server merespon dengan segera mengakui bahwa ia menerima
permintaan klien, piggybacked dengan pengakuan bahwa koneksi akan clossed bawah
(pesan 6). Server kemudian melakukan pekerjaan yang diminta dan mengirimkan
jawaban kepada klien (pesan 7), diikuti dengan permintaan untuk melepaskan
koneksi juga (pesan 8). Klien hanya perlu merespon dengan pengakuan untuk
menyelesaikan komunikasi dengan server (pesan 9).
Jelas, banyak overhead dalam TCP berasal dari benar-benar
mengelola koneksi. Ketika TCP digunakan untuk interaksi client server, itu jauh
lebih murah untuk menggabungkan pengaturan koneksi dengan segera mengirimkan
permintaan, dan seperti bijaksana untuk menggabungkan mengirimkan jawaban
dengan menutup koneksi. Protokol yang dihasilkan disebut TCP untuk Transaksi,
disingkat T / TCP, dan esensi dari bagaimana ia beroperasi di bawah kondisi
normal ditunjukkan pada gambar 2-4 (b).
Apa yang terjadi dalam keadaan normal, adalah bahwa klien
mengirimkan pesan tunggal (ditampilkan sebagai pesan 1) yang berisi tiga
potongan informasi: permintaan untuk mengatur koneksi, permintaan layanan yang
sebenarnya, dan permintaan memberitahu server yang segera bisa merobek turun
koneksi sesudahnya.
Server merespon setelah ia dilayani permintaan yang
sebenarnya, sehingga dapat mengirim jawaban bersama dengan data yang diperlukan
untuk menerima koneksi, dan segera meminta rilis, ditampilkan sebagai pesan
pada Gambar 2. 2-4 (b). Sekali lagi, klien hanya perlu mengakui rilis final
dari koneksi (pesan 3).
c. Higher
Level Layer
Di atas lapisan transport. OSI membedakan tiga lapisan
tambahan. Dalam prakteknya, hanya lapisan aplikasi yang pernah digunakan.
Bahkan, di suite internet protocol, segala sesuatu di atas lapisan transport
dikelompokkan bersama-sama. Dalam menghadapi sistem middleware, akan kita lihat
dalam bagian ini bahwa baik OSI maupun pendekatan internet benar-benar tepat.
Dalam Higher Level Layer ini terbagi menjadi tiga lapisan tambahan yaitu:
1. Sesi dan Presentasi Protokol
Lapisan sesi dasarnya merupakan versi yang disempurnakan
dari lapisan transport. Menyediakan kontrol dialog, untuk melacak pihak mana
saat berbicara, dan menyediakan fasilitas sinkronisasi. Sehingga jika terjadi
kecelakaan, yang terakhir ini berguna untuk memungkinkan pengguna memasukkan
pos-pos pemeriksaan dalam transfer yang panjang. Hal ini diperlukan untuk
kembali hanya untuk pos pemeriksaan terakhir, daripada semua jalan kembali ke awal.
Dalam prakteknya, beberapa aplikasi tertarik dalam lapisan sesi dan jarang
didukung. Hal ini tidak hadir dalam acara suite protokol Internet.
Berbeda dengan lapisan bawah, yang prihatin dengan
mendapatkan bit dari pengirim ke penerima andal dan efisien, lapisan presentasi
berkaitan dengan arti dari bit. Pesan yang paling tidak terdiri dari string bit
acak, tetapi informasi lebih terstruktur seperti nama orang, alamat, jumlah
uang, dan sebagainya. Pada lapisan presentasi adalah mungkin untuk menentukan catatan
yang berisi bidang-bidang seperti ini dan kemudian memiliki Sener
memberitahukan penerima bahwa pesan berisi catatan tertentu dalam format
tertentu. Hal ini memudahkan untuk mesin dengan representasi internal yang
berbeda untuk berkomunikasi.
2. Protocol Application
Menyediakan layanan untuk aplikasi misalnya transfer
file, email, akses suatu komputer atau layanan. Lapisan aplikasi OSI awalnya
dimaksudkan untuk menampung koleksi aplikasi jaringan standar seperti untuk
surat elektronik, transfer file, dan emulasi terminal. Sampai saat ini telah
menjadi wadah untuk semua aplikasi dan protokol yang dalam satu cara atau yang
lain tidak masuk ke dalam salah satu lapisan yang mendasarinya. Dari perspektif
model referensi OSI, hampir semua sistem terdistribusi hanya aplikasi.
Ada juga banyak tujuan umum protokol yang berguna untuk
banyak aplikasi, tetapi yang tidak dapat dikualifikasikan sebagai protokol
transport. Dalam banyak kasus, protokol seperti jatuh ke dalam kategori
protokol middleware, yang akan kita bahas selanjutnya.
3. Middleware Protocol
Middleware adalah sebuah aplikasi yang logis tinggal di
lapisan aplikasi, tetapi yang mengandung banyak tujuan umum protokol yang
menjamin lapisan mereka sendiri, independen lainnya, aplikasi yang lebih
spesifik. Perbedaan dapat dibuat antara tingkat tinggi protokol komunikasi dan
protokol untuk membangun layanan middleware berbagai.
Dibuat untuk menyediakan layanan layanan protokol yang
seragam dan dapat digunakan oleh aplikasi-aplikasi yang berbeda-beda. Pada lapisan
ini terdapat sekumpulan protokol komunikasi yang beragam yang memungkinkan
berbagai macam aplikasi dapat berkomunikasi. Middleware juga memberi fasilitas
marshalling dimana terdapat proses pengubahan data dalam komunikasi antar
proses menjadi bentuk yang siap dikirim melalui jaringan sehingga dapat tetap
konsisten sampai di si penerima data dan kebalikannya.
Middleware komunikasi protokol mendukung tingkat tinggi
layanan komunikasi. Misalnya, di bagian dua berikutnya kita akan membahas
protokol yang memungkinkan proses untuk memanggil prosedur atau invok obyek
pada mesin remote dengan cara yang sangat transparan. Demikian juga, ada
layanan komunikasi tingkat tinggi untuk menetapkan dan sinkronisasi aliran
untuk mentransfer data real-time, seperti yang diperlukan untuk aplikasi
multimedia. Sebagai contoh terakhir, beberapa sistem middleware menawarkan
layanan multicast handal yang skala untuk ribuan penerima tersebar di wide area
network.
Beberapa protokol komunikasi middleware yang sama bisa
juga termasuk dalam lapisan transport, tapi mungkin ada alasan spesifik untuk
menjaga mereka pada tingkat yang lebih tinggi. Misalnya, multicasting layanan
yang handal Taht skalabilitas jaminan dapat diimplementasikan hanya jika
persyaratan aplikasi diperhitungkan. Akibatnya, sistem middleware mungkin
menawarkan yang berbeda (merdu) protokol, masing-masing pada gilirannya
diimplementasikan dengan menggunakan protokol transport yang berbeda, tapi
mungkin menawarkan antarmuka tunggal.
Konsep objek terdistribusi dan object interface
Meskipun teknologi RPC ini relatif sudah memberikan
kenyamanan bagi developer namun seiring dengan perkembangannya, sistem ini
dinilai tidak efisien lagi. Dalam
membuat aplikasi client server, programmer masih harus membuat fungsi-fungsi yang
sama untuk aplikasi yang berbeda. Kadang kala kode program yang sama digunakan
dengan melakukan copy paste dan melakukan sedikit perubahan untuk menyesuaikan
dengan aplikasi yang baru dibuat. Jika ada perubahan, fungsi tersebut dalam
masing-masing aplikasi harus di update satu persatu lagi. Hal ini mengakibatkan
perawatan program menjadi susah dan fungsi-fungsi tersebut dapat menjadi tidak
konsisten satu sama lain.
CORBA
Common Object Request Broker Architecture (CORBA)
merupakan standar yang dikeluarkan oleh Object Management Group (OMG).
Spesifikasi CORBA ini berisi sebuah spesifikasi
infrastruktur yang disebut Object Request Broker (ORB) yang memungkinkan
aplikasi klien untuk dapat berkomunikasi dengan obyek secara remote.
Spesifikasi ini meliputi antarmuka program, protokol komunikasi dan model obyek
atau layanan yang memungkinkan aplikasi yang ditulis dengan berbagai macam
bahasa pemrograman.
CORBA membungkus kode program yang dibuat dengan bahasa
pemrograman tertentu menjadi sebuah obyek yang ditambah dengan informasi
mengenai kemampuan kode program dan cara mengaksesnya. Obyek tersebut dapat
dipanggil oleh program lain melalui jaringan. CORBA menggunakan interface
definition languange (IDL) untuk menunjukkan interface atau antarmuka yang
dapat digunakan oleh program atau obyek lain. Dari IDL tersebut CORBA akan
memetakannya ke implementasi yang lebih spesifik dari masing-masing bahasa
pemrograman.
COM
Component Object Model (COM) adalah teknologi yang
diciptakan oleh Microsoft untuk memungkinkan komunikasi antaraplikasi.
Teknologi ini sudah disediakan untuk
beberapa platform tetapi kebanyakan digunakan untuk platform Windows. Teknologi
ini sudah diperkenalkan oleh microsoft pada tahun 1993 tetapi baru populer pada
tahun 1997. Perkembangan teknologi COM ini bermula dari teknologi OLE (Object
Linking and Embedding) yang dibuat untuk memungkinkan aplikasi dapat saling
bertukar data.
DCOM
Pada tahun 1996 diperkenalkan Distributed Component
Object Model (DCOM) sebagai jawaban Microsoft atas CORBA. DCOM dibandingkan
dengan COM memiliki kelebihan mampu
untuk terdistribusi dan berkomunikasi antarkomponen melalui jaringan. DCOM dan
CORBA saling berkompetisi untuk menjadi standar dalam distribusi komponen
melalui internet. Namun dibalik kesulitan dalam hal keamanan, sebuah browser
yang berjalan menggunakan teknologi http sudah dapat menggantikan teknologi
tsb.
RMI
Remote Method Invocation (RMI) adalah sebuah teknik
pemanggilan method remote yang lebih secara umum lebih baik daripada RPC. RMI
menggunakan paradigma pemrograman berorientasi obyek (Object Oriented
Programming). RMI memungkinkan kita untuk mengirim obyek sebagai parameter dari
remote method. Dengan dibolehkannya program Java memanggil method pada remote
obyek, RMI membuat pengguna dapat mengembangkan aplikasi Java yang
terdistribusi pada jaringan.
RMI menyediakan mekanisme dimana server dan client
berkomunikasi dan memberikan informasi secara timbal balik. Aplikasi semacam
ini seringkali disebut aplikasi objek terdistribusi
Langkah-Langkah Pembuatan Program dengan RMI
Dalam RMI, semua informasi tentang satu pelayanan server
disediakan dalam suatu definisi remote interface. Dengan melihat pada definisi
interface, seorang pemrogram dapat memberitahukan method apa yang dapat
dikerjakan oleh server, meliputi data apa yang diterima dan data apa yang akan
dikirim sebagai tanggapan.
Definisi yang ada pada remote interface menentukan
karakteristik methods yang disediakan server yang dapat dilihat oleh client.
Client programmer harus dapat mengetahui methods apa yang disediakan server dan
bagaimana memanggilnya langsung dengan melihat ke remote interface. Client
mendapatkan referensi ke remote object melalui RMI registry.
Membangun suatu aplikasi terdistribusi menggunakan RMI
meliputi 6 langkah. Keenam langkah tersebut adalah:
1. Mendefinisikan remote interface
2. Implementasi remote interface dan server
3. Pengembangan client (atau applet) yang menggunakan
remote interface
4. Mengkompilasi source files dan mem-buat stub and
skeletons
5. Memulai (start) RMI registry
6. Menjalankan server dan client
Sumber:
Tidak ada komentar:
Posting Komentar