miércoles, 10 de octubre de 2012

Presentation-Abstraction-Control


Al transformar un modelo de dominio (182) en una arquitectura de software técnica. . .
. . . hay que considerar que en ocasiones diferentes responsabilidades funcionales de una aplicación puede requerir diferentes paradigmas de interfaz de usuario.

✦✦✦

Una interfaz hombre-máquina permite a los usuarios interactuar con una aplicación a través de un 'paradigma', como formularios o menús y cuadros de diálogo. Sin embargo, algunas aplicaciones están mejor operado a través de un paradigma de interfaz distinta para cada tipo de funcionalidad que se ofrecen.

Por ejemplo, en un sistema de control del robot, la funcionalidad para la definición de una misión requiere una interfaz de usuario diferente de la funcionalidad de control de un robot móvil durante una misión. Sin embargo, debemos asegurarnos de que todas las funciones y sus interfaces de usuario forman un sistema coherente. Además, los cambios en cualquier interfaz de usuario no afecta a la aplicación de su funcionalidad correspondiente, ni la de las demás funciones y sus interfaces de usuario asociados. Del mismo modo, los cambios en las implementaciones de una función distinta no debe afectar a las interfaces de usuario y las implementaciones de otras funciones.

Por lo tanto:
La estructura de la aplicación interactúa como una jerarquía de agentes desconectados: un agente de nivel superior, varios agentes de nivel intermedio, y muchos agentes de nivel inferior. Cada agente es responsable de una funcionalidad específica de la aplicación y proporciona una interfaz de usuario especial para ello.

Los agentes de nivel inferior implementan de forma autónoma la funcionalidad con la que los usuarios pueden interactuar, por ejemplo la administración, manejo de errores, y la manipulación de datos. En el nivel medio se localizan los coordinar que son múltiples agentes relacionados con los agentes de nivel inferior, por ejemplo, todos los puntos de vista que visualizan un determinado tipo de datos. El agente de alto nivel proporciona la funcionalidad básica que es compartido por todos los agentes, como el acceso a una base de datos.

Dividir cada agente en tres partes. Una parte de la presentación define el agente de la interfaz de usuario. Una parte de la abstracción proporciona un agente específico del dominio funcionalidad. Una parte de control conecta la presentación con la abstracción y permite al agente comunicarse con otro agentes. La conexión de los agentes en la jerarquía se realiza a través de sus controles.

Dividir cada agente en tres partes. A parte de la presentación se definen los usuarios interactúan con un agente a través de su presentación. Todas las peticiones de usuario a la funcionalidad respectiva en su abstracción están mediados por el control del agente. Si una acción del usuario requiere el acceso o la coordinación de otros agentes, mediar esta solicitud a los mandos de estos agentes, ya sea hacia arriba o hacia abajo en la jerarquía, y de allí a sus abstracciones.

Los usuarios interactúan con un agente a través de su presentación. Todas las peticiones de usuario a la funcionalidad respectiva en su abstracción se realizan mediante el agente del control. Si una acción del usuario requiere el acceso o la coordinación de otros agentes, mediar esta solicitud a los controles de estos agentes, ya sea hacia arriba o hacia abajo en la jerarquía, y de allí a sus abstracciones.

✦✦✦

Una arquitectura PRESENTATION-ABSTRACTION-CONTROL ayuda a conectar múltiples subsistemas autónomos o aplicaciones completas, incluso con modelos especializados de interacción hombre-máquina a un sistema coherente (distribuido). La desventaja es su complejidad: varias interfaces de usuario debe ser proporcionada, y las acciones promovidas por una interfaz de usuario específico debe ser coordinada cuidadosamente y de forma explícita si el flujo de control se extiende por varios subsistemas y las reacciones de las causas o ver los cambios en su interfaz de usuario asociados. En consecuencia, una arquitectura PRESENTATION-ABSTRACTION-CONTROL sólo es rentable si un sistema de software no puede ser aplicado por un paradigma de interfaz de usuario única.

Para especificar una PRESENTATION-ABSTRACTION-CONTROL (PAC), la arquitectura, identificar todas las responsabilidades independientes que la aplicación debe ofrecer a sus usuarios. Cada responsabilidad se encapsula dentro del nivel bajo del agente. Si varios agentes de la funcionalidad social o necesidad de coordinación, factor cabo esta funcionalidad (coordinación) en un agente de nivel intermedio. No puede haber múltiples niveles de agentes de nivel intermedio dentro de una arquitectura PAC. Funcionalidad compartida por todos los agentes es proporcionado por el agente de nivel superior. Tal disociación soporta la modificación independiente de los agentes sin afectar a otros agentes, y permite a cada agente proporcionar su propia interfaz de usuario. Proporcionar a todos los agentes una arquitectura modelo-vista-controlador (188): la abstracción correspondiente con el modelo y su división en objetos de dominio (208), y la presentación de las vistas y controladores. Cambios en la interfaz del agente por lo tanto afectará a su realización.

El desacoplar la abstracción de un agente de su presentación a través de un componente de control que es un MEDIATOR (410) con una doble responsabilidad. En primer lugar, debe encaminar todas las solicitudes de los usuarios de la presentación del agente para la funcionalidad adecuada en su abstracción. También debe encaminar todos notificaciones de propagación del cambio de la abstracción a las opiniones de la presentación. En segundo lugar, el control debe coordinar la cooperación entre los agentes. Si una solicitud de usuario recibida por un agente particular no puede ser manejado por el agente sólo, las rutas de control de la solicitud a los controles apropiados de agentes de alto o de nivel inferior, junto con sus datos de entrada asociados. Los resultados se devuelven en la misma forma, pero a la inversa. De manera similar, el control de un agente puede recibir solicitudes y datos de los controles de otros agentes. Las solicitudes para ser enrutados se pueden encapsular dentro de objetos COMMAND (412), y los datos que contiene DATA TRANSFER OBJECTS (418). Los controles son la clave para un acoplamiento débil entre los agentes: si cambia de un agente de extracción, los efectos sobre otros agentes se limitan a sus controles.

NOTA
Tipo: Arquitectónico
Descompone un software interactivo en una jerarquía de agentes que colaboran. Cada agente desempeña alguna función de presentación por pantalla, funcionalidad básica (abstracción) o comunicación entre agentes (control).

No hay comentarios:

Publicar un comentario