Penerapan Java RMI (Remote method invocation)
Java RMI (Remote Method Invocation) Implementation
Tugas Besar
Diajukan untuk memenuhi syarat dalam mata kuliah
Sistem Terdistribusi
Program studi S1 Teknik Informatika
Fakultas Informatika
Bhudi Jati Prio Utomo
Ika Rahayu Ponilan
M. Dwi Aldhi
1301148482
1301148486
1301148471
1103104161
Nama Anggota II
NIM
Departemen Informatika
Telkom School of Engineering
Telkom Unversity
Bandung
2015
1. Pendahuluan
1.1
Latar belakang
Bahasa pemrograman Java menyediakan beberapa aplikasi untuk kedua
situasi tersebut. Untuk situasi dimana pemrograman dilakukan dengan bahasa
yang sama, 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
menggunakan RMI, pemrogram tidak perlu merancang satu protokol.
2. Pembahasan
2.1
Apa Itu 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 jaringanatau 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 keobject 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 melalui 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).
Artitektur RMI terdiri tiga bagian.
1Remote Reference Layer
Remote Reference Layer ini digunakan untuk menemukan lokasi remoteobject,
membuat panggilan point to point dan rekoksi secara [Link] itu, bagian
ini juga berfungsi untuk mengaktifkan proses server baru jika belum pernak
diaktifkn sebelumnya.
2Stub dan Skeleton
Stub dan SkeletonStub dan Skeleton merupakan interface antara aplikasi dan
RMI [Link] 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.
Gambar2. RMI layer
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 [Link] yang didownload secara dinamis dapat digunakan
untuk sebuah aplikasi.
2.3 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 [Link].
2. Setiap method dari interface mendeclarasikan [Link]
menggunakan klausa throws.
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 langsung 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 .
1. Implementasi remote interface dan server Mendefinisikan kelas
implementasi dari interface. Selain class object yang akan diakses lewat
RMI harus extend [Link], class juga harus
memeiliki throw [Link].
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
[Link] :
Setelah membuat server, kita harus menyimpan object ke server agar
dapat diakses oleh client. Penyimpanan object ini dilakukan dengan cara
2. Buat aplikasi client
Pada aplikasi client, client akan mencari objek pada remote server
danmelakukan casting ketipe yang sesuai dengan nama interface
yangdidefinisikan menggunakan objek tersebut sebagai objek [Link]
membuat client digunakan class [Link]
Untuk mengakses data yang ada di server, kita harus membuat object
interfacenya.
Catch
2. Memulai (start) RMI registry Registry menyediakan satu referensi bagi
client untuk melihat server. Port1099 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 keobyek lokal. Server menggunakan
Naming. Rebind untuk mendapatkan penetapan port dari RMI registry,
sedangkan client melihat ke server dengan [Link] dalam registry
dan kemudian membuat permintaanuntuk suatu referensi obyek
3. Menjalankan server dan client Setelah melakukan rmiregistry, kita bisa
menjalankan servernya terlebihdahulu, baru kemudian client dapat
dijalankan.
Keterbatasan RMI
1. Menggunakan UTP, bukan UDP3.
2. Minimal membutuhkan dua socket untuk setiap koneksi
3. Java Only
Contoh Program Client/Server Java RMI dengan Netbeans 7.0
Program penghitung bilangan berpangkat
1. Interface
2. Server
Class Main
Class KuadratServer
3. Client
Class Main
Class KuadratClient
Hasil run dari program diatas :
Output Server
Tampilan Client
10
PENUTUP
Kesimpulan
1. RMI adalah kumpulan kelas dalam Java yang digunakanuntuk menangani
pemanggilan (invocation) method secara jarak jauh (remote) dalam suatu
jaringan atau internet.
2. Untuk Membangun suatu aplikasi terdistribusi menggunakan RMI meliputi 5
langkah:
a. mendefinisikan remote interface
b. imple-mentasi remote interface dan server
c. membuat class client dan server
d. memulai (start) RMI registrye
e. menjalankan server dan client
11
DAFTAR PUSTAKA
1. [Link]
[Link]://[Link]/~cs379/DistributedSystems/rmi_tut.html
Daftar Pustaka
Ikuti aturan penulisan daftar pustaka yang benar.
12
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
Lampiran
___________________________________________________________________
_
13