Sistem
komputasi terdistribusi yang bekerja di banyak tempat mengharuskan beberapa
komputer untuk bisa berkomunikasi satu sama lain. Untuk komunikasi, bahasa Java
mendukung pemakaian socket yang sifatnya fleksibel dan mencukupi untuk
keperluan komunikasi umum. Tapi di sisi lain, untuk membuat socket, client dan
server harus terhubung melalui protokol pada application level untuk
meng-encode dan men-decode data-data yang akan dikirimkan. Protokol itu sendiri
ternyata sulit untuk dibuat dan bisa menjadi rentan terhadap error.
1. DEFINISI
RMI adalah sebuah tekhnik pemanggilan method remote yang lebih
secara umum lebih baik dari RPC. RMI menggunakan paradigma pemrograman
berorientasi obyek. 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.
2. TUJUAN
Adapun tujuan dari RMI yaitu:
- Menyediakan fasilitas bagi programmer untuk dapat mendistribusikan objek yang digunakan pada beberapa proses yang berbeda.
- Dapat berjalan dalam satu mesin ataupun di beberapa mesin yang terhubung dengan jaringan.
3. APLIKASI OBJEK TERDISTRIBUSI
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.
Sebagai
contoh.:
Pada paket Whiteboard, RMI digunakan untuk program-program Chat, Whiteboard dan Projector. Dalam program Chat, RMI digunakan untuk memasukkan input dari para pengguna, baik dosen maupun mahasiswa, ke komputer server. Setelah itu, server akan mengeluarkan output berupa hasil percakapan antar pengguna kepada semua komputer klien. Pada Whiteboard, penggunaan RMI terletak pada pengiriman graphics dan image antara komputer server dan klien. Sedangkan pada Projector, RMI digunakan agar dosen, sebagai klien, bisa mengatur indeks tampilan pada Projector yang berlangsung pada komputer mahasiswa, yang berfungsi sebagai klien lainnya
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
MODEL RMI – REMOTE INTERFACE
- Remote interface – mendefinisikan method apa saja yang dapat diakses oleh client
8.
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.
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:
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.
5.
CARA KERJA RMI
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.
Teamviewer adalah suatu program yang cukup sederhana dan sangat mudah digunakan untuk beberapa keperluan terutama melakukan akses PC secara remote melalui internet.
Cara Meremote :
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”. TeamViewer Versi Baru
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.
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.
7.
KEUNTUNGAN DAN KELEMAHAN
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.
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.
Komentar
Posting Komentar