- •Министерство образования Российской Федерации
- •Введение
- •2.5. Абстрактный прецедент «Автоматический режим работы системы»
- •2.6. Абстрактный прецедент «Планирование работы системы управления дамбой»
- •2.7. Конкретный прецедент «Запуск системы»
- •2.8. Конкретный прецедент «Исправление ошибки функционирования дамбы»
- •3. Статическая модель предметной области
- •4. Разбиение на объекты
- •5. Динамическая модель
- •5.1. Диаграмма кооперации для прецедента «Запуск системы»
- •5.2. Диаграмма кооперации для прецедента «Исправление ошибок»
- •5.3. Диаграмма кооперации для прецедента «Остановка системы»
- •5.4. Консолидация диаграмм кооперации
- •6. Разбиение на подсистемы
- •7. Разбиение системы на задачи
- •7.1. Выделение задач в подсистеме управления исправлением ошибок
- •7.2. Выделение задач в подсистеме шлюзов
- •7.3. Выделение задач в подсистеме диспетчера
- •7.4. Определение интерфейсов задач
- •7.5. Проектирование класса абстрагирования данных
- •7.6. Обсуждение альтернативных архитектур
- •8. Проект распределенной системы управления дамбой
- •8.1. Структура подсистемы управления дамбой
- •8.2. Структура подсистемы шлюзов
- •8.3. Структура подсистемы диспетчера
- •8.4.Интерфейсы подсистем
- •9. Проектирование скрывающих информацию классов
- •9.1. Проектирование классов интерфейса устройств
- •9.2. Проектирование класса, зависящего от состояния
- •10. Разработка детального проекта программы
- •10.1. Проектирование объектов-разъемов
- •10.2. Проектирование составных задач
- •11. Конфигурирование целевой системы.
- •12. Анализ производительности системы управления дамбой.
- •12.1. Сценарий для анализа производительности
- •12.2. Последовательности событий
- •Заключение
- •Список литературы
7.6. Обсуждение альтернативных архитектур
Вместо только что описанной архитектуры мы могли бы ввести для каждого прибора по одному экземпляру задач Интерфейс кнопок, Интерфейс датчика функционирования шлюзов, Интерфейс датчика исправления ошибок и Диспетчер. При наличии одного процессора такое решение нежелательно из-за слишком больших накладных расходов.
Но в многопроцессорной среде для каждого прибора допустимо иметь свой процессор, на котором будут выполняться экземпляры задач Интерфейс кнопок, Интерфейс датчика функционирования шлюза, Интерфейс датчика исправления ошибок и Диспетчер. Задачи Монитор контроля функционирования шлюзов и Монитор контроля исправления ошибок удобно разместить на отдельном процессоре. В случае нескольких ЦП с общей памятью объект абстрагирования данных Состояние по-прежнему хранился бы в разделяемой памяти.
Если же процессоры не располагают общей памятью, то несколько задач не смогут напрямую обращаться к объекту Состояние. Далее мы опишем проект распределенной системы управления приборами.
8. Проект распределенной системы управления дамбой
Физическая конфигурация распределенной системы управления прибором состоит из нескольких узлов, соединенных локальной сетью. В такой среде необходимо установить дисциплину, согласно которой все коммуникации между распределенными подсистемами происходят путем обмена сообщениями. Общая архитектура распределенного ПО показана на рис.16, где представлено несколько экземпляров Подсистемы управления шлюзами, несколько экземпляров Подсистемы шлюзов (по одной на каждый пункт) и один экземпляр подсистемы Диспетчер. Все коммуникации между подсистемами осуществляются посредством слабо связанного обмена сообщениями.
В распределенной конфигурации нет разделяемой памяти, а значит, Диспетчер и экземпляры Подсистемы управления исправлением ошибок не могут напрямую обратиться к объекту абстрагирования данных Состояние, как было в предыдущем случае. Один из способов решить проблему - поместить такой объект в серверную задачу. Вместо того чтобы вызывать операцию объекта абстрагирования данных, клиентская задача отправит синхронное сообщение с ответом задаче Сервер Состояния и Плана работы системы исправления ошибок. Но при этом сервер может стать узким местом, поскольку у него есть довольно много клиентов. Альтернативное решение – применение репликации данных. Каждый экземпляр Подсистемы управления исправлением ошибок хранит собственный локальный объект Локальное Состояние и План работы системы исправления ошибок. Есть такой объект и у Диспетчера, только в нем содержатся состояния и называется он Сводное Состояние и План работы системы исправления ошибок.
Рис. 16. Архитектура распределенного ПО
8.1. Структура подсистемы управления дамбой
В распределенном проекте для каждого шлюза имеется по одному экземпляру Подсистемы управления исправлением ошибок, включающему по одному экземпляру задач Интерфейс кнопки включения, Интерфейс кнопки исправления ошибок, Интерфейс кнопки включения автомата, Интерфейс кнопки выключения, Интерфейс Датчика исправления ошибок и Диспетчер. Кроме того, каждый экземпляр Подсистемы управления исправлением ошибок хранит собственный локальный экземпляр объекта абстрагирования данных Состояние.
Архитектура задач для Подсистемы управления исправлением ошибок показана на рис.17. Она аналогична архитектуре для нераспределенного решения с тем отличием, что экземпляров подсистем существует несколько.
Пересмотренная архитектура задач показана на рис.18. Здесь изображены интерфейсы задач, а также способ доступа к объектам, скрывающим информацию. Проект объекта абстрагирования данных Локальное Состояние проще, чем для централизованного решения.
На этапе конфигурирования целевой системы каждый экземпляр Подсистемы управления исправлением ошибок обычно отображается на узел физического прибора, поэтому программы в каждом узле исполняются независимо от всех остальных.
Рис.17. Архитектура задач для подсистемы управления исправлением ошибок
Рис.18. Архитектура задач для подсистемы управления исправлением ошибок: интерфейсы задач