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

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

Широкие возможности

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

Идея SOA далеко не нова. Попытки превратить корпоративные системы в совокупности сервисов предпринимались и раньше. По словам Даниила Фейгина, вице-президента компании UnitSpace по технологиям, истоки SOA были заложены еще три десятилетия назад. В 60-е годы появились библиотеки подпрограмм, потом получила распространение модель распределенных вычислений с помощью метода удаленного вызова процедур, клиент-серверная и компонентная архитектуры, а в 90-е годы перспективными считались распределенные объектные технологии CORBA, DCOM, DCE, Java RMI. Но ни одна из них не смогла стать универсальной, поскольку определяла свои собственные форматы данных, протоколы обмена данными и программные интерфейсы. Нужна была новая технология, основанная только на открытых стандартах.

И она появилась, когда возникла идея Web-сервисов — метода оформления программ с помощью стандартов XML и HTTP. Кстати, именно из-за HTTP, главного протокола системы Web, у сервисов появилась такая приставка. Как отметил Александр Литомин, директор компании BEA по развитию бизнеса в России и СНГ, хотя концепция SOA развивается почти пять лет, лишь с появлением Web-сервисов ИТ-сообщество стало лучше ее воспринимать.
Аналитики возлагают на SOA большие надежды по двум основным причинам. Первая — технологическая: снижение стоимости широкополосной связи и высокопроизводительного вычислительного оборудования открывает доступ к сетевым сервисам широкому кругу пользователей. Вторая — деловая: предприятия остро нуждаются в такой концепции развития ИТ, в которой компьютеризация была бы не самоцелью, а служила жизненным интересам бизнеса.

Что такое SOA и Web-сервисы

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

Web-сервис представляет собой инкапсулированный программный компонент, включающий два элемента: интерфейс сервиса и реализацию сервиса. Реализация служит для выполнения одной или нескольких функций, для которых предназначен сервис (бизнес-логики). Интерфейс является более интересным элементом. Ведь основная идея SOA состоит в том, что сервисы вызывают друг друга, и именно интерфейс задает способ программного взаимодействия между ними. Интерфейсы сервисов описываются с помощью контракта — документа на языке WSDL. Это диалект языка XML, один из базовых стандартов SOA. Контракт задает характеристики сервиса и определяет, как потребитель может к нему обращаться. Поэтому интерфейс должен содержать достаточно информации, чтобы найти сервис, понять, что он делает, и использовать, не вникая во внутреннее содержание.

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

Эти три компонента — провайдер сервиса, потребитель сервиса и реестр сервисов — и составляют классическую модель SOA. Помимо этих неотъемлемых частей реальная система может (и должна) включать другие элементы — программы промежуточного слоя, средства управления, защиты, мониторинга и т. д. Главное в модели и основная изюминка SOA в том, что между потребителем сервиса и его провайдером нет жесткой связи.

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

Преимущества

Слабая связанность сервисов существенно повышает их мобильность и возможность многосторонней интеграции, подчеркнул Сергей Карминский, директор по консалтингу компании «i2 СНГ». Благодаря этому сервисы можно перемещать с одного сервера на другой, менять параметры связи и объединять сервисы в единое приложение не на этапе разработки, а на этапе исполнения. Это придает системе, построенной на базе SOA, особую гибкость и позволяет предприятиям осуществить давнюю мечту о многократном использовании одного и того же кода. «Основная цель SOA — добиться более высокого уровня повторного использования разработок и более дешевой интеграции, — сказал консультант компании BEA Мачи Грушка. — Если система строится на базе Web-сервисов, то все последующие проекты смогут еще не раз воспользоваться функциями, разработанными на первом этапе. Поэтому в перспективе стоимость проектов будет снижаться». А Олег Карачаров, специалист Microsoft по архитектуре систем, добавил, что SOA позволяет повысить эффективность процесса разработки приложений за счет применения имеющихся в продаже готовых программных компонентов.

У SOA есть и другие достоинства. Во-первых, ее внедрение не требует полной перестройки корпоративной инфраструктуры. Предприятиям не нужно отказываться от привычных, хорошо себя зарекомендовавших приложений. Достаточно снабдить их соответствующими интерфейсами — и Web-сервисы готовы. «Практическая ценность SOA для бизнеса заключается в возможности постепенного эволюционного развития корпоративной информационной инфраструктуры», — сказал Олег Карачаров. Это позволяет внедрять SOA постепенно, начиная с небольших пилотных проектов.

Во-вторых, благодаря Web-сервисам бизнес-менеджеры могут гораздо активнее участвовать в создании корпоративных приложений. Правда, пока это лишь теоретическая возможность: необходимы специальные инструменты, позволяющие создавать сервисы без программирования. Но они уже начинают появляться. Например, компания UnitSpace выпустила ПО промежуточного слоя BCR. Оно позволяет адаптировать приложения к SOA, создавая Web-сервисы на основе заданных бизнес-аналитиками метаданных, без программирования. «Средства автоматического преобразования форматов позволяют приложениям обмениваться данными на основе их общей семантики, а выполнением бизнес-процессов управлять с помощью сценариев, написанных на стандартном языке BPEL», — объяснил Даниил Фейгин.

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

И, в-четвертых, использование открытых стандартов вместо закрытых протоколов делает архитектуру SOA независимой от платформ. «SOA поднимет на новый уровень интеграцию, обеспечивая взаимодействие гетерогенных систем», — сказал Александр Литомин.

Три «кита» — много или мало?

Набор базовых стандартов SOA держится на трех «китах». В их число, кроме WSDL и UDDI, входит протокол SOAP — простой механизм для создания структурированных пакетов данных, предназначенных для обмена информацией между сервисами (сетевыми приложениями). Эту тройку стандартов объединяет то, что все они построены на базе языка XML и являются открытыми, то есть их развитием занимаются независимые комитеты по стандартизации.

Чтобы понять, как они работают вместе, сравним технологию Web-сервисов с общением по телефону. В таком случае XML — это язык, на котором ведется разговор, SOAP описывает правила набора номера, UDDI представляет собой телефонную книгу, а WSDL объясняет, что такое разговор по телефону и как его вести.

Но для надежной работы корпоративной инфраструктуры мало трех базовых стандартов. Необходимы дополнительные технологии, обеспечивающие безопасность, устойчивость, гарантированное обслуживание, обработку транзакций и т. д. В этом направлении сейчас ведется активная работа, но она далека от завершения. Поэтому возникает вопрос: на каком этапе развития сейчас находятся концепция SOA и технология Web-сервисов? Можно ли их назвать зрелыми?

Относительно SOA специалисты единодушно решили: нынешний этап является промежуточным. «SOA уже прошла первоначальный этап становления — от идеи до конкретных реализаций. В результате были обнаружены основные проблемы и сдерживающие факторы, — сказал Олег Карачаров. — В настоящее время идет совершенствование: создаются новые стандарты и инструменты». Эту точку зрения разделяет Даниил Фейгин: «На Западе идеи SOA уже понятны и вендорам, и клиентам, поэтому нельзя относить эту концепцию к начальной стадии развития. Зрелой ее также не назовешь, поскольку некоторые ее важнейшие компоненты, например инструменты управления, сейчас только зарождаются».

Что касается технологии Web-сервисов, то мнения разделились. Одни считают, что данный этап — переходный. «Web-сервисы уже находятся не в начале пути, но еще явно не достигли зрелого состояния, — заметил Мачи Грушка. — Основная проблема в том, что с их помощью трудно решить все возможные вопросы бизнеса». С ним согласен Даниил Фейгин: «Базовые стандарты существуют много лет и реализованы на всех современных промышленных платформах. Хотя эта основа достаточно зрелая, она не удовлетворяет всем требованиям бизнеса, поэтому пока Web-сервисы получили лишь ограниченное распространение. Но уже начинают появляться инструментальные средства и платформы, которые поддерживают относительно новые спецификации, выходящие за рамки базовых стандартов.

А Глеб Ладыженский, директор по техническому консалтингу «Oracle СНГ», находит зрелыми и Web-сервисы, и SOA. «Это нисколько не противоречит тому, что обе концепции постоянно развиваются, — объяснил он свою позицию. — Новые спецификации появляются, однако вносимые изменения сохраняют преемственность и не являются революционными».

Пробелы...

Таким образом, трех существующих стандартов Web-сервисов достаточно для создания простых систем, но явно маловато для разработки сложных решений, которые, как правило, и нужны в корпоративной среде. Чтобы Web-сервисы могли выполнять задания бизнеса, нужно обеспечить гарантированную асинхронную доставку сообщений, управление транзакциями, шифрование, координацию распределенных программных компонентов, аутентификацию, авторизацию и многое другое. «Архитектура SOA претендует на всеобщее признание. Это и ее сильная сторона, и главная проблема, — считает Глеб Ладыженский. — Чтобы добиться признания, предстоит многое сделать. Однако потребность в такой архитектуре уже назрела. Понимая это, лидеры индустрии делают все, чтобы сделать переход к SOA максимально простым для заказчиков».

К сожалению, на практике действия лидеров приводят к появлению множества несовместимых спецификаций. Сейчас в области Web-сервисов сложились две группировки: одна включает IBM, BEA и Microsoft, а вторая — Sun, Fujitsu и Oracle. Каждая из них продвигает свои разработки. Например, для управления транзакциями первая предлагает протокол WS-Transactions, а вторая — WS-Transactions Management; для гарантированной доставки сообщений первая выпустила WS-ReliableMessaging, а вторая — WS-Reliability. И так — по всем направлениям технологии Web-сервисов. В результате на роль «заполнителей дыр» в SOA сейчас претендует множество различных методов, но явного лидера нет. Причина понятна — на этом плодородном поле каждый старается застолбить участок побольше.

Но уже предпринимаются некоторые попытки сближения разных подходов. Так, в прошлом году была создана организация Web Services-Interoperability (www.ws-i.org), которая пытается выработать некий общий знаменатель для технологии Web-сервисов. В августе нынешнего года она выпустила документ WS-I Basic Profile 1.1, определяющий требования к различным компонентам SOA, которые могут гарантировать их совместимость и прояснить тонкости использования Web-сервисов. Но он основан лишь на базовых спецификациях — SOAP, WSDL, UDDI, XML и XML Schema — и не охватывает многочисленные разработки указанных группировок. Возможно, впоследствии дело дойдет и до них, но нынешняя ситуация не внушает надежды на быстрое решение проблем SOA.

Массовое распространение SOA и Web-сервисов сдерживается и недостатком соответствующих инструментов. Но, может скоро положение измениться к лучшему. «Сейчас созданием наиболее продвинутых инструментов занимаются не крупные вендоры, а новаторские начинающие компании, — сообщил Фейгин. — Среди них царит жесткая конкуренция, которая неизбежно приведет к значительным и скорым инновациям в этой сфере».

продукты...

Несмотря на незрелость SOA, большинство крупных производителей ПО уже объявили о переходе к Web-сервисам. Первую скрипку играют компании, поставляющие ПО промежуточного слоя, — IBM, Sun, Microsoft, BEA и Oracle. Их интеграционные платформы постепенно вбирают поддержку Web-сервисов. Вслед за ними на новый рынок устремились и другие компании, предлагающие специализированные продукты для SOA.

Например, BEA уже перевела на рельсы SOA свой флагманский продукт WebLogic, предлагает предприятиям концепцию Liquid Computing, ориентированную на реализацию SOA, и открыла центр компетенции SOA Resource Center.

Microsoft продвигает для SOA целую продуктовую линейку, включающую инструментальные средства, решения для обеспечения безопасности, управления, интеграции и поддержки процессов. «Одна из последних наших инициатив — Dynamic Systems Initiative (DSI) — направлена на упрощение и автоматизацию процессов разработки, развертывания и эксплуатации систем, основанных на SOA, — рассказал Олег Карачаров. — Ключевым инструментом DSI станет новый продукт Visual Studio 2005».

Oracle, по словам Глеба Ладыженского, также предлагает все ключевые технологии, необходимые для реализации архитектуры SOA. А UnitSpace не только выпускает продукты, но и разрабатывает стандарты SOA, принимая участие в работе консорциума OASIS. Компания i2 разработала на базе Web-сервисов программу SCOS для поддержки цепочек поставок, которая включает единую среду интеграции CIS и среду моделирования бизнес-процессов i2 studio. Как рассказал Сергей Карминский, эта программа позволяет заказчику использовать как решения от сторонних поставщиков, так и собственные разработки и внедрять их малыми порциями, чтобы ускорить возврат инвестиций.

... и внедрение

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

Таким образом, SOA требует от предприятия переосмысления принципов, по которым формируется ИТ-инфраструктура. И в этом основное препятствие на пути продвижения идей SOA в массы. Что касается затрат, то их объем зависит от масштаба проекта, однако в целом, считают аналитики, для перехода к SOA требуется значительно меньше инвестиций, чем для внедрения «монолитной» системы.

Поставщики ПО помогают предприятиям оценить эти расходы. Так, компания UnitSpace, по словам Даниила Фейгина, делает такие оценки бесплатно, причем выделяет несколько этапов перехода на SOA. У BEA, сообщил Мачи Грушка, есть методологии, с помощью которых можно оценить трудоемкость перехода на SOA, а также среда разработки и полная методология программирования.

И главное, что необходимо учитывать при внедрении SOA, — это связь между бизнес-процессами и Web-сервисами. На первый взгляд кажется, что сделать это непросто. Но помощь уже на подходе. Как отметил Даниил Фейгин, стандарты для представления сервисов и бизнес-процессов уже давно существуют (WSDL, UDDI, BPEL), а для представления связей между ними технический комитет UDDI консорциума OASIS в ближайшее время примет соответствующий документ под названием «Using BPEL4WS in a UDDI registry». Глеб Ладыженский добавил, что уже существует ряд решений, позволяющих создать единое пространство бизнес-процессов предприятия, связывая их с Web-сервисами с помощью стандарта BPEL, и привел в качестве примера систему Oracle BPEL Process Manager, которая наглядно представляет бизнес-процессы в виде диаграмм. Такой инструмент, ориентированный на специалиста предметной области, скрывает технологические детали и позволяет ему сфокусироваться на сути бизнес-процессов.

Стоит ли игра свеч?

Что же получает организация в результате перехода к SOA? Как оценить экономический эффект?

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

Кроме того, SOA значительно упрощает интеграцию. Как показывает практика, сказал Сергей Карминский, сейчас при внедрении новой корпоративной системы затраты на ее интеграцию с существующими приложениями в два-три раза превышают стоимость ПО и лицензий. В рамках же SOA новые программные продукты легко интегрируются в действующую корпоративную систему. За счет упрощения процедур объединения информационных потоков и бизнес-процессов достигается оптимизация процессов управления компанией. Более того, подчеркнул Глеб Ладыженский, интеграционная способность Web-сервисов создает предпосылки и для частичной интеграции ИС разных предприятий, между которыми существуют деловые связи.

Экономия также достигается благодаря возможности постепенного совершенствования информационной инфраструктуры без привлечения крупных инвестиций. Даниил Фейгин отмечает: «SOA позволяет построить модель ИТ-инфраструктуры, готовую к быстрой адаптации. Именно благодаря повышенной управляемости и достигается экономический эффект, поскольку сокращается время простоя, необходимое для настройки или переписывания ИС».

SOA по-русски

На Западе SOA уже достаточно широко известна, есть много примеров ее реализации. А как обстоят дела у нас? Знакомы ли отечественные заказчики с этой новинкой? Мнения специалистов разделились. Так, Олег Карачаров считает, что за последний год в использовании технологии Web-сервисов в России наметился явный прогресс. «Некоторые из наших партнеров уже имеют успешный опыт построения такого рода систем», — сказал он и привел ряд примеров: корпорацию «Галактика» и ее новую модульную платформу RA.NET, основанную на SOA, а также компанию «Аплана» с решением для распределенной поддержки гостиничного бизнеса на базе Web-сервисов. Глеб Ладыженский также отметил, что отечественные заказчики уже знакомы с SOA, и рассказал о системе etradebook компании UnitSpace, предназначенной для издательств и предприятий оптово-розничной торговли книгами.

По мнению Александра Литомина, SOA — относительно новая концепция, и такого рода проекты пока остаются редкостью даже в западных странах. Но крупные отечественные заказчики уже знакомы с этой концепцией, правда, в основном по публикациям, презентациям и семинарам.

С ним согласен Даниил Фейгин: «Благодаря тому, что в этом году у нас начали много писать о SOA, эта аббревиатура стала понятна многим специалистам и менеджерам. У нас есть проекты в государственном и коммерческом секторе, например проект создания «Среды электронного взаимодействия» правительства Москвы, после завершения которого ИС разных ведомств смогут взаимодействовать между собой на основе единых регламентов». Однако, подчеркнул он, использование Web-сервисов не всегда означает переход на SOA. В России выполнено довольно много проектов на основе Web-сервисов, но без реестра сервисов, а число «настоящих» внедрений SOA на базе реестра UDDI пока невелико.

Перспективы и прогнозы

Аналитики с большим оптимизмом смотрят на будущее SOA и Web-сервисов. Так, по прогнозу компании Gartner, к 2008 г. более 60% предприятий будут использовать эту архитектуру в качестве основного принципа при создании ответственных бизнес-приложений.

В IDC подсчитали, что в прошлом году предприятия потратили на поддержку Web-сервисов 1,1 млрд. долл., а в 2008 г. израсходуют 11 млрд. долл. Компания ZapThink, занятая исследованиями в области SOA, прогнозирует, что рынок инструментов для реализации Web-сервисов вырастет со 120 млн. долл. в 2003 г. до 8,3 млрд. долл. в 2008 г. Аналитики объясняют такой подъем тем, что SOA, позволяющая снизить расходы на ИТ, становится главной стратегией при решении проблем интеграции разнородных систем. Отношение предприятий к SOA становится более серьезным, и они переходят от экспериментов к реальным внедрениям.