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

Основная цель архитектуры, ориентированной на взаимодействие, - отделить взаимодействие пользователя от абстракции данных и обработки бизнес-данных. Архитектура программного обеспечения, ориентированная на взаимодействие, разбивает систему на три основных раздела:

  • Data module - Модуль данных обеспечивает абстракцию данных и всю бизнес-логику.

  • Control module - Модуль управления определяет последовательность действий по управлению и конфигурации системы.

  • View presentation module - Модуль представления представления отвечает за визуальное или звуковое представление вывода данных, а также предоставляет интерфейс для ввода данных пользователем.

Архитектура, ориентированная на взаимодействие, имеет два основных стиля: Model-View-Controller (MVC) и Presentation-Abstraction-Control(PAC). И MVC, и PAC предлагают трехкомпонентную декомпозицию и используются для интерактивных приложений, таких как веб-приложения с несколькими разговорами и взаимодействиями с пользователем. Они разные по своему контролю и организации. PAC - это иерархическая архитектура на основе агентов, но MVC не имеет четкой иерархической структуры.

Модель-представление-контроллер (MVC)

MVC разделяет данное программное приложение на три взаимосвязанные части, которые помогают отделить внутренние представления информации от информации, представленной или принятой от пользователя.

Модуль Функция
Модель Инкапсуляция базовых данных и бизнес-логики
Контроллер Реагируйте на действия пользователя и направляйте поток приложения
Посмотреть Форматирует и представляет данные от модели к пользователю.

Модель

Модель - это центральный компонент MVC, который напрямую управляет данными, логикой и ограничениями приложения. Он состоит из компонентов данных, которые поддерживают необработанные данные приложения и логику приложения для интерфейса.

  • Это независимый пользовательский интерфейс, который фиксирует поведение проблемной области приложения.

  • Это моделирование программного обеспечения для конкретной предметной области или реализация центральной структуры приложения.

  • Когда в его состоянии произошло изменение, он уведомляет связанное с ним представление о создании обновленных выходных данных, а контроллер - об изменении доступного набора команд.

Посмотреть

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

  • Представления запрашивают информацию из своей модели и генерируют выходное представление для пользователя.

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

Контроллер

Контроллер принимает входные данные и преобразует их в команды для модели или представления. Он состоит из компонентов обработки ввода, которые обрабатывают ввод от пользователя путем изменения модели.

  • Он действует как интерфейс между связанными моделями и представлениями и устройствами ввода.

  • Он может отправлять команды модели для обновления состояния модели и связанного с ней представления для изменения представления модели представлением.

MVC - I

Это простая версия архитектуры MVC, в которой система разделена на две подсистемы:

  • The Controller-View - Представление контроллера действует как интерфейс ввода / вывода, и обработка выполняется.

  • The Model - Модель предоставляет все данные и сервисы домена.

MVC-I Architecture

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

Связь между представлением контроллера и моделью может быть спроектирована в виде шаблона (как показано на рисунке выше) подписки-уведомления, посредством чего представление контроллера подписывается на модель, а модель уведомляет представление контроллера о любых изменениях.

MVC - II

MVC – II - это усовершенствованная архитектура MVC-I, в которой модуль представления и модуль контроллера разделены. Модуль модели играет активную роль, как и в MVC-I, предоставляя все основные функции и данные, поддерживаемые базой данных.

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

MVC-II Architecture

Приложения MVC

Приложения MVC эффективны для интерактивных приложений, в которых для одной модели данных требуется несколько представлений, и их легко подключить к новому или изменить представление интерфейса.

Приложения MVC подходят для приложений, в которых есть четкое разделение между модулями, поэтому разные специалисты могут быть назначены для одновременной работы над различными аспектами таких приложений.

Advantages

  • Доступно множество наборов инструментов для платформы MVC.

  • Несколько представлений синхронизированы с одной и той же моделью данных.

  • Легко добавлять новые или заменять виды интерфейса.

  • Используется для разработки приложений, где профессионалы в области графики, программисты и специалисты по разработке баз данных работают в спроектированной проектной группе.

Disadvantages

  • Не подходит для агентно-ориентированных приложений, таких как интерактивные мобильные и робототехнические приложения.

  • Несколько пар контроллеров и представлений, основанных на одной и той же модели данных, делают изменение любой модели данных дорогостоящим.

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

Презентация-Абстракция-Управление (PAC)

В PAC система организована в виде иерархии многих взаимодействующих агентов (триад). Он был разработан на основе MVC для поддержки требований приложения нескольких агентов в дополнение к интерактивным требованиям.

Каждый агент состоит из трех компонентов -

  • The presentation component - Форматирует визуальное и звуковое представление данных.

  • The abstraction component - Извлекает и обрабатывает данные.

  • The control component - Обрабатывает такую ​​задачу, как поток управления и связь между двумя другими компонентами.

Архитектура PAC похожа на MVC в том смысле, что модуль представления похож на модуль представления MVC. Модуль абстракции выглядит как модельный модуль MVC, а модуль управления похож на модуль контроллера MVC, но они отличаются потоком управления и организацией.

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

На следующем рисунке показана блок-схема для одного агента в проекте PAC.

PAC с несколькими агентами

В PAC, состоящем из нескольких агентов, агент верхнего уровня предоставляет основные данные и бизнес-логику. Агенты нижнего уровня определяют подробные конкретные данные и презентации. Агент среднего или среднего уровня действует как координатор агентов низкого уровня.

  • У каждого агента есть своя конкретная назначенная работа.

  • Для некоторых агентов среднего уровня интерактивные презентации не требуются, поэтому у них нет компонента презентации.

  • Компонент управления необходим для всех агентов, через которые все агенты общаются друг с другом.

На следующем рисунке показано несколько агентов, участвующих в PAC.

Applications

  • Эффективен для интерактивной системы, в которой система может быть иерархически разделена на множество взаимодействующих агентов.

  • Эффективен, когда ожидается, что связь между агентами будет слабой, так что изменения в агенте не влияют на другие.

  • Эффективен для распределенной системы, где все агенты распределены удаленно, и каждый из них имеет свои собственные функции с данными и интерактивным интерфейсом.

  • Подходит для приложений с богатыми компонентами графического интерфейса, где каждое из них хранит свои собственные текущие данные и интерактивный интерфейс и должно взаимодействовать с другими компонентами.

Преимущества

  • Поддержка многозадачности и одновременного просмотра

  • Поддержка повторного использования и расширяемости агентов

  • Легко подключить новый агент или изменить существующий

  • Поддержка параллелизма, когда несколько агентов работают параллельно в разных потоках или на разных устройствах или компьютерах.

Недостатки

  • Накладные расходы из-за управляющего моста между представлением и абстракцией и передачи элементов управления между агентами.

  • Трудно определить правильное количество агентов из-за слабой связи и высокой независимости агентов.

  • Полное разделение представления и абстракции посредством управления в каждом агенте создает сложность разработки, поскольку связь между агентами осуществляется только между элементами управления агентов.