Что такое веб-службы? Архитектура, Типы, Пример

Содержание:

Anonim

Что такое веб-сервис?

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

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

В этом руководстве по веб-сервисам вы изучите основы веб-сервисов:

  • Как работают веб-службы?
  • Зачем вам нужен веб-сервис?
  • Тип веб-службы
  • Преимущества веб-сервисов
  • Архитектура веб-сервисов
  • Характеристики веб-сервиса
  • Как работают веб-службы?

    Как работают веб-службы?

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

    Эти запросы выполняются посредством так называемых удаленных вызовов процедур. Удаленные вызовы процедур (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. - фактически описывает операцию, которая может быть выполнена веб-службой, которая в нашем случае называется Tutorial. Эта операция может занять 2 сообщения; одно - входное сообщение, а другое - выходное сообщение.
    3. - этот элемент содержит используемый протокол. Итак, в нашем случае мы определяем его для использования http ( http://schemas.xmlsoap.org/soap/http ). Мы также указываем другие детали для тела операции, такие как пространство имен и необходимость кодирования сообщения.

    Мы подробно обсудим "WDSL" в этом руководстве.

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

    UDDI - это стандарт для описания, публикации и обнаружения веб-служб, предоставляемых конкретным поставщиком услуг. Он предоставляет спецификацию, которая помогает размещать информацию о веб-сервисах.

    В предыдущем разделе мы обсудили WSDL и то, как он содержит информацию о том, что на самом деле делает веб-служба. Но как клиентское приложение может найти файл WSDL, чтобы понять различные операции, предлагаемые веб-службой? Итак, UDDI является ответом на это и предоставляет репозиторий, в котором могут размещаться файлы WSDL. Таким образом, клиентское приложение будет иметь полный доступ к UDDI, который действует как база данных, содержащая все файлы WSDL.

    Подобно тому, как в телефонном справочнике указываются имя, адрес и номер телефона конкретного человека, точно так же, как в реестре UDDI содержится соответствующая информация для веб-службы . Чтобы клиентское приложение знало, где его найти.

    Преимущества веб-сервисов

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

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

    1. Предоставление бизнес-функций в сети . Веб-служба - это единица управляемого кода, которая предоставляет определенные функции клиентским приложениям или конечным пользователям. Эта функция может быть вызвана по протоколу HTTP, что означает, что она также может быть вызвана через Интернет. В настоящее время все приложения размещены в Интернете, что делает назначение веб-сервисов более полезным. Это означает, что веб-сервис может находиться в любом месте в Интернете и обеспечивать необходимую функциональность по мере необходимости.

    2. Взаимодействие между приложениями - Web-сервисы позволяют различным приложениям взаимодействовать друг с другом и обмениваться данными и сервисами между собой. Все типы приложений могут общаться друг с другом. Таким образом, вместо написания определенного кода, который может быть понят только определенным приложениям, теперь вы можете написать общий код, который может быть понят для всех приложений.

    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 является его универсальный способ представления не только данных, но и сложных документов. Эти документы могут быть такими простыми, как представление текущего адреса, или сложными, как представление всей книги.