Что такое веб-службы? Archiтектура, Типы, Пример
⚡ Умное резюме
Веб-сервисы предоставляют стандартизированную среду для взаимодействия клиентских и серверных приложений через Всемирную паутину. В этом ресурсе объясняется принцип работы веб-сервисов, их типы SOAP и RESTful, компоненты WSDL и UDDI, роли в архитектуре и ключевые характеристики.
Что такое веб-сервис?
веб-сервис представляет собой стандартизированную среду для распространения связи между клиентскими и серверными приложениями в WWW (Всемирной паутине). Веб-сервис — это программный модуль, предназначенный для выполнения определенного набора задач.
- Веб-сервисы в облачных вычислениях можно искать по сети и вызывать соответствующим образом.
- При вызове веб-служба сможет предоставить функциональность клиенту, который вызывает эту веб-службу.
Как работают веб-сервисы?
На приведенной выше диаграмме показано очень упрощенное представление о том, как на самом деле будет работать веб-сервис. Клиент будет вызывать серию вызовов веб-службы посредством запросов к серверу, на котором будет размещаться реальная веб-служба.
Эти запросы выполняются посредством так называемых удаленных вызовов процедур. Удаленные вызовы процедур (RPC) — это вызовы методов, размещенных в соответствующем веб-сервисе.
В качестве примера, Amazon предоставляет веб-сервис, который предоставляет цены на продукты, продаваемые онлайн через amazon.com. Интерфейс или уровень представления могут быть в .Net или JavaОднако любой из этих языков программирования сможет взаимодействовать с веб-сервисом.
Основным компонентом дизайна веб-сервиса являются данные, которые передаются между клиентом и сервером, и это XML. XML (расширяемый язык разметки) является аналогом HTML и простым для понимания языком среднего уровня, который понимают многие языки программирования.
Таким образом, когда приложения взаимодействуют друг с другом, они фактически обмениваются данными в формате XML. Это обеспечивает общую платформу для взаимодействия приложений, разработанных на разных языках программирования.
Веб-службы используют SOAP (простой протокол доступа к объектам) для отправки данных XML между приложениями. Данные передаются по обычному HTTP. Данные, которые отправляются из веб-службы в приложение, называются сообщением SOAP. Сообщение SOAP — это не что иное, как XML-документ. Поскольку документ написан в формате XML, клиентское приложение, вызывающее веб-сервис, может быть написано на любом языке программирования.
Зачем вам нужен веб-сервис?
Современные бизнес-приложения используют различные платформы программирования для разработки веб-приложений. Некоторые приложения могут быть разработаны на JavaОдни используют .Net, другие — Angular JS, Node.js и т. д.
Чаще всего этим разнородным приложениям требуется какой-либо обмен данными между ними. Поскольку они созданы с использованием разных языков программирования, обеспечить точную связь между приложениями становится крайне сложно.
Здесь на помощь приходят веб-сервисы. Веб-сервисы предоставляют общую платформу, которая позволяет создавать множество приложений на различных платформах. языки программирования иметь возможность общаться друг с другом.
Типы веб-сервисов
Существует два основных типа веб-сервисов:
- Веб-сервисы SOAP.
- Веб-сервисы RESTful.
Для полноценной работы веб-сервиса необходимы определенные компоненты. Эти компоненты должны присутствовать независимо от используемого языка программирования веб-сервиса. Рассмотрим эти компоненты подробнее.
SOAP (простой протокол доступа к объектам)
SOAP известен как протокол обмена сообщениями, не зависящий от типа транспортного протокола. SOAP основан на передаче XML-данных в виде SOAP-сообщений. Каждое сообщение содержит XML-документ. Только структура XML-документа соответствует определенному шаблону, но не его содержимое. Главное преимущество веб-сервисов и SOAP заключается в том, что все данные передаются по протоколу HTTP, который является стандартным веб-протоколом.
Вот из чего состоит SOAP-сообщение:
- Каждый документ SOAP должен иметь корневой элемент, известный как элемент. Корневой элемент — это первый элемент XML-документа.
- «Конверт» в свою очередь делится на 2 части. Первый — это заголовок, а следующий — тело.
- Заголовок содержит данные маршрутизации, которые, по сути, указывают XML-документу, какому клиенту его необходимо отправить.
- Тело будет содержать фактическое сообщение.
На диаграмме ниже показан простой пример связи через SOAP.
Мы подробно обсудим SOAP в этом учебник.
WSDL (Веб-службы DescriptЯзык ион)
Веб-сервис нельзя использовать, если его невозможно найти. Клиент, вызывающий веб-сервис, должен знать, где именно находится этот веб-сервис.
Во-вторых, клиентскому приложению необходимо знать, что именно делает веб-сервис, чтобы оно могло вызвать нужный веб-сервис. Это делается с помощью WSDL, известного как Web Services. DescriptЯзык программирования. Файл 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 веб-служб являются следующие:
- – Параметр message в определении WSDL используется для определения различных элементов данных для каждой операции, выполняемой веб-сервисом. Таким образом, в приведенном выше примере веб-сервиса у нас есть 2 сообщения, которыми можно обмениваться между веб-сервисом и клиентским приложением: одно — это «TutorialRequest», а другое — операция «TutorialResponse». Сообщение TutorialRequest содержит элемент с именем «TutorialID», который имеет тип string. Аналогично, операция TutorialResponse содержит элемент с именем «TutorialName», который также имеет тип string.
- – На самом деле это описывает операцию, которую может выполнить веб-сервис, который в нашем случае называется «Учебное пособие». Эта операция может принимать два сообщения: одно входное, а другое выходное.
- – Этот элемент содержит используемый протокол. В нашем случае мы определяем использование HTTP (http://schemas.xmlsoap.org/soap/http). Мы также указываем другие детали для тела операции, такие как пространство имен и необходимость кодирования сообщения.
В этой статье мы подробно обсудим «WSDL». учебник.
Universal Descriptион, обнаружение и интеграция (UDDI)
UDDI — это стандарт для описания, публикации и обнаружения веб-сервисов, предоставляемых конкретным поставщиком услуг. Он предоставляет спецификацию, которая помогает размещать информацию о веб-сервисах.
В предыдущем разделе мы обсуждали WSDL и то, как он содержит информацию о том, что на самом деле делает веб-служба. Но как клиентское приложение может найти файл WSDL, чтобы понять различные операции, предлагаемые веб-службой? Таким образом, UDDI является ответом на этот вопрос и предоставляет репозиторий, в котором могут размещаться файлы WSDL. Таким образом, клиентское приложение будет иметь полный доступ к UDDI, который действует как база данных, содержащая все файлы WSDL.
Подобно тому, как телефонный справочник содержит имя, адрес и номер телефона конкретного человека, реестр UDDI будет содержать необходимую информацию для веб-сервиса., чтобы клиентское приложение знало, где его можно найти.
Преимущества веб-сервисов
Мы уже понимаем, зачем вообще появились веб-сервисы: для создания платформы, позволяющей различным приложениям взаимодействовать друг с другом. Но давайте рассмотрим список преимуществ веб-сервисов и объясним, почему их использование важно.
- Раскрытие бизнес-функциональности в сети – Веб-сервис — это единица управляемого кода, предоставляющая клиентским приложениям или конечным пользователям определенную функциональность. Эта функциональность может быть вызвана по протоколу HTTP, что означает, что она также может быть вызвана через Интернет. В настоящее время все приложения находятся в Интернете, что делает назначение веб-сервисов еще более полезным. Это означает, что веб-сервис может находиться в любой точке Интернета и предоставлять необходимую функциональность по мере необходимости.
- Взаимодействие между приложениями – Веб-сервисы позволяют различным приложениям взаимодействовать друг с другом и обмениваться данными и услугами. Все типы приложений могут взаимодействовать друг с другом. Таким образом, вместо написания специфического кода, который может быть понят только определенными приложениями, теперь можно писать универсальный код, который будет понятен всем приложениям.
- Стандартизированный протокол, понятный каждому – Веб-сервисы используют стандартизированный отраслевой протокол для связи. Все четыре уровня (транспортный уровень сервиса, XML-сообщения, уровень сервиса) DescriptУровни ion и Service Discovery используют четко определенные протоколы в стеке протоколов веб-сервисов.
- Снижение стоимости связи – Веб-сервисы используют протокол SOAP поверх HTTP, поэтому вы можете использовать существующий недорогой Интернет для реализации веб-сервисов.
Web-сервисы Archiтекстура
Любой фреймворк нуждается в определенной архитектуре, чтобы обеспечить его корректную работу. Аналогично, в веб-сервисах... Web-сервисы Archiтекстура состоит из трех различных ролей, как указано ниже:
- Разработчик – Провайдер создает веб-сервис и предоставляет к нему доступ клиентским приложениям, которые хотят его использовать.
- Запрашивающий – Запрашивающая сторона – это не что иное, как клиентское приложение, которому необходимо связаться с веб-сервисом. Клиентское приложение может быть .Net, Javaили любое другое приложение, использующее тот или иной язык программирования, которое ищет какую-либо функциональность через веб-сервис.
- брокер – Брокером является не что иное, как приложение, предоставляющее доступ к UDDI. UDDI, как обсуждалось ранее, позволяет клиентскому приложению находить веб-сервис.
На приведенной ниже диаграмме показано взаимодействие между поставщиком услуг, запрашивающей стороной и реестром услуг.
- Опубликовать – Провайдер информирует брокера (реестр сервисов) о существовании веб-сервиса, используя интерфейс публикации брокера, чтобы сделать сервис доступным для клиентов.
- Найти – Заявитель обращается к брокеру для поиска опубликованного веб-сервиса.
- связующее вещество – Используя информацию о веб-сервисе, полученную от брокера (реестра сервисов), запрашивающая сторона может подключиться к веб-сервису или вызвать его.
Характеристики веб-сервиса
Веб-сервисы имеют следующие особые поведенческие характеристики:
- Они основаны на XML – Веб-сервисы используют XML для представления данных на уровнях представления и передачи данных. Использование XML устраняет любую зависимость от сети, операционной системы или платформы, поскольку XML является общим языком, понятным всем.
- Слабо связанный – Слабая связь означает, что клиент и веб-служба не связаны друг с другом, а это означает, что даже если веб-служба меняется со временем, это не должно менять способ вызова веб-службы клиентом. Принятие слабосвязанной архитектуры делает программные системы более управляемыми и упрощает интеграцию между различными системами.
- Syncхроническая или асинхронная функциональность – Syncхроничность относится к привязке клиента к выполнению сервиса. В синхронных операциях клиент фактически будет ждать, пока веб-сервис завершит операцию. Примером этого, вероятно, является сценарий, в котором выполняются операции чтения и записи базы данных. Если данные считываются из одной базы данных и затем записываются в другую, то операции должны выполняться последовательно. Асинхронные операции позволяют клиенту вызывать сервис, а затем выполнять другие функции параллельно. Это один из распространенных и, вероятно, наиболее предпочтительных методов обеспечения того, чтобы другие сервисы не останавливались при выполнении определенной операции.
- Возможность поддержки удаленных вызовов процедур (RPC). – Веб-службы позволяют клиентам вызывать процедуры, функции и методы удаленных объектов с использованием протокола на основе XML. Удаленные процедуры предоставляют входные и выходные параметры, которые должна поддерживать веб-служба.
- Поддерживает обмен документами – Одним из ключевых преимуществ XML является его универсальный способ представления не только данных, но и сложных документов. Эти документы могут быть такими же простыми, как текущий адрес, или такими сложными, как целая книга.




