patron tuberia y filtro

Click here to load reader

Upload: ximediaz23

Post on 23-Nov-2015

38 views

Category:

Documents


0 download

TRANSCRIPT

TCTICAS Y PATRONES DE ARQUITECTURA

Mnica CortsLucero SalazarDiana BlancoXimena DazPIPE AND FILTER PATTERN(Patrn de Tuberas y Filtro)Patrones/Estilos ArquitectnicosEstilos de Flujo de DatosTuberas y FiltrosEstilos Centrados en DatosArquitecturas de Pizarra o RepositorioEstilos de Llamada y RetornoModelo Vista Control (MVC)Arquitecturas en CapasArquitecturas Orientadas a ObjetosArquitecturas Basadas en ComponetesArquitectura de Tuberas y FiltrosSe aplica cuando los datos de entrada se han de transformar en datos de salida mediante una serie de operaciones.

Los componentes (filtros) van transmitiendo datos al siguiente por medio de tuberas.

Los filtros no necesitan saber el funcionamiento de los vecinos. Slo se preocupan de su entrada y su salida.

Si hay una sola lnea de transformaciones se denomina procesamiento por lotes secuencial (pipeline).

Arquitectura de Tuberas y FiltrosEnfatiza la transformacin incremental de los datos a travs de las sucesivas componentes.

Cada componente (filtro) es un traductor que procesa los datos de entrada usa poca informacin de contextono retiene informacin de estadoLeerTraducir al inglsEscribir inglsTraducir al chinoEscribir chinoShaw y Garlan (1996) Estilo arquitectonico:

Una familia de sistemas de software en trminos de un patrn de organizacin estructural, que define un vocabulario de componentes y tipos de conectores y un conjunto de restricciones de cmo pueden ser combinadas. [5]

Buschmann (1996) Estilo arquitectonico:Una familia de sistemas de software en trminos de su organizacin estructural. Expresa componentes y las relaciones entre estos, con las restricciones de su aplicacin y la composicin asociada, as como tambin las reglas para su construccin. [5]

Patrn:Una regla que consta de tres partes, la cual expresa una relacin entre un contexto, un problema y una solucin. [5] En lneas generales, un patrn sigue el siguiente esquema:

PATRONES ARQUITECTNICOSUn patrn arquitectural establece una relacin entre:

Tuberas y Filtros: ContextoSe requieren muchos sistemas para transformar flujos de elementos de datos de una entrada a otra.

En la prctica es comn que las transformaciones ocurran repetidamente, es por eso que se desea crear esto de forma independiente para su reutilizacin.

Tuberas y Filtros: ContextoProcesamiento de flujos de datos.Problema descompuesto en una serie de actividades.Las actividades transforman uno o ms flujos de datos de entrada en uno o ms flujos de datos de salida, en forma incremental.Cada actividad es un filtro.Los filtros se comunican solamente a travs de tubos:Operacin que enva una secuencia de datos de un proceso a otro.

Tuberas y Filtros: ProblemaLos sistemas necesitan dividirse en componentes reusables y de acoplamiento flexible con mecanismos de interaccin simples y genricos de forma que se puedan combinar entre ellos.

Los componentes se pueden acoplar o si son independientes, se pueden ejecutar en paralelo.

Tuberas y Filtros: ProblemaEl sistema es una secuencia de transformaciones de los datos.

La aplicacin debe descomponerse en varias partes.

Las transformaciones son:IndependientesSin estado internoBien ordenadas

LeerTraducir al inglsEscribir inglsTraducir al chinoEscribir chinoTuberas y Filtros: SolucinShaw y Garlan:Modelo de sistema flujo de datos entre componentesComponentesfiltros (transformaciones, procesamiento local, asncrono).Conectorestubos.Estructura de controlflujo de datos.Buschmann:El sistema se divide en varios pasos secuenciales de procesamientoLos pasos se conectan con flujos de datosCada filtro consume y procesa sus datos en forma incrementalEl origen de los datos, el destino y los filtros se conectan con tubos que implementan el flujo de datos entre pasos de procesamiento.

Tuberas y Filtros: EstructuraFiltros:enriquece, refina y/o transforma los datos.Es el encargado de filtrar o transformar los datos que recibe a travs de las tuberas.el procesamiento se inicia:el elemento siguiente solicita datos (pull)el elemento anterior enva datos (push)el filtro tiene un ciclo interno que solicita datos del filtro anterior y enva datos al siguiente (filtro activo).los filtros no comparten estado.los filtros no saben de la existencia o identidad de otros filtros.Tuberas y Filtros: EstructuraFiltros:enriquece, refina y/o transforma los datos.el procesamiento se inicia:el elemento siguiente solicita datos (pull)el elemento anterior enva datos (push)el filtro tiene un ciclo interno que solicita datos del filtro anterior y enva datos al siguiente (filtro activo).los filtros no comparten estado.los filtros no saben de la existencia o identidad de otros filtros.Tuberas y Filtros: EstructuraTubos:Es el conector que pasa los datos de un filtro al siguiente.Se trata de un flujo unidireccional de datos, que suele ejecutarse por un buffer de datos para almacenar todos los datos; hasta que el siguiente filtro tiene tiempo para procesarlo.

transferencia de datos con un buffer First-In-First-Out

Tuberas y Filtros: EstructuraOrigen de datos:input del sistemabrinda al sistema una serie de datos con la misma estructura o tipo.Puede ser archivos, bases de datos, o dispositivos de entradapueden tambin ser activos (push) o pasivos.

Destino de datos:a l llegan los resultados del procesamiento del sistemaexisten destinos activos (pull) y pasivosTuberas y Filtros: ImplementacinDividir las tareas en una secuencia de pasos de procesamiento.los procesos deben ser independientes y ordenados.

Definir el formato de los datos transmitidos a travs de cada pipe.flexibilidad vs. performance.

Decidir implementacin de cada tubo.Determinar la implementacin de los filtros (push o pull)

Caractersticas de Tuberas y FiltrosLos tubos no tienen estado interno y simplemente comunican datos entre los filtros.

Tubos y filtros ejecutan en forma no determinstica sobre los datos hasta que stos se acaban.

Restricciones de conexin:existe una fuente de datos conectada al puerto input de un filtro;existe un destino de datos conectado al puerto output de un filtro.Beneficios de Tuberas y FiltrosEl uso del patrn de tuberas y filtros permite la descripcin de un clculo en trminos de la composicin de operaciones ordenadas de sus filtros componentes. Cada operacin entonces se puede entender en trminos de relaciones de entrada/salida y datos ordenados. [1]Soportan de forma natural la ejecucin paralela. Cada filtro es considerado una operacin separada que potencialmente se puede ejecutar simultneamente con otros filtros.

Si el proceso se distribuye en cantidades similares, los sistemas de tuberas y filtros son relativamente fciles de mejorar y mantener por el intercambio y recombinacin de filtros. Se introduce la flexibilidad por la adicin de nuevos filtros y el reemplazo de los viejos por unos mejores.Debido a su interfaz simple es relativamente fcil el intercambio y recombinacin dentro de las mismas arquitecturas

El performance (rendimiento) de las arquitecturas de tuberas y filtros dependen mayormente del nmero de pasos que se calculan. Una vez que todos los componentes estn activos, la eficiencia de procesamiento es constante.Permiten determinados mtodos de anlisis relevantes para los sistemas paralelos como el throughput y anlisis de deadlock(punto muerto).

LiabilitiesProblemas de ejecucin. Si las cargas no estn adecuadamente equilibradas.Si en las etapas no todos presentan una velocidad de ejecucin similar.

SolucinEjecutar etapas lentas en procesadores ms rpidosModificar la asignacin de componentes de software a los procesadores de hardware, y probar en cada etapa para obtener una velocidad similar.

Si no es posible equilibrar la carga de trabajo, el rendimiento que podra obtenerse en un sistema de tuberas de tuberas y filtros puede no valer la pena el esfuerzo de programacin.Sincronizacin. Si cada etapa causo un retardo durante la ejecucin, este retraso se extiende a travs de todos los siguientes filtros.Si se utiliza retroalimentacin a las etapas anteriores , todo el sistema tiende a alentarse despus de cada operacin.

Granularidad. La eficacia de estos sistemas se basa en la suposicin de que la comunicacin es un tubera de accin simple en comparacin con la operacin de los filtros.Si el tiempo de comunicacin tiende a ser mayor que el tiempo requerido para operar sobre el flujo de datos, el rendimiento del sistema disminuye .Degeneracin.

Los sistemas se pueden degenerar hasta el punto donde se convierten en un sistema secuencial por lotes, esto , en cada paso se procesan todos los datos como una sola entidad.

En este caso , cada etapa no procesa incrementalmente una corriente de datos.

SolucinCada filtro debe estar diseado para proporcionar una transformacin paralela incremental completa de datos de entrada a datos de salida .Gestin de errores

Se debe definir al menos una estrategia de reporte de errores en todo el sistema . Sin embargo , las estrategias concretas para la recuperacin de errores o manipulacin dependen directamente del problema a resolver. La mayora de aplicaciones consideran que si se produce un error, el sistema se reinicia o bien la tubera lo ignora.

SolucinSi ninguno de las alternativas anteriores funciona, es posible (y se aconseja) utilizar patrones alternativos, como el patrn de capas.BIBLIOGRAFIASoftware architecture in practice, 3 edicin, 2013. Capitulo 13. http://carlosreynoso.com.ar/archivos/arquitectura/Estilos.PDFhttp://www.fceia.unr.edu.ar/ingsoft/unidad11-4.pdfhttp://www.slideshare.net/mstabare/arquitecturas-de-software-parte-2Arquitectura de Sofware Camacho, Cardeso, Unes Abril 20014, Ver en Lnea:http://prof.usb.ve/lmendoza/Documentos/PS-6116/Guia%20Arquitectura%20v.2.pdfhttp://www.udistrital.edu.co:8080/documents/276352/356568/Cap7Arquitectura.pdfhttp://www.ctr.unican.es/asignaturas/is1/is1-t04-trans.pdf