c. Theo lĩnh vực cụ thể
1.2.2. Mô hình Client – Server
Mô hình client-server là một mô hình nổi tiếng trong mạng máy tính, được
áp dụng rất rộng rãi và là mô hình của mọi trang web hiện có. Ý tưởng của mô hình này là mỏy khỏch (được sử dụng từ phía người sử dụng) gửi một yêu cầu (request) để máy chủ (đóng vai trò người cung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về cho mỏy khỏch.
Hình 1.5: Mô hình client-server
Mô hình client –server mô tả các dịch vụ mạng và các ứng dụng được sử dụng để chia làm các dịch vụ. Mô hình này chia các thao tác ra làm hai phần: Phía client cung cấp cho người sử dụng một giao diện để yêu cầu dịch vụ từ mạng và phía server tiếp nhận các yêu cầu từ phía client và cung cấp các dịch vụ thông suốt cho người sử dụng.
Chương trình Server được khởi động trên một máy chủ và ở trạng thái sẵn sàng nhận các yêu cầu từ phía client. Chương trình client cũng được khởi động một cách độc lập với chương trình server. Yêu cầu dịch vụ được chương trình truy cập dịch vụ từ client gửi đến máy chủ cung cấp dịch vụ và chương trình server trên máy chủ sẽ đáp ứng các yêu cầu của client. Sau khi thực hiện các yêu cầu từ phía client, server sẽ trở về trạng thái chờ các yêu cầu khác.
Trong mô hình client/server ứng dụng thường được xây dựng trên mô hình 2 lớp hoặc 3 lớp.
Hình 1.6: Mô hình ứng dụng 2 lớp
Mô hình ứng dụng hai lớp rất phổ biến để xây dựng những ứng dụng phân tán. Trong mô hình này việc xử lý dữ liệu nằm ở phía máy chủ lưu trữ dữ liệu còn việc nhận và hiển thị dữ liệu sẽ do client thực hiện. Mô hình này yêu cầu client phải có cấu hình tốt. Tuy nhiên với đặc điểm client tự động sử lý và hiển thi dữ liệu nên việc bảo trì trên toàn hệ thống sẽ xảy ra khó khăn. Nên trong kiến trúc web chúng ta thường sử dụng mô hình 3 ứng dụng lớp.
Với mô hình 3 lớp, ngoài việc trình ứng dụng quản lý cơ sở dữ liệu được cài đặt trên DataBase Server, có thể nhận số lượng yêu cầu từ nhiều ứng dụng và nhiều người dùng cùng một lúc. Thì trình ứng dụng cung cập dịch vụ cho người dùng cũng chỉ cần được cài đặt một lần trên application server và các client chỉ việc gửi yêu cầu và hiển thị kết quả cho người dùng mà không thực hiện bất kỳ thao tác xử lý nào. Kiến trúc ứng dụng 3 lớp giúp chúng ta xây dựng các hệ thống quản lý tập trung (ứng dụng được quản lý, cài đặt tại một nơi) còn người dùng có thể truy cập mọi nơi chỉ cần nơi đú cú mạng internet).
Dựa trên mô hình ứng dụng 3 lớp này. Kiến trúc của trình ứng dụng được vận hành trên application server sẽ được thiết kế trên kiến trúc 3 tầng như sau:
Hình 1.8: Kiến trúc 3 tầng
• Presentation Layer
Lớp presentation làm nhiệm vụ giao tiếp với người dùng cuối để thu thập dữ liệu và hiển thị kết quả/dữ liệu thông qua các thành phần trong giao diện người sử dụng. Lớp này sẽ sử dụng các dịch vụ do lớp Business Logic cung cấp. Trong lớp này có 2 thành phần chính là User Interface Components và User Interface Process Components.
- UI Components là những phần tử chịu trách nhiệm thu thập và hiển thị
thông tin cho người dùng cuối. Các thành phần này có thể là các textbox, các button và một vài thành phần khác mà tuy từng ngôn ngữ lập trình quy định. - UI Process Components: là thành phần chịu trách nhiệm quản lý các qui
trình chuyển đổi giữa các UI Components. • Business layer
Lớp này thực hiện các nghiệp vụ chính của hệ thống, sử dụng các dịch vụ do lớp Data Access cung cấp, và cung cấp các dịch vụ cho lớp Presentation. Lớp này cũng có thể sử dụng các dịch vụ của các nhà cung cấp thứ 3 (3rd parties) để thực hiện công việc của mỡnh(vớ dụ như sử dụng dịch vụ của các cổng thanh toán trực tuyến như VeriSign, Paypal...).
• Data access layer
Lớp này thực hiện các nghiệp vụ liên quan đến lưu trữ và truy xuất dữ liệu của ứng dụng. Thường lớp này sẽ sử dụng các dịch vụ của các hệ quản trị cơ sở dữ liệu như SQL Server, Oracle, MySQL... để thực hiện nhiệm vụ của mình. Trong lớp này cú cỏc thành phần chính là Data Access Logic, Data Sources, Servive Agents).
Data Access Logic components (DALC) là thành phần chính chịu trách nhiệm lưu trữ vào và truy xuất dữ liệu từ các nguồn dữ liệu - Data Sources như RDMBS, XML, File systems....
Chất lượng vận hành của một hệ thống web không những chỉ phụ thuộc vào chất lượng thiết kế, xây dựng của các nhà lập trình mà còn phụ thuộc vào cơ sở hạ tầng có phù hợp hay không.