10.3.7.3. Принципы SOA

SOA – это выбираемая компанией стратегия доступа и предоставления данных, а не просто тактика или техника интеграции корпоративных приложений. Это принципиальное различие. Переход к SOA в силу масштабности и глубины изменений, которые он вызывает, следует увязывать со стратегическими целями, задачами и эффектом, достигаемым на уровне корпоративной архитектуры.

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

Существует множество международных стандартов, которые большинство производителей ПО, консультантов и пресса ассоциируют с SOA. Основной стандарт – язык XML[212], опубликованный W3C[213]. XML определяет формат данных, передаваемых между системами в рамках SOA. Стандарт XML Schema, также опубликованный W3C, описывает структуру и семантику XML-документа.

Примечание: термин «XML-документ» относится ко всему, что кодируется с помощью XML, например бизнес-письмо, заказ на покупку, обмен сообщениями между сторонами, схема базы данных.

Всего же существует свыше 30 относящихся к SOA стандартов, опубликованных W3C, OASIS (Organization for the Advancement of Structured Information Standards), ISO (International Organization for Standardization), OMG (Object Management Group) и другими организациями: WSDL, WS-Policy, WS-Security, WS-Reliable Messaging, BPEL (Business Process Execution Language), BPMN (Business Process Model and Notation), JSON (Java Script Object Notation) и т. д.

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

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

Компании следует определить и задокументировать то, какие ресурсы будут предоставляться в рамках SOA – например, процессы, сообщения, объекты данных, хранилища данных, правила, события и т. п.

Также следует рассмотреть и явно задокументировать следующее.

• Все ли предоставляемые ресурсы являются внутренними по отношению к организации, или же они могут включать данные бизнес-партнеров и клиентов.

• Как будет осуществляться контроль за изменениями.

• Работы по переводу программной среды на формат SOA.

• Возможности технологической платформы в части поддержки SOA.

• Новые требования к хранению данных.

В силу гибкости SOA и принятого в нем подхода к предоставлению ресурсов критически важным становится всеобъемлющее и эффективное регулирование. Недостаточно эффективное регулирование является самой распространенной причиной провала инициатив по переходу на SOA.

Основным вопросом регулирования SOA является управление жизненным циклом сервиса от концепции через спецификацию, разработку, тестирование, внедрение и ежедневную эксплуатацию до вывода из эксплуатации. Сюда входит контроль за изменениями в части того, как:

• взаимодействуют подразделения;

• принимаются решения и назначается ответственность;

• меняется процесс;

• проверяются процедуры;

• применяются способы и методы.

В настоящее время существует множество тесно связанных с SOA программных продуктов, к которым относятся сервисные каталоги и репозитории[214], ESB, системы комплексной обработки событий (CEP)[215], BPMS и т. д. Достичь успеха и реализовать преимущества SOA может компания любого масштаба. Но много и тех, кто потерпел неудачу. Перечисленные продукты предоставляют стандартную платформу для реализации SOA на предприятии, но без систематического рассмотрения и утверждения необходимой стратегии, стандартов, методов регулирования и программ подготовки персонала программное обеспечение просто не даст ожидаемого эффекта. Поэтому любой организации, серьезно рассматривающей переход на SOA, расширение области применения SOA или испытывающей проблемы с внедрением SOA, необходимо решить эти вопросы как можно раньше.