SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Padrões Arquiteturais

               Estruturais:
            Pipes e Filtros
Pipes e Filtros
•  O padrão “Pipes e Filtros” provê uma estrutura
   para sistemas que processam fluxos de dados.
•  Cada passo de processamento é encapsulado
   em um componente Filtro.
•  Dados são passados através de pipes entre
   filtros adjacentes.
•  Recombinando-se filtros é possível construir-se
   famílias de sistemas relacionados.


2                Livro Texto: Pattern Oriented Software   2Eduardo N. F. Zagari
                        Architecture - Buschmann
Exemplo




3   Livro Texto: Pattern Oriented Software   3Eduardo N. F. Zagari
           Architecture - Buschmann
Contexto
•  Processamento de fluxo de dados (data
   stream)




4             Livro Texto: Pattern Oriented Software   4Eduardo N. F. Zagari
                     Architecture - Buschmann
Problema
•  Problemas na implementação de um
   sistema de processamento de fluxo de
   dados com um único componente:
    – Sistema pode ter que ser construído por
      vários desenvolvedores
    – A tarefa global do sistema pode se decompor
      naturalmente em vários estágios de
      processamento
    – Requisitos provavelmente podem mudar
5                Livro Texto: Pattern Oriented Software   5Eduardo N. F. Zagari
                        Architecture - Buschmann
Problema
•  Para se projetar um sistema de processamento
   de streams que seja flexível, deve-se considerar
   os seguintes aspectos:
    –  Devem ser possíveis futuras melhorias no sistema
       pela troca de passos de processamento ou pela
       recombinação de passos (mesmo por usuários)
    –  Pequenos passos de processamento são mais fáceis
       de reusar em diferentes contextos do que os
       componentes maiores
    –  Passos de processamento não adjacentes não
       compartilham informação
6                  Livro Texto: Pattern Oriented Software   6Eduardo N. F. Zagari
                          Architecture - Buschmann
Problema
    –  Existem diferentes fontes de dados de entrada, tais
       como conexões de rede ou sensores de temperatura
    –  Deve ser possível armazenar ou apresentar os
       resultados finais de várias formas diferentes
    –  Armazenamento explícito de resultados
       intermediários para processamento posterior em
       arquivos é susceptível a erros, se feito por usuários
    –  Pode-se não querer desconsiderar a possibilidade de
       multi-processamento dos passos



7                    Livro Texto: Pattern Oriented Software   7Eduardo N. F. Zagari
                            Architecture - Buschmann
Solução
•  Dividir a tarefa em vários passos de
   processamento seqüenciais.
    – Os passos são conectados via o fluxo de
      dados
    – Cada passo é implementado por um filtro
    – Filtros consomem e enviam dados
      INCREMENTALMENTE (paralelismo e baixa
      latência)
    – Entrada: fonte de dados (p.ex., arquivo texto)
    – Saída: vertedouro de dados (arq, terminal etc)
8                 Livro Texto: Pattern Oriented Software   8Eduardo N. F. Zagari
                         Architecture - Buschmann
Solução
    – A fonte de dados, os filtros e o vertedouro de
      dados são conectados seqëncialmente via
      pipes
    – Cada pipe implementa o fluxo de dados entre
      passos de processamento adjacentes
    – A seqüência de filtros combinadas pelos pipes
      é chamada de pipeline de processamento



9                 Livro Texto: Pattern Oriented Software   9Eduardo N. F. Zagari
                         Architecture - Buschmann
Estrutura
•  Filtros são as unidades de processamento do
   pipeline
     –  Enriquecem
     –  Refinam
     –  Transformam os dados
•  A atividade do filtro pode ser disparada:
     –  Pelo elemento subseqüente do pipeline puxando
        dados na saída do filtro
     –  Pelo elemento anterior empurrando novos dados de
        entrada ou
     –  * O filtro é um loop ativo, puxando de e empurrando
        abaixo o pipeline
10                   Livro Texto: Pattern Oriented Software   10Eduardo N. F. Zagari
                            Architecture - Buschmann
Estrutura
•  Pipes realizam a comunicação
     – Entre filtros
     – Entre a fonte de dados e o primeiro filtro
     – Entre o último filtro e o vertedouro de dados
•  Se os 2 filtros são ativos, o pipe faz o
   sincronismo deles via um buffer FIFO
•  Se a atividade é controlada por um deles,
   o pipe pode ser implementado pela
   chamada direta do ativo para o passivo
11                 Livro Texto: Pattern Oriented Software   11Eduardo N. F. Zagari
                          Architecture - Buschmann
Estrutura
•  Fonte de dados: entrada do sistema
     – Pode ser ativa (modelo Push)
     – Pode ser passiva (modelo Pull)
•  Vertedouro de dados: coleta os resultados
   do fim do pipeline
     – Ativo: puxa os resultados do último estágio de
       processamento
     – Passivo: permite o último filtro empurra ou
       escrever os resultados nele
12                 Livro Texto: Pattern Oriented Software   12Eduardo N. F. Zagari
                          Architecture - Buschmann
Dinâmica
•  4 cenários
     – 3 cenários em que os filtros usam chamadas
       diretas ao componente adjacente do pipeline
       •  Sem componente pipe explícito
     – 1 cenário onde todos os filtros são ativos
       •  Pipe de sincronismo




13                  Livro Texto: Pattern Oriented Software   13Eduardo N. F. Zagari
                           Architecture - Buschmann
Cenário 1




14   Livro Texto: Pattern Oriented Software   14Eduardo N. F. Zagari
            Architecture - Buschmann
Cenário 2




15   Livro Texto: Pattern Oriented Software   15Eduardo N. F. Zagari
            Architecture - Buschmann
Cenário 3




16   Livro Texto: Pattern Oriented Software   16Eduardo N. F. Zagari
            Architecture - Buschmann
Cenário 4 *




17   Livro Texto: Pattern Oriented Software   17Eduardo N. F. Zagari
            Architecture - Buschmann
Implementação
1.  Dividir a tarefa do sistema em uma seqüência
    de estágios de processamento
     •    Cada estágio deve depender somente da saída de
          seu predecessor
2.  Definir o formato dos dados a serem passados
    ao longo de cada pipe
     •    Formato padrão  flexibilidade
3.  Decidir como implementar cada conexão pipe
     •    Implica em definir se os filtros adjacentes são ativos
          ou passivos
18                     Livro Texto: Pattern Oriented Software   18Eduardo N. F. Zagari
                              Architecture - Buschmann
Implementação
4.  Projetar e implementar os filtros
     •    Além dos pipes, baseia-se também na tarefa que
          eles devem realizar
     •    Passivos: funções (PULL) ou procedimentos
          (PUSH)
     •    Ativos: processos ou threads
5.  Projetar o tratamento de erro
     •    Difícil devido a não existência de estado global
     •    No mínimo, deve haver detecção de erro
          •    UNIX usa um canal específico (stderr)
     •    Se um filtro “capota”  Resincronização
8.  Ajustar o pipeline de processamento
19                        Livro Texto: Pattern Oriented Software   19Eduardo N. F. Zagari
                                 Architecture - Buschmann
Variantes
•  Sistemas de pipeline Tee e Join
     –  Permite filtros com mais de uma entrada e/
        ou mais de uma saída




20                 Livro Texto: Pattern Oriented Software   20Eduardo N. F. Zagari
                          Architecture - Buschmann
Usos conhecidos
•  UNIX
•  CMS Pipelines (S.O. IBM)




21            Livro Texto: Pattern Oriented Software   21Eduardo N. F. Zagari
                     Architecture - Buschmann
Benefícios
•  Não há a necessidade de arquivos
   intermediários, mas são possíveis
•  Flexibilidade pela permuta de filtros
•  Flexibilidade pela recombinação
•  Reuso de filtros
•  Rápida prototipação de pipelines
•  Eficiência devido ao processamento
   paralelo
22             Livro Texto: Pattern Oriented Software   22Eduardo N. F. Zagari
                      Architecture - Buschmann
Desvantagens
•  Compartilhamento de informação de
   estado é cara ou inflexível
•  Ganho de eficiência pelo processamento
   paralelo freqüentemente é uma ilusão
     – Custo de transferência de dados entre filtros
     – Serialização interna a alguns filtros
     – Trocas de contexto
•  Overhead na transformação de dados
•  Tratamento de erros
23                 Livro Texto: Pattern Oriented Software   23Eduardo N. F. Zagari
                          Architecture - Buschmann

Weitere ähnliche Inhalte

Was ist angesagt?

Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoRudson Kiyoshi Souza Carvalho
 
Exemplo especificacaoderequisitos(locadora)
Exemplo especificacaoderequisitos(locadora)Exemplo especificacaoderequisitos(locadora)
Exemplo especificacaoderequisitos(locadora)Bruno Santana
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesRodrigo Cascarrolho
 
UML: Diagrama de caso de uso
UML: Diagrama de caso de usoUML: Diagrama de caso de uso
UML: Diagrama de caso de usoElvin Hernandez
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoVinícius de Paula
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de SoftwareGustavo Bazan Maal
 
3. use cases
3. use cases3. use cases
3. use casesAPU
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoSergio Sanchez
 
Modelo del negocio
Modelo del negocioModelo del negocio
Modelo del negocioJulio Pari
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicoslandeta_p
 
diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracionstill01
 

Was ist angesagt? (20)

Diagrama de estado
Diagrama de estadoDiagrama de estado
Diagrama de estado
 
Casos de pruebas
Casos de pruebasCasos de pruebas
Casos de pruebas
 
Diagramas Casos de Uso
Diagramas Casos de UsoDiagramas Casos de Uso
Diagramas Casos de Uso
 
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. CarvalhoAula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
Aula de Analise e Projetos - Diagramas UML - prof. Rudson Kiyoshi S. Carvalho
 
Bugzilla
BugzillaBugzilla
Bugzilla
 
Unidad 4
Unidad 4Unidad 4
Unidad 4
 
Exemplo especificacaoderequisitos(locadora)
Exemplo especificacaoderequisitos(locadora)Exemplo especificacaoderequisitos(locadora)
Exemplo especificacaoderequisitos(locadora)
 
UML - Criando Diagramas Eficientes
UML - Criando Diagramas EficientesUML - Criando Diagramas Eficientes
UML - Criando Diagramas Eficientes
 
UML: Diagrama de caso de uso
UML: Diagrama de caso de usoUML: Diagrama de caso de uso
UML: Diagrama de caso de uso
 
Aula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de ProjetoAula 02 - UML e Padrões de Projeto
Aula 02 - UML e Padrões de Projeto
 
Abstract Factory
Abstract FactoryAbstract Factory
Abstract Factory
 
Diseño de Interfaz
Diseño de InterfazDiseño de Interfaz
Diseño de Interfaz
 
Construccion y Pruebas de Software
Construccion y Pruebas de SoftwareConstruccion y Pruebas de Software
Construccion y Pruebas de Software
 
3. use cases
3. use cases3. use cases
3. use cases
 
Unidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De UsoUnidad 4 Mad Modelado Analisis Casos De Uso
Unidad 4 Mad Modelado Analisis Casos De Uso
 
Modelo del negocio
Modelo del negocioModelo del negocio
Modelo del negocio
 
Diagramas de clases
Diagramas de clasesDiagramas de clases
Diagramas de clases
 
Presentacion Patrones Creacionales
Presentacion Patrones CreacionalesPresentacion Patrones Creacionales
Presentacion Patrones Creacionales
 
2 2 estilos arquitectonicos
2 2 estilos arquitectonicos2 2 estilos arquitectonicos
2 2 estilos arquitectonicos
 
diagrama de colaboracion
diagrama de colaboraciondiagrama de colaboracion
diagrama de colaboracion
 

Andere mochten auch

Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerEduardo Nicola F. Zagari
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelEduardo Nicola F. Zagari
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCEduardo Nicola F. Zagari
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasEduardo Nicola F. Zagari
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na PraticaAlessandro Kieras
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorEduardo Nicola F. Zagari
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonEduardo Nicola F. Zagari
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryEduardo Nicola F. Zagari
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadeEduardo Nicola F. Zagari
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodEduardo Nicola F. Zagari
 
SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisEduardo Nicola F. Zagari
 

Andere mochten auch (20)

Padrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - BrokerPadrões-04 - Padrões Arquiteturais - Broker
Padrões-04 - Padrões Arquiteturais - Broker
 
Padrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - MicrokernelPadrões-06 - Padrões Arquiteturais - Microkernel
Padrões-06 - Padrões Arquiteturais - Microkernel
 
Uma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDBUma Breve Introdução ao MongoDB
Uma Breve Introdução ao MongoDB
 
Classificação de Documentos
Classificação de DocumentosClassificação de Documentos
Classificação de Documentos
 
Padrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVCPadrões-05 - Padrões Arquiteturais - MVC
Padrões-05 - Padrões Arquiteturais - MVC
 
Padrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - CamadasPadrões-02 - Padrões Arquiteturais - Camadas
Padrões-02 - Padrões Arquiteturais - Camadas
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Padrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - AdaptadorPadrões-11 - Padrões Estruturais - Adaptador
Padrões-11 - Padrões Estruturais - Adaptador
 
Padrões-01 - Introdução
Padrões-01 - IntroduçãoPadrões-01 - Introdução
Padrões-01 - Introdução
 
Padrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - SingletonPadrões-10 - Padrões Criacionais - Singleton
Padrões-10 - Padrões Criacionais - Singleton
 
ICC-07 Softwares - Introdução
ICC-07 Softwares - IntroduçãoICC-07 Softwares - Introdução
ICC-07 Softwares - Introdução
 
Padrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract FactoryPadrões-08 - Padrões Criacionais - Abstract Factory
Padrões-08 - Padrões Criacionais - Abstract Factory
 
Padrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - FacadePadrões-12 - Padrões Estruturais - Facade
Padrões-12 - Padrões Estruturais - Facade
 
Padrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory MethodPadrões-09 - Padrões Criacionais - Factory Method
Padrões-09 - Padrões Criacionais - Factory Method
 
SO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas OperacionaisSO-11 Winux: Laboratório de Sistemas Operacionais
SO-11 Winux: Laboratório de Sistemas Operacionais
 
Padrões-07 - Padrões Criacionais
Padrões-07 - Padrões CriacionaisPadrões-07 - Padrões Criacionais
Padrões-07 - Padrões Criacionais
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Programação aula002
Programação aula002Programação aula002
Programação aula002
 

Ähnlich wie Padrões-03 - Padrões Arquiteturais - Pipes e Filtros

Enucomp2017 - Tutorial about network softwarization
Enucomp2017 - Tutorial about network softwarizationEnucomp2017 - Tutorial about network softwarization
Enucomp2017 - Tutorial about network softwarizationNathan Saraiva
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoMagnos Martinello
 
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTestes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTiago Antônio da Silva
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxcassamo2
 
Arquitetura control logix
Arquitetura control logixArquitetura control logix
Arquitetura control logixSaddam Lande
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 
62282591 senai-curso-avancado-redes
62282591 senai-curso-avancado-redes62282591 senai-curso-avancado-redes
62282591 senai-curso-avancado-redesMarco Guimarães
 
Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)Isac Moura
 
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...Guilherme Veras
 
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Apresentacao do Simula...
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Apresentacao do Simula...UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Apresentacao do Simula...
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Apresentacao do Simula...Edinaldo La-Roque
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoelliando dias
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeMauro Pereira
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...André Leon S. Gradvohl
 
AULA DE SISTEMAS OPERACIONAIS.pptx
AULA DE SISTEMAS OPERACIONAIS.pptxAULA DE SISTEMAS OPERACIONAIS.pptx
AULA DE SISTEMAS OPERACIONAIS.pptxADASVIEIRAArmazmPara
 
aula sistemas operacionais.pptx
aula sistemas operacionais.pptxaula sistemas operacionais.pptx
aula sistemas operacionais.pptxfabio20718
 
Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"Reinaldo Barbosa
 

Ähnlich wie Padrões-03 - Padrões Arquiteturais - Pipes e Filtros (20)

Enucomp2017 - Tutorial about network softwarization
Enucomp2017 - Tutorial about network softwarizationEnucomp2017 - Tutorial about network softwarization
Enucomp2017 - Tutorial about network softwarization
 
Em Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do FuturoEm Direção às Redes Programáveis na Internet do Futuro
Em Direção às Redes Programáveis na Internet do Futuro
 
Eripi2018 p4 tutorial
Eripi2018 p4 tutorialEripi2018 p4 tutorial
Eripi2018 p4 tutorial
 
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e CoberturaTestes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
Testes Funcionais e Estruturais utilizando Selenium IDE e Cobertura
 
Lecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptxLecture 4-Processos e Threads pt mz.pptx
Lecture 4-Processos e Threads pt mz.pptx
 
Arquitetura control logix
Arquitetura control logixArquitetura control logix
Arquitetura control logix
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
62282591 senai-curso-avancado-redes
62282591 senai-curso-avancado-redes62282591 senai-curso-avancado-redes
62282591 senai-curso-avancado-redes
 
Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)Arquitetura peer to-peer (p2p)
Arquitetura peer to-peer (p2p)
 
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
sfCon 2012 - Conceitos de Engenharia Reversa aplicados na migração de sistema...
 
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Apresentacao do Simula...
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Apresentacao do Simula...UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Apresentacao do Simula...
UFPA PPGCC LPRAD 2014-02 - Edinaldo La-Roque - OPNET - Apresentacao do Simula...
 
PostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardoPostgreSQL Tuning: O elefante mais rápido que um leopardo
PostgreSQL Tuning: O elefante mais rápido que um leopardo
 
Redes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da redeRedes 6 equipamentos ativos da rede
Redes 6 equipamentos ativos da rede
 
Modelo osi
Modelo osiModelo osi
Modelo osi
 
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
Introdução aos sistemas distribuídos on-line para processamento de fluxos de ...
 
AULA DE SISTEMAS OPERACIONAIS.pptx
AULA DE SISTEMAS OPERACIONAIS.pptxAULA DE SISTEMAS OPERACIONAIS.pptx
AULA DE SISTEMAS OPERACIONAIS.pptx
 
Ccna cap05 mod01
Ccna cap05 mod01Ccna cap05 mod01
Ccna cap05 mod01
 
aula sistemas operacionais.pptx
aula sistemas operacionais.pptxaula sistemas operacionais.pptx
aula sistemas operacionais.pptx
 
Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"Redes de Computadores " Camada de Enlace"
Redes de Computadores " Camada de Enlace"
 
Introdução à sistemas distribuídos
Introdução à sistemas distribuídosIntrodução à sistemas distribuídos
Introdução à sistemas distribuídos
 

Mehr von Eduardo Nicola F. Zagari

Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasEduardo Nicola F. Zagari
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSEduardo Nicola F. Zagari
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxEduardo Nicola F. Zagari
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealEduardo Nicola F. Zagari
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Eduardo Nicola F. Zagari
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Eduardo Nicola F. Zagari
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Eduardo Nicola F. Zagari
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyEduardo Nicola F. Zagari
 

Mehr von Eduardo Nicola F. Zagari (16)

Introdução à Linguagem Ruby
Introdução à Linguagem RubyIntrodução à Linguagem Ruby
Introdução à Linguagem Ruby
 
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes SobrepostasOnix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
Onix: Sistema Integrado de Gerˆencia para Redes Sobrepostas
 
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLSUma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
Uma Plataforma para Engenharia de Tráfego com Qualidade de Serviço em Redes MPLS
 
Uma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes LinuxUma Implementação do MPLS para Redes Linux
Uma Implementação do MPLS para Redes Linux
 
Módulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo RealMódulo de Estudos e Treinamento em Tempo Real
Módulo de Estudos e Treinamento em Tempo Real
 
Módulo de Estudos em Tempo Real
Módulo de Estudos em Tempo RealMódulo de Estudos em Tempo Real
Módulo de Estudos em Tempo Real
 
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
Aproveitamento Funcional de Sistemas Digitais em Subestações: Funções Automát...
 
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
Modernização e Implantação das Funções de Análise de Rede em Tempo Real no Ce...
 
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
Master Thesis - Zagari, Eduardo Nicola Ferraz: Escalonamento em Tempo Real da...
 
Padrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - ProxyPadrões-13 - Padrões Estruturais - Proxy
Padrões-13 - Padrões Estruturais - Proxy
 
ICC-01 História dos Computadores
ICC-01 História dos ComputadoresICC-01 História dos Computadores
ICC-01 História dos Computadores
 
ICC-02 Evolução dos Computadores
ICC-02 Evolução dos ComputadoresICC-02 Evolução dos Computadores
ICC-02 Evolução dos Computadores
 
ICC-03 Organização dos Computadores
ICC-03 Organização dos ComputadoresICC-03 Organização dos Computadores
ICC-03 Organização dos Computadores
 
ICC-04 Sistemas Numéricos
ICC-04 Sistemas NuméricosICC-04 Sistemas Numéricos
ICC-04 Sistemas Numéricos
 
ICC-05 Álgebra Booleana
ICC-05 Álgebra BooleanaICC-05 Álgebra Booleana
ICC-05 Álgebra Booleana
 
ICC-06 Periféricos - Introdução
ICC-06 Periféricos - IntroduçãoICC-06 Periféricos - Introdução
ICC-06 Periféricos - Introdução
 

Padrões-03 - Padrões Arquiteturais - Pipes e Filtros

  • 1. Padrões Arquiteturais Estruturais: Pipes e Filtros
  • 2. Pipes e Filtros •  O padrão “Pipes e Filtros” provê uma estrutura para sistemas que processam fluxos de dados. •  Cada passo de processamento é encapsulado em um componente Filtro. •  Dados são passados através de pipes entre filtros adjacentes. •  Recombinando-se filtros é possível construir-se famílias de sistemas relacionados. 2 Livro Texto: Pattern Oriented Software 2Eduardo N. F. Zagari Architecture - Buschmann
  • 3. Exemplo 3 Livro Texto: Pattern Oriented Software 3Eduardo N. F. Zagari Architecture - Buschmann
  • 4. Contexto •  Processamento de fluxo de dados (data stream) 4 Livro Texto: Pattern Oriented Software 4Eduardo N. F. Zagari Architecture - Buschmann
  • 5. Problema •  Problemas na implementação de um sistema de processamento de fluxo de dados com um único componente: – Sistema pode ter que ser construído por vários desenvolvedores – A tarefa global do sistema pode se decompor naturalmente em vários estágios de processamento – Requisitos provavelmente podem mudar 5 Livro Texto: Pattern Oriented Software 5Eduardo N. F. Zagari Architecture - Buschmann
  • 6. Problema •  Para se projetar um sistema de processamento de streams que seja flexível, deve-se considerar os seguintes aspectos: –  Devem ser possíveis futuras melhorias no sistema pela troca de passos de processamento ou pela recombinação de passos (mesmo por usuários) –  Pequenos passos de processamento são mais fáceis de reusar em diferentes contextos do que os componentes maiores –  Passos de processamento não adjacentes não compartilham informação 6 Livro Texto: Pattern Oriented Software 6Eduardo N. F. Zagari Architecture - Buschmann
  • 7. Problema –  Existem diferentes fontes de dados de entrada, tais como conexões de rede ou sensores de temperatura –  Deve ser possível armazenar ou apresentar os resultados finais de várias formas diferentes –  Armazenamento explícito de resultados intermediários para processamento posterior em arquivos é susceptível a erros, se feito por usuários –  Pode-se não querer desconsiderar a possibilidade de multi-processamento dos passos 7 Livro Texto: Pattern Oriented Software 7Eduardo N. F. Zagari Architecture - Buschmann
  • 8. Solução •  Dividir a tarefa em vários passos de processamento seqüenciais. – Os passos são conectados via o fluxo de dados – Cada passo é implementado por um filtro – Filtros consomem e enviam dados INCREMENTALMENTE (paralelismo e baixa latência) – Entrada: fonte de dados (p.ex., arquivo texto) – Saída: vertedouro de dados (arq, terminal etc) 8 Livro Texto: Pattern Oriented Software 8Eduardo N. F. Zagari Architecture - Buschmann
  • 9. Solução – A fonte de dados, os filtros e o vertedouro de dados são conectados seqëncialmente via pipes – Cada pipe implementa o fluxo de dados entre passos de processamento adjacentes – A seqüência de filtros combinadas pelos pipes é chamada de pipeline de processamento 9 Livro Texto: Pattern Oriented Software 9Eduardo N. F. Zagari Architecture - Buschmann
  • 10. Estrutura •  Filtros são as unidades de processamento do pipeline –  Enriquecem –  Refinam –  Transformam os dados •  A atividade do filtro pode ser disparada: –  Pelo elemento subseqüente do pipeline puxando dados na saída do filtro –  Pelo elemento anterior empurrando novos dados de entrada ou –  * O filtro é um loop ativo, puxando de e empurrando abaixo o pipeline 10 Livro Texto: Pattern Oriented Software 10Eduardo N. F. Zagari Architecture - Buschmann
  • 11. Estrutura •  Pipes realizam a comunicação – Entre filtros – Entre a fonte de dados e o primeiro filtro – Entre o último filtro e o vertedouro de dados •  Se os 2 filtros são ativos, o pipe faz o sincronismo deles via um buffer FIFO •  Se a atividade é controlada por um deles, o pipe pode ser implementado pela chamada direta do ativo para o passivo 11 Livro Texto: Pattern Oriented Software 11Eduardo N. F. Zagari Architecture - Buschmann
  • 12. Estrutura •  Fonte de dados: entrada do sistema – Pode ser ativa (modelo Push) – Pode ser passiva (modelo Pull) •  Vertedouro de dados: coleta os resultados do fim do pipeline – Ativo: puxa os resultados do último estágio de processamento – Passivo: permite o último filtro empurra ou escrever os resultados nele 12 Livro Texto: Pattern Oriented Software 12Eduardo N. F. Zagari Architecture - Buschmann
  • 13. Dinâmica •  4 cenários – 3 cenários em que os filtros usam chamadas diretas ao componente adjacente do pipeline •  Sem componente pipe explícito – 1 cenário onde todos os filtros são ativos •  Pipe de sincronismo 13 Livro Texto: Pattern Oriented Software 13Eduardo N. F. Zagari Architecture - Buschmann
  • 14. Cenário 1 14 Livro Texto: Pattern Oriented Software 14Eduardo N. F. Zagari Architecture - Buschmann
  • 15. Cenário 2 15 Livro Texto: Pattern Oriented Software 15Eduardo N. F. Zagari Architecture - Buschmann
  • 16. Cenário 3 16 Livro Texto: Pattern Oriented Software 16Eduardo N. F. Zagari Architecture - Buschmann
  • 17. Cenário 4 * 17 Livro Texto: Pattern Oriented Software 17Eduardo N. F. Zagari Architecture - Buschmann
  • 18. Implementação 1.  Dividir a tarefa do sistema em uma seqüência de estágios de processamento •  Cada estágio deve depender somente da saída de seu predecessor 2.  Definir o formato dos dados a serem passados ao longo de cada pipe •  Formato padrão  flexibilidade 3.  Decidir como implementar cada conexão pipe •  Implica em definir se os filtros adjacentes são ativos ou passivos 18 Livro Texto: Pattern Oriented Software 18Eduardo N. F. Zagari Architecture - Buschmann
  • 19. Implementação 4.  Projetar e implementar os filtros •  Além dos pipes, baseia-se também na tarefa que eles devem realizar •  Passivos: funções (PULL) ou procedimentos (PUSH) •  Ativos: processos ou threads 5.  Projetar o tratamento de erro •  Difícil devido a não existência de estado global •  No mínimo, deve haver detecção de erro •  UNIX usa um canal específico (stderr) •  Se um filtro “capota”  Resincronização 8.  Ajustar o pipeline de processamento 19 Livro Texto: Pattern Oriented Software 19Eduardo N. F. Zagari Architecture - Buschmann
  • 20. Variantes •  Sistemas de pipeline Tee e Join –  Permite filtros com mais de uma entrada e/ ou mais de uma saída 20 Livro Texto: Pattern Oriented Software 20Eduardo N. F. Zagari Architecture - Buschmann
  • 21. Usos conhecidos •  UNIX •  CMS Pipelines (S.O. IBM) 21 Livro Texto: Pattern Oriented Software 21Eduardo N. F. Zagari Architecture - Buschmann
  • 22. Benefícios •  Não há a necessidade de arquivos intermediários, mas são possíveis •  Flexibilidade pela permuta de filtros •  Flexibilidade pela recombinação •  Reuso de filtros •  Rápida prototipação de pipelines •  Eficiência devido ao processamento paralelo 22 Livro Texto: Pattern Oriented Software 22Eduardo N. F. Zagari Architecture - Buschmann
  • 23. Desvantagens •  Compartilhamento de informação de estado é cara ou inflexível •  Ganho de eficiência pelo processamento paralelo freqüentemente é uma ilusão – Custo de transferência de dados entre filtros – Serialização interna a alguns filtros – Trocas de contexto •  Overhead na transformação de dados •  Tratamento de erros 23 Livro Texto: Pattern Oriented Software 23Eduardo N. F. Zagari Architecture - Buschmann