Sabtu, 07 Mei 2016

Arsitektur RMI

A.      Artitektur RMI terdiri tiga bagian
1.       Remote Reference Layer
Remote Reference Layer ini digunakan untuk menemukan lokasi remote object, membuat panggilan point to point dan rekoksi secara otomatis. Selain itu, bagian ini juga berfungsi untuk mengaktifkan proses server baru jika belum pernak diaktifkn sebelumnya.
2.       Stub dan Skeleton
Stub dan Skeleton merupakan interface antara aplikasi dan RMI system. Stub bertindak sebagai client side proxy dan skeleton sebagai server side proxy. 
3.       Transport Layer
Transport layer digunakan untuk membuat dan memelihara dua koneksi antara 2 JVM menggunakan TCP/IP. Transport layer menerima dan merespon setiap peanggilan dari atau ke server dan client.


                                              
B.      Mengapa Menggunakan Java RMI ?
Keuntungan dari Dynamic Code Loading
Salah satu keunikan dari RMI adalah kemampuannya untuk mendownload object class jika class belum didefinisikan pada Java Virtual Machine penerima, tanpa ada perubahan ketika object dikirimkan ke Java Virtual Machine penerima. Object yang didownload secara dinamis dapat digunakan untuk sebuah aplikasi.

C.      Bagaimana Menggunakan Java RMI ?
Seperti aplikasi java pada umumnya, aplikasi RMI terdiri dari interface dan class. Interface mendefinisikan method sedang class mengimplementasikan methods yang didekrarasikan pada interface.
Agar object dapat menjadi remote object harus mengimplementasikan remote interface, yang mempunyai karakteristik sebagai berikut:
1.   Remote interface menurunkan sifat dari interface java.rmi.Remote.
2. Setiap method dari interface mendeclarasikan java.rmi.RemoteException menggunakan klausa throws.

Contoh Program Client/Server Java RMI dengan Netbeans 7.0

Program penghitung bilangan berpangkat

  1. Interface
  2. Server
  • (Class Main)

  • Class Kuadrat Server
      3. Client
  • Class Main
  • Class Kuadrat Client

Hasil Run dari program diatas :
Output Server
Tampilan Client




Membuat Program Dengan RMI

Langkah-Langkah Pembuatan Program dengan RMI

         Dalam RMI, semua informasi tentang satu pelayanan server disediakan dalam suatu definisi remote interface. Dengan me-lihat 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 lang-sung dengan melihat ke remote interface. Client mendapatkan referensi ke remote object melalui RMI registry.

1. Mendefinisikan remote interface
    Interface ini akan diimplementasikan baik oleh client maupun server

2. Implementasi remote interface dan server

    Mendefinisikan kelas implementasi dari interface. Selain class object yang akan diakses lewat RMI harus extend java.rmi.UnicastRemoteObject, class juga harus memeiliki throw java.rmi.RemoteException
    Yang dibutuhkan pertama kali untuk membuat server yaitu kita harus membuat object registry. Untuk membuat object registry kita bisa menggunakan metode create registry (in port) milik class java.rmi.registry.LocateRegistry :
    Setelah membuat server, kita harus menyimpan object ke server agar dapat diakses oleh client. Penyimpanan object ini dilakukan dengan cara :
3. Buat aplikasi client
    Pada aplikasi client, client akan mencari objek pada remote server dan melakukan casting ketipe yang sesuai dengan nama interface yang didefinisikan menggunakan objek tersebut sebagai objek lokal.Untuk membuat client digunakan class java.rmi.Naming

 Untuk mengakses data yang ada di server, kita harus membuat object interfacenya.

  Catch
4. Memulai (start) RMI registry
    Registry menyediakan satu referensi bagi client untuk melihat server. Port 1099 digunakan sebagai default port bagi RMI registry. Dengan menggunakan RMI registry, client dapat memperoleh referensi ke obyek yang berada pada komputer lain dan memanggil method-nya seperti ke obyek lokal. Server menggunakan Naming. Rebind untuk mendapatkan penetapan port dari RMI registry, sedangkan client melihat ke server dengan Naming.lookup dalam registry dan kemudian membuat permintaan untuk suatu referensi obyek
5. Menjalankan server dan client
   Setelah melakuka rmiregistry, kita bisa menjalankan servernya terlebih dahulu, baru kemudian client dapat dijalankan.

Keterbatasan RMI
  1. Java Only 
  2. Menggunakan UTP, Bukan UDP
  3. Minimal membutuhkan dua socket untuk setiap koneksi 

Selasa, 03 Mei 2016

RMI

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 ini merupakan fasilitas yang dimiliki Java untuk pemanggilan objek dari sisi yang berbeda, anggap saja sisi yang menyediakan objek adalah server dan sisi yang memanggil objek adalah klien.
Aplikasi RMI biasanya mencakup dua program berupa server dan client. Program pada server membuat remote objects kemudian membuat referensi ke object dan menunggu client untuk memanggil methods pada server. Program pada client menentukan referensi ke satu atau lebih remote objects pada server dan kemudian memanggil methods-methods pada server yang bisa terakses. RMI pada intinya merupakan sebuah mekanisme dimana server dan client berkomunikasi dan saling memberikan informasi.
Ilustrasi di bawah ini menunjukkan arsitektur RMI :

                    Gambar 1. Arsitektur RMI
RMI Server akan mendaftarkan remote objeknya ke RMI Registry melaui bind dengan nama unik. RMI Client yang akan melakukan suatu pemanggilan method dari remote objek, harus meminta referensi objek ke RMI Registry berdasarkan nama kelas objek tersebut. Dalam RMI harus ada pendefinisian interface (behavior) dan implementasi interface (berupa kelas).
Diberdayakan oleh Blogger.