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:
http://penuhrahmatt.mdl2.com/mod/book/view.php?id=4&chapterid=2
http://damaraaaa.wordpress.com/2013/03/19/konsep-objek-terdistribusi-dan-object-interface/