Tải bản đầy đủ (.docx) (32 trang)

Truyền thông trong hệ phân tán

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (455.19 KB, 32 trang )

MỤC LỤC


Lời nói đầu

LỜI NÓI ĐẦU
Ngày nay, các yêu cầu càng trở khắt khe đối với các hệ thống máy tính trong
tương lai: về tốc độ xử lý, sự tin cậy của hệ thống ngay cả khi có sự cố xảy ra, khả
năng lưu trữ, tính mở rộng khi cần thiết và hiệu quả chi phí mà nó mang lại, do đó cần
phải thay thế cấu trúc truyền thống theo tổ chức máy tính của Von Neumann.
Hệ phân tán đóng vai trò quan trọng trong lĩnh vực phát triển của công nghệ
máy tính, đặc biệt là trong điều kiện phát triển bùng nổ của các mạng máy tính. Sự
phát triển của các mạng LAN, WAN cho phép hàng trăm, hàng nghìn hay thậm chí
hàng triệu máy tính có thể kết nối với nhau. Kết quả của sự phát triển công nghệ hiện
nay không chỉ đáng tin cậy mà còn tạo nên các hệ thống máy tính rất lớn, được kết nối
bằng các đường kết nối tốc độ cao. Chúng tạo nên các mạng máy tính lớn hoặc các hệ
phân tán, ngược với hệ thống tập trung trước đây, bao gồm cá máy tính đơn và có thể
cả thiết bị điều khiển đầu cuối (remote teminal).
Tính toán phân tán mang đến cho người truy cập trong suốt là sức mạnh nhiều
máy tính và dữ liệu như người sử dụng cần để thực hiện bất kỳ công việc nhất định, và
đồng thời, đạt hiệu suất cao và độ tin cậy mục tiêu. Ứng dụng trong cá hệ thống máy
tính phân tán đã phát triển nhanh chóng trong thập kỷ qua. Các chủ đề của máy tính
được phân tán là đa dạng và nhiều nhà nghiên cứu đang điều tra các vấn đề khác nhau
liên quan đến cấu trúc phần cứng phân tán và việc thiết kế các phần mềm phân tán để
các tiềm năng xử lý song song và khả năng chịu lỗi có thể khai thác.
Trong bài tiểu luận này của nhóm em đã chọn đề tài “Truyền thông trong hệ
phân tán” để có thể hiểu rõ các cách thức giao tiếp (truyền thông) giữa các tiến trình
trong hệ phân tán.
Bài tiểu luận gồm 3 phần:
Chương 1: Tổng quan về hệ phân tán
Chương 2: Truyền thông trong hệ phân tán


Chương 3: Một số hệ thống file phân tán

2


Chương 1: Tổng quan về hệ phân tán

CHƯƠNG 1: TỔNG QUAN VỀ HỆ PHÂN TÁN
1.1. Khái niệm
Hệ thống phân tán bao gồm các máy tính (bao gồm cả các thiết bị khác như
PDA, điện thoại di động…) được kết nối với nhau để thực hiện nhiệm vụ tính toán. Hệ
thống phân tán xuất phát từ nhu cầu sử dụng khả năng tính toán tốt hơn và hiệu quả
hơn bằng cách kết hợp khả năng tính toán của từng máy tính độc lập, điều đó đã trở
thành hiện thực dựa trên những tiến bộ về công nghệ mạng. Ba yếu tố quyết định tốc
độ tính toán trong các máy tính bao gồm: Tốc độ của bộ vi xử lý trung tâm (CPU), bộ
nhớ (RAM) và đường truyền trong bo mạch chủ (Bus). Đối với hệ thống phân tán, một
yêu cầu mới quan trọng đã nảy sinh đó là vấn đề trao đổi thông tin giữa các máy tính,
thiếu yếu tố này thì nhiệm vụ tính toán trên môi trường phân tán sẽ không thể thực
hiện được. Tốc độ truyền dẫn trong các công nghệ mạng ngày càng tăng đã tạo điều
kiện cho sự phát triển các ứng dụng phân tán, các máy tính có thể trao đổi thông tin và
chia sẻ dữ liệu với nhau mà không phụ thuộc vào khoảng cách địa lý.
Hệ thống phân tán là hệ thống các thành phần được đặt trên các máy tính mạng,
chúng trao đổi thông tin và phối hợp các hoạt động chỉ bằng cách truyền tin báo và
người sử dụng cảm giác như là một hệ thống đơn lẻ.
Khái niệm phân tán được thể hiện bởi tính độc lập của từng máy tính nhưng
phải phối hợp làm việc với nhau để người sử dụng không có cảm giác các thành phần
rời rạc. Ví dụ, một hệ thống bán hàng bao gồm nhiều cửa hàng đặt tại những vị trí
khác nhau, việc nhập thông tin hàng hóa được thực hiện tại nhiều vị trí khác nhau (các
cửa hàng, nhà kho, …) , tuy nhiên các nhân viên khai thác đều có thể tìm thấy thông
tin theo yêu cầu của mình như thể các thông tin đó đang được lưu trữ trên máy tính của

người sử dụng.
1.2. Phân loại
1.2.1. Hệ thống tính toán phân tán
Tính toán phân tán thường được sử dụng trong các tác nghiệp yêu cầu hiệu
năng cao, nó bao gồm hai nhóm: Tính toán cụm (Cluster) và tính toán lưới (Grid).
- Trong hệ thống tính toán cụm, các máy tính sử dụng cùng hệ điều hành và kết
nối với nhau qua mạng nội bộ tốc độ cao.

3


Chương 1: Tổng quan về hệ phân tán

Hình 1.1.Hệ thống tính toán cụm
- Tính toán lưới bao gồm nhiều hệ thống phân tán thuộc về nhiều miền quản lý
khác nhau và thường không đồng nhất về phần cứng cũng như hệ điều hành.

Hình 1.2 Kiến trúc phân tầng cho hệ thống tính toán lưới
1.2.2. Hệ thống thông tin phân tán
Một trường hợp khác trong hệ thống phân tán đó là các ứng dụng mạng qui mô
lớn, dữ liệu được đặt ở nhiều nơi nhưng việc xử lý ở mỗi nơi liên quan đến những nơi
khác. Trong nhiều trường hợp, các máy chủ chạy tiến trình cung cấp dịch vụ xử lý cho
máy khách, máy khách đơn thuần chỉ gửi yêu cầu và nhận về kết quả đã được máy chủ
xử lý. Tuy nhiên một yêu cầu đặt ra là cần phải có sự phối hợp xử lý giữa các máy chủ,
một yêu cầu được đưa ra từ phía máy khách đến các máy chủ dữ liệu thì yêu cầu đó
phải được thực thi trên tất cả các máy chủ hoặc chi cần một máy chủ không thực thi
được yêu cầu của máy khách thì tất cả các máy chủ khác cũng không được phép thực
thi yêu cầu này.

4



Chương 1: Tổng quan về hệ phân tán

Hình 1.3 Phần mềm trung gian là phương tiện truyền tin trong EAI
1.2.3. Hệ thống phân tán khắp nơi
Khi xuất hiện các thiết bị di động và thiết bị nhúng, chúng ta phải đương đầu
với các hệ thống phân tán mà ở đó tính không ổn định là điều tất yếu. Các thiết bị
trong hệ thống loại này thường là những thiết bị di động với đặc trưng là vị trí không
ổn định và kết nối mạng không dây, do đó các hệ thống này được gọi là hệ thống lan
tỏa phân tán (Distributed pervasive system). Hệ thống này thiếu vắng sự kiểm soát
nhân công, cấu hình của các thiết bị này do chủ sở hữu thiết bị đó qui định, nếu không
thì thiết bị sẽ tự động khám phá môi trường và lựa chọn cấu hình được cho là phù hợp
nhất.

Hình 1.4. Hệ thống phân tán khắp nơi

5


Chương 1: Tổng quan về hệ phân tán

1.3. Đặc trưng và mục tiêu của hệ phân tán
Hệ phân tán mang tính hữu dụng là nhờ có các đặc tính: chia sẻ tài nguyên, tính
mở, tính đồng thời, tính co giãn, tính chịu lỗi và tính trong suốt.
1.3.1. Kết nối người sử dụng và tài nguyên
Mục tiêu chính của hệ thống phân tán là kết nối người sử dụng và tài nguyên
mạng. Nhiệm vụ chính của một hệ thống phân tán là cho phép người sử dụng được
khai thác thông tin mà không phụ thuộc vị trí địa lý của người đó. Như vậy nảy sinh
hàng loạt vấn đề liên quan đến việc khai thác và sử dụng thông tin: ai được phép truy

nhập, truy nhập thông tin ở mức độ nào, thời gian nào được phép truy nhập, tần suất
truy nhập thông tin….
Tài nguyên bao gồm những thành phần phần cứng như: đĩa, máy in, và những
thành phần phần mềm như: file, cơ sở dữ liệu và những đối tượng dữ liệu khác. Lợi ích
của việc truy cập và hệ thống chứa các cơ sở dữ liệu, chương trình, tài liệu và những
thông tin chung khác được thể hiện rõ trong hệ thống chia sẻ thời gian hoắc hệ thống
nhiều người sử dụng vào đầu những năm 1960 và các hệ thống UNIX MultiUser và
những năm 1970.
Tài nguyên của máy tính nhiều người dùng thường được dùng chung cho tất cả
những người sử dụng nó, những người làm việc trong các máy trạm đơn lẻ của các
máy tính các nhân không có đặc tính hữu ích này. Các tài nguyên chung trong hệ phân
tán được đóng gói vật lý trong một máy tính của hệ, và từ các máy khác chỉ có thể truy
cập vào bằng con đường truyền thông.
Để dùng chung một cách hiệu quả, tài nguyên phải được quản lý bằng một
chương trình cung cấp giao diện truyền thống cho phép truy cập vào tài nguyên chung,
sử dụng và cập nhật tài nguyên thường xuyên và chắc chắn.
1.3.2. Tính mở
Tính mở của hệ thống máy tính là đặc trưng để xác định xem hệ thống có thể
mở rộng theo nhiều cấp độ khác nhau hay không.
Hệ phân tán được gọi là mở nếu nó cung cấp các dịch vụ theo các quy tắc chuẩn
mô tả cú pháp và ngữ nghĩa của dịch vụ đó. Thông thường trong hệ phân tán các dịch
vụ thường đặc tả qua các giao diện bằng ngôn ngữ đặc tả giao diện (Interface
Definition Language- IDL). Vì thế chỉ quan tâm đến cú pháp. Nó cho phép các dịch vụ

6


Chương 1: Tổng quan về hệ phân tán

khác nhau cùng chung sống. Nếu các giao diện của hệ phân tán được đặc tả đầy đủ và

đúng đắn.
Xét hai khái niệm của hệ phân tán là khái niệm liên tác (Interroperability) và
khái niệm chuyển mang (portability).

 Liên tác: các cài đặt của các hệ thống hoặc thành phần hệ thống từ các
nhà sản xuất khác nhau có thể làm việc với nhau thông qua liên tác.
 Chuyển mang: nhờ chuyển mang mà một ứng dụng được phát triển cho
hệ phân tán A có thể thực hiện không cần thay đổi gì trên một hệ phân
tán B khác, với điều kiện được cài đặ cùng giao diện như A.
Tính mở hoặc đóng của hệ thống được xét dựa theo khả năng hỗ trợ việc mở
rộng của thiết bị phần cứng (ví dụ: bổ sung các thiết bị ngoại vi, bộ nhớ và các giao
diện truyền thông) và hỗ trợ việc mở rộng các phần mềm, như: bổ sung thêm các tính
năng của hệ điều hành, các giao thức truyền thông và các dịch vụ chia sẻ tài nguyên.
Tính mở của các hệ phân tán được đánh giá theo mức độ bổ sung các dịch vụ chia sẻ
tài nguyên mà không phá vỡ hoặc lặp lại các dịch vụ hiện có.
Tính mở được thể hiện nhờ những giao diện phần mềm chủ chốt của hệ thống
giao diện đó được xác định rõ và lập thành tài liệu sẵn cho những người phát triển
phần mềm.
Để có tính mở, hệ thống phân tán phải có chuẩn giao tiếp với hệ thống, như vậy
sẽ dễ dàng hơn trong việc trao đổi tài nguyên. Một hệ thống mở phải tuân thủ các tiêu
chuẩn giao tiếp nào đó đã được công bố, nghĩa là sản phẩm của các nhà sản xuất khác
nhau có thể tương tác với nhau theo tập các luật và các qui tắc hoặc các tiêu chuẩn đã
được công bố, ví dụ: ngôn ngữ IDL, XML, giao thức dịch vụ Web…
1.3.3. Tính trong suốt
Mục tiêu trong suốt đối với người sử dụng nhằm che giấu vị trí thực của thông
tin đối với người sử dụng, người sử dụng không biết được thông tin được lưu trữ ở đâu
và xử lý trên máy tính nào. Tính trong suốt đối với người sử dụng thể hiện ở các đặc
điểm sau:
- Truy nhập (Access): Ẩn cách thể hiện dữ liệu và phương pháp truy nhập.
- Vị trí (Location): Ẩn nơi lưu trữ thông tin.


7


Chương 1: Tổng quan về hệ phân tán

- Di chuyển (Migration): Ẩn quá trình chuyển vị trí lưu trữ dữ liệu
- Đặt lại vị trí (Relocation): Ẩn quá trình di chuyển dữ liệu mà không làm gián
đoạn hoạt động của người sử dụng.
- Nhân bản (Replication): Che giấu việc tạo ra bản sao dữ liệu
- Tương tranh (Concurrency): Che giấu việc chia sẻ tài nguyên cho nhiều người
sử dụng
- Lỗi (Failure): Che giấu lỗi và phục hồi tài nguyên
- Bền bỉ (Persistence): Che giấu tài nguyên phần mềm được tải vào bộ nhớ hay
ở trên ổ đĩa.
1.3.4. Tính co giãn
Tính co giãn (Scalability) Một hệ phân tán được gọi là có tính co giãn nếu nó
thích nghi với sự thay đổi quy mô của hệ thống. Thể hiện trên các khía cạnh sau:

• Dễ bổ sung người sử dụng và tài nguyên hệ thống.
• Khi hệ thống thay đổi quy mô về mặt địa lý dẫn đến sự thay đổi về vị trí
địa lý của người sử dụng và các tài nguyên.
• Hệ thống có thay đổi quy mô về quản trị. Nếu hệ phân tán có tính co
giãn thường ảnh hưởng đến hiệu năng của hệ thống (hiệu năng của hệ
thống là hiệu quả năng lực hoạt động của đối tượng).
Có ba giải pháp phổ dụng để giải quyết vấn đề co giãn của hệ phân tán:

• Ẩn giấu
• Phân tán: phân nhỏ thành phần hệ thống và phân bố chúng trên phạm vi
của hệ thống (quản lý phân cấp). Ví dụ DNS ((Distributed Network

System) xác định theo cách phân cấp miền lớn thành các miền con. Với
phương pháp này sẽ giải quyết được vẫn đề khi thêm người dùng hay tài
nguyên vào hệ thống.
• Nhân bản: nhân bản một thành phần nào đó của hệ thống. Ví dụ tài
nguyên dữ liệu đặt tại các vị trí khác nhau trong hệ thống
1.3.5. Tính đa nhiệm
Khi một số tiến trình cùng tồn tại trong một máy tính, ta nói rằng, chúng được
thực hiện đồng thời. Nếu máy tính chỉ có một bộ xử lý trung tâm, thì tính đồng thời
song song với nhau như hệ điều hành UNIX, WINDOWS Server cung cấp và điều
khiển các tiến trình truy cập vào tài nguyên của hệ thống. Các ứng dụng chạy trên
server phải được tách rời nhau để một của ứng dụng này không làm hỏng ứng dụng
khác.
Tính đa nhiệm đảm bảo một tiến trình không sử dụng toàn bộ tài nguyên hệ
thống vai trò của server.

8


Chương 1: Tổng quan về hệ phân tán

Như chúng ta đã bàn ở trên, server như là một nhà cung cấp dịch... trình tính
toán của mình Một Client có thể gọi thủ tục ở xa của nhiều hơn một máy tính.
Như vậy sự thực thi của chương trình Client lúc này không còn gói gọn trên một máy
tính của Client mà nó trải rộng trên nhiều máy tính khác nhau. Đây chính là mô hình
của ứng dụng phân tán (Distributed Application).
1.4. Ứng dụng
Một số bài toán mà hệ phân tán được áp dụng:
• Dịch vụ gửi rút tiền tại các ngân hàng: gửi tiền nhiều nơi và rút nhiều nơi. Hệ
phân tán đã được ứng dụng trong dịch vụ ngân hàng. Việc khách hàng có thể thực hiện
các giao dịch tại nhiều nơi trên Việt Nam hoặc thậm trí trên thế giới. Khách hàng gửi

tiền tại một chi nhánh A của một ngân hàng thì có thể rút tại bất kỳ chi nhánh B,C…
của ngân hàng đó chứ không nhất thiết phải tới đúng chi nhánh A để rút số tiền cần
thiết khi mà khách hàng đi công tác hoặc du lịch.
• Hệ thống ATM: một ứng dụng khác của hệ phân tán cho ngân hàng đó là
khách hàng có thể tới các máy ATM được phân phối ở nhiều nơi để rút tiền mặt.
• Quản lý công dân ra vào cửa khẩu: ví dụ như một người khách nước ngoài tới
Việt Nam thì nhân viên hải quan sẽ biết người đó đã tới Việt Nam bao nhiêu lần và
mỗi lần đó tới Việt Nam để làm gì. Có thể các lần trước thì người đó tới Việt Nam qua
một của khẩu khác nhưng hệ thống vẫn biết là họ đã tới Việt Nam.

9


Chương 2: Truyền thông trong hệ phân tán

CHƯƠNG 2: TRUYỀN THÔNG TRONG HỆ PHÂN TÁN
2.1. Tổng quan về truyền thông trong hệ phân tán
Trao đổi thông tin giữa các tiến trình là trọng tâm của tất cả các hệ thống phân
tán, do đó cần phải nghiên cứu kỹ lưỡng cách thức các tiến trình trao đổi thông tin với
nhau. Thực chất trao đổi thông tin trong hệ thống phân tán là chuyển thông điệp do
mạng máy tính đảm nhiệm, quá trình đó phức tạp hơn rất nhiều so với việc trao đổi
thông tin trên một máy tính. Các hệ thống phân tán hiện đại bao gồm hàng triệu tiến
trình trao đổi thông tin với nhau qua mạng Internet không tin cậy, nếu không thay đổi
các phương thức truyền thông nguyên thủy thì sẽ rất khó phát triển các ứng dụng phân
tán. Về bản chất, trao đổi thông tin giữa các tiến trình vẫn sử dụng các giao thức truyền
tin truyền thống đã qui định trong từng lớp mạng. Các giao thức này được ứng dụng để
xây dựng các mô hình truyền tin khác như Gọi thủ tục từ xa (RPC), gọi đối tượng từ
xa (RMI), phần mềm trung gian hướng thông điệp (MOM). Mô hình truyền tin đầu
tiên trong hệ thống phân tán là RPC, bản chất của nó là ẩn những thủ tục phức tạp
trong việc truyền thông điệp và đó là cách lý tưởng trong các ứng dụng khách/chủ.

Về sau, mô hình này được cải tiến dựa trên việc cài đặt các đối tượng phân tán.
Một số ứng dụng phân tán sử dụng phương thức truyền thông điệp, tính trong suốt của
phương thức này khá thấp, do đó nên chuyển sang mô hình hàng đợi (tương tự như thư
điện tử) hoặc sử dụng lớp phần mềm trung gian hướng thông điệp (MOM) để bảo đảm
việc phân loại các thông điệp. Các dữ liệu đa phương tiện như âm thanh, hình ảnh ...
đòi hỏi việc truyền tin cần phải đáp ứng yếu tố thời gian và tính liên tục, do đó mô
hình truyền thông điệp dường như chưa đáp ứng được yêu cầu, khi đó phải sử dụng
phương pháp truyền theo luồng (stream). Vấn đề cuối cùng cần nghiên cứu là việc sử
dụng phương thức truyền tin điểm với điểm-điểm hay điểm-nhóm (multicast), nghĩa là
cùng một nội dung sẽ gửi một hay nhiều tiến trình khác.
2.1.1. Mô hình phân tán
Mô hình đối tượng phân mảnh (fragmented objects )



Các đối tượng có thể được phân chia trong một vài phần, nằm trên nodes khác



nhau, và tương tác để cung cấp các chức năng của đối tượng.
Ví dụ : Các đối tượng ràng buộc trên mạng toàn cầu ( Internet)

Mô hình đối tượng tái tạo (replicated objects )




10

Có nhiều bản sao, hoặc tái tạo hoặc các đối tượng cùng đồng thời tồn tại.

Tăng tính khả dụng và cải thiện hiệu suất của hệ thống.
Tuy nhiên, sự tái tạo của một đối tượng phải được giữ ổn định, thêm chi phí.


Chương 2: Truyền thông trong hệ phân tán

Mô hình đối tượng di trú ( hoặc di động - migratory /mobile )

 Trong đó có một đối tượng có thể chuyển từ một node đến một số khác.
 Đối tượng di động được sử dụng để cải thiện hiệu suất thông qua các cân bằng
tải, và để tự động điều chỉnh các ứng dụng để thay đổi môi trường.
Những mô hình trên có thể được kết hợp, ví dụ đối tượng phân mảnh cũng có
thể được tái tạo v.v…
Lợi ích của mô hình phân tán




Phát triển các ứng dụng có tính trừu tượng, tính mềm dẻo cao.
Cho phép đóng gói các việc thực hiện đối tượng, được đặt trên bất kỳ trang



Web nào, thực hiện: truy cập vào địa phương, quản lý sự kiện, bảo mật v.v…
Các ứng dụng có thể được tái sử dụng qua đóng gói đối tượng bằng các theo
mẫu.

2.1.2. Đối tượng phân tán
Một ứng dụng phân tán sử dụng các đối tượng từ xa để thực hiện một tập các
tiến trình xác định trên các mode của một mạng.

Các phương thức đối tượng thực hiện thông qua tiến trình hoặc các thread và có
thể gồm các lời gọi đến các phương thức đối tượng khác.
Xét mô hình đối tượng phân tán giữa 2 site 1 và site 2

Hình 2.1: Mô hình giữa 2 đối tượng phân tán site 1 và site 2
Gồm 3 bước:

11


Chương 2: Truyền thông trong hệ phân tán

 Việc gọi đối tượng trong cùng một quá trình (ví dụ: A và B): đây là một
local invocation.
 Việc gọi thực hiện theo các quy trình khác nhau trên cùng một trang Web
(D và E): đây là một out-of-process invocation .
 Việc gọi và đối tượng trên các nodes khác nhau (ví dụ C và D): đây là
một invocation từ xa.
 Ứng dụng chí có các Local Invocations được thực thi
=> Không phải là hệ thống đối tượng phân tán.
Các định dạng không cục bộ của invocation dựa vào một đối tượng môi giới
yêu cầu (ORB), hoặc một Middleware hỗ trợ để các đối tượng được phân tán giao tiếp
với nhau. (Ví dụ CORBA)
2.1.2.1. ORB (Object Request Broken)
ORB có các chức năng sau :







Xác định và tìm đối tượng
Kết buộc Client để phục vụ
Thực hiện các phương thức triệu gọi trên đối tượng
Quản lý các đối tượng (tạo, kích hoạt, xóa bỏ đối tượng)

2.1.2.2. Stub – Skeleton
Một ứng dụng sử dụng các đối tượng từ xa được tổ chức theo mô hình ClientServer:

 Client gửi một yêu cầu cho đến Server để thực hiện các phương thức của
những đối tượng.
 Server cung cấp các dịch vụ của mình nhờ một tập hợp các cuộc gọi thủ
tục từ xa (RPC - Remote Procedure Call ) thông qua các phương pháp
triệu gọi ( invocation method) trên một đối tượng từ xa : Stub-Skeleton
2.1.2.3. Midleware
Middleware trong hệ thống phân tán là một loại phần mềm hệ thống phân tán
kết nối các loại ứng dụng khác nhau và cung cấp phân tán minh bạch cho các ứng
dụng của nó kết nối. Nó được sử dụng để nối thành phần không đồng nhất xuất hiện
trong các hệ thống Dựa trên các tiêu chuẩn quan trọng hoặc các sản phẩm trên thị

12


Chương 2: Truyền thông trong hệ phân tán

trường, middleware có thể được chia thành nhiều loại: Socket, RPC, RMI, DCE,
DCOM, CORBA v.v...
2.1.2.4. Socket
Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương
trình yêu cầu dịch vụ ( client) và một chương trình cung cấp dịch vụ (server) trên

mạng.
Mỗi socket có thể được xem như một điểm cuối trong một kết nối. Một khi socket
đã được thiết lập phù hợp ở cả hai máy tính có thể trao đổi dịch vụ và dữ liệu.
Các hoạt động trên Socket thường là :

 Kết nối
 Đọc/ghi dữ liệu
 Đóng kết nối
Socket thường được sử dụng là như là giao tiếp phía trên tầng 3 của mô hình OSI
Hoạt động dựa trên giao thức TCP / IP, chúng thường được sử dụng như giao tiếp
(interface) cho các giao thức của nó, ví dụ, TCP, UDP, IP, và ICMP
Tùy thuộc vào các giao thức mà họ đang interfacing, Socket phân thành ba loại:

 datagram
 stream
 raw sockets
Hạn chế của Scoket
- Khi cần kết nối nhiều máy tính với nhau để trao đổi dữ liệu
=> Không thực hiện được vì bộ nhớ hạn chế
- Mỗi phần mềm chỉ sử dụng trong một flatform cho trước
=> Không thuận lợi để phát triển và test thử nghiệm
Hiện nay, cơ chế procedure call thường được sử dụng trong hệ phân tán

13


Chương 2: Truyền thông trong hệ phân tán

2.2. Gọi thủ tục từ xa
2.2.1. RPC cơ bản

RPC (Remote Procedure Calls) là phương thức truyền thông giữa các tiến trình
được thực hiện theo cơ chế gọi thủ tục/hàm.
Lời gọi thủ tục xa là một cơ chế cho phép một chương trình có thể gọi thực thi
một thủ tục (hay hàm) trên một máy tính khác. Trong chương trình lúc này, tồn tại hai
loại thủ tục: thủ tục cục bộ và thủ tục ở xa. Thủ tục cục bộ là thủ tục được định nghĩa,
cài đặt và thực thi tại máy của chương trình. Thủ tục ở xa là thủ tục được định nghĩa,
cài đặt và thực thi trên một máy tính khác. Cú pháp giữa lời gọi thủ tục cục bộ và ở xa
thì giống nhau. Tuy nhiên, khi một thủ tục ở xa được gọi đến, một thành phần của
chương trình gọi là Stub sẽ chuyển hướng để kích hoạt một thủ tục tương ứng nằm trên
một máy tính khác với máy của chương trình gọi. Đối với người lập trình, việc gọi thủ
tục xa và thủ tục cục bộ thì giống nhau về mặt cú pháp. Đây chính là cơ chế cho phép
đơn giản hóa việc xây dựng các ứng dụng Client-Server.
Trong hệ thống RPC, Server chính là máy tính cung cấp các thủ tục ở xa cho
phép các chương trình trên các máy tính khác gọi thực hiện. Client chính là các
chương trình có thể gọi các thủ tục ở xa trong quá trình tính toán của mình. Một Client
có thể gọi thủ tục ở xa của nhiều hơn một máy tính. Như vậy sự thực thi của chương
trình Client lúc này không còn gói gọn trên một máy tính của Client mà nó trải rộng
trên nhiều máy tính khác nhau. Đây chính là mô hình của ứng dụng phân tán
(Distributed Application).
Khác với gọi thủ tục cục bộ (trong một tiến trình), thủ tục được gọi từ xa được
thực hiện trong ngữ cảnh của một tiến trình khác, và tiến trình đó có thể chạy ở máy
khác.
RPC giúp đơn giản hoá lập trình truyền thông, do người lập trình không phải tự
viết toàn bộ phần mã phục vụ truyền thông giữa các tiến trình.
2.2.2. Cơ chế hoạt động
Ý tưởng phương pháp gọi thủ tục từ xa là che giấu quá trình thực hiện thủ tục
trên máy tính khác (đảm bảo tính trong suốt). Điều này được thực hiện bằng cách che
giấu quá trình trao đổi thông tin giữa các máy tính. Khi thực hiện gọi thủ tục từ xa,
một thành phần trên máy khách (gọi là - Client stub) sẽ đóng gói các tham số vào
thông điệp và yêu cầu thông điệp đó phải được chuyển đến máy chủ.

Tại máy chủ, một thành phần tương ứng với Stub (gọi là Skeleton) sẽ giải mã
thông điệp đã nhận được và thực thi các mã lệnh như phương pháp gọi thủ tục truyền
thống, sau đó trả về lại được đóng gói thành thông điệp và trả về cho Stub. Stub trên
máy khách sẽ giải mã thông điệp và trả về cho chương trình gọi các giá trị hoặc các

14


Chương 2: Truyền thông trong hệ phân tán

tham số theo yêu cầu. Quá trình xử lý giữa Client stub và Server stub hoàn toàn trong
suốt đối với lời gọi thủ tục.
Để sử dụng tính năng gọi thủ tục từ xa, một chương trình trên máy chủ phải cung
cấp các dịch vụ mô tả trong ngôn ngữ RPC. Mỗi máy chủ được gán tên và số chương
trình, tất cả các dịch vụ được khai báo trong danh sách với đầy đủ các tham số thể hiện
dịch vụ. Với nguyên tắc này, ngôn ngữ RPC cho phép thực hiện các kiểu dữ liệu đơn
giản cũng như các dữ liệu phức tạp như: struct, enum... Qui trình thực hiện bao gồm
các bước sau:
- Máy khách sử dụng tính năng gọi thủ tục cục bộ trong Stub. Client stub gửi các
tham số đến máy chủ bằng cách gửi yêu cầu RPC.
- Yêu cầu của Client Stub được Skeleton trên máy chủ phân tích.
- Thực hiện thủ tục đã được phân tích trên máy chủ.
- Máy chủ trả về kết quả thực hiện cho máy khách
Phương pháp gọi thủ tục từ xa thể hiện quan điểm tách biệt giữa giao diện và phần
cài đặt, xuất phát từ việc khai báo giao diện, phần mềm trung gian tạo các mã lệnh hỗ
trợ cho việc xử lý phân tán bằng cách thể hiện các ứng dụng dưới dạng ngữ nghĩa
truyền thống trên máy cục bộ, tuy nhiên nó phải đảm bảo nhiều nhiệm vụ phức tạp
như: truyền dữ liệu, đồng bộ tiến trình. Quá trình thực hiện gọi thủ tục từ xa được thực
hiện qua các bước sau:
- Tiến trình muốn thực hiện thủ tục ở máy client sẽ gọi client stub.

- Client stub sẽ tạo một bản tin và có lời gọi đến hệ điều hành của client đó.
- Hệ điều hành của máy client sẽ gửi bản tin đó tới hệ điều hành của máy server.
- Hệ điều hành của server sẽ gửi bản tin tới server stub (Skeleton)
- Skeleton lấy các thông tin của gói tin và gọi server tương ứng.
- Server thực hiện công việc được yêu cầu và trả kết quả về cho Skeleton.
- Skeleton đóng gói kết quả đó vào bản tin rồi gọi hệ điều hành của server đó.
- Hệ điều hành của máy server này sẽ gửi bản tin kết quả đó hệ điều hành của
máy client.
- Hệ điều hành của máy client sẽ gửi bản tin cho client stub.
- Client stub sẽ mở gói tin kết quả và trả về cho client.
Trong đó, client stub và Skeleton ở máy client và server là thành phần nhằm giảm
nhẹ công việc cho client và server, làm cho hệ thống hoạt động một cách trong suốt
hơn.

15


Chương 2: Truyền thông trong hệ phân tán

Hình 2.2. RPC giữa một client và server
2.2.3. Vấn đề truyền tham số
Gọi thủ tục truyền thống có ba cách truyền tham số: truyền giá trị, truyền tham
chiếu và truyền con trỏ.
Con trỏ là kiểu dữ liệu đặc biệt, nó lưu trữ địa chỉ của một biến số mà địa chỉ đó
chỉ có ý nghĩa bên trong một máy tính, như vậy không thể áp dụng phương pháp này
để truyền tham số trong gọi thủ tục từ xa. Do đó, đối với việc gọi thủ tục từ xa, chỉ có
thể thực hiện bằng cách truyền giá trị hoặc truyền tham chiếu. Truyền giá trị trở nên
phức tạp đối với hệ thống phân tán không đồng nhất (có hai cách định dạng dữ liệu,
các bộ vi xử lý của Intel theo định dạng little endian, trong khi đó các bộ vi xử lý của
Sun theo định dạng big endian).

- Truyền giá trị: các tham số được truyền đi là các giá trị cụ thể. Các thủ tục được
gọi đến sẽ coi các tham biến được truyền kiểu tham trị như là các biến được khởi tạo
cục bộ, có thể thay đổi giá trị nhưng lại không ảnh hưởng tới giá trị gốc trong lần gọi
sau. Vấn đề đặt ra khi truyền tham trị là yêu cầu giữa các máy phải có sự đồng nhất về
việc biểu diến dữ liệu và các kiểu dữ liệu.
- Truyền tham chiếu: các tham số được truyền đi là con trỏ hay biến chứa địa chỉ
của nơi chưa giá trị thực của chúng. Các thủ tục được gọi sẽ căn cứ vào địa chỉ này để
tham chiếu đến giá trị khi tính toán. Khi giá trị này bị thay đổi trong khi thực hiện thủ
tục thì sẽ được thông báo cho client và các lần gọi sau sẽ dùng giá trị mới đó.
2.2.4. Một số mô hình RPC mở rộng
2.2.4.1. RPC dị bộ (Asynchronous RPC).
Tư tưởng thực hiện là: client gửi tới server lời gọi thủ tục và chờ bản tin chấp
nhận từ server. Phía server sẽ gửi bản tin chấp nhận về cho client thông báo đã nhận
được yêu cầu và bắt đầu thực hiện yêu cầu RPC đó. Lúc này client sẽ tếp tục thực hiện
công việc của mình mà không chờ kết quả từ server như ở RPC truyền thống.

16


Chương 2: Truyền thông trong hệ phân tán

Hình 2.3. RPC dị bộ
2.2.4.2. RPC đồng bộ trễ (Deferred synchronuos RPC)
Thực hiện hai lời gọi, một từ client và một từ server.
Client gửi tới server lời gọi thủ tục và chờ bản tin chấp nhận từ server. Phía
server sẽ gửi bản tin chấp nhận về cho client thông báo đã nhận được yêu cầu và bắt
đầu thực hiện yêu cầu RPC đó. Lúc này client sẽ tếp tục thực hiện công việc của mình.
Khi thực hiện thủ tục xong, server sẽ thực hiện lời gọi tới client báo nhận lấy kết quả.
Client thực hiện ngắt, nhận kết quả và gửi lại cho server bản tin thông báo đã nhận kết
quả thành công.


Hình 2.4. RPC đồng bộ trễ
2.2.4.3. RPC đơn tuyến (one- way RPC)
Sau khi thực hiện lời gọi thủ tục từ xa tới server, client không chờ đợi thông báo
nhận yêu cầu thành công từ server mà tiếp tục thực hiện ngay các công việc khác của
mình. Đó là RPC đơn tuyến.
2.3. Triệu gọi đối tượng từ xa
Mọi ứng dụng spark bao gồm 1 Driver program để chạy hàm main của người
dùng và thực hiện tính toán song song trên 1 cụm.
Có 2 khái niệm trừu tượng quan trọng trong Spark là RDD và Shared Variables.

17


Chương 2: Truyền thông trong hệ phân tán

• RDD là tập dữ liệu phân tán mà các dữ liệu này được phân tán vào các
node của cluster để thực hiện tính toán song song.
• Shared variables thực hiện chia sẻ biến giữa các task hoặc giữa các task
với driver program.
2.3.1. Các đối tượng phân tán
Một đối tượng phân tán gồm các thành phần sau:

• State: là các dữ liệu đã được đóng gói.
• Method: là các thao tác có thể thực hiện trên dữ liệu.
• Interface: là nơi để giao tiếp với các phương thức của đối tượng. Nói
cách khác , các phương thức sẵn sàng thông qua interface.
Một đối tượng có thể thực thi nhiều interface và cũng có thể có nhiều đối tượng
cùng thực thi một interface giống nhau.
Sự độc lập giữa các interface và các đối tượng thực thi interface cho phép ta có

thể đặt một interface vào một máy nào đó trong khi chính bản thân đối tượng có thể cư
trú ở máy khác.

Hình 2.5. Đối tượng phân tán.
2.3.2. Kết nối client với đối tượng

Hình 2.6: Triệu gọi đối tượng từ xa ROI
Trong đó:

• Server là chương trình cung cấp các đối tượng có thể được gọi từ xa.
18


Chương 2: Truyền thông trong hệ phân tán

• Client là chương trình có tham chiếu đến các phương thức của các đối
tượng ở xa trên Server Stub chứa các tham chiếu đến các phương thức ở
xa trên Server. Skeleton đón nhận các tham chiếu từ Stub để kích hoạt
phương thức tương ứng trên Server Remote Reference Layer là hệ thống
truyền thông của RMI. Con đường kích hoạt một phương thức ở xa được
mô tả như hình trên.
Các bước thực hiện để kết nối Client với đối tượng như sau:
Khi triệu gọi các phương thức từ xa, client sẽ gửi yêu cầu đến proxy – một thể
hiện của interface.
Proxy sẽ marshal (sắp xếp và đưa vào hàng theo thứ tự) các phương thức được
yêu cầu vào một bản tin rồi gửi cho hệ điều hành của máy client.
Hệ điều hành của client sẽ gửi bản tin yêu cầu đó đến hệ điều hành của server.
Hệ điều hành server nhận bản tin và chuyển cho skeleton (giống server stub của
RPC).
Skeleton sẽ unmarshal bản tin nhận được đẻ gửi đến interface của đối tượng có

phương thức tương ứng.
Đối tượng thực thi phương thức rồi trả kết quả về cho skeleton.
Skeleton marshal kết quả nhận được rồi gửi trả về cho hệ điều hành của client.
Hệ điều hành của client nhận bản tin kết quả rồi chuyển tới cho proxy.
Proxy unmarshal bản tin đó rồi chuyển kết quả về cho client.
Chú ý là cả client va server đều sử dụng interface giống nhau.
Một số các đối tượng:

• Compile – time object: là các đối tượng trong các ngôn ngữ lập trình
hướng đối tượng. Nó được định nghĩa như là một mẫu của class.
• Runime object
• Persistent Object – đối tượng kiên trì: là đối tượng vẫn tồn tại ngay cả
khi nó không tồn tại trong không gian địa chỉ của tiến trình nào trên
server.
• Transient object – đối tượng tức thời: là đối tượng chỉ tồn tại khi server
gọi đến nó, sau khi dùng xong nó sẽ được giải phóng.
2.4. Triệu gọi phương thức từ xa RMI
Có hai phương pháp triệu gọi phương thức từ xa (Remote Method Invocation)
là: triệu gọi phương thức từ xa động và triệu gọi phương thức từ xa tĩnh.

19


Chương 2: Truyền thông trong hệ phân tán

2.4.1. Triệu gọi phương thức từ xa động
Khi cần gọi đến một phương thức mới xác định Interface đang dùng trong lời
triệu gọi từ xa đó. Vì thế khi Interface thay đổi, các chương trình ứng dụng không cần
phải biên dịch lại.
2.4.2. Triệu gọi phương thức từ xa tĩnh

Các Interface được xác định trước. Các chương trình ứng dụng không thích ứng
được khi Interface hiện hành thay đổi. Nếu Interface hiện tại có sự thay đổi thì các
chương trình ứng dụng phải được biên dịch lại mới có thể hiểu được Interface mới đó.
2.4.3. So sánh sự khác nhau phương thức RPC và RMI
2.4.3.1. Giống nhau
Ứng dụng để triệu gọi phương thức/ hàm từ xa. Ứng dụng trên máy A, gọi
phương thức và hàm đặt trên máy B. Phương thức chạy trên máy tính ở xa, nên sử
dụng tài nguyên của máy ở xa. Máy gọi hàm phải đợi một thời gian để cho máy ở xa
thực hiện hàm và trả về kết quả
2.4.3.2. Khác nhau

• RPC: Gọi hàm và thủ tục ở xa bản chất từ client đến server
 Hướng thủ tục
 Triển khai được cho hai hệ thống khác nhau
 Viết bằng nhiều ngôn ngữ, hai phía client và server có cùng 1ngôn ngữ
• RMI: Nền tảng phân tán trong java
 Hướng đối tượng:
 Cho phép nắm giữ tham chiếu trong đối tượng RMI được tích hợp sẵn
trong java.
 Cho phép tham chiếu đến đối tượng, triệu gọi phương thức từ xa của đối
tượng Có dịch vụ định vị đối tượng từ xa
Như vậy, 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

20



Chương 2: Truyền thông trong hệ phân tán

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.5. Truyền thông hướng thông điệp
2.5.1. Giới thiệu
Là phương thức truyền thông cơ sở được hỗ trợ bởi hệ điều hành hầu hết các hệ
điều hành;
Cho phép một tiến trình trên một máy truyền môt gói dữ liệu hoặc một chuỗi
bytes đến một tiến trình khác trên máy đó hoặc máy khác;
Socket là một trong những kỹ thuật được dùng phổ biến nhất trong phương thức
truyền thông điệp:

 Java sockets
 Windows sockets
Socket và Ports:
Socket = Internet address + Port

Hình 2.6: Mối quan hệ giữa Socket và Port
2.5.2. Đặc điểm
- Là điểm giao tiếp trong truyền thông giữa các tiến trình
- Các thông điệp được truyền giữa các sockets
- Socket có thể tạo dựa trên giao thức TCP hoặc UDP
- Mỗi tiến trình có thể sử dụng nhiều cổng để tạo nhiều sockets
- Không thể chia sẻ các cổng, trừ trường hợp sử dụng IP multicast
2.5.3. Các loại truyền thông điệp cơ bản
Truyền thông kiên trì (Persistent communication): Thư điện tử là một ví dụ
minh họa rõ nét cho khái niệm truyền thông kiên trì.Khi một trạm muốn gửi bản tin đi

21



Chương 2: Truyền thông trong hệ phân tán

trên mạng, nó sẽ gửi bản tin đó đến interface của máy mình. Qua bộ nhớ đệm, bản tin
đó được truyền đi trong mạng cục bộ để đến mail server cụ bộ. Mail server này tạm
thời lưu trữ bản tin đó vào bộ nhớ đệm của mình, xác định địa chỉ trạm đích, rồi gửi tới
server cục bộ của trạm đích tương ứng (có thể đi qua nhiều mail server trung gian
khác). Tới mail server cuối cùng, bản tin lúc này sẽ được lưu lại trước khi phát cho
trạm đích tương ứng.
Truyền thông nhất thời (Transient communication): bản tin gửi đi chỉ được lưu
lại trong phiên trao đổi đó. Khi phiên trao đổi đã hoàn thành hoặc khi kết nối bị hủy bỏ
thì các bản tin đó cũng bị hủy bỏ trên các server. Do đó, vì một lý do nào đó mà một
server trung gian không thể chuyển tiếp bản tin đi được thì bản tin này sẽ bị hủy bỏ.
Truyền thông đồng bộ (Synchronous communication): khi trạm gửi gửi đi một
bản tin thì nó sẽ ở trạng thái khóa (blocked) cho đến khi nhận được thông báo bản tin
đó đã đến đích thành công.
Truyền thông dị bộ (Asynchronous communication): khi trạm gửi gửi đi bản tin,
nó sẽ tiếp tục thực hiện công việc của mình. Điều này cũng có nghĩa là bản tin đó được
lưu lại trên bộ nhớ đệm của trạm gửi hoặc của server cục bộ.
2.5.4. Một số loại truyền thông điệp tổ hợp
Truyền thông dị bộ, kiên trì: bản tin được lưu trữ lâu dài hoặc là ở bộ nhớ đệm
của trạm gửi hoặc là trên server truyền thông đầu tiên mà bản tin đó tới. Ví dụ hệ
thống thư điện tử.
Truyền thông đồng bộ, kiên trì: bản tin được lưu trữ lâu dài ở trạm nhận, trạm
gửi sẽ ở trạng thái blocked cho đến khi bản tin được lưu trữ ở bộ nhớ đệm trạm nhận.
Truyền thông dị bộ, nhất thời: sau khi lưu trữ bản tin cần gửi ra bộ nhớ đệm của
máy mình, trạm gửi sẽ tiếp tục thực hiện công việc của mình. Cùng lúc, bản tin sẽ
được truyền tới trạm nhận. Khi bản tin đến được trạm nhận mà trạm nhận đó lại không
làm việc, khi đó quá trình truyền thông bị hủy bỏ.

Truyền thông đồng bộ, nhất thời: bản tin không được lưu trữ lâu dài. Khi gửi đi
một bản tin, trạm gửi sẽ chờ bản tin báo đã nhận thành công của trạm nhận gửi về mới
thực hiện tiếp công việc của mình.

22


Chương 2: Truyền thông trong hệ phân tán

2.6. Truyền thông theo nhóm
Truyền thông theo nhóm (multicalst) là phương pháp truyền dữ liệu từ một
thành viên đến nhiều thành viên khác trong cùng một nhóm chỉ với một lần thực hiện.
Truyền thông theo nhóm được sử dụng trong rất nhiều lĩnh vực của ứng dụng phân tán
như: dịch vụ truyền hình, hội thảo, trình diễn báo cáo, truyền phát thông tin… Truyền
thông theo nhóm có thể được cài đặt trên tại tầng liên kết dữ liệu hoặc tầng mạng hoặc
tầng ứng dụng của mô hình OSI.
2.7. Truyền thông hướng dòng
Những kỹ thuật truyền tin đã đề cập trên đây mới chỉ chú trọng đến việc trao
đổi thông tin mà chưa nói đến thời gian thực hiện quá trình chuyển tin đó. Trong thực
tế có nhiều dữ liệu cần chuyển theo thời gian thực (ví dụ âm thanh, video….). Một số
dữ liệu cần phải đáp ứng yêu cầu về mặt thời gian cũng như tính liên tục của dữ liệu
cần phải chuyển, khi đó cần phải kỹ thuật truyền dạng luồng. Như vậy, ở đây cần phải
thực hiện theo chế độ chuyển tiếp nhạn và không đồng bộ. Đối với việc truyền tin phụ
thuộc thời gian, yêu cầu quan trọng là phải đáp ứng tiêu chuẩn về chất lượng truyền
tin, đó là các thông số mà hệ thống phân tán cấn phải đáp ứng để đảm bảo chất lượng
dịch vụ. Các dịch vụ đa phương tiện bao gồm nhiều luồng dữ liệu khác nhau như văn
bản, âm thanh, hình ảnh… cần phải được đồng bộ giữa các luồng dữ liệu đó, cần phải
duy trì mối tương quan giữa các luồng dữ liệu (dữ liệu có thể xuất hiện dưới dạng liên
tục hoặc không liên tục). Việc duy trì đồng bộ cần phải được thực hiện tại các đầu cuối
cũng như trong môi trường mạng.

2.7.1. Một số khái niệm cơ bản
Medium (số nhiều là media) : chỉ các phương tiện dùng để truyền thông tin như
các thiết bị lưu trữ, đường truyền, các phương tiện hiển thị…
Continuous media: quan hệ thời gian giữa các mục là yếu tố cơ bản để thông
dịch đúng ngữ nghĩa thực sự của dữ liệu.
Discrete media: quan hệ thời gian không còn là yếu tố cơ bản để thông dịch
đúng dữ liệu.
Data stream: là một chuỗi các đơn vị dữ liệu. Với data stream thì thời gian là
yếu tố quyết định. Để kiểm soát thời gian người ta đưa ra ba phương thức truyền sau:

23


Chương 2: Truyền thông trong hệ phân tán

Truyền dị bộ (asynchronous transmission mode): các mục dữ liệu truyền tuần tự
và không có ràng buộc thời gian đối với việc truyền.
Truyến đồng bộ (synchronous transmission mode): quy định trước độ trễ tối đa
cho mỗi đơn vị dữ liệu trong data stream.
Truyền đẳng thời (isochronous transmission mode): quy định độ trễ lớn nhất và
nhỏ nhất cho mỗi đơn vị dữ liệu trong data stream. Cách truyền này đóng một vai trò
quan trọng trong việc trình diễn audio và video.
Dòng đơn (simple stream) là dòng chỉ gồm một chuỗi đơn vị dữ liệu.
Dòng phức (complex stream): bao gồm nhiều chuỗi đơn vị dữ liệu khác nhau.
Mỗi chuỗi này được gọi là một dòng con (sub stream).
2.7.2. Luồng dữ liệu và chất lượng dịch vụ
Chất lượng dịch vụ QoS liên quan đến các vấn đề sau:

 Băng thông yêu cầu, tốc độ truyền, trễ…
 Loss sensitivity: kết hợp cùng với loss interval cho phép ta xác định

được tốc độ mất mát thông tin có thể chấp nhận được.
 Burst loss sensitivity: cho phép xác định bao nhiêu đơn vị dữ liệu liên
tiếp có thể bị mất.
 Minimum delay noticed: xác định giới hạn thời gian trễ trên đường
truyền cho phép để bên nhận không nhận biết được là có trễ.
 Maximum delay variation: xác định độ trễ (jitter) rung lớn nhất cho
phép.
Quality of guarantee: chỉ số lượng các dịch vụ yêu cầu cần phải có.
2.7.3. Đồng bộ hóa các luồng dữ liệu
Có hai loại đồng bộ:
Đồng bộ đơn giản: thực hiện đồng bộ giữa dòng trễ và dòng liên tục. Ví dụ
trong việc trình diễn slide có kèm âm thanh. Dòng hình ảnh slide là dòng trễ còn dòng
âm thanh là dòng liên tục, phải đồng bộ hai dòng này để thu được kết quả trình diễn
như ý muốn.

24


Chương 2: Truyền thông trong hệ phân tán

Đồng bộ phức tap: là việc đồng bộ giữa các dòng dữ liệu liên tục. Ví dụ trong
việc xem phim trực tuyến, cả dòng âm thanh và dòng hình ảnh đều là các dòng liên tục
cần phải được đồng bộ.
Các kĩ thuật đồng bộ: có hai kĩ thuật đồng bộ
Kĩ thuật đơn giản: dựa trên việc đồng bộ các thao tác đọc ghi trên các dòng dữ
liệu sao cho phù hợp với các yêu cầu thời gian cho trước và các ràng buộc về đồng bộ.

Hình 2.7: Đồng bộ đơn giản
Kĩ thuật phức tạp: đồng bộ trên môi trường mạng dựa trên cả việc đồng bộ giữa
bên nhận và bên gửi.


Hình 2.8: Đồng bộ phức tạp

CHƯƠNG 3: MỘT SỐ HỆ THỐNG FILE PHÂN TÁN
3.1. Sun Network File System.
3.1.1. Giới thiệu chung
- NFS thực ra không phải là một hệ thống file thực thụ- là một tập các giao thức cung
cấp cho client những mô hình hệ thống file phân tán. Trong trường hợp này, NFS có
thể so sánh với CORBA. Giống CORBA, NFS có thể chạy trên nhiều hệ điều hành
khác nhau hay các máy khác nhau. Hơn nữa NFS có thể chạy trên một tập các máy
không đồnh nhất.

25


×