Một cách mô tả tác động lẫn nhau giữa các QT là mô tả theo cách các QT nhìn nhau. Mô hình phổ biến nhất là mô hình Client/Server (quan trọng gần nh− khái niệm trong suốt trong hệ phân tán). Mô hình Client/Server là hình mẫu lập trình thể hiện t−ơng tác giữa các QT và cấu trúc hệ thống. Mọi QT trong hệ thống cung cấp những dịch vụ cho / hoặc yêu
cầu dịch vụ từ các QT khác. QT đ−a ra yêu cầu phục vụ đ−ợc gọi là khách, QT cung cấp dịch vụ đ−ợc gọi là phục vụ. Đối với mỗi t−ơng tác, một QT chỉ có thể là khách hoặc phục vụ. Tuy nhiên, trong nhiều tr−ờng hợp, QT có thể đóng vai trò cả khách lẫn phục vụ.
T−ơng tác giữa khách và phục vụ thông qua dãy yêu cầu và trả lời. QT khách yêu cầu dịch vụ từ phục vụ và tự khoá bản thân lại. Phục vụ nhận đ−ợc yêu cầu từ khách, thực hiện thao tác cần thiết và sau đó gửi TĐ trả lời cho khách. Khi có kết quả trả lời từ phục vụ, khách lại bắt đầu tiếp tục thực hiện. Điều cơ bản ở đây là đồng bộ hỏi - đáp để trao đổi thông tin.
Server Khách
Truyền thông lôgic Yêu cầu Trả lời Truyền thông thực sự Yêu cầu Trả lời Kernel Kernel Hình 3.8. Mô hình Client/Server.
Về mặt logic thì khách truyền thông trực tiếp với phục vụ nh−ng thực tế thì yêu cầu hoặc trả lời phải đi qua phần nhân gửi, thông qua một mạng truyền thông đến nhân đích và QT đích. TĐ không đ−ợc thông dịch bởi hệ thống. Giao thức truyền thông mức cao giữa khách và phục vụ có thể xây dựng trên những TĐ yêu cầu và TĐ trả lời. Hình 3.6 minh họa khái niệm mô hình Client/Server đối với t−ơng tác QT.
Mô hình truyền thông Client/Server
Truyền thông RPC Truyền thông CTĐ
Dịch vụ truyền TĐ h−ớng kêt nối hoặc không có kết nối
Hình 3.9. Kiểu truyền thông Client/Server trên RPC và CTĐ
Mô hình Client/Server có thể đ−ợc hiểu nh− một mô hình truyền thông h−ớng dịch vụ. Đây đ−ợc coi là mức trừu t−ợng cao của sự truyền thông liên QT, mà sự truyền thông này có thể đ−ợc cung cấp (hỗ trợ) bởi hoặc là RPC hoặc truyền thông CTĐ (message
passing comminucation) lần l−ợt đ−ợc thi hành qua dịch vụ giao vận theo h−ớng kết nối hoặc không kết nối trong mạng.
Hình 3.9 cho biết quan hệ của 3 khái niệm trên đây: mô hình Client/Server, RPC và CTĐ. Những dịch vụ đ−ợc cung cấp bởi phục vụ có thể theo h−ớng kết nối hoặc không kết nối. Một dịch vụ h−ớng-kết nối có thể lại đ−ợc xây dựng dựa trên dịch vụ không kết nối. Nh−ng điều ng−ợc lại thì không thể. Mô hình Client/Server đã đạt đ−ợc một độ trong suốt trong truyền thông.
Ch−ơng II đã giới thiệu hệ thống dịch vụ trong hệ phân tán bao gồm ba khu vực chính, đó là : Nguyên thuỷ, hệ thống và dịch vụ gia tăng giá trị.
Dịch vụ nguyên thuỷ là cơ chế nền tảng đ−ợc đặt trong nhân. Từ góc độ ứng dụng thì chỉ có dịch vụ hệ thống và dịch vụ gia tăng giá trị là có thể nhìn thấy (có thể sử dụng) đ−ợc từ phía ng−ời dùng.
Đối với ng−ời sử dụng thì ch−ơng trình là một tập hợp của những (QT) khách và phục vụ. Nếu chúng ta thi hành dịch vụ hệ thống nh− là QT phục vụ và tách nó ra khỏi nhân với mọi tr−ờng hợp có thể đ−ợc thì kích th−ớc của nhân sẽ đ−ợc giảm một cách đáng kể. Rõ ràng là nếu nh− kích th−ớc của nhân đ−ợc giảm xuống thì tính khả chuyển theo nền phần cứng khác nhau là dễ dàng hơn. Một kết quả tự nhiên là sử dụng mô hình Client/Server là QT chỉ cần một kiểu lời gọi hệ thống đến nhân đơn, chính là lời gọi gửi và nhận yêu cầu. Vì vậy, nhân không cần thiết phải phân tích cú pháp lời gọi hệ thống và xác định cái gì cần phải làm. Thay vào đó, trách nhiệm của QT phục vụ là thông dịch thông điệp theo hiểu biết nhiều nhất của nhân về cấu trúc của TĐ. Giao diện giữa QT và nhân trở nên đơn giản và đồng nhất.
Nhiều phục vụ có thể cùng tồn tại nhằm cung cấp cùng một dịch vụ. Chúng cần đ−ợc định danh hoặc theo tên hoặc theo chức năng mà chúng cần thực hiện. Đòi hỏi này phục vụ việc định vị các phục vụ. Những phục vụ, đ−ợc gọi là những phục vụ ràng buộc hay phục vụ đại lý, chúng ràng buộc QT khách với những QT phục vụ đ−ợc chọn thành cặp, đôi khi chúng cũng cần đ−ợc định vị. Cuối cùng, cần hạn chế một cách tối thiểu các phục vụ mà hoàn toàn đã biết tên hoặc địa chỉ. Khi có yêu cầu từ phía khách, phục vụ ràng buộc có thể chọn phục vụ nào thích hợp nhất cho khách đó hoặc là một phục vụ nào đó làm cân bằng tải đối với các phục vụ. Nh− một sự lựa chọn, cũng có thể thực hiện việc xác nhận của khách cho phục vụ.