Vous êtes sur la page 1sur 27

Mnica Corts

Lucero Salazar
Diana Blanco
Ximena Daz
PIPE AND FILTER PATTERN
(Patrn de Tuberas y Filtro)
Patrones/Estilos
Arquitectnicos
Estilos de Flujo de Datos
Tuberas y Filtros
Estilos Centrados en Datos
Arquitecturas de Pizarra o Repositorio
Estilos de Llamada y Retorno
Modelo Vista Control (MVC)
Arquitecturas en Capas
Arquitecturas Orientadas a Objetos
Arquitecturas Basadas en Componetes
Arquitectura de Tuberas y
Filtros
Se 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
Filtros
Enfatiza 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 contexto
no retiene informacin de estado
Leer
Traducir al ingls Escribir ingls
Traducir al chino Escribir chino
Shaw 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
ARQUITECTNICOS
Un patrn arquitectural establece una relacin
entre:

SOLUCION
PROBLEM
A
CONTEXT
O
Tuberas y Filtros:
Contexto

Se 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:
Contexto

Procesamiento 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: Problema

Los 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: Problema
El sistema es una secuencia de transformaciones
de los datos.

La aplicacin debe descomponerse en varias
partes.

Las transformaciones son:
Independientes
Sin estado interno
Bien ordenadas
Leer
Traducir al ingls Escribir ingls
Traducir al chino Escribir chino
Tuberas y Filtros:
Solucin
Shaw y Garlan:
Modelo de sistema flujo de datos entre
componentes
Componentes filtros (transformaciones,
procesamiento local, asncrono).
Conectores tubos.
Estructura de control flujo de datos.
Buschmann:
El sistema se divide en varios pasos secuenciales de
procesamiento
Los pasos se conectan con flujos de datos
Cada filtro consume y procesa sus datos en forma
incremental
El 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: Estructura
Filtros:
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: Estructura
Filtros:
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: Estructura
Tubos:
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: Estructura
Origen de datos:
input del sistema
brinda al sistema una serie de datos con la misma
estructura o tipo.
Puede ser archivos, bases de datos, o dispositivos
de entrada
pueden tambin ser activos (push) o pasivos.

Destino de datos:
a l llegan los resultados del procesamiento del
sistema
existen destinos activos (pull) y pasivos
Tuberas y Filtros:
Implementacin
Dividir 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
Filtros
Los 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
Filtros


El 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).

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

Solucin
Ejecutar etapas lentas en procesadores ms rpidos
Modificar 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.

Solucin
Cada 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.

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

Vous aimerez peut-être aussi