Архитектура взаимодействия компонент распределенной ИС
Выбор приемлемой технологии создания информационной системы напрямую зависит от выбора архитектуры ИС.
Рассматривая информационную систему как совокупность взаимодействующих компонентов, можно распределить их по следующим физическим уровням:
§ аппаратный - компьютеры, периферийные устройства, сетевое и телекоммуникационное оборудование и т.д.;
§ системный и системно-зависимый - операционные системы, сетевые протоколы и т. д.;
§ прикладной среды - средства middleware (CORBA, DCE, Tuxedo и т.д.), DBMS, Intranet, OLAP, коммуникационные интерфейсы;
§ приложения предметной области;
§ общая инфраструктура - совокупность компонент ИС, пригодных для использования в различных предметных областях.
Такими компонентами, например, являются:
§ средства автоматизации бизнес-процессов (атомарных задач и потоков работ);
§ средства управления доступом к информационным ресурсам;
§ средства составления и печати отчетов (генераторы отчетов).
§ компоненты реализующие модель предметной области(~ей);
Под проектированием архитектуры взаимодействия компонентов информационной системы (уровни II-IV) понимается выделение базовых компонентов, разработка их интерфейсов, а также определение правил и принципов взаимодействия этих компонентов.
Проектирование архитектуры взаимодействия компонентов ИС - один из наиболее важных и сложных этапов и ему не всегда уделяется достаточно внимания при разработке системы.
При проектировании архитектуры взаимодействия распределенных компонентов информационной системы различают следующие типы взаимодействия:
· вертикальный - каждый компонентный имеет уникальный в рамках данной информационной системы интерфейс;
· горизонтальный - все компоненты имеют один и тот же универсальный интерфейс, обеспечивающий межкомпонентное взаимодействие;
· смешанный - все компоненты имеют универсальный базовый интерфейс, при этом каждый компонент специфицирует дополнительные операции для работы со своим доменом предметной области.
Достоинства и недостатки этих типов взаимодействия легко проследить на примере интеграции новой задачи в информационную систему, состоящую из нескольких компонентов.
В случае использования вертикального типа взаимодействия распределенных компонентов объем кода, необходимого для интеграции, будет определяться количеством компонентов системы. Количество интерфейсов в этом случае будет (N-1)*N, где N - число компонентов. Для внедрения новой задачи потребуется 2N+1 раз разрабатывать новые связующие программы. Обычно такое решение является результатом недостаточного внимания, уделяемого проектированию архитектур ИС.
В случае горизонтально построенной системы количество интерфейсов (интеграционного кода) будет минимальным. Добавление нового компонента потребует реализовать дополнительно всего два интерфейса.
При реальной разработке чрезвычайно трудно создать одинаковые интерфейсы для всех подсистем, поэтому наиболее предпочтительным для создания распределенной системы является смешанный тип взаимодействия компонентов. В этом случае построенная архитектура сохраняет свойство универсальности интерфейсов, но позволяет добавлять специфичные для данного приложения операции. Количество кода, необходимого для интеграции новой задачи при такой архитектуре, изменяется в зависимости от конкретного проекта от 2 (горизонтальная архитектура) до 2N+1 (вертикальная архитектура).
Общие интерфейсы компонентов - ключ к проектированию архитектуры, обеспечивающей успешное развитие и поддержку системы на протяжении длительного периода.
При проектировании архитектуры приложений первым шагом должен быть выбор используемых стандартов. С увеличением сложности информационных систем, важность соответствия программного обеспечения стандартам возрастает. Стандарты используются для достижения следующих целей:
· портируемость приложений - перенос приложений на различные аппаратные платформы, операционные системы, сетевые протоколы;
· интероперабельность (interoperability) - возможность совместного использования информации и ресурсов компонентами распределенной системы;
· снижение стоимости системы - интеграция программных систем, поддерживающих общепринятые стандарты, уменьшает стоимость приложений для конечного использования;
· снижение риска выбора программного продукта - использование стандартов освобождает разработчика от привязанности к конкретному программному продукту;
· увеличение времени жизни системы - соответствие стандартам уменьшает риск быстрого устаревания системы.