KOMUNIKASI PADA SISTEM TERDISTRIBUSI

Komunikasi adalah suatu proses penyampaian informasi (pesan, ide, gagasan) dari satu pihak kepada pihak lain. Pada umumnya, komunikasi dilakukan secara lisan atau verbal yang dapat dimengerti oleh kedua belah pihak. Dimana proses komunikasi dapat dilakukan kepada orang, kelompok, organisasi dan masyarakat menciptakan, dan menggunakan informasi agar terhubung dengan lingkungan dan orang lain. Komunikasi memiliki komponen-komponen yang menjadikan komunikasi berjalan dengan baik, komponen tersebut yaitu: * Pengirim atau komunikator (sender) adalah pihak yang mengirimkan pesan kepada pihak lain. * Pesan (message) adalah isi atau maksud yang akan disampaikan oleh satu pihak kepada pihak lain. * Saluran (channel) adalah media dimana pesan disampaikan kepada komunikan. dalam komunikasi antar-pribadi (tatap muka) saluran dapat berupa udara yang mengalirkan getaran nada/suara. * Penerima atau komunikate (receiver) adalah pihak yang menerima pesan dari pihak lain * Umpan balik (feedback) adalah tanggapan dari penerimaan pesan atas isi pesan yang disampaikannya. 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. 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. 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 waktu itu, komunikasi antar komputer dari vendor yang berbeda adalah sangat sulit dilakukan, karena mengunakan protokol dan format data yang berbeda-beda. Sehingga International Standards Organization (ISO) membuat suatu arsitektur komunikasi yang dikenal sebagai Open System Interconnection (OSI) model yang mendefinisikan standar untuk menghubungkan komputer-komputer dari vendor-vendor yang berbeda. Model-OSI tersebut terbagi atas layer-layer, yaitu: 1. Physical Layer 2. Data Link 3. Network 4. Transport 5. Session 6. Presentation 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 : 1. Melakukan deteksi adanya koneksi fisik atau ada tidaknya komputer / mesin lainnya. 2. Melakukan metode “jabat-tangan” (handshaking). 3. Negosiasi berbagai macam karakteristik hubungan. 4. Bagaimana mengawali dan mengakhiri suatu pesan. 5. Bagaimana format pesan yang digunakan. 6. Yang harus dilakukan saat terjadi kerusakan pesan atau pesan yang tidak sempurna. 7. Mendeteksi rugi-rugi pada hubungan jaringan dan langkah-langkah yang dilakukan selanjutnya. 8. 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: 1. Low level Layers 2. Transport Layers 3. Higher Level Layer Yang termasuk Low layers adalah lapisan-lapisan sebagi berikut: 1. 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. 2. 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. 3. 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. 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: 1. 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: a. Connection-oriented merupakan sistem yang akan berkomunikasi harus terlebih dulu saling mengetahui dan sepakat 1. Reliable, tersedia mekanisme menjamin paket yang rusak atau hilang dikirim ulangStream –oriented communicationMembutuhkan sumberdaya komputasi dan jaringan lebih dari UDP TCP adalah protocol yang handal, TCP dapat memastikan data yang dikirimkan sampai ke tujuan begitu juga sebaliknya. TCP menambahkan beberapa prosedur diatas layer internet protocol untuk memastikan reliabilitas transport data : Pada setiap transmisi data (paket) diberi nomor urut. Sehingga pada titik tujuan tidak ada segmen yang diterima sampai semua segmen pada urutan bawah belum di terima. Pengirim tidak akanmembanjiri penerima.Karena pengiriman didasarkan pada periode acknowledgment yang di terima oleh pengirim yang berasal dari penerima. · Retrasnmission dan duplicate handling Apabila segmen tidak mendapatkan acknowledge dari penerima sampai waktu timeout yang ditentukan terlampaui maka pengirim akan mengirim ulang. Berdasarkan nomor urut penerima data dapat mendeteksi dan menolak kalau terjadi duplikasi. Bufering digunakan untuk menyeimbangkan antara pengirim dan penerima. Kalau bufer pada penerima penuh, maka segmen yang datang akan putus, sehingga menyebabkan tidak ada acknowledge ke pengirim dan pengirim akan melakukan transmot ulang. Setiap segment membawa checksum. Apabila checksum segmen yang di terima tidak sesuai maka paket data tersebut akan di drop (dan kemudian akan di transmit ulang) 2. 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. 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. 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. 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. 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. Object-oriented Middleware · Common Object Request Broker Architecture (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. · Component Object Model (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. · Distributed Component Object Model (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. Komunikasi Request dan Reply Komunikasi antara proses dan objek dalam system terdistribusi dilakukan melalui massage passing. 1. Mengirim (request) pesan ke server 2. Menerima hasil (reply dari server) 1. Peneriamaan pesan (request) dari client 2. Mengeksekusi permintaan dari client 3. Mengirim hasil (reply) ke client Remote Procedure Call (RPC) 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. Untuk proses nya kurang lebih sama dengan RMI. Kalau RMI kita mengenal proxy dan skeleton, pada RPC dikenal dengan Stub( Client stub dan Server stub) Gambar Ilustrasi Implementasi RPC Remote Reference Modul dan Communication Modul berada pada tatanan sistem operasi. Contoh implementasi adalah Sun Microsystems Open Network Computing (ONC) : RPC specification, XDR (eXternal Data Representation) standard, UDP atau TCP transport protocol. Xerox Courier : RPC model, Data representation standard, XNS (Xerox Network Systems) SPP (Sequenced Packet Protocol) sbg transport protocol, Apollo s Network Computing Architecture (NCA), RPC protocol, NDR (Network Data Representation). Tiap prosedur yang dipanggil dalam RPC, maka proses ini harus berkoneksi dengan server remote dengan mengirimkan semua parameter yang dibutuhkan, menunggu balasan dari server dan melakukan proses kemudian selesai. Proses di atas disebut juga dengan stub pada sisi klien. Sedangkan Stub pada sisi server adalah proses menunggu tiap message yang berisi permintaan mengenai prosedur tertentu. Diagram diatas memberikan gambaran mengenai flow dari eksekusi dalam proses RPC. Berikut ini adalah diagram yang akan menjelaskan secara rinci mengenai proses yang terjadipada klien dan server dalam eksekusi suatu prosedur RPC : penjelasan dari diagram diatas : 1. Klien memanggil prosedur stub lokal. Prosedur Stub akan memberikan parameter dalam suatu paket yang akan dikirim ke jaringan. Proses ini disebut sebagai marshalling. 2. Fungsi Network pada O/S (Operating system – Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message. 3. Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupa connectionless atau connection-oriented. 4. Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim pada network. 5. Stub pada server kemudian mengeksekusi prosedur panggilan lokal. 6. Jika eksekusi prosedur ini telah selesai, maka eksekusi diberikan kembali ke stub pada server. 7. Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan ( hasilnya ) kembali ke jaringan. 8. Message ini akan dikirim kembali ke klien. 9. Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan. 10. Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal. Proses diatas akan dilakukan berulang-ulang ( rekursif ) dalam pengeksekusian RPC dalam suatu remote sistem. Contoh aplikasi untuk meremote pada teknik RPC (Remote Procedure Call) adalah menggunakan putty untuk melakukan SSH. I.4. Kelebihan dan Kekurangan pada RPC * Relatif mudah digunakan * Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dapat berkonsentrasi pada software logic, tidak perlu memikirkan low level details seperti soket, marshalling dan unmarshalling. * Robust (Sempurna) * Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application yang memerlukan scalability, fault tolerance, dan reliability. * Tidak fleksibel terhadap perubahan * Static relationship between client & server at run-time. * Berdasarkan prosedural/structured programming yang sudah ketinggalan jaman dibandingkan Object Oriented Proggraming * Kurangnya location transparency * Misalnya premrogram hanya boleh melakukan pass by value, bukan pass by reference. * Komunikasi hanya antara 1 klien & 1 server (one-to-one at a time). * Komunikasi antara 1 klien & beberapa server memerlukan beberapa koneksi yang terpisah. REMOTE METHOD INVOCATION (RMI) RMI adalah perluasan dari local method invocation yang memungkinkan sebuah objek yang hidup dalam satu proses untuk memohon method objek yang berada di proses lain. (George Coulouris hal 166). 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. Aplikasi RMI seringkali terdiri dari dua program terpisah yaitu server dan client. Aplikasi server semacam ini biasanya membuat beberapa objek remote, menyediakan referensi terhadap objek-objek tersebut sehingga dapat diakses, serta menunggu client memanggil method dari objek-objek remote tersebut. Aplikasi client mendapatkan referensi remote ke satu atau lebih objek remote di server dan menjalankan method dari objek tersebut. RMI menyediakan mekanisme dimana server dan client berkomunikasi dan memberikan informasi secara timbal balik. Aplikasi semacam ini seringkali disebut aplikasi objek terdistribusi. II.2. 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 Remote Modul Reference Remot referensi modul bertanggung jawab untuk menerjemahkan antara local dan referensi remote objek dan untuk menciptakan referensi remot objek. Untuk mendukung tugasnya ini, referensi modul remote dalam setiap proses memiliki tabel remote objek yang mencatat korespondensi antara objek lokal referensi dalam proses dan referensi remote objek (dimana system-wide) (George Coulouris dkk, hal 176) Tindakan remote referensi modul adalah sebagai berikut: Ketika remote objek untuk diteruskan sebagai argumen atau hasil untuk pertama kalinya, modul referensi remot modul diminta untuk membuat referensi objek remote, yang menambahkan tabel. Ketika referensi objek remote tiba dalam permintaan atau membalas pesan, remote modul referensi diminta untuk menyesuaikan referensi obyek lokal, yang mungkin mengacu baik pada proxy atau ke objek remot. Dalam hal objek remote referensi tidak ada dalam tabel, menciptakan perangkat lunak RMI proxy baru dan meminta remote referensi modul untuk menambahkannya ke tabel. Software RMI ini terdiri dari suatu lapisan perangkat lunak antara application level objek dan komunikasi dan reeferensi remot modul. Peran middleware objek adalah sebagai berikut: * Proxy: Peran proxy adalah untuk membuat permohonan metoderemot transparan untuk klien dengan bertingkah seperti objek lokal ke invoker, tetapi selain melaksanakan suatu permintaan ini akan diteruskan sebuah pesan ke objek remote. Itu menyembunyikan rincian remot objek referensi, yang menyusun argumen, menguraikan hasil dan pengiriman dan penerimaan pesan dari klien. * Operator/Dispatcher : Sebuah server memiliki satu operator dan kerangka untuk masing-masing mewakili kelas remote objek. Dalam contoh kita, server memiliki operator dan kerangka untuk kelas remot objek B. operator menerima pesan permintaan dari modul komunikasi. Ia menggunakan methodId untuk memilih metode yang tepat dalam kerangka kemudian menyampaikan pesan permintaan. Operator dan proxy menggunakan sama alokasi methodld terhadap metode antarmuka remote. * Skeleton: Kelas jauh objek memiliki kerangka, yang mengimplementasikan metode dalam antarmuka remote. Mereka dilaksanakan cukup berbeda dari metode-metode di objek remote. Sebuah metode menguraikan kerangka argumen dalam pesan permintaan dan memanggil metode yang sesuai dalam objek remote. Contoh implementasi dari RMI di antaranya : Perusahaan programming Avitek yang berlokasi di Amerika Serikat, membuat program sistem accounting untuk intranet yang memungkinkan klien untuk meng-update dan mengubah data dengan mudah. Tujuan dari proyek ini adalah untuk membuat dan mendukung pembuatan dari bukti nyata untuk konsep penggunaan Java yang dikombinasikan dengan database. Perusahaan CEAS Consulting yang menyediakan jasa custom re-engineering dan otomasi proses untuk perusahaan-perusahaan manufakturing dan teknik, telah membuat program sistem terdistribusi untuk klien mereka. Gambaran program mereka adalah seperti berikut : Dalam model ini, sebuah proses memanggil method dari objek yang terletak pada suatu host/computer remote. Dalam paradigma ini, penyedia layanan mendaftarkan dirinya dengan server direktori pada jaringan. Proses yang menginginkan suatu layanan mengontak server direktori saat runtime, jika layanan tersedia, maka referensi ke layanan akan diberikan. Dengan menggunakan referensi ini, proses dapat berinteraksi dengan layanan tsb. Paradigma ini ekstensi penting dari paradigma RPC. Perbedaannya adalah objek yang memberikan layanan didaftarkan (diregister) ke suatu layanan direktori global, sehingga memungkinkan untuk ditemukan dan diakses oleh aplikasi yang meminta layanan tersebut. Contoh aplikasi untuk meremote pada teknik RMI (Remote Method Invocation) menggunakan teamviewer untuk meremote computer lain. Teamviewer adalah suatu program yang cukup sederhana dan sangat mudah digunakan untuk beberapa keperluan terutama melakukan akses PC secara remote melalui internet. Tampilan utama TeamViewer, jika sudah tampil (Ready to connect (secure connection)) maka sudah siap melakukan koneksi ke PC lain, kemudian masukan ID PC klien jika koneksi berhasil maka akan muncul kotak “Password”, isi password teamviewer PC yang akan anda remote. Jika berhasil maka akan tampil desktop PC yang diremote tersebut. Jika ingin melakukan File Transfer, maka pilih “File Transfer” pada bagian pilihan yang terlihat dibawah kotak ID, kemudian klik “Connect to partner”. Jika ingin menggunakan password dan ID yang tetap maka cukup tempatkan kursor mouse pada bagian kotak password, maka akan tampil seperti gambar diatas, pilih “Set user definied password” kemudian masukan password yang anda inginkan. Hasilnya Setelah kita melakukan setting pada teamviewer dan setelah login dan memasukkan password tujuan dengan benar maka kita bisa mengakses computer yang kita remote secara penuh. II.6. Keuntungan dan Kekurangan RMI · Salahsatu keuntungan RMI adalah kemampuan untuk download zytecodes (code) dari suatu object’s class, jika class tsb tidak terdefinisikan di VM-nya penerima. · Type-type dan metode-metode object (class), yang terletak dalam satu VM, dapat dikirim ke VM yang lain, yang mungkin saja remote. · Sifat-sifat object yang terkirim ini tidak berubah sama sekali proses pembukaan socket yang kadang-kadang tidak dapat diimplementasikan lewat jaringan internet, tapi hal ini bisa diatasi dengan menggunakan Spring HttpInvoker, sama persis dengan RMI tapi lewat protokol HTTP. Komunikasi adalah suatu proses penyampaian informasi (pesan, ide, gagasan) dari satu pihak kepada pihak lain. Pada umumnya, komunikasi dilakukan secara lisan atau verbal yang dapat dimengerti oleh kedua belah pihak. Dimana proses komunikasi dapat dilakukan kepada orang, kelompok, organisasi dan masyarakat menciptakan, dan menggunakan informasi agar terhubung dengan lingkungan dan orang lain. 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. Sehingga International Standards Organization (ISO) membuat suatu arsitektur komunikasi yang dikenal sebagai Open System Interconnection (OSI) model yang mendefinisikan standar untuk menghubungkan komputer-komputer dari vendor-vendor yang berbeda. Lapisan layer protokol tersebut dapat di golongkan lebih jauh menjadi: 1. Low level Layers 2. Transport Layers 3. Higher Level Layer Transport Control Protocol (TCP) adalah protocol yang connection-oriented, yang berarti komunikasi yang melewatinya membutuhkan handshaking untuk mengatur koneksi end-to-end. 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. Protocol Application enyediakan 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. 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. 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. 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. Rahmat. 2013. ”Komunikasi dalam system terdistribusi” Mbahsecond.2013.” pengertian dan cara kerja RPC dan RMI”