Tài liệu này dành cho sinh viên, giáo viên khối ngành công nghệ thông tin tham khảo và có những bài học bổ ích hơn, bổ trợ cho việc tìm kiếm tài liệu, giáo án, giáo trình, bài giảng các môn học khối ngành công nghệ thông tin
Hệ phân tán (NW605) II Kiến trúc hệ thống liên lạc Các kiến trúc hệ thống Tiến trình Liên lạc hệ phân tán Các trừu tượng hóa liên lạc Các phong cách kiến trúc Tách thành phần theo logic xử lý Phân tầng (layered) Hướng đối tượng (object-oriented) Tách thành phần theo không gian thời gian Dựa kiện (event-based) Lấy liệu làm trung tâm (data-centered) Kiến trúc hệ thống Kiến trúc tập trung Mơ hình client-server • • • • Server : tiến trình cung cấp dịch vụ Client : tiến trình sử dụng dịch vụ Client server chạy máy khác Client sử dụng dịch vụ theo mơ hình u cầu/trả lời Kiến trúc hệ thống Ví dụ client-server server(void) { struct sockaddr_in cin, sin; int sd, sd_client; client(void) { struct sockaddr_in sin; //địa server char buffer[bufsize]; int sd; sd = socket(AF_INET, SOCK_STREAM, 0); connect(sd, (void*) &sin, sizeof(sin)); send(sd, buffer, strlen(buffer), 0); //yêu cầu recv(sd, buffer, bufsize, 0); // nhận kết close(sd); } sd = socket(AF_INET, SOCK_STREAM, 0); bind(sd, (struct sockaddr *) &sin, sizeof(sin)); //đăng ký dịch vụ listen(sd, queuesize); //vòng lặp đợi yêu cầu client while(true) { sd_client = accept(sd, (struct sockaddr *)&cin, &addrlen)); recv(sd_client, buffer, sizeof(buffer), 0); //nhận yêu cầu DoService(buffer); //thực yêu cầu, ghi kết vào buffer send(sd_client, buffer, strlen(buffer), 0); //gửi trả kết close(sd_client); } close(sd); } Kiến trúc hệ thống Client-Server Các kiểu phân chia chức client server 1-29 Kiến trúc hệ thống Phân tán theo chiều dọc (Multi-tier) Ba ‘tầng’ chức năng: Giao diện người dùng Xử lý / logic ứng dụng Dữ liệu Các thành phần khác logic đặt máy khác Kiến trúc hệ thống Phân tán theo chiều dọc (Multi-tier) Ví dụ server thực vai trò client 1-30 Kiến trúc hệ thống Phân tán theo chiều ngang Ví dụ phân tán theo chiều ngang dịch vụ Web 1-31 Kiến trúc hệ thống Kiến trúc đồng đẳng (Peer to peer – P2P) Mọi tiến trình giữ hai vai trị server client • Cấu trúc tĩnh • Cấu trúc động: mạng overlay Có cấu trúc Phi cấu trúc Hybrid Ví dụ: File sharing Kiến trúc hệ thống Các hệ thống P2P phi cấu trúc • Đồ thị có cấu trúc ngẫu nhiên • Dữ liệu lưu nút ngẫu nhiên • Cập nhật thơng tin cấu trúc cách trao đổi thông tin không đầy đủ với nút láng giềng – Mỗi peer giữ hình ảnh không đầy đủ mạng – danh sách nút láng giềng – Định kì, nút p chọn nút q danh sách nút láng giềng – p q trao đổi thông tin danh sách láng giềng Kiến trúc hệ thống 10 RPC – đóng gói tham số • Stub phải đóng gói (marshal) tham số vào cấu trúc thông điệp – – – – Máy client server có biểu diễn liệu khác (byte thấp/cao) Đóng gói tham số có nghĩa chuyển giá trị thành chuỗi byte Client server phải thống kiểu mã hóa chung chuyển thơng điệp thành biểu diễn liệu tùy theo loại máy tính • Dữ liệu thông điệp không chứa trỏ (dữ liệu truyền tham chiếu phải thay liệu truyền giá trị) • Có thể phải thực chuyển đổi khác – – – – – • Thứ tự byte (byte thấp / byte cao) Định dạng dấu chấm động Xử lý trỏ Chuyển thứ sang định dạng chuẩn (mạng), Thông điệp quy định định dạng, bên nhận chuyển đổi cần Stub sinh tự động từ đặc tả giao diện Kiến trúc hệ thống 39 RPC – Một số framework • ONC RPC (Open Network Computing RPC hay Sun RPC): Internet RFC 5531 – Dựa biểu diễn liệu XDR – Là sở dịch vụ phân tán chuẩn NFS (Network File System) NIS (Network Information Service) • Distributed Computing Environment RPC (DCE RPC) • XML (mã hóa lời gọi hàm) HTTP (cơ chế truyền thông điệp) – data stream dạng text dễ debug – HTTP đơn giản hóa việc tích hợp với web server qua firewall – Ví dụ: XML-RPC (lightweight) SOAP (Simple Object Access Protocol) (mạnh thường phức tạp mức cần thiết) Kiến trúc hệ thống 40 RPC không đồng RPC truyền thống RPC không đồng RPC không đồng bộ: client chạy tiếp mà không cần đợi trả lời từ server •Khi khơng cần trả lời •Khi khơng cần trả lời Kiến trúc hệ thống 41 RMI – Remote Method Invocation • Sự chuyển dịch từ RPC tới RMI (gọi phương thức từ xa) chuyển dịch từ tư tưởng server sang tư tưởng đối tượng – RPC: phải định tường minh server hàm cần gọi, server lưu thông tin trạng thái client – RMI: đích đối tượng cụ thể, thơng tin trạng thái đóng gói đối tượng đích – Các đối tượng “cơng dân” hạng • tham chiếu tới đối tượng truyền dạng tham số • trả dạng kết phương thức Giải vấn đề liệu trỏ RPC • RMI bước tiến nhỏ từ RPC • Nhưng RMI đối tượng phân tán mơ hình sử dụng rộng rãi Kiến trúc hệ thống 42 Nguy tính suốt Tính suốt mà RPC RMI cung cấp nguy hiểm Các thao tác xa có thể… – thất bại theo nhiều kiểu mà thao tác địa phương không gặp (đứt liên lạc, server down…) – có độ trễ tùy ý – có hình thức truy nhập nhớ khác – có hoạt động tương tranh khơng dễ thấy Nếu bỏ qua điểm sao? – Dịch vụ ứng dụng không đáng tin cậy – Khả mở rộng thấp – Hiệu thấp Kiến trúc hệ thống 43 Message-Oriented Communication (MOM) MOM dịch vụ middleware dành cho việc truyền thông điệp send()/receive() truyền thống cung cấp: – Liên lạc đồng không đồng – Liên lạc tức thời MOM cung cấp thế? – Liên lạc thường trực (hàng đợi thông điệp) – Che dấu chi tiết cài đặt – Marshalling (đóng gói thơng điệp) Kiến trúc hệ thống 44 Ví dụ: MPI – Message Passing Interface • Được thiết kế cho ứng dụng song song • Sử dụng tảng mạng bên • Được thiết kế dành cho liên lạc tức thời • Khơng hỗ trợ liên lạc thường trực • Cung cấp chức cho hình thức liên lạc tức thời • Hỗ trợ group communication Kiến trúc hệ thống 45 Hàng đợi thông điệp Ví dụ – Java Message Service – IBM WebSphere MQ Cung cấp: – Liên lạc thường trực – Các hàng đợi chứa thông điệp – Chuyển thông điệp hàng đợi Mơ hình – – – – – Các hàng đợi đặc thù ứng dụng Thông điệp đánh địa tới hàng đợi cụ thể Chỉ đảm bảo gửi đến hàng đợi đích, khơng đảm bảo thời gian Thời gian trễ lên hàng phút Tương tự email có mục đích rộng (cho phép liên lạc ứng dụng không người với nhau) Kiến trúc hệ thống 46 Hàng đợi thông điệp Kiến trúc Hàng đợi: – Hàng đợi nguồn (tại chỗ) – Hàng đợi đích (từ xa) Queue Manager (bộ phận quản lý hàng đợi) – Quản lý trực tiếp (quản lý queue máy) – Chuyển tiếp/định tuyến (định tuyến tới máy đích) – Hỗ trợ multícast gửi tới nhiều queue nhiều máy Kiến trúc hệ thống 47 Hàng đợi thông điệp Message broker: – Dịch định dạng thông điệp ứng dụng – Application gateway Kiến trúc hệ thống 48 Liên lạc dựa kiện • Là dạng liên lạc hướng thơng điệp • Liên lạc qua việc lan truyền kiện • Thường dùng hệ thống publish/subscribe • Tiến trình (gửi) cơng bố (publish) kiện (trong có liệu) • Tiến trình (nhận) đăng ký theo dõi (subscribe) số kiện định • Middleware giao cho tiến trình kiện mà đăng ký Kiến trúc hệ thống 49 Group communication Tiến trình gửi 01 thơng điệp tới nhóm tiến trình khác Hai loại liên lạc nhóm: – Broadcast (thơng điệp gửi tới tất cả) – Multicast (thông điệp gửi tới nhóm định trước) Được dùng cho: – – – – Sao lặp dịch vụ (gửi yêu cầu tới nhóm máy phục vụ lặp) Sao lặp liệu (gửi cập nhật liệu tới nhóm server liệu lặp) Phát dịch vụ (“ai cung cấp dịch vụ này?”) Thông báo kiện (vd: “máy in bắt đầu chạy lại”) Có vấn đề : – Độ tin cậy (ai khơng nhận được) – Thứ tự (khi thứ tự thông điệp nhận quan trọng, vd: cập nhật liệu) Kiến trúc hệ thống 50 Stream • Hỗ trợ continuous media • Giữa ứng dụng thiết bị • continuous media: – Dữ liệu biểu diễn dòng đơn thay khối – Quan hệ thời gian liệu có ảnh hưởng đến tính đắn (ngược lại với discrete media) – Độ trễ max hai đầu • Các dịng liệu: – Chuỗi đơn vị liệu – Có thể áp dụng cho continuous media discrete media (kết nối TCP dòng) Kiến trúc hệ thống 51 Stream • Các hình thức truyền: – Khơng đồng bộ: khơng có hạn chế thời gian (vd: chuyển file) – Đồng bộ: độ trễ tối đa đơn vị liệu (khơng thể q cũ đến đích) – Đẳng thời: độ trễ min/max chuyển hai đâu • Chất lượng dịch vụ / Quality of Service – – – – Yêu cầu thời gian Yêu cầu băng thông, tốc độ truyền, độ trễ, v.v Kiến trúc hệ thống 52 Stream Đồng hóa stream: Bảo tồn quan hệ thời gian dịng Ví dụ: đồng hóa hình ảnh âm Các kiểu đồng hóa – Đồng hóa phía client • Client nhận nhiều dịng • Dùng thơng tin đồng hóa (ví dụ timestampt) để đồng hóa • Các dịng khác có độ trễ khác – Đồng hóa phía server • Multiplex dịng thành dịng Kiến trúc hệ thống 53 ... communication) hệ điều hành Đó hệ thống máy tính Kiến trúc hệ thống 24 Liên lạc hệ phân tán Trong hệ phân tán (nhiều máy tính) • Chia sẻ nhớ – Không thể thực dùng chung nhớ – Bộ nhớ dùng chung phân tán. .. endian) Kiến trúc hệ thống 27 Các tầng liên lạc hệ phân tán Các tầng thấp: – – Vật lý, Liên kết liệu, Mạng Tầng mạng giao diện mức thấp nhiều hệ phân tán Tầng giao vận: cung cấp tiện ích liên lạc. .. Ví dụ server thực vai trò client 1-30 Kiến trúc hệ thống Phân tán theo chiều ngang Ví dụ phân tán theo chiều ngang dịch vụ Web 1-31 Kiến trúc hệ thống Kiến trúc đồng đẳng (Peer to peer – P2P) Mọi