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

Tài liệu Java RMI

39 1K 12
Tài liệu đã được kiểm tra trùng lặp

Đ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 39
Dung lượng 297,57 KB

Nội dung

Tài liệu Java RMI

Trang 1

Java RMI

thangld@uit.edu.vn Khoa Mạng máy tính và Truyền thông

Đại học Công nghệ Thông tin

Trang 2

Nội dung

n Tổng quanTổng quan

n KKỹ thuật gọi hàm từ xaỹ thuật gọi hàm từ xa

n Giới thiệu RMIGiới thiệu RMI

n Cài đặt ứng dụngCài đặt ứng dụng

n TruyTruyền tham số trong RMIền tham số trong RMI

n Load RMI Stubs tLoad RMI Stubs từ xaừ xa

n Dynamic Class Loading

Trang 3

Tổng quan [1]

n Triệu gọi phương thức/hàm cục bộTriệu gọi phương thức/hàm cục bộ

¨ Thông thường, trong ứng dụng, sau khi khởi Thông thường, trong ứng dụng, sau khi khởi tạo đối tượng, chúng ta có thể triệu gọi các

tạo đối tượng, chúng ta có thể triệu gọi các phương thức trên đối tượng đó

phương thức trên đối tượng đó

¨ Các đối tượng trong ứng dụng tồn tại trên Các đối tượng trong ứng dụng tồn tại trên

cùng m ột không gian bộ nhớ và thực thi trên

cùng m ột không gian bộ nhớ và thực thi trên cùng m ột máy tính

cùng m ột máy tính

Trang 4

Tổng quan [2]

n Triệu gọi phương thức/hàm từ xaTriệu gọi phương thức/hàm từ xa

¨ Một ứng dụng thực thi trên máy A gọi thực Một ứng dụng thực thi trên máy A gọi thực

hiện các phương thức của các đối tượng

hiện các phương thức của các đối tượng

đang thực thi trên máy B hoặc các máy tính khác

¨ Phương thức được triệu gọi từ xa, chạy trên Phương thức được triệu gọi từ xa, chạy trên máy tính ở xa; do đó, sử dụng các tài nguyên

máy tính ở xa; do đó, sử dụng các tài nguyên của máy tính ở xa

của máy tính ở xa

¨ Ứng dụng trên máy A có thể phải chờ

phương thức thực hiện xong và nhận kết quả

phương thức thực hiện xong và nhận kết quả trả về từ phương thức đó

trả về từ phương thức đó

Trang 5

Triệu gọi hàm từ xa

Client 1

Server Method 1

Method 2

Client 2

Trang 6

Kỹ thuật gọi hàm từ xa

n Remote Procedure Cal ls (RPC)

n Common Obj ect Reques t Broker Architecture (CORBA)

n Remote Method Invocati on (RMI)

Trang 9

RMI [1]

n KKỹ thuật triệu gọi phương thức thuộc các ỹ thuật triệu gọi phương thức thuộc các đối tượng trên các máy tính ở xa

n Nền tảng tính toán phân tán trên JavaNền tảng tính toán phân tán trên Java

n Hướng đối tượngHướng đối tượng

n RMI tích hRMI tích hợp mô hình phân tán đối tượng ợp mô hình phân tán đối tượng vào ngôn ng ữ lập trình Java

vào ngôn ng ữ lập trình Java

Trang 10

thống ở xa đồng thời cho phép triệu gọi

các phương thức của đối tượng đó

các phương thức của đối tượng đó

n Các RMI cl ient giao tiCác RMI cl ient giao tiếp với các đối tượng ếp với các đối tượng

ở xa thông qua

ở xa thông qua published interface published interface của đối của đối tượng

tượng

n RMI cung cRMI cung c ấp dịch vụ định vị đối tượng từ ấp dịch vụ định vị đối tượng từ

xa non non persistent persistent

Trang 11

RMI [3]

n Kiến trúc ClientKiến trúc Client ServerServer

¨ Server nắm giữ đối tượng phục vụ Server nắm giữ đối tượng phục vụ

¨ Client nắm giữ một RMI Stub dùng để truy Client nắm giữ một RMI Stub dùng để truy cập đến đối tượng ở phía Server

cập đến đối tượng ở phía Server

Trang 14

Kiến trúc RMI

Interface

Ứng dụng

sử dụng đối tượng ở xa

Đối tượng phục vụ từ xa Object stub Object skeleton

Network Protocols (TCP/IP)

RMI Protocol

Physical Network

Trang 15

Qui trình RMI

Interface

Cài đặt lớp đối tượng RMI

Phát sinh Stubs và Skel eton

Khởi động RMI registry

Khởi tạo đối tượng RMI

Đăng ký đối tượng với RMI Registry

Thực hiện quá trình tìm kiếm đối tượng

Nhận tham chiếu đến đối tượng RMI

Triệu gọi các phương thức từ xa Server

Server Side Side Client Client Side Side

Trang 16

Ứng dụng RMI

n Cài đặt một ứng dụng thực hiện các phép Cài đặt một ứng dụng thực hiện các phép toán cơ bản (cộng, trừ, nhân, chia) từ xatoán cơ bản (cộng, trừ, nhân, chia) từ xa

n Các thành phCác thành ph ần:ần:

¨ Đối tượng RMI

¨ Chương trình Server Chương trình Server

¨ Chương trình Client Chương trình Client

Trang 17

Mô hình ứng dụng RMI

RMIRegistry

RMIServer RMIClient

4 Client triệu gọi phương thức từ xa

5 Server trả kết quả về cho client

Trang 18

Đối tượng RMI

Trang 19

n Phạm vi truy xuất: Phạm vi truy xuất: publicpublic

n Dẫn xuất từ interface RemoteDẫn xuất từ interface Remote

n Khai báo các phKhai báo các phương thức phục vụ từ xa ương thức phục vụ từ xa Tất cả các phương thức này phải khai báo Tất cả các phương thức này phải khai báo

throws RemoteExcepti on

Trang 20

Ví dụ

import java.rmi.*;

public interface iCalculator extends Remote {

long Add(int x, int y) throws RemoteException; long Sub(int x, int y) throws RemoteException; long Div(int x, int y) throws RemoteException; long Mul(int x, int y) throws RemoteException; }

Trang 21

n Class Class phphảiải đượcđược thiếtthiết kếkế chocho phépphép truytruy

cập

cập từtừ xaxa::

¨ Thi Thi công công interface interface đã đã tạo tạo ở ở trên trên (Remote) (Remote)

¨ Thường Thường kế kế thừa thừa class class giao giao tiếp tiếp RMI RMI

((UnicastRemoteObject UnicastRemoteObject))

n ThườngThường chỉchỉ hỗhỗ trợtrợ gọigọi phươngphương thứcthức từtừ xaxa

n Cài đặtđặt cáccác phươngphương thứcthức RMIRMI

n TấtTất cảcả cáccác phươngphương thứcthức đềuđều phảiphải khaikhai báobáo

throws

throws RemoteExcepti on RemoteExcepti on

Trang 22

public long Add(

public long Add(int int x, x, int int y) y)

Trang 23

Stub & Skeleton

n ĐượcĐược tạotạo rara từtừ chươngchương trìnhtrình tiệntiện íchích rmicrmic

¨rmic rmic < <tên_class_implemet ation tên_class_implemet ation> >

n JDK1.5+, JDK1.5+, vớivới RMI v1.2RMI v1.2

¨rmic rmic chỉchỉ tạo tạo ra ra Stub Stub

Trang 24

n CầnCần cócó RMI Registry RMI Registry trướctrước khikhi thựcthực thithichương

chương trìnhtrình ServerServer

¨ Thực Thực thi thi chương chương trình trình rmiregistry.exe

¨ Khởi Khởi tạo tạo RMI Registry RMI Registry cục cục bộ bộ trong trong ch chương ương trình

trình Server Server

n KhKhởiởi tạotạo đốiđối tượngtượng RMIRMI

n Export đốiđối tượngtượng nếunếu cầncần thiếtthiết

n ĐăngĐăng kýký đốiđối tượngtượng vớivới RMI Registry RMI Registry vàvàchờ

chờ phụcphục vụvụ cáccác yêuyêu cầucầu RMIRMI

Trang 25

Ví dụ [1]

import java.io.*;

import java.rmi.*;

import java.rmi.registry.LocateRegistry;

public class CalculatorServer {

public static void main(String arg[])

throws Exception {

Registry reg =

LocateRegistry.createRegistry(1099);

CalculatorImpl cal = new CalculatorImpl();

iCalculator calRef = (iCalculator)

UnicastRemoteObject.exportObject(cal);

reg.bind(“Calculator”, calRef);

System.out.println(“RMI Object ready ”);

Trang 26

if (“EXIT”.compareIgnoreCase(

rdr.readLine()) == 0) break;

} reg.unbind(“Calculator”);

UnicastRemoteObject.unexportObject(cal);

}

}

Trang 27

n Bind và unbind Bind và unbind đối tượng RMIđối tượng RMI

#1

Naming.bind(“rmi://localhost:1099/RC”, obj); Naming.unbind(“rmi://localhost:1099/RC”);

#2

[Registry].bind(“RC”, obj);

[Registry].unbind(“RC”);

Trang 28

n Truy vấn RMI Registry để tìm kiếm đối Truy vấn RMI Registry để tìm kiếm đối tượng RMI

tượng RMI

n Triệu gọi phương thức từ xaTriệu gọi phương thức từ xa

n NhNhận và xử lý kết quả trả về (nếu có)ận và xử lý kết quả trả về (nếu có)

Trang 29

Ví dụ

import java.rmi.*;

public class CalculatorClient {

public static void main(String arg[])

throws Exception { iCalculator objRef = (iCalculator)

Naming.lookup(“rmi:///Calculator”); long s = objRef.Add(5, 7);

System.out.println(“Result = ” + s);

}

}

Trang 31

Truyền tham số trên JVM

n Kiểu dữ liệu cơ sở: truyền tham trị (giá trị Kiểu dữ liệu cơ sở: truyền tham trị (giá trị

của tham số được sao chép)

của tham số được sao chép)

n Các Các đối tượng được cấp phát trên vùng đối tượng được cấp phát trên vùng

nhớ Heap

nhớ Heap

n Đối tượng: truyền bằng tham chiếu

Trang 32

Tham trị trong RMI

n Kiểu dữ liệu cơ sở: giá trị của tham số Kiểu dữ liệu cơ sở: giá trị của tham số

được sao chép từ client

được sao chép từ client JVM sang server JVM sang server JVM và ngJVM và ngược lại.ược lại

n Đối tượng

¨ JVMs không chia s JVMs không chia s ẻ vùng nhớ Heap ẻ vùng nhớ Heap

¨ Thi công int erface Serializable

¨ Toàn bộ nội dung/giá trị của đối tượng được Toàn bộ nội dung/giá trị của đối tượng được sao chép và serialize để truyền đi

sao chép và serialize để truyền đi

Trang 33

Tham chiếu trong RMI [1]

n Áp dÁp dụng cho đối tượngụng cho đối tượng

n Tham chiTham chiếu đến đối tượng được truy vấn ếu đến đối tượng được truy vấn qua RMI Regi stry

n Tham chiTham chiếu đến đối tượng được truyền ếu đến đối tượng được truyền vào trong ph ương thức dưới dạng tham

vào trong ph ương thức dưới dạng tham

Trang 34

Tham chiếu trong RMI [2]

n Đối tượng

¨ Thi công int erface Remote

¨ Được export trước khi truyền đi

¨ Phải biên dịch Stub và Skeleton cho đối Phải biên dịch Stub và Skeleton cho đối tượng

tượng

Trang 35

Loading Stub t ừ xa [1]

Web Server

RMIRegistry

RMIServer RMIClient

1 Server đăng ký đối tượng phục vụ RMI

2 Client tìm kiếm đối

tượng phục vụ RMI

3 Registry trả về một stub của đối tượng phục vụ RMI

5 Client triệu gọi phương thức từ xa

6 Server trả kết quả về cho client

Trang 36

n Java command line parameter

Trang 37

Loading Stub t ừ xa [3]

n Java command line parameter

¨ - -Djava.security.policy Djava.security.policy= =java.policy java.policy

n File File java.policy java.policy

grant {

permission permission java.security.AllPermission java.security.AllPermission; ; };

Trang 38

Dynamic Class Loading

Trang 39

Q&A

Ngày đăng: 13/09/2012, 10:21

TỪ KHÓA LIÊN QUAN

w