JMS

18
18/06/2015 1 Java Message Service Programación Distribuida JAIME SALVADOR AGENDA Introducción Midleware Orientado a Mensajes (MOM) JMS ActiveMQ Jaime Salvador

description

JMS

Transcript of JMS

  • 18/06/2015

    1

    Java Message Service

    Programacin Distribuida

    JAIME SALVADOR

    AGENDA

    Introduccin Midleware Orientado a Mensajes (MOM) JMS ActiveMQ

    Jaim

    e Salv

    ador

  • 18/06/2015

    2

    Introduccin

    Todas las formas de comunicacin (entre aplicaciones) vistas hasta el momento son sincrnicas

    Sockets RMI HTTP Invoker Hessian/Burlap

    Introduccin

    Todas las formas de comunicacin (entre aplicaciones) vistas hasta el momento son sincrnicas

    Sockets RMI HTTP Invoker Hessian/Burlap

    Jaim

    e Salv

    ador

  • 18/06/2015

    3

    Introduccin

    Existe otra forma de comunicacin: ASINCRONICA:

    Envo de mensajes de una aplicacin a otra aplicacin sin esperar una respuesta

    JMS: Java Message Service AMQP: Advanced Message Queuing Protocol

    AGENDA

    Introduccin Midleware Orientado a Mensajes (MOM) JMS ActiveMQ

    Jaim

    e Salv

    ador

  • 18/06/2015

    4

    MOM

    MOM es un software que enva y recibe mensajes de forma confiable entre variossistemas

    El uso ms comn es para la integracin de sistemas

    Cuando un cliente enva un mensaje, MOM almacena el mensaje en una ubicacinespecfica indicada por el que enva el mensaje e informa que el mensaje fuerecibido

    MOM

    El que enva el mensaje se denomina Producer (Productor)

    El que recibe el mensaje se denomina Consumer (Consumidor)

    El lugar en el que deposita el mensaje se denomina Destination (Destino)

    Jaim

    e Salv

    ador

  • 18/06/2015

    5

    MOM

    MOM

    Existen varias implementaciones de MOM

    Todos los servidores Java EE incluyen un Sistema de Mensajera (MOM)

    Existen servidores autnomos: ActiveMQ

    Jaim

    e Salv

    ador

  • 18/06/2015

    6

    MOM

    MOM

    MensajeUnidades de informacin de negocio las cuales son enviadas desde un Sistema a otro Sistema

    ProtocolosHTTPS/S, TCP/IP

    Clientes: mltiples lenguajes

    API: para envo y recepcin de mensajes

    Jaim

    e Salv

    ador

  • 18/06/2015

    7

    MOM

    Modelos de mensajera

    Define cmo los productores y consumidores intercambian mensajes

    JMS: Existen dos modelos estndar: point-to-point (PTP) y publish-subscribe

    MOM

    Point-to-Point

    Un mensaje viaja desde un productor(punto A) a un solo consumidor (PuntoB)

    Pueden existir varios productores yconsumidores, pero solo unconsumidor consume el mensaje

    Jaim

    e Salv

    ador

  • 18/06/2015

    8

    MOM

    Point-to-Point

    Los destinos PTP se denominan queues (colas)

    Los productores escriben en la cola y los consumidores leen de la cola

    No se garantiza el orden en el que se consumen los mensajes

    MOM

    Point-to-PointJa

    ime S

    alvad

    or

  • 18/06/2015

    9

    MOM

    Point-to-Point

    Message in a bottle

    Productor: naufrago Queue: ocano Consumidor: baista

    MOM

    Publish/Subscribe (pub-sub)

    Un productor genera un mensaje elcual es recibido por variosconsumidores

    Jaim

    e Salv

    ador

  • 18/06/2015

    10

    MOM

    Publish/Subscribe (pub-sub)

    Los destinos pub-sub se denominan topic (tpico)

    Un consumidor se denomina subscriber (suscriptor)

    MOM

    Publish/SubscribeJa

    ime S

    alvad

    or

  • 18/06/2015

    11

    AGENDA

    Introduccin Midleware Orientado a Mensajes (MOM) JMS ActiveMQ

    JMS

    Java Message Service

    Proporciona un API para acceso estndar a sistemas MOM

    API estndar para enviar y recibir mensajes utilizando Java

    JMS no es un MOM!!!

    Jaim

    e Salv

    ador

  • 18/06/2015

    12

    JMS

    JMS

    JMS define varios conceptos

    JMS client Non-JMS client JMS producer JMS consumer JMS provider

    JMS message JMS domains Administered objects Connection factory Destination

    Jaim

    e Salv

    ador

  • 18/06/2015

    13

    JMS

    JMS client

    Los clientes utilizan el API JMS para interactuar con el MOM (similar a JDBC)

    MessageProducer : para enviar mensajes a los destinos MessageConsumer: para consumer mensajes de los destinos

    JMS

    Non-JMS client

    Los clientes utilizan el API proporcionado por el MOM (no estndar)

    Es posible utilizar el protocolo CORBA IIOP o RMI

    Jaim

    e Salv

    ador

  • 18/06/2015

    14

    JMS

    JMS provider

    Es el fabricante que implementa el MOM e implementa el API JMS

    Proporciona acceso al MOM a travs del API JMS

    Ej. ActiveMQ: http://activemq.apache.org

    JMS

    JMS message

    Es la forma en la cual se transmite informacin del negocio

    Permite el envo de texto, datos binarios, etc.

    Contiene dos partes: header y body

    Jaim

    e Salv

    ador

  • 18/06/2015

    15

    JMS

    JMS domains

    Point-to-point (PTP)

    Publish/Susbcribe (pub-sub)

    JMS

    Administered Objects

    Connection Factory: permite crear conexiones al JMS provider

    ConnectionFactory

    Destination

    Jaim

    e Salv

    ador

  • 18/06/2015

    16

    AGENDA

    Introduccin Midleware Orientado a Mensajes (MOM) JMS ActiveMQ

    ActiveMQ

    ActiveMQ es un MOM open source el cual implementa la especificacin JMS

    http://activemq.apache.org

    Jaim

    e Salv

    ador

  • 18/06/2015

    17

    ActiveMQ

    Caractersticas

    Implementa la especificacin JMS (JMS compliance) Conectividad: HTTP/S, SSL, STOMP, TCP, XMPP Soporte para varias formas de persistencia y seguridad Soporte para aplicaciones escritas en Java Client API: C/C++, .NET, PHP, Phyton, Ruby, etc. Clustering

    ActiveMQ

    Ejemplo:Ja

    ime S

    alvad

    or

  • 18/06/2015

    18

    PREGUNTAS?

    Bibliografa

    Craig Walls. Spring in Action, Fourth Edition. Manning, 2015.

    Bruce Snyder, Dejan Bosanac, Rob Davies. ActiveMQ in Action. Manning, 2011.

    http://activemq.apache.org , consultada el 2015-06-18,

    Jaim

    e Salv

    ador