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

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

Đ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

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

Mục lục

  • Java RMI

  • Mục đích

  • Mô hình gọi đối tượng từ xa - RMI

  • Kiến trúc RMI

  • Java RMI Layers

  • The Stub and Skeleton

  • Mô hình các đối tượng phân tán

  • Các bước tạo RMI

  • Bước 1. Định nghĩa giao diện

  • Bước 2. Phát triển đối tượng bằng cách cài đặt giao diện remote

  • Bước 3. Phát triển chương trình client.

  • Bước 3. Phát triển chương trình server.

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan