Web Service Là GÌ? Tìm Hiểu Cách Hoạt Động Của Dịch Vụ Web

Web Service được đánh giá là bước tiến đột phá trong ngành công nghệ. Tuy nhiên, không phải ai mới bắt đầu tìm hiểu lĩnh vực công nghệ hoặc theo đuổi ngành lập trình đều hiểu web service là gì. Vì vậy, bài viết này Mua Bán sẽ giúp bạn hiểu rõ thuật ngữ này một cách cặn kẽ nhất có thể. Cùng theo dõi nhé!

web service là gìweb service là gì

I. Web Service là gì?

1. Khái niệm về Web Service

Web Service được hiểu đơn giản là dịch vụ web bao gồm tập hợp các giao thức, tiêu chuẩn mở được dùng trong việc kết nối các thiết bị, các phần mềm, ứng dụng khác nhau thông qua Internet.

Mặc dù vậy, hiện nay có các tài liệu chuyên ngành định nghĩa Web Service theo nhiều hướng khác nhau, nhưng chung quy bạn chỉ cần hiểu bản chất của dịch vụ web là tích hợp giữa 02 chiếc điện thoại/máy tính (của bạn và người yêu bạn) để có thể tương tác hiệu quả qua ứng dụng Facebook chẳng hạn. Để được xem là dịch vụ web thì chỉ cần phải thỏa mãn những tiêu chí như sau:

  • Có sẵn trên Internet hoặc mạng nội bộ.
  • Là dịch vụ sử dụng một hệ thống dữ liệu XML đúng tiêu chuẩn để hiển thị trên website hoặc các ứng dụng.
  • Hoạt động một cách độc lập, không phụ thuộc vào bất kỳ hệ điều hành hay bất kỳ ngôn ngữ lập trình nào.
  • Được diễn tả thông qua 1 cấu trúc XML đơn giản
  • Dễ dàng tìm kiếm qua các phương thức đơn giản

định nghĩa về dịch vụ webđịnh nghĩa về dịch vụ web

2. Cơ chế hoạt động của Web Service

Theo sơ đồ bên dưới, Web Service hoạt động dựa trên một vòng tuần hoàn nhất định. Bắt đầu từ người dùng (Client) sẽ gọi các lệnh (request) đến Server thông qua Internet, rồi từ đó Server host dịch vụ sẽ phản hồi lại (response) yêu cầu bằng việc đáp ứng kết quả cho nhu cầu sử dụng từ người dùng (Client).

cách thức hoạt động của web servicecách thức hoạt động của web service

Chi tiết hơn về dữ liệu được truyền giữa client và server, chính là XML (Extensible Markup Language) – ngôn ngữ đánh dấu mở rộng.

Loại ngôn ngữ trung gian này là thành phần chính của Web Service và giúp việc chia sẻ dữ liệu từ các nền tảng dù được thiết kế từ những ngôn ngữ lập trình khác nhau (Java, .Net,…) thì vẫn có thể giao tiếp với Web Service.

Do đó, khi các ứng dụng được code từ bất kỳ ngôn ngữ lập trình giao tiếp với nhau, thì XML chính là ngôn ngữ chung duy nhất để giúp cho Web Service hiểu và phản hồi đúng với nhu cầu Client mong muốn ở thời điểm hiện tại.

Thông tin thêm về request:

Các request lệnh từ người dùng (Client) được thực hiện qua RPC (Remote Procedure Call) – mô hình kỹ thuật mạng giúp kết nối máy khách và máy chủ thông qua giao thức yêu cầu và phản hồi.

3. Ví dụ về Web Service

Thông qua nút “giỏ hàng” (Cart) trên trang sản phẩm của sàn thương mại điện tử Amazon (phần người dùng có thể thấy và tương tác được trên website) được lập trình bằng ngôn ngữ .Net hoặc Java thì vẫn có thể giao tiếp với Web Service.

Cụ thể, yêu cầu (request) của người dùng (Client) là muốn biết trong giỏ hàng có bao nhiêu món đã được mua hay tổng đơn hàng cần được thanh toán trên Amazon, sẽ được gửi đến server (Web Service) xử lý và phản hồi lại (response) đúng với nhu cầu của Client khi cho ra kết quả hiển thị là giỏ hàng.

ví dụ về web serviceví dụ về web service

II. Cấu trúc chung của Web Service

1. Cấu trúc dịch vụ Web

Với bất kỳ hệ thống vận hành ứng dụng hay website nào cũng cần phải có framework vận hành để đáp ứng những nhu cầu mà người dùng mong muốn, và Web Service cũng không là ngoại lệ.

Đối với dịch vụ Web, cấu trúc sẽ có 3 yếu tố chính đóng vai trò kết nối chặt chẽ, hoạt động linh hoạt:

  • Service Requestor (Find): Có vai trò đưa ra mệnh lệnh nhằm kết nối từ thiết bị / ứng dụng / phần mềm sử dụng (client application) của người dùng đến Web Service bằng cách mở mạng và chia sẻ dữ liệu qua ngôn ngữ XML.
  • Service Provider (Publish): Cung cấp dịch vụ web đã triển khai bằng cách phản hồi lại nhu cầu sử dụng đến từ yêu cầu của người dùng (client) trên Internet.
  • Service Registry (Bind): Là thư mục logic tập trung các thông tin về dịch vụ web hoặc những yêu cầu từ người dùng có thể liên kết với Web Service, từ đó đề xuất cho người dùng những dịch vụ mới hoặc giúp nhà phát triển ứng dụng, phần mềm tìm kiếm dịch vụ web hiện có dễ dàng.

cấu trúc của web servicecấu trúc của web service

 

2. Protocol Stack trong dịch vụ Web

Bên cạnh 3 thành phần chính đã đề cập ở trên, kiến trúc của Web Service còn hoạt động phụ thuộc vào Protocol Stack trong lớp dịch vụ web. Trong việc và hình thành 4 loại giao thức ngăn xếp (protocol stack) chính:

  • Service Transport Protocol: Lớp này sẽ chịu trách nhiệm vận chuyển các thông tin giữa các ứng dụng sử dụng mạng và hợp thức hóa các loại giao thức mạng khác nhau như HTTP, SMTP, FTP hay BEEP (giao thức trao đổi mở rộng khối).
  • XML Messaging Protocol: Lớp này sẽ chịu trách nhiệm mã hóa thông tin (encoding message) dưới định dạng XML để đảm bảo rằng thông tin được hiểu ở cả hai đầu kết nối (client – server). Lớp này sẽ 3 giao thức mạng là XML-RPC, WS-Addressing và SOAP.
  • Service Description Protocol: Ở lớp này dùng để mô tả giao diện của ứng dụng được sử dụng rộng rãi đến một Web Service cụ thể. Các mô tả giao diện sẽ được xử lý qua ngôn ngữ mô tả các dịch vụ web (WSDL).
  • Service Discovery Protocol: Ở lớp stack này sẽ tập trung hóa những dịch vụ vào một cơ sở dữ liệu chung để Web Service có thể cung cấp chức năng xuất bản theo vị trí địa lý của người dùng và dễ dàng mô tả những thông tin Client cần tìm trên mạng. Hiện tại, việc khám phá dịch vụ sẽ được xử lý thông qua thư mục lưu trữ thông tin về các dịch vụ web – UDDI (Universial Description, Discovery and Integration). 

II. 3 thành phần chính của Web Service

Ngoài các yếu tố trong cấu trúc dịch vụ web, thì còn có 3 thành phần chính được xem như “chất xúc tác” giúp cho quá trình hoạt động của Web Service được diễn ra thuận lợi hơn.

3 thành phần giúp web service hoạt động3 thành phần giúp web service hoạt động

1. SOAP

SOAP – Simple Object Access Protocol được dịch là giao thức truy cập đối tượng đơn giản.

Thành phần này là một giao thức dựa trên ngôn ngữ đánh dấu mở rộng – XML, giúp trao đổi thông tin giữa các ứng dụng qua giao thức web tiêu chuẩn HTTP.

2. WSDL

WSDL – Web Service Description Language được dịch là ngôn ngữ mô tả các dịch vụ Web.

Thành phần quan trọng này được định nghĩa là ngôn ngữ dựa trên XML, dùng để mô tả các chức năng từ dịch vụ web cung cấp cho Client và hỗ trợ thông tin kết nối với tính năng Client muốn sử dụng.

3. UDDI

UDDI – Universial Description, Discovery and Integration 

Thành phần cuối cùng này là một dạng tiêu chuẩn dùng để mô tả, sản xuất và tìm kiếm các dịch vụ web. Đặc biệt là nó cho phép người dùng có thể sử dụng dịch vụ đúng với nhà cung cấp mà họ cần tìm. 

III. Đặc điểm của Web Service

Những đặc điểm nổi bật của dịch vụ web:

  • Cho phép Web Service và Client tương tác được với nhau ngay cả trong những môi trường hoàn toàn khác nhau.
  • Có hiểu bất kỳ ngôn ngữ nào qua một ngôn ngữ trung gian là XML.
  • Hoạt động dựa trên 3 thành phần cơ bản: SOAP, WSDL và UDDI.
  • Có khả năng tự mô tả dữ liệu về giao diện, chức năng thông qua tài liệu WSDL.
  • Các giao thức về web được mô tả bằng việc xuất bản tài liệu WSDL, từ đó người dùng (Client) tìm kiếm, xác định dịch vụ web qua sự trợ giúp của UDDI và yêu cầu dịch vụ web qua SOAP.

IV. Các lợi ích mang lại từ Web Service

Một số lợi ích nổi bật mà Web Service mang lại cho doanh nghiệp cũng như người dùng:

  1. Sử dụng giao thức chuẩn hóa: Nhờ việc giao tiếp từ 4 lớp protocal stack được tách biệt trong quá trình sắp xếp các giao thức của Web Service, điều này mở ra cho doanh nghiệp nhiều lựa chọn, tối ưu chi phí cũng như chất lượng quảng cáo thương mại.
  2. Hiển thị giao diện và các chức năng có trên mạng: Do các tính năng trên ứng dụng, website,… được gọi từ xa bằng cách sử dụng HTTP và các dịch vụ web cho phép bạn có thể thấy và sử dụng được tính năng bạn muốn dùng trên ứng dụng.
  3. Giảm thiểu chi phí truyền thông: tiết kiệm một khoản chi phí bằng một đường truyền internet khiêm tốn so với các giải pháp khác như EDI hay B2B.
  4. Có khả năng tương tác giữa các ứng dụng: Như đã đề cập trong các phần trước, Web Service tạo điều thuận lợi cho phép các ứng dụng dù được thiết kế bằng các ngôn ngữ lập trình khác nhau cũng có thể giao tiếp và chia sẻ dữ liệu.

lợi ích của web servicelợi ích của web service

V. Ưu nhược điểm của Web Service

1. Ưu điểm của Web Service

  • Dễ dàng sử dụng truy cập ứng dụng qua giao thức HTTP ở bất kì nơi nào có mạng Internet.
  • Hỗ trợ tất cả các ứng dụng được lập trình từ nhiều ngôn ngữ khác nhau dựa trên ngôn ngữ giao tiếp chung với dịch vụ web là XML.
  • Giao thức tiêu chuẩn theo hệ thống hóa ngăn xếp giúp cho doanh nghiệp nhiều lựa chọn, giảm thiểu chi phí do tranh chấp và nâng cao chất lượng.
  • Có khả năng tái sử dụng khi một dịch vụ web được sinh ra để phục vụ việc xem hàng loạt ứng dụng của người dùng trong cùng một lúc.
  • Giảm thiểu chi phí Internet trong việc triển khai Web Service bằng cách sử dụng SOAP qua giao thức HTTP, từ đó có thể sử dụng dịch vụ web an toàn, hiệu quả và nhanh chóng.

2. Nhược điểm của Web Service

  • Hiệu suất tối ưu của dịch vụ web bị ảnh hưởng nhiều từ số lượng các ứng dụng hoạt động trong cùng một lúc.
  • Dễ bị lỗi hệ thống nếu Web Service không được cập nhật thường xuyên.
  • Quá nhiều tiêu chuẩn mở khi làm web, khiến cho lập trình viên website khó nắm bắt.
  • Phát sinh vấn đề liên quan đến an toàn và bảo mật thông tin của người dùng.

VI. Vấn đề bảo mật thường gặp ở Web Service

1. Confidentiality

Nếu người dùng (Client) gửi yêu cầu đến máy chủ (Server), thì liệu có thể đảm bảo thông tin họ muốn tìm kiếm được giữ tuyệt đối bí mật? Câu trả lời sẽ được giải đáp như sau:

  • XML-RPC (giao thức gọi thủ tục từ xa) và SOAP thường xuyên được truyền tải chủ yếu trên HTTP.
  • HTTPs có hỗ trợ tiêu chuẩn bảo mật và an toàn thông tin mạng – SSL.
  • Giao tiếp giữa Client và máy chủ có thể được mã hóa qua SSL.
  • SSL là một công nghệ đã được kiểm chứng và có ứng dụng rộng rãi.

Một dịch vụ web độc lập có thể bao gồm nhiều chuỗi ứng dụng. Lấy ví dụ từ một dịch vụ lớn có thể kết nối với các dịch vụ của 3 ứng dụng khác nhau và đã được xác định thông qua yêu cầu của Client từ trướ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 mạng dọc theo đường truyền dẫn dịch vụ web và mỗi nút mạng này sẽ đại diện cho một liên kết vô cùng yếu trong chuỗi.

Hiện tại vẫn chưa có giải pháp nào được đạt được sự đồng ý, thỏa thuận để giải quyết triệt để vấn đề này. Tuy nhiên, một giải pháp an ninh mạng là WC3 XML Encryption Standard, hứa hẹn sẽ là một phương án khả dĩ trong việc giải bài toán bảo mật thông tin giữa Client và Server. 

Lý giải thông tin trên là do tiêu chuẩn này cung cấp một khung lập trình dùng cho mục đích mã hóa giải mã toàn bộ tài liệu XML hoặc chỉ một số phần trong một tài liệu XML.

vấn đề bảo mật thông tinvấn đề bảo mật thông tin

2. Authentication

Vấn đề bảo mật thường gặp tiếp theo của Web Service là xác thực (Authentication). Hãy bắt đầu bằng việc đặt ra 2 câu hỏi cho vấn đề này:

  • Nếu người dùng kết nối với dịch vụ web, thì làm thế nào để phát hiện ra người dùng?
  • Người dùng được phép ủy quyền sử dụng dịch vụ hay không?

Mặc dù đây là vấn đề khá nghiêm trọng và rất khó xác định, nhưng vẫn sẽ có những phương án xử lý cụ thể:

  • HTTP: từ công nghệ xác thực người dùng bằng trình duyệt (Basic and Digest Authentication) mà các dịch vụ web có thể được bảo vệ như cái cách tài liệu HTML được bảo vệ ở thời điểm hiện tại.
  • SOAP Digital Signature (SOAP – DSIG): phương thức này được tận dụng mật mã hóa công khai (Public Key Cryptography) để làm ký hiệu điện tử cho các thông điệp SOAP, điều đó cho phép người dùng và máy chủ có thể xác thực danh tính của bên còn lại.
  • Tổ chức phi lợi nhuận, toàn cầu – OASIS (The Organization for the Advancement of Structured Information Standards) hiện đang là đơn vị nghiên cứu và phát triển ngôn ngữ bảo mật SAML.

tính xác thực trên web servicetính xác thực trên web service

>>> Xem thêm: HTML Là Gì? Thông Tin đầy đủ Về HTML Mà Bạn Cần Biết

3. Network Security

An ninh mạng là một vấn đề nan giải, chưa có hồi kết và luôn là chủ đề tranh luận muôn thuở. Bởi vì ngay cả ở thời điểm hiện tại, nếu bạn nào có ý định lọc ra các thông điệp SOAP hoặc các thông điệp XML – RPC, thì khả năng lọc ra tất cả HTTP Post được yêu cầu sẽ sắp xếp nội dung sẽ trở thành dạng văn bản (text)/ XML.

Một cách khác là chọn lọc ra thuộc tính của giao thức HTTP Header thông qua SOAP. Hơn nữa, các nhà cung cấp bức tường lửa (Firewall) cũng đang tạo ra những công cụ để lọc ra lưu lượng truy cập website.

vấn đề an ninh mạng trên dịch vụ webvấn đề an ninh mạng trên dịch vụ web

💡Giải thích thuật ngữ:

HTTP Header: là một phần của gói dữ liệu mạng được gửi từ trình duyệt (Browser) hoặc người dùng (Client) đến máy chủ (Server) để yêu cầu cho một trang web cụ thể hoặc dữ liệu trên máy chủ wesbsite.

VII. Lời kết

Trên đây là tất cả những nội dung giải đáp “web service là gì” và những khía cạnh khác liên quan về dịch vụ web mà Mua Bán muốn truyền tải đến bạn đọc. Nếu bài viết này hữu ích với bạn, thì đừng quên chia sẻ tới mọi người và theo dõi tiếp những bài viết giải thích thuật ngữ khác, kỹ năng việc làm IT,… trên Muaban.net!

>>> Xem thêm: