Способы связывания приложений. Интеграция данных.
Способы связывания приложений.
Архитектура практически любого приложения может быть представлена тремя логическими уровнями:
1. уровнем представления — это уровень пользовательского интерфейса, предназначенный для просмотра, ввода и корректировки данных, отправки на выполнение запросов конечными пользователями приложения;
2. уровнем бизнес-логики — уровень, на котором сосредоточена бизнес-логика приложения, осуществляется управление потоками данных и организуется взаимодействие частей приложения;
3. уровнем данных — уровень, отвечающий за организацию доступа к данным и работу с базой данных, это уровень серверов баз данных.
Поскольку «стыковка» с промежуточной средой может осуществляться на каждом из логических уровней, выделяют три базовых способа интеграции приложения с промежуточным слоем:
1. интеграция на уровне данных — в промежуточный слой поступают данные из базы данных;
2. функциональная интеграция — промежуточный слой интегрируется с уровнем бизнес-логики посредством API-интерфейсов и сервисов, предоставляемых приложением;
3. интеграция на уровне представлений — в промежуточный слой извлекаются данные по технологии screen scraping («прочесывание экрана»). Обеспечивает доступ к функциям приложения через пользовательский интерфейс путем моделирования ввода данных пользователем и чтения данных с экрана монитора.
Интеграция данных.
Большинство корпоративных приложений хранит информацию в виде плоских файлов, реляционных, иерархических или объектно-ориентированных баз данных. Концепция интеграции данных предполагает, что одно приложение может использовать данные другого приложения, заимствовав их непосредственно из репозитория источника (базы данных или файла).
Интеграцию приложений на уровне данных иллюстрирует рис. 3.10.
Поскольку вся необходимая информация находится в репозитории приложения, ее можно извлекать оттуда, не вторгаясь в работу приложения. Вместе с тем получение доступа к данным приложения связано с определенными рисками (особенно опасна запись обновлений прямо в базу данных, минуя приложение). Кроме того, производители коммерческого программного обеспечения часто меняют схему базы данных в новых версиях приложений, это делает интеграционные решения, основанные на интеграции данных, чувствительными к изменениям.
Перечислим основные проблемы, возникающие при интеграции данных:
1. неоднородность источников данных на физическом уровне (могут использоваться различные форматы файлов, одни источники могут быть веб-сайтами, а другие — объектными базами данных и т.д.);
2. неоднородность источников данных на логическом уровне — неоднородность используемых моделей данных для различных источников;
3. проблема семантического диссонанса;
4. постепенно усложняющийся процесс управления данными. Необходимо обрабатывать постоянно растущие объемы критически важных для бизнеса данных. Причем эти данные становятся все более разнообразными (имеют различный формат, поступают от различных партнеров и систем). Задача управления временем передачи данных, форматами, структурами и объемами становится все более нетривиальной;
5. увеличивается количество бизнес-запросов, требующих своевременной доставки информации потребителю. Причем доставка данных может осуществляться как в пакетном режиме, так и в режиме реального времени;
6. возрастают проблемы с качеством данных. Бизнесу нужны достоверные данные, а потому необходимы инструменты аудита, мониторинга и очистки данных.
Можно привести огромное количество примеров интеграции приложений на уровне данных. Пусть система оформления заказов торговой компании использует справочник продуктов, который должен быть синхронизирован со справочником продуктов ERP-системы. Если коды продуктов не меняются часто, то данные системы-источника (ERP-системы) периодически (ежедневно или еженедельно) должны синхронизироваться с данными приемника (системы оформления заказов).
С технической точки зрения интеграция на уровне данных — это самый простой тип интеграции, который может быть реализован с использованием FTP, командных файлов, различных утилит СУБД, ETL-инструментов и специальных сервисов интеграции данных.
Выбор способов связывания приложений на уровне данных определяется частотой изменения данных, сложностью их преобразований, имеющейся инфраструктурой.
Выделяют три базовых шаблона связывания приложений на уровне данных:
1. файловый обмен;
2. общая база данных;
3. копирование данных.