Автор: Пользователь скрыл имя, 03 Декабря 2011 в 12:18, курсовая работа
Сегодня, в условиях постоянного поиска, направленного на улучшение производственных процессов, и быстрого развития вычислительной техники и прикладного программного обеспечения, сложность информационных систем резко возрастает. Появляются новые концепции, технологии, архитектурные решения построения ИС. Совершается переход от статичной, централизованной структуры ИС к динамичной, гибкой, основанной на распределенности систем получения и обработки информации.
Введение
1.Общая часть
1.1 Единое информационное пространство
2.Специальная часть
2.1Стратегия разработки крупных информационных систем
2.2Архитектура взаимодействия компонент распределенной ИС
2.3Функциональная нагрузка компонентов в ИС
2.4Двухуровневые архитектуры
2.5Трехуровневые архитектуры
2.6Распределенные одноранговые архитектуры
2.7Технологии интеграции компонентов распределенных ИС
3.Заключение
Литература
При проектировании
архитектуры взаимодействия распределенных
компонентов информационной системы различают
следующие типы взаимодействия [13]:
вертикальный - каждый компонентный имеет уникальный в рамках данной информационной системы интерфейс;
горизонтальный - все компоненты имеют один и тот же универсальный интерфейс, обеспечивающий межкомпонентное взаимодействие;
смешанный - все
компоненты имеют универсальный
базовый интерфейс, при этом каждый
компонент специфицирует
Достоинства и
недостатки этих типов взаимодействия
легко проследить на примере интеграции
новой задачи в информационную систему,
состоящую из нескольких компонентов.
В случае использования
вертикального типа взаимодействия
распределенных компонентов объем кода,
необходимого для интеграции, будет определяться
количеством компонентов системы. На рис.
5 показана схема взаимодействия компонентов
вертикально построенной системы. Количество
интерфейсов в этом случае будет порядка
N*N, где N - число компонентов. Для внедрения
новой задачи потребуется 2N+1 раз разрабатывать
новые связующие программы. Обычно такое
решение является результатом недостаточного
внимания, уделяемого проектированию
архитектур ИС.
Рисунок 5.
Вертикальная архитектура
системы
В случае горизонтально
построенной системы (рис. 6) количество
интерфейсов (интеграционного кода)
будет минимальным. Добавление нового
компонента потребует реализовать
дополнительно всего два
Рисунок 6.
Горизонтальная
архитектура системы
При реальной разработке чрезвычайно трудно создать одинаковые интерфейсы для всех подсистем, поэтому наиболее предпочтительным для создания распределенной системы является смешанный тип взаимодействия компонентов (рис. 7). В этом случае построенная архитектура сохраняет свойство универсальности интерфейсов, но позволяет добавлять специфичные для данного приложения операции.
Рисунок 7.
Гибридная архитектура
системы
Количество кода,
необходимого для интеграции новой
задачи при такой архитектуре, изменяется
в зависимости от конкретного проекта
от 2 (горизонтальная архитектура) до 2N+1
(вертикальная архитектура).
Общие интерфейсы
компонентов - ключ к проектированию
архитектуры, обеспечивающей успешное
развитие и поддержку системы на протяжение
длительного периода.
При проектировании
архитектуры приложений первым шагом
должен быть выбор используемых стандартов.
С увеличением сложности
портируемость приложений - перенос приложений на различные аппаратные платформы, операционные системы, сетевые протоколы;
интероперабельность (interoperability) - возможность совместного использования информации и ресурсов компонентами распределенной системы [14];
снижение стоимости системы - интеграция программных систем, поддерживающих общепринятые стандарты, уменьшает стоимость приложений для конечного использования;
снижение риска выбора программного продукта - использование стандартов освобождает разработчика от привязанности к конкретному программному продукту;
увеличение времени
жизни системы - соответствие стандартам
уменьшает риск быстрого устаревания
системы.
Функциональная
нагрузка компонентов
в ИС
Как было сказано
в предыдущем разделе, информационная
система состоит из совокупности,
взаимодействующих друг с другом,
программных компонентов. Каждый из
таких компонентов представляет
собой программный модуль, исполняемый
в рамках отдельного процесса. В компоненте,
согласно [1], могут быть реализованы функции
из следующих трех групп:
группа функций пользовательского интерфейса;
группа прикладных функций, характерных для данной предметной области;
группа функций
хранения и управления данными.
Декомпозиция
функций из этих групп по компонентам
определяет логическую архитектуру
информационной системы. Выбор приемлемой
логической архитектуры информационной
системы является одним из важнейших
этапов проектирования ИС.
С каждой логической
архитектурой может быть связана диаграмма,
описывающая отношения взаимодействия
компонентов в ИС (пример на рис. 8).
Такая диаграмма
представляет собой ориентированный
граф. Дуги графа определяют отношения
взаимодействия между программными
компонентами ИС, являющимися его вершинами.
Вершины, реализующие
функции пользовательского
Вершины, реализующие
функции хранения и управления данными,
называются конечными и образуют множество
конечных вершин T. В этих вершинах происходит
управление (запись, выборка, модификация)
данными в различных источниках информации
(БД, файлах и т.п.).
Всевозможные
цепи между элементами множества S и
T образуют множество цепей C. ИСКлючаем
из множества С все цепи, содержащие дуги,
которые исходят из вершин, реализующих
только функции третьей группы, или которые
входят в вершины, реализующие только
функции первой группы.
Каждой цепи
Ci множества С ставим в соответствие число
Li, равное количеству вершин в множестве,
полученном из множества вершин входящих
в цепь Ci путем исключения повторяющихся
вершин.
Число L, равное
наибольшему из всех Li, определяет количество
уровней в рассматриваемой архитектуре.
Число L фактически обозначает максимальное
количество компонентов, участвующих
в процессе, предполагающем выполнение
функций из первой, второй и третьей групп.
Согласно введенному
формализму, можно выделить следующие,
наиболее распространенные, классы логических
архитектур:
двухуровневые архитектуры (L=2);
трехуровневые (L=3);
распределенные
одноранговые архитектуры (L>3 или
существуют отношения взаимодействия
между компонентами, каждый из которых
реализует функции всех трех групп).
В качестве примера,
на рис. 8 представлен граф, иллюстрирующий
один из вариантов распределенной одноранговой
архитектуры.
Рисунок 8.
Логическая архитектура.
Диаграмма отношений
Двухуровневые
архитектуры
Двухуровневая
архитектура предполагает, что количество
уровней равно двум. Это означает наличие
максимум двух программных компонентов,
в совокупности реализующих функции из
первой, второй и третьей группы.
Один из двух
компонентов выступает в роли
сервера, т.е. реализует набор сервисов,
доступных другому компоненту, который
выступает в роли клиента, т.е. в процессе
работы пользуется сервисами, предоставляемыми
сервером. Компоненты могут располагаться
как на одном компьютере, так и на различных
компьютерах, объединенных в сеть.
Различия в
реализациях двухуровневой
Согласно указанным
вариантам декомпозиции, можно говорить
о следующих двухуровневых
интеллектуального клиента (доступ к удаленным данным, архитектура на базе файлового сервера);
интеллектуального сервера (доступ в режиме терминала, архитектура интеллектуального сервера баз данных)
распределенной
функциональной логики
Двухуровневые
архитектуры обладают рядом достоинств
и недостатков, частично описанных
в [1,2]. Использование двухуровневых
архитектур при построении крупных информационных
систем, исходя из присущих им недостатков,
приводит во многих случаях к краху проектов,
связанных с их разработкой.
Трехуровневые
архитектуры
Трехуровневая
архитектура предполагает, что количество
уровней равно трем, что означает наличие
максимум трех программных компонентов,
которые участвуют в процессе, предполагающем
выполнение функций из первой, второй
и третьей группы.
Трехуровневые
архитектуры предусматривают не
столь жесткие связи между клиентом
и сервером и более гибкие формы распределенной
обработки [2]. Наиболее распространенной
считается архитектура, согласно которой
выделяются три компонента ИС (представления,
прикладной, доступа к информационным
ресурсам), являющиеся автономными и общающиеся
через средства межпроцессного взаимодействия
при помощи стандартных интерфейсов. Отдельные
компоненты могут располагаться как на
одном компьютере, так и на разных компьютерах,
обеспечивая тем самым распределенную
обработку информации. Компонент представления
часто располагается на персональном
компьютере, прикладной компонент (называемый
также сервером приложения) выполняется
сервером среднего уровня под управлением
операционной системы Unix или Windows NT, а компонент
доступа к данным и сами данные располагаются
либо на мощных Unix-серверах, либо на больших
или мини-ЭВМ. Однако на практике все три
компонента могут с успехом выполняться
и на одном компьютере.
Основным элементом
трехуровневой архитектуры
Распределенные
одноранговые архитектуры
Согласно распределенной
одноранговой архитектуре клиент (рис.
10) [2,18], взаимодействующий с сервером
приложений, трактуется более широко,
чем компонент представления. Он
может поддерживать интерфейс с конечным
пользователем, а может выполнять прикладные
функции и являться сервером приложения.
В общем случае, в рамках данной архитектуры,
клиент (сервер) может как предоставлять,
так и запрашивать некоторые сервисы.
Это позволяет на этапе проектирования
информационной системы осуществить такую
декомпозицию функций из указанных выше
трех групп по компонентам ИС, которая
была бы оптимальной в контексте решаемой
задачи.
Рисунок 10.
Распределенная
одноранговая архитектура.
Для обеспечения
взаимодействия компонентов информационной
системы, поддерживающей распределенную
одноранговую архитектуру, необходимо
создать промежуточный
Распределенные
одноранговые архитектуры имеют более
универсальный характер, чем двухуровневые
и трехуровневые архитектуры. Четкое разграничение
логических компонентов, присущее распределенным
одноранговым архитектурам, и рациональный
выбор программных средств позволяют
достичь такого уровня гибкости, открытости
и производительности ИС, который пока
недостижим при использовании двухуровневых
и трехуровневых архитектур.