Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие.doc
Скачиваний:
434
Добавлен:
04.06.2015
Размер:
2.33 Mб
Скачать

Компонент и соединитель

Среди структур данного вида выделяются следующие.

Процесс, или сообщающиеся процессы. Подобно всем прочим структурам «компонент и соединитель», эта является ортогональной по отношению к модульным структурам, а связана она с динамическими аспектами исполняемой системы. В качестве блоков в данном случае выступают процессы или потоки, связь между которыми устанавливается путем передачи данных, синхронизации и/или операций исключения. Здесь, как и во всех остальных структурах «компонент и соединитель», действует отношение прикрепления (attachment), демонстрирующее связь компонентов друг с другом. Структура процессов существенно облегчает конструирование рабочей производительности и готовности системы.

Параллелизм. Данная структура «компонент и соединитель» позволяет архитекторам выявлять перспективы параллелизма и локализовывать возможности состязаний за ресурсы. В качестве блоков выступают компоненты, а соединители играют роль «логических потоков». Логическим потоком называется такая последовательность вычислений, которую впоследствии, в ходе процесса проектирования, можно связать с отдельным физическим потоком. Структура параллелизма задействуется на ранних этапах процесса проектирования, способствуя выявлению требований к организации параллельного исполнения.

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

Клиент-сервер.Эта структура предназначена для систем, сконструирован ных в виде группы взаимодействующих клиентов и серверов. В качестве компонентов в данном случае выступают клиенты и серверы, а соединителями являются протоколы и сообщения, которыми они обмениваются в процессе обеспечения работоспособности системы. Такая структура требуется для разделения задач (обеспечивающего модифицируемость), физического распределения и выравнивания нагрузок (обеспечивающего эффективность исполнения).

Распределение

Среди структур распределения выделяются следующие.

Размещение. Структура размещения отражает распределение программного обеспечения между элементами аппаратной обработки и передачи данных. В качестве распределяемых элементов могут выступать программные продукты (как правило, процессы из представления «компонент и соединитель»), аппаратные объекты (процессоры) и каналы передачи данных. Отношения устанавливаются по распределению и демонстрируют физические устройства, на которых размещаются программные элементы; возможны также отношения миграции, однако они устанавливаются только в случае динамического распределения. Настоящее представление позволяет инженерам анализировать производительность, целостность данных, готовность и безопасность. Все эти характеристики чрезвычайно важны в условиях распределенных и параллельных систем.

Реализация. Данная структура демонстрирует отображение программных элементов (обычно — модулей) на файловую структуру (структуры) в условиях разработки системы, интеграции и управления конфигурациями. Это крайне важно в контексте организации разработки и процессов конструирования.

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

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

Таблица 4.20

Архитектурные структуры системы

Программная структура

Отношения

Варианты практического применения

Декомпозиция

«Является подмодулем...»; «пользуется скрытой информацией совместно с...»

Распределение ресурсов, структурирование и планирование проекта; информационная закрытость, инкапсуляция; управление конфигурациями

Варианты использования

«Требует наличия...»

Конструирование подмножеств; инженерные расширения

Многоуровневая

«Требует наличия...», «обращается к услугам...», «обобщает...»

Инкрементная разработка; реализация систем на основе переносимости «виртуальных машин»

Классы

«Является экземпляром...», «использует метод доступа из...»

В объектно-ориентированных системах проектирования, производящих на основе универсального шаблона быстрые, почти идентичные реализации

Клиент-сервер

«Обменивается данными с...», «зависит от...»

Распределенное функционирование; разделение задач; анализ производительности; выравнивание нагрузки

Процесс

«Исполняется параллельно с...», «может исполняться параллельно с...», «исключает», «предшествует» и т. д.

Анализ сроков; анализ производительности

Параллелизм

«Исполняется в одном логическом потоке»

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

Совместно используемые данные

«Производит данные», «потребляет данные»

Производительность; целостность данных, модифицируемость

Размещение

Распределение, миграция

Анализ производительности, готовности и защиты

Реализация

«Хранится в...»

Управление конфигурациями, интеграция, тестирование

Распределение функций

«Назначается...»

Управление проектом, оптимальное использование интеллектуальных ресурсов, управление общностью

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]