REMOTE
OBJECT INVOCATION
“Remote
Method Invocation”
“Makalah
Ini Dibuat Sebagai Salah Satu Tugas Kelompok Pada Mata Kuliah
Sistem
Terdistribusi”
OLEH
Ivqal Panji Yahsa 1202232
Yayang Fitria Chandra 1203257
Nurhidayati 1203239
PENDIDIKAN
TEKNIK INFORMATIKA
FAKULTAS
TEKNIK
UNIVERSITAS
NEGERI PADANG
2013
KATA
PENGANTAR
Dengan memanjatkan puji
syukur kepada Tuhan Yang Maha Esa penulis dapat menyelesaikan tugas pembuatan makalah yang berjudul “Remote Method Invocation”dengan lancar. Dalam pembuatan makalah ini, penulis mendapat
bantuan dari berbagai pihak, maka pada kesempatan ini penulis mengucapkan
terima kasih yang sebesar-besarnya kepada yang telah banyak membantu sehingga
pembuatan makalah ini dapat berjalan lancar. Semua pihak yang tidak dapat
penulis sebutkan satu persatu yang membantu pembuatan makalah ini. Akhir kata
semoga makalah ini bisa bermanfaat bagi pembaca pada umumnya dan penulis pada
khususnya, penulis menyadari bahwa dalam pembuatan makalah ini masih jauh dari
sempurna untuk itu penulis menerima saran dan kritik yang bersifat membangun
demi perbaikan kearah kesempurnaan. Akhir kata penulis sampaikan terima kasih.
Penulis
BAB
I
PENDAHULUAN
A. Latar Belakang
Java
menawarkan RMI (Remote Method Invocation) sebagai alternatif dari socket. Tidak
seperti Socket, RMI mengabstrakkan interface antara
client dan server menjadi satu pemanggilan prosedur lokal. Oleh karena itu,
dengan mengguna-kan RMI, programmer tidak perlu merancang satu protokol.
RMI
(Remote Method Invocation) adalah salah satu bagian
dari J2SE yang digunakan untuk membangun aplikasi terdistribusi menggunakan
bahasa Java. RMI adalah kumpulan kelas dalam Java yang digunakan untuk
menangani pemanggilan (invocation) method secara jarak jauh (remote) dalam
suatu jaringan atau Internet. RMI menggunakan prinsip pemrograman berorientasi
obyek dimana obyek satu dapat saling berkomunikasi dengan obyek lainnya.
RMI
terdiri dari RMI client dan server. RMI server biasanya akan membuat beberapa
remote obyek dan referensi-nya yang dapat diakses oleh RMI client menggunakan
suatu URL dan menunggu RMI client meminta ke server. Sedangkan RMI client akan
membuat koneksi ke server dan meminta pemanggilan ke beberapa remote obyek
berdasarkan referensi yang diterimanya. RMI client akan menggunakan remote
obyek sebagai lokal obyek.
Setiap
remote obyek yang dibuat oleh RMI server didaftarkan terlebih dahulu ke dalam
RMI registri, agar ketika client membutuhkannya dapat meminta dengan mudah ke RMI registry. RMI Server akan mendaftarkan remote obyeknya
ke RMI Registry melalui bind dengan nama unik. RMI Client yang akan melakukan
suatu pemanggilan method dari remote obyek, harus meminta referensi obyek ke
RMI Registry berdasarkan nama kelas obyek tersebut.
B. Pertanyaan penting
1. Apa
yang dimaksud dengan RMI (Remote Method Invocation)?
2. Bagaimana
arsitektur RMI?
3. Bagaimana
cara kerja RMI?
4. Bagaimana
implementasi dari RMI?
C. Tujuan
1. Mengetahui
apa yang dimaksud dengan RMI (Remote Method Invocation)
2. Mengetahui
arsitektur RMI
3. Mengetahui
bagaimana cara kerja RMI
4. Mengetahui
bagaimana implementasi dari RMI
BAB
II
PEMBAHASAN
A. Pengertian
RMI
(Remote Method Invocation)
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.
RMI menyediakan mekanisme dimana
server dan client berkomunikasi danmemberikan 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.
B. Arsitektur RMI
Sistem RMI dibangun
atas tiga lapisan yaitu lapis stub/skeleton, lapis remote reference,
dan lapis transport. Tiap lapis dibangun dengan menggunakan interface
khusus dan didefinisikan dengan protokol khusus. Oleh karena itu secara
lebih jelasnya dapat dilihat pada Gambar 2 yang menunjukkan arsitektur RMI.
Gambar
1.arsitektur RMI
Arsitektur tersebut dapat di
jelaskan sebagai berikut :
Berikut
penjelasan dari arsitektur RMI tersebut:
1.
Lapis
stubyangberlaku sebagai proxy yang memiliki remote call.
2.
Lapis Skeletonberada pada sisi server,
bertanggung jawabmemanggil implementasi pemanggilan objekyang sesuai bagi
jaringanuntuk dikirim kembali ke client.
3.
Lapis Remote Reference Merupakan lapis
yang tidak terlihat oleh penggunayang bertanggung jawab mengatur komunikasi
antara client-server dengan mesin virtual Java.
4.
Lapis
Transport Lapis TCP/IP-based yang bertanggung jawab dalam
mengadakan hubungan antara server dan client.
C. Cara kerja RMI
Gambar
2.cara kerja RMI
1. Dimulai saat RMI
server akan mendaftarkan (bind) nama
objek ke RMI
registry dengan nama
yang unik.
2. RMI registry
dapat memberikan refeensi pemanggilan terpisah objeknya ke RMI client untuk
melakukan pemanggilan .
3. RMI
client dapat memanggil metode yang berada di server.
4. RMI
server mengirimkan respon
setelah dilakukan pemrosesan ke
RMI client.
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.
D. Implementasi dari RMI
Gambar
3.implementasi RMI
Berikut
ilustrasi yang terjadi pada metode RMI:
Programmer
pada client menulis :
Server_id.service(values_to_server,result_arguments);
Pada sisi
server mempunyai fungsi sebagai berikut :
Public
service(in type1 arg from client; out type2 arg to_client)
{——-}
Programmer
pada client tidak mengetahui bahwa reply message yang didapatkan berasal dari
server yang dikirim melalui jaringan.
Gambar 4 Ilustrasi Implementasi RMI
Komponen-komponen
dam RMI(gambar 2.2) :
·
Object
A(client) : meminta layanan
·
Object
B(server) : menghantarkan layanan
·
Proxy
for B
-
Ketika
object A mempunyai remote reference ke object B, maka akan timbul objek proxy B
pada host object A. Proxy terbuat ketika remote object reference digunakan
pertama kali.
-
Proxy
adalah perwakilan objek yang berada pada remote, dengan kata lain ketika
terjadi invokasi dari A ke B ditangani seolah – olah hanya mengakses Proxy B.
-
Ketika
invokasi terjadi proxy menggunakan metode marshals untuk membungkus pesan yang
akan dikirim ke server. Dan setelah menerima hasil dari server proxy
menggunakan metode unmarshal (membuka bungkus) untuk kemudian diteruskan ke
client (Object A).
-
Pada
sisi server, terdapat object kerangka (skeleton) yang berhubungan ke class,
kalau object pada class tersebut dapat diakses oleh RMI.
-
Skeleton menerima pesan kemudian melakukan
unmarshal dan meneruskan ke method object yang dituju. Dan kemudian
menunggu hasil dari object B dan kemudian membungkus hasil (unmarshal) dan
kemudian dikirimkan ke client (Objec A).
-
Ada bagian dari skeleton B yang disebut dengan
dispatcher. Dispatcher menerima request dari communication module, dan kemudian
mengidentifikasi invokasi dan mengarahkan permintaan ke corresponding method (
method pada skeleton yang berfungsi untuk berkomunikasi dengan object).
- Communication Modul (Modul
Komunikasi)
-
Communication
modul pada client atau server bertanggung jawab dalam pertukaran pesan yang
dilakukan melalui metode request dan reply.
-
Bagian
ini bertugas untuk menterjemahkan antara referensi objek lokal dan remote.
Proses berkomunikasi antara mereka disimpan dalam remote object table.
-
Yang menggenerate class untuk proxy dan skeleton adalah middleware.
-
Contoh : CORBA, Java RMI
Object A dan object B dipunyai oleh
aplikasi (berada pada Application Layer) Remote Reference Modul dan
Communication modul dimiliki oleh middleware. Proxy B dan Sekeleton B berada
antara middleware dan aplikasi yang di generate oleh middleware.
E. Keuntungan Dan Kelemahan Dari RMI
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:
RMI
mempunyai kekurangan dalam interopability (kemampuan dalam melakukan operasi
antar platform), kekurangan ini bisa dijelaskan karena RMI tidak memakai suatu
standar yang resmi dalam protokol maupun skema data yang dipakai. Sehingga
dalam penerapannya RMI yang dibuat dalam bahasa java hanya bisa dipanggil oleh
aplikasi java. Demikian juga dengan RMI yang dibuat dengan .Net (remoting)
hanya bisa dipanggil dari aplikasi .Net.
BAB
III
PENUTUP
A. Kesimpulan
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.Aplikasi RMI sering kali
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.
DAFTAR
PUSTAKA
http://tongtolang.blogspot.com
rmi-remote-method-invocation-dan-rpc-remote-procedure-call
mengenal-konsep-oop
diakes di
http://javaoop.wordpress.com
pada 15 oktober 2014
penertian-dan-cara-kerja-rpc-rmi-
diakses di
http://mbahsecond.blogspot.com
pada 14 oktober 2014
http://ejournal.undip.ac.id