Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

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

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Описание архитектуры




3.1 Применяемый шаблон архитектуры

На основании выявленных в разделе 2.2 архитектурных мотивов было принято решение использовать шаблон архитектуры ”Клиент-сервер”. В качестве сервера выступает модуль OWS, в качестве клиента – модуль КИНО. Модуль КИНО инициализирует взаимодействие с модулем OWS через механизм сокетов, используя протокол TCP и запрашивает данные воспроизведения для текущего файла регистрации. Модуль OWS отвечает на запросы каждого клиента параллельно, при этом идентификатор клиента неизвестен до начала взаимодействия.

Использование такого шаблона архитектуры имеет следующие преимущества:

- чёткое распределение ролей между модулями;

- большая степень соответствия шаблона выявленным архитектурным мотивам;

- высокая безопасность, обусловленная хранением всех данных и выполнением операций над ними на стороне сервера;

- простота обслуживания, вызванная распределением ролей;

- так как все вычисления выполняются на сервере, то требования к компьютерам на которых установлен клиент снижаются;

- отсутствие дублирования кода модуля-сервера модулем-клиентом.

3.1.1 Основные принципы архитектуры

Основные принципы архитектуры КИНО отображены на диаграмме компонентов (рис 3.2.1). Модуль КИНО реализуется в файле KINO.exe, модуль OWS – в файле IOWS.exe. Взаимодействия происходят через два основных интерфейса:

- интерфейс запроса (TReqInterface);

- интерфейс ответа (TRespInterface).

Каждый запрос модуля КИНО содержит: идентификатор клиента (ClientId), код команды (ComCode), заголовок файла регистрации (DocFileHeader), очередное сообщение (TMessage), и величину допустимого времени ответа (Timeout). Основная информация, содержащая в каждом запросе - код команды, представляющий собой обозначение конкретной операции, которую требуется выполнить на стороне сервера. Код команды может принимать следующие значения:

1) COMMAND_INITIAL. Инициализация воспроизведения файла. Для выполнения данной команды необходима передача заголовка файла регистрации;

2) COMMAND_PLAY. Обработка и воспроизведения сообщения;

3) COMMAND_PAUSE. Приостановка воспроизведения файла;

4) COMMAND_STOP. Остановка воспроизведения файла;

5) COMMAND_DEINITIAL. Деинициализация воспроизведения файла.

Каждый ответ модуля OWS содержит: параметры отображения сообщения (MsgDisplay), заголовок сообщения (MsgHeader), идентификатор ответа (ResponseId), код ответа (ResponseCode). Код ответа может принимать следующие значения:

1) OP_SUCCESSFULL. Операция выполнена успешно;

2) Код ошибки, возникшей при выполнении операции.

Далее более подробно рассматриваются модули программы.

3.1.2 Модуль КИНО

Модуль КИНО предназначен для организации взаимодействия системы с пользователем: предоставления GUI, интерфейса для передачи запросов модулю OWS. В процессе взаимодействия с OWS модуль КИНО выполняет роль клиентской стороны. Далее следует перечисление основных классов модуля. Диаграмма классов представлена на рис 3.2.3.

- Класс взаимодействия с OWS (TInteractionOWS). Осуществляет основные операции по обмену данными с серверным модулем.

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

- Класс сообщения (TMessage). Является представлением одиночного сообщения из файла регистрации.

3.1.3 Модуль OWS

Модуль OWS выполняет основные функции по отображению тактической обстановки и настройке этого отображения. В процессе взаимодействия с модулем КИНО модуль OWS выполняет роль серверной стороны. Ниже указываются основные классы модуля. Диаграмма классов показана на рис 3.2.4.

- Класс взаимодействия с модулем КИНО (TKINOInteraction). Выполняет основные функции по обмену данными с клиентом. Методы класса представляют операции получения запросов от клиента, инициализации обмена, обработки запросов и отправки результирующих пакетов клиенту.

- Класс отображения тактической обстановки (TTactSitDisplay). Основное свойство (property) класса – список сообщений, представленных в виде для отображения (TMsgDisplay). Методы класса являются операциями над данным списком.

- Класс сообщения для отображения (TMsgDisplay). Представляет собой класс сообщения, представленного в виде, необходимом для его последующего отображения на дисплее. Содержит список объектов тактической обстановки (TSitObject), найденных в соответствующем обработанном сообщении из регистрационного файла.

- Класс траектории объекта (TTrack). Содержит основные свойства, необходимые для отображения траектории объекта (TSitObject), которому соотвествует конкретный экземпляр класса.

3.2 Диаграммы классов, компонентов и другие архитектурные представления

Рис 3.2.1 Диаграмма вариантов использования (use case diagram)

 

Рис 3.2.2 Диаграмма компонентов (components diagram)

Рис 3.2.3 Диаграмма классов (class diagram) модуля КИНО

 

Рис 3.2.4 Диаграмма классов (class diagram) модуля OWS

3.3. Применяемые шаблоны проектирования

Для реализации модуля OWS был выбран паттерн Производитель/Потребитель (“Producer/Consumer”)[4)]. При использовании данного паттерна классы выполняют следующие роли:

  • Производитель (Producer). Экземпляры классов в этой роли предоставляют объекты, использующиеся объектами класса Потребитель. Экземпляры класса Производитель создают объекты асинхронно по отношению к тем потокам, которые их используют. Это значит, что иногда объект класса Производитель может создать объект в тот момент, когда все объекты класса Потребитель заняты обработкой других объектов. Экземпляры классов Производитель не ждут, пока объект Consumer станет доступным, вместо этого они помещают созданные ими объекты в очередь и продолжают свою работу.
  • Queue (Очередь). Экземпляры классов в этой роли служат в качестве буфера для объектов, созданных экземплярами классов Producer. Экземпляры классов Producer помещают созданные ими объекты в экземпляр класса Очередь. Объекты остаются там до тех пор, пока объект Consumer не получит их из объекта класса Очередь.
  • Consumer (Потребитель). Экземпляры классов Потребитель используют объекты, созданные объектами Producer. Они получают используемые ими объекты от объекта Queue. Если тот пуст, объект класса Потребитель, желающий получить от него объект, ожидает до тех пор, пока объект класса Производитель не поместит объект в объект Очередь.

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

Рис 3.3.1 Схема взаимодействия объектов при использовании паттерна Producer/Consumer

В модуле OWS роль класса Потребитель играет класс TInteractionKINO, роль класса Производитель – класс TTactSitDisplay, роль класса Очередь – класс TQueue. Класс TQueue хранит объекты класса TTactSitDisplay, выполняя роль буфера и возвращает классу-производителю. Применённый паттерн является удачным решением в сочетании с клиент-серверной архитектурой, т.к. отвечает распределению ролей, описанному в разделе 2.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных