Rabu, 22 Oktober 2014

REMOTE OBJECT INVOCATION



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).
  •  Skeleton for object B
-       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.
  • Remote Reference Module
-       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


komunikasi-dalam-sistem-terdistribusi diakses di  http://daviddenovan.wordpress.com pada tanggal 15 oktober 2014
http://tongtolang.blogspot.com
rmi-remote-method-invocation-dan-rpc-remote-procedure-call
diakses di http://pyia.wordpress.com  pada tanggal 15 oktober 2014
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

1 komentar:

Dawud Tan mengatakan...

permisi gan, saya ada sedikit tulisan mengenai protokol websocket menggunakan bahasa java berikut gan: http://datacomlink.blogspot.co.id/2015/11/script-java-websocket-rfc-6455-server.html ditunggu feedback-nya ya gan, semoga menambah wawasan bersama.. terima kasih gan..

Posting Komentar

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | coupon codes