SlideShare une entreprise Scribd logo
1  sur  45
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
El arquitecto necesita crear un sistema y usa patrones 
para especificar la organización del mismo …
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.
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
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…
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
Primero, divide el sistema en capas para tratar la 
complejidad …
Patrón de capas (layers) 
Un sistema que por 
sus dimensiones 
requiere ser dividido 
en componentes
Ejemplo de Patrón de capas
Segundo, define el esquema básico de comportamiento, 
basado en unidades llamadas filtros y comunicados por 
tuberías …
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
Ejemplo de pipe & filters
Tercero, necesita comunicar a todos los componentes del 
sistema, utilizando canales de comunicación y un mediador 
…
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.
Ejemplo de broker
Cuarto, establece la interacción entre los humanos y el 
sistema, usando modelo vista controlador… 
Preparado por:
Patrón de Modelo Vista Controlador 
(MVC) 
El patrón MVC se utiliza 
para estructurar 
sistemas interactivos
Ejemplo de MVC
Quinto, establecer un esquema complejo para visualizar la 
información del sistema en diversos niveles, usando el 
patrón Presentación Abstracción Control…
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
Ejemplo PAC
Sexto, encapsula las funciones primordiales del sistema en un 
micro nucleo y así generarás un sistema adaptable
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
Ejemplo Microkernel
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
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.
Ejemplo Reflection
Estructura 
Layer 
Pipe and Filters 
Blackboard * 
Distribución 
Broker 
Interacción 
Model-View-Controller 
Presentation-Abstraction 
-Control 
Adaptable 
Microkernel 
Reflection
Para la creación de los objetos del sistema, el Oraculo 
ofrece un conjunto de recetas, patrones de diseño, para 
fortalecer la arquitectura …
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…
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.
Para un sistema que requiere un alto nivel de 
procesamiento, repartirlo a múltiples esclavos y que son 
coordinados por el maestro …
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
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 …
Ejemplos de Proxy
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 …
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
Ejemplos de Command Processor
Para manipular de una manera uniforme la representación 
visual del sistema utilizar un administrador de vistas…
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
Ejemplos de View Handler
Ofrecer un mecanismo eficiente de comunicación entre los 
pares del sistema usando el esquema de envío recepción…
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 …
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…

Contenu connexe

Tendances

Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetosyoiner santiago
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicaslandeta_p
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Marta Silvia Tabares
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitosKleo Jorgee
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseñolandeta_p
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)marianela0393
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de softwaresairarcf
 
Diapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñoDiapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñodeyanireth
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 CapasFani Calle
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseGuillermo Díaz
 
Ingeniería del software basada en componentes
Ingeniería del software basada en componentesIngeniería del software basada en componentes
Ingeniería del software basada en componentesjose_macias
 
Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentesmarianela0393
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareRoberth Loaiza
 

Tendances (20)

Analisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A ObjetosAnalisis Y DiseñO Orientado A Objetos
Analisis Y DiseñO Orientado A Objetos
 
2 1 vistas arquitectonicas
2 1 vistas arquitectonicas2 1 vistas arquitectonicas
2 1 vistas arquitectonicas
 
Patrones GRASP
Patrones GRASPPatrones GRASP
Patrones GRASP
 
Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2Arquitecturas de software - Parte 2
Arquitecturas de software - Parte 2
 
Modelado de requisitos
Modelado de requisitosModelado de requisitos
Modelado de requisitos
 
1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño1 3 ingenieria software y patrones de diseño
1 3 ingenieria software y patrones de diseño
 
Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)Diagrama de interaccion(secuencia y colaboracion)
Diagrama de interaccion(secuencia y colaboracion)
 
Diseño arquitectónico
Diseño arquitectónicoDiseño arquitectónico
Diseño arquitectónico
 
Rup disciplinas
Rup disciplinasRup disciplinas
Rup disciplinas
 
Modelamiento de software
Modelamiento de softwareModelamiento de software
Modelamiento de software
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Estilos arquitectónicos
Estilos arquitectónicosEstilos arquitectónicos
Estilos arquitectónicos
 
Diapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseñoDiapositivas sobre patrones de diseño
Diapositivas sobre patrones de diseño
 
Arquitectura 3 Capas
Arquitectura 3 CapasArquitectura 3 Capas
Arquitectura 3 Capas
 
UML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de ClaseUML - Casos de Uso y Diagramas de Clase
UML - Casos de Uso y Diagramas de Clase
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Ingeniería del software basada en componentes
Ingeniería del software basada en componentesIngeniería del software basada en componentes
Ingeniería del software basada en componentes
 
Diagrama componentes
Diagrama componentesDiagrama componentes
Diagrama componentes
 
Proceso unificado
Proceso unificadoProceso unificado
Proceso unificado
 
Vistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de SoftwareVistas Arquitectonicas Ingenieria de Software
Vistas Arquitectonicas Ingenieria de Software
 

En vedette

Patrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & FiltersPatrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & FiltersNacho Bongiovanni
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)josecuartas
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Softwarebjjuarez
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructuralesJuan Camilo
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Jose Emilio Labra Gayo
 
Conférence Silicon Salad : "Back office : la face cachée du e-commerce "
Conférence Silicon Salad : "Back office : la face cachée du e-commerce "Conférence Silicon Salad : "Back office : la face cachée du e-commerce "
Conférence Silicon Salad : "Back office : la face cachée du e-commerce "Silicon Salad
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitecturaFatima Cham
 
Programa arquitectonico Terminal de Transporte
Programa arquitectonico Terminal de TransportePrograma arquitectonico Terminal de Transporte
Programa arquitectonico Terminal de TransporteIndependent
 
Concetos taller 4 d terminal de buses .
Concetos taller 4 d terminal de buses .Concetos taller 4 d terminal de buses .
Concetos taller 4 d terminal de buses .Michael GT
 
Patrones arquitectónicos layers
Patrones arquitectónicos layersPatrones arquitectónicos layers
Patrones arquitectónicos layersMatias Yima
 
Arquitectura empresarial y de software version final
Arquitectura empresarial y de software version finalArquitectura empresarial y de software version final
Arquitectura empresarial y de software version finalGustavo De la Cruz Tovar
 
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...Raona
 

En vedette (20)

Patron de Arquitectura Broker
Patron de Arquitectura BrokerPatron de Arquitectura Broker
Patron de Arquitectura Broker
 
Patrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & FiltersPatrones Arquitecturales: Pipes & Filters
Patrones Arquitecturales: Pipes & Filters
 
Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)Patrones de arquitectura Software(Capa de Datos)
Patrones de arquitectura Software(Capa de Datos)
 
Estilos de Software
Estilos de SoftwareEstilos de Software
Estilos de Software
 
Estilos Arquitectonicos-Capas
Estilos Arquitectonicos-CapasEstilos Arquitectonicos-Capas
Estilos Arquitectonicos-Capas
 
Patrones estructurales
Patrones estructuralesPatrones estructurales
Patrones estructurales
 
Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001Arquitectura software.taxonomias.comportamiento.001
Arquitectura software.taxonomias.comportamiento.001
 
Conférence Silicon Salad : "Back office : la face cachée du e-commerce "
Conférence Silicon Salad : "Back office : la face cachée du e-commerce "Conférence Silicon Salad : "Back office : la face cachée du e-commerce "
Conférence Silicon Salad : "Back office : la face cachée du e-commerce "
 
Clase ii patrones de diseño
Clase ii patrones de diseñoClase ii patrones de diseño
Clase ii patrones de diseño
 
RDF validation tutorial
RDF validation tutorialRDF validation tutorial
RDF validation tutorial
 
Patrones diseño de software
Patrones diseño de softwarePatrones diseño de software
Patrones diseño de software
 
Arquitecturas de Software
Arquitecturas de SoftwareArquitecturas de Software
Arquitecturas de Software
 
Arquitectura pizarra
Arquitectura pizarraArquitectura pizarra
Arquitectura pizarra
 
Diseno de la arquitectura
Diseno de la arquitecturaDiseno de la arquitectura
Diseno de la arquitectura
 
Programa arquitectonico Terminal de Transporte
Programa arquitectonico Terminal de TransportePrograma arquitectonico Terminal de Transporte
Programa arquitectonico Terminal de Transporte
 
Concetos taller 4 d terminal de buses .
Concetos taller 4 d terminal de buses .Concetos taller 4 d terminal de buses .
Concetos taller 4 d terminal de buses .
 
Patrones arquitectónicos layers
Patrones arquitectónicos layersPatrones arquitectónicos layers
Patrones arquitectónicos layers
 
Patrones de diseño
Patrones de diseñoPatrones de diseño
Patrones de diseño
 
Arquitectura empresarial y de software version final
Arquitectura empresarial y de software version finalArquitectura empresarial y de software version final
Arquitectura empresarial y de software version final
 
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
¿Es tu aplicación robusta? Cómo definir la mejor arquitectura para tu aplicac...
 

Similaire à Arquitectura de software orientada a patrones

Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidosTensor
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidosMargarita Labastida
 
UNIDAD 1 TEMA 2.pptx
UNIDAD 1 TEMA 2.pptxUNIDAD 1 TEMA 2.pptx
UNIDAD 1 TEMA 2.pptxItatyVivar1
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacionzulaymaylin
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxRunayli
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacionkaolong
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado2008PA2Info3
 
Clase De Fds22
Clase De Fds22Clase De Fds22
Clase De Fds22masa832
 

Similaire à Arquitectura de software orientada a patrones (20)

Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Modelos de sistemas distribuidos
Modelos de sistemas distribuidosModelos de sistemas distribuidos
Modelos de sistemas distribuidos
 
Patron mvc struts
Patron mvc strutsPatron mvc struts
Patron mvc struts
 
Modelos de los sistemas distribuidos
Modelos de los sistemas distribuidosModelos de los sistemas distribuidos
Modelos de los sistemas distribuidos
 
Struts en Java
Struts en JavaStruts en Java
Struts en Java
 
Fr amework
Fr ameworkFr amework
Fr amework
 
Clases 30 05
Clases 30 05Clases 30 05
Clases 30 05
 
UNIDAD 1 TEMA 2.pptx
UNIDAD 1 TEMA 2.pptxUNIDAD 1 TEMA 2.pptx
UNIDAD 1 TEMA 2.pptx
 
Framework
FrameworkFramework
Framework
 
diseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informaciondiseño de arquitectura de un sistema de informacion
diseño de arquitectura de un sistema de informacion
 
9.diseño de la arquitectura
9.diseño de la arquitectura9.diseño de la arquitectura
9.diseño de la arquitectura
 
Unidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptxUnidad 2 - Arquitectura.pptx
Unidad 2 - Arquitectura.pptx
 
Framework
FrameworkFramework
Framework
 
MVC.ppt
MVC.pptMVC.ppt
MVC.ppt
 
FMK Capa de Presentacion
FMK Capa de PresentacionFMK Capa de Presentacion
FMK Capa de Presentacion
 
Ingenieria de Software
Ingenieria de SoftwareIngenieria de Software
Ingenieria de Software
 
Patrones de diseño - Andrés Dorado
Patrones de diseño - Andrés DoradoPatrones de diseño - Andrés Dorado
Patrones de diseño - Andrés Dorado
 
algorimo distribuidos
algorimo distribuidosalgorimo distribuidos
algorimo distribuidos
 
Clase De Fds22
Clase De Fds22Clase De Fds22
Clase De Fds22
 

Arquitectura de software orientada a patrones

  • 1.
  • 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
  • 8. Primero, divide el sistema en capas para tratar la complejidad …
  • 9. Patrón de capas (layers) Un sistema que por sus dimensiones requiere ser dividido en componentes
  • 10. Ejemplo de Patrón de capas
  • 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
  • 13. Ejemplo de pipe & filters
  • 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.
  • 17. Cuarto, establece la interacción entre los humanos y el sistema, usando modelo vista controlador… Preparado por:
  • 18. Patrón de Modelo Vista Controlador (MVC) El patrón MVC se utiliza para estructurar sistemas interactivos
  • 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.
  • 29. Estructura Layer Pipe and Filters Blackboard * Distribución Broker Interacción Model-View-Controller Presentation-Abstraction -Control Adaptable Microkernel Reflection
  • 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
  • 39. Ejemplos de Command Processor
  • 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
  • 42. Ejemplos de View Handler
  • 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…