Câu 4

Màu nền
Font chữ
Font size
Chiều cao dòng

Client – Server

Kiến trúc Client-Server được sử dụng trong các hệ thống phân tán và bao gồm hai thành phần riêng biệt: server đóng vai trò phục vụ cung cấp chức năng, và client trong vai trò người tiêu thụ sử dụng các chức năng đó. Thông thường hai thành phần này kết nối với nhau qua mạng, với client là bên chủ động tạo kết nối và gửi yêu cầu đến server, trong khi server thụ động lắng nghe và hồi đáp các yêu cầu. Mô hình client-server đơn giản nhất gồm một server phục vụ cho một hoặc nhiều client đồng thời, còn gọi là kiến trúc hai lớp (2-Tier). Một ví dụ phổ biến cho các ứng dụng Client-Server là các chương trình chat và email đã quá thông dụng hiện nay.

Các ưu điểm nổi bật của kiến trúc Client-Server gồm:

Quản lý tập trung: dữ liệu được lưu trữ tập trung trên server thay vì nằm rải rác trên nhiều máy, giúp đơn giản hóa việc truy xuất và cập nhật dữ liệu.

Dễ bảo trì: nhờ khả năng quản lý tập trung mà công việc bảo trì cũng trở nên nhẹ nhàng hơn vì phần lớn việc bảo trì chỉ cần thực hiện trên server. Trong trường hợp hệ thống có nhiều server với thiết bị dự phòng, quá trình bảo trì (như sửa chữa, thay thế server) có thể diễn ra hoàn toàn trong suốt với phía client.

Bảo mật: dữ liệu tập trung trên server đồng nghĩa với việc kiểm soát dễ dàng hơn.

Kiến trúc Client-Server cũng có một số biến thể như:

Peer-to-Peer: thực chất cũng theo mô hình Client-Server, tuy nhiên Client và Server thường xuyên hoán đổi vai trò cho nhau (máy A vừa sử dụng chức năng của máy B, vừa cung cấp một chức năng khác cho máy B, hai máy này lần lượt đóng cả hai vai trò Client và Server).

Application Server: thay vì chạy các ứng dụng ở phía client, các ứng dụng này được cài đặt và thực thi trên server. Client sử dụng các ứng dụng này bằng cách kết nối vào server. Mô hình này đơn giản hóa đáng kể việc triển khai ứng dụng (chỉ cần cài đặt một lần trên server) và giảm bớt yêu cầu phần cứng của client (do ứng dụng chạy trên server thay vì client, vì vậy mà các client này còn được gọi là “thin client”).

Kiến trúc ứng dụng nhiều tầng

Client/Server hai tầng (two-tier client/server)

Kiến trúc client/server đơn giản nhất là kiến trúc hai tầng. Trong thực tế hầu hết các kiến trúc client/server là kiến trúc hai tầng. Một ứng dụng hai tầng cung cấp nhiều trạm làm việc với một tầng trình diễn thống nhất, tầng này truyền tin với tầng lưu trữ dữ liệu tập trung. Tầng trình diễn thông thường là client, và tầng lưu trữ dữ liệu là server.

Hầu hết các ứng dụng Internet như là email, telnet, ftp thậm chí là cả Web là các ứng dụng hai tầng. Phần lớn các lập trình viên trình ứng dụng viết các ứng dụng client/server có xu thế sử dụng kiến trúc này.

Trong ứng dụng hai tầng truyền thống, khối lượng công việc xử lý được dành cho phía client trong khi server chỉ đơn giản đóng vai trò như là chương trình kiểm soát luồng vào ra giữa ứng dụng và dữ liệu. Kết quả là không chỉ hiệu năng của ứng dụng bị giảm đi do tài nguyên hạn chế của PC, mà khối lượng dữ liệu truyền đi trên mạng cũng tăng theo. Khi toàn bộ ứng dụng được xử lý trên một PC, ứng dụng bắt buộc phải yêu cầu nhiều dữ liệu trước khi đưa ra bất kỳ kết quả xử lý nào cho người dùng. Nhiều yêu cầu dữ liệu cũng làm giảm hiệu năng của mạng. Một vấn đề thường gặp khác đối với ứng dụng hai tầng là vấn đề bảo trì. Chỉ cần một thay đổi nhỏ đối với ứng dụng cũng cần phải thay đổi lại toàn bộ ứng dụng client và server.

Client/Server ba tầng

Ta có thể tránh được các vấn đề của kiến trúc client/server hai tầng bằng cách mở rộng kiến trúc thành ba tầng. Một kiến trúc ba tầng có thêm một tầng mới tác biệt việc xử lý dữ liệu ở vị trí trung tâm.

Theo kiến trúc ba tầng, một ứng dụng được chia thành ba tầng tách biệt nhau về mặt logic. Tầng đầu tiên là tầng trình diễn thường bao gồm các giao diện đồ họa. Tầng thứ hai, còn được gọi là tầng trung gian hay tầng tác nghiệp. Tầng thứ ba chứa dữ liệu cần cho ứng dụng. Tầng thứ ba về cơ bản là chương trình thực hiện các lời gọi hàm để tìm kiếm dữ liệu cần thiết. Tầng trình diễn nhận dữ liệu và định dạng nó để hiển thị. Sự tách biệt giữa chức năng xử lý với giao diện đã tạo nên sự linh hoạt cho việc thiết kế ứng dụng. Nhiều giao diện người dùng được xây dựng và triển khai mà không làm thay đổi logic ứng dụng.

Tầng thứ ba chứa dữ liệu cần thiết cho ứng dụng. Dữ liệu này có thể bao gồm bất kỳ nguồn thông tin nào, bao gồm cơ sở dữ liệu như Oracale, SQL Server  hoặc tài liệu XML.

Kiến trúc n-tầng

Kiến trúc n-tầng được chia thành các tầng như sau:

Tầng giao diện người dùng: quản lý tương tác của người dùng với ứng dụng

Tầng logic trình diễn: Xác định cách thức hiển thị giao diện người dùng và các yêu cầu của người dùng được quản lý như thế nào.

Tầng logic tác nghiệp: Mô hình hóa các quy tắc tác nghiệp,

Tầng các dịch vụ hạ tầng: Cung cấp một chức năng bổ trợ cần thiết cho ứng dụng như các thành phần (truyền thông điệp, hỗ trợ giao tác).

 

Bạn đang đọc truyện trên: Truyen2U.Pro