c2_truyenthong

Màu nền
Font chữ
Font size
Chiều cao dòng

Chương 2: Truyền thông.

2.1.  Các giao thức phân tầng

Một trong những mô hình phân tầng thông dụng nhất hiện nay là mô hình OSI 7 tầng. Mỗi tầng có các giao thức riêng cho nó.

Một cải tiến trong HPT là gộp tầng trình diễn và tầng phiên thành một tầng mới là tầng middle ware.

Có 4 mô hình DVmiddleware:

-  Gọi thủ tục từ xa RPC (Remote Procedure Call).

-  Triệu gọi đối tượng từ xa (Remote Object Invocation)

-  Middleware hướng thông điệp (Message – oriented Middleware)

-  Middleware hướng dòng (Stream – oriented Middleware)

2.2.  Gọi thủ tục từ xa

2.3.1. Tổng quan về RPC.

Khi một tiến trình trên máy A muốn thực hiện một thủ tục nào đó nằm trên một máy B khác thì nó sẽ thực hiện một lời gọi thủ tục từ xa tới máy B. Thủ tục đó sẽ được thực hiện ở máy B dựa trên các tham số được truyền đến từ máy A và kết quả sẽ được truyền trở lại cho máy A tương ứng.

Trong mô hình client – server thì lời 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ĐH của client đó.

-  HĐH của máy client sẽ gửi bản tin đó tới HĐH của máy server.

-  HĐH của server sẽ gửi bản tin tới server stub.

-  Server stub 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 server stub.

-  Server stub đóng gói kết quả đó vào bản tin rồi gọi HĐH của server đó.

-  HĐH của máy server này sẽ gửi bản tin kết quả đó HĐH 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à server stub ở 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.

2.3.2. Xét chi tiết các thao tác RPC.

Đóng gói các tham số: việc đóng gói các tham số để chuẩn bị truyền đi do client stub thực hiện. Client stub sẽ sắp xếp các tham số và đưa vào hàng đợi và quá trình này được gọi là parameter marshaling. Các tham số được truyền đi giúp cho server hiểu được công việc mình cần thực hiện tương ứng là gì để xác định lời gọi đến thủ tục thích hợp.

Truyền tham số: Việc truyền tham số từ client tới . Có hai cách truyền: truyền tham biến và truyền tham trị.

-    Truyền tham 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. 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 biến: 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.3.  Các mô hình RPC mở rộng.

2.3.1. RPC dị bộ

Tư tưởng : 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. 

2.3.2. RPC đồng bộ trễ

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.

2.3.3. RPC đơn tuyến

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.4.Triệu gọi đối tượng từ xa

2.4.1. Đố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.

2.4.2. Các bước thực hiện triệu gọi đối tượng từ xa.

Khi cần 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ĐH của máy client.

HĐH của client sẽ gửi bản tin yêu cầu đó đến HĐH của server.

HĐH 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ĐH của client.

HĐH 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.3. Triệu gọi phương thức từ xa

Sau khi đã triệu gọi một đối tượng từ xa, client có thể triệu gọi từ xa phương thức của đối tượng đó.

Có hai phương pháp : triệu gọi PTTX động và  tĩnh.

Độ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 CT ứng dụng  không cần phải biên dịch lại.

Tĩnh: các interface được xác định trước. Các CT ứ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 CT ứng dụng phải được biên dịch lại mới có thể hiểu được interface mới đó.                    

2.5.  TT hướng thông điệp

2.5.1. Các loại TT cơ bản

TT kiên trì (Persistent communication): Khi một trạm muốn gửi bản tin đi 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. 

TT 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ỏ.

TT đồ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.

TT 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.2. Một số loại TT phổi hợp.

TT 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 TT đầu tiên mà bản tin đó tới.

TT đồ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.

TT 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 TT bị hủy bỏ. 

TT đồ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.

2.6.  TT hướng dòng

2.6.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 để TT 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:

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.6.2. QoS – chất lượng dịch vụ.

Chất lượng DVQoS 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 DVyêu cầu cần phải có.

2.6.3. Đồng bộ các dòng.

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.

Đồ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ộ.

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.

Bạn đang đọc truyện trên: Truyen2U.Pro