[Bài đọc] So sánh giữa Webservice REST và SOAP

5. RESTful Webservice

Tổng quan về web service (dịch vụ web)

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à:

  1. 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.
  2. 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.

Leave a Reply

Your email address will not be published. Required fields are marked *