Thông tin tài liệu:
Java RMI hỗ trợ gọi phương thức từ xa trên các đối tượng trong các máy ảo khác nhau. Nó tích hợp mô hình đối tượng phân tán vào Java và làm cho sự khác biệt giữa mô hình đối tượng phân tán và mô hình đối tượng cục bộ không có sự khác biệt. Trong chương này chúng ta sẽ tìm hiểu về quá trình và phương thức hoạt động của mô hình Java RMI, mời các bạn tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình mạng: Chương 9 - ĐH Công nghệ Đồng NaiJava RMI 1 Mục đích Hỗ trợ gọi phương thức từ xa trên các đối tượng trong các máy ảo khác nhau Tích hợp mô hình đối tượng phân tán vào Java Làm cho sự khác biệt giữa mô hình đối tượng phân tán và mô hình đối tượng cục bộ không có sự khác biệt. Tạo ra các ứng dụng phân tán có độ tin cậy một cách dễ dàng Duy trì sự an toàn kiểu được cung cấp bởi môi trường thời gian chạy của nền tảng Java Mô hình gọi đối tượng từ xa - RMILocalMachine(Client) RemoteMachine(Server)SampleServerremoteObject;int s;…s =remoteObject.sum(1,2); 1,2 public int sum(int a,int b) { 3 return a + b; }System.out.println(s); Kiến trúc RMI Remote Machine bind RMI Server Registry skeletonreturn call lookup stub RMI Client Local Machine Java RMI LayersJavaVirtualMachine JavaVirtualMachine Client Remote Object Object Stub Skeleton RemoteReferenceLayer RemoteReferenceLayer TCP TransportLayer TransportLayer The Stub and Skeleton call skeleton Stub RMI Client RMI Server return RemoteInterface implements implements RemoteObjectClient Stub Skeleton (Server) Mô hình các đối tượng phân tán Object classes Interfaces Remote RemoteObject IOException RemoteServer RemoteExceptionRemoteInterface UnicastRemoteObject extension implementation Stub ServerImpl Các bước tạo RMI1. Định nghĩa giao diện2. Phát triển đối tượng bằng cách cài đặt giao diện remote3. Phát triển chương trình client, server.4. Biên dịch tập tin java.5. Tạo ra đối tượng stub và skeleton.6. Khởi động RMI registry.7. Chạy các đối tượng remote server8. Chạy client Bước 1. Định nghĩa giao diện/* SampleServer.java */import java.rmi.*;public interface SampleServer extends Remote{ public int sum(int a,int b) throws RemoteException;} Bước 2. Phát triển đối tượng bằng cách cài đặt giao diện remote/* SampleServerImpl.java */import java.rmi.*;import java.rmi.server.*;import java.rmi.registry.*;public class SampleServerImpl extends UnicastRemoteObject implements SampleServer{ SampleServerImpl() throws RemoteException { super(); }public int sum(int a,int b) throws RemoteException { return a + b; }} Bước 3. Phát triển chương trình client.import java.rmi.*;import java.rmi.server.*;public class SampleClient{ public static void main(String[] args){ // set the security manager for the client System.setSecurityManager(new RMISecurityManager()); try{ //get the remote object from the registry System.out.println(Security Manager loaded); String url = //localhost/SAMPLE-SERVER; SampleServer remoteObject = (SampleServer)Naming.lookup(url); System.out.println(Got remote object); System.out.println( 1 + 2 = + remoteObject.sum(1,2) ); } catch (RemoteException exc) { System.out.println(Error in lookup: + exc.toString()); } catch (java.net.MalformedURLException exc) { System.out.println(Malformed URL: + exc.toString()); } catch (java.rmi.NotBoundException exc) { System.out.println(NotBound: + exc.toString()); } }} Bước 3. Phát triển chương trình server./* SampleServerImpl.java */ public static void main(String args[]){ try { System.setSecurityManager(new RMISecurityManager()); //set the security manager //create a local instance of the object SampleServerImpl Server = new SampleServerImpl(); //put the local instance in the r ...