|


Василий Анфиногентов, директор отделения автоматизации
деловых процессов «ФОРС – Центр разработки»
Опыт использования концепций SOA и технологий Oracle SOA Suite в интеграционных проектах ФОРС
Источник: статья подготовлена по презентации автора на Oracle
TechForum2008, ноябрь 2008, http://www.oracleclub.ru/techforum/program.html,
секция "Oracle Fusion Middleware".

Целью настоящей статьи является рассказ о том, как основные принципы SOA работают в больших проектах, проектах, объединяющих несколько компаний-разработчиков, большие массы потребителей, какие особенности применения этих принципов удалось выяснить в процессе практической работы.
Следуя Д.Фейгину и используя глубокую аналогию между строительством и разработкой программных систем, в качестве основных принципов SOA мы примем принципы построения крупных городских агломераций, изложенные в классической работе К.Александера «New theory of urban design». Данная работа весьма полезна не только для архитектуры, но и для других областей деятельности, в том числе разработки ПО, поскольку, по словам современников «эта книга была первой, которая обратилась к принципам организации процесса развития крупных городов, а не к описанию желаемых результатов». Любой интеграционный проект аналогичен процессу создания городской агломерации, поскольку он посвящен объединению существующих систем.
К.Александер выделил следующие основные принципы построения крупных систем:
- Распределенное проектирование
- Постоянство изменений
- Последовательное совершенствование
- Рекурсивность решений
Рассмотрим, как эти принципы применялись в двух крупных проектах городского уровня: системе обеспечения работы в режиме «одного окна» и среде электронного взаимодействия. Данные проекты, в силу их сложности, реализовывались консорциумами, в которые входили следующие компании: ИНЭК, Нвижн-груп, Форс, Инфосистемы Джет, НТЦ ИРМ, Гранит, РБК-Софт.
Рис.1 Система обеспечения работы «Одного окна»
Рис.2. Среда электронного взаимодействия.
На приведенных рисунках показана архитектура созданных систем – системы автоматизации деятельности в режиме «одного окна» (рис.1) и системы обеспечения электронного взаимодействия (рис.2).
Первая система посвящена реализации регламентированной деятельности. При этом существует необходимость реализовать интеграцию ряда существующих систем: собственно информационных ресурсов, центральной информационной шины, управляющей исполнением регламентов, систем мониторинга, систем учета обращений. При этом необходимо учесть, что разработчики каждой системы – это, как правило, отдельная компания и работа над развитием системы не останавливалась в процессе исполнения проекта.
Вторая система носит более инфраструктурный характер и призвана обеспечить взаимодействие существующих и разрабатываемых информационных ресурсов, т.е. играет роль классического брокера сообщений. При этом разработка отдельных подсистем также ведется самостоятельными командами разработчиков.
Участие в разработке данных проектов большого количества различных коллективов сделало необходимым использование принципа распределенного проектирования, когда каждая из команд самостоятельно разрабатывает отдельный модуль или подсистему. Принципиальным при подобной разработке является определение интерфейсов взаимодействия между подсистемами, обеспечивающее предсказуемое поведение систем при их взаимодействии. В этом смысле использование SOA архитектуры с центральным узлом интеграции, содержащим каноническую модель данных является, пожалуй, единственно возможным вариантом.
Интерфейсы между подсистемами должны быть открытыми и расширяемыми, поскольку данные проекты, как инфраструктурные, нуждаются в постоянном развитии – как экстенсивном, связанном с увеличением числа подключенных систем, так и интенсивном – заключающемся в появлении новых типов взаимодействия на логическом уровне (например, перехода от отклика на отдельное событие – к комплексной обработке событий и т.д.). Вместе с тем наш опыт свидетельствует, что необходимым является использование центрального интеграционного узла. Подобный узел обеспечивает единство системы, поскольку он содержит и обеспечивает исполнение единых регламентов взаимодействия, поддерживает общую модель данных, обеспечивает применение единых политик и стандартов безопасности.
Применение принципа последовательного совершенствования означает, что при реализации подобных проектов одним из ключевых моментов является итерационный метод разработки, когда за отдельную итерацию заказчику доставляется завершенная функциональность, развиваемая на следующих итерациях. Подобный подход позволил в каждом из этих проектов последовательно переносить фокус разработки с решения чисто технологических задач обеспечения взаимодействия на задачи обеспечения безопасности, информационной совместимости и т.д. На первом этапе реализации системы «одного окна» были формализованы бизнес-процессы, на втором сначала была реализована технологическая основа взаимодействия (и одновременно разработано типовое решение по обработке обращений на местах), на третьем этапе прошла модификация систем безопасности и мониторинга, далее были добавлены дополнительные функции в интеграционную шину, сейчас фокус смещается в сторону реализации механизмов автоматизированной разработки регламентов. В системе обеспечения электронного взаимодействия первая итерация завершилась поставкой полнофункционального брокера сообщений, на следующей итерации была реализована функциональность распределенного взаимодействия отдельных интеграционных узлов, сейчас разработка ориентирована на обеспечение семантического единства интеграционной платформы – развитие подсистемы НСИ, построение канонической модели данных.
Принцип рекурсивности решений означает, что на различных уровнях системы используются одни и те же решения. В приведенных проектах это проявилось следующим образом. В системе обеспечения работы «одного окна» решение по сервисной организации взаимодействия между подсистемами ядра системы было использовано и на уровне взаимодействия с источниками информационных ресурсов и их потребителями – системами обработки обращений. Это позволило использовать на указанных уровнях одинаковые стандарты разработки и унифицировать процесс подключения новых регламентов. В системе обеспечения электронного взаимодействия решения по организации центрального узла системы (единая точка администрирования, слабая связанность систем и т.д.) были тиражированы на уровень территориального и отраслевого узла.
Таким образом, наш опыт показывает, что использование принципов построения крупных городских агломераций в разумном сочетании с принципом централизации взаимодействия позволяет успешно реализовать крупные проекты масштаба города, базирующиеся на подходе SOA.
|