1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình mạng: Chương 9 - ĐH Công nghệ Đồng Nai

12 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 244,5 KB

Nội dung

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.

Java RMI Mục đích      Hỗ trợ gọi phương thức từ xa đối tượng máy ảo khác Tích hợp mơ hình đối tượng phân tán vào Java Làm cho khác biệt mơ hình đối tượng phân tán mơ hình đối tượng cục khơng có khác biệt Tạo ứng dụng phân tán có độ tin cậy cách dễ dàng Duy trì an tồn kiểu cung cấp mơi trường thời gian chạy tảng Java Mơ hình gọi đối tượng từ xa - RMI Remote Machine (Server) Local Machine (Client) SampleServer remoteObject; int s; … s = remoteObject.sum(1,2); 1,2 System.out.println(s); public int sum(int a,int b) { return a + b; } Kiến trúc RMI Remote Machine bind RMI Server Registry skeleton return call stub RMI Client Local Machine lookup Java RMI Layers Java Virtual Machine Java Virtual Machine Client Object Remote Object Stub Skeleton Remote Reference Layer Remote Reference Layer Transport Layer TCP Transport Layer The Stub and Skeleton Stub RMI Client return skeleton call RMI Server Mơ hình đối tượng phân tán Interfaces Remote Object classes RemoteObject RemoteServer Remote Interface IOException RemoteException UnicastRemoteObject extension implementation Stub Server Impl Các bước tạo RMI Định nghĩa giao diện Phát triển đối tượng cách cài đặt giao diện remote Phát triển chương trình client, server Biên dịch tập tin java Tạo đối tượng stub skeleton Khởi động RMI registry Chạy đối tượng remote server Chạy client Bước Đị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 Phát triển đối tượ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 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(" + = " + 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 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 registry Naming.rebind("SAMPLE-SERVER" , Server); System.out.println("Server waiting "); } catch (java.net.MalformedURLException me) { System.out.println("Malformed URL: " + me.toString()); } catch (RemoteException re) { System.out.println("Remote exception: " + re.toString()); } } ... bước tạo RMI Định nghĩa giao diện Phát triển đối tượng cách cài đặt giao diện remote Phát triển chương trình client, server Biên dịch tập tin java Tạo đối tượng stub skeleton Khởi động RMI registry... super(); } public int sum(int a,int b) throws RemoteException { return a + b; } } Bước Phát triển chương trình client import java.rmi.*; import java.rmi.server.*; public class SampleClient{ public... (java.rmi.NotBoundException exc) { System.out.println("NotBound: " + exc.toString()); } }} Bước Phát triển chương trình server /* SampleServerImpl.java */ public static void main(String args[]){ try { System.setSecurityManager(new

Ngày đăng: 11/05/2021, 00:21