intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Kiếp Này Bình Yên | Ngày: | Loại File: PPT | Số trang:12

70
lượt xem
4
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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.

Chủ đề:
Lưu

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

  1. Java RMI 1
  2. 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
  3. Mô hình gọi đối tượng từ xa - RMI Local Machine (Client) Remote Machine (Server) SampleServer remoteObject; int s; … s = remoteObject.sum(1,2); 1,2 public int sum(int a,int b) { 3 return a + b; } System.out.println(s);
  4. Kiến trúc RMI Remote Machine bind RMI Server Registry skeleton return call lookup stub RMI Client Local Machine
  5. Java RMI Layers Java Virtual Machine Java Virtual Machine Client  Remote  Object Object Stub Skeleton Remote Reference Layer Remote Reference Layer TCP Transport Layer Transport Layer
  6. The Stub and Skeleton call skeleton Stub RMI Client RMI Server return Remote Interface implements implements Remote Object Client Stub Skeleton (Server)
  7. Mô hình các đối tượng phân tán Object classes Interfaces Remote RemoteObject IOException RemoteServer RemoteException Remote Interface UnicastRemoteObject extension implementation Stub Server Impl
  8. Các bước tạo RMI 1. Định nghĩa giao diện 2. Phát triển đối tượng bằng cách cài đặt giao diện remote 3. 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 server 8. Chạy client
  9. 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; }
  10. 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; } }
  11. 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()); } }}
  12. 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 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()); } }
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2