arquitectura de software orientada a patrones

Post on 12-Jul-2015

1.053 Views

Category:

Software

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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…

top related