39
1 Chương 4: PHỐI HỢP GIAO TiẾP CÁC TiẾN TRÌNH GV. Ngô Thanh Huy

Chương 4: PHỐI HỢP GIAO TiẾP CÁC TiẾN TRÌNH

  • Upload
    brinly

  • View
    81

  • Download
    3

Embed Size (px)

DESCRIPTION

Chương 4: PHỐI HỢP GIAO TiẾP CÁC TiẾN TRÌNH. GV. Ngô Thanh Huy. Giới thiệu. Các tiến trình tương tác với nhau bằng mô hình truyền thông chuyên biệt để hợp tác thực thi các xử lý Truyền thông liên tiến trình (Interprocess communication - IPC) Phối hợp các tiến trình phân tán - PowerPoint PPT Presentation

Citation preview

Page 1: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

1

Chương 4: PHỐI HỢP GIAO TiẾP CÁC TiẾN TRÌNH

GV. Ngô Thanh Huy

Page 2: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

2

Giới thiệu

• Các tiến trình tương tác với nhau bằng mô hình truyền thông chuyên biệt để hợp tác thực thi các xử lý– Truyền thông liên tiến trình (Interprocess communication - IPC)– Phối hợp các tiến trình phân tán

• Message passing: phương thức trao đổi dữ liệu giữa các tiến trình trong hệ phân tán– Tất cả các mô hình truyền thông liên tiến trình (interprocess) ở các

mức cao phải được xây dựng dựa trên Message passing– Tất cả các tiến trình trong hệ phân tán phối hợp với nhau dựa trên

mô hình truyền thông điệp liên tiến trình

Page 3: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

3

Các mức truyền thông

Interprocess communication Transaction– Database systems– …

Request/reply (RPC)– Client/Server– Service-oriented

Message passingNetwork operating system Transport connectionCommunication network Packet switching

Page 4: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

4

Message Passing Communication

Page 5: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

5

Tổng quan

• Phương thức chung cho truyền thông liên tiến trình (IPC)– Cho các tiến trình trong cùng một máy tính– Cho các tiến trình trong hệ thống phân tán

• Cung cấp cơ chế đồng bộ hóa tiến trình• Thông điệp (message)

– Tập hợp các đối tượng dữ liệu dạng “đánh máy”– Các cấu trúc và các thể hiện được định nghĩa bởi các ứng dụng ngang hàng

• Vấn đề chính– Direct or indirect addressing– Blocking or non-blocking communication– Reliable or unreliable communication– Buffered or un-buffered communication

Page 6: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

6

Message format

• Bao gồm header và nội dung thông điệp

• Cấu trúc có thể khác trong các hệ thống khác nhau

• Thông tin điều khiển: – Làm gì khi vượt ra ngoài vùng

đệm– Các chuỗi số– Độ ưu tiên...

• Qui tắc hàng đợi: thường sử dụng FIFO nhưng cũng có thể bao gồm độ ưu tiên

Page 7: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

7

Giao tiếp nguyên thủy (I)

• Truyền thông điệp cơ bản– send(destination, message)– receive(source, message)

• Đánh địa chỉ nguồn và đích – Tên tiến trình, link, hộp thư (mailbox), port

• Direct communication: symmetric/asymmetric process name, links– Khi một tiến trình có một định danh cụ thể được sử dụng làm nguồn/đích

• Indirect communication: many-to-many mailbox, many-to-one port– Thông điệp được gửi đến một hộp thư chia sẻ với một hàng đợi các thông

điệp– Phía gửi đặt tin nhắn trong hộp thư, phía nhận đến lấy tin nhắn

Page 8: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

8

Giao tiếp nguyên thủy (II)

• Truyền thông trực tiếp bằng tên tiến trình– Định danh tiến trình toàn cục = địa chỉ host + Định danh tiến trình

cục bộ– Chỉ tồn tại một kết nối truyền thông luận lý giữa 2 phía nhận/gửi– Địa chỉ đối xứng: phía gửi xác định địa chỉ phía nhận và ngược lại– Địa chỉ bất đối xứng : phía nhận có thể nhận thông điệp từ nhiều

nguồn khác nhau; phía gửi cần xác nhận phía nhận• Truyền thông trực tiếp bằng các link

– Cho phép nhiều kết nối (path) giữa các tiến trình– Links

• Tạo và giải phóng bởi request• Quản lý cục bộ bởi hệ thống

Page 9: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

9

Giao tiếp nguyên thủy- truyền/nhận trực tiếp

SymmetricProcess Name

AsymmetricProcess Name

Links

Page 10: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

10

Giao tiếp nguyên thủy (III)

• Truyền thông gián tiếp– Tiến trình gửi không quan tâm đến các ID của phía nhận cũng như

thông điệp nhận được bởi một tiến trình – Tiến trình nhận chỉ quan tâm đến bản thân thông điệp, không quan

tâm đến ID của phía gửi• Ví dụ

– Nhiều client có thể yêu cầu các dịch vụ từ một trong nhiều server khác nhau

• Truyền thông gián tiếp có thể mô hình hóa với mailbox and port– Mailbox: các đối tượng chia sẽ, many-to-many communication– Port: chỉ dành cho 1 process, many-to-one communication

Page 11: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

11

Giao tiếp nguyên thủy- truyền/Nhận gián tiếp

mailboxmailbox

mailbox

MultipointCommunication

MultipathCommunication

Page 12: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

12

Mailbox và Port• Một mailbox có thể được dành

riêng cho một cặp client/server• Một mailbox có thể được chia sẽ

cho nhiều phía gửi và nhiều phía nhận

• Port: là một mailbox nhưng chỉ dành cho một tiến trình (phía nhận)– Ứng dụng Client/server: phía

nhận là server • Port thường được tạo ra và sở

hữu bởi tiến trình nhận• Port bị hủy khi phía nhận kết thúc

Page 13: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

13

Message Synchronization

• Quá trình gửi và nhận được gọi là blocking nếu tiến trình gọi đến cần phải khóa cho việc gửi hoặc nhận thông điệp tương ứng – Đồng bộ hoặc bất đồng bộ

• Blocking send: phía gửi blocked cho đến khi thông điệp đến được phía nhận hoặc đến mailbox

• Non-blocking send: phía gửi gửi thông điệp và tiếp tục hoạt động

• Blocking receive: phía nhận blocked cho đến khi có thông điệp đến

• Non-blocking receive: phía nhận có thể nhận thông điệp hợp lệ hoặc một giá trị null

Page 14: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

14

Buffered Message Passing

• Buffer: hàng đợi các thông điệp. Có thể có ở mức hệ thống (receiver/sender), hoặc trong các giao tiếp mạng

• Buffer capacity: Bounded, finite length– Phía gửi blocked khi buffer đầy– Phía nhận blocked khi buffer rỗng

• Buffer capacity: Unbounded, infinite length– Asynchronous send: not blocked– Receiver??

• Buffer capacity: zero– Sender/Receiver phải chờ lẫn nhau

Page 15: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

15

Socket

Page 16: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

16

Socket

• Socket– Socket cung cấp một giao tiếp để lập trình trên hệ thống mạng tại

tầng transport– Liên lạc trên Network bằng socket giống như việc thực thi file I/O– Giao tiếp giữa các socket là độc lập ngôn ngữ

• Chương trình viết bằng Java cũng có thể giao tiếp với chương trình viết bằng ngôn ngữ khác

• Berkeley socket: C• WinSock cho các ứng dụng Windows

Page 17: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

17

Page 18: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

18

Port

SocketSau khi kết nối được thiết lập,không cần port trong thông điệp

• Port: cổng dùng trong giao tiếp socket, tạo kết nối, lắng nghe kết nối.

Page 19: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

19

Socket Primitives

Primitive MeaningSocket Create a new communication endpointBind Attach a local address to a socket

Listen Announce willingness to accept connections

Accept Block caller until a connection request arrives

Connect Actively attempt to establish a connectionSend/Write Send some data over the connectionReceive/Read Receive some data over the connectionClose Release the connection

Page 20: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

20

Client/Server hướng dịch vụ Giao tiếp Socket (I)

• Truyền thông hướng kết nối sử dụng socket.

Rendezvous

Request Reply

Page 21: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

21

Client/Server hướng dịch vụ Giao tiếp Socket (II)

Cổng ban đầu được sử dụng để chấp nhận các kết nối từ các client khác

Sử dụng cổng mới để giao tiếpvới các client được kết nối

Page 22: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

22

Remote Procedure Call (RPC)

Page 23: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

23

RPC

• Tính trong suốt với RPC– Access – không có sự phân biệt giữa RPC và (local) procedure call– Communication – che dấu các system calls, chuyển đổi dữ liệu, và các giao

tiếp mạng• Truyền thông reuest/reply hướng dịch vụ• Giao thức RPC giữa một Client và một Server • Dòng điều khiển RPC• Những vấn đề trong hiện thực

– Parameter and result passing, and data conversion– Binding– Compilation– Failures– Security (self study)

Page 24: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

24

Giao thức RPC giữa một Client và một Server

Client suspends

Receive(blocked)

Receive(blocked)

Thông tin có thể được chuyển từ client sang server dưới dạng các parameter và kết quả trả về

với dạng procedure result

Page 25: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

25

Dòng điều khiển RPC

Page 26: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

26

Các bước tuần tự RPC

• Client procedure calls client stub• Client stub builds message, calls local OS• Client's OS sends message to remote OS• Remote OS gives message to server stub• Server stub unpacks parameters, calls server• Server does work, returns result to the stub• Server stub packs it in message, calls local OS• Server's OS sends message to client's OS• Client's OS gives message to client stub• Stub unpacks result, returns to client

Page 27: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

27

Client và Server Stubs

• Client stub: chứa procedures mà client sẽ gọi thật sự– Thu thập và đóng gói (pack) các tham số thành thông điệp và gọi

hàm hệ thống (system call) để gửi đi.– Mở đóng gói (Unpack) kết quả trả về và chuyển kết quả cho client

• Server stub: chứa procedures được gọi bởi hệ thống trên máy Server khi có một thông điệp được truyền đến, sau đó sẽ gọi procedures thật sự trên máy Server để thực thi

Page 28: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

28

Truyền tham số và chuyển đổi dữ liệu (I)

• Parameter marshaling – các quy luật truyền tham số và chuyển đổi dữ liệu/thông điệp của giao thức RPC

• Passing parameters– Call-by-value hoặc call-by-reference

• Thể hiện dữ liệu và kiểm tra kiểu– Nhiều loại máy khác nhau nhiều thể hiện dữ liệu khác nhau

• ASCII, EBCDIC• 16 bit integer, 32 bit integer,…

• Transfer syntax tuân thủ một số quy luật truyền tải thông điệp– Định dạng thông điệp, thể hiện dữ liệu của các thông điệp, trao đổi

thật sự giữa các thông điệp (connection or connectionless)

Page 29: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

29

Data Representation

a) Thông điệp ban đầu trên máy Pentiumb) Thông điệp sau khi nhận trên SPARC c) Thông điệp sau khi bị đảo ngược. Những con số nhỏ trong hộp chỉ ra địa

chỉ của mỗi byte

5

LLIJ

83,886,080

JILL

5

LLIJ

Page 30: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

30

Định dạng thông điệp

• Client và server phải thống nhất các qui tắc trong việc đóng gói các tham số của một thông điệp • Client và server phải thống nhất sự biễu diễn dữ liệu

Page 31: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

31

Truyền tham số

• Các bước tính toán từ xa thông qua RPC

2-8

Server may support manyprocedures

Page 32: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

32

Binding a Client to a Server (I)

Page 33: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

33

Binding a Client to a Server (II) – DCE & Directory Server

(Port)

Has a well known port

Page 34: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

34

RPC Compilation (I)

• Ba thành phần chính trong một package RPC– An interface specification file– A RPC generator

• Input: interface specification file• Output: client and server stub procedure source codes

– Run-time library for the supporting execution of an RPC• Support for binding, data conversion, and communication

Page 35: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

35

RPC Compilation (II)

Page 36: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

36

RPC Compilation in DCE

Tạo ra một file IDL nguyên mẫu có chứa một định danh duy nhất trên toàn cầu (Vị trí

+ Thời gian)

Các khai báo gần giống với các chức năng nguyên mẫu

trong ngôn ngữ C: định nghĩa kiểu, khai báo hằng, cú pháp

gọi hàm,…

Page 37: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

37

RPC Failures

• Năm dạng lỗi RPC:– Client không thể xác định server– Thông điệp yêu cầu từ client tới server bị mất– Server treo khi nhận được yêu cầu– Thông điệp trả về từ server cho client bị mất– Client treo sau khi truyền thông điệp yêu cầu

• Nguyên nhân và khắc phục (self study)

Page 38: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

38

Asynchronous RPC

2-12

Traditional RPC Asynchronous RPC

• Ví dụ Asynchronous RPC: Chuyển tiền, insert một record vào DB,khởi động remote service,…

Không quan tâm giá trị trả về

Page 39: Chương 4: PHỐI HỢP GIAO TiẾP CÁC  TiẾN TRÌNH

39

IPC và ứng dụng trong các thành phần của Hệ thống phân tán

IPC Method DistributedComponents

Real-TimeComponents

ParallelComponents

Message Passing Yes Yes Yes

Pipes No Yes Yes

Sockets Yes Yes Yes

RPC Yes Yes Yes