RMI ย่อมาจาก Remote Method Invocation . เป็นกลไกที่ช่วยให้อ็อบเจ็กต์ที่อยู่ในระบบเดียว (JVM) เข้าถึง/เรียกใช้อ็อบเจ็กต์ที่ทำงานบน JVM อื่นได้
RMI ใช้เพื่อสร้างแอปพลิเคชันแบบกระจาย มันให้การสื่อสารระยะไกลระหว่างโปรแกรม Java มีให้ในแพ็คเกจ java.rmi .
ในการเขียนแอปพลิเคชัน RMI Java คุณจะต้องทำตามขั้นตอนด้านล่าง -
ขั้นตอนที่ 1 − กำหนดอินเทอร์เฟซระยะไกล
อินเทอร์เฟซระยะไกลให้คำอธิบายของวิธีการทั้งหมดของวัตถุระยะไกลโดยเฉพาะ ไคลเอ็นต์สื่อสารกับอินเทอร์เฟซระยะไกลนี้ ดังนั้น คุณต้องสร้างอินเทอร์เฟซที่ขยายอินเทอร์เฟซที่กำหนดไว้ล่วงหน้า java.rmi.รีโมต .
ตัวอย่าง
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface Hello extends Remote {
void printMsg() throws RemoteException;
} ขั้นตอนที่ 2 - พัฒนาคลาส Implementation (วัตถุระยะไกล)
เราจำเป็นต้องใช้อินเทอร์เฟซระยะไกลที่สร้างขึ้นในขั้นตอนก่อนหน้านี้ (เราสามารถเขียนคลาสการนำไปใช้แยกกัน หรือเราสามารถทำให้โปรแกรมเซิร์ฟเวอร์ใช้อินเทอร์เฟซนี้โดยตรง) ดังนั้น จัดเตรียมการใช้งานให้กับวิธีนามธรรมทั้งหมดของอินเทอร์เฟซระยะไกล
ตัวอย่าง
public class ImplExample implements Hello {
public void printMsg() {
System.out.println("This is an example RMI program");
}
} ขั้นตอนที่ 3 - พัฒนาโปรแกรมเซิร์ฟเวอร์
โปรแกรมเซิร์ฟเวอร์ RMI ควรใช้อินเทอร์เฟซระยะไกลหรือขยายคลาสการใช้งาน ที่นี่ เราควรสร้างวัตถุระยะไกลและผูกกับ RMIregistry . ดังนั้นให้พัฒนาโปรแกรมเซิร์ฟเวอร์ดังแสดงด้านล่าง -
ตัวอย่าง
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 {
ImplExample obj = new ImplExample();
Hello stub = (Hello) UnicastRemoteObject.exportObject(obj, 0);
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();
}
}
} Step4 - พัฒนาโปรแกรมไคลเอนต์
เขียนโปรแกรมไคลเอนต์ในนั้น ดึงวัตถุระยะไกลและเรียกใช้วิธีการที่จำเป็นโดยใช้วัตถุนี้
ตัวอย่าง
import java.rmi.registry.LocateRegistry;
import java.rmi.registry.Registry;
public class Client {
private Client() {}
public static void main(String[] args) {
try {
Registry registry = LocateRegistry.getRegistry(null);
Hello stub = (Hello) registry.lookup("Hello");
stub.printMsg();
} catch (Exception e) {
System.err.println("Client exception: " + e.toString());
e.printStackTrace();
}
}
} ขั้นตอนที่ 5 – รวบรวมแอปพลิเคชัน
เพื่อรวบรวมแอปพลิเคชัน -
-
รวบรวมอินเทอร์เฟซระยะไกล
-
รวบรวมคลาสการใช้งาน
-
รวบรวมโปรแกรมเซิฟเวอร์
-
รวบรวมโปรแกรมไคลเอนต์
ขั้นตอนที่ 6 - ดำเนินการแอปพลิเคชัน
-
เริ่ม rmi รีจิสทรีโดยใช้คำสั่งต่อไปนี้
Start rmiregistry
สิ่งนี้จะเริ่มต้น rmi รีจิสตรีในหน้าต่างแยกต่างหาก
-
เรียกใช้ไฟล์คลาสเซิร์ฟเวอร์ดังที่แสดงด้านล่าง -

-
เรียกใช้ไฟล์คลาสไคลเอนต์ดังที่แสดงด้านล่าง -

-
การยืนยัน − ทันทีที่คุณเริ่มไคลเอนต์ คุณจะเห็นผลลัพธ์ต่อไปนี้ในเซิร์ฟเวอร์
