Одна из главных особенностей стандартов Internet заключается в том, что они сфокусированы на протоколах, а не на конкретных реализациях. Стандартизация протоколов позволяет самым различным технологиям, применяющимся в Internet, успешно взаимодействовать между собой, а самой сети Internet - оставаться открытой системой, не зависящей ни от одного отдельно взятого разработчика. Важнейшую роль в обеспечении совместимости различных реализаций стандартов играют разработчики программного обеспечения с открытым кодом.
При разработке Web-служб наиболее активно используются следующие стандарты: UDDI (Universal Description, Discovery and Integration, универсальный язык описания, поиска и интеграции), WSDL (Web Services Description Language, язык описания Web-служб), WSIL (Web Services Inspection Language, язык инспектирования Web-служб) и WS-I (Web Services Interoperability, стандарт взаимодействия Web-служб). Взаимосвязь между этими стандартами проиллюстрирована на рис. 2.
UDDI - это открытый и независимый от платформ стандарт публикации описаний Web-служб в глобальных реестрах, поиска Web-служб в этих реестрах и определения способов взаимодействия между службами в сети Internet. Дополнительные сведения о стандарте UDDI приведены на сайте www.uddi.org
Стандарт WSIL построен на основе XML. Он представляет собой модель распределенного поиска информации о службах в точках предложения поставщиков служб. Для организации такого поиска поставщики служб документируют способ поиска предоставляемых ими служб. В документах WSIL хранится информация о том, в каких областях сайта следует искать описания Web-служб. Поскольку в стандарте WSIL применяется механизм распределенного поиска, этот стандарт расширяет возможности UDDI, позволяя находить на сайтах информацию о службах, которых нет в реестре UDDI. Дополнительная информация о взаимодействии этих стандартов приведена в разделе Взаимосвязь UDDI и WSIL. Дополнительные сведения о стандарте WSIL можно найти на странице www.ibm.com/developerworks/webservices/library/ws-wsilspec.html.
Язык WSDL применяется для описания интерфейсов и экземпляров Web-служб на основе XML. Это расширяемый язык, позволяющий описывать службы как конечные точки обработки сообщений. Эти конечные точки не зависят от конкретных форматов сообщений и сетевых протоколов, применяемых для передачи данных. Документы WSDL позволяют разработчикам публиковать информацию о своих службах по протоколам UDDI и WSIL, а также путем массовой адресов служб в документы WSDL по электронной почте или через Internet. В этой документации языку WSDL посвящен отдельный раздел. Дополнительные сведения о языке WSDL можно найти на сайте www.w3.org/TR/wsdl.
Рисунок 2. Взаимосвязь между SOAP, UDDI, WSIL и WSDL.
Службы хранятся в поставщике служб, который обеспечивает доступ к ним по протоколам SOAP/HTTP и SOAP/JMS. Документы WSDL с описанием Web-служб хранятся на сервере поставщика служб или в специальном реестре. Ссылки на документы WSDL могут храниться как в реестре UDDI, так и в документах WSIL. Эти ссылки указывают на файлы WSDL с описаниями Web-служб.
В документах WS-I Simple SOAP Binding Profile и WS-I Attachments Profile изложены основные требования, предъявляемые к документам WSDL и потокам данных SOAP/HTTP для соответствия спецификациям WS-I. Средства проверки Web-служб на соответствие стандарту WS-I в настоящее время поддерживают профайлы WS-I Simple SOAP Binding Profile 1.0 и Attachment Profile 1.0. Для просмотра спецификаций откройте главную страницу сайта WS-I, перейдите в раздел Resources и выберите пункт Documentation: http://www.ws-i.org.
Инструменты для работы с Web-службами поддерживают следующие спецификации:
Технология или спецификация | Поддерживаемая версия |
---|---|
Транспортные протоколы | |
HTTP/HTTPS | 1.0 и 1.1 |
JMS | |
Сообщения | |
Спецификация SOAP | 1.1 |
Вложения SOAP | |
Описание | |
UDDI | 2.0 |
WSDL | 1.1 |
WSIL | 1.0 |
Защита | |
WS-Security | OASIS Standard 1.0 |
Взаимодействие | |
WS-I Basic Profile | 1.1.2 |
WS-I Simple SOAP Binding Profile | 1.0.3 |
WS-I Attachments Profile | 1.0 |
Прочие стандарты | |
JAX-RPC | 1.0 для J2EE 1.3, 1.1 для J2EE 1.4 |
JSR 109 | J2EE 1.3 |
JSR 921 | J2EE 1.4 |