Java Message Service (JMS)

Documentos relacionados
J533 - Minicurso. Helder da Rocha (helder@acm.org)

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

Message Oriented Middleware (MOM)

Vamos fazer um pequeno experimento

Desenvolvimento de Aplicações Distribuídas


IBM WebSphere MQ. Introdução

UFG - Instituto de Informática

Sistemas Distribuídos

Sistemas Distribuídos baseados em Coordenação. Pedro Ferreira DI - FCUL

Java Message Service (JMS)

Sistemas Distribuídos

A interface de uma mensagem é extremamente flexível e permite várias formas de customização de conteúdo. Figura 1 - Tipos de Mensagens JMS

Message Driven Beans. Apresentação. Introdução Implementação de MDBs Deployment no JBoss Java Messaging Service Exemplo

Sistemas Distribuídos

Arquitetura de Software Parte 2/3-Estilos Arquiteturais. Jorge H. C. Fernandes Junho de 1999

Aplicações com Banco de Dados e Cliente-Servidor

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

Desenvolvimento de Aplicações Distribuídas

MOM Message Oriented Middleware

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

Aula 4 TECNOLOGIA EM JOGOS DIGITAIS JOGOS MASSIVOS DISTRIBUÍDOS. Marcelo Henrique dos Santos

Sistemas Distribuídos

Sumário. 1 Caracterização de Sistemas Distribuídos 1. 2 Modelos de Sistema Redes de Computadores e Interligação em Rede 81

Programação para Dispositivos Móveis

O que é um sistema distribuído?

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS ARQUITETURAS. Slides cedidos pela Professora Aline Nascimento

INTEGRADOR DE MENSAGENS CORPORATIVAS PARA UMA INFRA-ESTRUTURA DE ELETRONIC DATA INTERCHANGE (EDI)

RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo

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

Características de Sistemas Distribuídos

Engenharia de software distribuído. Artur Sampaio Lívia Castro Degrossi

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 12 - Threads e Concorrência em Java

Linguagens de Domínio Específico

Programação Distribuída. Arquiteturas

Sistemas Distribuídos Aspectos de Projeto de SD. Aspectos de Projeto em SD. Transparência 14/03/12. ! Transparência; ! Abertura; !

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

Aplicações Web com Servlets e JSP

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.

Características de Sistemas Distribuídos

Rede de computadores Cliente- servidor. Professor Carlos Muniz

Sistemas Distribuídos

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

ALUNO: RONI FABIO BANASZEWSKI

Administração de Banco de Dados. José Antônio da Cunha CEFET-RN

01. Sobre Camaleo O QUE É CARACTERÍSTICAS

UTILIZAÇÃO DA TECNOLOGIA ENTERPRISE JAVABEANS NO DESENVOLVIMENTO DE APLICAÇÕES DISTRÍBUIDAS

Sistemas de Objetos Distribuídos

AULA 03: PROCESSAMENTO PARALELO: MULTIPROCESSADORES

Objetos e Componentes Distribuídos: EJB e CORBA

Protocolo Request-Reply

Comunicação entre Processos

Aula 1: Apresentação, Computação Corporativa

Objetos e Componentes Distribuídos: EJB

Estrutura dos Sistemas Operacionais. Adão de Melo Neto

Abordagem Teórico-Prática

Engenharia de Software. Projeto de Arquitetura

Sistemas de Troca de Mensagens

Programação orientada a objetos

Transcrição:

Java Message Service (JMS) Disciplina de Sistemas Distribuídos Prof. Cristiano André da Costa Luiz Henrique Feltes

Roteiro Introdução; Arquitetura; Vantagens / Desvantagens; Componentes do JMS; Códigos fonte de exemplo; Comparação do JMS com RMI/RPC; Considerações finais. 2

Introdução MOM (Message Oriented Middleware) Comunicação entre aplicações por troca de mensagens; Portabilidade, interoperabilidade; Reduz a complexidade da implementação de comunicação das aplicações; 3

Introdução 4

Introdução Um exemplo de uso do MOM: Montadora precisa distribuir uma lista de preço a todas as concessionárias; Se a comunicação fosse por exemplo com RMI/RPC, montadora e concessionária deveriam estar conectadas no momento; 5

Introdução Um exemplo de uso do MOM: No caso do MOM, a montadora produz uma mensagem com a nova lista, sem necessidade de estar conectada as concessionárias; O MOM fica encarregado de entregar a mensagem as concessionárias, quando estiverem disponíveis para receber; 6

Introdução JMS (Java Message Service) API Java J2EE; Duas ou mais aplicações podem se comunicar por mensagens; A troca de mensagem é de forma assíncrona; Possibilidade de comunicação a EJBs; 7

Arquitetura Existem dois modelos de arquitetura: Point-to-Point (ou modelo de filas); Publish and Subscribe; 8

Arquitetura Point-to-Point Analogia: Similar ao envio de uma correspondência; Produtor envia mensagens para uma fila e um consumir lê; Produtor conhece o destino e envia diretamente para a fila; 9

Arquitetura Point-to-Point Apenas um consumidor pode ler a mensagem; Não é necessário que o produtor esteja conectado quando a mensagem for lida pelo consumidor e viceversa; Quando mensagem é lida com sucesso o consumidor avisa o produtor (acknowledgement); 10

Arquitetura Point-to-Point Filas retêm mensagens até que sejam consumidas (ou expirem) Produtor 1 Fila Consumidor 1 Produtor 2 11

Arquitetura Point-to-Point 12

Arquitetura Publish and Subscribe Analogia: Similar ao sistema de assistir canal de TV por assinatura; Assinante registra o interesse em receber as mensagens; Publicador e assinante não se conhecem; 13

Arquitetura Publish and Subscribe Muitos para Muitos; Mensagens são enviadas para um canal (tópico) onde os assinantes do canal podem retirá-las; 14

Arquitetura Publish and Subscribe Publicador e o assinante não se conhecem; Produtor 1 Consumidor 1 Canal Produtor 2 Consumidor 2 15

Arquitetura Publish and Subscribe 16

Vantagens Escalabilidade: Para aumentar a capacidade servidora, basta acrescentar mais servidores, sem alterar os componentes; Novos clientes podem se conectar para usar mensagens de outras aplicações; Infraestrutura é reutilizada para outras aplicações; 17

Vantagens Comunicação assíncrona: Componentes podem realizar outras tarefas quando não estão ocupados lidando com as requisições; Desacoplamento: Maior modularidade, reuso, simplicidade; Servidor de messaging é o responsável pelo serviço; 18

Vantagens Flexibilidade: API é definida pelo tipo de mensagens (não por interface) Comunicação é a mensagem, não importa linguagem, plataforma, etc; 19

Desvantagens Camada adicional para repassar as mensagens; Centralização em um único ponto introduz risco de falha do sistema caso serviço de mensagem falhe; Solução: Replicação, clustering; Dificulta a criação de aplicações que precisam de comunicação síncronas; 20

Componentes do JMS JMS Provider É o sistema de mensagens em si; Cliente JMS São as aplicações Java que enviam e recebem as mensagens; Mensagens São os objetos enviados para as aplicações clientes; 21

Componentes do JMS 22

Componentes do JMS A mensagem JMS é composta de três partes: Cabeçalho Propriedades Corpo 23

Componentes do JMS Cabeçalho: Está presente em todas as mensagens; Informações de identificação e direcionamento das mensagens; Produzido pela aplicação produtora de mensagem; 24

Componentes do JMS Propriedades: É opcional; Pode ser considerada uma extensão do cabeçalho; Contém valores que aplicações consumidoras podem utilizar para filtragem das mensagens; Podem oferecer informações como: data/hora mensagem foi enviada; 25

Componentes do JMS Corpo: Define o tipo de mensagem. Existem 6 tipos de mensagens: TextMessage; MapMessage; BytesMessage; StreamMessage; ObjectMessage; 26

Componentes do JMS 27

Componentes do JMS 28

Componentes do JMS Tratamento de excessões: Exception genérica: JMSException Subclasses: InvalidClientIDException; InvalidDestinationException; JMSSecurityExecption; MessageFormatException; MessageEOFException; 29

Códigos fonte de exemplo Point-to-Point: QSender; QProvider; Publish and Subscribe: TPublisher; TSubscriber; 30

Comparação do JMS com RMI/RPC JMS Mensagens são representadas como eventos; Interface é genérica; Arquitetura é centralizada (tudo passa pelo MOM); RMI/RPC Mensagens são invocações a métodos; Aplicação se comunica por uma interface definida; Comunicação é síncrona; Aplicações precisam estar conectadas; 31

Considerações finais Quando a comunicação depende mais de mensagens do que interface definidas (componentes não dependem da interface de outros componentes); Quando a disponibilidade é imprevisível ou aplicação precisa rodar quando nem todos componentes estão acessíveis; Quando precisa ter um comportamento assíncrono; 32

Referências Kim Haase - JMS API Tutorial - http://download.oracle.com/javaee/1.3/jms/tutorial Sun - Java Message Service - http://www.faa.gov/about/office_org/headquarters_offices/ato/s ervice_units/techops/atc_comms_services/swim/documentation/ media/compliancy/jms-1_1-fr-spec.pdf Helder Rocha - www.argonavis.com.br/cursos/java/j530/j530_9_jms.pdf 33

Java Message Service (JMS) Disciplina de Sistemas Distribuídos Prof. Cristiano André da Costa Luiz Henrique Feltes