• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Jms e MOM (Message Oriented Middleware)
 

Jms e MOM (Message Oriented Middleware)

on

  • 1,081 views

 

Statistics

Views

Total Views
1,081
Views on SlideShare
1,081
Embed Views
0

Actions

Likes
0
Downloads
15
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Jms e MOM (Message Oriented Middleware) Jms e MOM (Message Oriented Middleware) Presentation Transcript

    • JMS e MOM (Message Oriented-Middleware)
      Jônata Gabriel Teixeira Marcelino
      José Salustiano Filho
    • Sumário
      MOM (Message Oriented-Middleware)
      GlassFish Enterprise Server
      JMS (Java MessagingService)
      O objeto modelo JMS + Implementação
    • Mom (Message oriented-Middleware)
    • MOM (Message Oriented Middleware)
      É uma infraestrutura de software/cliente servidor que cria uma camada entre as aplicaçõesde alto nível e as plataformas onde estão instaladas, por sistema de mensagens.
    • MOM
      Sua implementação fornece um conjunto de API’s
      Aumenta a portabilidade
      Interoperabilidade
      Flexibilidade
      Comunicação
      Através de mensagens
      Pela estrutura pura cliente/servidor (usando broadcast ou multicast)
      Pilhas mantidas por gestores locais: mais poderosa em termos de aplicabilidade e versatilidade
    • Descrição tecnológica
      A MOM está presente em ambos os lados, tanto no cliente, quanto no servidor
      Ligação peer-to-peer
      Chamadas assíncronas (é possível adicionar sincronismo, usando RPC’s)
      Tipos de mensagens compartilhadas
      Persistente: armazenada em memória não volátil, assim caso de falha, os dados não são perdidos.
      Não-persistente: armazenada em memória volátil
      Tipos de dados compartilhados
      Dados formatados (variáveis, strings)
      Pedidos de execução (chamadas a funções)
      Ou ambos
    • Descrição tecnológica
      As mensagens são transmitidas por gestores de pilhas (Message Queue Manager ou MQM).
      Fornece um ambiente para aplicações que utilizem as pilhas de mensagem ou aplicações como MQI (Message Queue Interface)
      Message Queue Interface
      Providencia armazenamento fiável para as mensagens armazenadas nas pilhas
      Administra concorrentes a dados
      Garante segurança e autenticidade
      Providencia funções especiais de emparelhamento de mensagens (por exemplo triggers).
    • Descrição tecnológica
      A forma de tomar as trocas mais fiável é usar tratamento de pilhas transacionais, o MQM envia várias mensagens para uma aplicação, se ela não conseguir receber, a parte ou o todo volta para a pilha para serem entregues depois
      Se a aplicação que corre sobre MOM não estiver disponível, então elas são guardadas numa fila onde ficam à espera que a aplicação torne disponível
      Por isso que a as implementações MOM são mais apropriadas para aplicações orientadas a eventos, ou objetos para a comunicação peer-to-peer
    • Glassfish Enterprise server
    • GlassFish
      Servidor rápido e fácil de usar, baseado na plataforma Java e da tecnologia Enterprise Edition (Java EE) para o desenvolvimento e entrega de aplicações e serviços web.
      Implementação de referência Java EE
      Código aberto de nível corporativo, permitindo mais recentes padrões e inovações do setor
      Melhor desempenho
      Mais confiabilidade e produtividade
      Facilidade de uso superiores a uma fração do custo de servidores de aplicações proprietários
    • JMS (Java Messaginsservice)
    • JMS
      Permite a criação, envio, recebimento e leitura de mensagens
      O receptor recebe a mensagem através do MOM
      Alguns conceitos
      Produtores e consumidores (para designar um cliente como produtor de mensagens e um componente EJB Message-DrivenBean por exemplo, como um consumidor de mensagens)
    • A arquitetura JMS
      São composta por cinco partes: Provedor JMS, que implementa as interfaces definidas na API JMS e provê recursos para administrar esse serviço; os clientes JMS que podem ser programas ou componentes que agem como produtores e consumidores de mensagens; as mensagens propriamente ditas que são objetos que transportam os dados do cliente para o receptor; os objetos de administração do serviço JMS que são utilizados pelos clientes para enviar as mensagens; e os clientes nativos que são clientes que usam produtos de Messaging nativos e não da API JMS.
    • Mensagens Point-To-Point (Queue)
      Conceito de enfileirar mensagens para serem consumidas.
    • Mensagens Publish/Subscribe- Publica/Inscreve(Topic)
    • O objeto modelo jms + implementação
    • O objeto modelo JMS + Implemetação
      ConnectionFactory
      Cria conexão com um provedor JMS, ele suporta uso consecutivo e contém parâmetros de configuração de conexão que foram definidos por um administrador. Esta interface não define qualquer método e tem duas sub-interfaces diretas: TopicConnectionFactory e QueueConnectionFactory.
      Destination
      É um objeto administrado que encapsula a identidade do destino das mensagens, que é onde as mensagens são enviadas e consumidas. Pode ser uma fila ou um tópico. O administrador JMS cria estes objetos, e os usuários os obtém através de buscas na JNDI. Da mesma forma que as factories de conexões, o administrador pode criar dois tipos de classe de destino, fila (Queue) e tópico (Topic).
    • O objeto modelo JMS + Implemetação
      Connection
      Um objeto Connection representa uma conexão ativa do cliente JMS com um provedor JMS. Tipicamente, ele é um soquete TCP/IP entre um cliente JMS e um provedor JMS. Os objetos Connection suportam uso consecutivo e são representados pela interface javax.jms.
      Session
      Um objeto Session é um contexto de sequenciamento único para produzir e consumir mensagens. Um objeto Session é representado pela interface Session.
      transacted: Esse parâmetro indica se a sessão é transacionada.
      acknowledgeMode: Esse parâmetro indica se consumidor ou o cliente reconhecerão mensagens que recebem. O seu valor pode ser um dos três campos da interface Session.
    • O objeto modelo JMS + Implemetação
      transacted: Esse parâmetro indica se a sessão é transacionada.
      acknowledgeMode: Esse parâmetro indica se consumidor ou o cliente reconhecerão mensagens que recebem. O seu valor pode ser um dos três campos da interface Session.
      AUTO_ACKNOWLEDGE: Automaticamente a sessão acusa o recebimento do cliente de uma mensagem ou, quando a sessão foi retornada com sucesso, de uma chamada a receber ou, quando o receptor de mensagem da sessão, chamado para processar a mensagem, retorna com sucesso.
      CLIENT_ACKNOWLEDGE: O cliente acusa o recebimento de uma mensagem consumida, chamando o método acknowledge da mensagem.
      DUPS_OK_ACKNOWLEDGE: Esse modo de acusar recebimento instrui a sessão para receber vagarosamente a entrega de mensagem.
    • O objeto modelo JMS + Implemetação
      MessageProducer
      Um objeto MessageProducer é usado por um cliente JMS para enviar mensagens a um destino.
      QueueSender: Você usa essa interface no domínio point-to-point.
      TopicPublisher: Você usa essa interface no domínio Publish/Subscribe.
      MessageConsumer
      Um objeto é usado por um cliente JMS para receber mensagem de um destino.
      QueueReceiver: Você usa essa interface no domínio point-to-point.
      TopicSubscriber: Você usa essa interface no domínio Publish/Subscribe.
    • O objeto modelo JMS + Implemetação
      Message
      Conteúdo a ser enviado para o destino
      TextMessage: Uma mensagem contendo uma string.
      MapMessage: Uma mensagem contendo pares nome/valor. Cada nome é um objeto string e cada valor é um tipo primitivo Java.
      BytesMessage: Uma mensagem contendo uma corrente de bytes não interpretados.
      StreamMessage: Uma mensagem contendo uma corrente de valores primitivos Java.
      ObjectMessage: Uma mensagem contendo um objeto que pode ser em série.