TUGAS EKSPLORASI JAVA RMI
IF3037 Rekayasa Perangkat Lunak Lanjut Semester I 2011/2012
Oleh : Dibi Khairurazi B. 13509013 Hans Agastyra 13509062 Unggul Bhakti Muhammad 13509079 Nur Fadhillah Erlambang 13509091 Fitra Haryadi 13509093 SEKOLAH TEKNIK ELEKTRO DAN INFORMATIKA INSTITUT TEKNOLOGI BANDUNG 2011
Tutorial RMI (Remote Method Invocation) Sederhana
Untuk mulai menggunakan Java RMI, minimal diperlukan empat buah file yaitu dua file sebagai remote class dan interface yang dalam contoh ini digunakan file : [Link] dan [Link], satu file sebagai program server yang dalam contoh ini digunakan file : [Link], dan satu file terakhir digunakan sebagai program client yang dalam contoh ini digunakan file : [Link] (Kode-kode yang digunakan adalah kode yang diambil dari link [Link] dengan melakukan beberapa perubahan pada sebagian file.
1. Langkah pertama adalah compile file [Link], [Link], dan [Link] dan masukkan hasilnya di dalam satu folder. 2. Buat stub Hello dengan cara mengetikkan rmic Hello pada [Link]. 3. Copy file [Link], [Link], dan Hello_Stub.class ke dalam satu folder yang sama dengan [Link]. 4. Compile [Link]. 5. Jalankan RMI Registry dengan cara mengetikkan start rmiregistry pada [Link] untuk dapat mendaftarkan objek yang diinginkan oleh server, lalu ketika server dijalankan, tahap ini akan memunculkan jendela baru kosong seperti gambar di bawah, biarkan jendela berjalan dan lanjutkan ke langkah berikutnya.
6. Jalankan server dengan cara mengetikkan start java Server pada [Link] dengan tujuan menghidupkan server yang akan mengkonstruksi dan mendaftarkan remote objek, tahap ini akan memunculkan jendela baru berisi respon dari server yang dalam contoh ini menghasilkan jendela seperti pada gambar di bawah ini.
7. Setelah semua langkah di atas dilalui, maka client bisa melakukan pemanggilan method yang diminta dengan memanfaatkan objek yang sebelumnya sudah dikonstruksi dan didaftarkan ke dalam server, untuk menjalankan client dilakukan dengan cara mengetikkan java Client pada [Link]. Berikut ini adalah tampilan pada [Link] setelah rangkaian urutan di atas :
Lampiran Source Code
Isi file [Link]
import [Link].*; import [Link].*; /** * Remote Class for the "Hello, world!" example. */ public class Hello extends UnicastRemoteObject implements HelloInterface { private String message; /** * Construct a remote object * @param msg the message of the remote object, such as "Hello, world!". * @exception RemoteException if the object handle cannot be constructed. */ public Hello (String msg) throws RemoteException { message = msg; } /** * Implementation of the remotely invocable method. * @return the message of the remote object, such as "Hello, world!". * @exception RemoteException if the remote invocation fails. */ public String say() throws RemoteException { return message; } }
Isi file [Link]
/** * Server program for the "Hello, world!" example. * @param argv The command line arguments which are ignored. */ import [Link]; public class Server{ public static void main (String[] argv) { try { [Link] ("Hello", new Hello ("Hello, world!")); [Link] ("Hello Server is ready."); } catch (Exception e) { [Link] ("Hello Server failed: " + e); } } }
Isi file [Link]
/** * Client program for the "Hello, world!" example. * @param argv The command line arguments which are ignored. */ import [Link]; public class Client{ public static void main (String[] argv) { try { HelloInterface hello = (HelloInterface) [Link] ("rmi://localhost/Hello"); [Link] ([Link]()); } catch (Exception e) { [Link] ("HelloClient exception: " + e); } } }
Isi file [Link]
import [Link].*; /** * Remote Interface for the "Hello, world!" example. */ public interface HelloInterface extends Remote { /** * Remotely invocable method. * @return the message of the remote object, such as "Hello, world!". * @exception RemoteException if the remote invocation fails. */ public String say() throws RemoteException; }