arquitectura de software orientada a patrones
TRANSCRIPT
![Page 1: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/1.jpg)
![Page 2: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/2.jpg)
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
![Page 3: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/3.jpg)
El arquitecto necesita crear un sistema y usa patrones
para especificar la organización del mismo …
![Page 4: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/4.jpg)
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.
![Page 5: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/5.jpg)
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
![Page 6: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/6.jpg)
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…
![Page 7: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/7.jpg)
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
![Page 8: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/8.jpg)
Primero, divide el sistema en capas para tratar la
complejidad …
![Page 9: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/9.jpg)
Patrón de capas (layers)
Un sistema que por
sus dimensiones
requiere ser dividido
en componentes
![Page 10: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/10.jpg)
Ejemplo de Patrón de capas
![Page 11: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/11.jpg)
Segundo, define el esquema básico de comportamiento,
basado en unidades llamadas filtros y comunicados por
tuberías …
![Page 12: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/12.jpg)
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 Filter
Class Filter
Responsability· Obtiene datos de
entrada· Efectúa funciones sobre
los datos· Provee datos de salida
Responsability· Obtiene datos de
entrada· Efectúa funciones sobre
los datos· Provee datos de salida
Collaborator· Pipe
Collaborator· Pipe
Class Pipe
Class Pipe
Responsability· Transfiere datos· Canaliza la información· Sincroniza elementos
contigüos
Responsability· Transfiere datos· Canaliza la información· Sincroniza elementos
contigüos
Collaborator· Fuente de
datos· Contenedor
de datos· Filtro
Collaborator· Fuente de
datos· Contenedor
de datos· Filtro
![Page 13: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/13.jpg)
Ejemplo de pipe & filters
![Page 14: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/14.jpg)
Tercero, necesita comunicar a todos los componentes del
sistema, utilizando canales de comunicación y un mediador
…
![Page 15: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/15.jpg)
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.
![Page 16: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/16.jpg)
Ejemplo de broker
![Page 17: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/17.jpg)
Preparado por:
Cuarto, establece la interacción entre los humanos y el
sistema, usando modelo vista controlador…
![Page 18: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/18.jpg)
Patrón de Modelo Vista Controlador (MVC)
El patrón MVC se utiliza para estructurar sistemas interactivos
![Page 19: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/19.jpg)
Ejemplo de MVC
![Page 20: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/20.jpg)
Quinto, establecer un esquema complejo para visualizar la
información del sistema en diversos niveles, usando el
patrón Presentación Abstracción Control…
![Page 21: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/21.jpg)
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 >>
Agente alto nivelAgente alto nivel
<< Cmp >>
Agente bajo nivelAgente bajo nivel
<< Cmp >>
Agente bajo nivelAgente bajo nivel
<< Cmp >>
Agente nivel intermedio
Agente nivel intermedio
<< Cmp >>
Agente bajo nivelAgente bajo nivel<< Cmp >>
Agente bajo nivelAgente bajo nivel
<< Cmp >>
Agente bajo nivelAgente bajo nivel
![Page 22: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/22.jpg)
Ejemplo PAC
![Page 23: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/23.jpg)
Sexto, encapsula las funciones primordiales del sistema en un micro nucleo y así generarás un sistema adaptable
![Page 24: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/24.jpg)
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
![Page 25: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/25.jpg)
Ejemplo Microkernel
![Page 26: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/26.jpg)
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
![Page 27: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/27.jpg)
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.
![Page 28: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/28.jpg)
Ejemplo Reflection
![Page 29: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/29.jpg)
Estructura
LayerPipe and FiltersBlackboard *
Distribución
Broker
Interacción
Model-View-ControllerPresentation-Abstraction-Control
Adaptable
MicrokernelReflection
![Page 30: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/30.jpg)
Para la creación de los objetos del sistema, el Oraculo
ofrece un conjunto de recetas, patrones de diseño, para
fortalecer la arquitectura …
![Page 31: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/31.jpg)
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…
![Page 32: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/32.jpg)
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.
![Page 33: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/33.jpg)
Para un sistema que requiere un alto nivel de
procesamiento, repartirlo a múltiples esclavos y que son
coordinados por el maestro …
![Page 34: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/34.jpg)
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
![Page 35: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/35.jpg)
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 …
![Page 36: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/36.jpg)
Ejemplos de Proxy
![Page 37: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/37.jpg)
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 …
![Page 38: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/38.jpg)
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
![Page 39: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/39.jpg)
Ejemplos de Command Processor
![Page 40: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/40.jpg)
Para manipular de una manera uniforme la representación
visual del sistema utilizar un administrador de vistas…
![Page 41: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/41.jpg)
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
![Page 42: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/42.jpg)
Ejemplos de View Handler
![Page 43: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/43.jpg)
Ofrecer un mecanismo eficiente de comunicación entre los
pares del sistema usando el esquema de envío recepción…
![Page 44: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/44.jpg)
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 …
![Page 45: Arquitectura de software orientada a patrones](https://reader035.vdocumento.com/reader035/viewer/2022081404/55a16a0b1a28ab6b258b4823/html5/thumbnails/45.jpg)
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…