jms
DESCRIPTION
JMSTRANSCRIPT
-
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