SlideShare uma empresa Scribd logo
1 de 5
Publish-Subscribe Middleware
                                                          Pedro Fernandes
                                                     Departamento de Ciência de
                                                           Computadores
                                               Faculdade de Ciências da Universidade
                                                             do Porto


RESUMO                                                               interessados. Um evento pode ser visto como uma mensagem
Neste artigo vamos descrever os conceitos associados ao              enviada por um produtor de informação e implicitamente
paradigma de Publish-Subscribe, assim como alguns                    endereçada ao conjunto de todos os consumidores que
Middlewares que os implementam.                                      subscreveram esse género de evento. (ver Figura 1)


Palavras-chave
Publish-Subscriber Middleware.

1. INTRODUÇÃO                                                                     Figura 1: Paradigma Publish-Subscribe.
As aplicações de software, fruto da miniaturização e mobilidade
crescente dos equipamentos, estão cada vez mais a necessitar de      As necessidades de processamento de informação neste género
seguir modelos distribuídos. Hoje em dia, as aplicações              de paradigma são imensas. Sendo que a plataforma de
necessitam de comutar dados de e para muitos outros nós              middleware está encarregue de executar o processamento,
computacionais vizinhos, agregando muitas vezes o seu poder          filtrando informação para teoricamente milhões de utilizadores,
computacional, num sistema em rede cada vez mais extenso.            dadas as suas alterações de localização, alteração de perfil (i.e.,
Este género de aplicações encontra diversas finalidades:             as subscrições que fazem no momento) e a informação estática e
aeroespaciais, militares, industriais e comerciais. [1]              dinâmica do meio ambiente. [1] O local, no seio do sistema, onde
Comum a todas estas aplicações está a necessidade de colectar        é feito esse processamento vai depender depois da topologia
continuamente dados e integrá-los de forma distribuída entre um      adoptada (como veremos no tópico 3.2).
largo conjunto de utilizadores, sítios e aplicações. A aplicação     Estes novos sistemas necessitam de novos padrões e algoritmos
tem pois de filtrar e distribuir dados relevantes para o interesse   de comunicação. Dos vários middlewares que surgiram para
dos utilizadores e outros componentes, de uma forma persistente.     colmatar as novas exigências, temos que a maior parte inclui as
Mais abstractamente, na maior parte dos cenários, a maioria dos      arquitecturas publish-subscribe. Estas representam actualmente
referidos nós constituem entidades desconhecidas das restantes e     os padrões mais eficientes para a transmissão de dados desde o
tanto a fonte dos dados como o destinatário podem por vezes não      produtor até aos muitos consumidores. [2]
estar presentes na rede ao mesmo tempo. [1]
O paradigma tradicional de request-response, altamente
                                                                     2.1 O que é um Middleware?
advogado como um paradigma de computação distribuída de
                                                                     Um middleware é uma peça de software reutilizável que reside
eleição, não é adequado para encarar estes novos desafios. Nesse
                                                                     entre as camadas de aplicação e o sistema operativo, camadas de
modelo clássico de abordagem dita pull-based, um cliente, que
                                                                     rede e camadas físicas. (Figura 2)
necessite de updates instantâneos de informação, necessitaria de
questionar o provider (ou servidor) continuamente, levando a
congestão da rede.
Os requisitos actuais estão a levar a necessidade de adopção de
modelos de disseminação de informação que, ofereçam aos
utilizadores informação pertinente com um elevado grau de
disponibilidade, através duma abordagem push-based. É este tipo
de abordagem que o paradigma publish-subscribe segue.


2. PARADIGMA
Este paradigma constitui um simples modelo de interacção que
consiste em produtores (publishers) de informação, que publicam            Figura 2: Localização do Middleware no modelo OSI.
eventos no sistema, e pelos consumidores (subscribers) de
informação, que subscrevem os eventos que lhes interessam            O principal papel do middleware é então o de interligar as
dentro do sistema. O sistema de publish-subscribe assegura a         aplicações com as restantes camadas de mais baixo nível, assim
notificação por ordem temporal dos eventos aos subscribers
como outras infra-estruturas, coordenando a forma como as          3.2 Topologia
aplicações interagem entre si.                                     Na topologia dos event dispatcher podemos ter duas opções de
O recurso a middlewares é especialmente importante em              configuração: centralizado ou distribuído. No primeiro caso
situações onde os processos executam em plataformas ou             temos um componente único que age como event dispatcher, o
arquitecturas diferentes, visto potenciar a interoperabilidade e   que potencialmente reduz a escalabilidade do sistema e introduz
comunicação das mesmas.                                            um ponto único de falha.
                                                                   No caso de middlewares publish subscribe que providenciem
                                                                   arquitecturas distribuídas verifica-se um conjunto de dispatching
3. PUBLISH-SUBSCRIBE MIDDLEWARE                                    servers inter-ligados que, cooperam na colecta de subscrições
As aplicações que exploram os mecanismos do publish-subscribe      vindas de clientes e no roteamento dos eventos, com o objectivo
middleware organizam os seus clientes como colecções de            de reduzir a sobrecarga da rede e aumentar a escalabilidade da
componentes autónomos, que interagem publicando notificações       mesma. [1]
de eventos, ao mesmo tempo que subscrevem as classes de            É natural que, em sistemas com arquitectura distribuída, cada
eventos nas quais estão interessados. O event dispatcher (ou       middleware apresente estratégias diferentes para os seus
event broker) é o componente da arquitectura responsável por       dispatchers, no que concerne ao processamento de eventos e
colectar as subscrições e enviar os eventos para os subscribers.   subscrições proveniente de um mesmo conjunto de clientes. [2]
(ver Figura 1)
                                                                   Existem mesmo alguns sistemas de publish-subscribe que
Dado o enorme potencial deste paradigma, nos últimos anos têm      eliminam por completo os dispatchers, deixando a tarefa de
sido desenvolvidos um grande número de publish-subscribe           roteamento e filtragem encarregue aos próprios publishers e
middlewares, alguns deles com diferentes abordagens para o         subscribers, permitindo assim que as mensagens sejam
mesmo paradigma.                                                   transmitidas directamente entre ambos. [7]
Em cada uma dessas abordagens são criadas Application
Programming Interface (API) específicas que permitem então
controlar o fluxo de comunicação entre os subscribers, os
                                                                   3.3 Eventos
                                                                   As unidades trocadas entre publishers, dispatchers e subscribers
publishers e os dispatchers.
                                                                   dentro do sistema publish-subscribe designam-se por eventos. Ao
De entre essas diversas abordagens, destacamos alguns pontos       nível dos eventos podemos destacar dois tipos: baixo e alto nível.
que consideramos preponderantes para o sucesso de um
                                                                   Os eventos de baixo nível incluem as mensagens de texto ou
middleware deste género:
                                                                   formatos mais complexos como o XML. (que favorece, em larga
                                                                   medida, a troca de mensagens entre plataformas assentes em
3.1 Expressividade                                                 sistemas operativos ou arquitecturas diferentes)
A expressividade da linguagem de subscrição delineia a             Os eventos de alto nível incluem a invocação de métodos
separação entre sistemas considerados topic-based, onde as         remotos. Nestes casos é conveniente que existam Interfaces pré-
subscrições identificam apenas as classes dos eventos              definidas, para que a comunicação consiga estabelecer-se entre
pretendidos (enunciados por intermédio de URL1), e os sistemas     os componentes.
content-based, onde as subscrições contêm expressões
                                                                   Outra das características dos eventos é o facto de serem stateless.
(chamados de event patterns) que permitem um sofisticado           Conceptualmente, os eventos não têm persistência no sistema
mecanismo de busca, no próprio conteúdo do evento, orientado       nem forma de confirmar a sua recepção. Eles são enviados
aos assuntos pretendidos. [7]                                      apenas para os componentes que subscreveram o evento antes de
Estes são os graus de expressividade mais comuns, mas existem      este ser publicado. No entanto é possível contornar esta
algumas publicações que enunciam outros mais. Nomeadamente         característica, como veremos mais adiante. [6]
a type-based e a hybrid-based.
As type-based valem-se das capacidades das próprias linguagens
de programação em definir tipos e subtipos, classificando dessa    3.4 Transmissão
forma os eventos. Proporciona-se assim um grau mais elevado de     Ao nível da transmissão podemos ter dois tipos: ponto-a-ponto ou
especialização, que a maior parte dos outros métodos de            multi-ponto.
subscrição (especialmente o topic-based) não suporta. [5]          As transmissões ponto-a-ponto são mais comuns em sistemas
No caso do hybrid-based, propõe-se estabelecer um mecanismo        request-response      que,   operam     segundo     arquitecturas
simbiótico entre content-based e topic-based, oferecendo dessa     centralizadas, onde os eventos são enviados individualmente para
forma uma maior escalabilidade decorrente do uso de técnicas de    o cliente respectivo.
comunicação sofisticadas e orientadas para a resolução de          Em multi-ponto, os eventos são transmitidos directamente para
situações muito específicas. [4]                                   um conjunto de subscribers que estão interessados nos mesmos.
                                                                   Esta forma de transmissão permite uma maior escalabilidade e
                                                                   eficiência. [6]
1
    Uniform Resource Locator
3.5 Quality of Service
Alguns dos middlewares possibilitam catalogar os eventos com                      Instabilidade de throughtput (períodos de forte
uma série de parâmetros extra que, ajudam a implementar                           sobrecarga contrastam com outros de total silêncio)
mecanismos de suporte ao publish-subscribe e assim colmatar
                                                                                  Lentidão - quando mais e mais aplicações/componentes
algumas das suas lacunas. [6]
                                                                                  usam a infra-estrutura (mesmo quando tratam de
Alguns dos benefícios dessa simbiose traduzem-se a nível de:                      eventos diferentes)
         Persistência: garantia de que o evento não é extraviado;                 IP broadcast storms (que ao saturarem a rede local
         Prioridades: eventos podem ser catalogados consoante a                   podem levar a desactivação da mesma)
         sua importância;
         Transacções: eventos relacionados          podem      ser
         agrupados a nível atómico;
                                                                     6. EXEMPLOS DE PUBLISH-SUBSCRIBE
                                                                     MIDDLEWARE
         Confiança: garantia de entrega dos eventos.                 A nível conceptual o paradigma publish-subscribe fornece já uma
                                                                     série de características base que, dependendo do objectivo de
                                                                     cada middleware e das suas necessidades, podem ser exploradas.
4. VANTAGENS                                                         Mas para além disso existem uma série de mecanismos extra
Recapitulando, o paradigma de publish-subscribe introduz uma         (como já vimos) que podem ser implementados em conjunto para
série de vantagens, em relação a outros (como o request-             adicionar mais capacidades ao middleware.
response), que os middlewares que o utilizam podem potenciar.
                                                                     Na tabela seguinte, podemos ver alguns dos principais
Desde logo porque os publishers são loosely-coupled em relação       middlewares que implementam serviços baseados em publish-
aos subscribers, ou seja, não necessitam sequer de saber da sua      subscribe e que estão disponíveis no mercado. (ver Tabela 1)
existência. Estando o foco direccionado para o evento, tanto os
subscribers como os publishers permanecem ignorantes
relativamente a topologia do sistema onde se encontram. Cada               Tabela 1: Alguns Publish-Subscribe Middlewares. [8-13]
um deles pode operar independentemente do outro.                           Nome          Linguagem        Patrocínio      Expressividade
Num paradigma request-response (dito tightly-coupled), o cliente          BizTalk           .NET           Microsoft      Content-based
não pode enviar mensagens enquanto o processo do servidor não            ActiveMQ           Java        Apache Software     (indefinido)
estiver a executar. Nem o servidor pode receber mensagens                                                 Foundation
enquanto o cliente não executar o pedido.
                                                                           Tuxedo          C,C++ e          Oracle        Content-based
Portanto, em publish-subscribe o sistema está desacoplado não                              COBOL          Corporation
só a nível de sincronização, mas também a nível temporal e           WebSphere MQ        C, COBOL,           IBM            (indefinido)
espacial. [6]                                                                            Perl e Java
Para sistemas de média escala, os paradigmas de publish-                    Data         C,C++,C# e        Object          Topic-based
subscribe providenciam uma melhor escalabilidade do que os               Distribution       Java         Management
                                                                           Service                         Group
tradicionais request-response. Seja por operações paralelas,
caching de mensagens ou diferentes tipologias de routing.
No entanto, e à medida que os sistemas escalam para tornar-se        Podemos então explorar mais em pormenor algumas das
datacenters com centenas de servidores partilhando a                 características desses middlewares. Nomeadamente do Data
infraestrutura publish-subscribe, estas grandes vantagens podem      Distribution System, que é um standard muito conhecido para
tornar-se problemáticas.                                             mecanismos publish-subscribe; o WebSphere MQ que é dos
                                                                     mecanismos com mais tradição e mais utilizados actualmente a
                                                                     nível de produção; o Tuxedo por ter sido recentemente adquirido
5. DESVANTAGENS                                                      por uma das empresas em maior expansão no mundo das novas
Os problemas mais sérios do publish-subscribe advêm dos              tecnologias.
efeitos secundários de um dos seus trunfos: o facto da relação
                                                                     6.1.1 Data Distribution System
entre publisher e subscriber ser loosely-coupled. [7]
                                                                     O Data Distribution Service (DDS) surge fruto do consórcio
Por exemplo, quando uma aplicação necessita de uma garantia de       entre os dois maiores impulsionadores do DDS: American Real-
entrega, (i.e., de que a mensagem é sempre entregue ou que caso      Time Innovations e o French Thales Group. Ambas as
não seja possível confirmar a entrega, o publisher é informado) o    instituições juntaram esforços no sentido de criar uma
sistema publish-subscribe em si, conceptualmente, não tem            especificação única que, foi mais tarde aprovada pela Object
forma de providenciar essa certeza.                                  Management Group2, resultando em 2003 no aparecimento da
As dificuldades em escalar, para sistemas de muito grande            primeira versão do DDS.
dimensão, acabam também por traduzir-se em mais
desvantagens:                                                        2
                                                                         Também responsável por standards como UML e CORBA.
O DDS é uma especificação de publish-subscribe middleware           envia, o Queue Manager armazena a mensagem até que o
para sistemas distribuídos, criado em resposta a necessidade de     receptor a peça de novo.
standardização de modelos publish-subscribe em tempo real e         A ordem de todas as mensagens é assim também preservada
centrados na troca de dados.                                        através do uso de ordenação FIFO, para cada tipo de prioridade.
O middleware do DDS simplifica a programação de redes               [11]
complexas, implementando um modelo de publish-subscribe
para envio e recepção de dados, eventos e comandos entre os
componentes. Componentes que estejam a produzir informação          6.1.3 Tuxedo
(publishers) criam tópicos (por exemplo, temperatura,               O Tuxedo foi originalmente desenvolvido pela AT&T em 1983
localização, pressão) e publicam amostras. O DDS encarrega-se       com o objectivo de criar e administrar sistemas de suporte a
então da entrega das amostras a todos os subscribers que            operações e processamento de transacções online (OLTP). Após
declararam interesse no tópico respectivo.                          uma série de aquisições e fusões a empresa BEA Systems, na
O DDS trata de todos os aspectos necessários a entrega da           altura detentora dos direitos do Tuxedo, acabou por ser adquirida
mensagem automaticamente, sem requerer qualquer intervenção         pela Oracle em 2008.
por parte das aplicações do utilizador. Alguns desses aspectos      O middleware Tuxedo foi desenhado desde o início para dar
prendem-se com:                                                     suporte a aplicações de alta disponibilidade e providenciar
                                                                    mecanismos escaláveis que possibilitassem centenas de
                                                                    transacções por segundo em sistemas distribuídos comuns.
            determinar quem vai receber as mensagens
                                                                    A sua base assenta fortemente no mecanismo de Bulletin Board
            onde estão localizados os destinatários                 (BB) responsável pelo clustering do sistema. Este consiste num
            o que acontece caso a mensagem não seja entregue        segmento de memória partilhada que contêm o estado do
                                                                    domínio gerido pelo Tuxedo. Servidores, serviços, transacções e
                                                                    clientes estão todos registados no BB providenciando assim uma
O DDS permite que o utilizador especifique uma série de             visão global do estado particular de cada um dos componentes.
parâmetros QoS3 de forma a configurar os mecanismos de
                                                                    Para assegurar a manutenção desses dados existe um processo
descoberta automática de mensagens e especificar os
                                                                    chamado Bulletin Board Liaison (BBL) que executa em cada um
comportamentos a ter quando envia e recebe as mesmas.
                                                                    dos componentes de forma a manter a cópia central do BB
O DDS permite também executar automaticamente mecanismos            sempre actualizada. [10]
de redundância entre os publishers, caso algum deles falhe.
Dessa forma garante-se que os subscribers recebem sempre uma
amostra dos dados cuja prioridade tenha sido configurada como
elevada e cujo período de validade não tenha ainda expirado. Isto   7. CONCLUSÃO
ocorre de forma transparente para o subscriber. [8]                 Decorrente do facto de assentar num mecanismo loosely-coupled,
                                                                    o paradigma de Publish-Subscribe apresenta-se como a melhor
                                                                    alternativa para comunicação entre sistemas que necessitem de
6.1.2 WebSphere MQ                                                  uma elevada escalabilidade. Proporcionando um desacoplamento
O WebSphere MQ (WMQ) representa a evolução do trabalho              a nível de: sincronização, tempo e espaço.
desenvolvido pela IBM desde 1992 na primeira versão do seu          No entanto, deve-se ter alguma reserva na sua utilização uma vez
MQSeries.                                                           que, dependendo da arquitectura pretendida e a utilização mais
                                                                    intensiva do sistema, as suas características podem tornar-se
O middleware WMQ providencia a chamada one-time delivery de
mensagens entre uma larga variedade de plataformas. Este            problemáticas. Originando instabilidade de throughput, IP
                                                                    broadcast storms e lentidão na obtenção de resposta.
middleware enfatiza a segurança e robustez (através do uso de
logs) do tráfego de mensagens, para que nunca sejam dadas como      Apesar de tudo, existe um grande suporte ao paradigma Publish-
perdidas num sistema bem configurado.                               Subscribe vindo de algumas das referências no mundo das novas
O agente principal de comunicação no WMQ é o Queue                  tecnologias: Oracle, IBM e Microsoft, são exemplos disso.
Manager. Este trata do armazenamento, temporização, triggering      No futuro, fruto desse suporte, prevê-se então o aparecimento de
e todas as outras funções não relacionadas com o trajecto a         mais e melhores middlewares que tirem partido das
percorrer pelos dados.                                              características conceptuais do Publish-Subscribe, e se possível
O middleware WMQ providencia assim aos programadores um             resolvam algumas das suas lacunas.
mecanismo para alcançar arquitecturas onde as mensagens são         Prevê-se também a adopção consistente deste paradigma em
enviadas de uma aplicação para outra, sem que ambas                 aplicações direccionadas a dispositivos móveis, nomeadamente
necessitem de estar a executar ao mesmo tempo. Se uma               para telemóveis. [1]
aplicação receptora não está a escuta, quando o remetente a


3
    Quality of Service
[7] Publish-Subscribe
8. REFERÊNCIAS                                                       http://en.wikipedia.org/wiki/Publish/subscribe
                                                                     4 de Dezembro 2009.
[1] Gianpaolo Cugola and Arno Jacobsen. Using
    Publish/Subscribe Middleware for Mobile Systems. Mobile      [8] Data Distribution Service
    Computing and Communications Review, Volume 1,                   http://en.wikipedia.org/wiki/Data_Distribution_Service
    Number 2.
                                                                     4 de Dezembro 2009.
[2] Mohamed Mastouri and Salem Hasnaoui. Performance of a
    Publish/Subscribe Middleware for the Real-Time               [9] Apache ActiveMQ
    Distributed Control systems. IJCSNS, VOL.7 No.1, Janeiro         http://en.wikipedia.org/wiki/Apache_ActiveMQ
    2007                                                             4 de Dezembro 2009.
[3] Bogumil Zieba, Maurice Glandrup, Marten van Sinderen,        [10] Tuxedo
    Maarten Wegdam. Reconfiguration Service for
    Publish/Subscribe Middleware. European Research                  http://en.wikipedia.org/wiki/Tuxedo_(software)
    Programme.                                                       4 de Dezembro 2009.
[4] Roman Szarowrski. Hybrid Publish-Subscribe: A                [11] IBM WebSphere MQ
    compromise approuch for large scale. Czech Technical
                                                                     http://en.wikipedia.org/wiki/IBM_WebSphere_MQ
    University in Prague.
                                                                     4 de Dezembro 2009.
[5] Patrick Eugster, Rachid Guerraoui. Type-Based
    Publish/Subscribe. Agilent Laboratories Scotland,            [12] Microsoft BizTalk Server
    Edinburgh.                                                       http://en.wikipedia.org/wiki/Microsoft_BizTalk_Server
[6] Patrick Eugster, Pascal Felber, Rachid Guerraoui. The many       4 de Dezembro 2009.
    faces of Publish-Subscribe Middleware. ACM Computing
    Surveys vol. 35 no. 2, 2003

Mais conteúdo relacionado

Mais procurados

Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geralsergiocrespo
 
Componentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em AndroidComponentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em Androidwelingtonms
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowPrabhdeep Singh
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a ObjetosIgor Takenami
 
Right to Research Subscription-based vs Open Access Journals
Right to Research Subscription-based  vs Open Access JournalsRight to Research Subscription-based  vs Open Access Journals
Right to Research Subscription-based vs Open Access JournalsPavlinka Kovatcheva
 
Java: Manipulação de Arquivos
Java:  Manipulação  de ArquivosJava:  Manipulação  de Arquivos
Java: Manipulação de ArquivosArthur Emanuel
 
Diagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasDiagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasOctviodeOliveiraJorg
 
Types of Resources for Research
Types of Resources for Research Types of Resources for Research
Types of Resources for Research Deana Greenfield
 
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...Simone Aliprandi
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and viewsDr Reeja S R
 
Introduction to OOP concepts
Introduction to OOP conceptsIntroduction to OOP concepts
Introduction to OOP conceptsAhmed Farag
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
How to reference right
How to reference rightHow to reference right
How to reference rightMegna Kalvani
 
Software design
Software designSoftware design
Software designambitlick
 
Local variables Instance variables Class/static variables
Local variables Instance variables Class/static variablesLocal variables Instance variables Class/static variables
Local variables Instance variables Class/static variablesSohanur63
 

Mais procurados (20)

Arquitetura de Software Visão Geral
Arquitetura de Software Visão GeralArquitetura de Software Visão Geral
Arquitetura de Software Visão Geral
 
Componentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em AndroidComponentização e padrões de projeto e interface em Android
Componentização e padrões de projeto e interface em Android
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to know
 
Programação Orientada a Objetos
Programação Orientada a ObjetosProgramação Orientada a Objetos
Programação Orientada a Objetos
 
Right to Research Subscription-based vs Open Access Journals
Right to Research Subscription-based  vs Open Access JournalsRight to Research Subscription-based  vs Open Access Journals
Right to Research Subscription-based vs Open Access Journals
 
Java: Manipulação de Arquivos
Java:  Manipulação  de ArquivosJava:  Manipulação  de Arquivos
Java: Manipulação de Arquivos
 
Diagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas CompostasDiagrama de Perfil e Estruturas Compostas
Diagrama de Perfil e Estruturas Compostas
 
Aula 7 diagramas_classes2
Aula 7 diagramas_classes2Aula 7 diagramas_classes2
Aula 7 diagramas_classes2
 
Types of Resources for Research
Types of Resources for Research Types of Resources for Research
Types of Resources for Research
 
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
Ordinanza Tribunale Venezia: caso Ravensburger / Uomo Vitruviano Leonardo (ot...
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
NCompass Live: Cataloging with RDA
NCompass Live: Cataloging with RDANCompass Live: Cataloging with RDA
NCompass Live: Cataloging with RDA
 
Introduction to OOP concepts
Introduction to OOP conceptsIntroduction to OOP concepts
Introduction to OOP concepts
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Scientific research writing and types of scientific artiles
Scientific research writing and types of scientific artilesScientific research writing and types of scientific artiles
Scientific research writing and types of scientific artiles
 
Design Patterns.ppt
Design Patterns.pptDesign Patterns.ppt
Design Patterns.ppt
 
CSS
CSSCSS
CSS
 
How to reference right
How to reference rightHow to reference right
How to reference right
 
Software design
Software designSoftware design
Software design
 
Local variables Instance variables Class/static variables
Local variables Instance variables Class/static variablesLocal variables Instance variables Class/static variables
Local variables Instance variables Class/static variables
 

Destaque

Publish-Subscribe Middlewares
Publish-Subscribe MiddlewaresPublish-Subscribe Middlewares
Publish-Subscribe Middlewareshome
 
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 ...somnath goud
 
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareAplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareCesar Rocha
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - ObserverJuliana Cindra
 
Padrão de Projeto Observer
Padrão de Projeto ObserverPadrão de Projeto Observer
Padrão de Projeto ObserverLuiza Uira
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerMarkus Christen
 
Publisher subscriber pattern
Publisher subscriber patternPublisher subscriber pattern
Publisher subscriber patternDaeMyung Kang
 
Publish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event AggregatorPublish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event AggregatorLars-Erik Kindblad
 
Publish subscribe model overview
Publish subscribe model overviewPublish subscribe model overview
Publish subscribe model overviewIshraq Al Fataftah
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Caelum
 
Observer - Padrões de projeto
Observer - Padrões de projetoObserver - Padrões de projeto
Observer - Padrões de projetoEduardo Mendes
 

Destaque (16)

Publish-Subscribe Middlewares
Publish-Subscribe MiddlewaresPublish-Subscribe Middlewares
Publish-Subscribe Middlewares
 
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 ...
 
Sd capitulo01
Sd capitulo01Sd capitulo01
Sd capitulo01
 
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de softwareAplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
Aplicação de Padrões de Projeto para a melhoria da manutenabilidade de software
 
Padrões de Projeto - Observer
Padrões de Projeto - ObserverPadrões de Projeto - Observer
Padrões de Projeto - Observer
 
Padrão de Projeto Observer
Padrão de Projeto ObserverPadrão de Projeto Observer
Padrão de Projeto Observer
 
Padrões de Projeto para Jogos
Padrões de Projeto para JogosPadrões de Projeto para Jogos
Padrões de Projeto para Jogos
 
Arquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk ServerArquitetura da plataforma com o Biztalk Server
Arquitetura da plataforma com o Biztalk Server
 
Publisher subscriber pattern
Publisher subscriber patternPublisher subscriber pattern
Publisher subscriber pattern
 
Publish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event AggregatorPublish & Subscribe to events using an Event Aggregator
Publish & Subscribe to events using an Event Aggregator
 
Padrões de Projeto de Software
Padrões de Projeto de SoftwarePadrões de Projeto de Software
Padrões de Projeto de Software
 
Publish subscribe model overview
Publish subscribe model overviewPublish subscribe model overview
Publish subscribe model overview
 
Algoritmos - Procedimentos
Algoritmos - ProcedimentosAlgoritmos - Procedimentos
Algoritmos - Procedimentos
 
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
Porque você deveria usar CDI nos seus projetos Java! - JavaOne LA 2012 - Sérg...
 
Observer - Padrões de projeto
Observer - Padrões de projetoObserver - Padrões de projeto
Observer - Padrões de projeto
 
Padrões de Projeto - Design Patterns
Padrões de Projeto - Design PatternsPadrões de Projeto - Design Patterns
Padrões de Projeto - Design Patterns
 

Semelhante a Publish-Subscribe Middleware

TOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfTOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfFabio Apolinario
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosPortal_do_Estudante_SD
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realRogério Cardoso
 
Distributed Systems - Exercises
Distributed Systems - ExercisesDistributed Systems - Exercises
Distributed Systems - ExercisesMichel Alves
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Luiz Costa
 
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...tdc-globalcode
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Dalton Valadares
 
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOCOMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOAllan Reis
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxChadidoDiogo1
 
Utilização de sistemas distribuidos
Utilização de sistemas distribuidosUtilização de sistemas distribuidos
Utilização de sistemas distribuidosDeroci Nonato Júnior
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosFrederico Madeira
 
Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, S...
Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, S...Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, S...
Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, S...Stanley Araújo
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativosFrank macoo
 
Desenvolvimento em Nuvem
Desenvolvimento em NuvemDesenvolvimento em Nuvem
Desenvolvimento em NuvemVitor Savicki
 
Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Renato William
 

Semelhante a Publish-Subscribe Middleware (20)

Artigo sd
Artigo sdArtigo sd
Artigo sd
 
TOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdfTOP Middleware-Basico-20181023.pdf
TOP Middleware-Basico-20181023.pdf
 
Caracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidosCaracterizacao de sistemas distribuidos
Caracterizacao de sistemas distribuidos
 
Sistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo realSistemas distribuídos e de tempo real
Sistemas distribuídos e de tempo real
 
Conceitos basicos
Conceitos basicosConceitos basicos
Conceitos basicos
 
Distributed Systems - Exercises
Distributed Systems - ExercisesDistributed Systems - Exercises
Distributed Systems - Exercises
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
Modular Monoliths - Como é possível organizar sua aplicação para habilitar um...
 
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
TDC2018SP | Trilha Microservices - Modular Monoliths - Como e possivel organi...
 
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
Um Injetor de Falhas para a Avaliação de Aplicações Distribuídas Baseadas no ...
 
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃOCOMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
COMPUTAÇÃO EM NUVEM: ESTUDO DE CASO EM UMA EMPRESA DE TECNOLOGIA DA INFORMAÇÃO
 
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptxAula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
Aula CARACTERIZAÇÁO DE SISTEMAS distribuidos.pptx
 
Utilização de sistemas distribuidos
Utilização de sistemas distribuidosUtilização de sistemas distribuidos
Utilização de sistemas distribuidos
 
Introducao.2s
Introducao.2sIntroducao.2s
Introducao.2s
 
Introdução aos Sistemas Distribuídos
Introdução aos Sistemas DistribuídosIntrodução aos Sistemas Distribuídos
Introdução aos Sistemas Distribuídos
 
Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, S...
Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, S...Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, S...
Linguagens Dinamicas vs Tradicionais / Potencialidades e riscos de EAI/ESB, S...
 
Trabalho de sistemas operativos
Trabalho de sistemas operativosTrabalho de sistemas operativos
Trabalho de sistemas operativos
 
Middleware
MiddlewareMiddleware
Middleware
 
Desenvolvimento em Nuvem
Desenvolvimento em NuvemDesenvolvimento em Nuvem
Desenvolvimento em Nuvem
 
Sistemas distribuídos aula 1
Sistemas distribuídos aula 1Sistemas distribuídos aula 1
Sistemas distribuídos aula 1
 

Último

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxferreirapriscilla84
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....LuizHenriquedeAlmeid6
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)ElliotFerreira
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Ilda Bicacro
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...azulassessoria9
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFtimaMoreira35
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...azulassessoria9
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamentalAntônia marta Silvestre da Silva
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 

Último (20)

PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Discurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptxDiscurso Direto, Indireto e Indireto Livre.pptx
Discurso Direto, Indireto e Indireto Livre.pptx
 
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
Slides Lição 5, Betel, Ordenança para uma vida de vigilância e oração, 2Tr24....
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)Análise poema país de abril (Mauel alegre)
Análise poema país de abril (Mauel alegre)
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"Nós Propomos! " Pinhais limpos, mundo saudável"
Nós Propomos! " Pinhais limpos, mundo saudável"
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: COMUNICAÇÃO ASSERTIVA E INTERPESS...
 
Ficha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdfFicha de trabalho com palavras- simples e complexas.pdf
Ficha de trabalho com palavras- simples e complexas.pdf
 
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
PROVA - ESTUDO CONTEMPORÂNEO E TRANSVERSAL: LEITURA DE IMAGENS, GRÁFICOS E MA...
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
2° ano_PLANO_DE_CURSO em PDF referente ao 2° ano do Ensino fundamental
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 

Publish-Subscribe Middleware

  • 1. Publish-Subscribe Middleware Pedro Fernandes Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto RESUMO interessados. Um evento pode ser visto como uma mensagem Neste artigo vamos descrever os conceitos associados ao enviada por um produtor de informação e implicitamente paradigma de Publish-Subscribe, assim como alguns endereçada ao conjunto de todos os consumidores que Middlewares que os implementam. subscreveram esse género de evento. (ver Figura 1) Palavras-chave Publish-Subscriber Middleware. 1. INTRODUÇÃO Figura 1: Paradigma Publish-Subscribe. As aplicações de software, fruto da miniaturização e mobilidade crescente dos equipamentos, estão cada vez mais a necessitar de As necessidades de processamento de informação neste género seguir modelos distribuídos. Hoje em dia, as aplicações de paradigma são imensas. Sendo que a plataforma de necessitam de comutar dados de e para muitos outros nós middleware está encarregue de executar o processamento, computacionais vizinhos, agregando muitas vezes o seu poder filtrando informação para teoricamente milhões de utilizadores, computacional, num sistema em rede cada vez mais extenso. dadas as suas alterações de localização, alteração de perfil (i.e., Este género de aplicações encontra diversas finalidades: as subscrições que fazem no momento) e a informação estática e aeroespaciais, militares, industriais e comerciais. [1] dinâmica do meio ambiente. [1] O local, no seio do sistema, onde Comum a todas estas aplicações está a necessidade de colectar é feito esse processamento vai depender depois da topologia continuamente dados e integrá-los de forma distribuída entre um adoptada (como veremos no tópico 3.2). largo conjunto de utilizadores, sítios e aplicações. A aplicação Estes novos sistemas necessitam de novos padrões e algoritmos tem pois de filtrar e distribuir dados relevantes para o interesse de comunicação. Dos vários middlewares que surgiram para dos utilizadores e outros componentes, de uma forma persistente. colmatar as novas exigências, temos que a maior parte inclui as Mais abstractamente, na maior parte dos cenários, a maioria dos arquitecturas publish-subscribe. Estas representam actualmente referidos nós constituem entidades desconhecidas das restantes e os padrões mais eficientes para a transmissão de dados desde o tanto a fonte dos dados como o destinatário podem por vezes não produtor até aos muitos consumidores. [2] estar presentes na rede ao mesmo tempo. [1] O paradigma tradicional de request-response, altamente 2.1 O que é um Middleware? advogado como um paradigma de computação distribuída de Um middleware é uma peça de software reutilizável que reside eleição, não é adequado para encarar estes novos desafios. Nesse entre as camadas de aplicação e o sistema operativo, camadas de modelo clássico de abordagem dita pull-based, um cliente, que rede e camadas físicas. (Figura 2) necessite de updates instantâneos de informação, necessitaria de questionar o provider (ou servidor) continuamente, levando a congestão da rede. Os requisitos actuais estão a levar a necessidade de adopção de modelos de disseminação de informação que, ofereçam aos utilizadores informação pertinente com um elevado grau de disponibilidade, através duma abordagem push-based. É este tipo de abordagem que o paradigma publish-subscribe segue. 2. PARADIGMA Este paradigma constitui um simples modelo de interacção que consiste em produtores (publishers) de informação, que publicam Figura 2: Localização do Middleware no modelo OSI. eventos no sistema, e pelos consumidores (subscribers) de informação, que subscrevem os eventos que lhes interessam O principal papel do middleware é então o de interligar as dentro do sistema. O sistema de publish-subscribe assegura a aplicações com as restantes camadas de mais baixo nível, assim notificação por ordem temporal dos eventos aos subscribers
  • 2. como outras infra-estruturas, coordenando a forma como as 3.2 Topologia aplicações interagem entre si. Na topologia dos event dispatcher podemos ter duas opções de O recurso a middlewares é especialmente importante em configuração: centralizado ou distribuído. No primeiro caso situações onde os processos executam em plataformas ou temos um componente único que age como event dispatcher, o arquitecturas diferentes, visto potenciar a interoperabilidade e que potencialmente reduz a escalabilidade do sistema e introduz comunicação das mesmas. um ponto único de falha. No caso de middlewares publish subscribe que providenciem arquitecturas distribuídas verifica-se um conjunto de dispatching 3. PUBLISH-SUBSCRIBE MIDDLEWARE servers inter-ligados que, cooperam na colecta de subscrições As aplicações que exploram os mecanismos do publish-subscribe vindas de clientes e no roteamento dos eventos, com o objectivo middleware organizam os seus clientes como colecções de de reduzir a sobrecarga da rede e aumentar a escalabilidade da componentes autónomos, que interagem publicando notificações mesma. [1] de eventos, ao mesmo tempo que subscrevem as classes de É natural que, em sistemas com arquitectura distribuída, cada eventos nas quais estão interessados. O event dispatcher (ou middleware apresente estratégias diferentes para os seus event broker) é o componente da arquitectura responsável por dispatchers, no que concerne ao processamento de eventos e colectar as subscrições e enviar os eventos para os subscribers. subscrições proveniente de um mesmo conjunto de clientes. [2] (ver Figura 1) Existem mesmo alguns sistemas de publish-subscribe que Dado o enorme potencial deste paradigma, nos últimos anos têm eliminam por completo os dispatchers, deixando a tarefa de sido desenvolvidos um grande número de publish-subscribe roteamento e filtragem encarregue aos próprios publishers e middlewares, alguns deles com diferentes abordagens para o subscribers, permitindo assim que as mensagens sejam mesmo paradigma. transmitidas directamente entre ambos. [7] Em cada uma dessas abordagens são criadas Application Programming Interface (API) específicas que permitem então controlar o fluxo de comunicação entre os subscribers, os 3.3 Eventos As unidades trocadas entre publishers, dispatchers e subscribers publishers e os dispatchers. dentro do sistema publish-subscribe designam-se por eventos. Ao De entre essas diversas abordagens, destacamos alguns pontos nível dos eventos podemos destacar dois tipos: baixo e alto nível. que consideramos preponderantes para o sucesso de um Os eventos de baixo nível incluem as mensagens de texto ou middleware deste género: formatos mais complexos como o XML. (que favorece, em larga medida, a troca de mensagens entre plataformas assentes em 3.1 Expressividade sistemas operativos ou arquitecturas diferentes) A expressividade da linguagem de subscrição delineia a Os eventos de alto nível incluem a invocação de métodos separação entre sistemas considerados topic-based, onde as remotos. Nestes casos é conveniente que existam Interfaces pré- subscrições identificam apenas as classes dos eventos definidas, para que a comunicação consiga estabelecer-se entre pretendidos (enunciados por intermédio de URL1), e os sistemas os componentes. content-based, onde as subscrições contêm expressões Outra das características dos eventos é o facto de serem stateless. (chamados de event patterns) que permitem um sofisticado Conceptualmente, os eventos não têm persistência no sistema mecanismo de busca, no próprio conteúdo do evento, orientado nem forma de confirmar a sua recepção. Eles são enviados aos assuntos pretendidos. [7] apenas para os componentes que subscreveram o evento antes de Estes são os graus de expressividade mais comuns, mas existem este ser publicado. No entanto é possível contornar esta algumas publicações que enunciam outros mais. Nomeadamente característica, como veremos mais adiante. [6] a type-based e a hybrid-based. As type-based valem-se das capacidades das próprias linguagens de programação em definir tipos e subtipos, classificando dessa 3.4 Transmissão forma os eventos. Proporciona-se assim um grau mais elevado de Ao nível da transmissão podemos ter dois tipos: ponto-a-ponto ou especialização, que a maior parte dos outros métodos de multi-ponto. subscrição (especialmente o topic-based) não suporta. [5] As transmissões ponto-a-ponto são mais comuns em sistemas No caso do hybrid-based, propõe-se estabelecer um mecanismo request-response que, operam segundo arquitecturas simbiótico entre content-based e topic-based, oferecendo dessa centralizadas, onde os eventos são enviados individualmente para forma uma maior escalabilidade decorrente do uso de técnicas de o cliente respectivo. comunicação sofisticadas e orientadas para a resolução de Em multi-ponto, os eventos são transmitidos directamente para situações muito específicas. [4] um conjunto de subscribers que estão interessados nos mesmos. Esta forma de transmissão permite uma maior escalabilidade e eficiência. [6] 1 Uniform Resource Locator
  • 3. 3.5 Quality of Service Alguns dos middlewares possibilitam catalogar os eventos com Instabilidade de throughtput (períodos de forte uma série de parâmetros extra que, ajudam a implementar sobrecarga contrastam com outros de total silêncio) mecanismos de suporte ao publish-subscribe e assim colmatar Lentidão - quando mais e mais aplicações/componentes algumas das suas lacunas. [6] usam a infra-estrutura (mesmo quando tratam de Alguns dos benefícios dessa simbiose traduzem-se a nível de: eventos diferentes) Persistência: garantia de que o evento não é extraviado; IP broadcast storms (que ao saturarem a rede local Prioridades: eventos podem ser catalogados consoante a podem levar a desactivação da mesma) sua importância; Transacções: eventos relacionados podem ser agrupados a nível atómico; 6. EXEMPLOS DE PUBLISH-SUBSCRIBE MIDDLEWARE Confiança: garantia de entrega dos eventos. A nível conceptual o paradigma publish-subscribe fornece já uma série de características base que, dependendo do objectivo de cada middleware e das suas necessidades, podem ser exploradas. 4. VANTAGENS Mas para além disso existem uma série de mecanismos extra Recapitulando, o paradigma de publish-subscribe introduz uma (como já vimos) que podem ser implementados em conjunto para série de vantagens, em relação a outros (como o request- adicionar mais capacidades ao middleware. response), que os middlewares que o utilizam podem potenciar. Na tabela seguinte, podemos ver alguns dos principais Desde logo porque os publishers são loosely-coupled em relação middlewares que implementam serviços baseados em publish- aos subscribers, ou seja, não necessitam sequer de saber da sua subscribe e que estão disponíveis no mercado. (ver Tabela 1) existência. Estando o foco direccionado para o evento, tanto os subscribers como os publishers permanecem ignorantes relativamente a topologia do sistema onde se encontram. Cada Tabela 1: Alguns Publish-Subscribe Middlewares. [8-13] um deles pode operar independentemente do outro. Nome Linguagem Patrocínio Expressividade Num paradigma request-response (dito tightly-coupled), o cliente BizTalk .NET Microsoft Content-based não pode enviar mensagens enquanto o processo do servidor não ActiveMQ Java Apache Software (indefinido) estiver a executar. Nem o servidor pode receber mensagens Foundation enquanto o cliente não executar o pedido. Tuxedo C,C++ e Oracle Content-based Portanto, em publish-subscribe o sistema está desacoplado não COBOL Corporation só a nível de sincronização, mas também a nível temporal e WebSphere MQ C, COBOL, IBM (indefinido) espacial. [6] Perl e Java Para sistemas de média escala, os paradigmas de publish- Data C,C++,C# e Object Topic-based subscribe providenciam uma melhor escalabilidade do que os Distribution Java Management Service Group tradicionais request-response. Seja por operações paralelas, caching de mensagens ou diferentes tipologias de routing. No entanto, e à medida que os sistemas escalam para tornar-se Podemos então explorar mais em pormenor algumas das datacenters com centenas de servidores partilhando a características desses middlewares. Nomeadamente do Data infraestrutura publish-subscribe, estas grandes vantagens podem Distribution System, que é um standard muito conhecido para tornar-se problemáticas. mecanismos publish-subscribe; o WebSphere MQ que é dos mecanismos com mais tradição e mais utilizados actualmente a nível de produção; o Tuxedo por ter sido recentemente adquirido 5. DESVANTAGENS por uma das empresas em maior expansão no mundo das novas Os problemas mais sérios do publish-subscribe advêm dos tecnologias. efeitos secundários de um dos seus trunfos: o facto da relação 6.1.1 Data Distribution System entre publisher e subscriber ser loosely-coupled. [7] O Data Distribution Service (DDS) surge fruto do consórcio Por exemplo, quando uma aplicação necessita de uma garantia de entre os dois maiores impulsionadores do DDS: American Real- entrega, (i.e., de que a mensagem é sempre entregue ou que caso Time Innovations e o French Thales Group. Ambas as não seja possível confirmar a entrega, o publisher é informado) o instituições juntaram esforços no sentido de criar uma sistema publish-subscribe em si, conceptualmente, não tem especificação única que, foi mais tarde aprovada pela Object forma de providenciar essa certeza. Management Group2, resultando em 2003 no aparecimento da As dificuldades em escalar, para sistemas de muito grande primeira versão do DDS. dimensão, acabam também por traduzir-se em mais desvantagens: 2 Também responsável por standards como UML e CORBA.
  • 4. O DDS é uma especificação de publish-subscribe middleware envia, o Queue Manager armazena a mensagem até que o para sistemas distribuídos, criado em resposta a necessidade de receptor a peça de novo. standardização de modelos publish-subscribe em tempo real e A ordem de todas as mensagens é assim também preservada centrados na troca de dados. através do uso de ordenação FIFO, para cada tipo de prioridade. O middleware do DDS simplifica a programação de redes [11] complexas, implementando um modelo de publish-subscribe para envio e recepção de dados, eventos e comandos entre os componentes. Componentes que estejam a produzir informação 6.1.3 Tuxedo (publishers) criam tópicos (por exemplo, temperatura, O Tuxedo foi originalmente desenvolvido pela AT&T em 1983 localização, pressão) e publicam amostras. O DDS encarrega-se com o objectivo de criar e administrar sistemas de suporte a então da entrega das amostras a todos os subscribers que operações e processamento de transacções online (OLTP). Após declararam interesse no tópico respectivo. uma série de aquisições e fusões a empresa BEA Systems, na O DDS trata de todos os aspectos necessários a entrega da altura detentora dos direitos do Tuxedo, acabou por ser adquirida mensagem automaticamente, sem requerer qualquer intervenção pela Oracle em 2008. por parte das aplicações do utilizador. Alguns desses aspectos O middleware Tuxedo foi desenhado desde o início para dar prendem-se com: suporte a aplicações de alta disponibilidade e providenciar mecanismos escaláveis que possibilitassem centenas de transacções por segundo em sistemas distribuídos comuns. determinar quem vai receber as mensagens A sua base assenta fortemente no mecanismo de Bulletin Board onde estão localizados os destinatários (BB) responsável pelo clustering do sistema. Este consiste num o que acontece caso a mensagem não seja entregue segmento de memória partilhada que contêm o estado do domínio gerido pelo Tuxedo. Servidores, serviços, transacções e clientes estão todos registados no BB providenciando assim uma O DDS permite que o utilizador especifique uma série de visão global do estado particular de cada um dos componentes. parâmetros QoS3 de forma a configurar os mecanismos de Para assegurar a manutenção desses dados existe um processo descoberta automática de mensagens e especificar os chamado Bulletin Board Liaison (BBL) que executa em cada um comportamentos a ter quando envia e recebe as mesmas. dos componentes de forma a manter a cópia central do BB O DDS permite também executar automaticamente mecanismos sempre actualizada. [10] de redundância entre os publishers, caso algum deles falhe. Dessa forma garante-se que os subscribers recebem sempre uma amostra dos dados cuja prioridade tenha sido configurada como elevada e cujo período de validade não tenha ainda expirado. Isto 7. CONCLUSÃO ocorre de forma transparente para o subscriber. [8] Decorrente do facto de assentar num mecanismo loosely-coupled, o paradigma de Publish-Subscribe apresenta-se como a melhor alternativa para comunicação entre sistemas que necessitem de 6.1.2 WebSphere MQ uma elevada escalabilidade. Proporcionando um desacoplamento O WebSphere MQ (WMQ) representa a evolução do trabalho a nível de: sincronização, tempo e espaço. desenvolvido pela IBM desde 1992 na primeira versão do seu No entanto, deve-se ter alguma reserva na sua utilização uma vez MQSeries. que, dependendo da arquitectura pretendida e a utilização mais intensiva do sistema, as suas características podem tornar-se O middleware WMQ providencia a chamada one-time delivery de mensagens entre uma larga variedade de plataformas. Este problemáticas. Originando instabilidade de throughput, IP broadcast storms e lentidão na obtenção de resposta. middleware enfatiza a segurança e robustez (através do uso de logs) do tráfego de mensagens, para que nunca sejam dadas como Apesar de tudo, existe um grande suporte ao paradigma Publish- perdidas num sistema bem configurado. Subscribe vindo de algumas das referências no mundo das novas O agente principal de comunicação no WMQ é o Queue tecnologias: Oracle, IBM e Microsoft, são exemplos disso. Manager. Este trata do armazenamento, temporização, triggering No futuro, fruto desse suporte, prevê-se então o aparecimento de e todas as outras funções não relacionadas com o trajecto a mais e melhores middlewares que tirem partido das percorrer pelos dados. características conceptuais do Publish-Subscribe, e se possível O middleware WMQ providencia assim aos programadores um resolvam algumas das suas lacunas. mecanismo para alcançar arquitecturas onde as mensagens são Prevê-se também a adopção consistente deste paradigma em enviadas de uma aplicação para outra, sem que ambas aplicações direccionadas a dispositivos móveis, nomeadamente necessitem de estar a executar ao mesmo tempo. Se uma para telemóveis. [1] aplicação receptora não está a escuta, quando o remetente a 3 Quality of Service
  • 5. [7] Publish-Subscribe 8. REFERÊNCIAS http://en.wikipedia.org/wiki/Publish/subscribe 4 de Dezembro 2009. [1] Gianpaolo Cugola and Arno Jacobsen. Using Publish/Subscribe Middleware for Mobile Systems. Mobile [8] Data Distribution Service Computing and Communications Review, Volume 1, http://en.wikipedia.org/wiki/Data_Distribution_Service Number 2. 4 de Dezembro 2009. [2] Mohamed Mastouri and Salem Hasnaoui. Performance of a Publish/Subscribe Middleware for the Real-Time [9] Apache ActiveMQ Distributed Control systems. IJCSNS, VOL.7 No.1, Janeiro http://en.wikipedia.org/wiki/Apache_ActiveMQ 2007 4 de Dezembro 2009. [3] Bogumil Zieba, Maurice Glandrup, Marten van Sinderen, [10] Tuxedo Maarten Wegdam. Reconfiguration Service for Publish/Subscribe Middleware. European Research http://en.wikipedia.org/wiki/Tuxedo_(software) Programme. 4 de Dezembro 2009. [4] Roman Szarowrski. Hybrid Publish-Subscribe: A [11] IBM WebSphere MQ compromise approuch for large scale. Czech Technical http://en.wikipedia.org/wiki/IBM_WebSphere_MQ University in Prague. 4 de Dezembro 2009. [5] Patrick Eugster, Rachid Guerraoui. Type-Based Publish/Subscribe. Agilent Laboratories Scotland, [12] Microsoft BizTalk Server Edinburgh. http://en.wikipedia.org/wiki/Microsoft_BizTalk_Server [6] Patrick Eugster, Pascal Felber, Rachid Guerraoui. The many 4 de Dezembro 2009. faces of Publish-Subscribe Middleware. ACM Computing Surveys vol. 35 no. 2, 2003