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

RMI (Remote Method Invocation)

Chia sẻ: Nguyen Uyen | Ngày: | Loại File: PDF | Số trang:29

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

Khái niệm RMI Những bước xây dựng và ứng dụng RMI Chạy và biên dịch một chương trình RMI Cấu hình Enterprise RMI RMI Applet. Gọi phương thức từ xa: Thông thường các chương trình của chúng ta được viết dưới dạng thủ tục chay hàm. Mã lệnh của hàm (hay thủ tục) được nạp thẳng vào bộ nhớ và thực thi ngay trên máy cục bộ. Vậy thì có cách nào nạp nội dung của hàm hay đối tượng ở một máy nào đó và gọi chúng từ một máy khác hay không?...

Chủ đề:
Lưu

Nội dung Text: RMI (Remote Method Invocation)

  1. RMI (Remote Method Invocation) Gọi phương thức từ xa
  2. Nhóm 19 Lớp: 06TH1D Sinh viên: Phù Truyền Kiên 060044T Giang Quốc Quyền 060094T Phạm Duy Linh 060212T
  3. RMI Các vấn đề • Khái niệm RMI • Những bước xây dựng và ứng dụng RMI • Chạy và biên dịch một chương trình RMI • Cấu hình Enterprise RMI • RMI Applet
  4. RMI Gọi phương thức từ xa • Thông thường các chương trình của chúng ta được viết dưới dạng thủ tục chay hàm. Mã lệnh của hàm (hay thủ tục) được nạp thẳng vào bộ nhớ và thực thi ngay trên máy cục bộ. Vậy thì có cách nào nạp nội dung của hàm hay đối tượng ở một máy nào đó và gọi chúng từ một máy khác hay không? • RMI (Remote Method Invoke –có nghĩa là gọi phương thức từ xa) là cách thức giao tiếp giữa các đối tượng Java có mã lệnh cài đặt nằm trên máy khác nhau có thể gọi lẫn nhau.
  5. RMI Gọi phương thức từ xa • Việc phân phối các đối tượng qua những máy khác nhau để tận dụng phần cứng và phần mềm chuyên dụng • Người phát triển xây dựng mạng dịch vụ và cài đặt nó trên những máy cụ thể • Người dùng yêu cầu một thực thể thuộc lớp sử dụng cú pháp URL • Người dùng sử dụng đối tượng giống như nó là 1 đối tượng cụ thể, cục bộ • Kết nối mạng tự động • Các bản Java cho phép bạn vận chuyển những cấu trúc dữ liệu phức tạp thông qua mạng mà ko cần viết code để phân tích và xây dựng lại chúng.
  6. RMI Quá trình hoạt động • Ứng dụng RMI bao gồm hai chương trình riêng biệt, server (máy chủ) và client (máy khách) • Chương trình máy chủ sẽ tạo ra đối tượng ở xa, những đối tượng này được điều chỉnh có thể tham chiếu được và chờ cho đến khi máy khách thiết lập các phương thức gọi lên các đối tượng này. • Chương trình máy khách sẽ nhận được tham chiếu của một hay nhiều đối tượng sau đó tiến hành các phương thức gọi lên chúng.
  7. RMI Quá trình hoạt động • Các tham số truyền cho các phương thức của đối tượng ở xa phải được đóng gói và chuyển qua mạng để đến được với phương thức thực sự (việc truyền kết quả trở về cũng vậy). • Để giải quyết các vấn đề trên, đối tượng Java trên hai máy khác nhau không gọi nhau trực tiếp mà thông qua các lớp trung gian nằm trên cả máy khách và máy chủ. • Phía máy khách, lớp trung gian này được gọi là Stub. • Phía máy chủ, lớp trung gian này được gọi là Skeleton.
  8. RMI Quá trình hoạt động • Đầu tiên RMI-server đăng ký tên của nó với bộ Registry. •RMI-client tìm tên của RMI-server trong bộ Registry để thiết lập truy cập từ xa với RMI-server. •Stub đóng gói thamsố rồi gửi đến Skeleton. •Skeleton gọi phương thức từ xa rồi đóng gói kết quả gửi về Stub.
  9. RMI Quá trình hoạt động STUB • Hoạt động stub -Gói nhận dạng đối tượng từ xa -Gói phương pháp nhận dạng -Đóng gói các thông số -Gởi gói đến Skeleton của server (máy chính)
  10. RMI Quá trình hoạt động SKELETON • Hoạt động Skeleton -Mở gói tham số -Gọi giá trị trả về hoặc các ngoại lệ -Sắp xếp các phương pháp trả về -Gửi gói trở lại cho stub của client (máy khách)
  11. RMI Quá trình hoạt động GIAO TIẾP STUB VÀ SKELETON • Client gọi một phương thức từ xa, lời gọi này đầu tiên được chuyển tiếp đến Stub. • Stub có nhiệm vụ gửi tiếp lời yêu cầu này đến Skeleton phía server bằng cách Stub mở một socket đến server, đóng gói các tham số rồi truyền luồng dữ liệu này đến Skeleton. • Skeleton chứa đựng một phương thức nhận các lời yêu cầu từ xa, mở gói tham số, gọi hàm thực sự trên server để tính toán rồi trả kết quả về Stub phía client.
  12. RMI Các bước xây dựng 1. Định nghĩa một giao tiếp từ xa (remote interface) trên server. 2. Xây dựng một đối tượng từ xa (remote object) bằng cách Hiện thực giao tiếp từ xa (remote interface). 3. Xây dựng chương trình phía Server. 4. Xây dựng chương trình phía Client. 5. Biên dịch các file Java nguồn (phía client vàserver). 6. Sinh ra các Stub phía client và Skeleton phía server. 7. Khởi động bộ đăng ký RMI (RMI registry) 8. Khởi động các đối tượng từ xa phía server 9. Chạychương trình phía client.
  13. RMI Các bước xây dựng 1.ĐỊNH NGHĨA MỘT REMOTE INTERFACE Để tạo một ứng dụng RMI, bước đầu tiên là định nghĩa một Remote Interface giữa các đối tượng Client và Sever. Các phương thức trong Remote Inteface muốn được gọi từ xa đều phải có khả năng ném ra ngoại lệ Remote Exception. /* Calculator.java*/ package calculator; import java.rmi.*; public interface Calculator extends Remote { public int sum(int x,int y) throws RemoteException; }
  14. RMI Các bước xây dựng 2. HIỆN THỰC REMOTE INTERFACE Lớp Calculator ở bước1 chỉ là một Remote Interface, nó chỉ đặc tả các phương thức của đối tượng. Từ giao tiếp đó, đối tượng thực sự phải được cài đặt như sau: /* CalculatorImpl.java*/ import java.rmi.*; public class CalculatorImpl implements Calculator { public int addNum(int x,int y) throws RemoteException { System.out.println(“Client request to calculate”); return (x+y); } }
  15. RMI Các bước xây dựng 3.XÂY DỰNG CHƯƠNG TRÌNH TRÊN MÁY SERVER Bây giờ ta viết một chương trình để cài đặt đối tượng Calculator trên máy server. Ta đặt tên chương trình này là CalculatorServer: /* CalculatorServer.java*/ import java.rmi.server.*; Import java.rmi.*; public class CalculatorServer{ public static void main(Stringargs[]) { try{ //tạo đối tượng Calculator thực sự CalculatorImpl c= new CalculatorImpl(); System.out.println(“ExportingCalculator…”);
  16. RMI Các bước xây dựng 3.XÂY DỰNG CHƯƠNG TRÌNH TRÊN MÁY SERVER //thông báo sự hiện diện của đối tượng cho máy ảo Java UnicastRemoteObject.exportObject (c); //đăng ký đối tượng với bộ quản lý rmi Naming.bind(“rmi://localhost/Mycalculator”,c); System.out.println(“RegisterCalculator!”); } catch(Exceptione) { System.out.println(e); } } }
  17. RMI Các bước xây dựng 4.XÂY DỰNG CHƯƠNG TRÌNH PHÍA CLIENT Ở bước này ta thiết kế chương trình phía bên máy khách(client) có khả năng gọi và sử dụng đối tượng Calculator trên máy chủ (server), như sau: /* CalculatorClient.java*/ import java.rmi.*; public class CalculatorClient { public static void main(String args[]) { try{
  18. RMI Các bước xây dựng 4.XÂY DỰNG CHƯƠNG TRÌNH PHÍA CLIENT // tìm đối tượng cần truy xuất theo tên System.out.println(“Findingobject…”); Calculator c= (Calculator)Naming.lookup (“rmi://localhost/MyCalculator”); // gọi phương thức của đối tượng System.out.println(c.addNum(12,1)); } catch(Exception e) { System.out.println(e); } } }
  19. RMI Các bước xây dựng 5. BIÊN DỊCH CÁC FILE JAVA NGUỒN Phía server ta đã có các file nguồn là Calculator.java, CalculatorImpl.java, CalculatorServer.java. Tiến hành biên dịch chúng như sau: C:\RMI>javacCalculator.java C:\RMI>javacCalculatorImpl.java C:\RMI>javacCalculatorServer.java PhíabênClient ta đã có file nguồn là CalculatorClient.java. Tiến hành biên dịch như sau: C:\RMI>javacCalculatorClient.java
  20. RMI Các bước xây dựng 6. SINH LỚP TRUNG GIAN STUB & SKETLETON Dựa vào lớp cài đặt CalculatorImpl.class, trình biên dịch rmic.exe của Java sẽ cung cấp cho ta hai lớp trung gian Stub và Skeleton. Mở cửa sổ DOS-promp(cmd) rồi đánh lệnh biên dịch sau: C:\RMI>rmicCalculatorImpl Kết quả ta sẽ thu được hai tập tin CalculatorImpl_Stub.class và CalculatorImpl_Skel.class
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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