Jaime Eduardo Arias Almeida Néstor Raúl Cárdenas Pinzón Pontificia Universidad Javeriana - Cali Marzo 18 de 2010
Tabla de Contenido 1 Definición Consideraciones 2 Layers Pipes and Filters Blackboard 3 Broker 4 Model-View-Controller Presentation-Abstration-Control 5 Microkernel Reflection
Definición Consideraciones Especificación de la estructura fundamental de una aplicación Referencia a una propiedad específica global del sistema Conjunto de subsistemas con responsabilidades y relaciones entre si
Consideraciones Definición Consideraciones La selección de un patrón arquitectónico debe estar basada en las propiedades generales de la aplicación y los requerimientos no funcionales Es util explorar diferentes alternativas antes de decidir un patrón arquitectónico específico Muchos sistemas no pueden ser estructurados de acuerdo a un unico patrón arquitectónico, por lo cual se hace necesaria la combinación de diferentes patrones La selección de un patrón arquitectónico es solo el primer paso en el diseño de la arquitectura de un sistema de software
Layers Pipes and Filters Blackboard Evita la creación innecesaria de componentes u objetos. Realiza la descomposición controlada de tareas globales en subtareas que cooperan entre si Algunos Pasos Definición correcta de los requerimientos Definición de la arquitectura en un alto nivel División del sistema en bloques
Layers Layers Pipes and Filters Blackboard Describen el principio más generalizado de la subdivisión de la arquitectura Estructura aplicaciones que pueden descomponerse en grupos de subtareas. Cada grupo de subtareas está en un nivel particular de abstracción
Pipes and Filters Layers Pipes and Filters Blackboard Es el menos utilizado Provee una estructura para sistemas que procesan un flujo de datos Cada paso del proceso se encapsula en un componente denominado filter Los datos se pasan a tráves de pipes entre filters adyacentes La combinacion de filters y pipes permite la contrucción de sistemas relacionados
Blackboard Layers Pipes and Filters Blackboard Utilizado en la comunidad de inteligencia artificial Util para problemas con una solución no determinista Algunos subsistemas especializados reunen sus responsabilidades para construir una posible solución parcial o aproximada
Broker Completa infraestructura para aplicaciones distribuidas Los patrones Pipes and Filters y Microkernel utilizan secundariamente este patrón Ventajas Económico Escalabilidad y rendimiento Fiabilidad Desventajas Los sistemas distribuidos necesitan radicalmente software diferente al de los sistemas centralizados
Broker Broker Estructura software de sistemas distribuidos con componentes desacoplados que interactuan por invocaciones de servicio remoto Un componente broken es responsable de coordinar las comunicaciones(solicitud de reenvio, transmisión de resultados y excepciones)
Model-View-Controller Presentation-Abstration-Control Soporta la estructuración de sistemas de software con interacción Humano - Computador Modificaciones en la GUI sin interferir con la funcionalidad Estándares diferentes, especificaciones del cliente, metáforas look and feel,características del negocio
Model-View-Controller Model-View-Controller Presentation-Abstration-Control La misma información presentada de manera diferente Muestra los cambios inmediatamente tanto en la interface como en en el funcionamiento Cambios fáciles en tiempo real Soporta diferentes estándares de look and feel Model Contenido, funcionalidad y datos Es independiente de la representación de los datos de salida y del comportamiento de los datos de entrada Provee funciones para que cada View extraiga datos
Model-View-Controller Model-View-Controller Presentation-Abstration-Control View Muestra informción al usuario Obtiene los datos del Model Pueden existir varios View para un Model Cada View tiene un Controller asociado Controller Maneja el ingreso de datos por parte del usuario Garantiza la consistencia entre la interface y el modelo
Presentation-Abstration-Control Model-View-Controller Presentation-Abstration-Control No es tan usado como el Model-View-Controller pero es útil en aplicaciones con subsistemas independientes Jerarquía de agente cooperativos Tareas específicas de funcionalidad Separa la interacción humano-computador de funcionalidad y otros agentes.
Presentation-Abstration-Control Model-View-Controller Presentation-Abstration-Control Presentación Comportamiento visual del agente Abstracción Mantiene los datos del modelo y provee operaciones de funcionalidad Control Conecta la presentación y la abstacción de cada agente Realiza la comunicación con otros agentes
Microkernel Reflection Soporta la extensión de aplicaciones y su adaptación a nuevas tecnologías Soporta el cambio de los requerimientos funcionales Diferentes versiones de sistema operativo GUI Estándares de plataformas hardware
Microkernel Microkernel Reflection Separa la funcionalidad básica del sistema de las funcionalidades externas y especificaciones del cliente Servidor externo. Comunicación con cliente Adaptador Servidor interno. Comunicación con el microkernel
Reflection Microkernel Reflection Provee un mecanismo para cambiar estructura y comportamiento del sistema dinámicamente. Meta Nivel Da al SW conocimiento de su estructura y comportamiento Compuesto por Meta objetos con estructuras, tipo, algoritmos y llamado de funciones. Base Nivel Define aplicaciones lógicas y utiliza a los Meta objetos para mantener la independencia de los aspectos que pueden cambiar Los niveles Base se comunican a través de Meta objetos, los cuales tienen funcionalidades independientes del código base
Referencias Microkernel Reflection Pattern-Oriented Software Architecture BUSCHMANN, Frank; MEUNIER, Regine; ROHNERT, Hans; SOMMERLAD, Peter; STAL, Michael. Pattern-Oriented Software Architecture. England: John Willey and Sons Ltd. (1996). Vol 1. p. 25-220