Tải bản đầy đủ

Giáo trình Hệ Phân Tán

HỆ PHÂN TÁN
(Distributed Systems)

Chương 1: TỔNG QUAN VỀ HỆ PHÂN TÁN
Công nghệ thông tin và viễn thông ngày càng phát triển, đòi hỏi nhu cầu về xử lí thông
tin ngày càng cao, nhanh hơn nhiều lần tốc độ phát triển của tài nguyên phần cứng và phần
mềm. Có nhiều vấn đề đặt ra mà các hệ thống tập trung thông thường không đáp ứng được,
do tốc độ xử lí còn hạn chế. Xây dựng một hệ thống phân tán có khả năng xử lí đồng thời
một bài toán trên nhiều máy tính là một hướng giải quyết khả thi và đã được chứng minh tính
hữu dụng. Hệ thống phân tán còn tạo nhiều thuận lợi trong việc chia sẻ thông tin trên toàn thế
giới
Mặt khác sự phát triển không ngừng của các kỹ thuật tiên tiến về máy tính, đặc biệt là
các giải pháp mạng, cùng với sự bùng nổ nhanh chóng các dịch vụ và nguồn thông tin trên
mạng đã làm gia tăng số người sử dụng Internet đến con số hàng tỷ (theo International Data
Corp, tính đến cuối năm 2006 sẽ có hơn 1 tỷ người trên toàn thế giới kết nối Internet). Các
đặc điểm của nguồn thông tin, tổ chức mạng, cũng như việc khai thác, xử lý thông tin ngày
càng trở nên phức tạp và đa dạng hơn, có thể kể đến các khuynh hướng chính yếu:
Các thiết bị di động (Mobile devices): Việc cung cấp các phần mềm, các dịch vụ hỗ
trợ hiệu quả cho lớp thiết bị di động (laptop, PDAs đến điện thoại di động hay sổ tay điện
tử...) này vẫn đang phải đối mặt với nhiều khó khăn vì các thiết bị di động thường có tài
nguyên hạn hep, và thường dựa trên các kết nối với băng thông thấp, độ trễ cao của đường

điện thoại, hay mạng không dây.
Người dùng di động (Mobile users): Ngày nay người dùng thường có nhu cầu truy
cập vào máy tính của mình, tài khoản của mình từ bất cứ đâu, vì thế việc hỗ trợ kết nối ở mọi
nơi, mọi lúc và trên mọi thiết bị là một thách thức được đặt ra.
Nhu cầu chuyên biệt hoá: Việc khai thác thông tin, sử dụng dịch vụ đã không còn
thỏa mãn với các cơ chế thụ động, mà người dùng thường có khuynh hướng muốn chuyên
biệt hoá nhu cầu của mình một cách chủ động. Internet là cơ sở để thực hiện mong muốn
này, vấn đề còn lại là khả năng hỗ trợ chuyên biệt hoá của các ứng dụng mạng dành cho
người dùng.
Nguồn tin đa dạng, khối lượng cực lớn: Đã xuất hiện sự bùng nổ thông tin trên
mạng với sự xuất hiện của nhiều kho dữ liệu khổng lồ. Các kho dữ liệu này lại được cung cấp
từ nhiều nguồn nên thường không đồng nhất về tổ chức, đây sẽ lại là một khó khăn mới đối
với người dùng khi truy vấn.
Gia tăng sử dụng mạng cục bộ: Việc các mạng Intranet được xây dựng phổ biến là
một điều kiện tốt để triển khai các kỹ thuật mới trong việc xây dựng các ứng dụng mạng, vì
Trang 1


Intranet cho phép việc thiết lập an toàn hệ thống dễ dàng hơn trong một tập hợp mang tính
cộng tác và tin cậy.
Môi trường không đồng nhất: Khi kết nối các máy tính, các mạng cục bộ vào
Internet, các ứng dụng và người dùng phải đối mặt với một môi trường không đồng nhất cả
về phần cứng, lẫn về kiến trúc, hệ điều hành…Và bài toán tương thích, dễ mang chuyển sẽ là
vấn đề cần giải quyết ở đây.
Sự khập khiễng về đường truyền: Mặc dù ngành viễn thông đã đạt đến những tiến
bộ đáng kinh ngạc, và cho ra đời các loại cáp quang với tốc độ truyền tải nhanh đáng kể, đa
số người dùng vẫn bị giới hạn với các thiết bị kết nối như modem hay các đường truyền băng
thông thấp với mạng không dây.
Với tất cả các đặc điểm trên đây, các ứng dụng phân tán phát triển theo mô hình
client-server truyền thống tỏ ra một số bất lợi vì đòi hỏi làm việc đồng bộ, đòi hỏi đường
truyền băng thông cao, độ trễ thấp và cuối cùng là các dịch vụ thiếu linh động, khó thay đổi
hay bổ sung. Mobile Agent là một mô hình trong đó các tiến trình - được gọi là agent - có
tính tự trị và khả năng di động từ máy chủ này sang máy chủ khác để hoàn tất tác vụ. Ý
tưởng chủ đạo của mobile agent là di chuyển xử lý đến gần nguồn dữ liệu, nhờ đó có thể
giảm tải mạng, khắc phục tình trạng trễ, hỗ trợ xử lý không đồng bộ và tạo ra sự tưng thích
mạnh trên các môi trường không đồng nhất. Mobile agent với các ưu điểm này hứa hẹn một
giải pháp mới, hiệu quả và dễ dàng hơn trong việc phát triển ứng dụng phân tán.
1.1. Định nghĩa
Có rất nhiều định nghĩa được đưa ra cho hệ phân tán. Sau đây là một số định nghĩa:
- Hệ phân tán là một hệ thống có chức năng và dữ liệu phân tán trên các trạm (máy tính)

được kết nối với nhau bởi một mạng máy tính.
- Hệ phân tán là một tập các máy tính độc lập giao tiếp với người dùng như một hệ thống
thống nhất, toàn vẹn.
- Hệ phân tán là tập hợp các máy tính tự trị được kết nối với nhau bởi một mạng máy tính và
được cài đặt phần mềm hệ phân tán
Distributed systems software
Hệ phân tán = Mạng máy tính + Phần mềm Hệ phân tán
Ví dụ Hệ phân tán
1. Mạng máy tính là 1 hệ phân tán trong đó phần mềm hệ phân tán cung cấp các ứng
dụng truyền thông
Phải nắm vững về kiến trúc mạng máy tính
(Network architecture)
Topology
(Sơ đồ kết nối hình học)
- Mô hình ISO
- Mô hình TCP/IP
- Mô hình ATM (trình không đồng bộ)

Protocol
(Giao thức)

Trang 2


Chuẩn

(B_ISDN_mạng tích hợp dịch vụ số)
- de facto (thực tế)
- de jure (pháp lý)

1.2. Hệ điều hành phân tán
- Dòng Unix BSD4…hệ điều hành phân tán đầu tiên được xây dựng cho các máy mini. VD
máy mini của IBM (RS/6000 hoặc AS400)
Mini (Unix hoặc Unix like)
Mini

T
Terminal (màn hình, bàn phím)
Unix cài đặt trên máy VAX (DEC)
Để nâng cao chức năng phân tán của hệ điều hành Unix (BSD) nhóm - Berkeley System
Distributing.
NES Network file system: hệ thống quản trị mạng
- Đại học Urije (Amsterdam - Hà Lan) có sản phẩm là Amoeba được thiết kế theo các tiêu
chuẩn phân tán
- Đại học Carmegie – Hellon (Mỹ) có sản phẩm có tên là Mach cài trên các máy chuyên dụng
→ máy NEXT
- Viện nghiên cứu tin học tự động (Pháp) INRIA đặt tên là Chorus (không thương mại hóa)

1.3. Các dịch vụ ứng dụng (hệ thống thông tin) phân tán
- Hệ đặt vé giữ chỗ máy bay
- Hệ thống quản lý du lịch
- Các hệ thống thương mại điện tử
- Các hệ thống hội nghị từ xa
(Teleconference) or Video conferancy
Theo phân loại cổ điển thường phân thành 3 loại
- Hệ điều hành phân tán
- Cở sở dữ liệu phân tán
- Các hệ thống tính toán phân tán
(Distributed Computing Systems)
Hiện nay chỉ phân thành 2 loại
- Hệ điều hành phân tán
- Các hệ thống thông tin phân tán
Ví dụ: Hệ thống thông tin quản lý du lịch
Công ty du lịch gồm nhiều đại lý đặt tại các thành phố. Mỗi đại lý có các chức năng:
- Cung cấp thông tin
- Đăng ký du lịch
Trang 3


Mỗi đại lý phải lưu trữ thông tin liên quan đến hai chức năng cơ bản. Như vậy mỗi đại lý sẽ
được xây dựng một hệ thông tin học cục bộ
mạng WAN
Cơ sở dữ liệu gốc
Cơ sở dư liệu bản sao
Privatenetwork
A
B
Mạng quốc gia/ công ty khác
Mạng
WAN

C

D

Cơ sở dữ liệu bản sao Cơ sở dữ liệu bản sao

Phương án 1: Cơ sở dữ liệu tập trung (kiến trúc tập trung)
Phương án 2: Kiến trúc phân tán
• Dùng các bản sao (có Cơ Sở Dữ Liệu gốc và các Cơ Sở Dữ Liệu bản sao)
• Không dùng Cơ Sở Dữ Liệu tổng thể, mỗi đại lý có Cơ Sở Dữ Liệu cục bộ (chỉ lưu
giữ các thông tin liên quan đến đại lý này)
Nhiều vấn đế nảy sinh cần giải quyết:
• Định dạng (Idertification/Naming)
• Chia sẻ tài nguyên (Resource sharing)
• Giải quyết tương tranh (Concurrency)
Deadlock: hiện tượng yêu cầu tài nguyên quay vòng, xử lý bằng cách hủy bỏ một tiến trình
nào đó



Giải quyết đồng bộ hóa giữa các tiến trình
Truyền thông liên tiến trình (Interprocess Communication)

1.4. Mục tiêu và đặc trưng của hệ phân tán
Hệ phân tán có các mục tiêu và đặc trưng sau đây:
 Kết nối người sử dụng với tài nguyên
Đặc thù của một hệ phân tán là có một tập tài nguyên (hữu hạn) và một tập người sử
dụng (hữu hạn nhưng tăng trưởng rất nhanh). Do đó bài toán cơ bản, cuối cùng cần phải giải
quyết của hệ phân tán là tìm giải pháp chia sẻ tài nguyên giữa các người sử dụng một cách
tối ưu.

1. Chia sẻ tài nguyên
Hardware
Software
Data
Trang 4


Có 2 mô hình chính
• Mô hình khách/chủ (Client/server)
• Mô hình hướng đối tượng (Object oriented)
Ví dụ 1:
Một server
C
1

Queue
S

C
2



R

Tài nguyên

Server

C
n

Nhiều server

C

S1

1

C

S2
R

2







C

Sn

n

Chú ý: Chức năng phân bổ giữa S và C

2. Mỗi tài nguyên cần chia sẻ được xem như là một đối tượng (Object)




Đối tượng đó được định danh duy nhất trong toàn bộ hệ thống.
Đối tượng có thể di động trong hệ thống mà không cần tới định danh.
Mỗi tiến trình của người sử dụng muốn yêu cầu một tài nguyên nào đấy nó phải gửi một
request tới đối tượng tương ứng với tài nguyên đó  sẽ có một hệ điều phối tiếp nhận các
request đó và xử lý.

Trang 5


3. Tính mở (Openness)
Khả năng bổ sung them các dịch vụ mới mà không làm thay đổi hoặc cản trở đối với các dịch
vụ đã có  kể cả khả năng bổ sung tài nguyên mới.

4. Tính tương tranh (concurrency)
5. Tính chịu lỗi (Frult To Lerance)



Khi có một sự cố ở đâu đó, tiến hành cô lập sự cố.
Đi kèm với khả năng chịu lỗi là khả năng phục hồi: lưu trữ khả năng trung gian ngay trước
khi xảy ra lỗi và thực hiện hồi phục lỗi từ điểm đó.

6. Tính thay đổi theo quy mô (tính co giãn)
Scalabbility
Hệ phân tán được thiết kế sao cho khi tăng quy mô hệ phân tán thì phần mềm chạy trên đó
tăng ít (quy mô tăng hoặc giảm)

7. Tính trong suốt (Transparency)



Khả năng “che giấu” đối với người sử dụng, chương trình ứng dụng: che giấu sự rời rạc của
các thành phần hệ phân tán  ISO (Reference Model for Open Distributed Processing 1992)
Mô hình tham chiếu cho các hệ phân tán mở
Định nghĩa: 8 loại trong suốt
1. Trong suốt truy cập (access transparency): cho phép các đối tượng thông tin cục bộ
hay ở xa đều được truy cập bằng cùng một thao tác như nhau.
2. Trong suốt định vị (location transparency): cho phép các đối tượng thông tin truy cập
mà không cần biết đến vị trị địa lý của chúng.
3. Trong suốt tương tranh: cho phép một số hoặc nhiều tiến trình hoạt động đồng thời
bằng cách chia sẻ sử dụng nhiều thông tin mà không làm cản trở công việc chung,
không làm tương tranh (concurrency transparency).
4. Trong suốt lặp (replication transparency): cho phép dùng nhiều bản sao của các đối
tượng thong tin để tăng độ tin cậy và bản sao của hệ thống.
5. Trong suốt lỗi (failure transparency): cho phép che giấu các sự cố xảy ra trong hệ
thống.
6. Trong suốt di trú (migration transparency): cho phép di chuyển các đối tượng thông
tin trên hệ thống mà không ảnh hưởng đến người sử dụng và trình ứng dụng.
7. Trong suốt hiệu năng (performance transparency): cho phép hệ thống được cấu hình
lại để tăng hiệu năng (cấu hình lại cả phần cứng và phần mềm).
8. Trong suốt về quy mô (scaling transparency).

1.5. Các nguyên lý của hệ phân tán
Các nguyên lý hay là các vấn đề cần nghiên cứu đối với mỗi hệ phân tán là:
- Truyền thông
- Tiến trình
Trang 6


- Định danh
- Đồng bộ
- Nhất quán và nhân bản
- Tính chịu lỗi
- An toàn – an ninh
1.6 Hệ phân tán dựa trên đối tượng ( Distributed Object-Based System)
Corba
CORBA (Common Object Request Broker Architecture) là một chuẩn của hệ đối
tượng phân tán (distributed object – based sysem). Corba được tổ chức OMG ( Object
Management Group ) đưa ra với mục đích là làm một đặc tả thống nhất cho hệ phân tán
nhằm giải quyết các vấn đề về sự tương thích giữa các ứng dụng mạng khác nhau.
Kiến trúc của Corba gồm bốn nhóm thành phần chính nối với ORB ( Object Request
Broker ).

Hình 2.1 Kiến trúc của Corba
ORB đóng vai trò cốt lõi trong mọi hệ Corba.
Một khái niệm đáng chú ý ở đây là Corba facility : đây là một tập hợp các dịch vụ để
thực hiện chức năng nào đó. Có hai nhóm chính là:
- Horizontal facilities: các dịch vụ đa dụng cấp cao độc lập với các vùng
ứng dụng.
- Vertical facilities: các dịch vụ cấp cao hướng tới các vùng ứng dụng cụ thể
 Mô hình đối tượng
CORBA dùng mô hình đối tượng từ xa (remote object model). Trong đó các đối tượng
và các dịch vụ được mô tả bằng CORBA IDL. IDL này mô tả chính xác phương thức và cú
pháp của các đối tượng. Các luật ánh xạ từ đặc tả IDL sang ngôn ngữ lập trình cụ thể cũng
được mô tả.
Tổ chức chung của một hệ CORBA như hình sau:

Trang 7


Hình 2.2 Mô hình tổ chức của một hệ Corba
Mọi tiến trình dù ở client hay server đều phải dùng tới ORB. ORB đảm nhận chức
năng tổ chức quản lý mọi yêu cầu và phản hồi.
Nó có hai dịch vụ chính là tổ chức lời gọi đối tượng và tìm dịch vụ tương ứng với tiến
trình. Client giao tiếp với ORB qua giao diện (interface). Do có những trường hợp cần có
giao diện phù hợp ở lúc chạy chương trình nên có khái niệm giao diện triệu gọi động
(dynamic invocation interface). Giao diện này cho phép client tạo một lời gọi vào lúc chạy
( runtime)
 Kho chứa giao diện và kho chứa thực thi
Để thực hiện lời gọi động được, đòi hỏi có một kho chứa các giao diện để một tiến
trình có thể tìm trong kho ra lời gọi thích hợp lúc chạy. CORBA đưa ra kho chứa giao diện
(Interface Repository) – chứa tất cả các định nghĩa giao diện.
Khi dịch một định nghĩa giao diện thì chương trình dịch của IDL gán nó với một định
danh kho chứa ( repository indentifier). Nên dùng định danh này có thể lấy ra được định
nghĩa của giao diện từ kho chứa. Kho chứa giao diện có thể được chuẩn hóa.
Bên cạnh khó chứa giao diện CORBA đưa ra : kho chứa thực thi (Implementation
Repository). Kho chứa thực thi chứa tất cả mọi thứ liên quan để thực hiện và kích hoạt được
một đối tượng. Kho chứa thực thi gắn kết với hệ điều hành cụ thể nên nó không thể chuẩn
hóa được như kho chứa giao diện.
 Các dịch vụ CORBA
Một dịch vụ CORBA độc lập với ứng dụng dùng CORBA. Các dịch vụ chia làm các
nhóm chính như sau:
- Dịch vụ thu thập (collection service): Gom nhóm các đối tượng vào danh sách,
hàng đợi…
- Dịch vụ truy vấn ( query service ) : Tạo tập hợp các đối tượng để có thể truy vấn
được bằng ngôn ngữ khai báo.
- Dịch vụ điều khiển tương tranh: Để cho phép các truy cập đồng thời vào đối tượng.
- Dịch vụ sự kiện: Để truyền thông không đồng bộ bằng sự kiện.
- Dịch vụ thông báo ( notification service ): để hỗ trợ việc thông báo khi có sự kiện.
Trang 8


- Dịch vụ mở rộng ( Externalization service ): Để đóng gói và mở gói ( marshaling và
unmarshaling) các đối tượng.
- Dịch vụ vòng đời (life cycle service) : Tạo, xóa, sao chép và di chuyển đối tượng.
- Dịch vụ bản quyền: Gán bản quyền của người phát triển vào đối tượng.
- Dịch vụ đặt tên (naming service): Gán các đối tượng với các tên của chúng.
- Dịch vụ cung cấp thuộc tính ( property service ).
- Dịch vụ thương mại ( trading service ): Cung cấp cơ chế để đối tượng quảng cáo
các thuộc tính của mình.
- Dịch vụ lưu trữ ( persistence service) : Để lưu trữ lâu dài các đối tượng.
- Dịch vụ quan hệ ( relationship service) : Mô tả quan hệ giữa các đối tượng.
- Dịch vụ an ninh: Cung cấp các cơ cấu cho kênh mật, xác thực và kiểm tra (audit).
- Dịch vụ thời gian : Cung cấp thời gian hiện tại.
DCOM
DCOM (Distributed COM) được hình thành dựa trên công nghệ đối tượng thành phần
(Component Object Model – COM) của Microsoft. Mục tiêu của COM là hỗ trợ sự phát triển
của các thành phần có thể được kích hoạt và có thể tương tác với các đối tượng khác.
Bản thân COM được cung cấp dưới dạng các thư viện được liên kết tới các tiến trình.
Ban đầu, nó được phát triển để hỗ trợ cái được gọi là Compound Document một văn bản
được xây dựng từ các thành phần khác nhau, mỗi một thành phần lại được gắn kết với các
ứng dụng tạo ra nó.
Để hỗ trợ các compound document, Microsoft cần một cách thức tổng quát nhằm phân
biệt các thành phần khác nhau và gắn kết chúng lại với nhau. Điều này khởi đầu cho công
nghệ có tên OLE - Object Linking and Embedding.

Hình 2.3 Mô hình chung của ActiveX, OLE và COM
Trong hình có ActiveX, nó chỉ chung tất cả những gì dùng để gọi OLE.
DCOM mang lại cho mô hình trên khả năng liên lạc giữa một tiến trình với một thành
phần (component) nằm ở máy khác. Cơ chế trao đổi thông tin giữa các thành phần trong
COM và DCOM là như nhau.Nên đối với một người lập trình, sự khác biệt giữa COM và
DCOM thường được che đi sau rất nhiều các giao diện.
 Mô hình đối tượng
DCOM sử dụng mô hình đối tượng từ xa.
Trang 9


Cũng giống như CORBA, DCOM bám xung quanh việc thực hiện các giao diện. Một
đối tượng DCOM đơn giản có thể coi là sự thực hiện một giao diện, một đối tượng đơn lẻ có
thể triển khai một vài giao diện cùng một lúc. Tuy nhiên khác với CORBA, DCOM chỉ có
giao diện nhị phân (binary interface). Nó là một bảng với các con trỏ chỉ tới các phần thực thi
của các phương thức trong giao diện. DCOM cũng có một IDL gọi là Microsoft IDL.
Mỗi một giao diện trong DCOM có một định danh 128 bit (Interface Indentifier - IID)
và đó là định danh có tính duy nhất toàn cục.
Một đối tượng DCOM được tạo ra như một thể hiện (instance) của một lớp và để làm
được như vậy cần thiết phải có trước một lớp. Để giải quyết vấn đề này, DCOM có đối tượng
lớp. Một đối tượng bất kì có thể coi như dùng giao diện IClassFactory. Giao diện này có
phương thức CreateInstance, giống toán tử new trong C++ hay Java. Việc gọi CreateInstance
trong một đối tượng lớp tạo ra đối tượng DCOM.
Một đối tượng lớp đại diện cho một tập các đối tượng có cùng chung một kiểu và thực
hiện cùng một giao diện. Các đối tượng thuộc về một lớp sẽ chỉ khác nhau về trạng thái của
nó mà thôi. Trong DCOM, mỗi một đối tượng lớp được tham chiếu thông qua các định danh
lớp (CLSID).
Tất cả các đối tượng đều triển khai cùng một giao diện chuẩn gọi là IUnknown. Khi
một đối tượng được tạo bởi lời gọi CreateInstance, đối tượng lớp trả lại một con trỏ tới giao
diện này.
Một điểm khác biệt với mô hình đối tượng CORBA: tất cả những đối tượng trong
DCOM đếu là nhất thời.
DCOM có hỗ trợ việc triệu gọi động một đối tượng bằng cách dùng giao diện
IDispatch. Giao diện này tương tự DII trong CORBA.
 Thư viện loại (Type library) và Registry
Thư viện loại trong DCOM tương tự như kho chứa giao diện trong CORBA. Một thư
viện loại thường được gắn với một ứng dụng hoặc một thành phần lớn có chứa nhiều đối
tượng lớp.

Hình 2.4 Thư viện loại trong DCOM
Để kích hoạt một đối tượng, tức là đảm bảo rằng nó được tạo ra và đặt vào trong một
tiến trình để nó có thể chấp nhận một lời triệu gọi, DCOM sử dụng registry của Window
Trang 10


cùng một tiến trình đặc biệt gọi là Service Control Manager (SCM). Registry được sử dụng
để ghi lại ánh xạ từ CLSID tới tên file chứa các triển khai của lớp đó.
Khi một đối tượng được kích hoạt trên một máy trạm ở xa, client liên hệ với SCM của
máy trạm - một tiến trình phục vụ cho việc kích hoạt một đối tượng, nó tương tự như là kho
chứa thực thi của CORBA. SCM này sẽ kiểm tra trong registry của nó để tìm ra file ứng với
CLSID và sau đó khởi động tiến trình chứa đối tượng.
 Dịch vụ DCOM
DCOM có thể coi như là sự mở rộng của COM với việc bổ sung thêm các tính năng
cho việc truyền thông giữa các đối tượng ở xa.
Không giống như CORBA, DCOM không phải là một hệ thống phân tán đầy đủ vì nó
cần có sự tồn tại của các dịch vụ bên ngoài. Chẳng hạn trong Windows 2000, dịch vụ định
danh được thực hiện nhờ các Active Directory- chúng hiển nhiên không thuộc DCOM. Đây
cũng chính là hạn chế trong tính khả chuyển của DCOM.
CORBA Service DCOM/COM+ Service
Windows 2000 Service
Collection
ActiveX Data Objects
Query
None
Concurrency
Thread concurrency
COM+ Automatic
Distributed Transaction
Transaction
Transactions
Coordinator
Event
COM+ Events
Notification
COM+ Events
Externalization
Marshaling utilities
Life cycle
Class factories, JIT
Licensing
Special class factories
Naming
Monikers
Active Directory
Property
None
Active Directory
Trading
None
Active Directory
Persistence
Structured storage
Database access
Relationship
None
Database access
Security
Authorization
SSL, Kerberos
Bảng 2.1. So sánh đặt tính của các dịch vụ

Globe
Globe là viết tắt của GLobal Object – Based Environment. Đây là sản phẩm phát triển
bởi các tác giả tại trường đại học Vrije Universiteit Amsterdam.
Globe là một hệ phân tán dựa trên đối tượng mà tính mở rộng (scalability) đóng một
vai trò then chốt. Mọi khía cạnh liên quan tới việc xây dựng một hệ thống hoạt động trên
diện rộng, phục vụ nhiều người dùng đã định hướng cho thiết kế của Globe.
 Mô hình đối tượng
Không giống như các hệ phân tán dựa trên đối tượng khác, Globe không đưa ra mô
hình remote-object. Thay vào đó, các đối tượng trong Globe có thể được chia sẻ một cách vật
Trang 11


lý, tức là trạng thái của một đối tượng có thể được phân phối và nhân bản suốt dọc nhiều tiến
trình.
Trong Globe, phần thực thi của một giao diện ở tại một vị trí gọi là local object, nó
thực hiện các giao diện nhị phân. Các đặc tả của giao diện được hỗ trợ bởi IDL được sử dụng
trong CORBA và DCOM
Local object chia làm hai loại:
- Primitive local objec: Không chứa bất cứ local object nào bên trong.
- Composite local object: Là một đối tượng mà được tạo bởi nhiều local object. Để
hỗ trợ cho sự tích hợp này, một bảng giao diện được thành lập để chứa bên trong các con trỏ
để chỉ đến trạng thái và phương thức. Mỗi một con trỏ trạng thái chỉ tới các dữ liệu thuộc về
một local object cụ thể. Đối với một giao diện của primitive local object, tất các cả các trỏ
trạng thái đều chỉ về cùng một dữ liệu đại diện cho trạng thái của đối tượng đó. Trong trường
hợp là sự tổng hợp của nhiều đối tượng thì con trỏ trạng thái chỉ tham chiếu để trạng thái của
các đối tượng khác nhau mà nằm trong đó.

Hình 2.5 Mô hình phân phối chia sẽ đối tượng trong globe
Khác với CORBA hay DCOM, Globe cung cấp rất ít các dịch vụ. Trên thực tế, chỉ có
những dịch vụ mà không thể được cung cấp bởi các đối tượng mới được triển khai.
Điều khiển tương tranh trong Globe thực hiện trên từng đối tượng. Một đối tượng chia
sẻ bảo vệ các trạng thái của nó khỏi các truy cập đồng thời bằng giao diện riêng biệt cho việc
khóa. Không có một giao diện chuẩn hóa nào cho điều khiển tương tranh được định nghĩa
trong Globe.
Trong Globe, các giao tác sẽ được thực hiện nhờ đối tượng quản lý giao tác.
Globe không có dịch vụ sự kiện. Các đối tượng trong Globe thường là thụ động.
Thông thường, để triển khai một dịch vụ sự kiện trong Globe thường đòi hỏi phải đi theo mô
hình kéo của CORBA.
Việc đóng gói thường là dịch vụ được quản lý trên từng đối tượng. Khả năng chịu lỗi
của Globe cũng được kiểm soát trên từng đối tượng.

Trang 12


1.7 Các chương trình agent
Trong phần này chúng ta sẽ thiệt lập cơ sở hạ tầng cơ sở quyết định agent nào sẽ hoặc
nên hành động như thế nào. Trong CD CFIT, agent satcllite “thức giác” vào mỗi đơn vị thời
gian ∆t, quảng bá một thông báo vị trí và quay trở lại “ngủ” đối với ∆t giây. Ngược lại công
việc của agent truck trong VD Khain bắt đầu được nhận một thông điệp từ một agent khác
yêu cầu các nguồn tài nguyên xe tải. Trong VD STORE agent credit có thể đối xử khác nhau
với các agent khác nhau, cung cấp các trả lời thích hợp cho các agent và từ chối dịch vụ với
các agent khác. Trong mỗi trường hợp, agent đang thực hiện một quyết định đáp lại các sự
thay đổi trong môi trường của nó như thế nào (ví dụ chạy một thông điệp, chạy đồng hồ).
Các agent khác nhau sử dụng các cách giải quyết khác nhau để thực hiện các quyết định. Bộ
tạo hoặc bộ quản lý 1 agent muốn agent giữ vững các nguyên tắc tùy ý – ông ta phải thiết lập
các hướng dẫn tác động để agent phải tuân theo. Mục đích của chương này để định nghĩa một
ngôn ngữ gọi là các CT Agent, do sử dụng việc triển khai agent cá nhân chỉ rõ các hành động
nào agent phải thực hiện và các luật thực hiện của các hành động này.
1.7.1. Kiến trúc quyết định agent
Các cấu trúc thực hiện các quyết định cơ sở sử dụng 1 agent được chỉ ra trong sơ đồ
6.1, bao gồm các thành phần sau:
 Những phần mềm cơ sở: Bao gồm tập hợp cấu trúc dữ liệu cơ sở và các mã kế
thừa trên phần đầu agent được xây dựng. Nó được truy cập thông qua cơ chế
gọi mã. Tại bất kỳ thời điểm t, có một tập các đối tượng thích hợp xác định với
mỗi loại dữ liệu quản lý bởi agent. Tập tất cả đối tượng qua các kiểu dữ liệu
được quản lý bởi mã phần mềm được gọi là trạng thái của agent tại thời gian t.
Rõ ràng trạng thái cỷa 1 agent thay đổi với thời gian. Không mất tính tổng quát
chúng ta giả sử rằng mã kế thừa của mỗi agent bao gồm “hòm thông điệp” (mô
tả trong phần 4.3)
 Các ràng buộc toàn vẹn: Agent có 1 tập ràng buộc toàn vẹn xác định trường
hợp, IC, các ràng buộc toàn vẹn này phản ánh các sự mong muốn, trên một
phần của nhà thiết kế agent mà trạng thái của 1 agent phải thỏa mãn.
 Các hành động: Mỗi agent có một tập các hành động trường hợp hành động
được thực hiện do nội dung mà được thực hiện trong bất kỳ ngôn ngữ lập trình
mệnh lệnh (hoặc khai báo) phù hợp. Agent suy luận về các hành động thông
qua một tập các điều kiện và tác động đến việc định nghĩa các điều kiện. Trạng
thái agent phải thỏa mãn với hành động được coi là có thể thực hiện và trạng
thái mới xảy ra do một sự thực hiện. Chúng ta giả sử rằng các tiên đề và các kết
quả thích hợp với một hành động đúng chỉ rõ tác động của mã thực hiện hành
động. Cú pháp và ngữ nghĩa không chính thức như các hành động tuần tự và
đồng thời được mô tả trong phàn b.2
 Các ràng buộc hành động: Trong các trường hợp tùy ý, bộ tạo agent có thể
mong muốn ngăn cản agent từ việc thực hiện đồng thời các hành động tùy ý
Trang 13


mặc dù có thể khả thi để agent thực hiện chúng. Các ràng buộc hành động là
các sự chỉ định rõ ràng buộc người sử dụng phát biểu các điều kiện dưới các
hành động có thể không thực hiện một cách đồng thời.
 Các CT agent: Một agent là một tập các luật theo một ngôn ngữ được định
nghĩa trong 6.4. Bộ tạo agent có thể sử dụng để chỉ rõ các nguyên tắc đưa vào
đó agent tác động và các cách giải quyết bao trùm bên các hành động agent
thực hiện từ các trạng thái thừa có thể của các hành động có thể một cách ngắn
gọn, CT agent thích hợp với 1 agent mã hóa “thực hiện” và “không thực hiện”
của agent.
1.7.2. Cơ sở hành động
Trong phần này chúng ta sẽ giới thiệu khái niệm của một hành động và mô tả cách các
tác động của các hành động được thực hiện. Trong phần lớp công việc trong AI và các cách
tiếp cận logic cho hành động, giả sử các trạng thái là một tập các phần tử logic cơ sở.
Trong lĩnh vực phong phú của các cơ sở dữ liệu tích cực. Giả sử rằng các trạng thái
phản ánh nội dung của một cơ sở dữ liệu quan hệ. Tuy nhiên không chỉ hai cách tiếp cận là
cân xứng với mục địch của chúng ta bởi vì trạng thái của 1 agent sử dụng mã phần mềm S =
(TS, FS, CS) được mô tả bởi tập O S. Các đối tượng dữ liệu trong OS có thể là các phần tử logic
(giả sử trong phần lớn việc thiết lập AI) hoặc chúng có thể là các mối quan hệ (trong cơ sở
dữ liệu tích cực) nhưng sự thực các đối tượng được thao tác bởi S là kiểu dữ liệu có cấu trúc,
phức tạp hơn.
Định nghĩa 1. Hành động - Phần tử hành động
Một hành động Q bao gồm 6 thành phần:
1. Name: Tên thường được viết như sau: α(X1,…,Xn) với Xi là các biến gốc.
2. Schema: Một giản đồ thường được viết như các kiểu (τ 1,…,τn). Điều này có thể
nói rằng biến Xi phải là của kiểu τi với 1 ≤ i ≤ n.
3. Action code: Đây là nội dung của các mã thực hiện hành động.
4. Pre: Điều kiện gói mã χ gọi tiên đề (điều kiện xác định trước) của hành động,
được chú thích bởi Pre(α) phải là môdun an toàn các biến X1,…,Xn.
5. Add: Một tập Add(α) của các điều kiện gọi mã.
6. Del: Một tập Del(α) của các điều kiện gọi mã.
Một phần tử hành động là một công thức α(t 1,…,tn) với ti là một thành ngữ nghĩa là
một đối tượng hoặc một biến kiểu τi đối với i = 1,…,n.
Quan trọng để chú ý rằng có sự phân biệt lớn giữa định nghĩa một hành động của
chúng ta và định nghĩa cổ điển của hành động trong AI.
Một sự khác nhau tinh vi hơn là trong AI cổ điển, các trạng thái được thay đổi vật lý
do kết hợp trạng thái hiện tại với các mục trong danh sách thêm và sau đó xóa các mục trong
danh sách xóa. Ngược lại, danh sách thêm và danh sách xóa trong cơ cấu không đóng bất kỳ
vai trò nào trong sự thực hiện hành động vật lý. Hành động được thực hiện do mã hành động
Trang 14


thích hợp. Agent sử dụng các tiên đề, danh sách thêm và danh sách xóa để suy luận về cái gì
là đúng/ sai trong trạng thái mới.
Chỉ rõ bất kỳ hành động, chúng ta có thể kết hợp với một thiết bị tự động mô hình hóa
một hệ thống biến đổi như sau: Không gian trạng thái của một thiết bị tự động là một tập
hợp tất cả các trạng thái có thể của agent. Các trạng thái trong đó tiền đề của hành động là sai
không có tình trạng nguy khốn sắp thoát khỏi thiết bị tự động. Có một tình trạng khó khăn
(biến đổi) từ 1 trạng thái tới 1 trạng thái khác nếu trạng thái đầu tiên thỏa mãn tiên đề của
hành động và trạng thái thứ 2 thu được kết quả từ việc thực hiện hành động ở trạng thái đầu.
Chú ý : Giả sử tiên đề các danh sách thêm và xóa thích hợp với 1 hành động, mô tả
đúng tác động của mã hành động thích hợp với hành động.
Chúng ta hãy xem xét 1 vài ví dụ của các hành động và các mô tả thích hợp của chúng
trong các lĩnh vực đặc trưng.
Ví dụ 1 (CHAIN) Cho rằng agent supplier của ví dụ CHAIN có 1 hành động gọi là
update stockDB được sử dụng để xử lý các trật tự được thay thế bởi các agent khác
Name: update_stock (part_id,Amount, Company)
Schema: (String, Integer, String)
Pre: in (X, supplier: select (‘uncpmmitted’, id, =, Part_id)) & X.amount >
Amount.
Del: in (X, suppiler: select (‘uncpmmitted’, id, =, Part_id)) & in (Y, suppiler:
select (‘uncpmmitted’, id, =, Part_id))
Add: in (part_id, X.amount – Amount >, supplier: select (‘uncpmmitted’, id, =,
Part_id)) & in (part_id, Y.amount + Amount >, supplier: select (‘uncpmmitted’, id, =,
Part_id))
Hành động này cập nhật 2 cơ sở dữ liệu ACCESS đối với 1 kho chưa gửi và đã gửi.
Agent supplier đầu tiên nên chắc chắn rằng lượng yêu cầu là có sẵn do thăm dò cơ sở dữ liệu
chưa gửi. Do đó agent supplier cập nhật kho cơ sở dữ liệu chưa giử để giảm lượng yêu cầu và
thêm 1 mục mới cho kho cơ sở dữ liệu đã gửi đối với công ty yêu cầu.
Ví dụ 2 (CFIT) Cho rằng agent auto Pilot trong ví dụ CFIT có hành động say để tính
toán vị trí hiện tại của máy bay
Name: compute_current Location (Report)
Schema: (Satellite Report)
Pre: in (Report, msgbox; get Var (Msg, Id, “Report”))
Del: in (Old Location, auto Pilot: Location ())
Add: in (Old Location, auto Pilot: Location ()) & in (Flight Route; auto Pilot:
get Flighit Route ()) & in (Velocity, auto Pilot: Velocity ()) & in (New Location, auto Pilot:
calculate Location (Old Location, Flight Route, Velocity))
Hành động này yêu cầu 1 thông báo vệ tinh được tạo ra do agent gps bằng việc kết
hợp dữ liệu GPS. Do đó nó tính toán vị trí hiện tại của máy bay dựa trên thông báo này như
định vị tuyến bay của máy bay.
Ví dụ 3 (STORE) Agent profiling có thể có hành động sau:
Trang 15


Name: update_high Profile (Ssn, Name, Profile)
Schema: (String, String, User Profile)
Pre: in (spender (high), profiling: classify User (Ssn))
Del: in (, profiling: all (‘high Profile’))
Add: in (, profiling: all (‘high Profile’))
Hành động này cập nhật các tóm tắt sơ lược về người sử dụng là người có mức tiêu
thụ cao. Để xác định những người tiêu thụ cao, đầu tiên nó dẫn chứng ra cuộc gọi mã
Classify User, sau khi chứa đựng danh sách đích của người sử dụng, nó cập nhật các mục về
người sử dụng trong cơ sở dữ liệu tóm tắt tiểu sử. Agent profiling có thể cũng có các hành
động tương tự đối với những người tiêu thụ mức thấp và trung bình.
Giả sử bất kỳ sự thay đổi trạng thái rõ ràng được khởi đầu do 1 agent là một hành
động. Ví dụ việc gửi các thông điệp và đọc các thông điệp là các hành động. Tương tự thực
hiện một cập nhật cho cấu trúc dữ liệu bên trong là một hành động. Việc thực hiện một tính
toán trên cấu trúc dữ liệu bên trong của 1agent cũng là một hành động.
Định nghĩa 2. Cơ sở hành động
Một cơ sở hành động P0 là bất kỳ tập hợp hành động xác định
Định nghĩa sau chỉ ra các phương diện nào để thực hiện một hành động trong một
trạng thái được chỉ định rõ.
1.7.4. Các hành động thực hiện đồng thời
Cho rằng chúng ta mong muốn thực hiện đồng thời 1 tập AS bộ 3 thực hiện khả thi
(không cần thiết tất cả) Có nhiều cách để định nghĩa điều này
Định nghĩa 5. Quản lý xảy ra đồng thời
Một quan điểm của sự xảy ra đồng thời là 1 hàm conc nhận đầu vào là 1 trạng thái đối
tượng; OS2 và 1 tập AS bộ 3 thực hiẹn và trả lại đầu ra, 1 bộ 3 thực hiện mới đơn lẻ sao cho
nếu AS = {α} là 1 hành động duy nhất thì conc(OS, ASi) = α
Định nghĩa trên nói rằng chi phí sự xảy ra đồng thời là 1 hộp đen – nó nhân 1 tập hành
động đơn lẻ sinh ra các biểu diễn 1 “kết hợp” của các hành động đơn lẻ và có thể không được
biểu diễn rõ ràng trong cơ sở hành động của agent, hơn nữa là 1 hành động kết hợp được xây
dựng động. Hoàn toàn có thể là hành động “kết hợp” đơn lẻ là không thể thực hiện được
trong trạng thái do đó chỉ ra rằng hành động dưới dạng câu hỏi là không thực hiện được.
Điều kiện duy nhất AS = {α} trong định nghĩa trên nói rằng sự thực hiện đồng thời của 1
hành động đơn lẻ mang lại hành động tương tự
Tất nhiên khái niệm của 1 chú thích của sự xảy ra đồng thời là rất rộng và có thể có
các khoảng cách lớn, 1 vài trong số chúng là trực giác hơn các cái khác
Định nghia 6. Sự thực hiện đồng thời yếu
Cho rằng AS là 1 tập các bộ 3 thực hiện khả thi ở trạng thái agent O S. Sự thực hiện
đồng thời yếu của AS trong OS được định nghĩa trở thành trạng thái agent
apply (AS, OS) = def ins(Oadd, del(Odel, OS))
với
Oadd = def U O_Sol(Add(α(X) Ө) δ) (α(X), Ө, δ) € AS
Trang 16


Odel = def U O_Sol(Del(α(X) Ө) δ) (α(X), Ө, δ) € AS
Đối với bất kỳ tập hành động A, sự thực hiện của A trên O S là sự thực hiện của tập tất
cả {(α(X), Ө, δ) | α(t) € AS, α(X) Ө = α(X) Ө ground, (Ө, δ) € Ө Г (α(X))} Bộ 3 thực hiện
khả thi từ 1 vài hành động có cơ sở trong AS và apply (A, O S) thành phần ký hiệu trạng thái
kết quả
Theo định nghĩa này mọi thứ đều thực hiện song song, đầu tiên là xóa tất cả và sau đó
là chèn tất cả. Trong khi các sự thực hiện đồng thời yếu hoạt động chỉ tốt khi tập hành động
A không liên quan “các ánh xạ” chúng là khó giải quyết khi hành động trong A cạnh tranh
đối với các tài nguyên
Ví dụ 5 (CHAIN) Xem xét tập các sự thực hiện hành động sau
update_stockDB(widget 5, 250, company A)
update_stockDB(widget 10, 100, company B)
update_stockDB(widget 5, 500, company C)
Hơn nữa cho rằng các cơ sở dữ liệu
Chương 2. Truyền thông trong hệ thống phân tán
Môt sự khác nhau quan trọng nhất giữa hệ phân tán và hệ thống bộ xử lí đơn là truyền
thông liên quá trình. Trong hệ thống bộ xử lí đơn, hầu hết truyền thông liên quá trình hoàn
toàn có thể nắm bắt được sự tồn tại bộ nhớ bị chia sẽ. Một ví dụ điển hình là vấn đề người
sản xuất và người tiêu thụ trong đó một tiến trình ghi vào một bộ đệm được chia sẽ và một
tiến trình khác thì đọc từ nó. Thậm chí hầu hết các dạng cơ bản của sự đồng bộ hóa, cờ hiệu,
yêu cầu một từ (bản thân biến cờ hiệu đó ) được chia sẽ. Trong hệ thống phân tán không có
bất cứ một bộ nhớ nào được chia sẽ. Vì vậy toàn bộ bản chất của truyền thông liên quá trình
phải được xem xét lại một cách toàn diện bắt đầu từ điểm xuất phát. Trong chương này
chúng ta sẽ thảo luận về nhiều vấn đề, ví dụ, và các vấn đề có liên quan đến truyền thông liên
quá trình trong hệ điều hành phân tán
Chúng ta sẽ bắt đầu thảo luận các quy tắc mà tiến trình truyền thông phải tuân theo, được
biết đến như là những giao thức. Đối với hệ phân tán diện rộng những giao thức này thường
đòi hỏi một biểu mẫu nhiều tầng, mỗi cái có một mục tiêu và quy tắt của nó. Sau đó chúng ta
sẽ xem xét mô hình client-server được giới thiệu trong chương 9 một cách chi tiết hơn. Sau
đó là thời gian để nhận biết các thông báo để trao đổi như thế nào và nhiều biến tùy chọn tới
người thiết kế hệ thống.
Một tùy chọn đặc biệt, một lời gọi thủ tục từ xa, thì rất quan trọng để đảm bảo cho đoạn
chính đó. Lời gọi thủ tục từ xa thực sự là một cách thức tốt hơn để đóng gói sự chuyển tải
thông báo, thực hiện nó như là lập trình truyền thông và như vậy thì sẽ sử dụng hơn. Tuy vậy
nó có tính chất riêng biệt của nó và các vấn đề chúng ta sẽ xem xét.
Sau cùng, chúng ta sẽ kết luận chương này bởi việc nghiên cứu làm thế nào mà các nhóm
những tiến trình có thể giao tiếp được với nhau thay vì chỉ có hai tiến trình. Một ví dụ chi tiết
về nhóm giao tiếp. ISIS. sẽ được thảo luận.
Trang 17


2.1 Các giao thức được phân lớp:
Dựa trên sự thiếu hụt của bộ nhớ chia sẻ , mọi sự giao tiếp trên những hệ thống phân tán
là căn cứ trên thông điệp đưa đến .Khi tiến trình A muốn giao tiếp với tiến trình B thì trước
tiên nó phải xây dựng một thông điệp mà trên đó có chứa không gian địa chỉ . Sau đó nó thực
hiện một lời gọi hệ thống, đó là nguyên nhân hệ điều hành tìm nạp thông điệp và gửi nó qua
mạng để đưa đến B. Mặc dù ý tưởng cơ bản đúng đắn dễ hiểu này đủ để tránh những xáo trộn
nhưng tiến trình A và tiến trình B phải thống nhất về ý nghĩa của các bít được gửi đến. Nếu
tiến trình A gửi một nội dung được viết bằng tiếng Pháp và được giải mã bằng mã kí tự
EBCDIC của máy IBM, và tiến trình B chờ đợi bảng kiểm kê của môi trường được viết bằng
tiếng Anh và được giải mã trong ASCII , sự giao tiếp sẽ trở nên tối ưu.
Cần có nhiều sự phù hợp khác nhau . Có bao nhiêu volt được sử dụng cho tín hiệu 0-bit và
bao nhiêu volt cho tín hiệu 1-bit ? Làm thế nào để nơi nhận biết được đâu là bít cuối cùng
của thông báo? Nếu một thông báo bị hỏng hoặc bị mất thì nơi nhận có thể tìm ra bằng cách
nào và nếu tìm ra được thì nó phải làm gì? Độ dài của số, chuỗi , dữ liệu là bao nhiêu ?
Chúng được biểu diễn như thế nào? Tóm lại , sự phù hợp là cần thiết ở nhiều mức khác
nhau , sự thay đổi của những chi tiết ở mức thấp của sự chuyển giao bit đến những chi tiết ở
mức cao hơn như cách mà thông tin biểu diễn.
Để đễ hơn trong việc phân chia chuỗi các mức và đưa ra những rắc rối trong truyền thông,
tổ chức chuẩn Quốc Tế , ISO đã trình bày một mô hình khác mà các mức phức tạp khác nhau
được nhận biết một cách rõ ràng , đặt cho chúng những cái tên chuẩn và chỉ ra những mức
nào thì làm những việc gì. Mô hình này được gọi là Mô hình tham khảo OSI (Day and
Zimmerman, 1983), thường được viết tắt là ISO , OSI hoặc đôi khi chỉ là kiểu OSI. Mặc dù
chúng ta không có ý định đưa ra một phần mô tả đầy đủ của mô hình này và tất cả những cái
liên quan đến nó ở đây, một đoạn mở đầu ngắn gọn sẽ có ích. Đối với những chi tiết cụ thể
(Tanenbaum , 1988).
Lúc đầu , mô hình OSI được thiết kế cho phép hệ thống mở để truyền thông. Một hệ thống
mở là đã sẵn sàng để giao tiếp với nhiều hệ thống mở khác bằng cách sử dụng thước chuẩn
mà nó chi phối khuôn thức, nội dung , ý nghĩa của các thông báo được gửi tới và được chấp
nhận . Những thước đo đó đã được chính thức hoá và được gọi là những định chuẩn . Về cơ
bản thì một định chuẩn là một sự thống nhất trong các cách giao tiếp để tiến hành .Khi một
người phụ nữ làm quen với một người đàn ông , cô ấy có thể chọn cách đưa tay ra . Anh ta
tuỳ vào đó có thể lần lượt bắt tay hoặc hôn nó, ví dụ vậy , không biết có phải cô ấy là một
luật sư người Mỹ trong một cuộc hội nghị về thương mại hay một công chúa của một nước
Châu Âu tại một buổi khiêu vũ trang trọng .Vi phạm định ước sẽ làm cho giao tiếp khó khăn
hơn, nếu nó xảy ra.
Với mức Công nghệ cao , nhiều công ty đã chế tạo ra được bảng mạch bộ nhớ cho máy
tính cá nhân IBM .Khi bộ xử lý trung tâm CPU muốn đọc được một từ trên bộ nhớ thì nó
phải có địa chỉ và những tín hiệu điều khiển nào đó trên bus. Bảng mạch bộ nhớ chờ đợi để
nhận tín hiệu và được đáp ứng bằng cách đặt từ yêu cầu trên bus trong một khoảng thời gian
Trang 18


nào đó . Bảng mạch bộ nhớ sẽ làm việc một cách phù hợp nếu nó tuân theo định ước bus qui
định , còn các cách khác thì nó sẽ không phù hợp.
Máy 1

Máy 2

Tiến trình
A

Tiến trình
B

Giao thức ứng dụng
ứng dụng

Sự biểu diễn

Phiên

Truyền tải

Mạng

Kết nối DL

ứng dụng

Giao thức biểu diễn

Giao thức phiên

Giao thức truyền tải

Giao thức mạng

Giao thức kết nối dữ liệu

Sự biểu diễn

Phiên

Truyền tải

Mạng

Kết nối DL

Mạng
Hình 2.1. Lớp, giao diện, giao thức trong mô hình OSI
Giao thức vật lý
Vật lýtự , để cho một nhóm các máy tính giao tiếp với
Vậtnhau
lý trên mạng thì chúng
Một cách tương

sẽ phải phù hợp với tất cả các định ước được sử dụng . Mô hình OSI phân biệt hai giao thức
có cùng kiểu. Với giao thức kết nối có hướng , trước khi trao đổi dữ liệu thì trước tiên nơi gửi
và nơi nhận phải thiết lập giải nghĩa kết nối và có thể sắp xếp lại các giao thức mà chúng sẽ
sử dụng .Điện thoại là một hệ thống truyền thông kết nối có hướng. Với những kết nối vô
hướng thí không cài đặt trước là cần thiết . Máy điện báo chỉ truyền những thông báo khi mà
nó đã sẵn sàng . Ví dụ thả một bức thư vào trong hộp thư là kết nối vô hướng . Với máy tính
thì cả kết nối có hướng và kết nối vô hướng đều phổ biến .
Trong mô hình OSI , giao tiếp được chia thành 7 mức (lớp) như trong hình 2.1. Mỗi lớp
tương ứng với một hình thức cụ thể của truyền thông . Bằng cách này , một vấn đề có thể
được chia thành những phần nhỏ để dễ quản lý , mỗi vấn đề có thể được giải quyết một cách
Trang 19


độc lập với nhau. Mỗi lớp được chuẩn bị một giao diện trên đỉnh của nó. Giao diện bao gồm
một tập hợp các thao tác mà chúng xác định hỗ trợ lẫn nhau trong lớp để sẵn sàng cung cấp
cho người sử dụng nó.
Trong mô hình OSI , khi tiến trình A của máy 1 muốn giao tiếp với tiến trình B của máy 2
thì nó phải xây dựng một thông báo và duyệt thông báo đó để gắn vào lớp trên máy đó. Ví dụ
lớp có thể có một thủ tục thư viện nhưng nó cũng có thể thực thi một số cách khác (bên trong
hệ điều hành, trên mạch điện tử bên ngoài bộ đồng xử lý,...). Lớp phần mềm ứng dụng thêm
vào đầu trang văn bản phía trước thông báo và duyệt qua kết quả của thông báo .Lớp của
bản trình bày lần lượt thêm vào ở đỉnh và duyệt xuống kết quả từng phiên lớp , và cứ tiếp tục
như vậy. Một số lớp thêm vào không chỉ đầu trang phía trước
. Khi chạm đáy, lớp vật lý
mới thật sự truyền thông báo.
Khi thông báo đến máy 2 , nó được duyệt theo hướng đi lên , với mỗi lớp. Cuối cùng ,
thông báo đến nơi nhận là tiến trình B và tiến trình B có thể trả lời để nó sử dụng đường dẫn
ngược lại . Thông tin trong đầu lớp được dùng cho các định ước của lớp.
Một ví dụ về tại sao các định ước của việc đặt hàng là quan trọng , ta xem xét mối liên hệ
với nhau giữa hai công ty . Hãng Hàng không Zippy và Công ty cung cấp lương thực , thực
phẩm Mushy , đã kết hợp chặt chẽ với nhau. Mỗi tháng ,tổ trưởng tổ phục vụ hành khách của
hãng Zippy yêu cầu thư kí của cô ta liên hệ với thư kí giám đốc của công ty Mushy để đặt
100,000 hộp gà . Theo truyền thống thì có thể đặt hàng qua bưu điện . Tuy nhiên , nếu phục
vụ qua đường bưu điện thì sẽ giảm chất lượng của thức ăn , lúc đó hai người trợ lý sẽ quyết
định bỏ cách này và sẽ giao tiếp với nhau qua FAX. Họ có thể làm việc này mà không làm
phiền đến giám đốc của họ , từ đó nghi thức giao dịch của họ là chuyển giao ,vận chuyển tự
nhiên, và như vậy họ đã không làm vừa lòng cấp trên của mình.
Cũng như vậy , trưởng tổ phục vụ có thể quyết định không lấy món gà nữa và muốn đặt
một món đặc biệt , mới của Mushy là món sườn dê khai vị , và họ tự quyết định mà không
làm phiền đến thư kí của mình . Điều cần chú ý là ở đây chúng ta có hai người đặt hàng là
người quản lý và thư kí., và mỗi người có một nghi thức ngoại giao riêng của mình (chủ đề
của cuộc thảo luận , Kỹ thuật – Công nghệ , ...) . Điều đó có thể thay đổi mà không phụ thuộc
vào những cái khác . Đúng như vậy, Sự độc lập này làm cho nghi thức ngoại giao về việc đặt
hàng sẽ thu hút hơn.Mỗi cách đều có thể bị thay đổi về Kỹ thuật-Công nghệ tiến bộ mà
không ảnh hưởng đến các cách khác.
Lớp kết nối DL
Lớp mạng
Lớp truyền tải
Lớp phiên
Lớp biểu diễn
Lớp ứng dụng
Trang 20


Message

Lớp kết nối dữ
liệu sau cùng

Bit thực tế xuất hiện trên mạng
Hình 2.2. Một thông báo điển hình mà xuất hiện trên mạng

Trong mô hình OSI , không phải có 2 lớp mà có 7 lớp như hình 10-1. Một loạt các định
chuẩn được sử dụng trong một hệ thống riêng biệt được gọi là một bộ định chuẩn hay ngăn
xếp định chuẩn . Trong đoạn sau đây , chúng ta cũng sẽ chỉ ra một số định chuẩn được sử
dụng trong mỗi lớp.
2.1.1. Lớp vật lý
Lớp vật lý liên kết sự truyền xâu 0 và xâu 1. Có bao nhiêu volt để sử dụng cho 0 và cho 1 ?
Có bao nhiêu bit được gửi đi trong vòng một giây và có hay không sự truyền mà nó chiếm
chỗ trong cả hai hướng đồng thời – là khoá đưa ra trong lớp vật lý. Trong phần thêm vào ,
kích thước và hình dạng của mạng nối kết (phích cắm) cũng giống như những cái đinh ghim
và ý nghĩa của mỗi cách được quan tâm ở đây.
Định chuẩn lớp Vật Lý có quan hệ với tiêu chuẩn hoá về điện , cơ khí , tín hiệu giao diện
nên khi một máy gửi đến một bit 0 thì trên thực tế nó cũng chỉ nhận một bit 0 mà không phải
là một bit 1 . Có nhiều lớp Vật Lý chuẩn đã phát triển (các phương tiện đại chúng truyền
thông đại chúng khác) , ví dụ như chuẩn RS-232-C cho hàng loạt đường truyền thông.
2.1.2. Lớp nối kết dữ liệu
Lớp Vật Lý chỉ gửi đi các bit. Chừng nào không xuất hiện lỗi thì tất cả đều tốt. Tuy nhiên ,
những mạng truyền thông thực còn tuỳ thuộc vào lỗi, vì vậy một số cơ chế cần phải tìm ra và
sửa chữa lỗi. Cơ chế này có nhiệm vụ chính trong lớp kết nối dữ liệu.Cái gì làm thành một
nhóm các bit ở trong khối. đôi khi nó được gọi là khung và xem như mỗi khung được thừa
nhận rộng rãi , đúng cách thức.
Gửi thông báo dữ liệu 0

Data 0

B nhận 0, tổng kiểm tra xấu
Data 1
Control 0

Control 0

A gửi TB dữ liệu1, B nói về
tổng kiểm tra xấu
Cả hai đều đến đúng
Trang 21

Cả hai đều đến đúng


Data 0

Data 1
Data 0

Control 1

Control 1

Data 0

A truyền TBDL 0,B :”tôi muốn 0,
không phải 1”

A lại truyền TB dữ liệu 0

Data 0
Data 0

Cuối cùng B nhận dữ liệu 0

Hình 10.3. Trao đổi giữa người nhận và người gửi trong lớp kết nối dữ liệu

Lớp nối kết dữ liệu làm việc bằng cách đặt một bit mẫu đặc biệt ở đầu và kết thúc của mỗi
thứ tự và đánh dấu chúng , cũng như việc tính toán 1 bài toán kiểm tra tổng bằng cách cộng
tất cả các byte trong khung theo một cách nào đó. Lớp nối kết dữ liệu được thêm vào kiểm
tra tổng tới khung. Khi khung đã hoàn thành, kiểm tra tổng từ dữ liệu đưa vào và so sánh kết
quả kiểm tra tổng sau của khung. Nếu chúng đồng nhất thì khung có suy nghĩ chu đáo, chính
xác và đã được công nhận. Nếu 2 kết quả không đồng nhất thì nơi nhận sẽ trả lời nơi gửi phải
truyền lại . Những khung đã được phân công tuần tự các số (ở đỉnh) vì vậy mọi cái đều có thể
nói cái gì là cái gì.
Trong hình 10-3 chúng ta thấy (một rắc rối nhỏ) ví dụ của tiến trình A cố gắng gửi hai
thông báo 0 và 1 cho tiến trình B . Tại giá trị 0, thông báo giá trị 0 được gửi đi , nhưng khi nó
đến, tại giá trị 1 , sự tạp nhiễu trên đường truyền là nguyên nhân nó bị hỏng, do đó kiểm tra
tổng là sai .
2.1.3. Lớp mạng
Trên mạng LAN , không có một nhu cầu nào đối với người gửi để xác định được vị trí của
người gửi đối với người nhận . Nó chỉ đưa thông báo lên trên mạng và người nhận nhận lấy
nó . Tuy nhiên một mạng toàn cục thì chứa số lượng lớn các máy , mỗi máy có một đường
truyền nối với các máy khác gồm tương tự như một bản đồ qui mô lớn cho thấy những thành
phố lớn và các con đường nối chúng . Để có được thông báo từ người gửi tới người nhận thì
phải thực hiện mỗi lần một bước nhảy ngắn , chọn đường gửi đi để sử dụng . Câu hỏi làm sao
để chọn được đường dẫn tốt nhất được gọi là lộ trình và là ngăn xếp chính của lớp mạng .
Vấn đề trở nên phức tạp bởi việc tuyến ngắn nhất không phải lúc nào cũng là tuyến tốt
nhất . Vấn đề thực sự quan trọng là số lượng sự trì hoãn trên một tuyến đường đã cho , nó có
liên quan đến số lượng khả năng tải và số thông báo đã xếp hàng để chờ chuyển qua các
tuyến đường khác nhau . Như vậy , sự trì hoãn có thể thay đổi tình thế diễn biến của thời gian
. Các thuật toán tuyến cố gắng thích nghi sự thay đổi của việc nhập vào , ngược lại , các cái
khác thì sẵn sàng đưa ra quyết định dựa trên cơ sở trung bình giới hạn lâu dài .
Hai giao thức lớp mạng đang được sử dụng rộng rãi , một sự kết nối đã được định hướng
và một không kết nối . Sự kết nối đã được định hướng thì được gọi là X.25 và rất được sự
quan tâm của điều hành viên của mạng công cộng , như là các công ty diện thoại và các PTT
của người Châu Âu . Người sử dụng X.25 đầu tiên gửi một lời gọi yêu cầu tới đích , có thể là
chấp nhận hoặc từ chối sự kết nối đã được đề ra . Nếu sự kết nối được chấp nhận , người gọi
Trang 22


sẽ nhận được một từ định danh của sự kết nối để sử dụng trong các yêu cầu tiếp theo . Trong
nhiều trường hợp , mạng chọn một tuyến từ người gửi tới người nhận trong khi cài đặt và sử
dụng nó cho khả năng tải tiếp theo.
Giao thức không kết nối được gọi là IP (đối với giao thức mạng ) và là một phần của DoD
(Ban bảo vệ) bộ giao thức . Một gói IP (giới hạn kỹ thuật cho một thông báo trên lớp mạng)
có thể được gửi mà không có một sự cài đặt nào . Mỗi gói IP được gửi theo một tuyến đường
nhất định tới đích riêng biệt của nó của tất cả các gói tin khác . Không có một đường dẫn
bên trong nào được chọn lựa và ghi nhớ như trường hợp với X.25.
2.1.4 . Lớp truyền tải
Các gói tin khác có thể bị mất trên đường đi từ người gửi đến người nhận . Mặc dù một vài
ứng dụng có thể điều khiển được sự khôi phục lỗi của nó , thì những ứng dụng khác thích
một kết nối đáng tin cậy hơn. Công việc của lớp truyền tải là cung cấp sự phục vụ này . Một
ý tưởng là lớp phiên cần có khả năng phân phối một thông báo tới lớp truyền tải với sự mong
đợi rằng nó sẽ được phân phát mà không bị thất lạc .
Với việc nhận một thông báo từ lớp phiên , lớp truyền tải chia nó thành các phần tử nhỏ để
cho nó vừa khít với các gói đơn , gán cho mỗi cái một dãy số và sau đó gửi tất cả chúng đi .
Vấn đề tranh cãi trong đầu đề của lớp truyền tải có liên quan đến gói tin nào được gửi đi , gói
tin nào được nhận , làm thế nào để nhiều hơn người nhận có khả năng chấp nhận và các chủ
đề tương tự .
Các kết nối truyền tải đáng tin cậy (mà định nghĩa hướng kết nối) có thể được thiết lập
trên đầu của hoặc là X.25 hoặc là IP . Trong trường hợp đầu , tất cả các gói sẽ đến theo một
trình tự đúng (nếu chúng đến tất cả) , nhưng trong trường hợp sau có thể một gói nhận được
tuyến và đến sớm hơn gói đã gửi trước nó. Nó để cho phần mềm lớp truyền tải đó đặt tất cả
mọi thứ trở lại để duy trì ảo ảnh mà nối kết truyền tải như một ống lớn – bạn phải đặt thông
báo của bạn vào trong nó và chúng đi ra còn nguyên và đi trong cùng một thứ tự.
Giao thức truyền tải theo cách thức ISO có 5 biến thể được biết đến như TP0 đến TP4. Các
sự khác nhau có quan hệ với lối điều khiển và khả năng gửi vài kết nối truyền tải qua một kết
nối đơn X.25 . Sự lựa chọn những cái để sử dụng phụ thuộc vào các đặc tính của các lớp
mạng cơ bản.
Giao thức truyền tải DoD được gọi là TCP (Giao thức điều khiển truyền tải ) . Nó tương tự
như TP4 . Sự kết hợp TCP / IP được sử dụng rộng rãi ở các trường Đại học và trong hầu hết
các hệ thống UNIX Bộ giao thức DoD cũng hỗ trợ giao thức truyền tải không kết nối gọi là
UDP (Universal Datagram Protocol) thực chất chỉ là IP với vài sự bổ sung tối thiểu .
Chương trình của người sử dụng không cần thiết giao thức kết nối định hướng mà thông
thường mà sử dụng UDP.

2.1.5. Lớp phiên
Trang 23


Lớp phiên thực chất là phiên bản nâng cấp của lớp truyền tải .Nó cung cấp điều khiển hội
thoại , để giữ khoảng rộng của nhóm hiện đang giao tiếp và nó cung cấp các điều kiện thuận
lợi của sự đồng bộ hoá. Những cái sau thì hữu ích cho phép người sử dụng chèn những điểm
kiểm tra vào trong các sự chuyển giao lâu dài để trong sự kiện của sự phá huỷ thì chỉ cần
quay trở lại điểm kiểm tra ban đầu , hơn là bắt đầu tất cả lại từ đầu . Trong thực hành , một
vài ứng dụng thì được quan tâm trong lớp phiên và rất ít khi được hỗ trợ . Thậm chí nó còn
không có mặt trong bộ giao thức DoD.
21.6. Lớp các bản trình bày
Không giống như các lớp thấp hơn , lớp các bản trình bày có liên quan tới việc nhận các
bit từ người gửi tới người nhận một cách đáng tin cậy và hiệu quả , lớp các bản trình bày có
quan hệ với nội dung của các bit . Hầu hết các thông báo không chứa các xâu bit ngẫu nhiên ,
nhưng chứa nhiều thông tin cấu trúc hơn như tên người, địa chỉ, số tiền và vân vân . Trong
lớp các bản trình bày , có thể định nghĩa các bản ghi bao gồm các trường như trên và sau đó,
người gửi khai báo ngừng nhận mà một thông báo có chứa một bản ghi riêng biệt theo một
dạng nào đó. Điều này làm cho sự biểu diễn bên trong khác nhau để giao tiếp của các máy
trở nên dễ dàng hơn.
2.1.7 Ứng dụng
Lớp ứng dụng thực ra chỉ là một tập hợp các giao thức có thể khác nhau đối với các hoạt
động chung như thư điện tử, chuyển giao file và kết nối đầu cuối từ xa tới máy tính thông
qua mạng . ĐIều tốt nhất được biết đến của những cái đó là giao thức thư điện tử X.400 và
thư mục máy chủ X.500 . Không lớp này thì cũng là hai lớp trực tiếp ở dưới nó là điều mà
chúng ta quan tâm trong cuốn sách này.
2.2 Mụ hỡnh khỏch chủ
Ban đầu, các giao thức đã được phân lớp theo các tuyến OSI , trông có vẻ như là một cách
tổ chức tốt trong hệ thống phân tán . Kết quả là một người gửi đưa ra một kết nối (kí hiệu
ống dẫn bit) với người nhận và sau đó đẩy các bit vào bên trong sao cho không có lỗi hợp lệ
tới người nhận . Điều này liệu có gì sai?
Rất nhiều điều sai , bắt đầu với hình 10-2 . Sự tồn tại của những đầu đề kia phát sinh ra số
lượng đáng kể sự rắc rối . Tại mọi lúc , một thông báo được gửi đi phải được xử lý bởi
khoảng 6 lớp. Mỗi lớp tạo ra và bổ sung một đầu đề ở phía trên hoặc loại bỏ và kiểm tra một
đầu đề ở phía dưới . Tất cả công việc này rất mất thời gian . Trên mạng diện rộng số các bit
trên một giây có thể được gửi đi là khá thấp (thường chỉ có 64K bit trên một giây) . Điều này
không nghiêm trọng . Nhân tố giới hạn là dung lượng của các tuyến và thậm chí với tất cả sự
vận dụng đầu đề , các bộ xử lý trung tâm thì đủ nhanh để giữ cho các tuyến chạy ở tốc độ cao
nhất . Như vậy, hệ thống phân tán diện rộng có khả năng sử dụng giao thức OSI hoặc TCP/IP
mà không bị mất trong khi thực hiện .
Trang 24


Tuy nhiên, đối với hệ thống phân tán cơ sở – LAN giao thức ở trên là rất thực tế . Quá
nhiều thời gian của CPU bị lãng phí trong việc thực hiện các giao thức mà thông lượng thực
sự của nó qua mạng LAN thường chỉ là sức kéo nào đó mà LAN có thể làm . Kết quả là hầu
hết các hệ thống phân tán LAN cơ sở không hề sử dụng nhóm nhỏ của toàn bộ ngăn xếp giao
thức.
Ngoài ra, mô hình OSI chỉ hướng vào một khía cạnh nhỏ của vấn đề – các bit từ người gửi
tới người nhận (cái mà chúng muốn nói đến trong các lớp trên) . Nó không nói gì về việc làm
sao hệ thống phân tán cần phải có cấu trúc . Điều này cần thiết hơn.
2..1. Máy khách và máy chủ
Đây cũng là mô hình máy khách – máy chủ mà chúng tôi đã giới thiệu trong chương
trước . ý tưởng đằng sau mô hình này là để cấu tạo hệ điều hành như một nhóm các tiến trình
hợp lại , được gọi là các máy chcungxconf cái mà yêu cầu sự phục vụ tới người sử dụng thì
được gọi là máy khách .Máy chủ và máy khách thông thường chạy trên cùng một vi phân ,
như chúng ta đã thấy trước đó, cả máy khách và máy chủ đều thực hiện như các tiến trình của
người sử dụng . Một máy có thể thực hiện một tiến trình đơn lẻ hoặc nó có thể chạy nhiều
máy khách , nhiều máy chủ hoặc cả hai.
Để tránh những rắc rối đáng kể của các giao thức kết nối có định hướng như OSI hay
TCP/IP . Mô hình Máy chủ – Máy khách thường dựa trên các cơ sở đơn giản . Giao thức
không kết nối yêu cầu đáp ứng . Máy khách gửi một thông báo yêu cầu tới máy chủ yêu cầu
vài sự phục vụ (đọc một khối của file) . Máy chủ không thực hiện và trả về dữ liệu đã được
yêu cầu hoặc mã lỗi cho biết tại sao công việc đó không được thực hiện , như mô tả trong
hình 10-4 (a).
Thuận lợi chủ yếu của sơ đồ 10-4 (a) là sự đơn giản . Máy khách gửi yêu cầu và nhận câu trả
lời . Không một sự kết nối nào phải được thiết lập trước khi sử dụng hoặc quay trở về sau .
Thông báo trả lời đáp ứng yêu cầu như một thông báo nhận .
Từ sự đơn giản đã dẫn đến những lợi thế khác , đó là sự hiệu quả. Ngăn xếp giao thức thì
ngắn và vì vậy hiệu quả hơn . Giả sử tất cả các máy đều giống hệt nhau , chỉ ba cấp độ của
giao thức là cần thiết như biểu diễn ở sơ đồ 10-4 (b) . Các giao thức kết nối vật lý và dữ liệu
luôn quan tâm đến việc nhận các gói tin từ máy khách đến máy chủ và ngược lại. Cái này
luôn luôn được xử lý, ví dụ, tiêu chuẩn ghép nối phần cứng mạng cục bộ cùng định ước hoặc
mã thông báo mạch điện tử. Không có lộ trình nào được cần và không có kết nối nào được
thiết lập,vì vậy nó sắp thành lớp 3 và 4 khi chưa cần đến.Lớp 5 là yêu cầu tiêu chuẩn trả lời
thông tin. Nó xác định tập hợp của những yêu cầu hợp lý và tập hợp của sự trả lời đúng
những yêu cầu này.Không có sự quản lý phiên bản bởi vì không có nhiều phiên bản. Một
trông những lớp trên chưa cầc đến.
Lớp

61
Yêu cầu
Clie
nt

51
Serv
er

Trang 25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×