El documento presenta una introducción a la arquitectura de software orientada a patrones (POSA), describiendo su estructura y varios patrones fundamentales como Capas, Tuberías y Filtros, Mediador, Modelo Vista Controlador, Presentación Abstracción Control y Micronúcleo. Explica que POSA provee un conjunto de patrones genéricos y abstractos para diseñar la arquitectura de software y facilitar su adaptación.
2. Agenda
• Objetivos de la presentación
• Estructura de POSA
• Clase-Responsabilidad-Colaboración
• Patrón de Capas
• Patrón de Filtros y tuberías
• Patrón de Mediador
• Patrón Modelo Vista Controlador
• Patrón Presentación Abstracción Control
• Patrón de Micronúcleo
3. El arquitecto necesita crear un sistema y usa patrones
para especificar la organización del mismo …
4. POSA (Objetivos)
Presentar y dar el esquema de
arquitectura de software
orientada a patrones (Pattern
Oriented Software Architecture)
Explicar cada una de las
agrupaciones de patrones, los
patrones y su aplicación.
Mostrar un lenguaje de
patrones que facilitará el
diseño de la arquitectura de
software a partir de los
diferentes patrones.
5. Estructura de POSA
POSA es un conjunto de
patrones para arquitectura de
software. Su enfoque es
genérico y abstracto.
El volumen 3 de POSA se
enfoca a patrones para la
arquitectura de recursos de
computación
El volumen 4 de POSA
conjunta los patrones de
cómputo distribuido y
conocidos por la comunidad
(incluyendo GoF, PEAA, EIP)
El volumen 5 de POSA se
enfoca a tratar un modelo para
definir lenguajes de patrones
El volumen 1 de POSA se
enfoca a los patrones
fundamentales de arquitectura
de software
El volumen 2 de POSA se
enfoca a la arquitectura del
software para manejo de
concurrencia y de gestión con
la red
6. En el sistema todo debe tener un propósito y lo que no lo
tenga, no debe ser parte del sistema. Identifica el
propósito a través de la técnica de CRC…
7. Clase-Responsabilidad-Colaboración
Se utiliza una tarjeta CRC para
plasmar en una lluvia de ideas
CRC es una técnica para
identificar las clases de un
sistema a partir de las
responsabilidades que tiene en
el sistema y la colaboración
con otras clases
POSA 1 utiliza CRC para
especificar los patrones
11. Segundo, define el esquema básico de comportamiento,
basado en unidades llamadas filtros y comunicados por
tuberías …
12. Patrón de tuberías y filtros
(pipe & filters)
El sistema requiere de un
procesamiento orientado a
flujo de datos.
Cada procesamiento se
implementa como un filtro y
comunicados a través de
tuberías
Class
Class
Filter
Filter
Responsability
· Obtiene datos de
Responsability
· Obtiene datos de
entrada
entrada
· Efectúa funciones sobre
· Efectúa funciones sobre
los datos
los datos
· Provee datos de salida
· Provee datos de salida
Collaborator
· Pipe
Collaborator
· Pipe
Class
Class
Pipe
Pipe
Responsability
· Transfiere datos
· Canaliza la información
· Sincroniza elementos
Responsability
· Transfiere datos
· Canaliza la información
· Sincroniza elementos
contigüos
contigüos
Collaborator
· Fuente de
Collaborator
· Fuente de
datos
datos
· Contenedor
· Contenedor
de datos
de datos
· Filtro
· Filtro
14. Tercero, necesita comunicar a todos los componentes del
sistema, utilizando canales de comunicación y un mediador
…
15. Patrón de mediador (broker)
Patrón para estructurar sistemas
distribuidos usando el
desacoplamiento de componentes
y que interactúan entre ellos a
través de invocación a servicios
remotos.
El mediador coordina la
comunicación de solicitudes del
cliente al servidor y coordina el
retorno del resultado del servidor
al cliente, procurando la
transparencia en el formato de
datos y el protocolo de transporte.
20. Quinto, establecer un esquema complejo para visualizar la
información del sistema en diversos niveles, usando el
patrón Presentación Abstracción Control…
21. Patrón de Presentación-Abstracción-
Control (PAC)
El patrón PAC estructura la
interacción de la aplicación cuando las
partes son componentes autónomos y
con sus propias capacidades
independientes
<< Cmp >>
AAggeennttee aallttoo nniivveell
<< Cmp >>
AAggeennttee bbaajjoo nniivveell
<< Cmp >>
AAggeennttee bbaajjoo nniivveell
<< Cmp >>
Agente nivel
intermedio
Agente nivel
intermedio
<< Cmp >>
AAggeennttee bbaajjoo nniivveell
<< Cmp >>
AAggeennttee bbaajjoo nniivveell
<< Cmp >>
AAggeennttee bbaajjoo nniivveell
23. Sexto, encapsula las funciones primordiales del sistema en un
micro nucleo y así generarás un sistema adaptable
24. Patrón de Micro núcleo
(Microkernel)
El patrón microkernel
permite construir las capas
externas del sistema a partir
de componentes internos
que son eficientes, simples,
con facilidad de intercambio
y con interfaces bien
definidas
26. Séptimo, tu sistema debe ser adaptable, a través de la
manipulación de su meta modelo. Todo componente del sistema
puede ser potencialmente modificado en tiempo de ejecución,
utilizando el patrón de Reflexión
27. Patrón de Reflexión
(Reflection)
El patrón de reflexión otorga
la habilidad a un programa
para inspeccionar su
estructura interna y poder
modificar a ésta misma en
tiempo de ejecución y por
tanto, su comportamiento.
30. Para la creación de los objetos del sistema, el Oraculo
ofrece un conjunto de recetas, patrones de diseño, para
fortalecer la arquitectura …
31. Un sistema que es complejo, debe ser concebido en término
de sus partes y la suma de ellas debe describir al
sistema como un todo…
32. Patrón de Todos y sus partes
(Whole-Part)
El patrón indica que un
sistema debe constituirse
de sus partes de tal
manera que el todo es el
resultado de la suma de
sus partes. Es la
agregación de
componentes para
conformar una unidad
semántica. El Acceso
directo a las partes no es
posible.
33. Para un sistema que requiere un alto nivel de
procesamiento, repartirlo a múltiples esclavos y que son
coordinados por el maestro …
34. Patrón de Maestro Esclavo
(Master-slave)
El patrón permite organizar el
trabajo de tal manera que un
componente (el maestro)
distribuye trabajo a
componentes idénticos
(esclavos) y calcula un
resultado final de los
resultados que dichos esclavos
retornan. Soporta
procesamiento en paralelo,
tolerancia a fallas
35. No tener contacto directo con el ambiento externo,
utilizar un agente Proxy para que sea la manera como se
controle el acceso a un servicio y sea protector ante
posibles ataques …
37. Para administrar al sistema proporciona una serie de
comandos y organizarlos para que sea invocados de manera
similar y con un lenguaje específico al dominio …
38. Patrón de Procesador de comando
(Command Processor)
El patrón permite que
de manera ordenada
se agreguen o
eliminen comandos
con los que se
gestiona un sistema
40. Para manipular de una manera uniforme la representación
visual del sistema utilizar un administrador de vistas…
41. Patrón de Manejador de Vistas
(View Handler)
El patrón ayuda a manejar
todas las vistas que un sistema
de software proporciona. El
manejador de vista permite al
cliente el manipular y disponer
de las vistas, controla la
dependencia entre las mismas
y organiza su actualización
43. Ofrecer un mecanismo eficiente de comunicación entre los
pares del sistema usando el esquema de envío recepción…
44. Cuando exista una relación entre cliente y servidor poner
como un intermediario de comunicación a un despachador
para ofrecer transparencia en la ubicación y
establecimiento de la conexión. Cliente-Despachador-
Servidor …
45. Cuando múltiples componentes están cooperando en el
sistema, proporcionar un mecanismo de propagación de
cambios a través de la suscripción a las actualizaciones
de un publicador, formando así un esquema de publicador
suscriptor…