Message Oriented Middleware (MOM)



Documentos relacionados
Message Oriented Middleware (MOM)

Sumário. Message Oriented Middleware (MOM) Sincronização na Comunicação. Comunicação Assíncrona

Distributed Systems Principles and Paradigms

Sistemas Distribuídos

Desenvolvimento Cliente-Servidor 1

Web Technologies. Tópicos da apresentação

Um sistema SMS 1 simplificado

Web services. Um web service é qualquer software que está disponível através da Internet através de uma interface XML.

WebSphere MQ. Bruno Miguel de Sousa Gonçalves

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Arquitetura de Sistemas Operativos

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas de Nomes Planos

SISTEMAS DISTRIBUIDOS

Sistemas Distribuídos. Coulouris Capítulo 4


Sistemas Distribuídos

1

Departamento de Informática

Java Mail Server. Manual do Utilizador

Redes de Computadores. Trabalho de Laboratório Nº7

Comunicação Inter-Processos. Prof. Adriano Fiorese. Conceitos Iniciais

Programação de Sistemas

Programação de Sistemas

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Web Services e SOAP. Alexandre Zua CaldeiraTecnologias de Middleware 2006/ Faculdade de Ciências da Universidade de Lisboa

Comunicação. Parte II

Camadas de Software - o Middleware. Sistemas Distribuídos Capítulo 2: Modelos e Arquitecturas. Aplicações. Middleware.

Sistemas Distribuídos

5 Estudo de caso: utilizando o sistema para requisição de material

Redes de Computadores. Protocolos de comunicação: TCP, UDP

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Sistemas Multimédia. Arquitectura Protocolar Simples Modelo OSI TCP/IP. Francisco Maia Redes e Comunicações

Grupo I [6,6v] Responda com os valores que se observam depois da chamada acontecer. 1 Falta na mensagem de resposta. Valor retornado na chamada

Grupo I [6v] Considere o seguinte extracto de um programa de definição de uma calculadora apenas com a função soma de dois valores reais

Redes de Computadores

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

UFG - Instituto de Informática

USO GERAL DOS PROTOCOLOS SMTP, FTP, TCP, UDP E IP

Comunicação entre Processos

JXTA. Alessandro Vasconcelos Ferreira de Lima.

Departamento de Informática

Plataforma. Manual de Utilização Acesso ao Procedimento Fornecedor. Electrónica BizGov

Informática I. Aula Aula 22-03/07/06 1

Prof. Luiz Fernando Bittencourt MC714. Sistemas Distribuídos 2 semestre, 2013

Protocolos de Internet (família TCP/IP e WWW) Primeiro Técnico. Prof. Cesar

REDES DE COMPUTADORES

Introdução. Sistemas Distribuídos. Mas, o que é um sistema distribuído? Seriamente. Professor: Paulo Jorge Marques. Professora Práticas: Pinki Meggi

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes

Sistemas Distribuídos

Grupo I [7v] 1. [1,0] Apresente o conteúdo do IDL relativo a este programa. Assuma PROGRAM=62015 e VERSION=1.

ICMP. Tipos de mensagens ICMP

Sistemas Distribuídos

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

Sistemas Empresariais Integrados

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

Modelos de Arquiteturas. Prof. Andrêza Leite

Service Oriented Architecture SOA

Arquitecturas Tolerantes a faltas em Sistemas Distribuídos

Arquitetura de Computadores II

SOAP. Web Services & SOAP. Tecnologias de Middleware 2004/2005. Simple Object Access Protocol. Simple Object Access Protocol SOAP

Padrões de Projeto Implementados em Infraestrturas de Componentes

CAMADA DE TRANSPORTE

Redes de Computadores II

Rede de Computadores

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

Redes de Comunicações Capítulo 6.1

Departamento de Informática

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

Paradigma Cliente/Servidor

3. Comunicação em Sistemas Distribuídos

JAVA MESSAGE SERVICE, UMA ALTERNATIVA ENTRE COMUNICAÇÃO DE SISTEMAS: uma abordagem prática. Lucas Yokowo dos Santos 1 RESUMO

4 Um Exemplo de Implementação

Redes de Computadores

Modelo TCP / IP. História da família TCP/IP Modelo utilizado pela família TCP/IP Comparação com o modelo OSI

Comunicação em Sistemas Distribuídos. Conceitos: Paradigma C/S. Conceitos: Paradigma C/S. Paradigma Cliente/Servidor

Modelos Fundamentais. Carlos Ferraz.

Funções específicas de cada camada do modelo OSI da ISO.

Programação 2ºSemestre MEEC /2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Ciência de Computadores Sistemas Distribuídos e Móveis

Transcrição:

Message Oriented Middleware (MOM) March 24, 2010 Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes estão disponíveis simultaneamente. Por exemplo, um servidor de submissão pode estar inacessível ou indisponível quando vocês tentam submeter um trabalho. Quer sockets quer RPC ou RMI exigem que as entidades comunicantes sincronizem para que a troca de informação se realize. Solução: Usar mecanismos para comunicação assíncrona/diferida (asynchronous communication): As entidades comunicantes não precisam estar activas simultaneamente.

Comunicação via Mensagens: Aspectos Client Request request submission request delivery Transmission interrupt Storage facility Synchronize after processing by server Reply Server Time 1. Persistência vs. Transitoriedade 2. Sincronização com o serviço de comunicação 3. Assincronia vs. Sincronia Sincronização entre entidades comunicantes. Comunicação via Mensagens: Persistência vs... Client request submission request delivery Synchronize after processing by server Request Transmission interrupt Storage facility Reply Server Time Comunicação Transitória O serviço de comunicação pode descartar uma mensagem em trânsito se surgirem problemas na sua entrega para o nó seguinte (pode ou não ser o destino final). Exemplo: TCP/UDP. Comunicação Permanente O serviço de comunicação mantém a mensagem até ser entregue, mesmo que surjam problemas na sua entrega. Exemplo: SMTP.

Comunicação via Mensagens: Sincronização Client request submission request delivery Synchronize after processing by server Request Transmission interrupt Storage facility Reply Server Time O emissor pode sincronizar em pelo menos 3 pontos: 1. Quando submete a mensagem ao serviço de comunicação. Exemplo? 2. Quando o serviço de comunicação entrega a mensagem ao destinatário. 3. Após recepção de mensagem enviada pelo destinatário. Exemplo? Comunicação via Mensagens: Assincronia vs.... Sender running Sender running Sender passive Sender passive Receiver running Receiver passive Receiver running Receiver passive (a) (b) (c) (d) O emissor e o receptor não precisam de executar simultaneamente

Message Oriented Middleware (MOM) Comunicação assíncrona e persistente com mensagens. Processos não precisam de sincronizar entre si quando enviam mensagens. O serviço de comunicação (middleware) mantém as mensagens o tempo necessário para as entregar. A abstracção é muito semelhante à do serviço de correio: As propriedades do serviço podem variar: ordem; fiabilidade (persistência ou não); Alguns sistemas fornecem também uma abstracção semelhante à de foros de discussão (news groups): publishers podem enviar mensagens; subscribers podem receber mensagens. Aplicações de Comunicação Assíncrona Este tipo de comunicação é particularmente adequada quando as ligações entre o emissor e o receptor são fracas (loosely coupled) Aplicação de submissão de documentos: Permite mascarar avarias: O submissor não precisa tentar de novo, se o servidor não estiver acessível ou disponível o próprio serviço de mensagens se encarrega disso. Comunicação via mensagens: Email; SMS e MMS. Enterprise Integration Workflow applications.

(Workflow s) Este tipo de aplicações está ligado à automatização de processos de negócio: por exemplo, o processamento de pedidos de empréstimo num banco. Um processo de negócio pode ser decomposto em actividades cuja execução depende: de outras actividades desse processo; de eventos externos (que podem ser gerados por outros processos). As diferentes actividades podem ser executadas por aplicações independentes. A comunicação entre actividades pode ser feita via MOM: A actividade receptora pode não existir porque as condições necessárias para a sua execução podem ainda não estar reunidas. Java Message Service (JMS) JMS é uma API da J2EE da Sun: permite que aplicações em Java acedam duma forma portável a serviços de mensagens assíncronas, i.e. a MOM. JMS dá uma ideia de funcionalidades fornecidas por MOM que podem ser úteis no desenvolvimento de aplicações empresariais. JMS pode beneficiar bastante do Java Transaction Service: Falaremos em transacções mais para diante.

Arquitectura e Modelo de JMS JMS define 2 componentes fundamentais: JMS Provider, i.e. um sistema MOM; JMS Client, i.e. uma aplicação que envia/lê mensagens para/de um destinatário (destination) através do JMS provider. Para usar o serviço JMS, um cliente tem que primeiro estabelecer uma conexão (connection) ao provider. Clientes enviam/recebem mensagens para/de um destinatário no contexto duma sessão(session). Sessões (normalmente) são criadas no contexto duma conexão. Modelo de JMS Source: Sun

Destinatários e Mensagens JMS define 2 tipos de destinatários(destinations): Queues, semelhantes a caixas de correio; Topics, semelhantes a news groups, i.e. permitem que as mensagens sejam lidas por vários assinantes (subscribers). Mensagens em JMS têm 3 partes: header: contêm campos necessários pelos clientes e pelos providers para identificar e encaminhar mensagens; properties: são campos opcionais, que logicamente fazem parte do header i.e. são meta-data. body: a informação a enviar. JMS suporta diferentes tipos de informação. Algumas Questões Fiabilidade Mensagens (cujo modo de entrega é) PERSISTENT são entregues uma e uma só vez ao destino. Mensagens NON_PERSISTENT garantem uma semântica at-most-once Acknowledgement: há vários comportamentos incluindo: AUTO_ACKNOWLEDGE: métodos da interface confirmam a recepção automáticamente, quando apropriado. CLIENT_ACKNOWLEDGE: permite o cliente confirme a recepção de várias mensagens através da invocação do método acknowledge. Ordem: mensagens enviadas para o mesmo destino através duma sessão; mensagens lidas (possivelmente por diferentes consumidores) duma sessão; efeito de prioridade, filtros (selectors), fiabilidade.

Tópicos JMS (JMS Topics) Assincronismo das assinaturas e publicações (publishing): uma mensagem enviada depois duma assinatura pode não ser entregue; uma mensagem enviada antes duma assinatura pode ser entregue. Assinaturas podem ser ou não duráveis: Mensagens do tipo PERSISTENT são garantidamente entregues a um cliente que fez uma assinatura durável. Clientes com assinaturas não duráveis podem perder mensagens do tipo PERSISTENT (em princípio, só se estiverem inactivos). O Que JMS Não Fornece Um serviço: JMS é uma API. A implementação da Sun de J2EE actualmente oferece um JMS provider. Não suporta: Replicação de clientes (para tolerância a avarias ou distribuição da carga, p.ex.). Notificação de erros/avisos. Administração do JMS provider. Segurança i.e. não fornece uma API para controlar aspectos relativos à segurança das mensagens enviadas.

Implementação dum Serviço de Mensagens Comunicação assíncrona é feita recorrendo a um serviço de mensagens. Messaging interface Sending host Communication server Communication server Receiving host Routing program Buffer independent of communicating hosts Routing program To other (remote) communication server Local buffer Local network Internetwork Local buffer Incoming message Ao nível mais baixo a comunicação via mensagens exige sincronização entre emissor e receptor. Arquitectura Em sistemas mais sofisticados, pode usar-se message relays que se encarregam do encaminhamento das mensagens: Sender A Receive queue Send queue Message R2 R1 Router Receiver B

Message Brokers MOM é usada para interligar aplicações, cujas entradas e saídas podem ter sintaxe e semântica diferentes. Muitas vezes, essas aplicações foram desenvolvidas independentemente. Message brokers são aplicações que permitem converter o formato das mensagens. Não fazem parte do sistema de mensagens. Source client Message broker Database with conversion rules Destination client Broker program Queuing layer Network [MOM e Email] A arquitectura dos servidores de mensagens é muito semelhante à do serviço de email na Internet. O serviço de email da Internet pode ser usado em muitas aplicações que precisam dum serviço de mensagens simples: SOAP, um protocolo para comunicação para WebServices, especificado pelo W3C, pode usar quer HTTP quer SMTP como protocolo de transporte. Há quem advogue o uso de SOAP/SMTP como MOM para a Internet. O uso de XML facilita o desenvolvimento de message brokers.

Leitura Adicional Secção 4.3 de Tanenbaum e van Steen, Distributed Systems, 2nd Ed. Java Message Service (JMS) Specification (v 1.1) Java Message Service Tutorial, da Sun (Secções 1, 2 e 3) Enterprise Integration Patterns: Introduction to Messaging Systems (para explorar)