Учебники

Интерактивно-ориентированная архитектура

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

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

  • Модуль управленияМодуль управления определяет последовательность действий управления и настройки системы.

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

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

Модуль управленияМодуль управления определяет последовательность действий управления и настройки системы.

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

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

Модель-Вид-Контроллер (MVC)

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

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

модель

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

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

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

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

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

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

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

Посмотреть

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

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

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

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

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

контроллер

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

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

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

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

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

MVC Компонент

MVC — я

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

  • Представление контроллера — Представление контроллера действует как интерфейс ввода / вывода, и обработка завершена.

  • Модель — модель предоставляет все данные и услуги домена.

Представление контроллера — Представление контроллера действует как интерфейс ввода / вывода, и обработка завершена.

Модель — модель предоставляет все данные и услуги домена.

MVC-I Архитектура

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

MVC-I Архитектура

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

MVC — II

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

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

MVC-II Архитектура

MVC-II Архитектура

MVC Приложения

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

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

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

  • Существует множество доступных инструментариев MVC для вендоров.

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

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

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

Существует множество доступных инструментариев MVC для вендоров.

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

Легко подключить новый или заменить вид интерфейса.

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

Недостатки

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

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

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

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

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

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

Презентация-Абстракция-Контроль (PAC)

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

Каждый агент имеет три компонента —

  • Компонент представления — форматирует визуальное и аудио представление данных.

  • Компонент абстракции — Извлекает и обрабатывает данные.

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

Компонент представления — форматирует визуальное и аудио представление данных.

Компонент абстракции — Извлекает и обрабатывает данные.

Компонент управления — выполняет задачу, такую ​​как управление потоком данных и связь между двумя другими компонентами.

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

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

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

PAC Design

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

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

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

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

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

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

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

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

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

Несколько агентов в PAC

Приложения

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

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

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

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

Поддержка многозадачности и мульти-просмотра

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

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

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

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

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

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