1. Trang chủ
  2. » Giáo Dục - Đào Tạo

RMI (Remote Method Invocation) pps

29 615 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 29
Dung lượng 801,11 KB

Nội dung

RMI (Remote Method Invocation) G i ph ng th c t xaọ ươ ứ ừ 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 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 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. 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. 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. 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. 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. 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) 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) [...]... Grant { //rmihost - RMI registry and the server //webhost –HTTP server for stub classes permission java.net.SocketPermission “rmihost:1024-65535”,”connect”; permission java.net.SocketPermission “webhost: 80”, “connect”; } Server liên kết với rmiregistry(và client) trên port ngẫu nhiên có trong nguồn Có thể thiết lập những chính sách trong java.policy đặt trong JAVA_HOME/lib/security/ RMI RMI Applet... RMI Các bước xây dựng 7 CHẠY CHƯƠNG TRÌNH rmiregistry.exe Mở cửa sổ DOS-prompt (cmd) chạy chương trình rmiregistry từ dòng lệnh như sau: C: \RMI> rmiregistry.exe Chương trình này chạy ở dạng service Nó có nhiệm vụ đón nhận các kết nối chứa thông tin về đối tượng do phương thức Naming.bind() gửi đến Mặc định rmiregistry.exe lắng nghe các kết nối gửi đến cổng 1099 RMI Các bước xây dựng 8 KHỞI ĐỘNG CÁC ĐỐI... được truyền theo tham trị RMI • Cấu hình Enterprise Những file stub cần được đặt trên một HTTP server cho việc download – Trong Java 2, giao thức RMI 1.2 không yêu cầu skeleton • Client phải cài đặt 1 RMISecurityManager để tải những lớp RMI từ xa – System.setSecurityManager (new RMISecurityManager()); • Client cần có một policy file để kết nối và đăng ký và HTTP server RMI Cấu hình Enterprise Policy... 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. .. JAVA_HOME/lib/security/ RMI RMI Applet • Applet không cần lớp RMI Security Manager • Applet chỉ có thể truy cập server trong những files lớp đã được load – RMI registry và server đối tượng ở xa của server phải cùng HTTP host nơi applet được load • • RMI 1.1 Giao thức stub không chính thức được hỗ trợ trên IE RMI 1.2 Giao thức stub cần Java plug-in hoặc Netscape 6 RMI SUMMARY • RMI là một giao thức thuần túy dựa vào Java... System.out.println(e); } } } 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... C: \RMI> javacCalculatorClient.java 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 RMI Các bước xây dựng... CalculatorServer như sau: C: \RMI> java CalculatorServer Exporting Calculator… Register Calculator! Cũng như rmiregistry.exe, saukhiCalculatorServer được gọi, hàm Naming.bind() sẽ đi vào vòng lặp vô tận để chờ nhận yêu cầu từ client đến RMI Các bước xây dựng 9 CHẠY CHƯƠNG TRÌNH PHÍA CLIENT Bây giờ ta mở thêm một cửa sổ DOS-prompt thứ ba để chạy chương trình CalculatorClient như sau: C: \RMI> java CalculatorClient... System.out.println(“ExportingCalculator…”); 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); } } } RMI Các bước xây dựng 4.XÂY DỰNG... server 9 Chạychương trình phía client 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 . RMI (Remote Method Invocation) G i ph ng th c t xaọ ươ ứ ừ 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 RMI Các vấn đề • Khái niệm RMI • Những. đề • 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 RMI Gọi phương thức từ xa • Thông thường các chương trình. Skeleton. 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ày đăng: 07/08/2014, 15:21

TỪ KHÓA LIÊN QUAN