RMI
(Remote
Method Invocation)
PENDAHULUAN
Remote Method Invocation
(RMI) sebuah teknik pemanggilan method remote menggunakan paradigma pemrograman
berorientasi obyek (Object Oriented
Programming) yang memungkinkan untuk mengirim obyek sebagai parameter dari
remote method.
Aplikasi Remote Method Invocation (RMI) terdiri dari dua program terpisah
yaitu server dan client. Remote Method
Invocation (RMI) menyediakan mekanisme dimana server dan client
berkomunikasi dan memberikan informasi secara timbal balik. Aplikasi
objek terdistribusi dapat melakukan beberapa hal, yaitu :
a.
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.
b.
Berkomunikasi dengan objek remote
Detail
dari komunikasi antara objek remote ditangani oleh RMI, bagi programmer
komunikasi remote tampak seperti invokasi method Java standar.
c.
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.
PEMBAHASAN
1.
Definisi
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 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 danmemberikan informasi secara timbal balik. Aplikasi semacam ini
seringkali disebut aplikasi objek terdistribusi.
2.
Konsep
Aplikasi objek terdistribusi seringkali melakukan hal berikut:
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.
3.
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:
Membangun suatu aplikasi terdistribusi menggunakan RMI meliputi 6 langkah. Keenam langkah tersebut adalah:
a.
Mendefinisikan remote interface
b.
Implementasi remote interface dan server
c.
Pengembangan client (atau applet) yang
menggunakan remote interface
d.
Mengkompilasi source files dan mem-buat stub and
skeletons
e.
Memulai (start) RMI registry
f.
Menjalankan server dan client
4.
Model RMI – Remote
Interface
Remote
interface : Setiap remote obyek memiliki remote interface yang menentukan mana
metode dapat dipanggil dari jarak jauh. Sebagai contoh, objek B dan F harus
memiliki remote interface. Paragraf berikut ini membahas referensi objek
remote, remote interface dan aspek model object terdistribusi. (George
Coulouris dkk, hal 172) Contoh :
a.
CORBA menggunakan IDL untuk definisi Interface objek server
b.
RMI menggunakan interface Java untuk definisi objek server
5.
Masalah Perancangan untuk
RMI
Semantik
Pemanggilan RMI : doOperation() dapat diterapkan dalam beberapa cara untuk
menyediakan jaminan pengiriman yang berbeda. (George Coulouris dkk, hal 174)
·
Retry Requet Message : apakah permintaan Retransmit pesan sampai baik
balasan diterima atau server diasumsikan telah gagal.
·
Duplicate Filtering : ketika retransmisi digunakan, apakah untuk
menyaring duplikat permintaan pada server.
·
Retransmission of Result : apakah akan menyimpan history dari pesan hasil
untuk mengaktifkan hasil hilang yang akan kembali tanpa mengeksekusi ulang
operasi pada server.
6.
Cara
Kerja
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.
7.
Implementasi
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: (George Coulouris dkk, hal 176)
·
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 :
Keuntungan 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
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.
KESIMPULAN
1.
RMI adalah sebuah
teknik pemanggilan method remote yang lebih secara umum lebih baik daripada RPC
2.
RMI memungkinkan kita
untuk mengirim obyek sebagai parameter dari remote method
DAFTAR
PUSTAKA
Tidak ada komentar:
Posting Komentar
Tulis Komentar Disini :