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

Mục lục:

Anonim

Dịch vụ Web là gì?

Dịch vụ web là một phương tiện được chuẩn hóa để truyền thông tin liên lạc giữa các ứng dụng máy khách và máy chủ trên 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 ứng dụng khách, dịch vụ này sẽ gọi dịch vụ web đó.

Trong hướng dẫn Dịch vụ Web này, bạn sẽ tìm hiểu những điều cơ bản về dịch vụ Web-

  • Cách hoạt động của WebServices?
  • Tại sao bạn cần một Dịch vụ Web?
  • Loại dịch vụ web
  • Dịch vụ Web Ưu điểm
  • Kiến trúc dịch vụ web
  • Đặc điểm dịch vụ web
  • Cách hoạt động của WebServices?

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

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

    Những yêu cầu này được thực hiện thông qua những gì được 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 tới các phương thức được lưu trữ bởi dịch vụ web 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. Giao diện người dùng hoặc lớp trình bày có thể bằng .Net hoặc Java nhưng một trong hai ngôn ngữ lập trình sẽ 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 mở rộng) là một bản sao của HTML và dễ hiểu là ngôn ngữ trung gian được nhiều ngôn ngữ lập trình hiểu.

    Vì vậy, khi các ứng dụng nói chuyện với nhau, chúng thực sự nói chuyện 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 để nói chuyện với nhau.

    Các dịch vụ web sử dụng một cái gì đó đượ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 bình thường. Dữ liệu được gửi từ dịch vụ web đến ứng dụng được gọi là thông báo 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 ngày nay 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 Java, một số ứng dụng khác trong .Net, trong khi một số ứng dụng khác trong 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ố loại giao tiếp để xảy ra giữa chúng. Vì chúng được xây dựng bằng các ngôn ngữ phát triển 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 thực sự 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 các ngôn ngữ lập trình khác nhau có khả năng giao tiếp với nhau.

    Loại dịch vụ web

    Chủ yếu có hai loại dịch vụ web.

    1. Dịch vụ web SOAP.
    2. RESTful các dịch vụ web.

    Để một dịch vụ web có đầy đủ chức năng, cần có một số thành phần nhất định. Các thành phần này cần phải có mặt bất kể ngôn ngữ phát triển nào được sử dụng để lập trình dịch vụ web.

    Chúng ta hãy xem xét các thành phần này chi tiết hơn.

    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 không phụ thuộc vào giao thông vận tải. SOAP dựa trên việc chuyển dữ liệu XML dưới dạng Thông báo SOAP. Mỗi thông báo có một cái gì đó được gọi là tài liệu XML. Chỉ cấu trúc của tài liệu XML tuân theo một mẫu cụ thể chứ không tuân theo nội dung. Phần tốt nhất của các dịch vụ Web và SOAP là tất cả đều được gửi qua HTTP, là giao thức web tiêu chuẩn.

    Đây là những gì một thông báo SOAP bao gồm

    • Mỗi tài liệu SOAP cần có một phần tử gốc được gọi là phần 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.
    • 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 nội dung sẽ chứa thông báo thực tế.

    Sơ đồ dưới đây cho thấy 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 hướng dẫn này.

    WSDL (ngôn ngữ mô tả dịch vụ web)

    Không thể sử dụng dịch vụ web nếu không tìm thấy nó . Khách hàng gọi dịch vụ web nên biết dịch vụ web thực sự nằm ở đâu.

    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 ra dịch vụ web phù hợp. Điều này được thực hiện với sự trợ giúp của WSDL, được gọi là ngôn ngữ mô tả các dịch vụ Web. 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 hoạt động như thế nào. Bằng cách sử dụng tài liệu WSDL, ứng dụng khách sẽ có thể hiểu vị trí của dịch vụ web và cách nó có thể được sử dụng.

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

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

    
    
    
    

    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 các dịch vụ web như sau:

    1. - Tham số thông báo 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 hoạt động được thực hiện bởi dịch vụ web. Vì vậy, trong các ví dụ về dịch vụ web ở trên, chúng ta có 2 thông báo có thể được trao đổi giữa dịch vụ web và ứng dụng khách, một là "TutorialRequest" và một là hoạt động "TutorialResponse". TutorialRequest chứa một phần tử được gọi là "TutorialID" thuộc loại chuỗi. Tương tự, hoạt động TutorialResponse chứa một phần tử được gọi là "TutorialName" cũng là một chuỗi kiểu.
    2. - Điều này thực sự mô tả hoạt động có thể được thực hiện bởi dịch vụ web, trong trường hợp của chúng tôi được gọi là Hướng dẫn. Thao tác này có thể nhận 2 tin nhắn; một là thông báo đầu vào và một là thông báo đầu ra.
    3. - Phần tử này chứa giao thức được sử dụng. Vì vậy, trong trường hợp của chúng tôi, chúng tôi đang xác định nó để sử dụng http ( http://schemas.xmlsoap.org/soap/http ). Chúng tôi cũng chỉ định các chi tiết khác cho nội dung của hoạt động, như không gian tên và liệu thông báo có nên được mã hóa hay không.

    Chúng tôi sẽ thảo luận chi tiết về "WDSL" trong hướng dẫn này.

    Mô tả chung, 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ề những gì dịch vụ Web thực sự hoạt động. Nhưng làm thế 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 điều này và cung cấp một kho lưu trữ 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ể, cơ quan đăng ký UDDI sẽ có thông tin liên quan cho dịch vụ web theo cách tương tự . Để một ứng dụng khách biết, nó có thể được tìm thấy ở đâu.

    Dịch vụ Web Ưu điểm

    Chúng tôi đã hiểu lý do tại sao dịch vụ web ra đời ngay từ đầu, đó là cung cấp một nền tảng có thể cho phép các ứng dụng khác nhau giao tiếp với nhau.

    Nhưng chúng ta hãy xem danh sách các ưu điểm của dịch vụ web để biết tại sao việc sử dụng dịch vụ web lại quan trọng.

    1. Thể hiện 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ố loại chức năng 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 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 có trên internet, điều này làm cho mục đích của các 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 kỳ đâu trên internet và cung cấp các chức năng cần thiết theo yêu cầu.

    2. Khả năng tương tác giữa các ứng dụng - Các dịch vụ web cho phép các ứng dụng khác nhau nói chuyện với nhau và chia sẻ dữ liệu và dịch vụ giữa chúng. Tất cả các loại ứng dụng có thể nói chuyện với nhau. Vì vậy, thay vì viết mã cụ thể mà chỉ có thể được hiểu bởi các ứng dụng cụ thể, bây giờ bạn có thể viết mã chung có thể được hiểu bởi tất cả các ứng dụng

    3. Một giao thức chuẩn hóa mà mọi người đều hiểu - Các dịch vụ web sử dụng giao thức công nghiệp được tiêu chuẩn hóa để giao tiếp. Tất cả bốn lớp (các lớp Truyền tải Dịch vụ, Nhắn tin XML, Mô tả Dịch vụ và Khám phá Dịch vụ) đều sử dụng các giao thức được xác định rõ trong ngăn xếp giao thức dịch vụ web.

    4. Giảm chi phí truyền thông - 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.

    Kiến trúc dịch vụ web

    Mọi khung công tác đều cần một số loại kiến ​​trúc để đảm bảo toàn bộ khung hoạt động như mong muốn, tương tự như vậy, trong các dịch vụ web. Các dịch vụ Kiến trúc Web bao gồm ba vai trò khác nhau như đưa ra dưới đây:

    1. Nhà cung cấp - Nhà cung cấp tạo dịch vụ web và cung cấp dịch vụ này cho ứ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 là gì khác ngoài ứng dụng khách cần liên hệ với một dịch vụ web. Ứng dụng khách có thể là .Net, Java hoặ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ố loại chức năng thông qua dịch vụ web.
    3. Người môi giới - Người môi giới không là gì ngoài ứng dụng cung cấp quyền truy cập vào UDDI. UDDI, như đã thảo luận trong chủ đề trước đó cho phép ứng dụng khách định vị dịch vụ web.

    Sơ đồ bên dưới trình bày cách nhà cung cấp Dịch vụ, người yêu cầu Dịch vụ và sổ đăng ký Dịch vụ tương tác với nhau.

    Kiến trúc dịch vụ web
    1. Xuất bản - Nhà cung cấp thông báo cho nhà môi giới (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 xuất bản của nhà môi giới để làm cho khách hàng có thể truy cập dịch vụ
    2. Tìm - Người yêu cầu tham khảo ý kiến ​​của nhà môi giới để tìm một dịch vụ web đã xuất bản
    3. Ràng buộc - Với thông tin thu được từ nhà môi giới (đăng ký dịch vụ) về dịch vụ web, người yêu cầu có thể liên kết hoặc gọi dịch vụ web.

    Đặc điểm 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ác lớp biểu diễn và vận chuyển dữ liệu. Sử dụng XML giúp loại bỏ bất kỳ loại phụ thuộc vào mạng, hệ điều hành hoặc nền tảng nào vì XML là ngôn ngữ chung mà tất cả mọi người đều hiểu.

    2. Kết hợp lỏng lẻo - Kết hợp 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, có nghĩa là ngay cả khi dịch vụ web thay đổi theo thời gian, nó sẽ không thay đổi cách khách hàng gọi dịch vụ web. Việc áp dụng kiến ​​trúc kết hợp 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. Chức năng đồng bộ hoặc không đồng bộ - Tính đồng bộ đề cập đến sự ràng buộc của máy khách với việc thực thi dịch vụ. Trong các hoạt động đồng bộ, máy khách sẽ thực sự đợi dịch vụ web hoàn thành một hoạt động. Một ví dụ về điều này có lẽ là một kịch bản trong đó thao tác đọ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 một cách tuần tự. 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 thi 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ẽ được ưa thích 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) - Các dịch vụ web cho phép khách hàng 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à một 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 thức 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. Những tài liệu này có thể đơn giản như đại diện cho một địa chỉ hiện tại hoặc chúng có thể phức tạp như đại diện cho toàn bộ cuốn sách.