
1) Tính trong suốt của một hệ thống phân tán
sự che dấu người dùng và người lập trình ứng dụng về sự tồn tại độc lập của các
thành phần của hệ thống, sao cho hệ thống đượ c cảm nhận như một tổng thể
hơn là tập hcủa các thành phân độc lập
Các loại trong suốt :
Trong suốt truy xuất (Access transparency) : người dùng không biết được
là đang truy xuất đến tài nguyên cục bộ hay tài nguyên nằm trên một vị
trí khác trên hệ thống vì mọi tài nguyên đều có cách truy xuất giống nhau
Trong suốt vị trí (Location transparency): người dùng không biết cũng
như không quan tâm vị trí của các tài nguyên trên hệ thống vì vị trí của
chúng không ảnh hướng đến cách thức truy xuất
Trong suốt thay đổi vị trí (Migration transparency) : một tài nguyên có
thể thay đổi vị trí mà không ảnh hưởng đến hoạt động của hệ thống
◦ Trong suốt tái định vị (elocation transparency) : ta có thể chuyển tài
nguyên từ máy này sang máy khác mà không làm ảnh hưởng đến sự hoạt
động của hệ thống trong khi đang sử dụng tài nguyên này
◦ Trong suốt nhân bản (replication transparency): Ta có thể nhân bản
một tài nguyên và đặt ở nhiều vị trí khác nhau nhưng người dung không
biết sự tồn tại của các nhân bản này
◦ Trong suốt truy xu ất đồng thời (Concurrency transparency) : một tài
nguyên có thể đượ c chia sẽ cho nhiều người và bởi nhiều người , nhưng
người dung không biết về sự chia sẻ tài nguyên này
◦ trong suốt sự cố: Nếu có sự cố tại một vị trí thì hệ thống phải tự động
khắc phục bằng cách truy xuất đến tài nguyên nằm trên vị trí khác, sau
khi sự cố đã được khắc phục thì tự động cho phép truy xuất lại tài
nguyên
◦Trong s ốt về sự bền vững (Persistence transparency): ): che giấu việc di
chuyển tài nguyên từ bộ nhớ ngoài vào bộ nhớ trong và ngược lại.
2) Quá trình Marshalling và Unmarshalling trong phương thức gọi đối tượng từ xa
Marshalling : Khi một stub truyền một yêu cầu tới một đối tượng skeleton, nó
phải đóng gói các tham số (hoặc là các kiểu dữ liệu nguyên tố, các đối tượng
hoặc cả hai) để truyền đi, quá trình này được gọi là marshalling.
Unmarshalling : Tại phía skeleton các tham số được khôi phục lại để tạo nên các
kiểu dữ liệu nguyên tố và các đối tượng, quá trình này còn được gọi là
unmarshaling

3) Sơ đồ gọi phương thức của các đối tượng ở xa thông qua lớp trung gian được
cụ thể hoá như sau:
Computer B
Computer A
A1
A2
C1- stub
B1_stub
Computer C
C1–Skel
C1
B1
B1—Skel

Hình 8.4
Ta có đối tượng C1 được cài đặt trên máy C. Trình biên dịch rmic.exe sẽ
tạo ra hai lớp trung gian C1_Skel và C1_Stub. Lớp C1_Stub sẽ được đem
về máy A. Khi A1 trên máy A gọi C1 nó sẽ chuyển lời gọi đến lớp
C1_Stub, C1_Stub chịu trách nhiệm đóng gói tham số, chuyển vào 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ó phương thức của đối tượng C1 trả về sẽ được lớp C1_Skel đóng
gói trả ngược về cho C1_Stub chuyển giao kết quả cuối cùng lại cho A1.
Nếu khi kết nối mạng gặp sự cố thì lớp trung gian Stub sẽ thông báo lỗi
đến đối tượng A1. Theo cơ chế này A1 luôn nghĩ rằng nó đang hoạt động
trực tiếp với đối tượng C1 trên máy cục bộ.
Trên thực tế, C1_Stub trên máy A chỉ làm lớp trung gian chuyển đổi tham
số và thực hiện các giao thức mạng, nó không phải là hình ảnh của đối
tượng C1. Để làm được điều này, đói tượng C1 cần cung cấp một giao
diện tương ứng với các phương thức cho phép đối tượng A1 gọi nó trên
máy A.
4) Corba
CORBA còn được gọi là ngôn ngữ đặc tả giao tiếp (IDL – Interface Description
Language)
Là kiến trúc trung gian của các ứng dụng phân tán
Có thể chạy trên mọi nền tảng
Có thể tự định vị các đối tượng trên môi trường phân tán
Các đối tượng có thể được viết bằng bất kỳ một ngôn ngữ lập trình nào
Cấu trúc của Corba

ORB
ORB
ORB
Network
C++
Corba
Object
Delphi
Corba
Object
Java
Corba
Object

ORB (Object Request Broker)
•Các đối tượng sau khi tạo ra bởi các ngôn ngữ lập trình khác nhau phải được gọi
thông qua một chương trình môi giới trung gian của CORBA gọi là ORB.
•ORB hoạt động nhờ ngôn ngữ đặc tả IDL.
•Dựa vào IDL, ORB sẽ biết được tên phương thức cần gọi, đối số, trị trả về,…Từ đó
ORB có thể gọi phương thức của đối tuợng.
•ORB hoàn toàn trong suốt (transparent) đối với lập trình viên và người sử dụng.
ORB ORB
Intermidiate class
_Stub
Intermidiate class
_Skel
C++
Client
Java
Corba
Object
IIOP
Client Server