Web-сервисы (WebService)

advertisement
Web-сервисы
(WebService)

Web-сервисы - это новый вид интернет-приложений,
обеспечивающие динамическую связь разнородных систем на
основе использования общих стандартов:
 Во-первых, web-сервисы – это интернет-приложения, немного
необычные по структуре и с небольшими отличиями от
традиционных интернет-приложений (таких как интернетмагазины, порталы, форумы), но всё же это интернетприложения.
 Во-вторых, в этом определении есть основная причина столь
огромной популярности web-сервисов – это открытые
стандарты, которые в технологии web-сервисов используются
практически на каждом шагу.

Наиболее просто web-сервис представить как интерфейс в
глобальную сеть для некоторого абстрактного программного
обеспечения, этот интерфейс позволяет фактически абсолютно
прозрачно выполнять какие-то функции, возложенные на это
программное обеспечение на удалённом компьютере.

Например на удалённом компьютере находится база данных
например аэрофлота, и web-сервис по запросу может позволить
получить данные о всех изменениях в расписании полётов.




Что же предлагает технология web-сервисов?
Ранее было сказано о существенном упрощении взаимодействия, а
подразумевался под этим тот факт, что фактически любой webсервис (с которым может быть связана любая бизнес-услуга) в
глобальной архитектуре web-сервисов имеет своё описание и
строгое положение в специальных каталогах.
Следует отметить что это описание пригодно не только для
человеческого восприятия, но и для машинного (с помощью
программного обеспечения), что и позволяет автоматизировать
множество рутинных действий.
Выбрав нужный интерфейс IT-персонал компании А может
проделать необходимые действия для связи с одним из
подходящих поставщиков и мало того получить всю необходимую
информацию для совершения сделки практически полностью в
автоматическом режиме.



Основная идея web-сервисов была заложена индустриальными
гигантами в области программного обеспечения, такими как IBM,
Microsoft, Sun, Oracle и др. З
Основная идея web-сервисов заключается в упрощении
процедуры взаимодействия разнородных систем, как в глобальной
сети, так и в локальных сетях масштаба предприятия.
Принципы, которые были положены в основу архитектуры webсервисов, довольно просты и интуитивно понятны, большинство из
них были использованы при разработке других распределённых
архитектур программного обеспечения (COM, CORBA, Java RMI и
т.д.).

Принципы, которые были положены в основу архитектуры webсервисов, довольно просты и интуитивно понятны, большинство из
них были использованы при разработке других распределённых
архитектур программного обеспечения (COM, CORBA, Java RMI и
т.д.).

Перечислю основные цели, которых пытались достичь при
разработке:





Способность взаимодействия широкого набора платформ между собой
(сервис не имеет права зависить от клиента, если клиент хочет
обратиться к сервису, то он может это сделать в наиболее большом
числе случаев);
Надёжность (Основное требование электронного бизнеса к
программному обеспечению, ведь любой сбой способен принести
огромные убытки)
Интеграция с глобальной сетью Интернет (Основное препятствие для
интерации с Интернет в других моделях распределённого программного
обеспечения – это файерволы и прокси-сервера);
Безопасность (Интернет, увы, небезопасная среда и ведение бизнеса в
интернете требует адекватных мер безопасности);
Масштабируемость и расширяемость модели (без этого невозможно
обеспечить всё растущие потребности и изменяющиеся условия в
современном обществе).
Обзор глобальной архитектуры
и используемых спецификаций
(SOAP, UDDI, WSDL).


Несмотря на то, что архитектура Web-сервисов или, точнее
их глобальная архитектура, строилась (а точнее сказать ещё
до сих пор строится) с оглядкой на независимость от любых
спецификаций и протоколов, я всё же буду рассматривать её
вместе с наиболее часто (а подчас и единственно)
применяемыми на сегодняшний день спецификациями.
Вся мощь и популярность web-сервисов основана,
безусловно, на факте использования открытых стандартов.
Простота освоения, огромный охват необходимых
возможностей и поддержка гигантами индустрии ПО сделали
своё дело и благодаря этому популярность web-сервисов
растёт с каждым днём. По некоторым исследованиям в США,
каждая третья компания, связанная с IT-отраслью внедряет
или собирается внедрять свои web-сервисы.

Основа взаимодействия Web-сервисов – это протокол SOAP
(Simple Object Access Protocol – простой протокол доступа к
объектам), который определяет формат сообщений, которыми
обмениваются web-сервисы. Почему именно SOAP был выбран
среди всех возможных протоколов существующих на сегодняшний
день?


Самая первая и самая веская причина этого выбора – это, конечно
же, XML – самый модный на сегодняшний день формат хранения и
передачи данных. SOAP основан на XML и поэтому наследует его
основные возможности:
 Независимость от конкретной платформы и благодаря этому
возможность взаимодействия между различными платформами,
 Расширяемость.
Вторая причина – это независимость от протокола передачи
данных, основным протоколом для Web-сервисов является HTTP,
но зависимости от этого протокола нет.



Сами по себе Web-сервисы конечно хороши, но они ничего не стоят
без инфраструктуры, которая бы позволяла их найти и узнать о
протоколе взаимодействия с конкретным web-сервисом.
Такая инфраструктура обеспечивается проектом UDDI (Universal
Description, Discovery and Integration – универсальное описание,
расположение и интеграция), созданным по инициативе компаний
Microsoft, IBM и Ariba во второй четверти 2000 года.
Управление спецификацией UDDI в 2002 году передано
международной организации OASIS (Organization for Structured
Information Standards - Организация по стандартизации
структурированной информации), и развитие происходит в рамках
сообщества рабочих групп OASIS.


UDDI позволяет компаниям представить исчерпывающую
информацию о том, как они желают вести свой бизнес в Сети. UDDI
обеспечивает уникальную возможность для бизнеса любого
масштаба создать глобальную, платформенно-независимую
открытую архитектуру для представления и быстрого нахождения
бизнесов и услуг, а также их интеграции на базе Интернет.
Спецификация UDDI описывает, базирующийся на протоколе
SOAP, web-сервис, в задачи которого входит определение
местоположения и описание протокола взаимодействия любого
web-сервиса. По сути, это каталог доступных web-сервисов. Дизайн
UDDI позволил обеспечить простой механизм поддержки
развёртывания web-сервисов и их спецификаций.


Такой web-сервис может быть развёрнут как в любой локальной
сети (UDDI server), так и в глобальной сети Интернет. Самый
крупный каталог UDDI на сегодняшний день представлен сайтом
http://uddi.org/. Аналогичный каталог существует и в России по
инициативе компании UnitSpace (http://www.uddi-russia.org/).
В настоящий момент членами сообщества UDDI являются более
400 компаний. И спецификация продолжает интенсивно
развиваться.


После того как нужный web-сервис найден в одном из каталогов
UDDI, нужна информация о том, как собственно обратиться к webсервису и какие конкретно условия или правила необходимо
соблюсти, чтобы сделать это правильно.
Вот тут на помощь и приходит WSDL (Web Service Description
Language – язык описания web-сервиса), который предназначен как
и следует из его названия для описания web-сервисом своих
возможностей, своего интерфейса и некоторых метаданных
предназначенных для использования теми, кто будет использовать
этот web-сервис.


WSDL также основан на XML и позволяет наиболее комплексно и
детально описать то – как следует обращаться к соответствующему
web-сервису. Несмотря на то, что WSDL в первую очередь
предназначен для чтения и разбора программными компонентами,
он вполне читабелен и с человеческой точки зрения.
Описание Web-сервиса на языке WSDL содержит описание
функций этого сервиса, кому этот сервис принадлежит (компания,
адрес и другие данные), формальное описание процесса вызова
функций. Это описание полностью самодостаточно и позволяет
использовать web-сервис пользуясь только этой информацией.
Преимущества и
недостатки применения
web-сервисов




Преимущества
Независимость от платформы и самоописываемость интерфейсов
Мощная и расширяемая инфраструктура
Автоматизация процесса использования сервиса



Итак, Web-сервисы представляют собой некоторый интерфейс к
приложениям (бизнес-логика, базы данных, любая информация).
Этот интерфейс независим от платформы (XML, ну почти, конечно
же) и самоописываем (SOAP, WSDL) и это его главный плюс, а
соответственно и web-сервисов. Это даёт огромные возможности
для аутсорсинга сервисов.
Используя web-сервисы можно написать собственно интерфейс к
некоторой разработке и предлагать другим разработчикам его
использовать для решения их задач (самый банальный пример –
это обновление информации в realtime).




Чтобы эти интерфейсы можно было найти - организуются
универсальные каталоги этих интерфейсов, которые настолько
интеллектуальны, что могут предоставлять информацию об
интерфейсах, как человеку, так и программе.
Поиск нужного интерфейса более не представляет собой модель:
”пальцем в небо”, благодаря различным стандартным
систематизаторам можно искать как по определённой теме, так и в
определённой отрасли. Т
Проблемы поиска решаются кардинально с нужной точностью,
теперь ключевые слова играют роль, но роль эта становится менее
важной.
Это большой плюс и это уже оценили многие пользователи сервиса
RSS (Resource Site Summary – формат который предназначен для
публикации новостей и аналогичной информации), который
успешно публикуется в каталогах UDDI.





Недостатки
XML – как основной формат передачи данных
Интернет – ненадёжное звено
Новизна системы Web-сервисов
Отсутствие стандартных средств обеспечения безопасности

Как это не странно, но огромный плюс Web-сервисов –
использование формата XML как основного формата передачи
данных, является и большим минусом. XML очень избыточен по
своей природе. А использование форматов и протоколов на его
основе эту избыточность только увеличивает. Избыточность эта
порождает и большие требования к системе, в которой будут
использоваться Web-сервисы (пропускная способность сети,
скорость обработки данных, интерпретация сообщений).

Так как для использования некоторых функций мы
вынуждены обращаться к удалённым компьютерам и чаще
всего через глобальную сеть, это создаёт дополнительное
ненадёжное звено в архитектуре приложений. Что
произойдёт если в самый ответственный момент, удалённый
компьютер окажется недоступным из-за проблем на стороне
провайдера или из-за сбоя одного из серверов? И мало того
в той связи, что Web-сервисы позиционируются как средство
для интеграции бизнес-процессов в территориальнораспределённом предприятии, то тут ненадёжность сети
становится преобладающим и определяющим фактором, в
такой ситуации любой простой может обернуться огромными
убытками и в большинстве случаев это неприемлемо.

Новизна системы Web-сервисов - довольно
острый вопрос, который решится только со
временем, когда система будет отлажена и
апробирована в мировом опыте. Простота общих
принципов и открытость стандартов даёт
системе огромный шанс на лидерство в
современном бизнесе, но старые технологии, на
смену которым готовятся Web-сервисы, всё же
являются более испытанным средством и имеет
огромный накопленный опыт их применения.

Благодаря тому, что архитектура Web-сервисов
может свободно расширяться, то уже на сегодня
существует множество вариаций обеспечения
безопасности при взаимодействии Webсервисов, однако ни одна архитектура не
стандартизирована, а применение
нестандартных способов сводит на нет все
усилия направленные на возможность
независимого взаимодействия (хотя некоторые
вариации безопасного взаимодействия с webсервисом прекрасно применимы и сегодня, но их
возможности зачастую сильно ограничены).
Web-сервисы и Интернет

Последние несколько лет отмечают новую эпоху в развитии
World Wide Web, развиваются открытые стандарты
взаимодействия и разрабатываются новые для обеспечения
всех возможных потребностей (безопасность, надёжность и
др.). Если на сегодняшний день всё же “всемирная паутина”
представляет набор слабовзаимодействующих статических и
динамических Web-приложений, однако с появлением
инициативы web-сервисов изменения приобретают коренной
характер, когда основная структура глобальной сети
становится сервис-ориентированной и во главе этих
изменений стоит протокол SOAP.


Web-сервис может собой представлять средство для
коммуникации и интеграции различных филиалов одного
предприятия через Интернет, некоторые бизнес-услуги как
для внутреннего рынка, так и для внешнего, а также может
интегрировать несколько других сервисов.
Появление технологии Web-сервисов предоставляет новые
возможности для построения единой среды электронного
взаимодействия, разработкой которой занимаются во многих
странах и международных организациях в рамках программ
по созданию электронного правительства. Подобная
концепция прорабатывается и в Росси некоторыми
компаниями в рамках Федеральной целевой программы
"Электронная Россия".




Microsoft Passport.Net
Один из первых web-сервисов предложенный компанией
Microsoft одновременно с инициативой платформы .Net.
Расположен по адресу (http://passport.net/)
Сервис предназначен для независимой аутентификации
пользователя (узнавания, или другими словами
удостоверения личности пользователя в Интернет). .NET
Passport – это служба в сети Интернет, которая позволяет
использовать адрес электронной почты и единый пароль для
безопасного входа на любой веб-узел или в службы,
поддерживающие службу .NET Passport.
Используется этот сервис практически на всех сайтах
имеющих отношение к компании Microsoft, самое известное
применение этого сервиса вне компании – это служба
электронной почты “HotMail” (http://hotmail.com/).





MapPoint.Net
Географический сервис Microsoft MapPoint (http://mappoint.net/) это
web-сервис, который позволяет по координатам точки на карте
получить описание местности, ближайшие дороги, осуществлять
поиск близлежащих ресторанов, гостиниц и др.
Наиболее часто сервис MapPoint используется для хранения
месторасположения офиса компании, так чтобы в любой момент
можно определить и изменить адрес той или иной компании. Кроме
того, сервис MapPoint обеспечивает огромные поисковые
возможности, можно искать все компании определённого профиля
на определённой территории, а также задавать и другие критерии
поиска.
Мобильные устройства с GPS приёмником позволяют с помощью
MapPoint сервиса достоверно определять местонахождение.
Ежедневно сервис MapPoint обрабатывает более 15 миллионов
запросов в день.



Аэрофлот
Сервис (http://webservices.aeroflot.ru/) предлагает владельцам
туристических фирм, агентств по продаже авиабилетов, а
также другим заинтересованным лицам простой и
эффективный способ получения оперативной информации
об актуальном расписании, прилете/вылете самолетов,
состоянии рейсов. Эта информация может быть легко
размещена на web-сайтах или интегрирована с любыми
бизнес приложениями.
Для предоставления информации используются данные из
Центра управления полетами Аэрофлота. Данные в системе
обновляются 1 раз в 5 минут.
Web-сервисы и мобильные
решения


Кроме рынка Интернет услуг, благодаря огромным темпам
развития сотовой телефонии бурно развивает и рынок WAP
услуг. WAP (Wireless application protocol) – это специальный
протокол, который позволяет получать доступ к глобальной
сети Интернет используя не классическую связку модем и
телефонная линия, а только лишь сотовый телефон.
Основное ограничение при этом – маленький размер экрана
сотового телефона и соответственно малый объём
информации, которую можно поместить на экран.
Web-сервисы доступны и на сотовом телефоне! Благодаря
тому, что на самом деле WAP является всё же надстройкой
над протоколом HTTP – основным протоколом глобальной
сети. Конечно же не всё так просто и для мобильных webсервисов существует множество ограничений, однако общая
структура остаётся неизменной.

Основное применение web-сервисов через WAP нетрудно
себе представить, ведь довольно много функций в нашей
обыденной жизни мы бы хотели и могли выполнять с
помощью сотового телефона, который “всегда под рукой”:
узнать текущий курс валюты, получить текущее состояние
дел в своей компании, заказать ужин в ресторане,
забронировать билеты на самолёт и т.д. и тому подобное.
Для многих обыденных сервисов становится не обязательно
использование полноценного компьютера или ноутбука
подключенного к сети Интернет, зато появляется
возможность, например отслеживания в реальном времени
котировок акций на бирже, погодных условий в вашем
городе.
Предполагаемый путь развития

Первое и самое важное для бизнеса – это инфраструктура
системы безопасности для Web-сервисов. Находится в
разработке проект WS-Security, который призван
поддержать расширяемую систему безопасности,
аутентификации и конфиденциальности. Пока же
производители вынуждены использовать продукты
сторонних производителей, зачастую несовместимых
между собой (Правда стоит упомянуть в этом свете, что
может использоваться протокол SSL, если не требуется
сложная система безопасности и в этом случае средств
безопасности вполне достаточно).

Второе, чего так сильно не хватает в Web-сервисах – это
поддержки согласования работы распределённых систем,
которые так популярны благодаря тому, что отражают
бизнес-процессы и давно уже применяются в системах баз
данных и в электронной торговле. Бизнес-транзакции в
распределенных системах играют огромную роль, которую
пока не в состоянии обеспечить Web-сервисы. Но уже
сейчас в этой области всё же можно использовать и
сервисы, смешивая их с другими более мощными
технологиями (DCOM, CORBA и др.).
Удовлетворить этим запросам призваны
разрабатывающиеся протоколы WS-Coordination, WSAtomicTransaction.

Третий момент – это разработка современных протоколов
удовлетворяющих растущим потребностям пользователей
для использования в Web-сервисах. Для чего это нужно,
во-первых, основной протокол сети Интернет – HTTP имеет
огромное количество ограничений (отсутствие поддержки
состояния, асинхронность, не привязанность к контексту),
которые приходится обходить в текущей реализации, кроме
собственно ограничений существуют такие возможности,
которые в этом протоколе использовать просто невозможно
(роутинг, передача вызова сервиса к доступному узлу). Для
разработки всех этих моментов предназначены проекты
WS-Routing, WS-Refferal и др.
Download