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 и др.