Arquitectura orientada a la interacción
El objetivo principal de la arquitectura orientada a la interacción es separar la interacción del usuario de la abstracción de datos y el procesamiento de datos comerciales. La arquitectura de software orientada a la interacción descompone el sistema en tres particiones principales:
Data module - El módulo de datos proporciona la abstracción de datos y toda la lógica empresarial.
Control module - El módulo de control identifica el flujo de acciones de control y configuración del sistema.
View presentation module - El módulo de presentación de vista es responsable de la presentación visual o de audio de la salida de datos y también proporciona una interfaz para la entrada del usuario.
La arquitectura orientada a la interacción tiene dos estilos principales: Model-View-Controller (MVC) y Presentation-Abstraction-Control(PAC). Tanto MVC como PAC proponen la descomposición de tres componentes y se utilizan para aplicaciones interactivas como aplicaciones web con múltiples charlas e interacciones de usuario. Son diferentes en su flujo de control y organización. PAC es una arquitectura jerárquica basada en agentes, pero MVC no tiene una estructura jerárquica clara.
Modelo-Vista-Controlador (MVC)
MVC descompone una aplicación de software determinada en tres partes interconectadas que ayudan a separar las representaciones internas de la información de la información presentada o aceptada por el usuario.
Módulo | Función |
---|---|
Modelo | Encapsulación de los datos subyacentes y la lógica empresarial |
Controlador | Responder a la acción del usuario y dirigir el flujo de la aplicación |
Ver | Formatea y presenta los datos del modelo al usuario. |
Modelo
El modelo es un componente central de MVC que administra directamente los datos, la lógica y las restricciones de una aplicación. Consiste en componentes de datos, que mantienen los datos sin procesar de la aplicación y la lógica de la aplicación para la interfaz.
Es una interfaz de usuario independiente y captura el comportamiento del dominio del problema de la aplicación.
Es la simulación o implementación de software específico del dominio de la estructura central de la aplicación.
Cuando ha habido un cambio en su estado, notifica a su vista asociada para producir una salida actualizada y al controlador para cambiar el conjunto de comandos disponibles.
Ver
La vista se puede utilizar para representar cualquier salida de información en forma gráfica, como un diagrama o un gráfico. Consiste en componentes de presentación que proporcionan representaciones visuales de datos.
Las vistas solicitan información de su modelo y generan una representación de salida para el usuario.
Son posibles varias vistas de la misma información, como un gráfico de barras para la gestión y una vista tabular para los contables.
Controlador
Un controlador acepta una entrada y la convierte en comandos para el modelo o la vista. Consiste en componentes de procesamiento de entrada que manejan la entrada del usuario modificando el modelo.
Actúa como una interfaz entre los modelos y vistas asociados y los dispositivos de entrada.
Puede enviar comandos al modelo para actualizar el estado del modelo y a su vista asociada para cambiar la presentación de la vista del modelo.
MVC - I
Es una versión simple de la arquitectura MVC donde el sistema se divide en dos subsistemas:
The Controller-View - La vista del controlador actúa como interfaz de entrada / salida y se realiza el procesamiento.
The Model - El modelo proporciona todos los datos y servicios de dominio.
MVC-I Architecture
El módulo de modelo notifica al módulo de vista del controlador de cualquier cambio de datos para que cualquier visualización de datos gráficos se cambie en consecuencia. El controlador también toma las medidas adecuadas ante los cambios.
La conexión entre la vista del controlador y el modelo se puede diseñar en un patrón (como se muestra en la imagen de arriba) de suscripción-notificación mediante el cual la vista del controlador se suscribe al modelo y el modelo notifica a la vista del controlador de cualquier cambio.
MVC - II
MVC-II es una mejora de la arquitectura MVC-I en la que el módulo de vista y el módulo del controlador están separados. El módulo de modelo juega un papel activo como en MVC-I al proporcionar toda la funcionalidad principal y los datos admitidos por la base de datos.
El módulo de vista presenta datos mientras que el módulo controlador acepta la solicitud de entrada, valida los datos de entrada, inicia el modelo, la vista, su conexión y también distribuye la tarea.
MVC-II Architecture
Aplicaciones MVC
Las aplicaciones MVC son efectivas para aplicaciones interactivas donde se necesitan múltiples vistas para un solo modelo de datos y es fácil conectar una vista de interfaz nueva o cambiar.
Las aplicaciones MVC son adecuadas para aplicaciones en las que existen claras divisiones entre los módulos, de modo que se pueden asignar diferentes profesionales para trabajar en diferentes aspectos de dichas aplicaciones al mismo tiempo.
Advantages
Hay muchos kits de herramientas de marcos de proveedores de MVC disponibles.
Varias vistas sincronizadas con el mismo modelo de datos.
Vistas de interfaz nuevas o reemplazadas fáciles de conectar.
Se utiliza para el desarrollo de aplicaciones donde los profesionales con experiencia en gráficos, los profesionales de la programación y los profesionales del desarrollo de bases de datos están trabajando en un equipo de proyecto diseñado.
Disadvantages
No apto para aplicaciones orientadas a agentes, como aplicaciones móviles y robóticas interactivas.
Múltiples pares de controladores y vistas basados en el mismo modelo de datos hacen que cualquier cambio de modelo de datos sea costoso.
La división entre la vista y el controlador no está clara en algunos casos.
Presentación-Abstracción-Control (PAC)
En PAC, el sistema está organizado en una jerarquía de muchos agentes cooperantes (tríadas). Se desarrolló a partir de MVC para admitir los requisitos de aplicación de varios agentes además de los requisitos interactivos.
Cada agente tiene tres componentes:
The presentation component - Formatea la presentación visual y de audio de datos.
The abstraction component - Recupera y procesa los datos.
The control component - Maneja la tarea como el flujo de control y comunicación entre los otros dos componentes.
La arquitectura PAC es similar a MVC, en el sentido de que el módulo de presentación es como el módulo de vista de MVC. El módulo de abstracción parece un módulo modelo de MVC y el módulo de control es como el módulo controlador de MVC, pero difieren en su flujo de control y organización.
No hay conexiones directas entre el componente de abstracción y el componente de presentación en cada agente. El componente de control de cada agente está a cargo de las comunicaciones con otros agentes.
La siguiente figura muestra un diagrama de bloques para un solo agente en el diseño de PAC.
PAC con múltiples agentes
En los PAC que constan de varios agentes, el agente de nivel superior proporciona datos básicos y lógica empresarial. Los agentes de nivel inferior definen presentaciones y datos específicos detallados. El agente de nivel intermedio o medio actúa como coordinador de los agentes de nivel bajo.
Cada agente tiene su propio trabajo asignado específico.
Para algunos agentes de nivel medio, las presentaciones interactivas no son necesarias, por lo que no tienen un componente de presentación.
El componente de control es necesario para todos los agentes a través del cual todos los agentes se comunican entre sí.
La siguiente figura muestra los múltiples agentes que participan en PAC.
Applications
Eficaz para un sistema interactivo donde el sistema se puede descomponer en muchos agentes cooperantes de manera jerárquica.
Efectivo cuando se espera que el acoplamiento entre los agentes sea flojo de modo que los cambios en un agente no afecten a otros.
Efectivo para sistema distribuido donde todos los agentes están distribuidos a distancia y cada uno de ellos tiene sus propias funcionalidades con datos e interfaz interactiva.
Adecuado para aplicaciones con componentes GUI enriquecidos donde cada uno de ellos mantiene sus propios datos actuales e interfaz interactiva y necesita comunicarse con otros componentes.
Ventajas
Soporte para multitarea y visualización múltiple
Soporte para reutilización y extensibilidad de agentes
Fácil de conectar un nuevo agente o cambiar uno existente
Soporte para simultaneidad donde múltiples agentes se ejecutan en paralelo en diferentes subprocesos o diferentes dispositivos o computadoras
Desventajas
Sobrecarga debido al puente de control entre la presentación y la abstracción y la comunicación de controles entre agentes.
Es difícil determinar el número correcto de agentes debido al acoplamiento flojo y la alta independencia entre los agentes.
La separación completa de presentación y abstracción por control en cada agente genera complejidad en el desarrollo ya que las comunicaciones entre agentes solo tienen lugar entre los controles de agentes