Веб-сервисы как основа деловых отношений

 | 20.37

"Телеком. Коммуникации и сети" 3/2008, с. 56

Новое поколение веб-сервисов сегодня успешно сменяет традиционные интернет-приложения. Такие сервисы удобны для поддержания долговременных потоков бизнес-процессов при относительно небольших затратах. Лучше всего данная концепция подходит для интеграции несовместимых программных доменов и связи разнородных технологий, но не предназначена для высокопроизводительных приложений.

На уровне идеи

Основная идея технологии вычислений, основанной на веб-сервисах, заключается в том, чтобы упростить доступ пользователей к программам через Интернет. В ее основе лежат стандарты, открытые протоколы обмена и передачи данных. А в ее разработке участвуют такие гиганты компьютерной индустрии, как Sun Microsystems, Oracle, Hewlett-Packard, Microsoft и IBM.

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

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

-допускает повторное использование;

-определяется одним или несколькими явными технологически независимыми интерфейсами;

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

Веб-сервисы пригодны для В2В-интеграции, замыкая приложения, выполняемые различными организациями, в один производственный процесс. Они также могут решать более широкую проблему интеграции приложений (Enterprise Application Integration, EAI), осуществляя связь нескольких приложений предприятия с рядом других приложений, размещенных в домене виртуальной частной сети (VPN). Во всех этих случаях технологии веб-сервисов являются связующим звеном, объединяющим различные части программного обеспечения.

С точки зрения потребителя, веб-сервис — это замкнутое модульное приложение, которое может быть описано, опубликовано, размещено и вызвано в сети (в общем случае в World Wide Web). Веб-сервис во многом похож на функцию в процедурном программировании: она также имеет имя и параметры, а следствием обращения к нему является определенный результат.

Именем является Uniform Resource Identifier (URI — унифицированный идентификатор ресурса), который провайдер веб-службы использует для того, чтобы сервис стал доступен как конечная точка. URI конечной точки является для провайдера адресом, по которому находится и вызывается веб-сервис. При этом в запросе указаны: действие, которое надо выполнить, и параметры, которые потребитель передает сервису при его вызове. После выполнения сервиса конечная точка передает ответ обратно потребителю, в котором сообщается об успешном выполнении или об ошибке и содержится результат работы сервиса.

Выгодные отличия

Далее перечислены основные преимущества для предприятий при использовании рассматриваемой идеологиии:

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

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

-веб-сервисы обеспечивают преемственность используемых в компании информационных систем и позволяют сохранить сделанные ранее инвестиции в ИТ-инфраструктуру.

Принципы, лежащие в основе веб-сервисов, очень просты:

-лицо, ответственное за сервис, определяет формат запросов к нему и получаемых от него ответов;

-любой компьютер, подключенный к Интернету, может запросить веб-сервис;

-сервис обрабатывает запрос, выполняет какое-либо действие, а затем отправляет ответ пользователю.

В самом простом случае инициатор запроса к сервису отсылает HTTP-запрос сервис-провайдеру. HTTP-запрос оформляется в формате XML, а запрос сервиса оформляется в XML-строке, в формате WSDL-сервиса. После получения запроса сервис отвечает на него, посылая XML-строку в HTTP-ответе. Весь процесс выполняется в режиме HTTP-запросов и ответов. Единственная разница в том, что запрос и ответ оформляются в XML-строках.

Отличием веб-сервисов от других подходов к интеграции являет-ся тот факт, что потребитель может динамически связываться с его провайдером. Типичные примеры веб-сервисов: набор программ в www.amazon.com, с помощью которых пользователи могут заказать книги; программы в www.ual.com, позволяющие определить расписание полетов.

Такие промышленные лидеры, как, например, IBM, Microsoft, Hewlett-Pаckаrd и Sun Microsystems, быстро развивают инфраструктуру распределенных вычислений (в частности, .NET, WebSphere, Web Service Platform и Java 2 Platform Enterprise Edition). Рабочая группа «Web servіces» консорциума W3C рассматривает веб-сервис как программу, которая идентифицируется по URІ, интерфейс которой может быть определен в виде XML-конструкций. Интерфейс сервиса описывается на языке, читаемом машиной. Другие системы взаимодействуют с веб-сервисом способом, указанным в его описании.

Потребитель может вызвать сервис синхронно либо асинхронно. С точки зрения потребителя различие заключается в следующем:

Синхронный способ. Потребитель использует один поток для вызова сервиса; поток передает запрос, блокируется на время выполнения службы и ждет ответа.

Асинхронный способ. Потребитель использует два потока для вызова сервиса: один — для передачи запроса, второй — для приема ответа.

Стандарты веб-сервисов

С веб-сервисами связано множество технологий и стандартов. Сама концепция возникла в конце 90-х годов XX века. К настоящему моменту архитектура, которую она предлагает, стала отраслевым стандартом в сфере ИТ. Говоря о веб-сервисах, сегодня обычно подразумевают решения, основанные на следующих трех стандартах:

-SOAP (Simple Object Access Protocol);

-UDDI (Universal Description, Discovery and Integration);

-WSDL (Web Service Definition Language).

На сегодняшний день разработаны языки моделирования бизнес-процессов, такие как XLANG, WSFL (Web Services Flow Language) и более поздний BPEL4WS (Business Process Execution Language for Web Services), однако все они описывают контент веб-сервисов в терминах синтаксиса XML без определения семантики. Другие значимые стандарты и технологии представлены следующими организациями:

-OASIS — обработка входящих в ebXML спецификаций и другие предложения XML, такие как ВТР, SAML, UDDI и WS-Security;

-RosettaNet — концепции веб-сервисов, разрабатываемых группой производителей электроники для осуществления взаимодействия типа В2В через Интернет;

-USERLand — разработчик XML-RPC (предшественника SOAP);

-OAGI (Open Applications Group) — определение канонических форматов XML-документа для коммерции и промышленности.

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

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

Основываясь на вышесказанном, введем новое определение. Веб-сервисы — это XML-приложения, осуществляющие связывание данных с программами, объектами, базами данных либо с деловыми операциями целиком. Между веб-сервисом и программой осуществляется обмен ХМL-документами, оформленными в виде сообщений. Стандарты веб-сервисов определяют формат таких сообщений, интерфейс, которому передается сообщение, правила привязки содержания сообщения к приложению, реализующему сервис, и обратно, а также механизмы публикации и поиска интерфейсов.

Интерфейсы веб-сервисов получают из сетевой среды стандартные XML-coобщения, преобразуют XML-данные в формат, понимаемый конкретной прикладной программной системой, и отправляют ответное сообщение. Программная реализация веб-сервисов (базовое программное обеспечение, нижний уровень) может быть создана на любом языке программирования с использованием любой операционной системы и любого связующего программного обеспечения (middleware).

Многие спецификации связаны между собой: например, XML Base и XML Namespaces добавлены непосредственно как дополнение к XML v1.0. Большинство из этих спецификаций находится в процессе развития.

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

XML-технологии и стандарты могут использоваться промышленными консорциумами по-разному, например ebXML и OASIS, а также продукты типа «посредник интеграции» таких производителей, как IBM, Microsoft, IONA и WebMethods, стремятся сконцентрироваться на приложениях для веб-сервисов типа «бизнес-процесс» (ориентация на обработку документов), в то время как продукты других производителей, в том числе Web Services Toolkits, поставляемый в составе WebLogic компании ВЕА, и J2EE Edition компании IONA, нацелены на взаимодействие RPC-типа.

Веб-сервисы используют протокол SOAP для посылки сообщений по протоколу HTTP и другим интернет-протоколам; WSDL — для описания программных интерфейсов веб-сервисов; UDDI — для их индексации.

Информация о том, какие функции предоставляет данный веб-сервис, содержится в его описании — документе WSDL, а для поиска существующих сервисов предполагается использование специальных реестров, совместимых со спецификацией UDDI. Другие системы взаимодействуют с веб-сервисом, используя сообщения в стандарте SOAP. Серверы приложений являются хранилищами веб-сервисов и делают их доступными через HTTP GET, HTTP POST и HTTP SOAP.

Стандартные составляющие

SOAP (Simple Object Access Protocol) — стандарт передачи сообщений по Интернету, разработанный Microsoft для удаленного вызова процедур (RPC, Remote Procedure Call) по протоколу HTTP. Он позволяет передавать информацию по сети в формате XML. При этом могут использоваться любая сеть, любой протокол передачи данных, произвольная информация (заказы, прогноз погоды, выписки об уровне товарных запасов и т. д.), разнообразные вычислительные устройства (в том числе мобильные).

Спецификация SOAP определяет XML-«конверт» для передачи сообщений, метод для кодирования программных структур данных в формате XML, а также средства связи по протоколу HTTP.

Используют два различных типа SOAP-сообщений: запрос (Request) и ответ (Response). Запрос вызывает метод удаленного объекта, ответ возвращает результат выполнения данного метода.

SDL (Web Services Description Language) — основанный на XML и предложенный Консорциумом W3C стандарт описания того, как пользоваться сервисом. Описание веб-сервиса на WSDL содержит технические детали, необходимые для его интеграции в приложение (формат сообщений, операции и т. п.). На данный момент язык WSDL поддерживают продукт от Microsoft — SOAP Toolkit 2.0 (его часть WSDL Generator) и продукт от IBM — WSDL Toolkit. Язык описания веб-сервисов только определяет синтаксис того, как сервис может быть вызван, он ничего не говорит о его семантике. Это порождает ряд проблем при использовании веб-сервисов.

UDDI (Universal Description, Discovery, and Integration) предоставляет механизм обнаружения веб-сервисов. UDDI формирует бизнес-реестр (UDDI Business Registry), в котором провайдеры могут регистрировать свои сервисы, а разработчики — искать необходимые им сервисы. Компании сами регистрируют себя в реестре Business Registry, представляющем собой базу данных общего пользования. UDDI (который, по сути, тоже является веб-сервисом) позволяет описывать, интегрировать и публиковать сервисы.

Сервис UDDI складывается из двух главных составляющих: регистрации и нахождения данных. Регистрационная часть означает, что коммерческая организация отправляет в UDDI информацию, которую другое предприятие может запросить и найти, что и образует вторую составляющую. Организации и частные лица используют UDDI с помощью программных интерфейсов SOAP или одного из пользовательских интерфейсов, предоставляемых операторами или производителями других веб-сервисов. Для обеспечения регистрации и поиска данных операторы UDDI посылают WSDL-описания своих сервисов. UDDI предлагает отдельные WSDL-файлы для служб регистрации и обнаружения данных на основе своего собственного формата XML-документов.

Коды и идентификаторы

Коммерческая информация UDDI обычно подразделяется на три основные категории:

«Белые страницы» — название и адрес организации, контактная информация, адрес веб-страницы и номер в универсальной системе нумерации данных (Data Universal Numbering System, DUNS) или другой идентифицирующий номер.

«Желтые страницы» — вид коммерческой деятельности, место расположения и выпускаемая продукция, включая различные данные для определения категории в зависимости от географического расположения, отрасль промышленности, идентификатор коммерческой деятельности и т. п.

«Зеленые страницы» — спецификации коммерческих услуг, порядок взаимодействия с ними, определение бизнес-процесса и т. д. Здесь размещается указатель на WSDL-файл, если таковой имеется. Информация данной категории описывает функциональные возможности и характеристики сервиса, в том числе его уникальный идентификационный номер. Эта категория является достаточно новой и специфичной для Интернета.

С целью облегчения поиска коммерческие предприятия могут добавлять любое количество классификаций. Классифицирующая и идентифицирующая информация включает в себя, например, такие сведения, как IRS-коды отраслей промышленности, DUNS-номера по каталогам компаний Dun и Bradstreet, коды продукции, географические коды и т. д.

Основные таксономические системы с информацией о категории:

-Североамериканская система классификации отраслей промышленности (North American Industry Classification System, NAICS) — www.census.gov/epcd/www/naics. html.

-Универсальная стандартная классификация товаров и услуг (Universal Standard Products and Services Classification, UNSPSC) — www.unspsc.org.

-Стандарт ISO 3166 Международной организации по стандартизации (International Organization for Standardization), касающийся указания географических регионов, кодов стран и т. д. — www.din.de/gremien/ nas/nabd/iso3166ma.

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

Зарегистрированные данные могут быть проверенными или непроверенными. UDDI v2 использует опробованные или непроверенные системы классификации и идентификации. Поскольку UDDI проверяет и подтверждает классифицирующую или идентифицирующую информацию только с помощью NAICS, UNSPSC и ISO 3166, UDDI.org поддерживает возможность предоставления этого дополнительного сервиса сторонним участникам.

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

Некоторые из основных спецификаций и технологий веб-сервисов, предназначенных для «полной комплектации» архитектуры веб-сервисов и решающих следующие задачи:

-безопасность — конфиденциальность, целостность, аутентификация (проверка регистрационной информации пользователя) и авторизация веб-сервисов;

-управление потоками (последовательностью выполнения) процессов (process flow) — «оркестровка» потока выполнения нескольких параллельно работающих веб-сервисов;

-транзакции — координирование веб-сервисов;

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

Базовая инфраструктура веб-сервисов складывается из двух составляющих:

-технологий, обеспечивающих функциональность веб-сервисов;

-технологий, обеспечивающих качество работы веб-сервисов.

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

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

Анатолий Гладун, Международный научно-учебный центр информационных технологий и систем НАНУ и МОНУ, [email protected]

Robo User
Web-droid editor

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *