Aplikasi Java RMI
Untuk menulis aplikasi Java RMI, Anda harus mengikuti langkah-langkah di bawah ini -
- Tentukan antarmuka jarak jauh
- Kembangkan kelas implementasi (objek jarak jauh)
- Kembangkan program server
- Kembangkan program klien
- Kompilasi aplikasi
- Jalankan aplikasi
Mendefinisikan Antarmuka Jarak Jauh
Antarmuka jarak jauh menyediakan deskripsi semua metode objek jarak jauh tertentu. Klien berkomunikasi dengan antarmuka jarak jauh ini.
Untuk membuat antarmuka jarak jauh -
Buat antarmuka yang memperluas antarmuka yang telah ditentukan sebelumnya Remote yang termasuk dalam paket.
Deklarasikan semua metode bisnis yang dapat dipanggil oleh klien di antarmuka ini.
Karena ada kemungkinan masalah jaringan selama panggilan jarak jauh, pengecualian bernama RemoteExceptionmungkin terjadi; buang itu.
Berikut adalah contoh antarmuka jarak jauh. Di sini kami telah mendefinisikan antarmuka dengan namaHello dan memiliki metode yang disebut printMsg().
import java.rmi.Remote;
import java.rmi.RemoteException;
// Creating Remote interface for our application
public interface Hello extends Remote {
void printMsg() throws RemoteException;
}
Mengembangkan Kelas Implementasi (Objek Jarak Jauh)
Kita perlu mengimplementasikan antarmuka jarak jauh yang dibuat pada langkah sebelumnya. (Kita bisa menulis kelas implementasi secara terpisah atau kita bisa langsung membuat program server mengimplementasikan antarmuka ini.)
Untuk mengembangkan kelas implementasi -
- Implementasikan antarmuka yang dibuat pada langkah sebelumnya.
- Menyediakan implementasi untuk semua metode abstrak dari antarmuka jarak jauh.
Berikut adalah kelas implementasi. Di sini, kami telah membuat kelas bernamaImplExample dan mengimplementasikan antarmuka Hello dibuat pada langkah sebelumnya dan disediakan body untuk metode ini yang mencetak pesan.
// Implementing the remote interface
public class ImplExample implements Hello {
// Implementing the interface method
public void printMsg() {
System.out.println("This is an example RMI program");
}
}
Mengembangkan Program Server
Program server RMI harus mengimplementasikan antarmuka jarak jauh atau memperluas kelas implementasi. Di sini, kita harus membuat objek jarak jauh dan mengikatnya keRMIregistry.
Untuk mengembangkan program server -
Buat kelas klien dari mana Anda ingin memanggil objek jarak jauh.
Create a remote object dengan membuat instance kelas implementasi seperti yang ditunjukkan di bawah ini.
Ekspor objek jarak jauh menggunakan metode ini exportObject() dari kelas bernama UnicastRemoteObject yang termasuk dalam paket java.rmi.server.
Dapatkan registri RMI menggunakan file getRegistry() metode dari LocateRegistry kelas yang termasuk dalam paket java.rmi.registry.
Ikat objek jarak jauh yang dibuat ke registri menggunakan ekstensi bind() metode kelas bernama Registry. Untuk metode ini, berikan string yang mewakili nama bind dan objek yang diekspor, sebagai parameter.
Berikut adalah contoh program server RMI.
import java.rmi.registry.Registry;
import java.rmi.registry.LocateRegistry;
import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;
public class Server extends ImplExample {
public Server() {}
public static void main(String args[]) {
try {
// Instantiating the implementation class
ImplExample obj = new ImplExample();
// Exporting the object of implementation class
// (here we are exporting the remote object to the stub)
Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
// Binding the remote object (stub) in the registry
Registry registry = LocateRegistry.getRegistry();
registry.bind("Hello", stub);
System.err.println("Server ready");
} catch (Exception e) {
System.err.println("Server exception: " + e.toString());
e.printStackTrace();
}
}
}
Mengembangkan Program Klien
Tulis program klien di dalamnya, ambil objek jarak jauh dan panggil metode yang diperlukan menggunakan objek ini.
Untuk mengembangkan program klien -
Buat kelas klien dari tempat Anda ingin memanggil objek jarak jauh.
Dapatkan registri RMI menggunakan file getRegistry() metode dari LocateRegistry kelas yang termasuk dalam paket java.rmi.registry.
Ambil objek dari registri menggunakan metode ini lookup() dari kelas Registry yang termasuk dalam paket java.rmi.registry.
Untuk metode ini, Anda perlu meneruskan nilai string yang mewakili nama bind sebagai parameter. Ini akan mengembalikan Anda objek jarak jauh.
Lookup () mengembalikan sebuah objek berjenis remote, lalu transmisikan ke tipe Hello.
Terakhir, panggil metode yang diperlukan menggunakan objek jarak jauh yang diperoleh.
Berikut adalah contoh program klien RMI.
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client {
private Client() {}
public static void main(String[] args) {
try {
// Getting the registry
Registry registry = LocateRegistry.getRegistry(null);
// Looking up the registry for the remote object
Hello stub = (Hello) registry.lookup("Hello");
// Calling the remote method using the obtained object
stub.printMsg();
// System.out.println("Remote method invoked");
} catch (Exception e) {
System.err.println("Client exception: " + e.toString());
e.printStackTrace();
}
}
}
Menyusun Aplikasi
Untuk mengkompilasi aplikasi -
- Kompilasi antarmuka Remote.
- Kompilasi kelas implementasi.
- Kompilasi program server.
- Kompilasi program klien.
Atau,
Buka folder tempat Anda menyimpan semua program dan kompilasi semua file Java seperti yang ditunjukkan di bawah ini.
Javac *.java
Menjalankan Aplikasi
Step 1 - Mulai rmi registri menggunakan perintah berikut.
start rmiregistry
Ini akan memulai rmi registri pada jendela terpisah seperti yang ditunjukkan di bawah ini.
Step 2 - Jalankan file kelas server seperti yang ditunjukkan di bawah ini.
Java Server
Step 3 - Jalankan file kelas klien seperti yang ditunjukkan di bawah ini.
java Client
Verification - Segera Anda memulai klien, Anda akan melihat output berikut di server.