Веб-сервисы | Сетевые технологии

Опубликовано: 05.09.2018

видео Веб-сервисы | Сетевые технологии

Web сервисы введение. Пример из модуля 5

Что есть веб-сервис?

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



Веб-служба, веб-сервис (англ. web-service) — это сетевая технология, обеспечивающая межпрограммное взаимодействие на основе веб-стандартов. Консорциум W3C определяет веб-сервис, как «программную систему, разработанную для поддержки интероперабельного межкомпьютерного (machine-to-machine) взаимодействия через сеть»


Тестируем Веб-сервисы с помощью SoapUI

Веб-службы: концепции и протоколы

Веб-сервис идентифицируется строкой URI . Веб-сервис имеет программный интерфейс, представленный в машинно-обрабатываемом формате WSDL . Другие системы взаимодействуют с этим веб-сервисом путем обмена сообщениями протокола SOAP . В качестве транспорта для сообщений используется протокол HTTP . Описание веб-сервисов и их API могут быть найдены средствами UDDI . Концептуальная схема технологии приведена на рис. 1. , а связь между протоколами — на рис. 2.


XML веб-сервисы. SOAP и WSDL.

Рис. 1. Концепция веб-сервиса

SOAP (Simple Object Access Protocol) — протокол обмена сообщениями между потребителем и поставщиком веб-сервиса; WSDL (Web Services Description Language) — язык описания внешних интерфейсов веб-службы; UDDI (Universal Discovery, Description and Integration) — универсальный интерфейс распознавания, описания и интеграции, используемый для формирования каталога веб-сервисов и доступа к нему.

Рис. 2. Протоколы веб-сервисов

Все спецификации, используемые в технологии, основаны на XML и, соответственно, наследуют его преимущества (структурированность, гибкость и т.д.) и недостатки (громоздкость, медлительность).

SOAP

SOAP (изначально Simple Object Access Protocol, а в версии 1.2 официальная расшифровка аббревиатуры отсутствует) — простой протокол доступа к объектам (компонентам распределенной вычислительной системы), основанный на обмене структурированными сообщениями. Как любой текстовый протокол, SOAP может использоваться с любым протоколом прикладного уровня: SMTP, FTP, HTTPS и др., но чаще всего SOAP используется поверх HTTP.

Все сообщения SOAP оформляются в виде структуры, называемой конвертом (envelop), включающей следующие элементы:

Идентификатор сообщения (локальное имя). Опциональный элемент Header (заголовок): Ноль или более ссылок на используемые пространства имен; Ноль или более свойств, доступных в этом пространстве имен. Обязательный элемент Body (тело сообщения) Ноль или более ссылок на используемые пространства имен; Дочерние элементы тела сообщения

Развернутый список элементов сообщения SOAP приведен в схеме данных (для SOAP версии 1.2).

<env: Envelope xmlns:env=" http://www.w3.org/2003/05/soap-envelope "> <env: Header > <n:alertcontrol xmlns:n=" http://example.org/alertcontrol "> <n:priority>1</n:priority> <n:expires>2001-06-22T14:00:00-05:00</n:expires> </n:alertcontrol> </env: Header > <env: Body > <m:alert xmlns:m="http://example.org/alert"> <m:msg>Get up at 6:30 AM</m:msg> </m:alert> </env: Body > </env: Envelope >

XML-RPC: Не конкурент, а альтернатива SOAP

XML-RPC — очень простой и эффективный протокол взаимодействия веб-сервисов. Он не предназначен для решения глобальных задач, как SOAP, но широко используется во многих веб-разработках.

Концепция XML-RPC

XML-RPC — это "... спецификация и набор реализаций, которые позволяют программному обеспечению, работающему на разных операционных системах и в различных условиях, вызывать процедуры через Интернет. Это удаленный вызов процедуры с использованием HTTP как транспорта и XML как способа кодирования. XML-RPC разработан настолько простым, насколько это возможно для сложных структур данных, подлежащих передаче, обработке и приему". — [хmlrpc.com]

"Мы хотели, чистый, расширяемый и очень простой формат. Он должен представлять HTML-кодеру возможность заглянуть в файл, содержащий описание XML-RPC вызова, понять, что тот делает и быть в состоянии изменить его, чтоб он заработал с первой или второй попытки... Мы также хотели, чтобы это был легко реализуемый протокол, который может быть быстро адаптирован для работы в другой среде или на других операционных системах."- [xmlrpc.com]

WSDL

Язык описания веб-сервисов (Web services Description Language, WSDL) предназначен для унифицированного представления внешних интерфейсов веб-службы. Текущая версия протокола (на момент написания этой лекции) WSDL 2.0 и она имеет некоторые отличия от предыдущих версий (см. табл. 1 и рис. 3 ).

Элемент WSDL 1.1 Элемент WSDL 2.0 Краткое описание
PortType Interface Представляет описание интерфейса веб-сервиса (список операций и их параметров).
Service Service Список системных функций
Binding Binding Специфицирует интерфейсы и задает параметры связывания с протоколом SOAP: стиль связывания (RPC/Document) и транспорт (SOAP). Эта секция доступна и для каждой из операций
Operation Operation Определяет операцию, представляемую веб-сервером. WSDL-операция — это аналог традиционным функциям и процедурам.
Message не использ. Сообщение, связанное с определенной операцией. Содержит информацию, необходимую для выполнения данной операции. Каждое сообщение может состоять из нескольких логических частей, описывающих типы данных и имена атрибутов. В версии 2.0 было исключено, т.к. была внедрена поддержка XML Schema для всех элементов.
Types Types Описание данных в соответствии с XML Schema.

Рис. 3. Структура протокола WSDL

В спецификации WSDL 1.1 было определено 4 шаблона обмена сообщениями (типы операций):

Однонаправленные операции (One-way): операция может принимать сообщение, но не будет возвращать ответ. Запрос-ответ (Request-response): операция может принять запрос и должна вернуть ответ. Вопрос-ответ (Solicit-response): операция может послать запрос и будет ждать ответ на него. Извещение (Notification): операция может послать сообщение, но не будет ожидать ответ.

В версии WSDL 2.0 эти шаблоны изменены и расширены в сторону поддержки сообщений об ошибках (например, шаблон Robust-in-only), но для обратной совместимости поддерживаются типы WSDL 1.1

Пример описания веб-сервиса на языке WSDL (версия 2.0).

UDDI

Universal Description, Discovery and Integration (UDDI, универсальный интерфейс распознавания, описания и интеграции) — открытый стандарт, утвержденный OASIS , определяющий методы публикации и обнаружения сетевых программных компонентов сервис-ориентированной архитектуры ( SOA ). В практической реализации UDDI представляет собой сетевой реестр ( службу каталогов ), представляющий данные и метаданные о веб-сервисах и доступный по адресу http://uddi.xml.org/services .

UDDI опирается на отраслевые стандарты HTTP, XML, XML Schema (XSD), SOAP и WSDL. Концептуальная связь между UDDI и другими протоколами стека веб-сервисов показана на рисунке 4 .

Рис. 4. Место UDDI в стеке протоколов веб-служб

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

Ключевыми функциями UDDI являются публикация информации о службе в реестре и поиск этой информации сторонними приложениями. Наряду с этими, реализованы и типовые для службы каталогов функции: представление модели хранимых данных и структуры информационной базы, отношения между объектами реестра, репликация, обеспечение безопасности и т.д. —Все основные функции реестра представлены в виде веб-сервисов и доступны через API UDDI.

Веб-сервисы: Pro et Contra

Достоинства

Обеспечивают взаимодействие программных систем независимо от платформы. Основаны на базе открытых стандартов и протоколов. Использование HTTP позволяет приложениям взаимодействовать через межсетевой экран.

Недостатки

Меньшая производительность и больший объем сетевого трафика по сравнению с такими технологиями как CORBA или DCOM.

Постоянный адрес этой страницы:

IRC (Internet Relay Chat)
rss