Está en la página 1de 18

18/06/2015

Programacin Distribuida
Java Message Service

Ja

im

Sa

lv

ad

or

JAIME SALVADOR

AGENDA

Introduccin
Midleware Orientado a Mensajes (MOM)
JMS
ActiveMQ

18/06/2015

Introduccin

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


son sincrnicas
Sockets
RMI
HTTP Invoker
Hessian/Burlap

im

Sa

lv

ad

or

Ja

Introduccin

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


son sincrnicas

Sockets
RMI
HTTP Invoker
Hessian/Burlap

18/06/2015

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

Ja

im

Sa

lv

ad

or

AGENDA

Introduccin
Midleware Orientado a Mensajes (MOM)
JMS
ActiveMQ

18/06/2015

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

El uso ms comn es para la integracin de sistemas

Cuando un cliente enva un mensaje, MOM almacena el mensaje en una ubicacin


especfica indicada por el que enva el mensaje e informa que el mensaje fue
recibido

Ja

MOM

im

Sa

lv

ad

or

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)

18/06/2015

Ja

MOM

im

Sa

lv

ad

or

MOM

Existen varias implementaciones de MOM

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

Existen servidores autnomos: ActiveMQ

18/06/2015

Mensaje

Ja

MOM

im

Sa

lv

ad

or

MOM

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

Protocolos
HTTPS/S, TCP/IP

Clientes: mltiples lenguajes

API: para envo y recepcin de mensajes

18/06/2015

MOM
Modelos de mensajera
Define cmo los productores y consumidores intercambian mensajes

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

Ja

MOM

im

Sa

lv

ad

or

Point-to-Point

Un mensaje viaja desde un productor


(punto A) a un solo consumidor (Punto
B)

Pueden existir varios productores y


consumidores,
pero
solo
un
consumidor consume el mensaje

18/06/2015

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

Ja

MOM

im

Sa

lv

ad

or

Point-to-Point

18/06/2015

MOM
Point-to-Point

Message in a bottle
Productor: naufrago
Queue: ocano
Consumidor: baista

Ja

MOM

im

Sa

lv

ad

or

Publish/Subscribe (pub-sub)

Un productor genera un mensaje el


cual
es
recibido
por
varios
consumidores

18/06/2015

MOM
Publish/Subscribe (pub-sub)
Los destinos pub-sub se denominan topic (tpico)

Un consumidor se denomina subscriber (suscriptor)

Ja

MOM

im

Sa

lv

ad

or

Publish/Subscribe

10

18/06/2015

AGENDA

Ja

JMS

im

Sa

lv

ad

or

Introduccin
Midleware Orientado a Mensajes (MOM)
JMS
ActiveMQ

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!!!

11

18/06/2015

Ja

JMS

im

Sa

lv

ad

or

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

12

18/06/2015

JMS
JMS client

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

MessageProducer : para enviar mensajes a los destinos

Ja

JMS

im

Sa

lv

ad

or

MessageConsumer: para consumer mensajes de los destinos

Non-JMS client

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

Es posible utilizar el protocolo CORBA IIOP o RMI

13

18/06/2015

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

Ja

JMS

im

Sa

lv

ad

or

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

14

18/06/2015

JMS
JMS domains
Point-to-point (PTP)

Publish/Susbcribe (pub-sub)

Ja

JMS

im

Sa

lv

ad

or

Administered Objects

Connection Factory: permite crear conexiones al JMS provider


ConnectionFactory

Destination

15

18/06/2015

AGENDA

im

Sa

lv

ad

or

Introduccin
Midleware Orientado a Mensajes (MOM)
JMS
ActiveMQ

Ja

ActiveMQ

ActiveMQ es un MOM open source el cual implementa la


especificacin JMS

http://activemq.apache.org

16

18/06/2015

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.

or

Clustering

im

Sa

lv

ad

Ejemplo:

Ja

ActiveMQ

17

18/06/2015

im

Sa

lv

ad

or

PREGUNTAS?

Ja

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,

18

También podría gustarte