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

Зміст:

Anonim

Що таке веб-служба?

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

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

У цьому посібнику з веб-служб ви дізнаєтесь основи веб-служб -

  • Як працюють WebServices?
  • Навіщо потрібна веб-служба?
  • Тип веб-служби
  • Переваги веб-сервісів
  • Архітектура веб-сервісу
  • Характеристики веб-сервісу
  • Як працюють WebServices?

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

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

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

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

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

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

    Веб-служби використовують щось, відоме як SOAP (Простий протокол доступу до об'єктів) для передачі даних 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 у цьому посібнику.

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

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

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

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

    Приклад веб-служб файлу WSDL наведено нижче.

    
    
    
    

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

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

    Ми детально обговоримо "WDSL" у цьому посібнику.

    Універсальний опис, виявлення та інтеграція (UDDI)

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

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

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

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

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

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

    1. Розкриття ділової функціональності в мережі - веб-служба - це одиниця керованого коду, яка надає певні функції для клієнтських програм або кінцевих користувачів. Цю функціональність можна викликати через протокол HTTP, що означає, що її можна також викликати через Інтернет. На сьогодні всі програми знаходяться в Інтернеті, що робить призначення веб-сервісів більш корисним. Це означає, що веб-служба може знаходитись де завгодно в Інтернеті та надавати необхідну функціональність за необхідності.

    2. Взаємодія між додатками - веб-служби дозволяють різним програмам спілкуватися між собою та обмінюватися даними та послугами між собою. Усі типи програм можуть спілкуватися між собою. Отже, замість того, щоб писати конкретний код, який може бути зрозумілим лише певним програмам, тепер ви можете написати загальний код, який зрозуміють всі програми

    3. Стандартизований протокол, який всі розуміють - веб-служби використовують стандартизований галузевий протокол для спілкування. Усі чотири шари (Service Transport, XML Messaging, Service Description і Service Discovery) використовують чітко визначені протоколи у стеку протоколів веб-служб.

    4. Зниження вартості зв'язку - веб-служби використовують SOAP через протокол HTTP, тому ви можете використовувати існуючий недорогий Інтернет для впровадження веб-сервісів.

    Архітектура веб-служб

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

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

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

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

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

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

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

    2. Слабко пов'язані - вільно пов'язані означає, що клієнт і веб-служба не пов'язані між собою, що означає, що навіть якщо веб-служба змінюється з часом, вона не повинна змінювати спосіб, як клієнт викликає веб-службу. Прийняття вільно пов'язаної архітектури, як правило, робить програмні системи більш керованими та дозволяє простішу інтеграцію між різними системами.

    3. Синхронна або асинхронна функціональність - Синхронність відноситься до прив’язки клієнта до виконання послуги. При синхронних операціях клієнт фактично буде чекати, поки веб-служба завершить операцію. Прикладом цього є, мабуть, сценарій, коли виконується операція зчитування та запису бази даних. Якщо дані зчитуються з однієї бази даних і згодом записуються в іншу, то операції повинні виконуватися послідовно. Асинхронні операції дозволяють клієнту викликати послугу, а потім паралельно виконувати інші функції. Це одна із поширених і, мабуть, найбільш вподобаних методик для забезпечення того, щоб інші послуги не зупинялися під час проведення певної операції.

    4. Можливість підтримки віддалених викликів процедур (RPC) - веб-служби дозволяють клієнтам викликати процедури, функції та методи на віддалених об'єктах за допомогою протоколу на основі XML. Віддалені процедури надають вхідні та вихідні параметри, які веб-служба повинна підтримувати.

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