1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

tiểu luận java rmi

51 397 8
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

Tiêu đề Tiểu luận Java RMI
Tác giả Nguyễn Phú Thịnh, Lê Xuân Mai
Người hướng dẫn TS. Hồ Bảo Quốc
Trường học Trường Đại Học Khoa Học Tự Nhiên, Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Khoa Học Máy Tính
Thể loại Tiểu luận
Thành phố Hồ Chí Minh
Định dạng
Số trang 51
Dung lượng 0,95 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Cách giao tiếp giữa các đối tượng Java có mã lệnh cài đặt bao gồm phương thức và thuộc tính nằm trên các máy khác nhau có thể triệu gọi lẫn nhau... Lớp STUB và SKELETONĐây là 2 lớp tru

Trang 1

JAVA RMI

GVHD: TS Hồ Bảo Quốc Thực hiện:

Nguyễn Phú Thịnh

Lê Xuân Mai

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN

KHOA CÔNG NGHỆ THÔNG TIN

Trang 2

MỤC LỤC

Trang 3

MỤC LỤC

Trang 4

JAVA RMI LÀ GÌ?

Kĩ thuật lập trình phân tán đối tượng trong Java.

Mang ý nghĩa triệu gọi đối tượng từ xa.

Cách giao tiếp giữa các đối tượng Java có

mã lệnh cài đặt (bao gồm phương thức và thuộc tính) nằm trên các máy khác nhau có thể triệu gọi lẫn nhau.

Trang 5

JAVA RMI LÀ GÌ?

Cơ chế truyền và quản lý biến dữ liệu trên hai máy khác nhau (mashall and unmashall) ?

Trang 6

Lớp STUB và SKELETON

Đây là 2 lớp trung gian giúp các đối tượng Java trên hai máy khác nhau giao tiếp với nhau

Stub: ở phía Client (nơi gọi phương thức của đối tượng ở xa).

Skeleton: ở phía Server (nơi đối tượng thật

sự được cài đặt để thực thi mã lệnh của phương thức).

Trang 7

Lớp STUB và SKELETON

Lớp trung gian Stub:

Trình biên dịch chuyển lời gọi đối

tượng C1 (server) của đối tượng A1

(client) tới Stub, đóng gói tham số

truyền qua mạng đến server.

Nếu có kết quả từ server trả về thì Stub

sẽ chuyển giao kết quả cho đối tượng A1.

Trang 8

Lớp STUB và SKELETON

Lớp trung gian Skeleton:

 Nhận tham số từ Client và chuyển vào vùng không gian địa chỉ tương thích với đối tượng C1, sau đó gọi phương thức tương ứng.

 Nếu có kết quả trả về từ phương thức

của đối tượng C1, Skeleton sẽ đóng gói

và trả ngược về Client

Trang 9

Lớp STUB và SKELETON

A1 gọi phương thức của C1 như thế nào ?

?

Trang 10

Cơ chế RMI gọi phương thức từ xa

Trang 11

Bộ đăng ký RMIregistry

 Bộ đăng ký có chức năng như một dịch vụ tìm kiếm

 Nơi mà đối tượng trên server đăng ký tên để client truytìm từ xa

 Chương trình chạy ở dạng service: mở socket và lắngnghe các yêu cầu gửi đến cổng 1099 Có thể chỉ định một

số cổng khác với cổng mặc định

 Java cho phép kết nối với bộ đăng kí để lấy danh sáchcác đối tượng mà RMIregistry đang quản lý

// Kết nối với bộ đăng kí

Registry registry = LocateRegistry.getRegistry(hostAddr);

// Lấy về danh sách các đối tượng do rmiregistry nắm giữ

String objectAvailable[] = registry.list();

Trang 12

Naming.bind(“rmi://localhost:1234/myhello”, hello);

Trang 13

Bộ đăng ký RMIregistry

Cơ chế làm việc của máy ảo Java khi đăng kí và gọi đốitượng giữa Server và Client

Trang 14

Bộ đăng ký RMIregistry

Cơ chế làm việc của máy ảo Java trên mô hình máy mạngvật lý thực sự

Trang 15

Biến Classpath và Tùy chọn Codebase

Trang 16

TUẦN TỰ HÓA (SERIALIZABLE) ĐỐI TƯỢNG

Khả năng ghi toàn bộ đối tượng xuống một tập tin.

Nếu cần thì khôi phục đối tượng về trạng thái ban đầu, đưa đối tượng vào bộ nhớ sử dụng đúng

y như tình trạng trước khi đối tượng này được ghi xuống đĩa.

Trong Java, khai báo đối tượng tuần tự hóa bằng

cách cài đặt interface java.io.Serializable

Là nền tảng và được dùng trong cơ chế hoạt động truyền dữ liệu kiểu đối tượng trong máy ảo Java và giữa những máy ảo Java với nhau.

Trang 17

VÍ DỤ VỀ CƠ CHẾ HOẠT ĐỘNG CỦA RMI

Trang 20

MỤC LỤC

Trang 21

Cơ chế nạp tự động lớp STUB xuống máy khách

Vấn đề:

 Khi viết chương trình từ Client, lập trình viên chỉ cần đến lớp interface mà Server cung cấp.

 Lớp STUB chỉ cần thiết cho cơ chế RMI và không

có ý nghĩa với nhà phát triển ứng dụng

Lập trình viên không cần quan tâm đến lớp STUB ?

Giải pháp:

 Cách thức nạp tự động lớp STUB thông qua tùy chọn CODEBASE khi đăng kí đối tượng với rmiregistry trên server

 Lưu ý: Server phải hỗ trợ thêm dịch vụ web server.

Trang 22

Cơ chế nạp tự động lớp STUB xuống máy khách

Trang 23

 Nạp tập tin từ xa và Chính sách bảo mật từ phía Client

 Các thao tác kết nối và chép tập tin lạ từ một máy khác về máyClient đều phải thông qua lớp bảo về SecurityManager

 RMISecurityManager sử dụng thiết lập trong file java.policy đểcho phép hoặc cấm các kết nối từ xa

VD:

Grant {

permission java.security.AllPermission}

 Chạy chương trình:

Java –Djava.rmi.server.codebase =

“http://path/of/folder/contain/_stub” CalculatorServer

Trang 24

Cơ chế nạp tự động lớp STUB xuống máy khách

Trang 25

Chuyển tham số trong các lời gọi phương thức từ xa

Tất cả các kiểu dữ liệu đơn giản như int, char…đều được truyền theo tham trị

Tất cả các dữ liệu đối tượng muốn truyền qua mạng đều buộc phải cài đặt 1 trong 2 giao tiếp:

Remote: Đối tượng sẽ truyền theo tham chiếu.

Serializable : Đối tượng sẽ truyền theo tham trị.

 Trong các lời gọi phương thức RMI, kiểu dữ liệu đốitượng nếu không cài đặt một trong hai giao tiếp thì sẽkhông thể dùng làm tham số chuyển qua mạng được

Trang 26

Chuyển đối tượng đến server theo tham trị

- Client gọi một phương thức của đối tượng trên server, nếu trong lời gọi phương thức có yêu cầu tham số là kiểu đối tượng, đối tượng sẽ được đóng gói chuyển toàn bộ đến server (lớp _Stub) Tại server đối tượng sẽ được bung ra lại trạng thái ban đầu và đưa vào sử dụng (lớp _Skel).

Mashalling data

- Đối tượng phải được cài đặt interface Serializable

Trang 27

Chuyển đối tượng đến server theo tham trị

Trang 33

Chuyển đối tượng đến server theo tham biến

- Vấn đề: nếu đối tượng cần truyền lên server

quá lớn, ảnh hưởng tốc độ thực thi của

chương trình.

Server có thể tham chiếu và xử lý trực tiếp

đối tượng đang ở Client ?

- Giải pháp: Client sẽ chuyển đối tượng cho

Server theo tham chiếu.

Server và Client có thể triệu gọi lẫn nhau

- Đối tượng phải được cài đặt interface

Remote

Trang 34

Chuyển đối tượng đến server theo tham biến

Trang 39

Chuyển đối tượng đến server theo tham trị

Trang 40

Dùng một đối tượng sản sinh nhiều đối tượng

(Factory Object)

Vấn đề: khi xây dựng đối tượng chủ, chúng ta

phải đặt cho đối tượng một tên, đăng kí tên đối tượng với rmiregistry.

Nhà phát triển ứng dụng trên Client phải nhớ hết tên của những đối tượng này.

Trang 41

Dùng một đối tượng sản sinh nhiều đối tượng (Factory Object)

Trang 42

Gọi đối tượng từ xa bằng phương thức động

(Dynamic Method Invoke)

Vấn đề: khi Client muốn gọi phương thức của đối tượng:

 (Hello) obj = (Hello)Naming.lookup(“rmi://localhost/myhello”) obj->sayHello;

 Đây là cách gọi hàm tĩnh vì Client chuyển kiểu đối tượng về dạng tường minh

 Nếu bạn không có lớp interface Hello trong tay ?

Giải pháp: Sử dụng kỹ thuật phản chiếu (reflect) của Java

để thực hiện triệu gọi phương thức động.

 Lấy tham chiếu của đối tượng bằng hàm Naming.lookup() ở dạng tổng quát Object

 Sử dụng Object và gọi phương thức getMethod() để biết phương thức mà Object đang nắm giữ.

 Invoke(): thực thi phương thức bên trong đối tượng.

Trang 43

Tự động kích hoạt đối tượng từ xa (Activation)

Vấn đề:

 Server có bao nhiêu đối tượng được cài đặt, thì phải cấpphát bộ nhớ cho bấy nhiêu đối tượng đó, để sẵn sàngphục vụ Client

Hao tốn tài nguyên vì không phải tất cả đối tượng đềuđược sử dụng tại cùng một thời điểm

Giải pháp:

 Cơ chế tự động kích hoạt đối tượng trên server khi client

có yêu cầu sử dụng

 Chỉ cần đăng ký sự hiện diện của đối tượng trên server

 Chương trình rmid.exe: tiếp nhận sự hiện diện của đốitượng và tự động khởi tạo đối tượng khi Client có yêu cầu.

Trang 44

Trình mồi nạp ứng dụng từ xa

Vấn đề:

 Server: cài đặt một ứng dụng hoàn chỉnh

 Client: không phải cài đặt gì hết mà chỉ gọi ứng dựng từ Server

Trang 46

RMIregistry và các vấn đề về Firewall

Trang 47

Giải pháp:

 Cơ chế trung gian thông qua cổng 80 của Web server, còn gọi là cơ chế “luồn hầm” (tunneling)

Trang 48

RMIregistry và các vấn đề về Firewall

Trang 49

Khó khăn: cài đặt phức tạp, tốn chi phí cao

Mô hình Web service và giao thức SOAP dựa trên XML.

Trang 50

MỤC LỤC

Trang 51

CHÂN THÀNH CÁM ƠN

Ngày đăng: 07/04/2014, 21:23

TỪ KHÓA LIÊN QUAN

w