Penerapan Java RMI FIX

18
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 1301148482 Ika Rahayu Ponilan M. Dwi Aldhi 1301148486 1301148471 1103104161 Nama Anggota II NIM Departemen Informatika Telkom School of Engineering Telkom Unversity Bandung 2015

description

Sistem Terdistribusi

Transcript of Penerapan Java RMI FIX

Penerapan Java RMI (Remote method invocation)

Java RMI (Remote Method Invocation) Implementation

Tugas Besar

Diajukan untuk memenuhi syarat dalam mata kuliahSistem TerdistribusiProgram studi S1 Teknik InformatikaFakultas Informatika

Bhudi Jati Prio Utomo1301148482

Ika Rahayu PonilanM. Dwi Aldhi

130114848613011484711103104161

Nama Anggota IINIM

Departemen InformatikaTelkom School of EngineeringTelkom UnversityBandung2015

Pendahuluan1.1 Latar belakangBahasa 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.

Pembahasan

1.2 Apa Itu RMIRMI (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 menanganipemanggilan (invocation) method secarajarak 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.1. Remote Reference LayerRemote Reference Layer ini digunakan untuk menemukan lokasi remoteobject, membuat panggilan point to point dan rekoksi secara otomatis.Selain itu, bagian ini juga berfungsi untuk mengaktifkan proses server barujika belum pernak diaktifkn sebelumnya.1. Stub dan SkeletonStub dan SkeletonStub dan Skeleton merupakan interface antara aplikasi dan RMI system.Stub bertindak sebagai client side proxy dan skeleton sebagai server sideproxy.Transport LayerTransport 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.RMIlayer

Mengapa Menggunakan Java RMIKeuntungan dari Dynamic Code LoadingSalah 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.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 java.rmi.Remote.2. Setiap method dari interface mendeclarasikan java.rmi.RemoteException menggunakan klausa throws.Langkah-Langkah Pembuatan Program dengan RMIDalam 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 interfaceInterface 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 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

2. Buat aplikasi clientPada aplikasi client, client akan mencari objek pada remote server danmelakukan casting ketipe yang sesuai dengan nama interface yangdidefinisikan 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

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 Naming.lookup dalam registry dan kemudian membuat permintaanuntuk suatu referensi obyek3. Menjalankan server dan client Setelah melakukan rmiregistry, kita bisa menjalankan servernya terlebihdahulu, baru kemudian client dapat dijalankan.Keterbatasan RMI1. Menggunakan UTP, bukan UDP3.2. Minimal membutuhkan dua socket untuk setiap koneksi3. Java Only

Contoh Program Client/Server Java RMI dengan Netbeans 7.0Program penghitung bilangan berpangkat1. Interface

2. ServerClass Main

Class KuadratServer

3. ClientClass Main

Class KuadratClient

Hasil run dari program diatas :Output Server

Tampilan Client

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 interfaceb. imple-mentasi remote interface dan serverc. membuat class client dan serverd. memulai (start) RMI registryee. menjalankan server dan client

DAFTAR PUSTAKA

1. http://www.javacoffeebreak.com/articles/javarmi/javarmi.html 2.http://www.eg.bucknell.edu/~cs379/DistributedSystems/rmi_tut.html

Daftar PustakaIkuti aturan penulisan daftar pustaka yang benar.

[1]

[2]

[3]

[4]

[5]

[6]

[7]

[8]

[9]

Lampiran ____________________________________________________________________

13