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

Documentos relacionados
Message Oriented Middleware (MOM)

Message Oriented Middleware (MOM)

Application protocol. Presentation protocol. Session protocol. Transport protocol. Network protocol. Data link protocol. Physical protocol.

ach 2147 desenvolvimento de sistemas de informação distribuídos

Vamos fazer um pequeno experimento

AULA ANTERIOR: MODELOS FUNDAMENTAIS

ach 2147 desenvolvimento de sistemas de informação distribuídos

Java Message Service (JMS)

IBM WebSphere MQ. Introdução

Canais de Comunicação

Sistemas Distribuídos. Visão Geral Expandida

Comunicação. capítulo

Informática UFRGS. Programação com Objetos Distribuídos (C. Geyer) Java Comunicação 1

MOM Message Oriented Middleware

Comunicação orientada a mensagens

UFG - Instituto de Informática

Message Oriented Middleware & Message Brokers

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS

Sistemas Distribuídos

contidos na descrição do serviço para localizar, contactar e chamar o serviço. A figura mostra os componentes e a interação entre eles.

SPEEDMiddleware - MOM

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Distributed Systems Principles and Paradigms

1.2- Ambientes de Middleware

Comunicação. Carlos A. G. Ferraz 25/6/2003. Sistemas Distribuídos 1. Tópicos. Camadas. Transmissão de dados. Marshalling/Unmarshalling.

STD29006 Sistemas Distribuídos

Projecto hipotético para resolvermos hoje

Programação Distribuída. Tipos de Sistemas Distribuídos

Introdução a Web Services

Sistemas Operacionais II

Comunicação Objetos Distribuídos e RMI

Principais conceitos de CORBA

Protocolo Request-Reply

INTRODUÇÃO AOS SISTEMAS OPERACIONAIS SEMANA 10. Operações nos processos. Processos cooperativos, comunicação entre processos.

DERYK SEDLAK RIBEIRO UM ESTUDO DAS ARQUITETURAS DE MIDDLEWARE ABORDADAS EM SISTEMAS DE COMÉRCIO ELETRÔNICO

Sistemas Operacionais Distribuídos e de Redes

INTRODUÇÃO. RPC x RMI

Arquitecturas de Sistemas Distribuídos

Nível de Transporte Portas, Protocolos UDP e TCP

Invocação Remota. Prof. Leonardo Barreto Campos. 1/29

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

PROVIDING DEPENDABILITY FOR WEB SERVICES

PROTOCOLOS DE COMUNICAÇÃO

Módulo 3 Nível Transporte

Grupo I [7v] b) [0,3] Em que componente do sistema de RPC será utilizado o campo identificador de operação?

Sistemas Distribuídos

Web Technologies. Tópicos da apresentação

Programação concorrente (processos e threads)

Introdução. Engenharia Informática

Programação com Sockets

Sistemas Distribuídos Capítulo 1: Introdução

Introdução. Modelo de um Sistema de Comunicação

Comunicação entre Processos

Redes TCP-IP. Protocolo ICMP. Pilha TCP/IP. Protocolo ICMP Internet Control Message Protocol. Introdução ao Protocolo ICMP

21108 Sistemas Distribuídos Teste Formativo

Protocolo ICMP Internet Control Message Protocol. Introdução ao Protocolo ICMP. Introdução ao Protocolo ICMP. Introdução ao Protocolo ICMP

Computação Distribuída Cap. III

Web Services. Sistemas Distribuídos Marcos Costa

Comunicação entre processos COMUNICAÇÃO ENTRE PROCESSOS. Comunicação entre processos - troca de mensagens

Sistemas Distribuídos

Sistemas Operacionais II

O que é? É uma aplicação que consiste em 2 ou mais processos que executam em diferentes processadores que não partilham memória.

COMUNICAÇÃO ENTRE PROCESSOS

Parte 3: Camada de Rede

Sistemas Distribuídos Aula 10

Redes e Serviços Internet (11103)

Design and Evaluation of a Support Service for Mobile, Wireles. Applications

A vista entra um Series Router rv

UNIVERSIDADE DA BEIRA INTERIOR Faculdade de Engenharia Departamento de Informática

Domínios da Arquitectura

trabalho Heitor Oliveira,Rafael Aleixo,Alex Rodrigues September 2013

Informática Básica. Licenciatura em Ciência da Informação. Tito Carlos S. Vieira. Tito Carlos S. Vieira

Replicação. Protocolos. June 2, 2010

15/4/15. Processamento Paralelo Middleware Orientado a Objetos. Sistema operacional é a única infraestrutura para interação. Middleware é adicionado

Sistemas de Troca de Mensagens

BITDEFENDER GRAVITYZONE. Diogo Calazans Diretor Comercial

Ricardo Couto Antunes da Rocha 2005 Ricardo Couto Antunes da Rocha

FUNDAMENTOS DE REDES DE COMPUTADORES Unidade 5 Camada de Transporte e Aplicação. Luiz Leão

Sistemas Distribuídos na Web

Chamada Remota de Procedimento (RPC)

Layer N. Object. Object. Layer N-1 Response flow. Object Request flow. Method call. Object. Layer 2. Object. Layer 1

UFG - Instituto de Informática

(Broadcast - um emissor envia a mensagem para todos os nós do sistema) Multicast um emissor, um grupo de processos como receptores

Fundamentos de Sistemas Operacionais

Resumo das Propriedades de UDP e de TCP

Sockets: Sumário. Resumo das Propriedades de UDP e de TCP

Desenvolvimento de Aplicações Distribuídas

Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/ v0.1

Direto ou Indireto Monolítico ou Estruturado Simétrico ou Assimétrico Padronizado ou Não-Padronizado

Capítulo 2. Camada de aplicação

Administração de Sistemas (ASIST)

Serviços de Comunicações Capítulo 3

Camada de Rede Fundamentos e Protocolos. 6/7/18 Organizado por Bruno Pereira Pontes brunopontes.com.br

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Sistemas Distribuídos Aula 2

Configurar o evento que entra um ponto de acesso Wireless

CURSO : INFORMÁTICA REDES COMPUTADORES

Transcrição:

Sumário Message Oriented Middleware (MOM) October 16, 2008 Comunicação Assíncrona (MOM) Conceito Java Message Service Implementação Comunicação Assíncrona Problema: Nem sempre as entidades comunicantes estão disponíveis simultaneamente. Por exemplo, o servidor de submissão pode estar inacessível ou indisponível quando vocês tentam submeter o vosso 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. Sincronização na Comunicação Client Synchronize at request submission Synchronize at request delivery Transmission interrupt Storage facility Reply Synchronize after processing by server A sincronização pode ocorrer em 1 de pelo menos 3 pontos: 1. No envio da mensagem pedido do lado do emissor. 2. Na recepção da mensagem pedido do lado do destinatário. 3. Na recepção da mensagem do lado do destinatário.

RPC Assíncrona Cliente bloqueia até pedido ser aceite Client Wait for result Client Wait for acceptance Message Oriented Middleware (MOM) A abstracção é muito semelhante à do serviço de correio: Reply Accept request Call local and return results (a) Call local Pedido/resposta pode fazer uso de 2 RPCs assíncronas Client Wait for acceptance Accept request Call local Interrupt client results Acknowledge Call client with one-way RPC (b) As propriedades do serviço podem variar: ordem; fiabilidade (persistência ou não); Talvez seja mais adequado dizer que a comunicação se faz via uma fila de mensagens (message-queueing systems). Alguns sistemas fornecem também uma abstracção semelhante à de foros de discussão (news groups): publishers podem enviar mensagens; subscribers podem receber mensagens. Sincronização em MOM Este tipo de comunicação é particularmente adequada quando as ligações entre o emissor e o receptor são fracas (loosely coupled); (a) (b) (c) (d) Aplicações de Comunicação Assíncrona 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. O emissor e o receptor não precisam estar a executar ao mesmo tempo. Mas precisam concordar no protocolo de troca de mensagens.

(Workflow s) Java Message Service (JMS) 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. 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 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. 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. Tópicos JMS (JMS Topics) 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 por diferentes consumidores duma sessão; efeito de prioridade, filtros (selectors), fiabilidade. O Que JMS Não Fornece 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). 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. Arquitectura Em sistemas mais sofisticados, pode usar-se message relays que se encarregam do encaminhamento das mensagens: Sending host Messaging interface Communication server Communication server Receiving host A Routing Buffer independent of communicating hosts To other (remote) communication server Routing Receive queue Send queue Message R2 Local buffer Local network Internetwork Local buffer Incoming message R1 Ao nível mais baixo a comunicação via mensagens exige sincronização entre emissor e receptor. Router 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 Broker Database with conversion rules Queuing layer Destination client [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. Network