Siêu thị PDFTải ngay đi em, trời tối mất

Thư viện tri thức trực tuyến

Kho tài liệu với 50,000+ tài liệu học thuật

© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Phân tán đối tượng trong Java bằng RMI
MIỄN PHÍ
Số trang
12
Kích thước
205.9 KB
Định dạng
PDF
Lượt xem
1210

Phân tán đối tượng trong Java bằng RMI

Nội dung xem thử

Mô tả chi tiết

Chương 8

Phân tán đối tượng trong Java bằng RMI

1. Tổng quan

RMI là một cơ chế cho phép một đối tượng đang chạy trên một máy ảo Java này

( Java Virtual Machine) gọi các phương thức của một đối tượng đang tồn tại trên một máy

ảo Java khác (JVM).

Thực chất RMI là một cơ chế gọi phương thức từ xa đã được thực hiện và tích hợp

trong ngôn ngữ Java. Vì Java là một ngôn ngữ lập trình hướng đối tượng, nên phương

pháp lập trình trong RMI là phương pháp hướng đối tượng do đó các thao tác hay các lời

gọi phương thức đều liên quan đến đối tượng. Ngoài ra, RMI còn cho phép một Client có

thể gửi tới một đối tượng đến cho Server xử lý, và đối tượng này cũng có thể được xem

là tham số cho lời gọi hàm từ xa, đối tượng này cũng có những dữ liệu bên trong và các

hành vi như một đối tượng thực sự.

So sánh giữ gọi phương thức từ xa với các lời gọi thủ tục từ xa

Gọi phương thức từ xa không phải là một khái niệm mới. Thậm chí trước khi ra đời

lập trình hướng đối tượng phần mềm đã có thể gọi các hàm và các thủ tục từ xa. Các hệ

thống như RPC đã được sử dụng trong nhiều năm và hiện nay vẫn được sử dụng.

Trước hết, Java là một ngôn ngữ độc lập với nền và cho phép các ứng dụng Java

truyền tin với các ứng dụng Java đang chạy trên bất kỳ phần cứng và hệ điều hành nào

có hỗ trợ JVM. Sự khác biệt chính giữa hai mục tiêu là RPC hỗ trợ đa ngôn ngữ, ngược

lại RMI chỉ hỗ trợ các ứng dụng được viết bằng Java.

Ngoài vấn đề về ngôn ngữ và hệ thống, có một số sự khác biệt căn bản giữa RPC

và RMI. Gọi phương thức từ xa làm việc với các đối tượng, cho phép các phương thức

chấp nhận và trả về các đối tượng Java cũng như các kiểu dữ liệu nguyên tố (premitive

type). Ngược lại gọi thủ tục từ xa không hỗ trợ khái niệm đối tượng. Các thông điệp gửi

cho một dịch vụ RPC (Remote Procedure Calling) được biểu diễn bởi ngôn ngữ XDR

(External Data Representation): dạng thức biểu diễn dữ liệu ngoài. Chỉ có các kiểu dữ liệu

có thể được định nghĩa bởi XDR mới có thể truyền đi.

2. Mục đích của RMI

• Hỗ trợ gọi phương thức từ xa trên các đối tượng trong các máy ảo khác nhau

• Hỗ trợ gọi ngược phương thức ngược từ server tới các applet

• Tích hợp mô hình đối tượng phân tán vào ngôn ngữ lập trình Java theo một cách

tự nhiên trong khi vẫn duy trì các ngữ cảnh đối tượng của ngôn ngữ lập trình Java

• Làm cho sự khác biệt giữa mô hình đối tượng phân tán và mô hình đối tượng cục

bộ không có sự khác biệt.

• Tạo ra các ứng dụng phân tán có độ tin cậy một cách dễ dàng

• Duy trì sự an toàn kiểu được cung cấp bởi môi trường thời gian chạy của nền tảng

Java

• Hỗ trợ các ngữ cảnh tham chiếu khác nhau cho các đối tượng từ xa

• Duy trì môi trường an toàn của Java bằng các trình bảo an và các trình nạp lớp.

3. Một số thuật ngữ

Cũng như tất cả các chương trình khác trong Java, chương trình RMI cũng được

xây dựng bởi các giao tiếp và lớp. Giao tiếp định nghĩa các phương thức và các lớp thực

thi các phương thức đó. Ngoài ra lớp còn thực hiện một vài phương thức khác. Nhưng

chỉ có những phương thức khai báo trong giao tiếp thừa kế từ giao tiếp Remote hoặc các

159

Tải ngay đi em, còn do dự, trời tối mất!