Що таке веб-служби? Archiтектура, типи, приклад

Що таке веб-сервіс?

Веб-сервіс це стандартизоване середовище для поширення зв’язку між клієнтськими та серверними програмами у WWW (Всесвітній павутині). Веб-сервіс — це програмний модуль, призначений для виконання певного набору завдань.

  • Веб-сервіси в хмарних обчисленнях можна шукати в мережі, а також викликати відповідним чином.
  • Після виклику веб-служба зможе надати функціональні можливості клієнту, який викликає цю веб-службу.

Як працюють веб-сервіси?

Як працюють веб-сервіси
Як працюють веб-сервіси

Наведена вище діаграма показує дуже спрощену картину того, як насправді буде працювати веб-служба. Клієнт ініціював би серію викликів веб-сервісу через запити до сервера, на якому розміщувався б фактичний веб-сервіс.

Ці запити надсилаються за допомогою так званих віддалених викликів процедур. Виклики віддалених процедур (RPC) — це виклики методів, розміщених у відповідній веб-службі.

Як приклад, Amazon надає веб-сервіс, який надає ціни на продукти, що продаються онлайн через amazon.com. Інтерфейсний або презентаційний рівень може бути в .Net або Java але будь-яка мова програмування матиме можливість спілкуватися з веб-службою.

Основним компонентом дизайну веб-сервісу є дані, які передаються між клієнтом і сервером, тобто XML. XML (розширювана мова розмітки) є аналогом HTML і легкою для розуміння проміжною мовою, яку розуміють багато мов програмування.

Отже, коли програми спілкуються одна з одною, вони насправді спілкуються в XML. Це забезпечує спільну платформу для спілкування програм, розроблених на різних мовах програмування.

Веб-служби використовують протокол SOAP (Simple Object Access Protocol) для надсилання XML-даних між програмами. Дані надсилаються через звичайний HTTP. Дані, які надсилаються з веб-служби до програми, називаються повідомленням SOAP. Повідомлення SOAP — це не що інше, як документ XML. Оскільки документ написаний у форматі XML, клієнтська програма, що викликає веб-службу, може бути написана будь-якою мовою програмування.

Навіщо вам потрібна веб-служба?

Сучасні бізнес-додатки використовують різні платформи програмування для розробки веб-додатків. Деякі програми можуть бути розроблені в Java, інші в .Net, а деякі в Angular JS, Node.js тощо.

Найчастіше цим різнорідним програмам потрібен якийсь зв’язок між ними. Оскільки вони створені з використанням різних мов розробки, стає дуже важко забезпечити точний зв’язок між програмами.

Тут на допомогу приходять веб-сервіси. Веб-сервіси надають загальну платформу, яка дозволяє створювати кілька програм на різних платформах мови програмування мати вміння спілкуватися один з одним.

Тип веб-сервісу

Існує в основному два типи веб-сервісів.

  1. Веб-сервіси SOAP.
  2. Веб-сервіси RESTful.

Для повноцінної роботи веб-сервісу необхідно встановити певні компоненти. Ці компоненти мають бути присутніми незалежно від того, яка мова розробки використовується для програмування веб-сервісу.

Розглянемо ці компоненти докладніше.

SOAP (Простий протокол доступу до об’єктів)

SOAP відомий як незалежний від транспорту протокол обміну повідомленнями. SOAP базується на передачі XML-даних у вигляді повідомлень SOAP. Кожне повідомлення має те, що називається документом XML. Лише структура XML-документа відповідає певному шаблону, але не вміст. Найкраща частина веб-служб і SOAP полягає в тому, що вони надсилаються через HTTP, який є стандартним веб-протоколом.

Ось з чого складається повідомлення SOAP

  • Кожен документ SOAP повинен мати кореневий елемент, відомий як елемент. Кореневий елемент є першим елементом у документі XML.
  • «Конверт» в свою чергу ділиться на 2 частини. Перший – це заголовок, а наступний – тіло.
  • Заголовок містить дані маршрутизації, які в основному є інформацією, яка повідомляє XML-документу, якому клієнту його потрібно надіслати.
  • Тіло міститиме фактичне повідомлення.

На діаграмі нижче показаний простий приклад зв’язку через SOAP.

Протокол SOAP

Протокол SOAP

У цьому ми детально обговоримо SOAP підручник.

WSDL (мова опису веб-служб)

Веб-службою не можна користуватися, якщо її неможливо знайти. Клієнт, який викликає веб-службу, повинен знати, де веб-служба фактично знаходиться.

По-друге, клієнтська програма повинна знати, що насправді робить веб-служба, щоб вона могла викликати правильну веб-службу. Це робиться за допомогою WSDL, відомого як мова опису веб-сервісів. Файл WSDL знову є файлом на основі XML, який в основному повідомляє клієнтській програмі, що робить веб-служба. Використовуючи документ WSDL, клієнтська програма зможе зрозуміти, де знаходиться веб-служба та як її можна використовувати.

Приклад веб-сервісу

Нижче наведено приклад веб-служб файлу 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>

Важливі аспекти, на які слід звернути увагу щодо наведених вище прикладів декларацій WSDL веб-сервісів, такі:

  1. – Параметр повідомлення у визначенні WSDL використовується для визначення різних елементів даних для кожної операції, що виконується веб-службою. Отже, у наведених вище прикладах веб-сервісів ми маємо 2 повідомлення, якими можна обмінюватися між веб-сервісом і клієнтською програмою, одне — «TutorialRequest», а інше — операція «TutorialResponse». TutorialRequest містить елемент під назвою «TutorialID», який має тип string. Так само операція TutorialResponse містить елемент під назвою «TutorialName», який також є рядком типу.
  2. – Це насправді описує операцію, яку може виконувати веб-служба, яка в нашому випадку називається Навчальний посібник. Ця операція може зайняти 2 повідомлення; один є вхідним повідомленням, а інший є вихідним повідомленням.
  3. – Цей елемент містить протокол, який використовується. Отже, у нашому випадку ми визначаємо його для використання http (http://schemas.xmlsoap.org/soap/http). Ми також вказуємо інші деталі для тіла операції, як-от простір імен і те, чи потрібно кодувати повідомлення.

У цій статті ми детально обговоримо «WDSL». підручник.

Universal Descriptіон, відкриття та інтеграція (UDDI)

UDDI — це стандарт для опису, публікації та пошуку веб-служб, які надаються певним постачальником послуг. Він надає специфікацію, яка допомагає розміщувати інформацію у веб-службах.

У попередній темі ми обговорювали WSDL і те, як він містить інформацію про те, що насправді робить веб-служба. Але як клієнтська програма може знайти файл WSDL, щоб зрозуміти різні операції, які пропонує веб-служба? Тож UDDI є відповіддю на це питання та надає репозиторій, у якому можна розміщувати файли WSDL. Отже, клієнтська програма матиме повний доступ до UDDI, який діє як база даних, що містить усі файли WSDL.

Подібно до того, як телефонний довідник містить ім’я, адресу та номер телефону конкретної особи, так само реєстр UDDI матиме відповідну інформацію для веб-сервісу. Щоб клієнтська програма знала, де його можна знайти.

Переваги веб-сервісів

Ми вже розуміємо, чому взагалі виникли веб-сервіси, які мали забезпечити платформу, яка могла б дозволити різним програмам спілкуватися одна з одною.

Але давайте подивимося на список переваг веб-сервісів, щоб зрозуміти, чому важливо використовувати веб-сервіси.

  1. Розкриття бізнес-функціональності в мережі – Веб-служба – це одиниця керованого коду, яка надає певну функціональність клієнтським програмам або кінцевим користувачам. Ця функція може бути викликана через протокол HTTP, що означає, що її також можна викликати через Інтернет. Сьогодні всі програми знаходяться в Інтернеті, що робить призначення веб-служб більш корисним. Це означає, що веб-служба може бути будь-де в Інтернеті та забезпечувати необхідну функціональність за потреби.
  2. Взаємодія між програмами – Веб-сервіси дозволяють різним програмам спілкуватися один з одним і обмінюватися даними та послугами між собою. Усі типи програм можуть спілкуватися між собою. Тож замість того, щоб писати конкретний код, який можуть зрозуміти лише окремі програми, тепер ви можете написати загальний код, який можуть зрозуміти всі програми
  3. Стандартизований протокол, зрозумілий усім – Веб-сервіси використовують для зв’язку стандартизований галузевий протокол. Усі чотири рівні (транспортування служби, обмін повідомленнями XML, служба Description і Service Discovery) використовує чітко визначені протоколи в стеку протоколів веб-служб.
  4. Зниження вартості зв'язку – Веб-сервіси використовують протокол SOAP через HTTP, тому ви можете використовувати існуючий недорогий Інтернет для впровадження веб-сервісів.

Web-сервіси Archiтектура

Кожен фреймворк потребує певної архітектури, щоб переконатися, що весь фреймворк працює належним чином, подібно до веб-служб. The Web-сервіси Archiтектура складається з трьох окремих ролей, як зазначено нижче:

  1. Provider – Провайдер створює веб-сервіс і робить його доступним для клієнтської програми, яка хоче ним скористатися.
  2. Запитувач – Запитувач – це не що інше, як клієнтська програма, якій потрібно зв’язатися з веб-службою. Клієнтською програмою може бути .Net, Javaабо будь-яка інша мовна програма, яка шукає якусь функціональність через веб-службу.
  3. брокер – Брокер – це не що інше, як програма, яка надає доступ до UDDI. UDDI, як обговорювалося в попередній темі, дозволяє клієнтській програмі знаходити веб-службу.

На діаграмі нижче показано, як постачальник послуг, запитувач послуг і реєстр послуг взаємодіють один з одним.

Web-сервіси Archiтектура

Web-сервіси Archiтектура
  1. Публікувати – Провайдер інформує брокера (реєстр послуг) про існування веб-сервісу, використовуючи інтерфейс публікації брокера, щоб зробити сервіс доступним для клієнтів
  2. знайти – Запитувач консультується з брокером, щоб знайти опубліковану веб-службу
  3. Bind – За допомогою інформації, отриманої від брокера (реєстру послуг) про веб-службу, запитувач може прив’язати або викликати веб-службу.

Характеристики веб-сервісу

Веб-сервіси мають такі особливості поведінки:

  1. Вони засновані на XML – Веб-служби використовують XML для представлення даних на рівнях представлення та транспортування даних. Використання XML усуває будь-яку залежність від мережі, операційної системи чи платформи, оскільки XML є спільною мовою, зрозумілою всім.
  2. Слабко зчеплені – Слабко пов’язаний означає, що клієнт і веб-служба не пов’язані один з одним, що означає, що навіть якщо веб-служба змінюється з часом, це не повинно змінювати спосіб виклику клієнтом веб-служби. Прийняття слабозв’язаної архітектури робить програмні системи більш керованими та дозволяє простішу інтеграцію між різними системами.
  3. Synchronous або Asynchronous функціональність - Syncхронічність відноситься до прив'язки клієнта до виконання послуги. У синхронних операціях клієнт фактично чекатиме, поки веб-служба завершить операцію. Прикладом цього, ймовірно, є сценарій, у якому виконується операція читання та запису бази даних. Якщо дані зчитуються з однієї бази даних, а потім записуються в іншу, то операції повинні виконуватися послідовно. Асинхронні операції дозволяють клієнту викликати службу, а потім паралельно виконувати інші функції. Це один із поширених і, мабуть, найбільш бажаних методів для забезпечення того, щоб інші служби не зупинялися під час виконання певної операції.
  4. Можливість підтримки віддалених викликів процедур (RPC) – Веб-сервіси дозволяють клієнтам викликати процедури, функції та методи на віддалених об’єктах за допомогою протоколу на основі XML. Віддалені процедури надають вхідні та вихідні параметри, які має підтримувати веб-служба.
  5. Підтримує обмін документами – Однією з ключових переваг XML є його загальний спосіб представлення не лише даних, але й складних документів. Ці документи можуть бути такими ж простими, як поточна адреса, або такими ж складними, як ціла книга.

Підсумуйте цей пост за допомогою: