Mengenal Java RMI Wiranti Sri Utami
[email protected]
Abstrak Java adalah sebuah bahasa pemrograman dan juga sebuah platform. Java juga merupakan sebuah bahasa pemrograman tingkat tinggi, salah satu fitur java yang menarik yaitu RMI. RMI (Remote Method Invocation) adalah sebuah teknik pemanggilan method remote yang secara umum lebih baik dari pada RPC (Remote Procedure Call). Pada RMI menggunakan sebuah paradigma yaitu pemrograman berorientasi obyek (object oriented programming). RMI memungkinkan kita untuk dapat mengirimkan sebuah obyek sebagai parameter dari remote method. Dengan diperbolehkannya program java memanggil method pada remote obyek, sehingga dengan adanya RMI membuat pengguna dapat mengembangkan aplikasi java yang terdistribusi pada jaringan.
Kata Kunci : java, RMI
Pendahuluan Penulisan artikel ini bertujuan agar pembaca dapat mengenal java RMI (Remote Method Invocation). Manfaat dari penulisan artikel ini yaitu pembaca dapat mengenal java RMI lebih lanjut tentang pengertian RMI, implementasi RMI, cara kerja RMI, masalah perancangan untuk RMI, serta keuntungan dan kelemahan RMI yang akan dibahas pada bab pembahasan. Penulis berharap semoga dengan adanya artikel ini dapat menjadi langkah awal bagi pembaca yang ingin mengembangkan bahasa pemrograman java yang berorientasi obyek.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Pembahasan Java diciptakan oleh sebuah tim yang dipimpin oleh Patrick naughton dan james gosling dalam suatu proyek dari sun microsystem yang memiliki kode green dengan tujuan untuk menghasilkan bahasa komputer sederhana yang dapat dijalankan diperalatan sederhana dan tidak terikat pada arsitektur tertentu. Pemrograman java memiliki karakteristik berorientasi obyek (object oriented programming), dengan implementasi yang sangat baik sehingga kita tidak hanya belajar bagaimana membuat program yang baik (reusable, scalable, dan maintanable) tetapi kita juga belajar bagaimana cara berfikir yang baik untuk mengenali struktur masalah yang sedang kita hadapi dan memecahkan masalah tersebut secara sistematis dengan pola-pola tertentu. Beberapa fitur menarik yang ditawarkan java API salah satunya yaitu RMI (Remote Method Invocation). Pengertian RMI RMI (Remote Method Invocation) adalah perluasan dari local method invocation yang memungkinkan sebuah obyek yang hidup dalam satu proses untuk memohon method obyek yang berada diproses lain. (George Coulouris hal 166). Aplikasi RMI seringkali terdiri dari dua program terpisah yaitu server dan client. Pada aplikasi server biasanya membuat beberapa obyek remote yang menyediakan referensi terhadap obyek-obyek tersebut sehingga dapat diakses, serta menunggu client memanggil method dari obyek-obyek remote tersebut. Pada aplikasi client mendapatkan referensi remote ke satu atau lebih obyek remote di server dan menjalankan method dari obyek tersebut. RMI menyediakan secara timbale balik. Pada aplikasi ini seringkali disebut sebagai aplikasi obyek terdistribusi.
Aplikasi obyek terdistribusi seringkali melakukan hal-hal berikut ini : - Melokasikan obyek remote
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Aplikasi dapat menggunakan satu dari dua mekanisme untuk mendapatkan referensi ke obyek remote. Aplikasi dapat mendaftarkan obyek remote dengan fasilitas penamaan RMI yang disebut sebagai naming facility yaitu rmiregistry atau aplikasi dapat mem-pass dan mengembalikan referensi obyek remote sebagai bagian dari operasi normal. - Berkomunikasi dengan obyek remote Secara detail komunikasi antara obyek remote ditangani oleh RMI, bagi programmer komunikasi remote terlihat seperti invokasi method java standar. - Memanggil (load) bytecode untuk obyek yang di-pass Dikarenan RMI mengizinkan pemanggil (caller) untuk mem-pass obyek ke obyek remote, RMI menyediakan mekanisme yang diperlukan obyek me-load kode obyek, dan juga mentransmisikan datanya. Implementasi RMI Remote referensi modul - Remot referensi modul (Remote Modul Reference) yang bertanggung jawab untuk menerjemahkan antara local dan remote referensi obyek dan untuk menciptakan remote referensi obyek. Untuk mendukung tugasnya ini, remot referensi modul dalam setiap proses memiliki tabel remote obyek yang mencatat korespondensi antara obyek lokal referensi dalam proses dan remote referensi obyek (dimana system-wide) (George Coulouris dkk, hal 176). Tindakan remote referensi modul adalah sebagai berikut : - Ketika remote obyek diteruskan sebagai argumen atau sebagai hasil untuk pertama kalinya, remote referensi modul diminta untuk membuat remote referensi obyek yang menambahkan tabel. - Ketika remote referensi obyek tiba dalam permintaan atau membalas pesan, remote referensi modul diminta untuk menyesuaikan referensi obyek local, yang mungkin mengacu baik pada proxy atau ke obyek remote. Dalam hal remote referensi obyek
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
tidak ada dalam tabel, menciptakan perangkat lunak RMI proxy baru dan meminta remote referensi modul untuk menambahkannya ke tabel.
Software RMI terdiri dari suatu lapisan perangkat lunak antara aplikasi level obyek dan komunikasi dan remote referensi modul. Peran middleware obyek adalah sebagai berikut : - Proxy pada client : tempat penyimpanan local untuk remote objek - Dispatcher pada server : menerima request dan menggunakan methodid untuk memilih message di skeleton - Skeleton : kelas jauh obyek memiliki kerangka, yang mengimplementasikan metode dalam antarmuka remote. Mereka dilaksanakan cukup berbeda dari metode-metode di remote obyek. Sebuah metode menguraikan kerangka argument dalam pesan permintaan dan memanggil metode yang sesuai dalam remote obyek. Cara kerja RMI Pada model RMI, sebuah proses memanggil method dari obyek yang terletak pada suatu host atau 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 tersebut. 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.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Masalah perancangan untuk RMI o Semantic pemanggilan RMI doOperation() dapat diterapkan dalam beberapa cara untuk menyediakan jaminan pengiriman yang berbeda. o Retry request message : pengiriman ulang request walaupun reply diterima atau server diasumsikan gagal. o Duplicate filtering : apakah dilakukan filtering terhadap request yang sama atau tidak. Ketika semua request yang dikirim ulang diterima server, ada dua kemungkinan yang dilakukan obyek server o Retransmission of result : apakah mampu menyimpan (caching) hasil reply, sehingga jika memang perlu melakukan retransmisi ulang tidak perlu melakukan eksekusi kembali. o Repeated execution prosedur - Dari dua kemungkinan-kemungkinan dua operasi tersebut, memunculkan beberapa semantic invocation.
Keuntungan dan kelemahan RMI o Keuntunngan RMI - Salah satu keuntungan RMI adalah kemampuan untuk download zytecodes (code) dari suatu object’s class, jika class tersebut tidak terdefinisikan di VMnya 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 o Kelemahan RMI - 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.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Penutup Pada java API terdapat beberapa fitur menarik, salah satunya yaitu RMI (Remote Method Invocation). RMI adalah perluasan dari local method invocation yang memungkinkan sebuah obyek yang hidup dalam satu proses untuk memohon method obyek yang berada diproses lain. Implementasi RMI terdapat sebuah Remot referensi modul (Remote Modul Reference) yang bertanggung jawab untuk menerjemahkan antara local dan remote referensi obyek dan untuk menciptakan remote referensi obyek. Demikianlah penulisan artikel ini dibuat, semoga artikel ini dapat bermanfaat bagi para pembaca. Penulis berharap semoga dengan adanya artikel ini dapat menambah wawasan bagi pembaca dalam bidang pemrograman java.
Referensi Setiawan, Angga. Pengertian dan cara kerja RPC, RMI, dan web service, 2013, diakses pada tanggal 21 April 2014, http://mbahsecond.blogspot.com/2013/11/penertian-dancara-kerja-rpc-rmi-dan.htm Taufiq Aminullah, Muhammad, Pengertian RMI (Remote Method Invocation), Bandung, 2013, diakses pada tanggal 21 April 2014, http://muhammadtaufiqaminullah.blogspot.com/2013/05/pengertian-rmi-remotemethod-invocation.html http://www.ryanscheineder.com/2008/04/pengertian-java.html http://ishares.wordpress.com/2007/09/30/part-1-java-programming-using-rmi-remotemethod-invocation/ http://rifkiputra1991.blogspot.com/ http://www.geocities.ws/ginanjar_utama/writing/berfikirJava.pdf http://ngoprek2-pc.blogspot.com/2012/07/mengenal-java.html http://susi.staff.jak-stik.ac.id/files/pemrograman-java.pdf
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Biografi Wiranti Sri Utami. Lahir di Tangerang, pada bulan November. Telah menyelesaikan pendidikan dasar dan menengah di SD Negeri 2 Teluknaga dan SMP Negeri 1 Teluknaga. Menamatkan SMA di SMA Negeri 6 Tangerang pada tahun 2008. Menempuh pendidikan Profesional IT selama 2 tahun di CEP-CCIT FTUI (Continuing Education Program - Center for Computing Information Technology Faculty of Engineering - University of Indonesia), jurusan Software Engineering – Java Programming pada tahun 2008-2010. Saat ini wiranti bekerja di Lion Air Bandara Soekarno-Hatta sebagai Administrator dan melanjutkan kuliah S1 di STMIK Raharja mengambil jurusan Teknik Informatika, konsentrasi Software Engeenering. Informasi lebih lanjut dapat melalui email penulis :
[email protected]
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org