SOA — итоги трехлетних дискуссий
Поскольку концепция сервис-ориентированной архитектуры перешла от теоретических обсуждений в стадию практического применения, имеет смысл подвести некоторые итоги прошедших дискуссий.
Тема сервис-ориентированной архитектуры (SOA) активно обсуждается в России уже несколько лет. Анализируя ход дискуссии, можно довольно четко выделить в ней три периода (рис. 1).
До осени 2006 г. шли предварительные обсуждения в прессе. На этом этапе публиковались главным образом сведения из зарубежных источников, вопросы SOA поднимались на самом общем уровне, в основном в плане преимуществ для заказчиков, без технических деталей. На российских мероприятиях данная тема вообще не затрагивалась, игроки российского ИТ-рынка, в том числе и представительства западных компаний, хранили по этому поводу молчание.
Осень 2006 — весна 2007 гг.: резкая активизация маркетинговой деятельности ведущих ИТ-поставщиков. Вопросы SOA оказываются в центре внимания вендорских конференций, появляются многочисленные корпоративные буклеты по этой теме, компании объявляют о выпуске SOA-платформ. В роли главного проповедника SOA выступает IBM; в конце 2006 г. активность проявила Sun. Ранней весной 2007 г. об этом стала много говорить Oracle, пару месяцев спустя о своей SOA-стратегии объявила SAP. Когда маркетинговый накал вендоров явно спал, во второй половине 2007 г. о своей приверженности идеям SOA заявила и Microsoft. Тема SOA в этот период активно и конструктивно обсуждается в профессиональных ИТ-изданиях.
Осень 2007 — весна 2008 гг.: активность вендоров пошла на убыль, но на передний план в продвижении темы выходят заказчики, реализовавшие SOA-проекты, и сотрудничающие с ними системные интеграторы. В лидерах дискуссий — банковский сектор. Обсуждения ведутся на независимых мероприятиях в контексте реального опыта применения SOA. Тема широко освещается в деловых и отраслевых СМИ.
Можно уверенно сказать, что как раз за последний год тема SOA перешла из категории общеметодических рассуждений в стадию практического применения. Как это обычно бывает, действительность во многом отличалась от первоначальных гипотез, и это потребовало определенного переосмысления теоретических положений SOA с учетом уже полученных реальных результатов. В целом всем сегодня понятно, что появление SOA и интерес к ней со стороны заказчиков вызван объективными факторами развития ИТ-рынка (см. «SOA: переход от теории к практике», «BYTE/Россия» № 6’2008), но все же многие аспекты проблемы оставались открытыми.
В чем же суть SOА и каковы ее реальные преимущества с точки зрения потребителей? В каких случаях предприятиям стоит делать на нее ставку? Как подойти к реализации SOA-стратегии на практике? Эти и другие вопросы активно обсуждались на специализированных конференциях и в профессиональных СМИ. Нет сомнений в том, что обсуждение темы SOA продолжится в стартующем сейчас очередном деловом сезоне, но чтобы перейти на следующий качественный уровень дискуссий, имеет смысл подвести некоторые итоги.
Что такое SOA
Вот что по этому поводу говорит Wikipedia: «SOA — это метод разработки и интеграции ИТ-систем, в котором функциональность группируется вокруг бизнес-процессов и пакетируется в виде интероперабельных сервисов. SOA также описывает ИТ-инфраструктуру, которая позволяет различным приложениям обмениваться данными по мере выполнения бизнес-процессов». К этому, наверное, нужно добавить, что SOA подразумевает широкое использование в развитии корпоративных систем уже существующих ИТ-ресурсов.
Итак, самое главное: SOA — это категория не технологическая, но методологическая. Иными словами, это не набор программных продуктов, а архитектурный подход к созданию корпоративных информационных систем на основе композиции автономных функциональных модулей, представленных в виде ИТ-сервисов. Важно отметить, что речь преимущественно идет именно о системах в целом, а не об отдельных ИТ-проектах. Можно сказать и так: SOA подразумевает, что конкретные ИТ-проекты реализуются с широким применением уже используемых в организациях технологий и продуктов, а также внешних готовых сервисов, в интересах достижения быстрого эффекта с точки зрения бизнеса.
В то же время вполне уместно говорить об уровне пригодности тех или иных программных средств для создания SOA-систем. В целом же SOA в технологическом плане больше ассоциируется с решением задач интеграции приложений и управления бизнес-процессами в распределенных гетерогенных средах. Вот что говорит по этому поводу исследовательская компания AMR Research: «Фактически сегодня SOA в технологическом плане больше ассоциируется с интеграционными платформами различных вендоров, а также с такими технологиями, как Web 2.0, управление бизнес-процессами (Business Process Management, BPM) и интеграция корпоративных приложений (Enterprise Application Integration, EAI). Именно в таком контексте имеет смысл говорить о каких-то долях рынка».
Почему появилась SOA
В 90-х гг. XX века началось повышение интереса заказчиков к комплексным ERP-решениям — они рассматривались как альтернатива «зоопарку» бизнес-приложений, которые внедрялись в ходе фрагментарной автоматизации подразделений и которые теперь нужно было увязывать между собой в единую корпоративную систему.
Однако еще в начале нынешнего десятилетия стало понятно, что потенциал монолитных программных комплексов с точки зрения бизнеса в значительной степени уже исчерпан. Тому было несколько причин. Во-первых, такая схема затрудняла развитие и модификацию ИТ-систем в условиях более быстрого изменения бизнес-потребностей заказчиков. Во-вторых, задачи автоматизации предприятия быстро выходили за пределы задач ERP (росли потребности в CRM, BI, ECM и т. п.), а создание единого комплексного решения для выполнения всех нужных клиентам функций до сих пор остается фактически неразрешимой технической проблемой. В результате маятник ИТ-прогресса снова качнулся в сторону создания композитных систем — уже на базе концепции SOA.
В чем новизна SOA
До сих пор SOA зачастую ассоциируют исключительно с использованием функциональных компонентов в виде Web-сервисов. Это слишком узкое понимание вопроса, поскольку для реализации SOA годятся и другие технологии.
SOA можно рассматривать как альтернативу созданию информационных систем на базе монолитных решений от одного вендора. Но нужно подчеркнуть, что композитный подход к разработке систем и ранее широко применялся в ИТ-практике. В этом плане новизна SOA заключается в том, что в ней используются более высокоуровневые компоненты, которые в данном случае называются сервисами. При этом новый термин отражает качественное изменение содержания: если раньше компоненты относились сугубо к технологической категории, то сервис ассоциируется с бизнес-функцией. Другими словами, владельцем ИТ-компонента обычно выступает ИТ-подразделение, а ИТ-сервиса — бизнес.
Более того, ключевое новшество SOA заключается даже не в создании ИТ-сервисов как таковых, а в возможности создания и модернизации на их основе новых бизнес-процессов. Сейчас можно уверенно констатировать, что само появление SOA в значительной мере вызвано тем, что в бизнесе стала широко использоваться процессная модель управления предприятием, и в целом SOA отражает общую тенденцию к усилению взаимосвязи ИТ и бизнеса.
Роли и цели участников рынка
В реализации SOA принимают разные стороны: заказчики, платформенные вендоры, поставщики бизнес-решений, интеграторы, сервис-провайдеры (рис. 2). Оценивая их роль, нужно в первую очередь учитывать, что SOA — это не цель, а средство решения бизнес-задач. А бизнес-цели у всех участников рынка разные. Более того, нужно отметить, что у заказчиков есть еще и внутреннее раздвоение — цели в представлении бизнеса, содной стороны, и ИТ-подразделений — с другой.
Всем ли нужна SOA?
SOA — это лишь один из подходов к созданию корпоративных ИТ-систем. Его актуальность на современном этапе развития бизнеса и ИТ растет, но это совсем не значит, что SOA подходит для всех компаний. В любом случае нужно понимать, что SOA — это средство, а не цель. Более того, SOA — это не единственный вариант решения интеграционных задач.
Архитектура SOA наиболее востребована на предприятиях с процессно-ориентированной моделью функционирования, там, где нужна высокая гибкость и скорость реакции бизнеса на внешние изменения. Можно констатировать, что SOA чаще всего используют сервисные организации, работающие с конечными потребителями, в секторах с высоким уровнем конкуренции (телеком, кредитно-финансовая сфера, страхование и т. д.). Очевидно, что SOA очень хорошо подходит для реализации ИТ-систем социального назначения, но интерес к этому подходу со стороны государственных структур пока не очень велик, возможно, из-за невысокого конкурентного уровня в данной сфере.
В то же время использование SOA подразумевает наличие у компании долгосрочной стратегии бизнес-развития и достаточно высокую стабильность выделяемых ИТ-сервисов. Именно по этой причине SOA пока не находит должного применения в малом и среднем бизнесе.
Участие бизнеса в реализации SOA
Как уже говорилось ранее, SOA сама по себе отражает повышение взаимосвязи ИТ и бизнеса, и во многом использование этой архитектуры связано с необходимостью более быстрой реакции ИТ на запросы бизнеса. В то же время, по мнению представителей заказчиков, непосредственное участие бизнеса в реализации SOA должно быть минимальным. Но при этом построение SOA необходимо явно обозначить в ИТ-стратегии предприятия, которая в свою очередь должна быть согласована с руководством. Скорее всего, потребуется одобрение на высшем уровне и специальной ИТ-инфраструктуры (сервисной шины данных и т. п.). Нужна четкая формулировка требований со стороны бизнеса, но реализация бизнес-требований в SOA-архитектуре — это задача ИТ-подразделения.
Кто должен создавать ИТ-сервисы
Реализация SOA изначально подразумевает решение интеграционных задач. И в этом плане важную роль играет выбор и внедрение базовой SOA-платформы. А вот вопрос о создании функциональных ИТ-сервисов остается сегодня открытым. Два-три года назад в теоретических рассуждениях о преимуществах SOA часто рисовалась идеальная картина, в которой бизнес-приложения были представлены в виде наборов сервисов. Однако жизнь показала, что поставщики прикладных решений совсем не спешат реализовать такой подход в своих продуктах.
На практике получается, что сервисы создаются в ходе реализации конкретных проектов, в частности, путем разработки различного рода программных адаптеров (в том числе и с использованием технологий Web Services) к тому или иному функционалу готовых бизнес-приложений. Именно поэтому эффективность реализации SOA-проектов обычно увеличивается по мере роста их числа — за счет использования уже созданных сервисов.
В то же время нужно отметить, что для использования тиражных бизнес-решений в варианте SOA недостаточно лишь средств логического представления функционала в виде сервиса. Принципиально важны также производительность и масштабируемость системы, что обычно подразумевает необходимость радикальной переработки прикладных продуктов для работы в условиях SOA.
Поддержка гетерогенных сред и внешних ИТ-сервисов
Появление SOA изначально подразумевало использование мультивендорных ландшафтов и гетерогенных сред и возможность применения внешних независимых ИТ-сервисов. Однако большинство экспертов считают, что говорить о полной интеграции решений от различных поставщиков не приходится, и пока «мультивендорной» SOA-архитектуры не существует. Но при этом выражается надежда на то, что общие SOA-стандарты появятся в ближайшее время.
Внешние ИТ-сервисы сегодня применяются очень мало по причине их фактического отсутствия на нашем рынке. Однако по мере роста популярности SOA можно ожидать появления подобных предложений на коммерческой основе от сервис-провайдеров, в том числе в рамках реализации модели SaaS («софт как сервис»).
Взаимоотношения заказчика и исполнителя
В этом вопросе нет единства мнений. Кто-то считает, что в организации работ нет принципиальной разницы между не-SOA и SOA-проектами. Но все же чаще высказывается мнение, что роль и значимость ИТ-подразделения заказчика существенно повышается. Ведь в традиционном варианте генеральным подрядчиком обычно выступает внешний интегратор, который отвечает «за все», а ИТ-служба выполняет общий надзор за работой и принимает выполненный проект. В случае же SOA в проекте зачастую участвует несколько исполнителей, и на ИТ-подразделение ложится ответственность за координацию их работ и целостность всего решения. При этом нужно особо отметить важность в общей SOA-системе предприятия базовой интеграционной платформы, внедрение которой обычно выполняет квалифицированный интегратор.
В целом же реализация SOA чаще всего подразумевает активное использование внешних ресурсов и услуг. При этом использование SOA существенно увеличивает возможности маневра ресурсами в рамках проектов: можно, например, разделять их на потоки разработки по отдельным сервисам, расширить выбор среди поставщиков решений. В то же время довольно часто заказчики реализуют SOA-проекты собственными силами, но при этом активно привлекают внешних консультантов. Но в этом случае речь идет о модели аутстафинга (аренды персонала), а не аутсорсинга (услуг организаций).
SOA в России
Принято считать, что отечественный ИТ-рынок следует за мировым с некоторым запаздыванием, и в то время как на Западе накоплен огромный опыт построения SOA-систем, российскими заказчиками SOA пока воспринимается как нечто абстрактное. Речь при этом идет не о личной эрудиции ИТ-специалистов, а о реальной потребности организаций строить сервис-ориентированную архитектуру.
Тем не менее проведенный в мае 2008 г. Интернет-опрос читателей еженедельника PC Week/RE показал, что российские компании уже достаточно широко используют SOA. Так, половина респондентов ответила, что использует подход SOA при реализации ИТ-проектов (в значительной мере или хотя бы частично), еще 20% собираются его применять. Среди лидирующих SOA-платформ на первых позициях оказались решения IBM (32,5%) и Microsoft (24,8%).
Так или иначе, но можно констатировать, что интерес к SOA в нашей стране растет. Уже в ближайшее время можно ожидать, что накопленный опыт в этой области достигнет критической массы, необходимой для широкого применения этого архитектурного подхода российскими компаниями.