Marketing tổng thể

Web Service là gì? Tìm hiểu lợi ích & cách thức hoạt động của Web Service

Web services là một khái niệm quan trọng trong ngành công nghiệp phần mềm, tuy nhiên nhiều người còn chưa thực sự hiểu rõ về web service. Bài viết này sẽ giải đáp các thắc mắc Web service là gì, nó bao gồm những gì? Tại sao web service quan trọng và những điều bạn cần biết về web service.

Web Service là gì?

1. Khái niệm Web Service là gì?

Một cách ngắn gọn thì web services (hay “dịch vụ web”) là một mô-đun phần mềm được thiết kế để thực hiện một nhóm các tác vụ nhất định. Các web services có thể được truy cập và sử dụng thông qua mạng internet dưới dạng dịch vụ. Khi đó, web service sẽ cung cấp các chức năng của nó cho máy khách để người dùng đạt được các mục tiêu sử dụng nhất định.

Trên mạng và trong các tài liệu chuyên ngành có rất nhiều định nghĩa khác nhau về web services. Tuy nhiên ta có thể hiểu, để một dịch vụ được coi là web service thì cần thỏa mãn các tiêu chí sau:

  • Có sẵn trên internet hoặc mạng nội bộ,
  • Sử dụng hệ thống XML messaging tiêu chuẩn,
  • Không bị trói buộc vào một hệ điều hành hay ngôn ngữ lập trình nào,
  • Có thể tự diễn tả chính nó thông qua một cấu trúc XML đơn giản,
  • Có thể được tìm kiếm bằng những phương thức đơn giản (simple mechanism).

2. Web service hoạt động như thế nào?

Một web service cho phép giao tiếp giữa các ứng dụng khác nhau bằng cách sử dụng các tiêu chuẩn mở như HTML, XML, WSDL và SOAP. Thông thường, một dịch vụ web cơ bản sẽ sử dụng:

  • XML để gắn thẻ dữ liệu
  • SOAP để chuyển tin nhắn
  • WSDL để mô tả sự sẵn có của dịch vụ.

Bạn có thể xây dựng một dịch vụ web Java-based trên Solaris, vốn có thể truy cập được từ Visual Basic chạy trên Windows.

Bạn cũng có thể sử dụng C # để xây dựng các dịch vụ web trên Windows có thể được gọi từ ứng dụng web của bạn dựa trên JavaServer Pages (JSP) và chạy trên Linux.

Ví dụ web service đơn giản

Hãy xem xét một hệ thống quản lý tài khoản và xử lý đơn hàng đơn giản. Nhân viên kế toán sử dụng một ứng dụng khách được xây dựng bằng Visual Basic hoặc JSP để tạo tài khoản mới và nhập đơn đặt hàng mới của khách hàng.

Logic xử lý cho hệ thống này được viết bằng Java và nằm trên máy Solaris, cũng tương tác với cơ sở dữ liệu để lưu trữ thông tin.

Các bước để thực hiện thao tác này như sau:

  • Chương trình máy khách (client program) đóng gói thông tin đăng ký tài khoản thành một SOAP message.
  • SOAP message này được gửi đến dịch vụ web dưới dạng POST HTTP request.
  • Dịch vụ web giải nén yêu cầu SOAP và chuyển đổi nó thành một lệnh mà ứng dụng có thể hiểu được.
  • Ứng dụng xử lý thông tin theo yêu cầu và phản hồi bằng số tài khoản duy nhất mới cho khách hàng đó.
  • Tiếp theo, dịch vụ web đóng gói phản hồi vào một SOAP message khác, nó sẽ gửi lại cho chương trình máy khách để đáp ứng HTTP request của nó.
  • Chương trình máy khách giải nén thông báo SOAP để có được kết quả của quá trình đăng ký tài khoản.

3. Tại sao sử dụng web service?

Dưới đây là những lợi ích của việc sử dụng dịch vụ web.

Khả năng tương tác

Web service cho phép các ứng dụng khác nhau giao tiếp với nhau và chia sẻ dữ liệu, dịch vụ với nhau. Các ứng dụng khác cũng có thể sử dụng các dịch vụ web. Ví dụ, một ứng dụng VB hoặc .NET có thể giao tiếp với các dịch vụ web Java và ngược lại. Các dịch vụ web được sử dụng để làm cho nền tảng ứng dụng và công nghệ trở nên độc lập.

Giao thức chuẩn hóa

Web service sử dụng giao thức chuẩn hóa để giao tiếp. Tất cả bốn lớp (Truyền tải dịch vụ, Nhắn tin XML, Mô tả dịch vụ và các layer Khám phá dịch vụ) đều sử dụng các giao thức tách biệt trong stack giao thức của web services. Việc chuẩn hóa stack giao thức này mang lại cho doanh nghiệp nhiều lợi thế như có nhiều lựa chọn, giảm chi phí do cạnh tranh và tăng chất lượng.

Truyền thông chi phí thấp

Các dịch vụ web sử dụng SOAP qua giao thức HTTP, vì vậy bạn hoàn toàn có thể triển khai các dịch vụ web với một đường truyền internet khiêm tốn. Giải pháp này ít tốn kém hơn nhiều so với các giải pháp độc quyền như EDI / B2B. Bên cạnh SOAP qua HTTP, các dịch vụ web cũng có thể được triển khai trên các cơ chế truyền tải đáng tin cậy khác như FTP.

Kiến trúc của Web Service là gì?

Có hai cách để phân tích kiến trúc của một dịch vụ web:

  • Dựa vào vai trò của từng thành phần trong web service.
  • Dựa vào các protocol stacks của web service.

1. Vai trò dịch vụ web

Có ba vai trò chính trong kiến trúc dịch vụ web:

  • Service Provider: Đây là nhà cung cấp dịch vụ web. Nhà cung cấp dịch vụ triển khai dịch vụ và cung cấp dịch vụ này trên Internet.
  • Service Requestor: Đây là bất kỳ người tiêu dùng của dịch vụ web. Người yêu cầu sử dụng một dịch vụ web bằng cách mở kết nối mạng và gửi yêu cầu XML.
  • Service Registry: Đây là một thư mục logic tập trung của dịch vụ web. Registry cung cấp một không gian tập trung, nơi các nhà phát triển có thể xuất bản các dịch vụ mới hoặc tìm các dịch vụ hiện có. Do đó, nó có vai trò như một nhà thanh toán bù trừ tập trung cho các công ty và dịch vụ của họ.

web service là gì

2. Protocol Stack trong dịch vụ web

Cách thứ hai để kiểm tra kiến trúc dịch vụ web là dựa vào protocol stack của dịch vụ web. Các stack vẫn đang được phát triển, nhưng hiện tại có bốn lớp chính:

  • Service Transport: Lớp này chịu trách nhiệm vận chuyển tin nhắn giữa các ứng dụng. Hiện tại, lớp này bao gồm Giao thức truyền tải văn bản Hyper (HTTP), Giao thức chuyển thư đơn giản (SMTP), Giao thức truyền tệp (FTP) và các giao thức mới hơn như Giao thức trao đổi mở rộng khối (BEEP).
  • XML messaging: Lớp này chịu trách nhiệm mã hóa các thông điệp theo định dạng XML phổ biến để có thể hiểu các thông điệp ở hai đầu. Hiện tại, lớp này bao gồm XML-RPC và SOAP.
  • Service Description: Lớp này chịu trách nhiệm mô tả giao diện công cộng cho một dịch vụ web cụ thể. Hiện tại, mô tả dịch vụ được xử lý thông qua Ngôn ngữ mô tả dịch vụ web (WSDL).
  • Service Discovery: Lớp này chịu trách nhiệm tập trung các dịch vụ vào một sổ đăng ký chung và cung cấp chức năng xuất bản / tìm kiếm dễ dàng. Hiện tại, khám phá dịch vụ được xử lý thông qua Mô tả chung, Khám phá và Tích hợp (UDDI).

Khi các dịch vụ web phát triển, các lớp bổ sung có thể được thêm vào và các công nghệ bổ sung có thể được thêm vào mỗi lớp.

Các thành phần của Web Service là gì?

Trong vài năm qua, ba công nghệ chính đã nổi lên như các tiêu chuẩn trên toàn thế giới tạo nên cốt lõi của công nghệ web service ngày nay. Chúng bao gồm:

web service là gì

  • SOAP (Simple Object Access Protocol): SOAP là một giao thức dựa trên XML để trao đổi thông tin giữa các máy tính. Nó cũng được sử dụng để gửi thông điệp giữa các ứng dụng với nhau. SOAP được thiết kế để có thể giao tiếp thông qua internet, và nó đơn giản, dễ mở rộng.
  • WSDL (Web Services Description Language): Được thiết kế bởi Microsoft và IBM, WSDL là một ngôn ngữ chuẩn chung dựa trên XML để mô tả các dịch vụ web và cách truy cập chúng.
  • UDDI (Universal Description, Discovery & Integration): UDDI là một tiêu chuẩn dựa trên XML để mô tả, xuất bản và tìm kiếm các dịch vụ web. UDDI là một open framework và là nền tảng độc lập. UDDI có thể giao tiếp qua SOAP, CORBA và Giao thức RMI Java. UDDI sử dụng WSDL để mô tả giao diện cho các dịch vụ web.

Vấn đề bảo mật của Web Service là gì?

Bảo mật là rất quan trọng đối với các dịch vụ web. Tuy nhiên, cả các thông số XML-RPC và SOAP đều không thực hiện bất kỳ yêu cầu xác thực hoặc bảo mật rõ ràng nào.

Có ba vấn đề bảo mật cụ thể với các dịch vụ web:

1. Confidentiality

Nếu client gửi yêu cầu XML đến máy chủ, chúng ta có thể đảm bảo rằng thông tin liên lạc được giữ bí mật không? Câu trả lời nằm ở đây:

  • XML-RPC và SOAP chạy chủ yếu trên HTTP.
  • HTTP có hỗ trợ SSL (Secure Socket Layer).
  • Giao tiếp có thể được mã hóa thông qua SSL – một công nghệ đã được chứng minh và triển khai rộng rãi.

Một dịch vụ web có thể bao gồm một chuỗi các ứng dụng. Ví dụ: một dịch vụ lớn có thể liên kết các dịch vụ của ba ứng dụng khác. Trong trường hợp này, SSL là không đủ; các thông điệp cần được mã hóa tại mỗi nút dọc theo đường dẫn dịch vụ và mỗi nút đại diện cho một liên kết yếu tiềm năng trong chuỗi.

web service là gì

Hiện tại, không có giải pháp nào được thống nhất cho vấn đề này, nhưng một giải pháp đầy hứa hẹn là Tiêu chuẩn mã hóa XML của W3C. Tiêu chuẩn này cung cấp một khung để mã hóa và giải mã toàn bộ tài liệu XML hoặc chỉ một phần của tài liệu XML. Bạn có thể kiểm tra nó tại www.w3.org/Encoding

2. Authentication

Nếu một client kết nối với một dịch vụ web, làm thế nào để chúng ta xác định người dùng? Người dùng có được phép sử dụng dịch vụ không? Dưới đây là một vài phương án xác thực, tuy nhiên không có một quy chuẩn nào được cho là hoàn hảo:

  • HTTP bao gồm hỗ trợ tích hợp cho xác thực Basic and Digest. Do đó, các dịch vụ có thể được bảo vệ theo cách tương tự như các tài liệu HTML hiện đang được bảo vệ.
  • Chữ ký số SOAP (SOAP-DSIG) tận dụng mã khóa công khai (public key) để ký điện tử các thông điệp SOAP. Nó cho phép máy khách hoặc máy chủ xác nhận danh tính của bên kia. Tham khảo tại www.w3.org/TR/SOAP-dsig.
  • Tổ chức OASIS (Organization for the Advancement of Structured Information Standards) đang phát triển với Ngôn ngữ markup xác thực bảo mật SAML (Security Assertion Markup Language).

3. Network Security

Hiện tại không có câu trả lời tuyệt đối cho vấn đề này, và nó đã là chủ đề của nhiều cuộc tranh luận. Hiện tại, nếu bạn thực sự có ý định lọc ra các thông điệp SOAP hoặc XML-RPC, có một cách là lọc ra tất cả các POST HTTP request đặt loại nội dung của chúng thành text/xml.

Một cách khác là lọc thuộc tính tiêu đề HTTP SOAPAction. Các nhà cung cấp tường lửa hiện đang phát triển các công cụ được thiết kế rõ ràng để lọc lưu lượng dịch vụ web.

Lời kết

Trên đây là các thông tin và kiến thức giúp bạn hiểu web service là gì? Hy vọng nội dung bài viết có ích với bạn

Tìm kiếm liên quan

  • Dịch vụ web là gì
  • Web Services là gì
  • Mô hình Web service
  • Web service C# là gì

Nội dung liên quan

Leave a Reply

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

Back to top button