Dịch vụ Web SOAP
SOAP là viết tắt của Simple Object Access Protocol (Giao thức Truy cập Đối tượng Đơn giản). Là giao thức dựa trên XML để truy cập dịch vụ Web. Được phát triển như ngôn ngữ trung gian để ứng dụng xây dựng bằng nhiều ngôn ngữ lập trình có thể giao tiếp hiệu quả. Dịch vụ Web dùng SOAP để chia sẻ dữ liệu XML giữa các ứng dụng.
SOAP cung cấp cả hoạt động có trạng thái (stateful) và không trạng thái (stateless). Stateful nghĩa là máy chủ giữ dữ liệu nhận từ khách hàng qua nhiều yêu cầu. Các yêu cầu được nối chuỗi để máy chủ biết về yêu cầu trước. Ví dụ: giao dịch ngân hàng, đặt vé máy bay. Nhắn tin stateless có đủ thông tin về trạng thái khách hàng để máy chủ không cần lo lắng.
Dịch vụ Web RESTful
REST là viết tắt của Representational State Transfer (Chuyển Trạng thái Biểu diễn). Là phương pháp kiến trúc cho mục đích giao tiếp thường dùng trong phát triển nhiều dịch vụ Web. Là mô hình client-server không trạng thái. Dịch vụ Web được xây dựng dựa trên thuật ngữ REST là dịch vụ Web RESTful.
Khi khách hàng tạo yêu cầu qua API RESTful, nó chuyển mô tả trạng thái tài nguyên đến máy chủ. Thông tin này có thể chuyển trong nhiều định dạng qua HTTP như JSON, HTML, XLT, Văn bản thuần túy, nhưng JSON phổ biến nhất do dễ đọc bởi máy và con người.
Trong Kiến trúc REST, mọi thứ là tài nguyên. Dịch vụ Web RESTful cung cấp sự tương ứng giữa ứng dụng lập trình chạy trên nhiều giai đoạn và hệ thống. Có thể coi dịch vụ Web như mã theo yêu cầu. Dịch vụ Web RESTful là khả năng hoặc kỹ thuật có thể gọi bằng cách gửi yêu cầu HTTP đến URL, và dịch vụ trả về kết quả như phản hồi.
So sánh giữa SOAP và Dịch vụ Web RESTful:
| SOAP | RESTful |
|---|---|
| SOAP là Simple Object Access Protocol. | RESTful là Representational State Transfer. |
| Dịch vụ Web SOAP liên kết phản hồi với XML vì phản hồi thực tế được gói trong thông điệp SOAP luôn ở định dạng XML. | Dịch vụ Web RESTful có thể trả về phản hồi nhiều định dạng như JSON, XML, HTML. |
| SOAP dùng thông điệp XML để nhận diện quy trình Web hoặc tài nguyên mong muốn được gọi. | Dịch vụ Web RESTful dùng URL để nhận diện tài nguyên mong muốn được truy cập. |
| SOAP không đặt hạn chế về truyền tải. Có thể dùng HTTP hoặc MQ. | Dịch vụ RESTful dùng giao thức HTTP phổ biến. |
| SOAP không thể dùng dịch vụ RESTful vì nó là giao thức. | Dịch vụ RESTful có thể dùng dịch vụ Web SOAP vì là phương pháp kiến trúc có thể dùng bất kỳ giao thức như HTTP và SOAP. |
| XML là định dạng trao đổi dữ liệu phổ biến trong dịch vụ Web SOAP. | JSON là định dạng trao đổi dữ liệu phổ biến trong dịch vụ Web RESTful. |