Развертывания

Архитектурное представление модели

Модель развертывания определяет физическую архитектуру системы в понятиях

связанных узлов. Узлы — это аппаратные устройства, на которых могут выполняться

компоненты программного обеспечения. Часто мы знаем, на что будет похожа

физическая архитектура системы раньше, чем приступим к разработке.

В этом случае узлы и связи между ними могут быть выстроены в модель развертывания

уже во время рабочего процесса определения требований.

В ходе выполнения проекта мы решаем, какие классы являются активными, то

есть нитями или процессами. Мы решаем, что должен делать каждый активный

объект, каким должен быть цикл жизни активных объектов и как активные объекты

должны передавать, синхронизировать и совместно использовать информацию.

Активные объекты размещаются в узлах модели развертывания. Размещая активные

объекты в узлах, мы рассматриваем потенциал узлов, как-то: мощность процессора,

размер памяти и характеристики подсоединений, например пропускную

способность и доступность.

Узлы и связи модели развертывания и распределение активных объектов по

узлам могут быть показаны при помощи диаграмм развертывания (приложение

А). На этих диаграммах можно также показать распределение по узлам выполняемых

компонентов. Система ATM из нашего примера разнесена по трем

различным узлам.

Пример. Архитектурное представление модели развертывания банкомата (ATM),

Клиент банка получает доступ к системе через узел Клиента ATM, который обращается

для выполнения транзакций к Серверу Приложений ATM (рис. 4.10). Сервер

Приложений ATM у в свою очередь, использует Сервер Данных ATM ддя выполнения

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

Снять деньги со счета, который мы классифицировали как важный

для архитектуры, но и для других вариантов использования, таких как Внести деньги

на счет и Перечислить деньги на другой счет. В подразделе «Создание модели проектирования

из аналитической модели» главы 3 мы описываем, какие классы выбрали

для реализации варианта использования Снять деньги со счета.

Когда узлы определены, на них можно повесить функциональность. Для простоты

мы сделаем это, загружая на каждый узел подсистему целиком (см. рис. 4.8).

Подсистема Интерфейс ATM загружается на узел Клиент ATM, подсистема Управление

Транзакциями — на Сервер Приложений ATM и подсистема Управление

Счетами — на Сервер Данных ATM. В результате каждый активный класс этих подсистем

(см. подраздел «Классы группируются в подсистемы» главы 3 и рис. 3.10) __

разворачивается на соответствующем узле, превращаясь в работающий на узле

процесс. Каждый из этих процессов обслуживает и держит в пространстве процесса

объекты других (обычных, неактивных) классов подсистемы. Развертывание активных

объектов показано на рис. 4.11, где активные классы системы ATM распределены

по узлам, а активные объекты показаны в виде прямоугольников с утолщенной

рамкой.

Рис. 4.10. Модель развертывания определяет три узла: Клиент ATM,

Сервер Приложений ATM и Сервер Данных ATM

Рис. 4.11. Архитектурное представление модели развертывания

Это упрощенный пример распределения системы. В реальной системе распределение,

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

было бы использование для распределения объектов программного обеспечения

среднего уровня, например брокера объектных запросов (ORB).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: