Интеграционные шаблоны проектирования
Объектно-центрический
Концепция, описываемая в шаблоне проектирования "Объектно-центрический", состоит в том, что программные продукты объединяются вокруг общедоступных распределенных объектов со стандартными интерфейсами.
Характерными особенностями данного подхода к разработке программного обеспечения являются:
- унифицированный язык спецификации интерфейсов объектов;
- отделение реализации компонентов от спецификации их интерфейсов;
- общий механизм поддержки взаимодействия объектов, реализуемый в виде брокер-объектных запросов или общей интеграционной шины, поддерживающей взаимодействие объектов.
Данный паттерн проектирования наиболее удачно сочетается с шаблоном "Репозиторий", который должен выступать в виде объекта. Его реализация также наиболее удачно сочетается с шаблоном "Клиент-сервер" или же многослоевой архитектурой.
На основе модели предметной области
Условия, в которых требуется реализовать интеграцию в рамках единой системы разнородных интегрирующих средств, достаточно распространены в современном информационном мире.Как правило, в качестве интеграционных объектов выступают корпоративные информационные ландшафты, в которых применяются различные покупные и коробочные системы. Для подобных ситуаций залогом успеха является использование единой и унифицированной понятийной модели, представляющей собой базу метаданных, хранящую описания бизнес-объектов каждого из компонентов и отношения между этими объектами.
Обязательными условиями применения этого шаблона являются:
- поддержка соответствия между интегрируемыми компонентами и их атрибутами;
- Реализация атрибутов и интеграционных компонентов должны быть независимы от конкретного программного обеспечения.
- Основная задача интеграции – разработка компонентов, основанных на единой понятийной модели, описывающей объекты предметной области, их взаимосвязи и поведение.
Преобразование сообщений в вызовы функций той или иной интегрирующей среды обеспечивается дополнительной интегрирующей оболочкой с единым интерфейсом, который предназначен только для обмена сообщениями.
Единицей информационного обмена в рассматриваемом подходе являются сообщения, поэтому целесообразно строить такое программное обеспечение на основе программных продуктов с архитектурой, основанной на обмене сообщениями.
Интеграционный шаблон на основе модели предметной области наиболее удачно сочетается с системами, спроектированными по архитектурному шаблону "Модель предметной области".
Шаблоны по типу обмена данными
Следующая группа шаблонов конкретизирует способы обмена между системами. Рассматриваемые паттерны базируются на рассмотренных ранее структурных шаблонах и описывают способы их реализации.
Файловый обмен
Шаблон "Файловый обмен" основан на структурном шаблоне "Точка-точка". Его суть состоит в том, что "системы-источники" экспортируют необходимые данные в форматах (XML и пр.), пригодных для импорта и последующего преобразования и загрузки в "системы-потребители".
Общая база данных
Этот шаблон является одним из вариантов реализации шаблона "Интеграция систем по данным". Он позволяет получить полностью интегрированную систему приложений, работающую с едиными данными в любой момент времени.
Изменения, произведенные в одном из приложений, автоматически отражаются в другом. За корректность и непротиворечивость данных отвечает многопользовательская СУБД.
Данный паттерн затруднительно интегрировать в уже существующие системы, но удобно использовать для вновь создаваемых.
Удаленный вызов данных
Это пример реализации объектно-центрического шаблона проектирования. При таком подходе приложения интегрированы на уровне отдельных функций. Изменение данных в другой системе происходит с помощью удаленного вызова конкретной функции.
Каждая из систем самостоятельно заботится о поддержке данных в корректном состоянии, что является довольно сложной задачей и приводит к их возможной деконсистентности.
Обмен сообщениями
Данный тип интеграции приложений основан на асинхронном обмене сообщениями с помощью общей шины данных и предназначен для интеграции независимых приложений. За логику интеграции отвечает интеграционная шина, в отличие от других типов интеграции, где за логику интеграции отвечала одна из интегрируемых систем. Такой подход позволяет интегрировать новые системы, а также изменять логику интеграции, легко приводя ее в соответствие с бизнес-логикой процесса.
Заключение об интеграционных шаблонах
В данной лекции мы обсудили одну из основных групп паттернов проектирования – интеграционные шаблоны. Важность и значимость этой группы шаблонов в ближайшем будущем будет только возрастать, учитывая современные тенденции к интеграции корпоративных информационных систем, созданию концепции мировых электронных правительств и т.д.
Необходимо отметить, что в данной группе содержатся как достаточно концептуальные шаблоны, описывающие подходы к проектированию ("На основе предметной области", "Функционально-центрический", "Объектно-центрический" и пр.), так и шаблоны, предлагающие конкретные решения по реализации интеграций ("Файловый обмен","Удаленный вызов данных" и пр.).