Arquitectura de software orientada a patrones
-
Upload
gustavo-de-la-cruz-tovar -
Category
Software
-
view
1.049 -
download
2
Transcript of Arquitectura de software orientada a patrones
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 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
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
Preparado por:
Cuarto, establece la interacción entre los humanos y el
sistema, usando modelo vista controlador…
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 >>
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
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
LayerPipe and FiltersBlackboard *
Distribución
Broker
Interacción
Model-View-ControllerPresentation-Abstraction-Control
Adaptable
MicrokernelReflection
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…