Web
service
Một dịch vụ
Web (web service), là thuật ngữ rất rộng, là một phương thức giao tiếp giữa hai
ứng dụng hoặc các thiết bị điện tử trên World Wide Web (WWW). Các Web service
có hai loại: SOAP (Simple Object Access Protocol) và REST (REpresentational
State Transfer).
SOAP định
nghĩa một giao thức truyền thông chuẩn (tập hợp các quy tắc- set of rules) cho
trao đổi thông điệp dựa trên XML. SOAP sử dụng các giao thức truyền tải khác
nhau, chẳng hạn như HTTP và SMTP. Giao thức chuẩn HTTP làm cho mô hình SOAP dễ
dàng hơn với đường thông qua tường lửa và proxy mà không có bất kỳ sửa đổi nào.
SOAP đôi khi có thể chậm hơn các công nghệ phần mềm trung gian như CORBA hoặc
ICE do định dạng XML dài dòng của nó.
REST mô tả một
tập hợp các nguyên tắc kiến trúc mà dữ liệu có thể được truyền qua một
interface chuẩn hóa (chẳng hạn như HTTP). REST không thêm một tầng thông báo và
tập trung vào các quy tắc thiết kế để tạo các service không trạng thái. Một
khách hàng có thể truy cập tài nguyên bằng cách sử dụng URI duy nhất và một đại
diện của tài nguyên được trả về. Với mỗi biểu diễn tài nguyên mới, client được
cho là chuyển trạng thái. Trong khi truy cập tài nguyên RESTful bằng giao thức
HTTP, URL của tài nguyên đóng vai trò là mã định danh tài nguyên và GET, PUT,
DELETE, POST và HEAD là các hoạt động HTTP chuẩn được thực hiện trên tài nguyên
đó.
REST
vs. SOAP
Có sự khác biệt
đáng kể giữa các web service SOAP và RESTful.
REST
RESTful web services là phi trạng thái.
Đối với hầu hết các server, các web service RESTful cung cấp
bộ nhớ đệm tốt qua phương thức HTTP GET. Điều này cải thiện hiệu suất nếu thông
tin service trả về không bị thay đổi thường xuyên và không phải là động.
Các nhà sản xuất và người sử dụng phải hiểu bối cảnh và nội
dung được truyền đi vì không có bộ quy tắc chuẩn để mô tả REST web services
interface.
REST hữu ích cho các thiết bị có cấu hình bị giới hạn, chẳng
hạn như thiết bị di động, trong đó chi phí bổ sung của thông số bổ sung ít hơn
(ví dụ: headers).
REST services dễ tích hợp với các trang web hiện có và được
tiếp xúc với XML để các trang HTML có thể dễ dàng sử dụng. Có rất ít cần phải
cấu trúc lại kiến trúc trang web hiện có. Như vậy, các nhà phát triển có năng
suất cao hơn vì họ không cần viết lại mọi thứ từ đầu; thay vào đó, họ chỉ cần
thêm vào chức năng hiện có.
Việc thực thi dựa trên REST đơn giản hơn so với SOAP.
SOAP
Ngôn ngữ mô tả web service (Web Services Description
Language - WSDL) mô tả một bộ quy tắc chung để xác định các thông điệp
(messages), ràng buộc (bindings), hoạt động và vị trí của service. WSDL giống
như một hợp đồng để xác định interface mà service cung cấp.
SOAP yêu cầu ít tiêu chuẩn hơn so thiết kế REST service (ví
dụ: transactions, bảo mật, điều phối, giải quyết vấn đề và tin cậy). Hầu hết
các ứng dụng trong thực tế không đơn giản và hỗ trợ các hoạt động phức tạp, yêu
cầu duy trì trạng thái cuộc hội thoại và thông tin theo ngữ cảnh. Với SOAP, các
nhà phát triển không cần viết mã hệ thống bắt buộc vào tầng ứng dụng.
Các SOAP web service, chẳng hạn như JAX-WS, rất hữu ích cho
việc xử lý và yêu cầu không đồng bộ.
SOAP hỗ trợ một số giao thức và công nghệ, bao gồm WSDL, XSD
và WS-Addressing.
Sử dụng một
web service thông qua một phương thức lưu trữ cơ sở dữ liệu cho phép người dùng
cập nhật ngay lập tức một cơ sở dữ liệu với thông tin từ các nguồn khác nhau.
Người dùng cũng có thể lên lịch một công việc định kỳ để nhận dữ liệu được cập
nhật định kỳ trong cơ sở dữ liệu.
REST
hay SOAP: Cái nào tốt nhất?
Cả hai kiến
trúc SOAP và RESTful đều đáng tin cậy, thành công và có khả năng mở rộng quy mô
vô hạn, vì vậy quyết định sử dụng REST hoặc SOAP có ít liên quan đến hiệu quả của
chúng và nhu cầu của dự án.
Cả SOAP web
services và RESTful web services đã chứng minh khả năng đáp ứng nhu cầu của các
tổ chức doanh nghiệp lớn nhất trên thế giới, đồng thời có thể phục vụ các
phương thức internet nhỏ nhất hoặc ứng dụng nhúng trong sản xuất.
Khi chọn giữa
REST và SOAP, hai trong số các quan điểm chính để đưa vào quyết định là:
- Các loại client sẽ được hỗ trợ. Ví dụ, các dịch vụ REST
tương tác hiệu quả với các máy client nhẹ, chẳng hạn như smart phone.
- Doanh nghiệp chấp nhận mức độ linh hoạt tiêu chuẩn hóa như
thế nào?
Những yếu tố
này xuyên suốt quá trình làm việc sẽ giúp các tổ chức lựa chọn giữa SOAP web
services và RESTful web services.
Đăng nhận xét