SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
Arquiteturas usando Pipes 
                              and Filters
                                           Por  Sergio Crespo
                                         Email: crespo@unisinos.br
                                 http://www.inf.unisinos.br/~crespo




                                          
© Prof. Dr. Sergio Crespo C S Pinto – 2010/02
Introdução

O Padrão arquitetural Pipes and Filters 
 oferece uma estrutura para 
 processamento de stream de dados.

Cada passo do processamento é 
 encapsulado em um componente filtro. Os 
 dados são transportados por meio de 
 tubos (pipes) que estão entre filtros.

               
Pipes and Filters
Contexto: Processamento de Stream de dados
Problema: Imagine que você está construindo um sistema 
    de software que deve processar ou transformar uma 
    stream de dados de entrada. 
 Implementar isto como um único componentes pode 
    não ser flexível.
 O projeto do sistema, em especial, a interconexão 
    entre as fases de cada estágio do processamento, 
    deve considerar alguns pontos:
      •   Futuras atualizações do sistema devem ser possíveis 
          substituindo­se ou recombinando­se fases.
      •   Processamento em pequena escala deve ser prioritário, pois é 
          mais fácil de manter e reutilizar.
      •   Processamento não adjacente não deve compartilhar informação.
      •   Deve ser possível armazenar a informação em vários formatos.

                       
Pipes and Filters
Estrutura:
Filter: Componentes Filter (filtro) são unidades de 
  processamento de um pipeline. Um filtro 
  enriquece, redefine, sincroniza ou transforma os 
  dados de entrada.
Pipes: São as conexões entre os filtros, entre o 
  data source (a origem dos dados) e o 1º filtro e 
  entre o último filtro e o data sink.
Data source: representa a entrada dos dados.
Data sink: Coleta o resultado do fim de um 
  pipeline.

                  
Cards: Pipes and Filters
Class                        Colaboradores   Class                    Colaboradores
Filter                       Pipe            Pipe                     Data Source
Responsabilidade                             Responsabilidade         Data Sink
Recebe os dados de                           Transferência dos dados. Filter
entrada.                                     Buffers data.
Executa uma função sob                       Sincronização com 
os dados de entrada.                         visinhos.
Abastece a saída de 
dados.

Class                        Colaboradores   Class                   Colaboradores
Data Source                  Pipe            Data Sink               Pipe
Responsabilidade                             Responsabilidade
Entrega o stream de input                    Consome o Output.
para o processamento no 
pipeline.




                                  
Pipes and Filters – exemplo 1




             
Pipes and Filters – exemplo 2
Contexto:
Você deve prover uma solução de integração para várias 
  aplicações financeiras. A aplicação utiliza uma grande 
  variedades de formatos tais como Interactive Financial 
  Exchange (IFX), Open Financial Exchange formato 
  (OCX) e o formato Electronic Data Interchange (EDI) 
  para as mensagens que correspondem a pagamentos, 
  retiradas, depósitos e transferências.




                    
Pipes and Filters – exemplo 2
   Integrar estas aplicações requer o processamento de 
    mensagens de diferentes maneiras. 

   Por exemplo, converter uma mensagem XML­like para 
    outra XML­like usando transformações XSLT.

   Converter uma mensagem padrão EDI para um formato 
    XML­like envolve o uso de regras e processamento.

   Verificar a identidade do emissor envolve verificar a sua 
    assinatura digital que veio anexada na mensagem. 


                      
Pipes and Filters – exemplo 2
Contexto:
   Você  deve  prover  uma  solução  de  integração  para  várias  aplicações  financeiras.  A  aplicação  utiliza 
    uma grande variedades de formatos tais como  Interactive Financial Exchange  (IFX), Open Financial 
    Exchange  formato  (OCX)  e  o  formato  Electronic  Data  Interchange  (EDI)  para  as  mensagens  que 
    correspondem a pagamentos, retiradas, depósitos e transferências.




Problema: 
Como implementar uma sequência de 
 transformações de tal forma que você possa 
 combinar e reusar elas de forma 
 independe?

                                      
Pipes and Filters – exemplo 2
Implementar transformações que possam ser 
  combinadas e reusadas em diferentes 
  aplicações envolve o balanceamento das 
  seguintes forças:

       Muitas aplicações processam grandes volumes de 
        dados em formato similares.

       O processamento dos dados pode ser dividido em uma 
        sequencia de transformações individuais. Por exemplo, 
        processar mensagens XML envolve tipicamente uma 
        série de transformações XSLT. Isto ajuda a diminuir o 
        overhead e a latência de uma transformação.

                       
Pipes and Filters – exemplo 2 solução

 Solução:


 Implemente as transformações usando uma 
    sequência de componentes filters, onde cada 
    filtro recebe uma mensagem de entrada, aplica 
    uma simples transformação e envia a 
    mensagem modificada para o próximo 
    componente. A mensagem é conduzida através 
    de um pipe que conecta filtros de output / input e 
    mecanismos de buferização entre eles.

                    
Pipes and Filters – exemplo 2 solução
       O lado esquerdo apresenta uma configuração com 2 
           filtros. 
        Uma  aplicação  de  origem  envia  mensagens 
           através de um pipe. 
        O  filtro  transforma  cada  mensagem  e  envia  a 
           mensagem  transformada  como  output  dentro  do 
           próximo pipe.
        O pipe carrega a mensagem transformada para o 
           filtro  2.  O  pipe  também  buferiza  qualquer 
           mensagem que filtro 1 envia a filtro 2.
        O  segundo  filtro  aplica  novas  transformações  e 
           envia  por  meio  de  um  pipe  para  uma  aplicação 
           Sink.
        A  aplicação  Sink  coleta  a  mensagem 
           transformada.
       Esta configuração requer:
        (1)  que  a  saída  dos  dados  deve  ser  compatível 
           com o input do filtro 1.
        (2)  a  saída  dos  dados  do  filtro  1  deve  ser 
           compatível com o input do filtro 2.
        (3)  a  saída  dos  dados  do  filtro  2  deve  ser 
           compatível com o input do Sink.

                      
Pipes and Filters – exemplo 3
   Consider  a  Web  service  for  printing  insurance  policies.  The  service  accepts  XML 
    messages from agency management systems. Incoming messages are based on the 
    ACORD  XML  specification,  an  insurance  industry  standard.  However,  each  agency 
    has  added  proprietary  extensions  to  the  standard  ACORD  transactions.  A  print 
    request  message  specifies  the  type  of  document  to  be  generated,  for  example,  an 
    HTML document or a Portable Document Format (PDF) document. The request also 
    includes  policy  data  such  as  client  information,  coverage,  and  endorsements.  The 
    Web  service  processes  the  proprietary  extensions  and  adds  the  jurisdiction­specific 
    information  that  should  appear  on  the  printed  documents,  such  as  local  or  regional 
    requirements and restrictions. The Web service then generates the documents in the 
    requested format and returns them to the agency management system. 



   You  could  implement  these  processing  steps  as  a  single  transformation  within  the 
    Web service. Although viable, this solution does not let you reuse the transformation 
    in a different context. In addition, to accommodate new requirements, you would have 
    to change several components of the Web service. For example, you would have to 
    change several components if a new requirement calls for decrypting some elements 
    of  the  incoming  messages.  An  implementation  that  is  based  on Pipes  and 
    Filters provides an elegant alternative for the printing Web service. 


                                 
Pipes and Filters – exemplo 3 solução
                 In this example, the Pipes and Filters implementation of the 
                      printing Web service has the following benefits that 
                      make it preferable to implementing the Web service as 
                      a single monolithic transformation:

                    Separation of concerns. Each filter solves a different 
                     problem.
                    Division of labor. ACORD XML experts implement the 
                     conversion of the proprietary extensions into an 
                     internal vendor­independent format. People who 
                     specialize in dealing with the intricacies of each 
                     jurisdiction assist with the implementation of the filter 
                     that handles those aspects. Formatters and layout 
                     experts implement document generation.
                    Specialization. Document­rendering is CPU intensive 
                     and, in the case of a PDF document, uses floating 
                     point operations. You can deploy the rendering to 
                     hardware that meets these requirements.
                    Reuse. Each filter encapsulates fewer context­specific 
                     assumptions. For example, the document generator 
                     takes messages that conform to some schema and 
                     generates an HTML or PDF document. Other 
                     applications can reuse this filter.



              
BizTalk Pipeline Designer

                        The allows developers to 
                        connect and to configure 
                        these filters within the 
                        pipeline. The Figure 
                        shows a pipeline that 
                        consists of Pre­Assemble, 
                        Assemble, and Encode 
                        filters. The toolbox shows 
                        the filters than can be 
                        dropped into this 
                        configuration. 




            
Pipes and Filters : Related Patterns

For more information about Pipes and Filters, see the following related patterns:

   Implementing Pipes and Filters with BizTalk Server 2004. This pattern uses the 
    Global Bank scenario to show how you can use BizTalk Server 2004 to implement 
    Pipes and Filters.

   Pipes and Filters [Shaw96, Buschmann96, Hohpe03].

   Intercepting Filter [Trowbridge03]. This version of Intercepting Filter discusses the 
    pattern in the context of Web applications built using the Microsoft .NET Framework. 
    Developers can chain filters to implement preprocessing and post­processing tasks 
    such as extracting header information and rewriting URLs.

   In­band and Out­of­band Partitions [Manolescu97]. This pattern remedies the lack of 
    a component that has a global context in Pipes and Filters systems. The out­of­band 
    partition is context­aware; therefore, it can configure the filters and handle errors.




  http://msdn.microsoft.com/en­us/library/ms978599.aspx 
                           
(1) Pipes and Filters : Intercepting Filter
Context
 Anyone who has built a Web application from scratch realizes that it requires bit more 
   housekeeping work than building an internal clientserver application. First, you have 
   to deal with the HTTP and all its quirks such as HTTP headers, multi­part forms, the 
   statelessness of HTTP, character set encoding schemes, Multipurpose Internet Mail 
   Extensions  (MIME)  types,  and  URL  rewriting.  On  top  of  that,  you  have  to  deal  with 
   security  measures  such  as  Secure  Sockets  Layer  (SSL)  and  user  authentication.  In 
   many  situations,  the  list  continues  on  to  include  such  items  as  client  browser 
   detection  or  user  activity  logging.  Web  application  server  frameworks  perform  many 
   of  these  tasks  for  you,  but  sometimes  you  need  additional  control,  or  you  need  to 
   insert your own processing steps before or after the application processes the 
   Web page request.

Problem
 How do you implement common pre­ and post­processing steps around Web page 
   requests?

Related Patterns
 Decorator [Gamma95].  Intercepting  filters  can  be  considered  decorators  around  a 
   front controller. 
http://msdn.microsoft.com/en­us/library/ms978727.aspx 
                            
(2) Pipes and Filters : Front 
Controller 
Context
 You have decided to use the Model­View­Controller(MVC) pattern to 
  separate  the  user  interface  logic  from  the  business  logic  of  your 
  dynamic  Web  application.  You  have  reviewed  the Page 
  Controller pattern,  but  your  page  controller  classes  have 
  complicated logic, are part of a deep inheritance hierarchy, or your 
  application  determines  the  navigation  between  pages  dynamically 
  based on configurable rules.

Problem
 How do you best structure the controller for very complex Web 
  applications  so  that  you  can  achieve  reuse  and  flexibility  while 
  avoiding code duplication?




    http://msdn.microsoft.com/en­us/library/ms978723.aspx 
                              
(3) A Data Flow Pattern Language
                                      A Data Flow Pattern Language
                                        Dragos­Anton Manolescuy

    Pattern: Data flow architecture
    Pattern: Payloads
    Pattern: Module data protocol
    Pattern: Out­of­band and in­band partitions




http://citeseer.ist.psu.edu/cache/papers/cs/3493/http:zSzzSzst­www.cs.uiuc.eduzSz~hanmerzSzPLoP­97zSzProceedingszSzmanolescu.pdf/a­data­flow­pattern.pdf 
                                                     
(4) DataLaViSTA : A Packet­based Pipes 
and Filters Architecture for Data Handling 
in Virtual Environments
            Ingo Assenmacher, Bernd Hentschel, Marc Wolter, Torsten Kuhlen
                                  Virtual Reality Group
                               RWTH Aachen University
                                      52062 Aachen
                               Tel.: +49 (0)241 80 29210
                              Fax: +49 (0)241 80 629210
            E­Mail: {assenmacher,hentschel,wolter,kuhlen}@rz.rwth­aachen.de

Abstract:  Modern  Virtual  Reality  applications  are  integrated  in  distributed  environments 
   and use concurrent programming models to enable virtual environments for real time 
   interaction.  A  suitable  model  for  many  sub  problems  can  be  found  in  the  pipes  and 
   filters  architecture,  where  data  is  processed  in  a  stream­like  way  using  filters  to 
   transform or aggregate data. This paper describes a terminology that can be used to 
   decompose  a  problem  domain  according  to  such  an  architecture  and  presents 
   DataLaViSTA as an implementation of this model. As results, two issues common to 
   Virtual Reality setups, namely the data synchronization in a PC cluster setup and the 
   coupling  of  external  systems  to  this  configuration  are  implemented  using  the 
   DataLaViSTA module.


http://www.rz.rwth­aachen.de/global/show_document.asp?id=aaaaaaaaaaberru 
                          
(5) Composite Filter Pattern

                                       Sherif M. Yacoub
                                     Hewlett­Packard Labs
                                  1501 Page Mill Rd., MS 1126
                                      Palo Alto, CA 94304
                                    sherif_yacoub@hp.com

  Context
  You are designing a system that processes digital media, streams of data, or digital 
      content.
  Problem
  A  part  of  the  overall  structure  of  a  digital  media  processing  system  is  a  filtering 
      subsystem that transforms/manipulates streams of digital media. The functionality of 
      that  subsystem  is  achieved  by  integrating  several  processing  modules  (filters) 
      together. The way you integrate and connect these filters together controls the format 
      of output (processed) digital media. There are several ways of combining these filters. 
      A flexible design structure is required for modeling the complex combination of these 
      filters,  which  could  be  hierarchical  in  nature.  The  problem  is  how  do  you  design 
      your  filtering  subsystem  to  support  the  complex  hierarchical  combination  of 
      filters?
http://hillside.net/europlop/HillsideEurope/Papers/EuroPLoP2001/2001_Yacoub_CompositeFilterPattern.pdf 
                                   
(6) Software Architecture for Computer 
Vision:Beyond Pipes and Filters
                               Alexandre R.J. Fran»cois
                    Institute for Robotics and Intelligent Systems
                           University of Southern California
                                   afrancoi@usc.edu
                                       July 2003

This document highlights and addresses architecture level software development issues 
    facing  researchers  and  practitioners  in  the  field  of  Computer  Vision.  A  new 
    framework, or architectural style, called SAI, is introduced. It provides a formalism for 
    the  design,  implementation  and  analysis  of  software  systems  that  perform 
    distributed parallel processing of generic data streams. Architectural patterns are 
    illustrated  with  a  number  of  demonstration  projects  ranging  from  single  stream 
    automatic real­time video processing to fully integrated distributed interactive systems 
    mixing  live  video,  graphics  and  sound.  SAI  is  supported  by  an  open  source 
    architectural middleware called MFSM.




http://pollux.usc.edu/~afrancoi/pdf/sacv­tr.pdf 
                             
Pipes and Filters
Para a próxima aula:
Em  grupo  de  2  alunos,  fazer  uma  apresentação  sobre 
  um dos padrões listados:
(1) Blackboard
(2) Broker
(3) Microkernel
(4) Presentation­abstraction­control
(5) Scripted components



                    

Weitere ähnliche Inhalte

Was ist angesagt?

Big Bet On Solar PV
Big Bet On Solar PVBig Bet On Solar PV
Big Bet On Solar PVJigar Shah
 
Aula 01-Tutorial ETL com PDI
Aula 01-Tutorial ETL com PDIAula 01-Tutorial ETL com PDI
Aula 01-Tutorial ETL com PDIJarley Nóbrega
 
z/OS Communications Server Overview
z/OS Communications Server Overviewz/OS Communications Server Overview
z/OS Communications Server OverviewzOSCommserver
 
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)Leinylson Fontinele
 
Evolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de SoftwareEvolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de SoftwareEduardo Mendes
 
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...Marco Brambilla
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoRademaker Siena
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente EncadeadasLeinylson Fontinele
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScriptBruno Catão
 
z/OS V2R3 Communications Server Content Preview
z/OS V2R3 Communications Server Content Previewz/OS V2R3 Communications Server Content Preview
z/OS V2R3 Communications Server Content PreviewzOSCommserver
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixCris Fidelix
 
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
 

Was ist angesagt? (20)

Big Bet On Solar PV
Big Bet On Solar PVBig Bet On Solar PV
Big Bet On Solar PV
 
Aula 01-Tutorial ETL com PDI
Aula 01-Tutorial ETL com PDIAula 01-Tutorial ETL com PDI
Aula 01-Tutorial ETL com PDI
 
z/OS Communications Server Overview
z/OS Communications Server Overviewz/OS Communications Server Overview
z/OS Communications Server Overview
 
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
Pesquisa e Ordenação - Aula 07 - Métodos de Ordenação (Bin sort - Bucket sort)
 
Teste de Mutação
Teste de MutaçãoTeste de Mutação
Teste de Mutação
 
Evolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de SoftwareEvolução de software 1 - Engenharia de Software
Evolução de software 1 - Engenharia de Software
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Curso de Linguagem C
Curso de Linguagem CCurso de Linguagem C
Curso de Linguagem C
 
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...IFML - The interaction flow modeling language, the OMG standard for UI modeli...
IFML - The interaction flow modeling language, the OMG standard for UI modeli...
 
Software process
Software processSoftware process
Software process
 
Mer - Modelo Entidade Relacionamento
Mer - Modelo Entidade RelacionamentoMer - Modelo Entidade Relacionamento
Mer - Modelo Entidade Relacionamento
 
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados  - Aula 12 - Listas Duplamente EncadeadasEstrutura de Dados  - Aula 12 - Listas Duplamente Encadeadas
Estrutura de Dados - Aula 12 - Listas Duplamente Encadeadas
 
Introdução a JavaScript
Introdução a JavaScriptIntrodução a JavaScript
Introdução a JavaScript
 
Modelação de Dados
Modelação de DadosModelação de Dados
Modelação de Dados
 
Teste de software
Teste de softwareTeste de software
Teste de software
 
z/OS V2R3 Communications Server Content Preview
z/OS V2R3 Communications Server Content Previewz/OS V2R3 Communications Server Content Preview
z/OS V2R3 Communications Server Content Preview
 
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane FidelixModelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
Modelos de Processo e Desenvolvimento de Software 1 - Prof.ª Cristiane Fidelix
 
Diagrama de caso de uso
Diagrama de caso de usoDiagrama de caso de uso
Diagrama de caso de uso
 
Psi m14
Psi m14Psi m14
Psi m14
 
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
 

Andere mochten auch

Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasVagner Santana
 
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
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasDo Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasGeorge Gomes
 
Introdução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIntrodução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIgor Takenami
 
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-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
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Softwareelliando dias
 
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
 
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
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaAdriano Teixeira de Souza
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBRafael França
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidorMarcia Abrahim
 

Andere mochten auch (18)

Padrões Arquiteturais de Sistemas
Padrões Arquiteturais de SistemasPadrões Arquiteturais de Sistemas
Padrões Arquiteturais de Sistemas
 
Arquitetura de Software Na Pratica
Arquitetura de Software Na PraticaArquitetura de Software Na Pratica
Arquitetura de Software Na Pratica
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Dancing with publish/subscribe
Dancing with publish/subscribeDancing with publish/subscribe
Dancing with publish/subscribe
 
JAVA REFLETCION
JAVA REFLETCIONJAVA REFLETCION
JAVA REFLETCION
 
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telasDo Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
Do Quadro Negro à Lousa Digital - possibilidades interativas sobre as telas
 
Introdução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a ServiçosIntrodução a Arquitetura Orientada a Serviços
Introdução a Arquitetura Orientada a Serviços
 
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-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-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
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
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
 
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
 
Sistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e ParalelaSistemas Distribuídos - Computação Distribuída e Paralela
Sistemas Distribuídos - Computação Distribuída e Paralela
 
Padrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEBPadrão Arquitetural MVC e suas aplicações para WEB
Padrão Arquitetural MVC e suas aplicações para WEB
 
Arquitetura cliente servidor
Arquitetura cliente servidorArquitetura cliente servidor
Arquitetura cliente servidor
 

Ähnlich wie Arquiteturas usando Pipes and Filters

Telpro Integration
Telpro IntegrationTelpro Integration
Telpro IntegrationRex Sheridan
 
OPEN TEXT ADMINISTRATION
OPEN TEXT ADMINISTRATIONOPEN TEXT ADMINISTRATION
OPEN TEXT ADMINISTRATIONSUMIT KUMAR
 
Ten Steps To Empowerment
Ten Steps To EmpowermentTen Steps To Empowerment
Ten Steps To EmpowermentMohan Dutt
 
Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)David Groff
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architectureAmit rai Raaz
 
Oracle Streams
Oracle StreamsOracle Streams
Oracle Streamssmabidazam
 
Software architecture unit 4
Software architecture unit 4Software architecture unit 4
Software architecture unit 4yawani05
 
Introduction to the client server computing By Attaullah Hazrat
Introduction to the client server computing By Attaullah HazratIntroduction to the client server computing By Attaullah Hazrat
Introduction to the client server computing By Attaullah HazratAttaullah Hazrat
 
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaSDr. Shivashankar
 
Tcp performance Final Report
Tcp performance Final Report Tcp performance Final Report
Tcp performance Final Report ambitlick
 
Ex 1 chapter03-appliation-layer-tony_chen
Ex 1 chapter03-appliation-layer-tony_chenEx 1 chapter03-appliation-layer-tony_chen
Ex 1 chapter03-appliation-layer-tony_chenĐô GiẢn
 
Ex 1 chapter03-appliation-layer-tony_chen
Ex 1 chapter03-appliation-layer-tony_chenEx 1 chapter03-appliation-layer-tony_chen
Ex 1 chapter03-appliation-layer-tony_chenĐô GiẢn
 
Data Flow Architecture_UNIT_2.pptx
Data Flow Architecture_UNIT_2.pptxData Flow Architecture_UNIT_2.pptx
Data Flow Architecture_UNIT_2.pptxKartiksoni81
 
NEW APPROACH TO DEVELOP THE MESSENGER APPLICATION: FROM CLIENTSERVER DESIGN T...
NEW APPROACH TO DEVELOP THE MESSENGER APPLICATION: FROM CLIENTSERVER DESIGN T...NEW APPROACH TO DEVELOP THE MESSENGER APPLICATION: FROM CLIENTSERVER DESIGN T...
NEW APPROACH TO DEVELOP THE MESSENGER APPLICATION: FROM CLIENTSERVER DESIGN T...cscpconf
 
CCNA RS_NB - Chapter 4
CCNA RS_NB - Chapter 4CCNA RS_NB - Chapter 4
CCNA RS_NB - Chapter 4Irsandi Hasan
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2DBU
 

Ähnlich wie Arquiteturas usando Pipes and Filters (20)

Telpro Integration
Telpro IntegrationTelpro Integration
Telpro Integration
 
SOA Design Patterns
SOA Design PatternsSOA Design Patterns
SOA Design Patterns
 
OPEN TEXT ADMINISTRATION
OPEN TEXT ADMINISTRATIONOPEN TEXT ADMINISTRATION
OPEN TEXT ADMINISTRATION
 
5010
50105010
5010
 
Flow models
Flow modelsFlow models
Flow models
 
Components of client server application
Components of client server applicationComponents of client server application
Components of client server application
 
Ten Steps To Empowerment
Ten Steps To EmpowermentTen Steps To Empowerment
Ten Steps To Empowerment
 
Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)Dynamic Object-Oriented Requirements System (DOORS)
Dynamic Object-Oriented Requirements System (DOORS)
 
Peoplesoft PIA architecture
Peoplesoft PIA architecturePeoplesoft PIA architecture
Peoplesoft PIA architecture
 
Oracle Streams
Oracle StreamsOracle Streams
Oracle Streams
 
Software architecture unit 4
Software architecture unit 4Software architecture unit 4
Software architecture unit 4
 
Introduction to the client server computing By Attaullah Hazrat
Introduction to the client server computing By Attaullah HazratIntroduction to the client server computing By Attaullah Hazrat
Introduction to the client server computing By Attaullah Hazrat
 
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS
21 Scheme_21EC53_MODULE-5_CCN_Dr. ShivaS
 
Tcp performance Final Report
Tcp performance Final Report Tcp performance Final Report
Tcp performance Final Report
 
Ex 1 chapter03-appliation-layer-tony_chen
Ex 1 chapter03-appliation-layer-tony_chenEx 1 chapter03-appliation-layer-tony_chen
Ex 1 chapter03-appliation-layer-tony_chen
 
Ex 1 chapter03-appliation-layer-tony_chen
Ex 1 chapter03-appliation-layer-tony_chenEx 1 chapter03-appliation-layer-tony_chen
Ex 1 chapter03-appliation-layer-tony_chen
 
Data Flow Architecture_UNIT_2.pptx
Data Flow Architecture_UNIT_2.pptxData Flow Architecture_UNIT_2.pptx
Data Flow Architecture_UNIT_2.pptx
 
NEW APPROACH TO DEVELOP THE MESSENGER APPLICATION: FROM CLIENTSERVER DESIGN T...
NEW APPROACH TO DEVELOP THE MESSENGER APPLICATION: FROM CLIENTSERVER DESIGN T...NEW APPROACH TO DEVELOP THE MESSENGER APPLICATION: FROM CLIENTSERVER DESIGN T...
NEW APPROACH TO DEVELOP THE MESSENGER APPLICATION: FROM CLIENTSERVER DESIGN T...
 
CCNA RS_NB - Chapter 4
CCNA RS_NB - Chapter 4CCNA RS_NB - Chapter 4
CCNA RS_NB - Chapter 4
 
Chapter 4 communication2
Chapter 4 communication2Chapter 4 communication2
Chapter 4 communication2
 

Mehr von Sergio Crespo

O pensamento computacional com forma de potencializar o aprendizado
O pensamento computacional com forma de potencializar o  aprendizadoO pensamento computacional com forma de potencializar o  aprendizado
O pensamento computacional com forma de potencializar o aprendizadoSergio Crespo
 
O Pensamento Computacional no Desenvolvimento do alunos Autista e desafios
O Pensamento Computacional no Desenvolvimento do alunos Autista e desafiosO Pensamento Computacional no Desenvolvimento do alunos Autista e desafios
O Pensamento Computacional no Desenvolvimento do alunos Autista e desafiosSergio Crespo
 
Tendências das Arquiteturas dos Ambientes de Aprendizagem
Tendências das Arquiteturas dos Ambientes de AprendizagemTendências das Arquiteturas dos Ambientes de Aprendizagem
Tendências das Arquiteturas dos Ambientes de AprendizagemSergio Crespo
 
Novo Perfil do profissional de TI frente as redes sociais
Novo Perfil do profissional de TI frente as redes sociaisNovo Perfil do profissional de TI frente as redes sociais
Novo Perfil do profissional de TI frente as redes sociaisSergio Crespo
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaSergio Crespo
 
Arquitetura de software e Frameworks
Arquitetura de software e FrameworksArquitetura de software e Frameworks
Arquitetura de software e FrameworksSergio Crespo
 
Arquitetura de software - Introdução
Arquitetura de software - IntroduçãoArquitetura de software - Introdução
Arquitetura de software - IntroduçãoSergio Crespo
 
Redes sociais e Educação
Redes sociais e EducaçãoRedes sociais e Educação
Redes sociais e EducaçãoSergio Crespo
 

Mehr von Sergio Crespo (9)

O pensamento computacional com forma de potencializar o aprendizado
O pensamento computacional com forma de potencializar o  aprendizadoO pensamento computacional com forma de potencializar o  aprendizado
O pensamento computacional com forma de potencializar o aprendizado
 
O Pensamento Computacional no Desenvolvimento do alunos Autista e desafios
O Pensamento Computacional no Desenvolvimento do alunos Autista e desafiosO Pensamento Computacional no Desenvolvimento do alunos Autista e desafios
O Pensamento Computacional no Desenvolvimento do alunos Autista e desafios
 
Tendências das Arquiteturas dos Ambientes de Aprendizagem
Tendências das Arquiteturas dos Ambientes de AprendizagemTendências das Arquiteturas dos Ambientes de Aprendizagem
Tendências das Arquiteturas dos Ambientes de Aprendizagem
 
Novo Perfil do profissional de TI frente as redes sociais
Novo Perfil do profissional de TI frente as redes sociaisNovo Perfil do profissional de TI frente as redes sociais
Novo Perfil do profissional de TI frente as redes sociais
 
Lean software
Lean software Lean software
Lean software
 
Arquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemanticaArquitetura: XML + RDF ate WebSemantica
Arquitetura: XML + RDF ate WebSemantica
 
Arquitetura de software e Frameworks
Arquitetura de software e FrameworksArquitetura de software e Frameworks
Arquitetura de software e Frameworks
 
Arquitetura de software - Introdução
Arquitetura de software - IntroduçãoArquitetura de software - Introdução
Arquitetura de software - Introdução
 
Redes sociais e Educação
Redes sociais e EducaçãoRedes sociais e Educação
Redes sociais e Educação
 

Kürzlich hochgeladen

How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17Celine George
 
The Singapore Teaching Practice document
The Singapore Teaching Practice documentThe Singapore Teaching Practice document
The Singapore Teaching Practice documentXsasf Sfdfasd
 
UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE
 
3.21.24 The Origins of Black Power.pptx
3.21.24  The Origins of Black Power.pptx3.21.24  The Origins of Black Power.pptx
3.21.24 The Origins of Black Power.pptxmary850239
 
Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...raviapr7
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17Celine George
 
Human-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesHuman-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesMohammad Hassany
 
Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.EnglishCEIPdeSigeiro
 
Quality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICEQuality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICESayali Powar
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfTechSoup
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxSaurabhParmar42
 
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptxSandy Millin
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxDr. Asif Anas
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17Celine George
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxDr. Santhosh Kumar. N
 
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxPISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxEduSkills OECD
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxiammrhaywood
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfYu Kanazawa / Osaka University
 
How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17Celine George
 

Kürzlich hochgeladen (20)

How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17
 
The Singapore Teaching Practice document
The Singapore Teaching Practice documentThe Singapore Teaching Practice document
The Singapore Teaching Practice document
 
UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024UKCGE Parental Leave Discussion March 2024
UKCGE Parental Leave Discussion March 2024
 
3.21.24 The Origins of Black Power.pptx
3.21.24  The Origins of Black Power.pptx3.21.24  The Origins of Black Power.pptx
3.21.24 The Origins of Black Power.pptx
 
Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17
 
Human-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesHuman-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming Classes
 
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdfPersonal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
 
Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.Easter in the USA presentation by Chloe.
Easter in the USA presentation by Chloe.
 
Quality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICEQuality Assurance_GOOD LABORATORY PRACTICE
Quality Assurance_GOOD LABORATORY PRACTICE
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
 
CAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptxCAULIFLOWER BREEDING 1 Parmar pptx
CAULIFLOWER BREEDING 1 Parmar pptx
 
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
2024.03.23 What do successful readers do - Sandy Millin for PARK.pptx
 
Ultra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptxUltra structure and life cycle of Plasmodium.pptx
Ultra structure and life cycle of Plasmodium.pptx
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptx
 
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptxPISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
PISA-VET launch_El Iza Mohamedou_19 March 2024.pptx
 
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptxAUDIENCE THEORY -- FANDOM -- JENKINS.pptx
AUDIENCE THEORY -- FANDOM -- JENKINS.pptx
 
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdfP4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
P4C x ELT = P4ELT: Its Theoretical Background (Kanazawa, 2024 March).pdf
 
How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17How to Add a New Field in Existing Kanban View in Odoo 17
How to Add a New Field in Existing Kanban View in Odoo 17
 

Arquiteturas usando Pipes and Filters

  • 1. Arquiteturas usando Pipes  and Filters Por  Sergio Crespo Email: crespo@unisinos.br http://www.inf.unisinos.br/~crespo     © Prof. Dr. Sergio Crespo C S Pinto – 2010/02
  • 2. Introdução O Padrão arquitetural Pipes and Filters  oferece uma estrutura para  processamento de stream de dados. Cada passo do processamento é  encapsulado em um componente filtro. Os  dados são transportados por meio de  tubos (pipes) que estão entre filtros.    
  • 3. Pipes and Filters Contexto: Processamento de Stream de dados Problema: Imagine que você está construindo um sistema  de software que deve processar ou transformar uma  stream de dados de entrada.   Implementar isto como um único componentes pode  não ser flexível.  O projeto do sistema, em especial, a interconexão  entre as fases de cada estágio do processamento,  deve considerar alguns pontos: • Futuras atualizações do sistema devem ser possíveis  substituindo­se ou recombinando­se fases. • Processamento em pequena escala deve ser prioritário, pois é  mais fácil de manter e reutilizar. • Processamento não adjacente não deve compartilhar informação. • Deve ser possível armazenar a informação em vários formatos.    
  • 4. Pipes and Filters Estrutura: Filter: Componentes Filter (filtro) são unidades de  processamento de um pipeline. Um filtro  enriquece, redefine, sincroniza ou transforma os  dados de entrada. Pipes: São as conexões entre os filtros, entre o  data source (a origem dos dados) e o 1º filtro e  entre o último filtro e o data sink. Data source: representa a entrada dos dados. Data sink: Coleta o resultado do fim de um  pipeline.    
  • 5. Cards: Pipes and Filters Class Colaboradores Class Colaboradores Filter Pipe Pipe Data Source Responsabilidade Responsabilidade Data Sink Recebe os dados de  Transferência dos dados. Filter entrada. Buffers data. Executa uma função sob  Sincronização com  os dados de entrada. visinhos. Abastece a saída de  dados. Class Colaboradores Class Colaboradores Data Source Pipe Data Sink Pipe Responsabilidade Responsabilidade Entrega o stream de input  Consome o Output. para o processamento no  pipeline.    
  • 7. Pipes and Filters – exemplo 2 Contexto: Você deve prover uma solução de integração para várias  aplicações financeiras. A aplicação utiliza uma grande  variedades de formatos tais como Interactive Financial  Exchange (IFX), Open Financial Exchange formato  (OCX) e o formato Electronic Data Interchange (EDI)  para as mensagens que correspondem a pagamentos,  retiradas, depósitos e transferências.    
  • 8. Pipes and Filters – exemplo 2  Integrar estas aplicações requer o processamento de  mensagens de diferentes maneiras.   Por exemplo, converter uma mensagem XML­like para  outra XML­like usando transformações XSLT.  Converter uma mensagem padrão EDI para um formato  XML­like envolve o uso de regras e processamento.  Verificar a identidade do emissor envolve verificar a sua  assinatura digital que veio anexada na mensagem.     
  • 9. Pipes and Filters – exemplo 2 Contexto:  Você  deve  prover  uma  solução  de  integração  para  várias  aplicações  financeiras.  A  aplicação  utiliza  uma grande variedades de formatos tais como  Interactive Financial Exchange  (IFX), Open Financial  Exchange  formato  (OCX)  e  o  formato  Electronic  Data  Interchange  (EDI)  para  as  mensagens  que  correspondem a pagamentos, retiradas, depósitos e transferências. Problema:  Como implementar uma sequência de  transformações de tal forma que você possa  combinar e reusar elas de forma  independe?    
  • 10. Pipes and Filters – exemplo 2 Implementar transformações que possam ser  combinadas e reusadas em diferentes  aplicações envolve o balanceamento das  seguintes forças:  Muitas aplicações processam grandes volumes de  dados em formato similares.  O processamento dos dados pode ser dividido em uma  sequencia de transformações individuais. Por exemplo,  processar mensagens XML envolve tipicamente uma  série de transformações XSLT. Isto ajuda a diminuir o  overhead e a latência de uma transformação.    
  • 11. Pipes and Filters – exemplo 2 solução  Solução:  Implemente as transformações usando uma  sequência de componentes filters, onde cada  filtro recebe uma mensagem de entrada, aplica  uma simples transformação e envia a  mensagem modificada para o próximo  componente. A mensagem é conduzida através  de um pipe que conecta filtros de output / input e  mecanismos de buferização entre eles.    
  • 12. Pipes and Filters – exemplo 2 solução O lado esquerdo apresenta uma configuração com 2  filtros.   Uma  aplicação  de  origem  envia  mensagens  através de um pipe.   O  filtro  transforma  cada  mensagem  e  envia  a  mensagem  transformada  como  output  dentro  do  próximo pipe.  O pipe carrega a mensagem transformada para o  filtro  2.  O  pipe  também  buferiza  qualquer  mensagem que filtro 1 envia a filtro 2.  O  segundo  filtro  aplica  novas  transformações  e  envia  por  meio  de  um  pipe  para  uma  aplicação  Sink.  A  aplicação  Sink  coleta  a  mensagem  transformada. Esta configuração requer:  (1)  que  a  saída  dos  dados  deve  ser  compatível  com o input do filtro 1.  (2)  a  saída  dos  dados  do  filtro  1  deve  ser  compatível com o input do filtro 2.  (3)  a  saída  dos  dados  do  filtro  2  deve  ser  compatível com o input do Sink.    
  • 13. Pipes and Filters – exemplo 3  Consider  a  Web  service  for  printing  insurance  policies.  The  service  accepts  XML  messages from agency management systems. Incoming messages are based on the  ACORD  XML  specification,  an  insurance  industry  standard.  However,  each  agency  has  added  proprietary  extensions  to  the  standard  ACORD  transactions.  A  print  request  message  specifies  the  type  of  document  to  be  generated,  for  example,  an  HTML document or a Portable Document Format (PDF) document. The request also  includes  policy  data  such  as  client  information,  coverage,  and  endorsements.  The  Web  service  processes  the  proprietary  extensions  and  adds  the  jurisdiction­specific  information  that  should  appear  on  the  printed  documents,  such  as  local  or  regional  requirements and restrictions. The Web service then generates the documents in the  requested format and returns them to the agency management system.   You  could  implement  these  processing  steps  as  a  single  transformation  within  the  Web service. Although viable, this solution does not let you reuse the transformation  in a different context. In addition, to accommodate new requirements, you would have  to change several components of the Web service. For example, you would have to  change several components if a new requirement calls for decrypting some elements  of  the  incoming  messages.  An  implementation  that  is  based  on Pipes  and  Filters provides an elegant alternative for the printing Web service.     
  • 14. Pipes and Filters – exemplo 3 solução In this example, the Pipes and Filters implementation of the  printing Web service has the following benefits that  make it preferable to implementing the Web service as  a single monolithic transformation:  Separation of concerns. Each filter solves a different  problem.  Division of labor. ACORD XML experts implement the  conversion of the proprietary extensions into an  internal vendor­independent format. People who  specialize in dealing with the intricacies of each  jurisdiction assist with the implementation of the filter  that handles those aspects. Formatters and layout  experts implement document generation.  Specialization. Document­rendering is CPU intensive  and, in the case of a PDF document, uses floating  point operations. You can deploy the rendering to  hardware that meets these requirements.  Reuse. Each filter encapsulates fewer context­specific  assumptions. For example, the document generator  takes messages that conform to some schema and  generates an HTML or PDF document. Other  applications can reuse this filter.    
  • 15. BizTalk Pipeline Designer The allows developers to  connect and to configure  these filters within the  pipeline. The Figure  shows a pipeline that  consists of Pre­Assemble,  Assemble, and Encode  filters. The toolbox shows  the filters than can be  dropped into this  configuration.     
  • 16. Pipes and Filters : Related Patterns For more information about Pipes and Filters, see the following related patterns:  Implementing Pipes and Filters with BizTalk Server 2004. This pattern uses the  Global Bank scenario to show how you can use BizTalk Server 2004 to implement  Pipes and Filters.  Pipes and Filters [Shaw96, Buschmann96, Hohpe03].  Intercepting Filter [Trowbridge03]. This version of Intercepting Filter discusses the  pattern in the context of Web applications built using the Microsoft .NET Framework.  Developers can chain filters to implement preprocessing and post­processing tasks  such as extracting header information and rewriting URLs.  In­band and Out­of­band Partitions [Manolescu97]. This pattern remedies the lack of  a component that has a global context in Pipes and Filters systems. The out­of­band  partition is context­aware; therefore, it can configure the filters and handle errors.   http://msdn.microsoft.com/en­us/library/ms978599.aspx   
  • 17. (1) Pipes and Filters : Intercepting Filter Context  Anyone who has built a Web application from scratch realizes that it requires bit more  housekeeping work than building an internal clientserver application. First, you have  to deal with the HTTP and all its quirks such as HTTP headers, multi­part forms, the  statelessness of HTTP, character set encoding schemes, Multipurpose Internet Mail  Extensions  (MIME)  types,  and  URL  rewriting.  On  top  of  that,  you  have  to  deal  with  security  measures  such  as  Secure  Sockets  Layer  (SSL)  and  user  authentication.  In  many  situations,  the  list  continues  on  to  include  such  items  as  client  browser  detection  or  user  activity  logging.  Web  application  server  frameworks  perform  many  of  these  tasks  for  you,  but  sometimes  you  need  additional  control,  or  you  need  to  insert your own processing steps before or after the application processes the  Web page request. Problem  How do you implement common pre­ and post­processing steps around Web page  requests? Related Patterns  Decorator [Gamma95].  Intercepting  filters  can  be  considered  decorators  around  a  front controller.  http://msdn.microsoft.com/en­us/library/ms978727.aspx     
  • 18. (2) Pipes and Filters : Front  Controller  Context  You have decided to use the Model­View­Controller(MVC) pattern to  separate  the  user  interface  logic  from  the  business  logic  of  your  dynamic  Web  application.  You  have  reviewed  the Page  Controller pattern,  but  your  page  controller  classes  have  complicated logic, are part of a deep inheritance hierarchy, or your  application  determines  the  navigation  between  pages  dynamically  based on configurable rules. Problem  How do you best structure the controller for very complex Web  applications  so  that  you  can  achieve  reuse  and  flexibility  while  avoiding code duplication? http://msdn.microsoft.com/en­us/library/ms978723.aspx     
  • 19. (3) A Data Flow Pattern Language A Data Flow Pattern Language Dragos­Anton Manolescuy  Pattern: Data flow architecture  Pattern: Payloads  Pattern: Module data protocol  Pattern: Out­of­band and in­band partitions http://citeseer.ist.psu.edu/cache/papers/cs/3493/http:zSzzSzst­www.cs.uiuc.eduzSz~hanmerzSzPLoP­97zSzProceedingszSzmanolescu.pdf/a­data­flow­pattern.pdf     
  • 20. (4) DataLaViSTA : A Packet­based Pipes  and Filters Architecture for Data Handling  in Virtual Environments Ingo Assenmacher, Bernd Hentschel, Marc Wolter, Torsten Kuhlen Virtual Reality Group RWTH Aachen University 52062 Aachen Tel.: +49 (0)241 80 29210 Fax: +49 (0)241 80 629210 E­Mail: {assenmacher,hentschel,wolter,kuhlen}@rz.rwth­aachen.de Abstract:  Modern  Virtual  Reality  applications  are  integrated  in  distributed  environments  and use concurrent programming models to enable virtual environments for real time  interaction.  A  suitable  model  for  many  sub  problems  can  be  found  in  the  pipes  and  filters  architecture,  where  data  is  processed  in  a  stream­like  way  using  filters  to  transform or aggregate data. This paper describes a terminology that can be used to  decompose  a  problem  domain  according  to  such  an  architecture  and  presents  DataLaViSTA as an implementation of this model. As results, two issues common to  Virtual Reality setups, namely the data synchronization in a PC cluster setup and the  coupling  of  external  systems  to  this  configuration  are  implemented  using  the  DataLaViSTA module. http://www.rz.rwth­aachen.de/global/show_document.asp?id=aaaaaaaaaaberru     
  • 21. (5) Composite Filter Pattern Sherif M. Yacoub Hewlett­Packard Labs 1501 Page Mill Rd., MS 1126 Palo Alto, CA 94304 sherif_yacoub@hp.com Context You are designing a system that processes digital media, streams of data, or digital  content. Problem A  part  of  the  overall  structure  of  a  digital  media  processing  system  is  a  filtering  subsystem that transforms/manipulates streams of digital media. The functionality of  that  subsystem  is  achieved  by  integrating  several  processing  modules  (filters)  together. The way you integrate and connect these filters together controls the format  of output (processed) digital media. There are several ways of combining these filters.  A flexible design structure is required for modeling the complex combination of these  filters,  which  could  be  hierarchical  in  nature.  The  problem  is  how  do  you  design  your  filtering  subsystem  to  support  the  complex  hierarchical  combination  of  filters? http://hillside.net/europlop/HillsideEurope/Papers/EuroPLoP2001/2001_Yacoub_CompositeFilterPattern.pdf     
  • 22. (6) Software Architecture for Computer  Vision:Beyond Pipes and Filters Alexandre R.J. Fran»cois Institute for Robotics and Intelligent Systems University of Southern California afrancoi@usc.edu July 2003 This document highlights and addresses architecture level software development issues  facing  researchers  and  practitioners  in  the  field  of  Computer  Vision.  A  new  framework, or architectural style, called SAI, is introduced. It provides a formalism for  the  design,  implementation  and  analysis  of  software  systems  that  perform  distributed parallel processing of generic data streams. Architectural patterns are  illustrated  with  a  number  of  demonstration  projects  ranging  from  single  stream  automatic real­time video processing to fully integrated distributed interactive systems  mixing  live  video,  graphics  and  sound.  SAI  is  supported  by  an  open  source  architectural middleware called MFSM. http://pollux.usc.edu/~afrancoi/pdf/sacv­tr.pdf     
  • 23. Pipes and Filters Para a próxima aula: Em  grupo  de  2  alunos,  fazer  uma  apresentação  sobre  um dos padrões listados: (1) Blackboard (2) Broker (3) Microkernel (4) Presentation­abstraction­control (5) Scripted components