Saturday, January 9, 2016

Tổng Quan Web Service - SOAP Web Service, RESTful Web Service

1. Web Service là gì?

Về lý thuyết thì rất là dài, với thời buổi công nghệ rất dễ dàng để search và tham khảo thêm trên mạng, nhưng về cơ bản Web Service với các ngôn ngữ và nển tảng bất kỳ được hiểu như sau:

  • Web Service là một công nghệ để giao tiếp giữa các ngôn ngữ lập trình với nhau.
  • Web Service là một thành phần trong ứng dụng client server 
  • Web Service là một phương thức để giao tiếp giữa các thiết bị thông qua Network
  • Web Service là một hệ thống phần mềm cho phép tương tác giữa machine to machine
  • Ví dụ: Ngôn ngữ lập trình java có thể tương tác với PHP và .Net bằng cách sử dụng các Web Service.
  • Ví dụ ứng dụng thực tế: Tạo Web Service thanh  toán tiền, xem thời tiết, tra cứu .... code bằng Java triển khai trên server có IP là 10.1.2.32 và ứng dụng Web trên server có IP 10.1.2.33 code bằng PHP hoặc .Net để gọi Web Service thanh toán tiền, xem thời tiết, tra cứu ....
web services

2. Types of Web Services - Các loại Web Services

Có hai loại Web Service phổ biến như sau:

  • SOAP web services.
    • SOAP là viết tắt cho Simple Object Access Protocol.
    • SOAP là một giao thức base trên XML để truy cập các Web Services.
    • Ưu điểm: 
      • Không phụ thuộc nền tảng, ngôn ngữ: Có thể viết bằng bất kỳ ngôn ngữ nào và execute trên bất kỳ nền tảng nào.
      • Bảo mật web service: SOAP định nghĩa riêng các cơ chế bảo mật cho nó gọi là WS Security.
    • Nhược điểm:
      • Chậm: Sử dụng định dạng XML, mang nhiều tiêu chuẩn khắt khe khi phát triển => tốn tài nguyên, tốn băng thông khi truyền tải và parse xml
      • Phụ thuộc vào WSDL: Không có cơ chế nào khác ngoài WSDL để discover web service
  • RESTful web services.
    • REST là viết tắt cho REpresentational State Transfer.
    • REST là một kiểu cấu trúc - architectural style chứ không phải một giao thức - protocol.
    • Ưu điểm:
      • Nhanh: Không có nhiều tiêu chuẩn khắt khé => đỡ tốn băng thông và tài nguyên
      • Không phụ thuộc nền tảng, ngôn ngữ: Có thể viết bằng bất kỳ ngôn ngữ nào và execute trên bất kỳ nền tảng nào.
      • Có thể sử dụng SOAP: Có thể sử dụng SOAP web services để thực hiện.
      • Cho phép sử dụng nhiều định dạng dữ liêu khác nhau: Có thể sử dụng các định dạng dữ liệu như: Plain Text, HTML, XML and JSON.
types of web services

Để so sánh giữa hai loại web service ta có bảng so sánh 10 điểm khác nhau sau:

No.
SOAP
REST
1)
SOAP is a protocol.
REST is an architectural style.
2)
SOAP stands for Simple Object Access Protocol.
REST stands for REpresentational State Transfer.
3)
SOAP can't use REST because it is a protocol.
REST can use SOAP web services because it is a concept and can use any protocol like HTTP, SOAP.
4)
SOAP uses services interfaces to expose the business logic.
REST uses URI to expose business logic.
5)
JAX-WS is the java API for SOAP web services.
JAX-RS is the java API for RESTful web services.
6)
SOAP defines standards to be strictly followed.
REST does not define too much standards like SOAP.
7)
SOAP requires more bandwidth and resource than REST.
REST requires less bandwidth and resource than SOAP.
8)
SOAP defines its own security.
RESTful web services inherits security measures from the underlying transport.
9)
SOAP permits XML data format only.
REST permits different data format such as Plain text, HTML, XML, JSON etc.
10)
SOAP is less preferred than REST.
REST more preferred than SOAP.

3. Web Service Components - Các thành phần chính của Web Services
Web Service có ba Components chính như sau:
  • SOAP
  • WSDL
  • UDDI
Để làm rõ ba Components này chúng ta sẽ đi xem xét từng Component:

SOAP
  • SOAP là viết tắt cho Simple Object Access Protocol.
  • SOAP là một giao thức base trên XML để truy cập các Web Services.
  • SOAP là một đề xuất (recommendation) của W3C cho việc giao tiếp giữa các ứng dụng.
  • SOAP bản chất được xây dựng base trên XML, do đó nó mang tính chất của XML như không phụ thuộc vào nền tảng hay ngôn ngữ lập trình.
WSDL
  • WSDL là viết tắt cho Web Services Description Language.
  • WSDL là một tài liệu dạng xml chứa các thông tin về web services như: method name, method parameter và làm thế nào để gọi web services đó.
  • WSDL là thành phần của UDDI, hoạt động giống như interface giữa các ứng dụng web service.
UDDI
  • UDDI là viết tắt cho Universal Description, Discovery and Integration.
  • UDDI là một framework dựa trên XML để mô tả - describing, khám phá - describing và tích hợp - integrating các web service.
  • UDDI là một thư mục chứa các interfaces của web service được mô tả bởi WSDL, chứa các thông tin về web services như tên phương thức, tham số truyền vào, cách gọi ... 

1 comment: