Như chúng ta đã biết qua các bài trước, ứng dụng mạng là một hệ thống phần mềm chạy trên các thiết bị đầu cuối khác nhau và trao đổi thông tin qua mạng máy tính.
Bạn đang xem: Mô hình client server ứng dụng như thế nào
“Hệ thống” ở đây mang ý nghĩa rằng ứng dụng mạng bao gồm nhiều thành phần phối hợp hoạt động với nhau trong một thể thống nhất. Sự phối hợp có được nhờ môi trường mạng (cho phép trao đổi thông tin) và giao thức truyền thông (các quy tắc chi phối quá trình trao đổi thông tin).
Ngoài các yếu tố trên, sự phối hợp trong hệ thống phần mềm mạng còn thể hiện ở sự thỏa thuận về mặt nhiệm vụ giữa các thành phần. Sự thỏa thuận đó thể hiện qua mô hình (hay kiến trúc) ứng dụng mạng.
Trong bài học này chúng ta tiếp tục đi sâu vào các vấn đề của ứng dụng mạng, bao gồm các mô hình của ứng dụng mạng (mô hình client – server, mô hình p2p) và truyền thông liên tiến trình trong ứng dụng mạng.
NỘI DUNG CỦA BÀI Ẩn
1. Mô hình ứng dụng mạng
1.1. Mô hình chủ – khách (client – server)
1.2. Mô hình ngang hàng
2. Tiến trình
2.1. Tiến trình chủ, tiến trình khách
2.2. Đánh địa chỉ tiến trình
Mô hình ứng dụng mạng
Khi bắt tay vào xây dựng một ứng dụng mạng, một trong những vấn đề đầu tiên đặt ra chính là lựa chọn mô hình (đôi khi cũng được gọi là kiến trúc) cho ứng dụng mạng. Mặc dù phần mềm mạng rất đa dạng nhưng có thể phân chia chúng vào 2 mô hình cơ bản theo cách thức phân chia vai trò nhiệm vụ của các thành phần: mô hình chủ-khách (client-server) và mô hình ngang hàng (peer-to-peer, P2P).
Mô hình chủ – khách (client – server)
Trong mô hình chủ-khách ứng dụng được chia làm hai thành phần: một thành phần chuyên phục vụ các yêu cầu gửi đến từ các thành phần khác, gọi là thành phần server; một hoặc nhiều thành phần đưa ra yêu cầu sử dụng dịch vụ, gọi là thành phần client.
Server và client chạy trên các thiết bị đầu cuối khác nhau khác nhau. Thiết bị đầu cuối nơi chạy chương trình server cũng thường được gọi tắt là máy chủ (trên máy chủ vật lý đó cũng thường cài đặt nhiều chương trình server khác nhau). Thiết bị đầu cuối nơi chạy chương trình client thường được gọi tắt là máy khách hay máy trạm.
Mô hình peer-to-peerƯu điểm của P2P
Một trong những ưu điểm của kiến trúc P2P là khả năng mở rộng.
Xem thêm: Các Sản Phẩm Thay Thế Của Cà Phê, Sản Phẩm Thay Thế
Ví dụ, trong ứng dụng chia sẻ file P2P, mặc dù mỗi peer trong khi yêu cầu file tự tạo ra một khối lượng công việc cho mình, mỗi peer đồng thời bổ sung khả năng phục vụ của mình cho hệ thống bằng cách phân phối lại file cho các peer khác.
Kiến trúc P2P cũng có ưu thế về giá thành vì nó không đòi hỏi hạ tầng về máy chủ và băng thông.
Nhược điểm của P2PỨng dụng P2P cũng gặp những khó khăn nhất định.
Thứ nhất, các nhà cung cấp dịch vụ Internet (ISP) cho hộ giađình thường để tốc độ tải xuống lớn hơn tốc độ tải lên. Trong khi đó, dịch vụphát video (streaming) hoặc phân phối file P2P đều đòi hỏi tốc độ tải lên cao.Từ đó, ISP địa phương phải chịu áp lực lớn về băng thông. Người ta gọi đây làtình trạng “không thân thiện” giữa ứng dụng P2P và ISP.
Thứ hai, do bản chất mở và phân tán, ứng dụng P2P có hạn chếvề tính an toàn và bảo mật. Ngoài ra, ứng dụng P2P cũng dễ dàng liên quan tớicác vấn đề vi phạm bản quyền vì dữ liệu chia sẻ không bị kiểm soát.
Vấn đề thứ ba là sự thành công của ứng dụng P2P phụ thuộcvào khả năng “thuyết phục” người dùng tham gia vào mạng lưới ứng dụng P2P. Khitham gia, người dùng sẽ phải “tự nguyện” cung cấp tài nguyên của máy tính cánhân cho ứng dụng như băng thông, lưu trữ, CPU. Ví dụ, khi tham gia vào hệ thốngchia sẻ file P2P, mỗi phần mềm trên máy tính cá nhân đều phải chiếm dụng thêmbăng thông, ổ cứng, thời gian xử lý của CPU và cung cấp tài nguyên này cho hệthống cùng sử dụng.
Ngoài hai mô hình trên, hiện nay một số ứng dụng sử dụng kiến trúc lai, kết hợp cả mô hình chủ-khách và mô hình P2P. Ví dụ, trong nhiều ứng dụng nhắn tin tức thời, server chỉ dùng để theo dõi địa chỉ IP của người dùng, còn tin nhắn giữa người dùng được truyền trực tiếp giữa các máy khách mà không đi qua máy chủ.