mô hình client -server

Mô hình client server hay còn được gọi là mô hình khách – chủ đây là mô hình được áp dụng phổ biến trên mạng máy tính, phổ biến và được áp dụng rộng rãi ở trên các trang Web hiện nay.. Vì sao lại cần sủ dụng mô hình Client Server? Bài viết này mình sẽ giúp bạn hiểu rõ hơn về mô hình này, nguyên lý hoạt động, những ưu nhược điểm và so sánh mô hình này với các mô hình khác.

Client server là gì?

Mô hình mạng client server đây là mô hình mạng máy tính trong đó các máy tính client được đóng vai trò như một máy khách(client), chúng sẽ gửi yêu cầu(request)  đến các máy chủ(server). Để máy chủ xử lý những yêu cầu đó và trả kết quả về cho máy khách(client).

Các server thường có cấu hình rất mạnh(Tốc độ xử lý nhanh, lưu trữ được nhiều dữ liệu) hoặc là các máy chuyên dụng.

Phân chia các loại server:

File server: phục vụ yêu cầu hệ thống tập tin trong mạng.

Print server: phục vụ các yêu cầu in ấn trọng mạng.

Application server: cho phép các ứng dụng chạy trên các server và trẻ về kết quả cho client.

Mail server: cũng cấp dịch vụ về gửi nhận mail

Database server: cung cấp các dịch vụ lưu trữ và tìm kiếm thông tin.

Communication server: quản lý kết nối từ xa.

Nguyên tắc hoạt động của mô hình Client Server

Trong mô hình Client Server, server chấp nhận tất cả những yêu cầu hợp lệ từ mọi nơi khác nhau trên mạng, sau đó trả kết quả về máy tính đã gửi yêu cầu.

Máy tính được coi là máy khách khi chúng làm nhiệm vụ gửi yêu cầu đến các máy chủ và đợi câu trả lời được gửi về lại.

Việc giao tiếp giữa Client với Server phải dựa trên các giao thức chuẩn. Các giao thức được sử dụng phổ biến nhất hiện nay là : giao thức TCP/IP, giao thức SNA của IBM, OSI, ISDN, X.25 hay giao thức LAN-to-LAN NetBIOS.

nguyên tắc hoạt động của client server
nguyên tắc hoạt động của client server

Client

Client hay chính là những máy khách, máy trạm – là nơi thực hiện gửi yêu cầu đến server. Nó tổ chức giao tiếp với người dùng, server và môi trường bên ngoài tại trạm làm việc. Client tiếp nhận yêu cầu của người dùng và sau đó thành lập các query string để gửi đến server. Khi nhận được kết quả từ server, client sẽ tổ chức và show những kết quả đó.

Server

Server sẽ xử lý yêu cầu gửi đến từ client. Sau khi server xử lý xong, nó sẽ gửi trả lại kết quả, client có thể tiếp tục xử lý các kết quả này để phục vụ người dùng.

Server thực hiện giao tiếp với môi trường bên ngoài và client tại server, tiếp nhận yêu cầu dưới dạng query string (những xâu ký tự). Sau khi phân tích xong các xâu ký tự, server sẽ xử lý dữ liệu và gửi kết quả về cho client.

Vai trò của server

Server như là một nhà cung cấp dịch vụ cho các clients yêu cầu tới khi cần, các dịch vụ như cơ sở dữ liệu, in ấn, truyền file, hệ thống…

Các ứng dụng server cung cấp các dịch vụ mang tính chức năng để hỗ trợ cho hoạt động trên các máy clients đạt hiệu quả hơn.

Sự hỗ trợ của các dịch vụ này có thể là toàn bộ hoặc chỉ một phần thông qua IPC. Để đảm bảo tính an toàn trên mạng cho nên server này còn có vai trò như là một nhà quản lý toàn bộ quyền truy cập dữ liệu của các máy clients, nói cách khác đó là vai trò quản trị mạng.

Vai trò của server
Vai trò của server

Ưu nhược điểm của mô hình client server

Ưu điểm mô hình client server là gì?

Với việc sử dụng mô hình client server thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (như các công việc như gửi và nhận file, tìm kiếm thông tin,…).

  • Client server có khả năng chống quá tải mạng
  • Mô hình client server hỗ trợ, giúp chúng ta có thể làm việc trên bất kì một máy tính nào có hỗ trợ giao thức truyền thông. Giao thức chuẩn này cũng giúp các nhà sản xuất tích hợp lên nhiều sản phẩm khác nhau mà không gặp phải khó khăn gì.
  • Giúp hỗ trợ người dùng nhiều dịch vụ đa dạng và sự tiện dụng bởi khả năng truy cập từ xa mà các mô hình cũ không có.
  • Client server đảm bảo được sự toàn vẹn dữ liệu khi có sự cố xảy ra
  • Dễ dàng mở rộng, xây dựng hệ thống mạng
  • Chỉ cần chung định dạng giao tiếp mà không cần chung nền tảng là có thể hoạt động được.
  • Mô hình này cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS)…
  • Với mô hình này, người dùng có thể truy cập dữ liệu từ xa, thực hiện các thao tác gửi, nhận file hay tìm kiếm thông tin đơn giản
  • Có thể có nhiều server cùng làm một dịch vụ, chúng có thể nằm trên nhiều máy tính hoặc một máy tính.

Nhược điểm của Client server là gì?

Mô hình Client server vẫn còn tồn tại một số nhược điểm sau:

  • Do phải trao đổi dữ liệu giữa 2 máy tính khác nhau và ở 2 khu vực địa lý cách xa nhau. Vì vậy, khả năng bảo mật thông tin mạng là một hạn chế nữa của Client server. Tuy nhiên vấn đề này đã có một số giao thức đã hỗ trợ bảo mật dữ liệu khi truyền tải. Giao thức được sử dụng phổ biến như HTTPS.
  • Cần bảo trì, bảo dưỡng server thường xuyên.

Với những ưu nhược điểm nêu bên trên, bạn đã biết vì sao nhiều người dùng đã tin tưởng và sử dụng mô hình mạng khách chủ – Client server chưa?. Với các mô hình Client server khác như mô hình client server trong java, mô hình client server trong php, mô hình client server trong c#,…cũng vậy, sự xuất hiện của máy khách – máy chủ là thiết yếu quan trọng, không thể thiếu.

So sánh mô hình Peer to Peer(P2P) và Client-Server?

P2P và Client server đều có một client gửi request đến server và server gửi trả thông tin về cho client.

Ưu điểm:

Client-server

Peer-to-peer

– Tốc độ truy cập nhanh

-Khả năng mở rộng cao

-Sử dụng được với các ứng dụng chia sẻ CSDL

-Đáng tin cậy hơn(có server riêng)

-Mức độ an toàn cao nhất.

-Hoạt động với bất kì loại ứng dụng nào.

-Không cần server riêng, các lient chia sẻ tài nguyên với nhau. Mạng càng mở rộng thì khả năng hoạt động của hệ thống càng tốt

-Rẻ, dễ cài đặt và bảo trì.

-Thuận lợi cho việc chia sẻ file, máy in…

Trên đây là những chia sẻ về mô hình khách/chủ của mình. Các bạn có góp ý gì để bài viết được tốt hơn thì comment giúp mình ở phía dưới nhé.

Thao khảo thêm về mô hình này tại: https://vi.wikipedia.org/wiki/M%C3%B4_h%C3%ACnh_client-server

=>Xem thêm: Mô hình mvvm trong lập trình

Bình luận