SOA 2.0
SOA 2.0 — теоретический, еще не сформировавшийся на данный момент виток развития сервисно-ориентированной архитектуры в проекции на современные веб-сервисы.
Содержание |
Причины возникновения концепции
Проницательный читатель наверняка уже догадался, что в этом деле не обошлось без небезызвестного IT оракула. И действительно, согласно всезнающей Википедии, именно компания Oracle впервые заговорила о феномене SOA 2.0. Насколько благожелательно индустрия отнеслась к инициативе Oracle можно судить по достаточно распространенной интерпретации акронима SOA 2.0 – Stupid Oracle Acronym №2. Комментарии, как говорится, излишни. Но не все так однозначно и до сих пор ломаются копья по поводу того, стоят ли за термином SOA 2.0 действительно принципиально новые технологии. Эксперты в области SOA разделились на два противоположных лагеря. Реальность такова, что каждый решает для себя сам – признает ли он концепцию SOA 2.0.
SOA 2.0 как HOA
Как уже было отмечено выше, само понятие сервисно-ориентированной архитектуры настолько расплывчато, что с трудом поддается идентификации. Ситуация значительным образом усугубляется если стоит задача рассказать о преимуществах данной архитектуры человеку, далекому от проектирования информационных систем, но в силу своих обязанностей, принимающему решения, непосредственно влияющие на внедрение SOA. В частности, речь может идти об инвесторах, совете директоров, финансовом менеджменте. Можно проделать достаточно простой мысленный эксперимент. Попробуйте самому себе в нескольких сжатых, конкретных терминах объяснить преимущества SOA перед другими разновидностями архитектуры информационных систем. Весьма затруднительно и не очевидно, не правда ли? Тем не менее, если хорошо постараться, то можно набросать основные плюсы в пользу SOA. На самом деле, в этом мысленном эксперименте кроется один серьезный подвох. Позволю сделать одно предположение относительно читающих в данный момент эту статью. Более чем вероятно, это люди, для которых информационные технологии – естественная среда профессиональной деятельности (предположение основано в первую очередь, на тематике нашего журнала). В таком случае, список преимуществ, предлагаемых сервисно-ориентированной архитектурой, мог бы включать в себя следующие пункты:
- кроссплатформенность
- масштабируемость
- производительность
- управляемость
Однако приведенный выше список, безусловно, ключевых преимуществ SOA оставит холодным сердце, скажем, руководителя финансового департамента, или службы маркетинга. Пользователь, работающий с системой, не интересуется, как и почему именно так, а не иначе она устроена. Единственное, что его волнует – это удобство работы, наглядность и интуитивность интерфейса. До недавнего времени при реализации SOA интересы конечного пользователя, мягко говоря, учитывались недостаточно. Времена меняются и вот уже все, кому не лень говорят о преимуществах клиент-ориентированных компаний. Пришлось перестраиваться и IT-индустрии. Результат – HOA (Human Oriented Architecture, человеко-ориентированная архитектура). Так появилась одна из трактовок SOA 2.0, которую можно вольно охарактеризовать как «SOA с человеческим лицом».
SOA 2.0 как EDA
Еще один трехбуквенный (не подумайте ничего плохого) акроним. EDA – Event Driven Architecture, или событийно-управляемая архитектура. Некоторые эксперты отмечают такую особенность Enterprise 2.0, как тесная интеграция с бизнес-процессами. При этом SOA приобретает не присущую статичным системам гибкость и адаптивность. По мнению некоторых экспертов, как только SOA становится тесно завязанной на бизнес-процессы организации, она перерождается в событийно-управляемую архитектуру. Однако, бизнес-процесс, это, прежде всего – субъект, его осуществляющий, и объект, по отношению к которому процесс направлен. То есть, клиенты, поставщики и сотрудники компании. Знакомо? Да, это уже хорошо знакомая идеология Web 2.0. Что, собственно и позволяет поставить знак равенства между SOA 2.0 и EDA.
Давайте рассмотрим ключевые особенности событийно-ориентированной архитектуры. В контексте EDA событие – это любое изменение в системе. Например, когда кто-то покупает автомобиль, его состояние изменяется с «продается» на «продан». Информационная система автодилера должна соответствующим образом отреагировать на это событие, правильно его идентифицировав, зарегистрировав и обработав. Событийно-ориентированная архитектура включает в себя три базовых компонента – генератор события, обработчик события и менеджер событий. Менеджер событий регистрирует все возникающие в системе события, соответствующим образом идентифицирует и передает обработчику событий. Если требуемый обработчик, по каким-либо причинам, не доступен, событие в зависимости от конкретной реализации, либо ставится в очередь, либо передается другому обработчику. Благодаря такой схеме система становится максимально гибкой и отзывчивой на изменения информационной среды – при возникновении принципиально нового события достаточно подключить новый обработчик, не затрагивая ядра системы.Как DevOps-сервис помогает «разгрузить» высоконагруженные системы BPMSoft Подобные системы обычно строятся на триггерах, реагирующих на определенные события и инициализирующие соответствующие веб-сервисы. Для обработки событий и инициализации веб-сервисов могут быть использованы три стратегии: простая, потоковая и комплексная. Простая обработка (Simple Event Processing) состоит в инициализации веб-сервисов по мере регистрации соответствующих событий. Основное преимущество такой системы – это работа в режиме реального времени. Минус очевиден – не учитывается фактор приоритезации. Потоковая обработка (Event Stream Processing) учитывает существующие зависимости веб-сервисов и объединяет несколько сервисов в один общий поток. Данный подход оправдывает себя в системах с большими накладными расходами на поиск и извлечение информации из базы данных. И, наконец, комплексная обработка (Complex Event Processing) – это так называемое управление по отклонениям. Любое событие расценивается как вывод информационной системы из состояния равновесия. Инициализация веб-сервисов преследует единственную цель – вернуть систему в состояние равновесия (между делом удовлетворяя потребности клиентов системы).
SOA в проекции на Web 2.0
Один из отличительных признаков, позволяющих, по мнению некоторых экспертов, провести четкую грань между SOA и SOA 2.0, это использование полновесных клиентских веб-приложений (Rich Internet Applications, RIA). Такой тип клиентских приложений вовсе не идет вразрез с тенденцией постепенного превращения веб-браузера в самый главный после операционной системы элемент, ведь их средой исполнения по-прежнему является веб-браузер. Наиболее свежее подтверждение такой переориентации - технология Flex от Adobe и технология Silverlight от Microsoft. Анонсированный в рамках акции «Платформа 2008» Silverlight 2, четко позиционируется производителем как инструмент создания Enterprise RIA (порталы, системы телебанкинга и т.д.). Если попытаться систематизировать имеющиеся решения, соответствующие концепции SOA 2.0, отыскав в них общие однотипные элементы, то, как раз одним из таких элементов будет использование AJAX для организации интерфейса между клиентской частью и веб-сервисом. Фактически, AJAX играет роль последней мили, доставляя бизнес-логику Enterprise приложения к клиентской системе. Точки входа конечных пользователей всегда были слабым местом сервисно-ориентированной системы в силу своей неоднородности по множеству параметров. AJAX позволяет убрать этот барьер между SOA и десктопом пользователя системы. И это, в свою очередь, привносит качественные изменения в саму архитектуру. Поэтому, использование AJAX технологии можно причислить к тем факторам, которые способствуют превращению SOA в SOA 2.0.