Dịch vụ Web là gì? Archikiến trúc, các loại, ví dụ

⚡ Tóm tắt thông minh

Dịch vụ web cung cấp một phương tiện tiêu chuẩn hóa cho các ứng dụng máy khách và máy chủ giao tiếp trên mạng Internet toàn cầu. Tài liệu này giải thích cách thức hoạt động của dịch vụ web, các loại SOAP và RESTful, các thành phần WSDL và UDDI, vai trò kiến ​​trúc và các đặc điểm chính.

  • 🌐 Định nghĩa cốt lõi: Dịch vụ web là một mô-đun phần mềm độc lập thực hiện một nhiệm vụ xác định và giao tiếp giữa máy khách và máy chủ thông qua mạng internet.
  • 📨 Nhắn tin XML: Các dịch vụ web trao đổi dữ liệu dưới dạng XML, thường được đóng gói trong các thông điệp SOAP gửi qua giao thức HTTP chuẩn, do đó bất kỳ ngôn ngữ nào cũng có thể sử dụng chúng.
  • 🧱 Thành phần chính: Một dịch vụ web hoạt động hiệu quả dựa trên SOAP để truyền thông điệp, WSDL để mô tả dịch vụ và UDDI để công bố và tìm kiếm dịch vụ đó.
  • 👥 ArchiVai trò kiến ​​trúc: Kiến trúc này định nghĩa ba vai trò — Nhà cung cấp, Người yêu cầu và Người môi giới — chịu trách nhiệm công bố, tìm kiếm và liên kết các dịch vụ thông qua một hệ thống đăng ký.
  • ⚙️ Đặc điểm cốt lõi: Dịch vụ web dựa trên XML, có tính liên kết lỏng lẻo, hỗ trợ các cuộc gọi đồng bộ hoặc không đồng bộ, cho phép RPC (Remote ViewComputer Called Call) và trao đổi tài liệu phong phú.

Dịch vụ website Archikiến trúc

Dịch vụ Web là gì?

Dịch vụ web là một phương tiện được tiêu chuẩn hóa để truyền bá thông tin liên lạc giữa các ứng dụng máy khách và máy chủ trên WWW (World Wide Web). Dịch vụ web là một mô-đun phần mềm được thiết kế để thực hiện một số tác vụ nhất định.

  • Các dịch vụ web trong điện toán đám mây có thể được tìm kiếm qua mạng và cũng có thể được gọi tương ứng.
  • Khi được gọi, dịch vụ web sẽ có thể cung cấp chức năng cho máy khách để gọi dịch vụ web đó.

Dịch vụ web hoạt động như thế nào?

Cách thức hoạt động của dịch vụ web

Sơ đồ trên cho thấy một cái nhìn rất đơn giản về cách thức hoạt động thực sự của một dịch vụ web. Máy khách sẽ gọi một loạt lệnh gọi dịch vụ web thông qua các yêu cầu tới máy chủ sẽ lưu trữ dịch vụ web thực tế.

Các yêu cầu này được thực hiện thông qua cái gọi là các cuộc gọi thủ tục từ xa. Các cuộc gọi thủ tục từ xa (RPC) là các cuộc gọi được thực hiện đến các phương thức được lưu trữ bởi dịch vụ web có liên quan.

Ví dụ, Amazon cung cấp dịch vụ web cung cấp giá cho các sản phẩm được bán trực tuyến qua amazon.com. Lớp giao diện hoặc lớp trình bày có thể ở dạng .Net hoặc JavaTuy nhiên, cả hai ngôn ngữ lập trình đều có khả năng giao tiếp với dịch vụ web.

Thành phần chính của thiết kế dịch vụ web là dữ liệu được truyền giữa máy khách và máy chủ và đó là XML. XML (Ngôn ngữ đánh dấu có thể mở rộng) Nó là một ngôn ngữ tương đương với HTML và là một ngôn ngữ trung gian dễ hiểu, được nhiều ngôn ngữ lập trình khác nhau sử dụng.

Vì vậy, khi các ứng dụng giao tiếp với nhau, chúng thực chất giao tiếp bằng XML. Điều này cung cấp một nền tảng chung cho các ứng dụng được phát triển bằng nhiều ngôn ngữ lập trình khác nhau để có thể giao tiếp với nhau.

Các dịch vụ web sử dụng thứ được gọi là SOAP (Giao thức truy cập đối tượng đơn giản) để gửi dữ liệu XML giữa các ứng dụng. Dữ liệu được gửi qua HTTP thông thường. Dữ liệu được gửi từ dịch vụ web đến ứng dụng được gọi là tin nhắn SOAP. Thông báo SOAP không là gì ngoài một tài liệu XML. Vì tài liệu được viết bằng XML nên ứng dụng khách gọi dịch vụ web có thể được viết bằng bất kỳ ngôn ngữ lập trình nào.

Tại sao bạn cần một Dịch vụ Web?

Các ứng dụng kinh doanh hiện đại sử dụng nhiều nền tảng lập trình khác nhau để phát triển các ứng dụng dựa trên web. Một số ứng dụng có thể được phát triển bằng... JavaMột số sử dụng .Net, trong khi một số khác sử dụng Angular JS, Node.js, v.v.

Thông thường, các ứng dụng không đồng nhất này cần một số hình thức giao tiếp giữa chúng. Vì chúng được xây dựng bằng các ngôn ngữ lập trình khác nhau, nên việc đảm bảo giao tiếp chính xác giữa các ứng dụng trở nên rất khó khăn.

Đây là nơi các dịch vụ web xuất hiện. Các dịch vụ web cung cấp một nền tảng chung cho phép nhiều ứng dụng được xây dựng trên nhiều nền tảng khác nhau. ngôn ngữ lập trình có khả năng giao tiếp với nhau.

Các loại dịch vụ web

Về cơ bản có hai loại dịch vụ web:

  1. Dịch vụ web SOAP.
  2. Dịch vụ web RESTful.

Để một dịch vụ web hoạt động đầy đủ chức năng, cần phải có một số thành phần nhất định. Các thành phần này cần phải có bất kể ngôn ngữ lập trình nào được sử dụng để lập trình dịch vụ web đó. Chúng ta hãy cùng xem xét chi tiết hơn về các thành phần này.

SOAP (Giao thức truy cập đối tượng đơn giản)

SOAP được biết đến như một giao thức nhắn tin độc lập với phương tiện vận chuyển. SOAP dựa trên việc truyền dữ liệu XML dưới dạng các thông điệp SOAP. Mỗi thông điệp có một cấu trúc được gọi là tài liệu XML. Chỉ có cấu trúc của tài liệu XML tuân theo một mẫu cụ thể, chứ nội dung thì không. Ưu điểm lớn nhất của các dịch vụ web và SOAP là tất cả đều được gửi qua HTTP, giao thức web tiêu chuẩn.

Đây là cấu trúc của một thông điệp SOAP:

  • Mỗi tài liệu SOAP cần phải có một phần tử gốc được gọi là yếu tố. Phần tử gốc là phần tử đầu tiên trong tài liệu XML.
  • “Phong bì” lần lượt được chia thành 2 phần. Đầu tiên là tiêu đề và tiếp theo là nội dung.
  • Phần tiêu đề chứa dữ liệu định tuyến, về cơ bản là thông tin cho biết tài liệu XML cần được gửi đến máy khách nào.
  • Phần thân sẽ chứa thông điệp thực tế.

Sơ đồ bên dưới hiển thị một ví dụ đơn giản về giao tiếp qua SOAP.

Giao thức SOAP

Chúng ta sẽ thảo luận chi tiết về SOAP trong phần này hướng dẫn.

WSDL (Dịch vụ web DescriptNgôn ngữ ion)

Một dịch vụ web không thể sử dụng được nếu không tìm thấy nó. Máy khách gọi dịch vụ web cần biết vị trí thực sự của dịch vụ web đó.

Thứ hai, ứng dụng khách cần biết dịch vụ web thực sự làm gì để có thể gọi đúng dịch vụ web. Điều này được thực hiện nhờ WSDL, hay còn gọi là Dịch vụ Web. DescriptNgôn ngữ ion. Tệp WSDL lại là một tệp dựa trên XML, về cơ bản cho ứng dụng khách biết dịch vụ web làm gì. Bằng cách sử dụng tài liệu WSDL, ứng dụng khách có thể hiểu được dịch vụ web nằm ở đâu và cách sử dụng nó.

Ví dụ về dịch vụ web

Dưới đây là ví dụ về dịch vụ Web của tệp WSDL.

<definitions>
   <message name="TutorialRequest">
      <part name="TutorialID" type="xsd:string"/>
   </message>

   <message name="TutorialResponse">
      <part name="TutorialName" type="xsd:string"/>
   </message>

   <portType name="Tutorial_PortType">
      <operation name="Tutorial">
         <input message="tns:TutorialRequest"/>
         <output message="tns:TutorialResponse"/>
      </operation>
   </portType>

   <binding name="Tutorial_Binding" type="tns:Tutorial_PortType">
      <soap:binding style="rpc"
         transport="http://schemas.xmlsoap.org/soap/http"/>
      <operation name="Tutorial">
         <soap:operation soapAction="Tutorial"/>
         <input>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </input>

         <output>
            <soap:body
               encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
               namespace="urn:examples:Tutorialservice"
               use="encoded"/>
         </output>
      </operation>
   </binding>
</definitions>

Các khía cạnh quan trọng cần lưu ý về các ví dụ khai báo WSDL ở trên của dịch vụ web như sau:

  1. – Tham số `message` trong định nghĩa WSDL được sử dụng để xác định các phần tử dữ liệu khác nhau cho mỗi thao tác được thực hiện bởi dịch vụ web. Vì vậy, trong ví dụ về dịch vụ web ở trên, chúng ta có 2 thông điệp có thể được trao đổi giữa dịch vụ web và ứng dụng khách: một là "TutorialRequest", và thông điệp còn lại là thao tác "TutorialResponse". "TutorialRequest" chứa một phần tử có tên là "TutorialID" có kiểu dữ liệu chuỗi. Tương tự, thao tác "TutorialResponse" chứa một phần tử có tên là "TutorialName" cũng có kiểu dữ liệu chuỗi.
  2. – Phần này mô tả hoạt động mà dịch vụ web có thể thực hiện, trong trường hợp này được gọi là Tutorial. Hoạt động này có thể nhận 2 thông điệp: một là thông điệp đầu vào và một là thông điệp đầu ra.
  3. – Phần tử này chứa giao thức được sử dụng. Trong trường hợp này, chúng ta định nghĩa nó sử dụng HTTP (http://schemas.xmlsoap.org/soap/http). Chúng ta cũng chỉ định các chi tiết khác cho phần thân của thao tác, chẳng hạn như không gian tên và liệu thông điệp có nên được mã hóa hay không.

Chúng ta sẽ thảo luận chi tiết về “WSDL” trong phần này. hướng dẫn.

phổ cập Description, Khám phá và Tích hợp (UDDI)

UDDI là một tiêu chuẩn để mô tả, xuất bản và khám phá các dịch vụ web được cung cấp bởi một nhà cung cấp dịch vụ cụ thể. Nó cung cấp một đặc điểm kỹ thuật giúp lưu trữ thông tin trên các dịch vụ web.

Bây giờ chúng ta đã thảo luận trong chủ đề trước về WSDL và cách nó chứa thông tin về chức năng thực sự của dịch vụ Web. Nhưng làm cách nào một ứng dụng khách có thể định vị tệp WSDL để hiểu các hoạt động khác nhau được cung cấp bởi một dịch vụ web? Vì vậy, UDDI là câu trả lời cho vấn đề này và cung cấp một kho lưu trữ trên đó các tệp WSDL có thể được lưu trữ. Vì vậy, ứng dụng khách sẽ có toàn quyền truy cập vào UDDI, hoạt động như một cơ sở dữ liệu chứa tất cả các tệp WSDL.

Giống như danh bạ điện thoại có tên, địa chỉ và số điện thoại của một người cụ thể, hệ thống đăng ký UDDI cũng sẽ lưu trữ thông tin liên quan cho dịch vụ web.để ứng dụng khách biết nó được tìm thấy ở đâu.

Ưu điểm của dịch vụ web

Chúng ta đã hiểu lý do tại sao dịch vụ web ra đời, đó là để cung cấp một nền tảng cho phép các ứng dụng khác nhau giao tiếp với nhau. Nhưng hãy cùng xem danh sách các ưu điểm của dịch vụ web và tầm quan trọng của việc sử dụng dịch vụ web.

  1. Hiển thị chức năng kinh doanh trên mạng – Dịch vụ web là một đơn vị mã được quản lý, cung cấp một số chức năng nhất định cho các ứng dụng khách hoặc người dùng cuối. Chức năng này có thể được gọi thông qua giao thức HTTP, có nghĩa là nó cũng có thể được gọi qua internet. Ngày nay, tất cả các ứng dụng đều hoạt động trên internet, điều này làm cho mục đích của dịch vụ web trở nên hữu ích hơn. Điều đó có nghĩa là dịch vụ web có thể ở bất cứ đâu trên internet và cung cấp chức năng cần thiết khi được yêu cầu.
  2. Khả năng tương tác giữa các ứng dụng – Dịch vụ web cho phép các ứng dụng khác nhau giao tiếp với nhau và chia sẻ dữ liệu cũng như dịch vụ. Tất cả các loại ứng dụng đều có thể giao tiếp với nhau. Vì vậy, thay vì viết mã cụ thể chỉ có thể được hiểu bởi các ứng dụng cụ thể, giờ đây bạn có thể viết mã chung mà tất cả các ứng dụng đều có thể hiểu được.
  3. Một giao thức được tiêu chuẩn hóa mà mọi người đều hiểu – Các dịch vụ web sử dụng một giao thức tiêu chuẩn của ngành để liên lạc. Tất cả bốn lớp (Lớp vận chuyển dịch vụ, Lớp nhắn tin XML, Lớp dịch vụ) đều sử dụng giao thức này. DescriptCác lớp ion và Khám phá Dịch vụ (Service Discovery) sử dụng các giao thức được định nghĩa rõ ràng trong ngăn xếp giao thức dịch vụ web.
  4. Giảm chi phí liên lạc – Các dịch vụ web sử dụng SOAP qua giao thức HTTP, vì vậy bạn có thể sử dụng Internet chi phí thấp hiện có của mình để triển khai các dịch vụ web.

Dịch vụ website Archikiến trúc

Mỗi framework đều cần một loại kiến ​​trúc nào đó để đảm bảo toàn bộ framework hoạt động như mong muốn. Tương tự, trong dịch vụ web, Dịch vụ website Archikiến trúc Bao gồm ba vai trò khác nhau như được nêu dưới đây:

  1. Provider – Nhà cung cấp tạo ra dịch vụ web và cung cấp dịch vụ đó cho các ứng dụng khách muốn sử dụng.
  2. Người yêu cầu – Người yêu cầu không gì khác ngoài ứng dụng khách cần liên hệ với dịch vụ web. Ứng dụng khách có thể là .Net, Javahoặc bất kỳ ứng dụng dựa trên ngôn ngữ nào khác tìm kiếm một số chức năng thông qua dịch vụ web.
  3. Môi giới – Trình môi giới thực chất là ứng dụng cung cấp quyền truy cập vào UDDI. Như đã thảo luận ở phần trước, UDDI cho phép ứng dụng khách định vị dịch vụ web.

Sơ đồ dưới đây minh họa cách thức nhà cung cấp dịch vụ, người yêu cầu dịch vụ và cơ quan đăng ký dịch vụ tương tác với nhau.

Dịch vụ website Archikiến trúc

  1. Xuất bản – Nhà cung cấp thông báo cho bên trung gian (cơ quan đăng ký dịch vụ) về sự tồn tại của dịch vụ web bằng cách sử dụng giao diện công bố của bên trung gian để giúp dịch vụ có thể truy cập được bởi các khách hàng.
  2. Tìm kiếm – Người yêu cầu tham khảo ý kiến ​​của bên trung gian để tìm kiếm dịch vụ web đã được công bố.
  3. Trói buộc – Với thông tin thu được từ bộ điều phối (bộ đăng ký dịch vụ) về dịch vụ web, bên yêu cầu có thể liên kết, hay gọi, dịch vụ web đó.

Đặc điểm của dịch vụ web

Các dịch vụ web có các đặc điểm hành vi đặc biệt sau:

  1. Chúng dựa trên XML – Dịch vụ web sử dụng XML để biểu diễn dữ liệu ở cả lớp biểu diễn và lớp truyền tải dữ liệu. Việc sử dụng XML loại bỏ mọi sự phụ thuộc vào mạng, hệ điều hành hoặc nền tảng, vì XML là ngôn ngữ chung mà tất cả đều hiểu.
  2. Khớp nối lỏng lẻo – Kết nối lỏng lẻo có nghĩa là máy khách và dịch vụ web không bị ràng buộc với nhau, điều này có nghĩa là ngay cả khi dịch vụ web thay đổi theo thời gian, nó cũng không nên thay đổi cách máy khách gọi dịch vụ web. Việc áp dụng kiến ​​trúc kết nối lỏng lẻo có xu hướng làm cho các hệ thống phần mềm dễ quản lý hơn và cho phép tích hợp đơn giản hơn giữa các hệ thống khác nhau.
  3. Syncchức năng hronous hoặc Asynchronous – Synchronicity đề cập đến sự ràng buộc của máy khách với việc thực hiện dịch vụ. Trong các hoạt động đồng bộ, máy khách thực sự sẽ đợi dịch vụ web hoàn tất một hoạt động. Một ví dụ về điều này có lẽ là một kịch bản trong đó một hoạt động đọc và ghi cơ sở dữ liệu đang được thực hiện. Nếu dữ liệu được đọc từ một cơ sở dữ liệu và sau đó được ghi vào một cơ sở dữ liệu khác, thì các hoạt động phải được thực hiện theo cách tuần tự. Các hoạt động không đồng bộ cho phép máy khách gọi một dịch vụ và sau đó thực hiện các chức năng khác song song. Đây là một trong những kỹ thuật phổ biến và có lẽ là được ưa chuộng nhất để đảm bảo rằng các dịch vụ khác không bị dừng khi một hoạt động cụ thể đang được thực hiện.
  4. Khả năng hỗ trợ các cuộc gọi thủ tục từ xa (RPC) – Dịch vụ web cho phép máy khách gọi các thủ tục, hàm và phương thức trên các đối tượng từ xa bằng giao thức dựa trên XML. Các thủ tục từ xa hiển thị các tham số đầu vào và đầu ra mà dịch vụ web phải hỗ trợ.
  5. Hỗ trợ trao đổi tài liệu – Một trong những lợi ích chính của XML là cách chung của nó để biểu diễn không chỉ dữ liệu mà còn cả các tài liệu phức tạp. Các tài liệu này có thể đơn giản như biểu diễn địa chỉ hiện tại hoặc có thể phức tạp như biểu diễn toàn bộ một cuốn sách.

Câu Hỏi Thường Gặp

Các mô hình AI thường được cung cấp dưới dạng dịch vụ web, do đó các ứng dụng gửi dữ liệu qua HTTP và nhận dự đoán ở định dạng XML hoặc JSON. AI cũng có thể giám sát lưu lượng truy cập dịch vụ web, phát hiện các bất thường và tự động tạo mã phía máy khách, giúp quá trình tích hợp nhanh hơn và đáng tin cậy hơn.

Đúng vậy. Các công cụ AI có thể tạo ra các định nghĩa WSDL, đề xuất cấu trúc điểm cuối, tạo các trường hợp thử nghiệm và xác thực phản hồi SOAP hoặc REST. Tuy nhiên, các nhà phát triển vẫn nên xem xét lại kết quả đầu ra để đảm bảo tính nhất quán.tracCác quy tắc bảo mật và kiểm tra tính chính xác trước khi triển khai.

SOAP là một giao thức nhắn tin nghiêm ngặt, dựa trên XML, với các tiêu chuẩn tích hợp sẵn về bảo mật và giao dịch. REST là một kiểu kiến ​​trúc sử dụng các phương thức HTTP đơn giản và thường là JSON. SOAP phù hợp với các hệ thống doanh nghiệp chính thức, trong khi REST nhẹ hơn và phổ biến hơn cho các API web.

WSDL (Dịch vụ web DescriptWSDL (Ngôn ngữ ion) là một tệp XML mô tả chức năng của một dịch vụ web, vị trí của nó và cách gọi nó. Các ứng dụng khách đọc WSDL để hiểu các thao tác và định dạng thông báo khả dụng.

Tóm tắt bài viết này với: