RMI (Remote Method Invocation)

April 9, 2011 at 12:02 am (Sistem Operasi)

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.
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 menginvoke/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.

Aplikasi objek terdistribusi seringkali melakukan hal berikut:

  • Melokasikan objek remote:

Aplikasi dapat menggunakan satu dari dua mekanisme untuk mendapatkan referensi ke objek remote. Aplikasi dapat mendaftarkan objek remote dengan fasilitas penamaan RMI (naming facility) yaitu rmiregistry atau aplikasi dapat mem-pass dan mengembalikan referensi objek remote sebagai bagian dari operasi normal.

  • Berkomunikasi dengan objek remote:

Detail dari komunikasi antara objek remote ditangani oleh RMI, bagi programmer komunikasi remote tampak seperti invokasi method Java standar.

  • Memanggil (load) bytecode untuk objek yang di-pass:

Karena RMI mengizinkan pemanggil (caller) untuk mem-pass objek ke objek remote, RMI menyediakan mekanisme yang diperlukan objek me-load kode objek, sebagaimana juga mentransmisikan datanya.

Ilustrasi berikut menggambarkan aplikasi RMI terdistribusi yang menggunakan registry untuk mendapatkan referensi ke objek remote. Server memanggil registry untuk mengasosiasikan (mengikat) suatu nama dengan objek remote. Client mencari objek remote dengan namanya pada registry server dan meng-invoke method dari objek. Ilustrasi ini juga menunjukkan sistem RMI menggunakan Web server untuk memanggil class bytecodes, dari server ke client dan dari client ke server, untuk objek-objek yang diperlukan.

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

Keuntungan RMI :

  • Salahsatu keuntungan RMI adalah kemampuan untuk download bytecodes (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

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: