Java RMIJava RMI
@uit.edu.vn
Khoa Mạng máy tính và Truyền thôngKhoa Mạng máy tính và Truyền thông
Đại học Công nghệ Thông tinĐại học Công nghệ Thông tin
Nội dungNội dung
nn
Tổng quanTổng quan
nn
Kỹ thuật gọi hàm từ xaKỹ thuật gọi hàm từ xa
nn
Giới thiệu RMIGiới thiệu RMI
nn
Cài đặt ứng dụngCài đặt ứng dụng
nn
Truyền tham số trong RMITruyền tham số trong RMI
nn
Load RMI Stubs từ xaLoad RMI Stubs từ xa
nn
Dynamic Class LoadingDynamic Class Loading
Tổng quan [1]Tổng quan [1]
nn
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ínhcùng một máy tính
Tổng quan [2]Tổng quan [2]
nn
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 đang thực thi trên máy B hoặc các máy tính
kháckhá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 ở xacủa máy tính ở xa
¨¨
Ứng dụng trên máy A có thể phải chờ Ứ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 đó
Triệu gọi hàm từ xaTriệu gọi hàm từ xa
Client 1
Server
Method 1
Method 2
Client 2
Kỹ thuật gọi hàm từ xaKỹ thuật gọi hàm từ xa
nn
Remote Procedure Cal ls (RPC)Remote Procedure Cal ls (RPC)
nn
Common Object Request Broker Common Object Request Broker
Architecture (CORBA)Architecture (CORBA)
nn
Remote Method Invocati on (RMI)Remote Method Invocati on (RMI)
RPCRPC
nn
Kỹ thuật triệu gọi hàm/thủ tục trên các Kỹ thuật triệu gọi hàm/thủ tục trên các
máy tính ở xamáy tính ở xa
nn
Cho phép triển khai trên các hệ thống máy Cho phép triển khai trên các hệ thống máy
tính khác nhautính khác nhau
nn
Có thể cài đặt bằng nhiều ngôn ngữ lập Có thể cài đặt bằng nhiều ngôn ngữ lập
trình khác nhautrình khác nhau
nn
Hướng thủ tụcHướng thủ tục
CORBACORBA
nn
Đặt tả truy vấn đối tượng trên các máy Đặt tả truy vấn đối tượng trên các máy
tính ở xatính ở xa
nn
Sử dụng ngôn ngữ định nghĩa giao tiếp Sử dụng ngôn ngữ định nghĩa giao tiếp
theo kiểu đối tượng (Interface Definition theo kiểu đối tượng (Interface Definition
Languages)Languages)
nn
Độc lập với hệ thống máy tính và ngôn Độc lập với hệ thống máy tính và ngôn
ngữ lập trìnhngữ lập trình
nn
Hướng đối tượngHướng đối tượng
RMI [1]RMI [1]
nn
Kỹ thuật triệu gọi phương thức thuộc các Kỹ 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đối tượng trên các máy tính ở xa
nn
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
nn
Hướng đối tượngHướng đối tượng
nn
RMI tích hợp mô hình phân tán đối tượng RMI tích hợp mô hình phân tán đối tượng
vào ngôn ngữ lập trình Javavào ngôn ngữ lập trình Java
RMI [2]RMI [2]
nn
RMI cho phép một chương trình nắm giữ RMI cho phép một chương trình nắm giữ
tham chiếu đến một đối tượng trên một hệ tham chiếu đến một đối tượng trên một hệ
thống ở xa đồng thời cho phép triệu gọi 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 đó
nn
Các RMI client giao tiếp với các đối tượng Các RMI client giao tiếp với các đối tượng
ở xa thông qua ở xa thông qua published interfacepublished interface của đối của đối
tượngtượng
nn
RMI cung cấp dịch vụ định vị đối tượng từ RMI cung cấp dịch vụ định vị đối tượng từ
xa xa nonnon--persistentpersistent
RMI [3]RMI [3]
nn
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 Servercập đến đối tượng ở phía Server
RMI StubsRMI Stubs
nn
Đóng vai trò là một proxy của đối tượng ở Đóng vai trò là một proxy của đối tượng ở
xa trên hệ thống clientxa trên hệ thống client
nn
Cung cấp cơ chế đóng gói các lời gọi Cung cấp cơ chế đóng gói các lời gọi
phương thức từ xa và gửi đến hệ thống phương thức từ xa và gửi đến hệ thống
serverserver
RMI SkeletonsRMI Skeletons
nn
Tương tác trực tiếp với các RMI Stubs Tương tác trực tiếp với các RMI Stubs
trên hệ thống clienttrên hệ thống client
nn
Nhận các lời triệu gọi phương thức từ xa, Nhận các lời triệu gọi phương thức từ xa,
trích xuất dữ liệu và thực hiện triệu gọi đối trích xuất dữ liệu và thực hiện triệu gọi đối
tượng phục vụtượng phục vụ
Kiến trúc RMIKiế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
Qui trình RMIQui 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
ServerServer--SideSide ClientClient--SideSide