Mô hình ứng dụng mạng

    1

    Khái niệm mô hình ứng dụng mạng

    Khi phát triển phần mềm mạng, một vấn đề cần giải quyết ngay từ đầu là sự thỏa thuận về mặt nhiệm vụ giữa các thành phần trong hệ thống.

    Lấy ví dụ, giả sử một hệ thống phần mềm mạng với hai phần mềm thành phần vận hành trên hai thiết bị đầu cuối khác nhau. Khi đó phát sinh hàng loạt câu hỏi cần trả lời ngay:

    • thành phần thứ nhất đảm nhiệm vai trò gì?
    • thành phần thứ hai đảm nhiệm vai trò gì?
    • các thành phần này tương tác với nhau như thế nào?

    Sự thỏa thuận đó thể hiện qua việc lựa chọn mô hình ứng dụng mạng

    Mô hình ứng dụng mạng (cũng gọi là kiến trúc ứng dụng mạng) là sự phân chia vai trò nhiệm vụ của các thành phần trong một hệ thống phần mềm ứng dụng mạng, và cách thức các thành phần này tương tác với nhau.

    Có hai mô hình ứng dụng mạng: 

    • Mô hình chủ / khách (client / server)
    • Mô hình ngang hàng (peer-to-peer, P2P)

    Mô hình chủ / khách

    Khái niệm

    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 chủ (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 khách (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ủ. 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. 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.

    Một số ứng dụng phổ biến sử dụng mô hình chủ-khách bao gồm Web, FTP, Email.

    Mô hình client / server

    Hãy cùng xem một ví dụ. 

    Hệ thống phần mềm web bao gồm một chương trình luôn hoạt động (chương trình máy chủ web) trên một máy tính riêng để chờ phục vụ các truy vấn đến từ các chương trình trình duyệt (browser). Khi chương trình máy chủ nhận được một truy vấn từ trình duyệt, nó sẽ xử lý và trả lại dữ liệu mà trình duyệt yêu cầu. Các trình duyệt chỉ trao đổi thông tin với chương trình máy chủ mà không tương tác trực tiếp với nhau.

    Các đặc điểm của mô hình chủ khách

    Chương trình server luôn hoạt động (gọi là chế độ luôn mở) để chờ phục vụ client. Ví dụ, chương trình máy chủ web phải hoạt động toàn thời gian để có thể phục vụ trình duyệt bất kỳ lúc nào.

    Chương trình server phải hoạt động trên máy có địa chỉ cố định mà client có thể luôn xác định được. Địa chỉ này cũng phải công bố để client biết. Loại địa chỉ này được gọi là địa chỉ IP. Một hình thức địa chỉ khác thường được dùng là tên miền (domain name). Ví dụ, địa chỉ IP của máy chủ báo Dân Trí là 183.81.34.136, còn tên miền tương ứng là dantri.com.vn.

    Chương trình client có thể hoạt động ở chế độ luôn mở (always-on) hoặc mở không thường xuyên (sometimes-on). Ví dụ, trong hệ thống web, trình duyệt có thể hoạt động hoặc có thể không (tức là chế độ mở không thường xuyên).

    Các chương trình client không giao tiếp trực tiếp với nhau mà chỉ giao tiếp với server. Ví dụ, hai trình duyệt không bao giờ gửi dữ liệu trực tiếp cho nhau mà đều phải thông qua chương trình server.

    Chương trình client phải biết được địa chỉ của máy chủ. Ví dụ, nếu muốn xem nội dung trang web nào, chúng ta phải cung cấp địa chỉ của nó (ở dạng tên miền hoặc địa chỉ IP).

    Do chương trình server luôn hoạt động và chạy trên máy tính có địa chỉ cố định và được công bố, chương trình khách có thể liên lạc với máy chủ bất kỳ khi nào cần sử dụng dịch vụ do chương trình máy chủ cung cấp.

    Mô hình ngang hàng

    Trong mô hình ngang hàng (còn gọi là kiến trúc peer-to-peer, viết tắt là P2P), tất cả các thành phần của hệ thống đều thực hiện các nhiệm vụ giống nhau, không có người phục vụ (server) chuyên biệt. 

    Mỗi ứng dụng chạy trên một máy và được gọi là một peer. Ứng dụng trên mỗi đôi máy (các peer) trực tiếp tiến hành truyền thông với nhau mà không phải thông qua một server trung gian nào. Các peer này không do các nhà cung cấp dịch vụ quản lý mà thực chất là các máy tính cá nhân do người dùng quản lý. 

    Hiện nay các ứng dụng đòi hỏi lưu lượng dữ liệu lớn thường hoạt động theo mô hình P2P: ứng dụng phân phối file (BitTorrent, µTorrent), ứng dụng chia sẻ file (eMule, LimeWire), điện thoại Internet (Skype), truyền hình IP (PPLive).

    Ưu điểm của P2P

    Kiến trúc P2P có khả năng mở rộng. 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.

    Mô hình peer-to-peer

    Nhược điểm của P2P

    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.

    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ới các vấn đề vi phạm bản quyền vì dữ liệu chia sẻ không bị kiểm soát.

    + Nếu bạn thấy site hữu ích, trước khi rời đi hãy giúp đỡ site bằng một hành động nhỏ để site có thể phát triển và phục vụ bạn tốt hơn.
    + Nếu bạn thấy bài viết hữu ích, hãy giúp chia sẻ tới mọi người.
    + Nếu có thắc mắc hoặc cần trao đổi thêm, mời bạn viết trong phần thảo luận cuối trang.
    Cảm ơn bạn!

    Kết luận

    Trong bài học này chúng ta đã làm quen với hai mô hình (kiến trúc) ứng dụng mạng: mô hình chủ / khách và mô hình ngang hàng. Chúng ta cần chú ý rằng, đây là các kiến trúc ứng dụng mạng chứ không phải là kiến trúc (hay mô hình) mạng (về phần cứng). Một số tài liệu trình bày nội dung này khi phân loại mạng máy tính. Điều này là không chính xác.

    Trong bài học tiếp theo chúng ta sẽ xem xét khái niệm giao thức trong mạng máy tính và vai trò của nó với phần mềm ứng dụng mạng.

    Theo dõi
    Thông báo của
    guest

    1 Thảo luận
    Cũ nhất
    Mới nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận
    megumin

    xong