Аналитические шаблоны проектирования приложений

Интеграционные шаблоны проектирования

Разбить на страницы
Показывать лекцию целиком

Введение

Паттерны интеграции информационных систем представляют собой верхний уровень классификации шаблонов проектирования. Данный вид шаблонов имеет внутреннюю классификацию, по аналогии с рассмотренными в предыдущей главе паттернами архитектурного проектирования.

Интеграционные шаблоны предлагают различные варианты решений типовых задач, возникающих в ходе разработки интеграционных продуктов и процессов.

Класс интеграционных шаблонов проектирования

В шаблонах интеграции традиционно выделяют следующие группы паттернов:

  • Структурные шаблоны интеграции. Описывают структуру основных компонентов интегрированной метасистемы.
  • Шаблоны по методу интеграции. Группа паттернов, выделенных в соответствии с методами интеграции, которые регламентируют взаимодействие отдельных корпоративных систем, включенных в единый интегрированный информационный ландшафт.
  • Шаблоны по способу интеграции. Шаблоны, описывающие способ организации обмена данными между системами.
  • Интеграционные шаблоны, по сравнению с архитектурными паттернами, являются более конкретными и содержат точные предписания по разработке специализированных программных компонент.

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

    Структурные шаблоны интеграции

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

    Точка-точка

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

    Шаблон используется в основном при стихийной интеграции систем. Он может использоваться только в том случае, когда одна из систем занимает пассивную роль (поставщик), а другая – активную (потребитель).

    Когда обе системы должны являться активными, данный паттерн не подходит.

    (рис 4.1.1) Шаблон "Точка-точка"

    Звезда

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

    Интеграционная среда при этом:

  • должна иметь универсальный интерфейс для доступа к ней активных систем;
  • при необходимости может использовать интерфейсы пассивных систем;
  • включает в себя реализацию основных уровней интегрирующей среды:
  • Базовый уровень – ядро интегрирующей среды, которое содержит платформу для исполнения сценариев транзакции, базовый функционал по взаимодействию приложений, службы протоколирования, мониторинга состояния интегрирующей среды и пр.
  • Уровень сценариев –графическая схема обмена сообщениями между системами, алгоритмы трансформации и маршрутизации интеграционных сообщений.
  • Транспортный уровень – слой, ответственный за физическую доставку сообщений между системными компонентами.
  • Уровень адаптеров– системный слой, на котором организовано взаимодействие с системой посредством ее внешнего интерфейса (API), генерация сообщений, передача сообщений базовому уровню посредством транспортного.
  • (рис 3.1.2) Шаблон "Звезда"

    Смешанный способ

    Этот способ совмещает в себе механизмы интеграции, описанные в шаблонах "Точка-точка" и "Звезда".

    Его реализация связана с необходимостью компромиссного сочетания широких функциональных возможностей шаблона "Звезда" и простотой разработки паттерна "Точка-точка", применение которых может диктоваться специфическими требованиями (такими как безопасность) к разработке процесса интеграции.

    Данный шаблон предполагает использование интерфейсов внешних систем непосредственно напрямую, в обход обшей интегрирующей среды.

    Смешанный способ сочетает преимущества централизации управления процессами (шаблон "Звезда") взаимодействия систем, унификации интерфейсов, а также возможность использовать прямые интерфейсы между системами.

    Шаблоны по методу интеграции

    Под методом интеграции понимается способ передачи, который в своей основе оперирует тем или иным объектом. В роли объекта могут выступать как данные, так и сервисы или специфический функционал.

    Интеграция систем по данным

    Это исторически первый подход в решении задач интеграции. Он характерен для традиционных систем "клиент-сервер", рассмотренных нами ранее. При интеграции приложений по данным основным системообразующим фактором при построении информационной системы является интегрированная база данных коллективного доступа. Концепция интеграции в этом подходе состоит в том, что приложения объединяются в систему вокруг интегрированных данных под управлением единого СУБД. Интегрирующей средой является промышленная база данных со стандартным интерфейсом доступа к ним. Все функции прикладной обработки размещаются в клиентских программах.

    Применение этого шаблона к решению конкретных задач характерно, когда есть необходимость передачи больших объемов данных.

    Функционально-центрический

    Ядром шаблона "Функционально-центрический" являются сервисы.

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

    В качестве сервисов должны быть реализованы следующие функции:

  • Прикладная обработка.
  • Контроль информационной безопасности.
  • Служба времени.
  • Централизованный файловый доступ и пр.
  • Все сервисы являются интегрированными в том же смысле, что и интегрированные данные в базе данных коллективного доступа, т.е. реализуемые сервисами функции достоверны, непротиворечивы и общедоступны.

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

    При использовании паттерна "Функционально-центрический" приложение декомпозируется на три уровня:

  • Взаимодействие с пользователем.
  • Прикладная обработка.
  • Доступ и управление данными.
  • Интеграционный шаблон "Функционально-центрический" наиболее удачно сочетается с архитектурным шаблоном "Клиент-сервер".

    Объектно-центрический

    Концепция, описываемая в шаблоне проектирования "Объектно-центрический", состоит в том, что программные продукты объединяются вокруг общедоступных распределенных объектов со стандартными интерфейсами.

    Характерными особенностями данного подхода к разработке программного обеспечения являются:

  • унифицированный язык спецификации интерфейсов объектов;
  • отделение реализации компонентов от спецификации их интерфейсов;
  • общий механизм поддержки взаимодействия объектов, реализуемый в виде брокер-объектных запросов или общей интеграционной шины, поддерживающей взаимодействие объектов.
  • Данный паттерн проектирования наиболее удачно сочетается с шаблоном "Репозиторий", который должен выступать в виде объекта. Его реализация также наиболее удачно сочетается с шаблоном "Клиент-сервер" или же многослоевой архитектурой.

    На основе модели предметной области

    Условия, в которых требуется реализовать интеграцию в рамках единой системы разнородных интегрирующих средств, достаточно распространены в современном информационном мире.Как правило, в качестве интеграционных объектов выступают корпоративные информационные ландшафты, в которых применяются различные покупные и коробочные системы. Для подобных ситуаций залогом успеха является использование единой и унифицированной понятийной модели, представляющей собой базу метаданных, хранящую описания бизнес-объектов каждого из компонентов и отношения между этими объектами.

    Обязательными условиями применения этого шаблона являются:

  • поддержка соответствия между интегрируемыми компонентами и их атрибутами;
  • Реализация атрибутов и интеграционных компонентов должны быть независимы от конкретного программного обеспечения.
  • Основная задача интеграции – разработка компонентов, основанных на единой понятийной модели, описывающей объекты предметной области, их взаимосвязи и поведение.
  • Преобразование сообщений в вызовы функций той или иной интегрирующей среды обеспечивается дополнительной интегрирующей оболочкой с единым интерфейсом, который предназначен только для обмена сообщениями.

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

    Интеграционный шаблон на основе модели предметной области наиболее удачно сочетается с системами, спроектированными по архитектурному шаблону "Модель предметной области".

    Шаблоны по типу обмена данными

    Следующая группа шаблонов конкретизирует способы обмена между системами. Рассматриваемые паттерны базируются на рассмотренных ранее структурных шаблонах и описывают способы их реализации.

    Файловый обмен

    Шаблон "Файловый обмен" основан на структурном шаблоне "Точка-точка". Его суть состоит в том, что "системы-источники" экспортируют необходимые данные в форматах (XML и пр.), пригодных для импорта и последующего преобразования и загрузки в "системы-потребители".

    Общая база данных

    Этот шаблон является одним из вариантов реализации шаблона "Интеграция систем по данным". Он позволяет получить полностью интегрированную систему приложений, работающую с едиными данными в любой момент времени.

    Изменения, произведенные в одном из приложений, автоматически отражаются в другом. За корректность и непротиворечивость данных отвечает многопользовательская СУБД.

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

    Удаленный вызов данных

    Это пример реализации объектно-центрического шаблона проектирования. При таком подходе приложения интегрированы на уровне отдельных функций. Изменение данных в другой системе происходит с помощью удаленного вызова конкретной функции.

    Каждая из систем самостоятельно заботится о поддержке данных в корректном состоянии, что является довольно сложной задачей и приводит к их возможной деконсистентности.

    Обмен сообщениями

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

    Заключение об интеграционных шаблонах

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

    Необходимо отметить, что в данной группе содержатся как достаточно концептуальные шаблоны, описывающие подходы к проектированию ("На основе предметной области", "Функционально-центрический", "Объектно-центрический" и пр.), так и шаблоны, предлагающие конкретные решения по реализации интеграций ("Файловый обмен","Удаленный вызов данных" и пр.).

    Страницы:

    Введение

    Паттерны интеграции информационных систем представляют собой верхний уровень классификации шаблонов проектирования. Данный вид шаблонов имеет внутреннюю классификацию, по аналогии с рассмотренными в предыдущей главе паттернами архитектурного проектирования.

    Интеграционные шаблоны предлагают различные варианты решений типовых задач, возникающих в ходе разработки интеграционных продуктов и процессов.

    Класс интеграционных шаблонов проектирования

    В шаблонах интеграции традиционно выделяют следующие группы паттернов:

  • Структурные шаблоны интеграции. Описывают структуру основных компонентов интегрированной метасистемы.
  • Шаблоны по методу интеграции. Группа паттернов, выделенных в соответствии с методами интеграции, которые регламентируют взаимодействие отдельных корпоративных систем, включенных в единый интегрированный информационный ландшафт.
  • Шаблоны по способу интеграции. Шаблоны, описывающие способ организации обмена данными между системами.
  • Интеграционные шаблоны, по сравнению с архитектурными паттернами, являются более конкретными и содержат точные предписания по разработке специализированных программных компонент.

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

    Структурные шаблоны интеграции

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

    Точка-точка

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

    Шаблон используется в основном при стихийной интеграции систем. Он может использоваться только в том случае, когда одна из систем занимает пассивную роль (поставщик), а другая – активную (потребитель).

    Когда обе системы должны являться активными, данный паттерн не подходит.

    (рис 4.1.1) Шаблон "Точка-точка"

    Звезда

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

    Интеграционная среда при этом:

  • должна иметь универсальный интерфейс для доступа к ней активных систем;
  • при необходимости может использовать интерфейсы пассивных систем;
  • включает в себя реализацию основных уровней интегрирующей среды:
  • Базовый уровень – ядро интегрирующей среды, которое содержит платформу для исполнения сценариев транзакции, базовый функционал по взаимодействию приложений, службы протоколирования, мониторинга состояния интегрирующей среды и пр.
  • Уровень сценариев –графическая схема обмена сообщениями между системами, алгоритмы трансформации и маршрутизации интеграционных сообщений.
  • Транспортный уровень – слой, ответственный за физическую доставку сообщений между системными компонентами.
  • Уровень адаптеров– системный слой, на котором организовано взаимодействие с системой посредством ее внешнего интерфейса (API), генерация сообщений, передача сообщений базовому уровню посредством транспортного.
  • (рис 3.1.2) Шаблон "Звезда"

    Смешанный способ

    Этот способ совмещает в себе механизмы интеграции, описанные в шаблонах "Точка-точка" и "Звезда".

    Его реализация связана с необходимостью компромиссного сочетания широких функциональных возможностей шаблона "Звезда" и простотой разработки паттерна "Точка-точка", применение которых может диктоваться специфическими требованиями (такими как безопасность) к разработке процесса интеграции.

    Данный шаблон предполагает использование интерфейсов внешних систем непосредственно напрямую, в обход обшей интегрирующей среды.

    Смешанный способ сочетает преимущества централизации управления процессами (шаблон "Звезда") взаимодействия систем, унификации интерфейсов, а также возможность использовать прямые интерфейсы между системами.

    Шаблоны по методу интеграции

    Под методом интеграции понимается способ передачи, который в своей основе оперирует тем или иным объектом. В роли объекта могут выступать как данные, так и сервисы или специфический функционал.

    Интеграция систем по данным

    Это исторически первый подход в решении задач интеграции. Он характерен для традиционных систем "клиент-сервер", рассмотренных нами ранее. При интеграции приложений по данным основным системообразующим фактором при построении информационной системы является интегрированная база данных коллективного доступа. Концепция интеграции в этом подходе состоит в том, что приложения объединяются в систему вокруг интегрированных данных под управлением единого СУБД. Интегрирующей средой является промышленная база данных со стандартным интерфейсом доступа к ним. Все функции прикладной обработки размещаются в клиентских программах.

    Применение этого шаблона к решению конкретных задач характерно, когда есть необходимость передачи больших объемов данных.

    Функционально-центрический

    Ядром шаблона "Функционально-центрический" являются сервисы.

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

    В качестве сервисов должны быть реализованы следующие функции:

  • Прикладная обработка.
  • Контроль информационной безопасности.
  • Служба времени.
  • Централизованный файловый доступ и пр.
  • Все сервисы являются интегрированными в том же смысле, что и интегрированные данные в базе данных коллективного доступа, т.е. реализуемые сервисами функции достоверны, непротиворечивы и общедоступны.

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

    При использовании паттерна "Функционально-центрический" приложение декомпозируется на три уровня:

  • Взаимодействие с пользователем.
  • Прикладная обработка.
  • Доступ и управление данными.
  • Интеграционный шаблон "Функционально-центрический" наиболее удачно сочетается с архитектурным шаблоном "Клиент-сервер".

    Объектно-центрический

    Концепция, описываемая в шаблоне проектирования "Объектно-центрический", состоит в том, что программные продукты объединяются вокруг общедоступных распределенных объектов со стандартными интерфейсами.

    Характерными особенностями данного подхода к разработке программного обеспечения являются:

  • унифицированный язык спецификации интерфейсов объектов;
  • отделение реализации компонентов от спецификации их интерфейсов;
  • общий механизм поддержки взаимодействия объектов, реализуемый в виде брокер-объектных запросов или общей интеграционной шины, поддерживающей взаимодействие объектов.
  • Данный паттерн проектирования наиболее удачно сочетается с шаблоном "Репозиторий", который должен выступать в виде объекта. Его реализация также наиболее удачно сочетается с шаблоном "Клиент-сервер" или же многослоевой архитектурой.

    На основе модели предметной области

    Условия, в которых требуется реализовать интеграцию в рамках единой системы разнородных интегрирующих средств, достаточно распространены в современном информационном мире.Как правило, в качестве интеграционных объектов выступают корпоративные информационные ландшафты, в которых применяются различные покупные и коробочные системы. Для подобных ситуаций залогом успеха является использование единой и унифицированной понятийной модели, представляющей собой базу метаданных, хранящую описания бизнес-объектов каждого из компонентов и отношения между этими объектами.

    Обязательными условиями применения этого шаблона являются:

  • поддержка соответствия между интегрируемыми компонентами и их атрибутами;
  • Реализация атрибутов и интеграционных компонентов должны быть независимы от конкретного программного обеспечения.
  • Основная задача интеграции – разработка компонентов, основанных на единой понятийной модели, описывающей объекты предметной области, их взаимосвязи и поведение.
  • Преобразование сообщений в вызовы функций той или иной интегрирующей среды обеспечивается дополнительной интегрирующей оболочкой с единым интерфейсом, который предназначен только для обмена сообщениями.

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

    Интеграционный шаблон на основе модели предметной области наиболее удачно сочетается с системами, спроектированными по архитектурному шаблону "Модель предметной области".

    Шаблоны по типу обмена данными

    Следующая группа шаблонов конкретизирует способы обмена между системами. Рассматриваемые паттерны базируются на рассмотренных ранее структурных шаблонах и описывают способы их реализации.

    Файловый обмен

    Шаблон "Файловый обмен" основан на структурном шаблоне "Точка-точка". Его суть состоит в том, что "системы-источники" экспортируют необходимые данные в форматах (XML и пр.), пригодных для импорта и последующего преобразования и загрузки в "системы-потребители".

    Общая база данных

    Этот шаблон является одним из вариантов реализации шаблона "Интеграция систем по данным". Он позволяет получить полностью интегрированную систему приложений, работающую с едиными данными в любой момент времени.

    Изменения, произведенные в одном из приложений, автоматически отражаются в другом. За корректность и непротиворечивость данных отвечает многопользовательская СУБД.

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

    Удаленный вызов данных

    Это пример реализации объектно-центрического шаблона проектирования. При таком подходе приложения интегрированы на уровне отдельных функций. Изменение данных в другой системе происходит с помощью удаленного вызова конкретной функции.

    Каждая из систем самостоятельно заботится о поддержке данных в корректном состоянии, что является довольно сложной задачей и приводит к их возможной деконсистентности.

    Обмен сообщениями

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

    Заключение об интеграционных шаблонах

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

    Необходимо отметить, что в данной группе содержатся как достаточно концептуальные шаблоны, описывающие подходы к проектированию ("На основе предметной области", "Функционально-центрический", "Объектно-центрический" и пр.), так и шаблоны, предлагающие конкретные решения по реализации интеграций ("Файловый обмен","Удаленный вызов данных" и пр.).

    Вернуться к учебному плану