Kiến trúc phân tầng • Trao đổi thông tin trong hệ phân tán – Bit, byte, lỗi, thiết bị trung gian, tốc độ truyền tin • Kiểm soát lỗi, luồng dữ liệu, chuyển tiếp, định tuyến • Giao diện
Trang 1Trao đổi thông tin trong hệ
phân tán
1 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 2Nội dung
1 Các khái niệm cơ bản
2 Lời gọi thủ tục từ xa
3 Trao đổi thông tin bằng thông báo
4 Trao đổi thông tin dòng
5 Trao đổi thông tin đa điểm
Trang 31 Các khái niệm cơ bản
I Giao thức
II Kiến trúc phân tầng
III Mô hình ISO/OSI
IV Phân loại các phương pháp trao đổi thông tin
Các hệ phân tán @ Hà Quốc Trung
Trang 4– Hướng kết nối/Không hướng kết nối
– Tin cậy/Không tin cậy
• Là thành phần cơ bản nhất thực hiện trao đổi thông tin
• Cung cấp các dịch vụ để gửi các thông báo
Trang 5Phân loại giao thức
• Hướng kết nối
– Kết nối, gửi dữ liệu, nhận dữ liệu, giải phóng kết nối
• Không hướng kết nối
– Gửi dữ liệu, nhận dữ liệu
• Tin cậy
– Gửi dữ liệu, nhận dữ liệu, báo nhận dữ liệu (đích), báo nhận dữ liệu (nguồn)
• Không tin cậy
– Gửi dữ liệu, nhận dữ liệu
Các hệ phân tán @ Hà Quốc Trung
Trang 6Các khái niệm trong giao thức
Trang 7Ví dụ: HLDC (High Level Data Link
Control)
7 6 5 4 3 2 1 0 N(R)
I-e N(R)
Receive sequence
no
P/F type 0 1
fram
Trang 8Ví dụ về giao thức hướng kết nối
Trang 9II Kiến trúc phân tầng
• Trao đổi thông tin trong hệ phân tán
– Bit, byte, lỗi, thiết bị trung gian, tốc độ truyền tin
• Kiểm soát lỗi, luồng dữ liệu, chuyển tiếp, định tuyến
• Giao diện với tầng vật lý
• Phức tạp: cần chia nhỏ bài toán
Các hệ phân tán @ Hà Quốc Trung
Trang 10Kiến trúc phân tầng
• Trao đổi thông tin giữa các hệ thống
– Phức tạp, đa dạng, nhiều vấn đề
– Chia để trị: các cặp p2p giải quyết vấn đề cụ thể
(distributed modules) bằng một giao thức
Trang 11Giao tiếp giữa các tầng kề nhau
• Tầng trên sử dụng dịch vụ của tầng dưới để
truyền các thông báo
– Request(M), Notify(M), Response(M),
Confirm(M)
• Tầng dưới cung cấp dịch vụ cho tầng trên
– Cơ chế callback, notify, …
• Sử dụng các thông tin điều khiển trong các
thông báo để phân biệt các dịch vụ
11 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 12Tiêu đề-Thông tin điều khiển
Trang 13Mô hình ISO/OSI Kết nối các hệ thống mở
13 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 14Giao thức TCP
Trang 15III Giao thức của PM trung gian
2-5
15 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 16Tầng phần mềm trung gian
• Các ứng dụng đều có cùng các nhu cầu
– Bảo mật, xác thực, đồng bộ, định danh, sao lưu
• Phần mềm trung gian cung cấp các dịch vụ nói
Trang 17Nội dung
1 Kiến trúc phân tầng
2 Lời gọi thủ tục từ xa
3 Trao đổi thông tin bằng thông báo
4 Trao đổi thông tin dòng
5 Trao đổi thông tin đa điểm
17 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 182 Lời gọi thủ tục từ xa
I Socket API
II Cơ chế lời gọi thủ tục từ xa
III Cơ chế truyền tham số
IV Lời gọi thủ tục từ xa không đồng bộ
V Ví dụ về lời gọi thủ tục từ xa
Trang 19– Thiết lập kết nối sử dụng cổng server và client
– Trao đổi thông tin (gửi/nhận)
– Giải phóng kết nối
Các hệ phân tán @ Hà Quốc Trung
Trang 20Socket API
• Vấn đề
– Xác định cổng của server Port Forwarding
– Xác định cổng của client
• Đồng bộ giữa client và server
• Liên hệ giữa phiên làm việc và kết nối
• Rất không thuận tiện cho trường hợp Response
Trang 21Request-II Khái niệm lời gọi thủ tục từ xa
• Trừu tượng hóa trao đổi thông tin giữa client
và server
• Từ yêu cầu=> trả lời thành quan hệ
– Tham số thực hiện=> kết quả trả về
• Cú pháp lời gọi thủ tục
Các hệ phân tán @ Hà Quốc Trung
Trang 22Lời gọi thủ tục
count=read(fd,buf,nbytes)
Trang 23Cơ chế truyền tham số
• Tham biến
• Tham chiếu
• Copy/phục hồi
– CT gọi copy các dữ liệu vào Stack
– CT gọi phục hồi các dữ liệu từ Stack
• Chương trình chính và thủ tục chia sẻ một
luồng thực hiện
23 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 24Cơ chế RPC
Trang 25• Cần một lời gọi tương tự lời gọi của thủ tục cục
bộ, nhưng được thực hiện theo cách khác
Trang 26Cơ chế RPC
• CT khách gọi client stub
• Client stub đóng gói các dữ liệu thành thông báo,
chuyển cho Client Local OS
• Client's OS Gửi thông báo đến cho Server OS
• Server OS chuyển thông báo cho server stub
• Giải mã nội dung thông báo, gọi chương trình con
• Trả lại kết quả cho Server Stub
• Đóng gói kết quả, chuyển cho, local OS
• Gửi thông báo đến cho client's OS
• Chuyển thông báo cho client stub
• Giải mã thông báo, chuyển cho client
Trang 27Chức năng của client-stub
• Sẵn sàng nhận các lời gọi từ chương trình
• Trả lại cho chương trình client
• Thiết lập kết nối với server khi nào?
Các hệ phân tán @ Hà Quốc Trung
Trang 28Chức năng của server stub
• Sẵn sàng nhận các lời gọi
• Gọi chương trình server
• Trả lời lại các lời gọi
Trang 29III Cơ chế truyền tham số
• Tham biến
– Giữa client và server
– Vấn đề khi biểu diễn dữ liệu khác nhau
• Tham chiếu
– Bộ nhớ phân tán
– Copy dữ liệu???
• Tham chiếu thay bằng copy/restore
– Chuyển tham chiếu+code để truy cập vào tham
chiếu
29 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 30Truyền tham số bằng tham biến
Trang 31Truyền tham số bằng tham biến
Các hệ phân tán @ Hà Quốc Trung
• Chỉ hoạt động tốt khi hệ thống đầu cuối là
đồng nhất
• Xuất hiện vấn đề khi:
– Biểu diễn dữ liệu của 2 hệ thống khác nhau
– Các dữ liệu không thuộc cùng một kiểu, các kiểu
dữ liệu khác nhau được biểu diễn khác nhau
Trang 32Sai lệch trong truyền bằng tham
biến
Trang 33Truyền tham số bằng tham biến
Các hệ phân tán @ Hà Quốc Trung
• Tham chiếu chỉ có ý nghĩa cục bộ
• Có thể được thực hiện được bằng cách
– Cấm sử dụng các tham chiếu
– copy các giá trị
• Có thể cải thiện bằng cách chỉ copy một lần
(cho input hoặc output)
• Không thực hiện được tham chiếu tới các dữ liệu có cấu trúc
Trang 34Đặc tả tham số
• Client và server phải thống nhất với nhau:
– số lượng, kiểu dữ liệu, kích thước và cách thức biểu diễn các kiểu dữ liệu
• Client và server phải được xây dựng dựa trên đặc tả
tham số
• Quá trình thống nhất này được thực hiện ở mức lập
trình
• Các nhà phát triển phải chia sẻ với nhau đặc tả các
tham số để phát triển thành phần server hoặc client
• Đặc tả này thường gọi là đặc tả giao diện, sử dụng IDL
Trang 35Tính mở của RPC
• Client và Server được cài đặt bởi các NSX
khác nhau
• Giao diện thống nhất client và server
– Không phụ thuộc công cụ và ngôn ngữ lập trình
– Mô tả đầy đủ và trung lập
– Thường dùng ngôn ngữ định nghĩa giao diện
35 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 36RPC không đồng bộ
• RPC: Client yêu cầu server thực hiện và trả lại kết quả
• Có nhiều trường hợp không cần trả lại kết quả
• Client sau khi gọi RPC tiếp tục thực hiện,
không quan tâm đến kết quả trả lại
Trang 37IV Liên kết client server
37 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 38Liên kết client –server
• Liên kết cục bộ
– Dịch vụ cục bộ trên máy tính server cho biết có
những thủ tục nào được cung cấp
• Liên kết toàn cục
– Dịch vụ thư mục cho biết địa chỉ máy tính và vị trí của dịch vụ
Trang 39Vấn đề: tên/địa chỉ (binding)
• Client cần chỉ ra hàm nào gọi từ xa, trên máy nào
– Hàm nào: tên
– Máy nào: địa chỉ
• Các thông tin này được lưu trữ tại các bảng
– Có thể thêm, bớt các dòng trong bảng
– Tĩnh: dịch vụ tên/thư mục
– Động: kiểm soát bởi server và client
• Bảng có thể được xây dựng khi dịch, link hoặc
thực hiện phụ thuộc vào RPC
39 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 405.Ví dụ
• Sun RPC
• DCE RPC
• MS RPC
Trang 41RPC
Các hệ phân tán @ Hà Quốc Trung
Trang 42Xây dựng chương trình bằng
DCE-RPC
Trang 43– Thiết kế cho hệ thống file NFS
– Chạy trên Sun Solaris, Unix, …
• Và các công cụ khác …
43 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 44Java RMI
Trang 45RMI: Lời gọi phương thức từ xa
• Lời gọi thủ tục-> RPC
• Lập trình hướng đối tượng :
– đối tượng từ xa, ứng dụng phân tán hướng đối
tượng
• Các vấn đề cần giải quyết
– Định vị đối tượng từ xa
– Trao đổi thông tin với đối tượng
– Gọi các phương thức của đối tượng
• RMI, T-RMI, DCOM, CORBA
45 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 46Ưu điểm
• Đơn giản, dễ sử dụng
• Trong suốt: lời gọi phương thức từ xa giống lời gọi phương thức cục bộ
• Độ tin cậy cao
• An toàn và bảo mật (do JVM cung cấp)
• Nhược điểm:
– Chỉ dùng cho java
Trang 48DCE RPC
• Môi trường tính toán phân tán
• Cung cấp các dịch vụ cho ứng dụng phân tán
Trang 49Nội dung
1 Kiến trúc phân tầng
2 Lời gọi thủ tục từ xa
3 Trao đổi thông tin bằng thông báo
4 Trao đổi thông tin dòng
5 Trao đổi thông tin đa điểm
49 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 503 Trao đổi thông tin bằng thông
báo
I Trao đổi thông tin tức thời
II Trao đổi thông tin bền vững
III Ví dụ
Trang 51Beckeley socket
Các hệ phân tán @ Hà Quốc Trung
Trang 52Socket
Trang 53MPI
• Mô hình ở bậc cao hơn socket
• Cho phép các ứng dụng trao đổi thông tin sử dụng thông báo có cấu trúc tùy ý
• Cho phép trao đổi thông báo theo nhóm
• Hỗ trợ các phương thức trao đổi thông tin khác nhau (dừng, không dừng, đồng bộ)
Các hệ phân tán @ Hà Quốc Trung
Trang 54MPI
Trang 55Trao đổi thông tin bền vững
• Không cần tiến trình gửi và tiến trình nhận
cùng kích hoạt
• Thông báo được lưu trữ tại các communication server
• Các trạm cần có bộ nhớ đệm đủ lớn để lưu trữ các thông báo: hàng đợi
• Quá trình gửi và nhận có thêm sự tham gia của kênh truyền tin
55 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 56Mô hình trao đổi thông tin
Trang 57Quan hệ giữa nguồn kênh và đích
Các hệ phân tán @ Hà Quốc Trung
Trang 58Các thao tác cơ bản trên hàng đợi
Trang 59Nguyên tắc hoạt động
Các hệ phân tán @ Hà Quốc Trung
Trang 60Kiến trúc với các bộ chuyển tiếp
2-29
Trang 61Bộ chuyển đổi thông báo
• The general organization of a message broker
in a message-queuing
• system 2-30
61 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 62Ví dụ: IBM MQSeries
• General organization of IBM's MQSeries
message-queuing system
2-31
Trang 63Các hàm trên thông báo
MQopen Open a (possibly remote) queue
MQclose Close a queue
MQput Put a message into an opened queue
MQget Get a message from a (local) queue
63 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 64Chuyển tiếp thông báo
• The general organization of an MQSeries
queuing network using routing tables and
aliases
Trang 65Channels
• Một vài thuộc tính của channel agent
Transport type Determines the transport protocol to be used
FIFO delivery Indicates that messages are to be delivered in the order they are sent Message length Maximum length of a single message
Setup retry
count Specifies maximum number of retries to start up the remote MCA Delivery retries Maximum times MCA will try to put received message into queue
65 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 66Nội dung
1 Kiến trúc phân tầng
2 Lời gọi thủ tục từ xa
3 Trao đổi thông tin bằng thông báo
4 Trao đổi thông tin dòng
5 Trao đổi thông tin đa điểm
Trang 674 Trao đổi thông tin dòng
• Dữ liệu thời gian thực
2010
Trang 68I Dòng dữ liệu liên tục
2-35.2
Trang 69Dòng dữ liệu số
• Setting up a stream between two processes
across a network
69 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 71Mô hình ứng dụng truyền dòng
Các hệ phân tán @ Hà Quốc Trung
Trang 72II Chất lượng dịch vụ
• Các ràng buộc về thời gian cần được đảm bảo
• Các yêu cầu về thời gian được biểu diễn bằng chất lượng dịch vụ
– Tốc độ truyền
– Thời gian thiết lập quá trình truyền
– Thời gian trễ
– Biên độ dao động của trễ
– Thời gian trễ đi về
Trang 73QoS (1)
• The principle of a token bucket algorithm
73 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 74QoS (2)
• Đặc tả dòng
Characteristics of the Input Service Required
• maximum data unit size (bytes)
• Token bucket rate (bytes/sec)
• Toke bucket size (bytes)
• Maximum transmission rate
(bytes/sec)
• Loss sensitivity (bytes)
• Loss interval ( sec)
• Burst loss sensitivity (data units)
• Minimum delay noticed ( sec)
• Maximum delay variation ( sec)
• Quality of guarantee
Trang 76Sử dụng bộ đệm
• Giảm ảnh hưởng của dao động độ trễ
Trang 77Phân tán lỗi
Các hệ phân tán @ Hà Quốc Trung
Trang 78Thiết lập dòng
• The basic organization of RSVP for resource reservation in a distributed
• system
Trang 79III.Đồng bộ các dòng
• Đồng bộ dòng dữ liệu rời rạc/liên tục
– Tạo gói dữ liệu chung cho các dòng
– Trình diễn lại từng gói dữ liệu
Trang 80Đồng bộ-theo mốc thời gian
Trang 81Middleware đa phương tiện
• The principle of synchronization as supported
by high-level interfaces
2-41
81 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 82Quảng bá cơ chế đồng bộ
• Cung cấp đặc tả dòng và đồng bộ dòng theo
dòng dữ liệu (MPEG)
• Ví trí thực hiện đồng bộ
– Trạm gửi (dồn tất cả các kênh vào một kênh)
– Trạm nhận (các kênh chuyển theo các đường khác nhau)
Trang 83Nội dung
1 Kiến trúc phân tầng
2 Lời gọi thủ tục từ xa
3 Trao đổi thông tin bằng thông báo
4 Trao đổi thông tin dòng
5 Trao đổi thông tin đa điểm
83 Các hệ phân tán @ Hà Quốc Trung
2010
Trang 845 Trao đổi thông tin nhóm
• Thường được thực hiện ở tầng mạng và tầng giao vận
– Thiết lập kênh truyền giữa các trạm gửi nhận
• Ở tầng ứng dụng chưa có sự thống nhất về
chuẩn
– Không cần thiết có kênh truyền trực tiếp
• Chưa có động lực thực hiện triển khai
Trang 85I Trao đổi thông tin nhóm mức ứng
dụng
• Các nút được tổ chức thành mạng bao phủ
• Trên nền của mạng bao phủ, hình thành các
nhóm
• Thành phần của các nhóm không phụ thuộc
vào vị trí và bảng chọn đường của các bộ định tuyến
• Việc định tuyến và chuyển các thông báo có
thể không tối ưu
Các hệ phân tán @ Hà Quốc Trung
Trang 87II Mô hình “rỉ tai”
• Quảng bá các thông tin chỉ dựa vào các thông tin cục bộ
• Các nút mới bị “lây” thông tin khi có trao đổi thông tin với nút đã có thông tin
• Các quan hệ “lây”
– Cập nhật thông tin một chiều (push)
– Truy vấn thông tin (pull)
– Trao đổi thông tin 2 chiều (push-pull)
• Nhược điểm: tính chính xác của thông tin
Các hệ phân tán @ Hà Quốc Trung
Trang 88Tính bất định
• Khi nào một nút ngừng “lây lan” các nút khác
– Khi đã trao đổi với tất cả các nút kề
– Khi thất bại trong quá trình trao đổi với các nút kề – Khi trao đổi với nút kề và thấy thông tin cũ hơn
Trang 89Nội dung
1 Kiến trúc phân tầng
2 Lời gọi thủ tục từ xa
3 Trao đổi thông tin bằng thông báo
4 Trao đổi thông tin dòng
5 Trao đổi thông tin đa điểm
89 Các hệ phân tán @ Hà Quốc Trung
2010