Thứ Năm, 28 tháng 5, 2015

So Sánh Máy Chủ Web Với Máy Chủ Ứng Dụng

Máy chủ web

Một máy chủ web điều khiển giao thức HTTP. Khi máy chủ web nhận được một yêu cầu HTTP, nó sẽ phản hồi thông qua HTTP, ví dụ như trả về một trang HTML. Để xử lý một yêu cầu, một máy chủ web có thể trả về một trang HTML tĩnh hay một hình ảnh, chuyển hướng, ủy quyền việc phản hồi cho một số chương trình khác như mã CGI, JSPs, servlets, ASPs, các JavaScripts server-side, hoặc một vài công nghệ server-side khác. Dù với mục đích gì, những chương trình server-side trên đều tạo ra phản hồi, thường là dưới dạng HTML cho phép xem bằng trình duyệt web.

Mô hình ủy quyền của máy chủ web rất đơn giản. Khi một yêu cầu được chuyển đến máy chủ web, máy chủ sẽ chuyển yêu cầu đó đến chương trình phù hợp nhất để xử lý yêu cầu đó. Máy chủ web không cung cấp gì khác ngoài môi trường để các chương trình chạy và chuyển về các phản hồi. Các chương trình server-side thường có các chức năng như xử lý dữ liệu giao dịch, kết nối cơ sở dữ liệu, và gửi tin.

Trong khi máy chủ web không thể tự xử lý các giao dịch hoặc phân nhóm kết nối cơ sở dữ liệu, nó vẫn có rất nhiều tính năng phục vụ khả năng chịu lỗi và mở rộng như cân đối nạp dữ liệu, bộ nhớ đệm và gộp dữ liệu, vốn là những tính năng thường bị nhầm lẫn rằng chỉ có ở máy chủ ứng dụng.


Máy chủ ứng dụng

Như đã định nghĩa ở trên, một máy chủ ứng dụng xử lý từ giải thuật dữ liệu đến các ứng dụng trên máy khách thông qua rất nhiều giao thức, có thể bao gồm cả HTTP. Trong khi máy chủ web chủ yếu gửi HTML để hiện thị trên trình duyệt web, máy chủ ứng dụng cung cấp truy cập đến giải thuật xử lý dữ liệu cho các ứng dụng máy khách. Các chương trình có thể sử dụng giải thuật này như một phương pháp xử lý đối tượng (hay một hàm trong các thủ tục).


Những máy chủ ứng dụng chạy trên máy khách có thể chứa các giao diện đồ họa (GUIs) chạy trên máy tính cá nhân, trình duyệt web hoặc ngay cả những máy chủ ứng dụng khác. Thông tin trao đổi qua lại giữa máy chủ ứng dụng và máy khách không chỉ giới hạn ở những gì hiển thị trên màn hình. Thay vào đó, thông tin ở đây là thuật toán của chương trình. Vì thuật toán nằm ở dạng dữ liệu và không phải là HTML tĩnh nên máy khách có thể sử dụng nó với bất cứ cách nào.

Trong phần lớn trường hợp, máy chủ thực hiện thuật toán thông qua một thành phần API, ví dụ như EJB (Enterprise JavaBean) trên các máy chủ J2EE (Nền tảng Java 2, bản thương mại). Ngoài ra, máy chủ ứng dụng còn tự quản lý tài nguyên của nó. Những chức năng bảo vệ bao gồm an ninh, xử lý giao dịch, phân nhóm tài nguyên hay gửi tin. Giống như máy chủ web, máy chủ ứng dụng cũng có những tính năng về chịu lỗi và khả năng mở rộng.

Ví dụ

Xét một cửa hàng trực tuyến cung cấp giá cả và thông tin theo thời gian thực. Thông thường trang web sẽ đưa ra mẫu để bạn lựa chọn sản phẩm. Khi bạn gửi yêu cầu, trang web sẽ tìm kiếm và trả về kết quả nhúng trong trang HTML. Trang web có thể thực hiện chức năng này bằng rất nhiều phương pháp. Tôi sẽ giới thiệu cho bạn một phương pháp không sử dụng máy chủ ứng dụng và phương pháp còn lại có sử dụng. Sự khác nhau giữa các phương pháp này sẽ giúp bạn nhận ra chức năng của máy chủ ứng dụng.

Phương pháp 1: Chỉ sử dụng máy chủ web và không sử dụng máy chủ ứng dụng

Trong phương pháp này, chỉ một mình máy chủ web cung cấp các chức năng của cửa hàng trực tuyến. Máy chủ web nhận yêu cầu từ bạn, rồi chuyển nó đến một chương trình server-side có khả năng xử lý. Chương trình này sẽ tìm kiếm các thông tin về giá cả từ cơ sở dữ liệu hay một tệp văn bản. Một khi tìm được, chương trình sẽ dùng thông tin đó để tạo nên phản hồi HTML, sau đó máy chủ web sẽ gửi phản hồi đó về trình duyệt web của bạn.

Tóm lại, máy chủ web xử lý đơn giản các yêu cầu HTTP bằng cách phản hồi qua các trang HTML.

Phương pháp 2: Sử dụng cả máy chủ web và máy chủ ứng dụng

Phương pháp này giống phương pháp 1 ở chỗ máy chủ web cũng chuyển việc tạo ra phản hồi cho một chương trình. Mặc dù vậy, với phương pháp này bạn có thể đặt thuật toán tìm kiếm giá cả vào máy chủ ứng dụng. Với việc này, thay vì chương trình biết cách tìm kiếm và tạo ra phản hồi, nó chỉ đơn giản là gọi ra dịch vụ tìm kiếm của máy chủ ứng dụng, sau đó sử dụng kết quả từ dịch vụ để tạo ra phản hồi HTML.

Trong phương pháp này, máy chủ ứng dụng cung cấp thuật toán để tìm kiếm giá cả của một sản phẩm. Chức năng này không hiện lên màn hình hay yêu cầu khách hàng phải cung cấp thông tin ra sao. Thay vào đó, máy khách và máy chủ ứng dụng sẽ trao đổi dữ liệu qua lại. Khi một máy khách gọi dịch vụ tìm kiếm của máy chủ ứng dụng, dịch vụ sẽ tìm và trả kết quả về máy khách.

Bằng cách tách riêng việc tìm kiếm với việc tạo phản hồi, một máy khách thứ hai, ví dụ như một máy tính tiền, cũng có thể gọi ra dịch vụ tìm kiếm y hệt khi nhân viên thu ngân tính tiền cho khách. Ngược lại, với phương pháp 1, dịch vụ tìm kiếm không thể sử dụng lại được vì thông tin được nhúng trong trang HTML. Tóm lại, trong phương pháp 2, máy chủ web xử lý yêu cầu HTTP bằng cách trả lời qua một trang HTML trong khi máy chủ ứng dụng xử lý thuật toán ứng dụng với việc tìm kiếm giá cả và các yêu cầu sẵn có.

0 nhận xét:

Đăng nhận xét