|
Источник: CITFORUM.RU :: Море(!) аналитической информации!
Книга содержит описание новой и важной Интернет-технологии, которая активно завоевывает всеобщее признание, несмотря на то, что еще находится в стадии развития. Степень актуальности, достоверности и объективности информации, представленной в книге, очень высокая, поскольку книга написана членом нескольких рабочих групп консорциума W3C, занимающихся выработкой и утверждением новейших стандартов именно в этой области. Материал рассчитан на разработчиков программного обеспечения, связанных с технологиями распределенной обработки информации, и их руководителей.
Полное содержание
Вступление
Благодарности
Введение
- О веб-сервисах
Об этой книге
- Глава 1. Введение в веб-сервисы
- Глава 2. Описательная информация: XML
- Глава 3. Описание веб-сервисов: WSDL
- Глава 4. Доступ к веб-сервисам: SOAP
- Глава 5. Поиск веб-сервисов: UDDI
- Глава 6. Альтернативный подход: ebXML
- Глава 7. Дополнительные технологии
- Глава 8. Реализации веб-сервисов
- От издательства
Глава 1. Введение в веб-сервисы
- Основы веб-сервисов
Простой пример: поиск информации
Следующее поколение Сети
Взаимодействие с веб-сервисами
- RPC-ориентированные взаимодействия
- Документно-ориентированные взаимодействия
- Технология веб-сервисов
- Пример использования
- Основы XML
- WSDL: описание веб-сервисов
- SOAP: доступ к веб-сервисам
- UDDI: публикация и поиск веб-сервисов
- XML для сотрудничества предприятий: ebXML
Веб-сервисы и другие технологии
Дополнительные технологии
Производители обращаются к веб-сервисам
Резюме
Глава 2. Описательная информация: XML
- Простой пример
Экземпляр и схема
- Тип данных и язык программирования
- Еще о XML-схемах и DTD
- Обработка XML-документов
Пространства имен
Преобразования
- XSLT
- XPath
- Структура документа
- Средства отображения
- Простой пример (повтор)
- Спецификации и сведения о XML
- XML-спецификации, связанные с веб-сервисами
- Общая информация об XML
- Резюме
Глава 3. Описание веб-сервисов: WSDL
- Основы WSDL
Элементы WSDL
Структура расширяемого языка WSDL
- Определение типов данных сообщения
- Определение операций в сообщении
- Отображение сообщений на протоколы
- Складывая все вместе
- Импортирование WSDL-элементов
Пространства имен WSDL
Расширения для привязки к SOAP
Резюме
Глава 4. Доступ к веб-сервисам: SOAP
- Простой пример
Спецификация SOAP
- SOAP-конверт
- SOAP-заголовок
- Тело SOAP-сообщения
- Ошибки сообщений SOAP
- RPC-соглашение
- Отображение типов данных
- Привязка HTTP
- Контроль версий
- Обработка SOAP-сообщений
Использование пространств имен протоколом SOAP
Изменения в проекте v1.2
Многокомпонентные MIME-вложения SOAP
SOAP в контексте существующих систем
Направления развития SOAP
Резюме
Глава 5. Поиск веб-сервисов: UDDI
- Организация UDDI
Основные концепции UDDI
Принципы работы UDDI
- Модель данных UDDI
- Групповые данные
- Объект коммерческой деятельности
- Шаблон привязки
- Механизм tModel
- Программные интерфейсы SOAP для UDDI
- API запроса
- API публикации
- Сценарий использования
- Обновление реестра
- Извлечение информации
- Применение WSDL в UDDI
Локальные UDDI
Поддержка SOAP и Unicode в UDDI
- SOAP
- Unicode
- Резюме
Глава 6. Альтернативный подход: ebXML
- Общий обзор ebXML
- Простой пример
- Определение документов
- Развертывание ebXML
- Спецификации ebXML
- Общий обзор архитектуры
- Резюме
Глава 7. Дополнительные технологии
- Безопасность
- SAML
- XKMS
- WS-License и WS-Security
- Поток процесса
- XLANG
- WSFL
- Координация транзакций
- BTP
- Расширенные транзакции
- Передача сообщений
- WS-Inspection
- WS-Referral
- WS-Routing
- BEEP
- Надежный HTTP
- Фундаментальные основы веб-сервисов
- RosettaNet
- XML-RPC
- Резюме
Глава 8. Реализации веб-сервисов
- Архитектуры реализаций
Основные направления развития
- Microsoft .NET
- J2EE и серверы приложений
- Взгляд производителя серверов приложений
- Java API для веб-сервисов
- J2EE-инициативы для дополнительных технологий
- В чем заключается противостояние .NET и J2EE?
- Мнения производителей
- Анкета
- BEA Systems
- Cape Clear
- Hewlett-Packard
- IBM
- IONA
- Microsoft
- Oracle
- Sun Microsystems
- Systinet
- Другие
- Реализации ebXML
Резюме
Алфавитный указатель
Глава 1. Введение в веб-сервисы
Веб-сервисы меняют все! Точно так же, как железнодорожные
перевозки влияют на экономику страны, так и веб-сервисы коренным образом
изменяют правила электронной коммерции. Передавая большой объем данных
более эффективно и дешевле, чем ранее, они обеспечивают связь между
приложениями, выполняемыми в любых удаленных точках земного шара. В
результате между предпринимателями и потребителями устанавливается
быстрая, удобная и продуктивная связь.
Прежде взаимодействие в Сети поддерживалось на уровне
передачи текстовой и графической информации. Сегодня люди ежедневно
используют Интернет для просмотра биржевых котировок, приобретения
потребительских товаров и чтения свежих новостей. И зачастую этого уровня
взаимодействия вполне достаточно. Но основанная на передаче только
текстовой информации Сеть не обеспечивает должного взаимодействия
программ, особенно при пересылке большого объема информации. Требуется
более действенный способ кооперации приложений, использующий
автоматическое выполнение команд, которые ранее необходимо было вводить в
браузере вручную.
Сеть в ее современном состоянии плохо поддерживает
программно-ориентированное взаимодействие. Частным лицам и компаниям,
занимающимся коммерцией с использованием сети Интернет, необходим способ
публикации ссылок на их приложения и данные, практически такой же, как при
публикации ссылок на их веб-страницы. Интернет-приложения должны иметь
возможность находить другие интернет-приложения, обращаться к ним и
автоматически взаимодействовать с ними. Обеспечивая "общение" между
программами, веб-сервисы расширяют возможности Интернета. За счет
поддержки веб-сервисов размещенные в различных узлах Интернета приложения
могут взаимодействовать непосредственно, как будто они являются частью
одной крупной информационной системы.
Основы веб-сервисов
Веб-сервисы преобразуют XML-документы (Extensible Markup
Language, XML) в ИТ-системах. Веб-сервисы - это XML-приложения,
осуществляющие связывание данных с программами, объектами, базами данных
либо с деловыми операциями целиком. Между веб-сервисом и программой
осуществляется обмен XML-документами, оформленными в виде сообщений.
Стандарты веб-сервисов определяют формат таких сообщений, интерфейс,
которому передается сообщение, правила привязки содержания сообщения к
реализующему сервис приложению и обратно, а также механизмы публикации и
поиска интерфейсов.
Веб-сервисы могут использоваться во многих приложениях.
Независимо от того, откуда запускаются веб-сервисы, с настольных
компьютеров клиентов или с переносных, они могут использоваться для
обращения к таким интернет-приложениям, как система предварительных
заказов или контроля выполнения заказов. Веб-сервисы пригодны для
В2В-интеграции (business-to-business), замыкая приложения, выполняемые
различными организациями, в один производственный процесс. Веб-сервисы
также могут решать более широкую проблему интеграции приложений
предприятия (Enterprise Application Integration, EAI), осуществляя связь
нескольких приложений одного предприятия с несколькими другими
приложениями, размещенными как "до", так и "после" брандмауэра. Во всех
перечисленных случаях технологии веб-сервисов являются "связующим звеном",
объединяющим различные части программного обеспечения.
Как видно из рис. 1.1, веб-сервисы представляют собой
оболочку, обеспечивающую стандартный способ взаимодействия с прикладными
программными средами, такими как системы управления базами данных (СУБД),
.NET, J2EE (Java2 Platform, Enterprise Edition), CORBA (Common Object
Request Broker Architecture), посредники пакетов планирования ресурсов
предприятия (Enterprise Resource Planning, ERP), брокеров интеграции и пр.
Рис. 1.1. Веб-сервисы взаимодействуют с прикладными
системами
Интерфейсы веб-сервисов получают из сетевой среды
стандартные XML-сообщения, преобразуют XML-данные в формат, "понимаемый"
конкретной прикладной программной системой, и отправляют ответное
сообщение (последнее - не обязательно). Программная реализация
веб-сервисов (базовое программное обеспечение, нижний уровень) может быть
создана на любом языке программирования с использованием любой
операционной системы и любого связующего программного обеспечения
(middleware).
Веб-сервисы объединяют программирование и концепции Сети.
Веб-сервисы сочетают параметры программных приложений и абстрактные
характеристики Сети. Современные интернет-технологии частично достигают
своих целей, поскольку они определены на очень высоком отвлеченном уровне,
что обеспечивает совместимость с любой операционной системой, любым
программным и аппаратным обеспечением. Инфраструктура, основанная на
применении веб-сервисов, пользуется этим уровнем абстракции и включает в
себя связанную с данными семантическую информацию, то есть веб-сервисы
определяют не только данные, но и порядок обработки и преобразования этих
данных в базовые программные приложения и обратно.
Простой пример: поиск информации
В настоящее время большинство сервисов вызываются по Сети
посредством ввода данных в HTML-формы и отправки этих данных сервису путем
добавления их в строку унифицированного указателя информационного ресурса
(Uniform Resource Locator, URL):
http://www.google.com/search?q=Skate+boots&btnG=Google+Search
Этот пример иллюстрирует простоту веб-взаимодействия
(например, поиска, покупки акций или запроса маршрута движения), где
параметры и ключевые слова внедряются непосредственно в URL. В данном
случае представлен простой запрос поиска skate boots (ботинки с коньками)
в строке обращения к поисковой машине Google. Ключевое слово search
(искать) представляет сервис, к которому будет осуществлено обращение, а
параметр Skate+boots является строкой поиска, которая была введена в
HTML-форме на странице веб-сайта Google. Сервис поиска Google передаст
этот запрос к различным поисковым машинам, которые вернут список URL для
страниц, на которых имеется соответствие параметру поиска Skate+boots.
Данный малоэффективный способ поиска в Сети полностью основан на
установлении соответствия указанной текстовой строки и индексированных
HTML-страниц.
XML - лучший способ отправки данных. XML предоставляет
значительные преимущества при передаче данных через Интернет. Теперь
предыдущий запрос можно представить в виде XML-документа: <SOAP-ENV:Body>
<s:SearchRequest
xmlns:s="www.xmlbus.com/SearchService">
<pl>Skate</pl>
<p2>boots</p2>
<p3>size 7.5</p3>
</s:SearchRequest>
</SOAP-ENV:Body>
Отправка запроса в виде XML-документа имеет следующие
преимущества: возможность определения типов данных и структур, большую
гибкость и расширяемость. XML может представлять структурированные данные
или данные определенного типа (например, допустимо указывать значение поля
size (размер) как в виде строки цифр, так и в форме числа с плавающей
точкой) и содержать больший объем информации, чем это допускает URL.
Данный пример представлен в форме SOAP-сообщения (Simple
Object Access Protocol) - стандартной формы обмена XML-сообщениями - одной
из технологий, лежащих в основе веб-сервисов (более подробно этот вопрос
рассмотрен в главе 4). В SOAP-сообщении имя запрашиваемого сервиса и
входные параметры представлены в виде отдельных XML-элементов.
Рассматриваемый пример также иллюстрирует использование пространства имен
XML (xmlns:), еще одного важного элемента веб-сервисов (см. главу 2).
Благодаря тому, что XML-документы поддерживают разные типы данных, сложные
структуры и объединение схем, современные технологии веб-сервисов
обеспечивают значительное преимущество над существующими возможностями
обращения к программным приложениям посредством HTML и URL.
Следующее поколение Сети
Следующее поколение Сети будет основано на
программно-ориентированных взаимодействиях. Веб-сервисы предполагают
использовать созданные для взаимодействия людей глобальные сети совершенно
в иных целях. Программно-ориентированные взаимодействия будут
автоматически выполнять операции, которые ранее обязательно требовали
"ручного" вмешательства:
поиск и покупка товаров и услуг по самой выгодной цене;
согласование заказов авиабилетов и мест в ресторане на определенную
дату (планирование путешествий);
оптимизация коммерческих операций закупки товаров, выписки счетов и
доставки.
Следующее поколение Сети будет использовать
программно-ориентированные сервисы для непосредственного взаимодействия с
приложениями, построенными на основе любой комбинации объектов, программ и
баз данных.
Веб-сервисы являются не только интерфейсом объектов,
программ, связующего программного обеспечения и баз данных для доступа по
Сети. Объединение ряда веб-сервисов позволяет осуществлять новые типы
взаимодействия.
Веб-сервисы предоставляют новые варианты взаимодействия.
Представим, например, что вы живете в Сан-Франциско и желаете
зарезервировать столик в любимом парижском ресторане, а затем составить
план путешествия, позволяющий оказаться там в необходимое время. В
настоящее время для осуществления заказа необходимо непосредственно
позвонить в ресторан, учитывая 9-часовую разницу во времени и различия в
языке, а затем связаться с агентом бюро путешествий и подобрать подходящий
рейс и гостиницу. Однако, используя веб-сервисы, можно спланировать обед с
помощью календаря карманного компьютера (Personal Digital Assistant, PDA),
а для автоматического резервирования столика на определенное время просто
щелкнуть на кнопке. После выполнения резервирования веб-сервис запустит
другие сервисы, которые забронируют наиболее дешевые авиабилеты и закажут
номер в самом ближайшем четырехзвездочном отеле.
На рис. 1.2 представлен порядок осуществления
взаимодействия веб-сервисов с карманным компьютером, подключенным по
беспроводному каналу к процессору веб-сервисов, который для заказа столика
в любимом ресторане использует веб-сервис этого ресторана. Процессор
веб-сервисов получает запросы от функции "календарь" карманного компьютера
и находит веб-сервисы, связанные с расширенной функцией календаря, такой
как заказ столика. Для завершения планирования путешествия после успешного
резервирования места в ресторане процессор веб-сервисов контактирует с
веб-сервисами бронирования авиабилетов и номеров в гостиницах.
Рис. 1.2. Приложения могут использовать веб-сервисы для
резервирования места в ресторане и бронирования авиабилетов и номеров
в гостиницах
Веб-сервисы способны находить другие сервисы и
взаимодействовать с ними. Веб-сервисы также полезны при поиске и
осуществлении взаимодействия с сайтами, являющимися интерактивными
системами заказов, например с системой продаж модных коньковых ботинок с
выдвигающимися лезвиями - такими, которые использовали Бэтмен и Робин в
фильме Batman and Robin.
Розничные продавцы спортивных товаров, заинтересованные в
создании запасов таких ботинок, могут использовать веб-сервисы для
размещения предварительных заказов, для проверки состояния выполнения
заказа или размещения заказов сезонного возобновления запасов. Они также
получат немедленный ответ при отсутствии коньков на складе. "Строительные"
блоки веб-сервиса предоставляют стандартные компоненты конкретного
приложения для компании Skateboots Company, которая не настолько велика,
чтобы содержать свою собственную инфраструктуру приложений.
Компания-владелец веб-сервиса также обеспечивает безопасность, гарантируя
получение заказов компанией Skateboots Company только от уполномоченных
оптовых покупателей, и предлагает сервисы проверки полномочий для крупных
предварительных заказов. Другие компании помогут Skateboots Company
создать электронный каталог и выполнить расчеты.
Целиком реализованная как веб-сервис система ввода
заказов компании Skateboots зависит от Интернета, но необходимая
функциональность обеспечивается за счет совместной работы ряда других
веб-сервисов. На рис. 1.3 продемонстрировано, как веб-сервисы могут
изменить способ построения и использования коммерческого приложения.
Заинтересованный в закупке коньков оптовый покупатель вводит запрос с
помощью собственной локальной системы управления складскими запасами,
доступной компьютерам магазинов как веб-сервис. Локальная система
управления складскими запасами контактирует через Интернет с веб-сервисом
производителя и посылает ему заказ на определенное число коньков,
основываясь на объеме имеющихся складских помещений и учитывая наиболее
ходовые размеры ботинок.
Рис. 1.3. Служба ввода заказов Skateboots Company
содержит несколько других веб-сервисов
Система ввода заказов компании Skateboots Company состоит
из нескольких сервисов, включая специальную часть, которая отвечает
уникальным аспектам ее продукции, и несколько торговых компонентов,
выполняющих стандартные функции, например проверку полномочий
пользователя, проверку кредитоспособности и отслеживание счета. Все эти
сервисы предоставляются другими компаниями, специализирующимися на
оказании таких услуг через Интернет.
Создание использующих веб-сервисы коммерческих приложений
влечет за собой необходимость установления между этими сервисами
соответствующих взаимоотношений, что реализуется с помощью любой
комбинации языков программирования, операционных систем, пакетов программ,
размещенных "до" или "после" брандмауэра. (Это также является способом
решения сложных EAI-проблем.) Установление необходимых отношений (или
потока управления) связанных веб-сервисов также приводит к автоматизации
соответствующих бизнес-процессов и процедур.
Использование веб-сервисов очень выгодно с коммерческой
точки зрения. За счет повсеместного распространения веб-сервисов Интернет
становится более эффективным, особенно при осуществлении коммерческих
сделок. Сочетая прямой доступ к программным приложениям и коммерческим
документам, веб-сервисы следующего поколения Сети обеспечат полностью
автоматическое взаимодействие, что позволит обращаться непосредственно к
данным программ, игнорируя знакомые веб-страницы. Более того, основные
компоненты веб-сервисов, скорее всего, будут предоставляться и
публиковаться множеством различных компаний, специализирующихся на
отдельных функциональных элементах (проверка полномочий, координация
сделок, ведение счетов). Это обеспечит непосредственное взаимодействие
"приложение-приложение" - принцип, лежащий в основе веб-сервисов и
определяющий их суть и реализацию.
ОБЩЕЕ ВЗАИМОПОНИМАНИЕ
Технология веб-сервисов существует на очень высоком
уровне абстракции, позволяя поддерживать множество одновременных
определений, которые иногда бывают противоречивы. На простейшем уровне
веб-сервисы могут восприниматься как интернет-ориентированные текстовые
брокеры интеграции. Любые данные могут преобразовываться в ASCII-текст и
обратно, и этот подход в течение долгого времени был общим знаменателем
для систем графического вывода и систем управления базами данных. Как
говорится, "если ничего не получается - преобразуй данные в текстовую
форму". Ориентированные на использование текста системы также лежат в
основе успешного развития Интернета, на котором базируется дополнительная
абстракция веб-сервисов. Любой компьютер или операционная система может
поддерживать HTML, браузеры и веб-сервисы; и при получении по сети файлов
им совершенно безразлично и даже неизвестно, с каким типом прикладной
системы они взаимодействуют.
То же самое можно сказать и о веб-сервисах, которые
зачастую вызывают замешательство, когда разработчики традиционного,
устоявшегося компьютерного окружения пытаются воспринимать веб-сервисы как
отдельный тип распределенной программной среды, такой как CORBA, J2EE или
.NET. Поскольку веб-сервисы гораздо более абстрактны - как посредники
(преобразователи), а не как интерфейсы - так и будет продолжаться, пока
они не будут приведены в соответствие с общими описаниями и соглашениями.
Взаимодействие с веб-сервисами
Веб-сервисы поддерживают несколько парадигм обмена
сообщениями. Уровень абстракции, на котором оперируют веб-сервисы,
подразумевает такие стили взаимодействия, как эмуляцию удаленного вызова
процедуры (Remote Procedure Call, RPC), асинхронный обмен сообщениями,
однонаправленную передачу сообщений, широковещание и публикацию/подписку.
Основные СУБД, такие как Oracle, SQL Server и DB2, поддерживают анализ XML
и службы преобразования, обеспечивая непосредственное взаимодействие между
веб-сервисами и СУБД. Производители связующего программного обеспечения
обычно также предоставляют возможность привязки веб-сервисов к своим
программным системам (серверам приложений и брокерам интеграции).
Следовательно, для пользователя взаимодействие с веб-сервисами может
проявляться в интерактивной или пакетной форме, поддерживающей синхронную
и асинхронную модели связи; а также как пользовательский интерфейс,
написанный с использованием Java, VB (Visual Basic), офисных приложений,
браузеров или "толстых" клиентов СУБД. Такое взаимодействие может
привязываться к любому типу базовой (более низкого уровня) программной
системы.
Веб-сервисы выполняют RPC- и документно-ориентированное
взаимодействия. Стандарты и технологии веб-сервисов обычно подразумевают
два основных типа моделей взаимодействия приложений:
удаленный вызов процедуры (онлайновая);
документно-ориентированный (пакетная).
Эти два типа взаимодействия мы и рассмотрим в последующих
разделах.
RPC-ориентированные взаимодействия
RPC-ориентированные взаимодействия удобны для краткого
обмена данными. В RPC-ориентированном взаимодействии запросы веб-сервисов
приобретают форму вызова метода или процедуры с соответствующими входными
или выходными параметрами. В отличие от документно-ориентированного
взаимодействия, RPC-ориентированное взаимодействие производит отправку
документа, специально отформатированного для передачи в отдельную
логическую программу или базу данных (рис. 1.4). Поскольку, например,
заказ коньков в режиме реального времени зависит от их наличия на складе,
программа обращается к базе данных с проверкой наличия заказываемого
товара. Если получено подтверждение, то программа вернет заказчику
XML-документ в формате "запрос/ответ", сообщающий о принятии заказа с его
последующим исполнением.
Если поставка невозможна, будет получено сообщение об
отсрочке выполнения заказа или о полном отказе от его выполнения. В
отличие от документно-ориентированного стиля взаимодействия, запрос и
ответ моделируются как синхронные сообщения, то есть приложение,
посылающее сообщение, ждет реакции на него.
Рис. 1.4. Веб-сервисы поддерживают интерактивный
заказ в форме запроса/ответа
Документно-ориентированные взаимодействия
Документно-ориентированные взаимодействия удобны для
обмена большими объемами данных. При документно-ориентированном
взаимодействии запросы веб-сервиса имеют форму завершенного XML-документа,
предназначенного для обработки целиком. Например, веб-сервис, который
представляет заказ на поставку (оптовый предварительный заказ на поставку
коньков), должен сразу предъявлять производителю полную форму заказа (рис.
1.5). Это напоминает помещение сообщения в очередь для асинхронной
обработки. Производитель обычно по электронной почте либо в какой-либо
иной форме высылает заказчику подтверждение, свидетельствующее о том, что
заказ принят и будет выполнен в соответствии с предопределенной
последовательностью выполнения бизнес-процесса. Последовательность
выполнения может содержать такие этапы, как проверка в базе данных
предыдущих заказов данного оптового покупателя на предмет исчерпания
кредитного лимита, согласованных объемов или графика поставок по данному
заказу. В реальном потоке выполнения заказа и отправки счета, конечно же,
существуют и другие этапы, но в данном примере рассматривается только
заключительная стадия: отправка XML-счета для оплаты после доставки и
получения заказа.
Необходимые взаимодействия определяются в договоре
торговых партнеров. Документно-ориентированные взаимодействия зачастую
предполагают, что использующие веб-сервисы стороны заранее согласовали
порядок оформления общих документов, таких как заказ на приобретение, счет
за доставку или общий счет. Эти стороны обычно идентифицируются как
"торговые партнеры" или "сотрудничающие партнеры". Торговые партнеры также
обыкновенно согласовывают общий поток выполнения процесса или модель
взаимодействия при обмене документами, например, оговаривают необходимость
подтверждения квитанции заказа на приобретение, передачу специальной
информации о состоянии в ответ на запрос заказа или отправку сигнала
оповещения по электронной почте после отгрузки заказа. В ходе реализации
бизнес-процесса необходим обмен полными документами. Если до этого
документ содержал общую, фрагментированную информацию, то теперь требуется
согласованное заполнение специальных разделов, таких как цена покупки или
обязательная дата доставки.
Рис. 1.5. Веб-сервис обрабатывает полный заказ на
поставку
Для синхронных/асинхронных парадигм обмена сообщений
удобны два стиля привязки. В нашем примере предварительный оптовый заказ
выполняется в компании Skateboots Company с использованием заказов на
покупку, представляемых в виде пакетов в соответствии с предварительными
договоренностями, что помогает производителю спланировать объемы. В период
активного спроса заказы на немедленное пополнение обрабатываются более
интерактивными сервисами, которые зависят от заказов на пополнение с
имеющихся складов и позволяют тотчас идентифицировать отложенные заказы.
Таким образом, сайт Skateboots.com предоставляет веб-сервисы,
поддерживающие оба основных типа взаимодействия.
Технология веб-сервисов
Порядок описания, поиска и взаимодействия веб-сервисов
друг с другом определяют стандарты. Взаимодействующие через Интернет
программы должны уметь обнаруживать друг друга, находить информацию,
позволяющую им осуществить связь, понимать, какая модель контактирования
должна быть применена (простая, типа "запрос/ответ", или более сложная
последовательность), и договариваться об использовании таких услуг, как
защита информации, подтверждение передачи сообщений и составление сделок.
Некоторые из этих сервисов реализуются существующими технологиями и
предлагаемыми стандартами, а другие - нет. Использующее веб-сервисы
сообщество стремится удовлетворить все эти требования, но это -
эволюционный процесс, как и сам Интернет. С самого начала инфраструктура и
стандарты веб-сервисов подразумевали возможность расширения (так же как до
них XML и HTML), что позволяет использовать их сразу же после появления
новых стандартов и технологий.
Веб-сервисы требуют использования нескольких смежных
XML-технологий. Для транспортировки и преобразования данных в программы и
обратно веб-сервисы требуют использования нескольких смежных
XML-технологий.
Язык XML (Extensible Markup Language) - фундамент, на котором строятся
веб-сервисы. Он предоставляет язык определения данных и порядок их
обработки. XML представляет семейство связанных спецификаций, публикуемых
и поддерживаемых интернет-консорциумом (World Wide Web Consortium, W3C) и
другими организациями.
WSDL (Web Services Description Language) - технология, основанная на
XML, определяющая интерфейсы веб-сервисов, типы данных и сообщений, а
также модели взаимодействия и протоколы связывания.
НОВАЯ "СЕРЕБРЯНАЯ ПУЛЯ"?
С точки зрения современных проблем вычислительной техники
веб-сервисы иногда представляются как решение типа "серебряная пуля",
исполняя роль, которая ранее отводилась Сети, реляционным базам данных,
языкам программирования 4-го поколения и искусственному интеллекту. К
сожалению, сами по себе веб-сервисы не в состоянии решить многие проблемы.
Они представляют новый уровень (или другой способ выполнения), а не
фундаментальное изменение, которое приходит на смену существующей
компьютерной инфраструктуре. Этот новый технологический уровень выполняет
новую функцию, но, что более важно, обеспечивает механизм интеграции,
определенный на более высоком уровне абстракции.
Важность веб-сервисов заключается в том, что они могут
служить "связующим мостом", а не заменой существующих технологий. Можно
сказать, что новые языки программирования, такие как Visual Basic, C#,
C/C++ и Java, пришли на смену старым языкам, таким как COBOL и FORTRAN,
хотя множество программ на этих языках все еще используются, как и
привязки веб-сервисов для них. В качестве веб-серверов веб-сервисы
являются дополнением и не конфликтуют с существующими приложениями,
программами и базами данных. Разработка приложений по-прежнему требует
знаний Java, VB и C#. Все, что является новым, - это способ преобразования
данных для передачи в приложение и обратно на основе стандартных форматов
XML-данных и протоколов, что позволяет обеспечить новый уровень интеграции
и взаимодействия.
При проектировании и разработке новых программ и баз
данных разработчики могут учитывать веб-сервисы, но эти программы и базы
данных все равно потребуют использования упаковщиков веб-сервисов.
Веб-сервисы сами по себе не являются исполняемыми; они полагаются на
исполняемые программы, написанные с помощью языков программирования или
сценариев. Веб-сервисы определяют мощный уровень абстракции, который может
применяться для межпрограммного взаимодействия на основе существующей
сетевой инфраструктуры, но без этой инфраструктуры они ничего не значат.
Протокол SOAP (Simple Object Access Protocol) - совокупность
XML-технологий, определяющих "конверт" для связи веб-сервисов (привязанный
к HTTP и другим транспортам), - специализированный формат для передачи
XML-документов по Сети, а также соглашения RPC-взаимодействий.
Технология UDDI (Universal Description, Discovery and Integration) -
реестр веб-сервисов и механизм поиска. Он используется для хранения и
упорядочения деловой информации, а также для нахождения указателей на
интерфейсы веб-сервисов.
Пример использования
Стандарты веб-сервисов обычно используются совместно.
Основные стандарты веб-сервисов используются согласованно. После
обнаружения WSDL в UDDI или другом месте генерируется SOAP-сообщение для
отправки на удаленный сайт.
Как видно из рис. 1.6, при предоставлении документа по
адресу веб-сервиса программа использует XML-схему определенного типа
(такую как WSDL), позволяющую преобразовать данные из ее входного
источника (в этом примере структурированный файл) и на основе того же
WSDL-файла создать экземпляр XML-документа в формате, согласованном с
целевым веб-сервисом. WSDL-файл используется для определения как входного,
так и выходного преобразования данных.
SOAP-процессор отправляющего компьютера преобразует
данные из собственного ("родного") формата в тип данных, предопределенный
в соответствии с содержащейся в WSDL-файле XML-схемой на основе таблиц
преобразования для текстов, значений с плавающей точкой и других данных.
Таблицы преобразования "связывают" собственные типы данных с
соответствующими конкретной XML-схеме. (Стандартное преобразование типов
широко используется в Java, Visual Basic, CORBA и других известных
системах. Многие средства XML позволяют настраивать специальные
преобразования типов.) SOAP-процессор получающего компьютера выполняет
обратное преобразование данных из типов XML-схемы в собственные типы
данных.
Файлы описаний веб-сервисов обычно регистрируются с
помощью URL. URL, повсеместно используемый в Сети, указывает на IP-адрес,
соответствующий веб-ресурсу. Схемы веб-сервисов являются одной из форм
веб-ресурса, они содержатся в доступных через Интернет файлах и к ним
применим тот же механизм, что используется при загрузке HTML-файлов.
Главное отличие между загрузкой HTML-файла и обращением к ресурсу
веб-сервиса заключается в том, что веб-сервис оперирует XML-документами, а
не HTML-документами и опирается на соответствующие технологии, такие как
использование схем, преобразование, проверка подлинности, что и
обеспечивает поддержку удаленного соединения приложений. Но способ,
согласно которому схемы веб- сервисов публикуются и загружаются, одинаков:
HTTP-операция по указанному URL.
Рис. 1.6. Веб-сервисы используют XML-документы и
осуществляют преобразование данных
Для проверки достоверности сообщений веб-сервисы
используют XML-схемы. После получения документа реализация веб-сервиса
сначала должна проанализировать XML-сообщение и удостовериться в
корректности данных, выполнить проверку качества услуг
(Quality-of-Service), такую как проверку политики безопасности или
соглашений торговых партнеров, а затем произвести последовательность
связанных с данным документом коммерческих операций. Веб-сервис на
вымышленном нами сайте skateboots.com размещен в папке skateboots.com/
order, на которую и указывает URL.
Веб-сервис, доступный по данному интернет-адресу,
идентифицируется с помощью публичного WSDL-файла, который может быть
загружен на отправляющий компьютер и использоваться при генерации
сообщения. Компания Skateboots Company также осуществляет отправку в
общедоступный каталог UDDI-листинга, позволяющего клиентам находить
компанию с помощью технологии UDDI. В общем случае, любой, кто хочет
взаимодействовать с веб-сервисом, размещающим или контролирующим по Сети
заказы для Skateboots Company, для генерации сообщения должен найти способ
получения и использования WSDL-файла.
Размещенные по адресу skateboots.com программы
представляют собой прослушивающий HTTP-процесс, связанный с
соответствующими веб-сервисами для распознавания XML-сообщений,
определенных в данном формате. Эти программы включают в себя
XML-анализаторы и преобразователи. Кроме того, они осуществляют
конвертацию данных SOAP-сообщения в форматы, необходимые для системы ввода
заказов компании Skateboots Company.
Технологии веб-сервисов сформировались из основных
структур. Этих технологий достаточно для построения, развертывания и
публикации базовых веб-сервисов. На самом деле, необходим лишь базовый
протокол SOAP. С момента появления веб-сервисов к ним все время
добавляются другие технологии. Хотя для деловой связи, а также для
создания "моста" с несовместимыми технологиями вполне достаточно базовых
принципов, данная форма веб-взаимодействия тем не менее была одобрена
очень быстро.
ПОВТОРНОЕ ИЗОБРЕТЕНИЕ КОЛЕСА
Некоторые утверждают, что веб-сервисы - это изобретение
колеса, поскольку они повторяют характеристики других распределенных
компьютерных архитектур, таких как CORBA или DCOM. Веб-сервисы вобрали в
себя многое из существующих решений и реализаций, но они также являются
хорошим поводом для открытия новой архитектуры. Глобальная сеть уже
устоялась, и для получения максимальной выгоды от этой громадной структуры
необходимо изменить концепции распределенной обработки данных. Во-первых,
Сеть в основном была разъединенной, то есть соединения были случайными и
временными. Службы распределенной обработки, такие как сервисы
безопасности и транзакций, обычно зависели от соединения транспортного
уровня и должны были быть воссозданы для обеспечения той же
функциональности для разъединенной Сети. Во-вторых, Сеть предполагала, что
стороны могут осуществлять соединение не зная друг друга, а лишь следуя
логике URL и придерживаясь некоторых общих правил. Для веб-сервисов это
означает, что любой клиент может обратиться к опубликованным кем бы то ни
было веб-сервисам, а также к информации об этом сервисе (схеме), которая
доступна и понятна для всех; а XML-процессоры способны генерировать
сообщения в соответствии с этой схемой.
Традиционные технологии распределенной обработки данных
предполагают более тесные отношения между клиентом и сервером и,
следовательно, не могут сходу унаследовать все преимущества имеющейся
глобальной сети. Поскольку веб-сервисы адаптированы к модели публикации
Сети, то с помощью описания интерфейса веб-сервиса имеется возможность
скрывать и публиковать определенную конечную точку или деловую операцию,
без необходимости определения конкретного типа клиента для этой конечной
точки. Возможность клиентов развиваться и интегрироваться позже дает
значительные преимущества в решении проблем интеграции предприятия.
Со временем, когда окончательно сформируются стандарты
регистрации, поиска и качества услуг и концепция специально организованной
динамической деловой Сети получит всеобщее признание, тогда веб-сервисы
станут использоваться так же, как мы сейчас используем Интернет. Это
действительно даст компаниям возможность находить друг друга и
осуществлять торговые операции между собой. Тем временем рассматриваемые в
данной книге основные технологии и стандарты важны для реализации многих
решений, например, для интегрирования несовместимых программных доменов
(например, J2EE и .NET), подключения пакетов приложений (таких как SAP и
PeopleSoft), а также предоставления документов в предопределенный поток
управления бизнес-процессом.
Основы XML
Язык XML имеет множество применений. В контексте
рассмотрения веб-сервисов язык XML понимается не только как формат
сообщений, но и как способ, которым эти сервисы определяются.
Следовательно, о самом XML необходимо знать несколько больше, особенно при
рассмотрении того, как этот язык используется для определения и реализации
веб-сервисов.
Для чего нужен XML
XML позволяет определять любое количество элементов. Язык
XML был разработан в целях преодоления ограничений языка HTML, в частности
для усовершенствования возможностей создания динамического наполнения и
управления им. HTML очень удобен для определения и поддержки статического
содержания, но не при движении Сети в направлении программной платформы, в
которой данные должны генерироваться и систематизироваться динамически. С
помощью XML вы можете определить любое множество элементов, значение
которых ассоциировано с данными; то есть вы описываете данные и указываете
то, что хотите с ними делать, используя один и более элементов, созданных
для этой цели. Например: <Company>
<CompanyNameregion="US">
Skateboots Manufacturing
</CompanyName>
<address>
<line>
200 High Street
</line>
<line>
Springfield, MA 55555
</line>
<Country>
USA
</Country>
</address>
<phone>
+1 781 555 5000
</phone>
</Company>
В этом примере язык XML позволяет описать не только сами
элементы данных, но и структуры, которые группируют соответствующие
данные. Легко представить поиск элементов, удовлетворяющих точному
критерию, например, и нужной компании или по всем
элементам с получением списка всех объектов, определяющих себя в
Сети как компании.
Кроме того, как уже упоминалось ранее, XML позволяет
связывать схемы, что дает возможность раздельно проверять достоверность
данных и описывать их прочие атрибуты и качественные характеристики, что
невозможно сделать с помощью HTML.
XML-схемы сдерживают гибкость. Разумеется, из-за большой
эластичности XML возникают серьезные проблемы. Поскольку язык XML
позволяет пользователю определять собственные структурные элементы, сложно
гарантировать, что одинаковые элементы будут использоваться одинаковым
способом. Для достижения "взаимопонимания" приходится вводить
согласованные модели интерпретации содержания.
Две обменивающиеся XML-данными стороны могут однообразно
понимать и интерпретировать элементы только в том случае, если они
совместно используют одинаковые определения. Если эти же стороны, кроме
того, разделяют сообща одну и ту же схему, они будут уверены в
однообразном восприятии одинаковых тегов элементов. Именно так и работают
веб-сервисы.
Технологии
В веб-сервисах используются ряд элементов семейства XML.
Язык XML - это семейство технологий: язык разметки данных, различные
модели интерпретации содержания, модели связывания, модели пространства
имен и различные механизмы преобразования. Ниже представлены наиболее
важные элементы семейства XML, являющиеся основой веб-сервисов.
XML v1.0: правила определения элементов, атрибутов и тегов, включаемых
в корневой элемент документа, обеспечивающие абстрактную модель данных и
формат сериализации.
|