SlideShare une entreprise Scribd logo
1  sur  42
Publish-Subscribe Middleware

                Pedro Fernandes
         Sistemas Distribuídos e Móveis
 Faculdade de Ciências da Universidade do Porto
                  2009/2010
Paradigma Publish-Subscribe
• Subscribers registam interesse em eventos ou
  num conjunto de eventos
  – Subscriber é o consumidor de eventos
• Publishers publicam eventos
  – Publisher é o gerador de eventos
• Subscribers recebem notificação dos eventos
  de forma assíncrona
• Dispatchers/Brokers são o elo de ligação entre
  ambos.
                   Publish-Subscribe Middleware    2
Paradigma Publish-Subscribe



                                                      subscribe/
                          Dispatcher                 unsubscribe
Publisher   publish                                                Subscriber
                           /Broker
                                                      notify




                      Publish-Subscribe Middleware                              3
Motivação
• Sistemas tightly-coupled não escalam
• Sistemas distribuídos de larga escala
  – componentes diferem:
     •   Localização
     •   Latência
     •   Tempo de vida
     •   …
• Loosely-coupled
  – Participantes operam de forma independente

                         Publish-Subscribe Middleware   4
Decoupling
• Principal característica do Publish-Subscribe:
  loosely-coupled
  – A geração e consumo de informação é
    independente
• Decoupling a diversos níveis:
  – Espaço
  – Tempo
  – Sincronização

                     Publish-Subscribe Middleware   5
Space-decoupling

                                                              Subscriber



                          Dispatcher
Publisher   publish                                  notify   Subscriber
                           /Broker



                                                              Subscriber




                      Publish-Subscribe Middleware                         6
Time-decoupling


                      Dispatcher
Publisher   publish                                       Subscriber
                       /Broker

                                                                       T
                                                                       I
                                                                       M
                                                                       E
                      Dispatcher
Publisher                                        notify   Subscriber
                       /Broker




                      Publish-Subscribe Middleware                         7
Synchronization-decoupling

Publisher                                  Subscriber




                 Dispatcher
                  /Broker




            Publish-Subscribe Middleware                8
Expressividade


• Topic-based
• Content-based
• outros
  – Hybrid-based
  – Type-based



                   Publish-Subscribe Middleware   9
Topic-based

• Subscreve tópicos
  – Identificados por keywords
• Nome dos tópicos expresso por intermédio de
  notação URL
• Exemplo:
         Eurecom/Courses/DSMWare

                   Publish-Subscribe Middleware   10
Content-based

• Considera o conteúdo dos eventos
  – Atributos internos dos dados
• Mais dinâmico do que o topic-based
• Exemplo:
      “Course=DSMWare and Grade>10”



                   Publish-Subscribe Middleware   11
Outros



• Hybrid-based

• Type-based



                 Publish-Subscribe Middleware   12
Performance vs Expressividade

• Expressividade:
  + content-based
  - topic-based
• Performance:
  + topic-based
  - content-based



                    Publish-Subscribe Middleware   13
Topologias


• Com dispatchers
  – Centralizado
  – Distribuído
• Sem dispatchers



                    Publish-Subscribe Middleware   14
Eventos

• Baixo nível
  – Mensagens
     • Explicitamente criadas pelas aplicações
     • Formato de texto ou XML
• Alto nível
  – Invocações
     • Interfaces bem definidos


                      Publish-Subscribe Middleware   15
Transmissão
• Ponto-a-ponto
  – Eventos são enviados para os Subscribers
    individualmente
  – Usado em sistemas centralizados
• Multi-ponto
  – Eventos são enviados a um conjunto de
    Subscribers
  – Eficiente e escalável

                   Publish-Subscribe Middleware   16
Quality of Service

• Persistência
  – Garantia que a mensagem não é perdida
• Prioridades
  – Mensagens são entregues consoante a sua prioridade
• Transacções
  – Operações múltiplas são agrupadas a nível atómico
• Confiança
  – Garantia de entrega

                      Publish-Subscribe Middleware       17
O que é um Middleware?


            Aplicação

           Middleware

           Transporte

               Rede

              Ligação

               Física




       Publish-Subscribe Middleware   18
Exemplos de Publish-Subscribe
              Middlewares

     Nome             Linguagens                  Patrocínio     Expressividade
     Biztalk              .NET                     Microsoft     Content-based
                                              Apache Software
   ActiveMQ               Java                                    (indefinido)
                                                Foundation
    Tuxedo          C, C++ e COBOL          Oracle Corporation   Content-based
                    C, COBOL, Perl e
WebSphereMQ                                            IBM        (indefinido)
                         Java
                                                  Object
Data Distribution
                    C, C++, C# e Java           Management        Topic-based
    Service
                                                  Group




                             Publish-Subscribe Middleware                         19
Data Distribution Service
                                                                        S1
                                                                      S={A,D}
   P1
 P={A,B}


                   D                                      J
                                            B

                       E
                                                          K
                                    A           F
               C


   P2
P={D,C,J}

                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                         20
Data Distribution Service
                                                                            S1
                                                                          S={A,D}
   P1
 P={A,B}
            A

                       D                                      J
                                                B

                           E
                                                              K
                                        A           F
                   C


   P2
P={D,C,J}

                                                                   S4
                                                                  S={A}

                               Publish-Subscribe Middleware                         21
Data Distribution Service
                                                                                S1
                                                                              S={A,D}
   P1                                                                     A
 P={A,B}


                   D                                      J
                                            B

                       E
                                                          K
                                    A
                                    A           F
               C


   P2
P={D,C,J}                                                     A
                                                                   S4
                                                                  S={A}

                           Publish-Subscribe Middleware                                 22
Data Distribution Service
                                                                                     A
                                                                        S1
                                                                      S={A,D}
   P1
 P={A,B}


                   D                                      J
                                            B

                       E
                                                          K
                                    A
                                    A           F
               C


   P2
P={D,C,J}
                                                                      A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                         23
Data Distribution Service
                                                                                         A
                                                                            S1
                                                                          S={A,D}
   P1
 P={A,B}
            B

                       D                                      J
                                                B

                           E
                                                              K
                                        A
                                        A           F
                   C


   P2
P={D,C,J}
                                                                          A
                                                                   S4
                                                                  S={A}

                               Publish-Subscribe Middleware                         24
Data Distribution Service
                                                                                     A
                                                                        S1
                                                                      S={A,D}
   P1
 P={A,B}


                   D                                      J
                                           B
                                           B

                       E
                                                          K
                                    A
                                    A           F
               C


   P2
P={D,C,J}
                                                                      A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                         25
Data Distribution Service
                                                                                     A
                                                                        S1
                                                                      S={A,D}
   P1
 P={A,B}

                                                                         S2
                   D                                      J           S={A,B,J}
                                           B
                                           B

                       E
                                                          K
                                    A
                                    A           F
               C


   P2
P={D,C,J}
                                                                      A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                         26
Data Distribution Service
                                                                                         A
                                                                            S1
                                                                          S={A,D}
   P1
 P={A,B}

                                                                             S2
                   D                                      J               S={A,B,J}
                                           B
                                           B
                                                                      A
                                                               B
                       E
                                                          K
                                    A
                                    A           F
               C


   P2
P={D,C,J}
                                                                          A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                             27
Data Distribution Service
                                                                                     A
                                                                        S1
                                                                      S={A,D}
   P1
 P={A,B}
                                                                                     A
                                                                         S2
                   D                                      J           S={A,B,J}      B
                                           B
                                           B

                       E
                                                          K
                                    A
                                    A           F
               C


   P2
P={D,C,J}
                                                                      A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                         28
Data Distribution Service
                                                                                     A
                                                                        S1
                                                                      S={A,D}



                                                                                     A
                                                                         S2
                   D                                      J           S={A,B,J}      B
                                           B
                                           B

                       E
                                                          K
                                    A
                                    A           F
               C


   P2
P={D,C,J}
                                                                      A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                         29
Data Distribution Service
                                                                                     A
                                                                        S1
                                                                      S={A,D}



                                                                                     A
                                                                         S2
                   D                                      J           S={A,B,J}      B
                                           B
                                           B

                       E
                                                          K
                                    A
                                    A           F
               C
                                                                         S3
                                                                      S={B,D,J}

   P2
P={D,C,J}
                                                                      A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                         30
Data Distribution Service
                                                                                         A
                                                                            S1
                                                                          S={A,D}



                                                                                         A
                                                                             S2
                   D                                      J               S={A,B,J}      B
                                           B
                                           B

                       E
                                                          K
                                    A
                                    A           F
               C
                                                                             S3
                                                                      B   S={B,D,J}

   P2
P={D,C,J}
                                                                          A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                             31
Data Distribution Service
                                                                                     A
                                                                        S1
                                                                      S={A,D}



                                                                                     A
                                                                         S2
                   D                                      J           S={A,B,J}      B
                                           B
                                           B

                       E
                                                          K
                                    A
                                    A           F
               C                                                                     B
                                                                         S3
                                                                      S={B,D,J}

   P2
P={D,C,J}
                                                                      A
                                                               S4
                                                              S={A}

                           Publish-Subscribe Middleware                         32
Data Distribution Service
                                                                                         A
                                                                            S1
                                                                          S={A,D}



                                                                                         A
                                                                             S2
                       D                                      J           S={A,B,J}      B
                                               B
                                               B

                           E
                                                              K
                                        A
                                        A           F
                   C                                                                     B
                                                                             S3
                                                                          S={B,D,J}

   P2       J
P={D,C,J}
                                                                          A
                                                                   S4
                                                                  S={A}

                               Publish-Subscribe Middleware                         33
Data Distribution Service
                                                                                              A
                                                                                 S1
                                                                               S={A,D}



                                                                                              A
                                                                                  S2
                   D                                      JJ                   S={A,B,J}      B
                                           B
                                           B
                                                                           J
                       E
                                                          K
                                    A
                                    A           F
               C                                                                              B
                                                                                  S3
                                                                       J       S={B,D,J}

   P2
P={D,C,J}
                                                                               A
                                                                S4
                                                               S={A}

                           Publish-Subscribe Middleware                                  34
Data Distribution Service
                                                                                      A
                                                                         S1
                                                                       S={A,D}



                                                                                      A
                                                                          S2
                   D                                      JJ           S={A,B,J}      B
                                           B
                                           B
                                                                                      J

                       E
                                                          K
                                    A
                                    A           F
               C                                                                      B
                                                                          S3
                                                                       S={B,D,J}      J
   P2
P={D,C,J}
                                                                       A
                                                                S4
                                                               S={A}

                           Publish-Subscribe Middleware                          35
Data Distribution Service
                                                                                          A
                                                                             S1
                                                                           S={A,D}



                                                                                          A
                                                                              S2
                       D                                      JJ           S={A,B,J}      B
                                               B
                                               B
                                                                                          J

                           E
                                                              K
                                        A
                                        A           F
                   C                                                                      B
                                                                              S3
                                                                           S={B,D,J}      J
   P2       D
P={D,C,J}
                                                                           A
                                                                    S4
                                                                   S={A}

                               Publish-Subscribe Middleware                          36
Data Distribution Service
                                                                                          A
                                                                             S1
                                                                           S={A,D}
                                                                       D

                                                                                          A
                                                                              S2
                   D
                   D                                      JJ               S={A,B,J}      B
                                           B
                                           B
                                                                                          J

                       E
                                                          K
                                    A
                                    A           F
               C                                                                          B
                                                                              S3
                                                                       D   S={B,D,J}      J
   P2
P={D,C,J}
                                                                           A
                                                                S4
                                                               S={A}

                           Publish-Subscribe Middleware                              37
Data Distribution Service
                                                                                      A
                                                                         S1
                                                                       S={A,D}        D


                                                                                      A
                                                                          S2
                   D
                   D                                      JJ           S={A,B,J}      B
                                           B
                                           B
                                                                                      J

                       E
                                                          K
                                    A
                                    A           F
               C                                                                      B
                                                                          S3
                                                                       S={B,D,J}      J
                                                                                      D
   P2
P={D,C,J}
                                                                       A
                                                                S4
                                                               S={A}

                           Publish-Subscribe Middleware                          38
Conclusão
• Publish-Subscribe
   – Boa alternativa para sistemas loosely-coupled com
     necessidade de escalabilidade;
   – Decoupling
      • Espaço
      • Tempo
      • Sincronização
• Compromisso entre escabilidade, expressividade,
  QoS:
   – Depende da arquitectura e implementação do middleware

                        Publish-Subscribe Middleware     39
Obrigado pela atenção!


       Publish-Subscribe Middleware   40
Questões?


 Publish-Subscribe Middleware   41
Mais informações em:



• “The many faces of Publish/subscribe”
  ACM Computing Surveys vol. 35 no. 2, 2003




                 Publish-Subscribe Middleware   42

Contenu connexe

En vedette

En vedette (6)

A scalable and reliable matching service for content based publish subscribe ...
A scalable and reliable matching service for content based publish subscribe ...A scalable and reliable matching service for content based publish subscribe ...
A scalable and reliable matching service for content based publish subscribe ...
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 
Communication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/SubscribeCommunication Patterns Using Data-Centric Publish/Subscribe
Communication Patterns Using Data-Centric Publish/Subscribe
 
HiveServer2
HiveServer2HiveServer2
HiveServer2
 
XSiena: The Content-Based Publish/Subscribe System
XSiena: The Content-Based Publish/Subscribe SystemXSiena: The Content-Based Publish/Subscribe System
XSiena: The Content-Based Publish/Subscribe System
 
Event Driven Architecture
Event Driven ArchitectureEvent Driven Architecture
Event Driven Architecture
 

Dernier

Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
TailsonSantos1
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
HELENO FAVACHO
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 

Dernier (20)

PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEMPRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
PRÁTICAS PEDAGÓGICAS GESTÃO DA APRENDIZAGEM
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
GÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptxGÊNERO CARTAZ - o que é, para que serve.pptx
GÊNERO CARTAZ - o que é, para que serve.pptx
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdfTCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
TCC_MusicaComoLinguagemNaAlfabetização-ARAUJOfranklin-UFBA.pdf
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptxPlano de aula Nova Escola períodos simples e composto parte 1.pptx
Plano de aula Nova Escola períodos simples e composto parte 1.pptx
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
Introdução às Funções 9º ano: Diagrama de flexas, Valor numérico de uma funçã...
 
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2Estudar, para quê?  Ciência, para quê? Parte 1 e Parte 2
Estudar, para quê? Ciência, para quê? Parte 1 e Parte 2
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
Aula 25 - A america espanhola - colonização, exploraçãp e trabalho (mita e en...
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 

Publish-Subscribe Middlewares

  • 1. Publish-Subscribe Middleware Pedro Fernandes Sistemas Distribuídos e Móveis Faculdade de Ciências da Universidade do Porto 2009/2010
  • 2. Paradigma Publish-Subscribe • Subscribers registam interesse em eventos ou num conjunto de eventos – Subscriber é o consumidor de eventos • Publishers publicam eventos – Publisher é o gerador de eventos • Subscribers recebem notificação dos eventos de forma assíncrona • Dispatchers/Brokers são o elo de ligação entre ambos. Publish-Subscribe Middleware 2
  • 3. Paradigma Publish-Subscribe subscribe/ Dispatcher unsubscribe Publisher publish Subscriber /Broker notify Publish-Subscribe Middleware 3
  • 4. Motivação • Sistemas tightly-coupled não escalam • Sistemas distribuídos de larga escala – componentes diferem: • Localização • Latência • Tempo de vida • … • Loosely-coupled – Participantes operam de forma independente Publish-Subscribe Middleware 4
  • 5. Decoupling • Principal característica do Publish-Subscribe: loosely-coupled – A geração e consumo de informação é independente • Decoupling a diversos níveis: – Espaço – Tempo – Sincronização Publish-Subscribe Middleware 5
  • 6. Space-decoupling Subscriber Dispatcher Publisher publish notify Subscriber /Broker Subscriber Publish-Subscribe Middleware 6
  • 7. Time-decoupling Dispatcher Publisher publish Subscriber /Broker T I M E Dispatcher Publisher notify Subscriber /Broker Publish-Subscribe Middleware 7
  • 8. Synchronization-decoupling Publisher Subscriber Dispatcher /Broker Publish-Subscribe Middleware 8
  • 9. Expressividade • Topic-based • Content-based • outros – Hybrid-based – Type-based Publish-Subscribe Middleware 9
  • 10. Topic-based • Subscreve tópicos – Identificados por keywords • Nome dos tópicos expresso por intermédio de notação URL • Exemplo: Eurecom/Courses/DSMWare Publish-Subscribe Middleware 10
  • 11. Content-based • Considera o conteúdo dos eventos – Atributos internos dos dados • Mais dinâmico do que o topic-based • Exemplo: “Course=DSMWare and Grade>10” Publish-Subscribe Middleware 11
  • 12. Outros • Hybrid-based • Type-based Publish-Subscribe Middleware 12
  • 13. Performance vs Expressividade • Expressividade: + content-based - topic-based • Performance: + topic-based - content-based Publish-Subscribe Middleware 13
  • 14. Topologias • Com dispatchers – Centralizado – Distribuído • Sem dispatchers Publish-Subscribe Middleware 14
  • 15. Eventos • Baixo nível – Mensagens • Explicitamente criadas pelas aplicações • Formato de texto ou XML • Alto nível – Invocações • Interfaces bem definidos Publish-Subscribe Middleware 15
  • 16. Transmissão • Ponto-a-ponto – Eventos são enviados para os Subscribers individualmente – Usado em sistemas centralizados • Multi-ponto – Eventos são enviados a um conjunto de Subscribers – Eficiente e escalável Publish-Subscribe Middleware 16
  • 17. Quality of Service • Persistência – Garantia que a mensagem não é perdida • Prioridades – Mensagens são entregues consoante a sua prioridade • Transacções – Operações múltiplas são agrupadas a nível atómico • Confiança – Garantia de entrega Publish-Subscribe Middleware 17
  • 18. O que é um Middleware? Aplicação Middleware Transporte Rede Ligação Física Publish-Subscribe Middleware 18
  • 19. Exemplos de Publish-Subscribe Middlewares Nome Linguagens Patrocínio Expressividade Biztalk .NET Microsoft Content-based Apache Software ActiveMQ Java (indefinido) Foundation Tuxedo C, C++ e COBOL Oracle Corporation Content-based C, COBOL, Perl e WebSphereMQ IBM (indefinido) Java Object Data Distribution C, C++, C# e Java Management Topic-based Service Group Publish-Subscribe Middleware 19
  • 20. Data Distribution Service S1 S={A,D} P1 P={A,B} D J B E K A F C P2 P={D,C,J} S4 S={A} Publish-Subscribe Middleware 20
  • 21. Data Distribution Service S1 S={A,D} P1 P={A,B} A D J B E K A F C P2 P={D,C,J} S4 S={A} Publish-Subscribe Middleware 21
  • 22. Data Distribution Service S1 S={A,D} P1 A P={A,B} D J B E K A A F C P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 22
  • 23. Data Distribution Service A S1 S={A,D} P1 P={A,B} D J B E K A A F C P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 23
  • 24. Data Distribution Service A S1 S={A,D} P1 P={A,B} B D J B E K A A F C P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 24
  • 25. Data Distribution Service A S1 S={A,D} P1 P={A,B} D J B B E K A A F C P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 25
  • 26. Data Distribution Service A S1 S={A,D} P1 P={A,B} S2 D J S={A,B,J} B B E K A A F C P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 26
  • 27. Data Distribution Service A S1 S={A,D} P1 P={A,B} S2 D J S={A,B,J} B B A B E K A A F C P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 27
  • 28. Data Distribution Service A S1 S={A,D} P1 P={A,B} A S2 D J S={A,B,J} B B B E K A A F C P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 28
  • 29. Data Distribution Service A S1 S={A,D} A S2 D J S={A,B,J} B B B E K A A F C P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 29
  • 30. Data Distribution Service A S1 S={A,D} A S2 D J S={A,B,J} B B B E K A A F C S3 S={B,D,J} P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 30
  • 31. Data Distribution Service A S1 S={A,D} A S2 D J S={A,B,J} B B B E K A A F C S3 B S={B,D,J} P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 31
  • 32. Data Distribution Service A S1 S={A,D} A S2 D J S={A,B,J} B B B E K A A F C B S3 S={B,D,J} P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 32
  • 33. Data Distribution Service A S1 S={A,D} A S2 D J S={A,B,J} B B B E K A A F C B S3 S={B,D,J} P2 J P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 33
  • 34. Data Distribution Service A S1 S={A,D} A S2 D JJ S={A,B,J} B B B J E K A A F C B S3 J S={B,D,J} P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 34
  • 35. Data Distribution Service A S1 S={A,D} A S2 D JJ S={A,B,J} B B B J E K A A F C B S3 S={B,D,J} J P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 35
  • 36. Data Distribution Service A S1 S={A,D} A S2 D JJ S={A,B,J} B B B J E K A A F C B S3 S={B,D,J} J P2 D P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 36
  • 37. Data Distribution Service A S1 S={A,D} D A S2 D D JJ S={A,B,J} B B B J E K A A F C B S3 D S={B,D,J} J P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 37
  • 38. Data Distribution Service A S1 S={A,D} D A S2 D D JJ S={A,B,J} B B B J E K A A F C B S3 S={B,D,J} J D P2 P={D,C,J} A S4 S={A} Publish-Subscribe Middleware 38
  • 39. Conclusão • Publish-Subscribe – Boa alternativa para sistemas loosely-coupled com necessidade de escalabilidade; – Decoupling • Espaço • Tempo • Sincronização • Compromisso entre escabilidade, expressividade, QoS: – Depende da arquitectura e implementação do middleware Publish-Subscribe Middleware 39
  • 40. Obrigado pela atenção! Publish-Subscribe Middleware 40
  • 42. Mais informações em: • “The many faces of Publish/subscribe” ACM Computing Surveys vol. 35 no. 2, 2003 Publish-Subscribe Middleware 42