Publicado el 19 de Enero del 2019
555 visualizaciones desde el 19 de Enero del 2019
1,6 MB
49 paginas
Creado hace 13a (23/02/2011)
Especialista Universitario Java Enterprise
Sesión 1: Introducción a JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Especialista Universitario Java Enterprise
Puntos a Tratar
• Un Poco de Historia
• Dominios de Mensajería
• JMS
• Arquitectura
• Modelo de Programación
• Recursos JMS en Glassfish
• Una Aplicación JMS
• PTP
• Pub/Sub
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS - 2
Especialista Universitario Java Enterprise
Un Poco de Historia
• 60: mainframes
• 70: terminales + mainframes
• 80: PCs+ múltiples protocolos
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS - 3
Especialista Universitario Java Enterprise
Mensajería Empresarial
• Objetivo: transferir información entre sistemas
heterogéneos mediante el envío de mensajes.
• Diferentes soluciones de mensajería
• RPCs que hacen funciones de middleware mediante
una cola de mensajes
Ej: COM y CORBA
• Notificación de eventos, comunicación entre
procesos y colas de mensajes, incluidos en los SSOO
Ej: buffersFIFO, colas de mensajes, pipes, señales, sockets, ...
• Soluciones para una categoría de middleware que
ofrezca una mensajería fiable y asíncrona
Ej: WebShpereMQ, SonicMQ, TIBCO, Apache ActiveMQ, etc...
• Se necesitaba un sw para comunicar y transferir datos
entre diferentes aplicaciones, SSOO, protocolos e incluso
diferentes lenguajes de programación.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS - 4
Especialista Universitario Java Enterprise
¿Por QuéMensajería?
• Método de comunicación entre componentes software o
aplicaciones.
• Comunicación distribuída débilmente acoplada
• un componente envía un mensaje a un destino y el receptor lo
recoge de dicho destino.
• Ni emisor ni receptor tienen que estar disponibles al
mismo tiempo para comunicarse (independencia y
asíncronia)
• El emisor no tiene porquésaber nada del receptor, y viceversa.
• Ambos sólo deben saber el formato del mensaje y cual es
el destino del mismo.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS - 5
Especialista Universitario Java Enterprise
MOM
• El Midleware Orientado a Mensajes (MOM) es un
categoría de software para la intercomunicación de
sistemas.
• Mecanismo seguro, escalable, confiable y con bajo
acoplamiento.
• Permite la comunicación entre aplicaciones mediante un
conjunto de APIsofrecidas por cada proveedor y lenguaje
tendremos un API propietaria y diferente por cada MOM existente.
•
• Actúa como un mediador entre los emisores y los
receptores de mensajes.
• Esta mediación ofrece un nuevo nivel de desacoplamiento.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS - 6
Especialista Universitario Java Enterprise
MOM Como Mediador
• Se utiliza para mediar en la conectividad y la mensajería,
no solo entre las aplicaciones y el mainframe, sino de una
aplicación a otra.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS - 7
Especialista Universitario Java Enterprise
Ventajas de Usar MOM
• Persistencia de mensajes: para conexiones lentas/poco
fiables o donde el fallo de un receptor no afecta al emisor.
• Enrutamiento complejo: un mensaje a muchos
receptores, enrutamientos basados en propiedades, …
• Transformación de mensajes: permite la comunicación
entre dos aplicaciones que trabajan con diferentes
formatos de mensajes.
• Soporte para diversos protocolos de conectividad
• HTTP/S, SSL, TCP/IP, UDP, etc...
• Soporte para múltiples lenguajes de programación.
• Este gran abanico de protocolos, lenguajes y APIsprovoca
la aparición de JMS como estándar Java.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS - 8
Especialista Universitario Java Enterprise
Dominios de Mensajería
• Existen 2 modelos/dominios de mensajería:
• Punto a Punto (PTP), en la que un mensaje se
consume por un único consumidor.
• Publicación/Subscripción (Pub/Sub), en la que un
mensaje se consume por muchos consumidores.
• No todos los proveedores implementan ambos.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS - 9
Especialista Universitario Java Enterprise
Punto a Punto
• Un mensaje lo consume un
único consumidor(1:1)
• Pueden haber varios emisores.
• El destino del mensaje es una
cola definida y con un
nombre
• modelo FIFO: el 1er mensaje
encolado seráel 1ºen salir.
• Cuando el receptor extrae el mensaje, envía un acuse de
recibo a la cola para confirmar su correcta recepción.
• Mecanismo pull las colas retienen todos los mensajes
enviados hasta que son consumidos o hasta que expiren.
• Una aplicación PTP se construye bajo el concepto de
colas de mensajes, productores y consumidores.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS -10
Especialista Universitario Java Enterprise
Pub/Sub
• Un mensaje puede
consumirse por múltiples
consumidores (1:N).
• El destino es un tópico.
• Los mensajes en los tópicos no
se encolan. Un nuevo mensaje
en el tópico sobrescribirá
cualquier mensaje existente.
• Modelo de difusión: los publicadores publican en un
tópico, y los subscriptores se subscriben al tópico.
• El MOM se encarga de difundir los mensajes que llegan
al tópico mediante un mecanismo Push -> los mensajes
se envían automáticamente a los subscriptores.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS -11
Especialista Universitario Java Enterprise
Características Pub/Sub
• Cada mensaje puede tener múltiples consumidores
• Existe un dependencia temporal entre los publicadores y
los subscritores perecederos (non-durable)
• Un cliente que se subscribe a un tópico puede consumir los
mensajes publicados después de la subscripción, y el subscriptor
debe continuar conectado para consumir los posteriores
mensajes.
• El API JMS disminuye esta dependencia temporal
permitiendo crear subscripciones duraderas (durable).
• Permiten recibir mensajes que fueron enviados cuando los
subscriptores no estaban conectados.
• Útil en situaciones donde un grupo de aplicaciones quiere
notificar a otras de un evento particular.
• Ejemplo: una aplicación de CRM, al crear un cliente, puede
necesitar comunicar a otras aplicaciones la creación de éste.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS -12
Especialista Universitario Java Enterprise
JMS
• Especificación que ofrece un API estándar (mediante un
conjunto de interfaces) para poder enviar y recibir
mensajes sin atarnos a ningún proveedor.
• Minimiza el conocimiento de mensajería empresarial que
debe tener un programador Java para desarrollar
complejas aplicaciones de mensajería.
• Mantiene la portabilidad entre las diferentes
implementaciones de proveedores JMS.
¡JMS no es un MOM !.
•
• Abstrae la interacción entre los clientes de mensajería y
los MOMs
•
Igual que JDBC abstrae la comunicación con las BBDD
relacionales.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS -13
Especialista Universitario Java Enterprise
JMS Como API Estándar
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS -14
Especialista Universitario Java Enterprise
Historia de JMS
• Originalmente creada por Sun junto a un grupo de
compañías de la industria de la mensajería empresarial.
•
la primera versión de JMS data de 1998.
• La última release (1.1) fue en 2002
• desde entonces se trata de una tecnología estable y madura.
• Esta release unificólos dos conjuntos de APIspara
trabajar con los dos dominios de mensajería, de modo
que ahora sólo necesitamos una API para trabajar con
ambos dominios.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS -15
Especialista Universitario Java Enterprise
JMS y JavaEE
• JMS forma parte de JavaEEdesde la v1.3 de JavaEE
• El API JMS dentro de la plataforma JavaEEaporta:
• Aplicaciones cliente, componentes EJB y componentes Web que
pueden enviar o recibir de forma síncrona/asíncrona mensajes
JMS.
• Message-drivenBeans –MDBs: tipo de EJB que puede consumir
mensajes de forma asíncrona.
• JMS mejora JavaEEsimplificando el desarrollo de
aplicaciones empresariales
• Mediante interacciones asíncronas, de confianza y con bajo
acoplamiento entre los componentes JavaEEy los sistemas
legacyque soportan la mensajería.
• A su vez, JavaEEtambién mejora JMS
• con el soporte de transacciones distribuidas, y el
procesamiento de mensajes de manera concurrente.
Servicios de Mensajes con JMS
©2010-2011 Depto. Ciencia de la Computación e IA
Introducción a JMS -16
Especialista Universitario Java Enterprise
Conceptos JMS
• Cliente JMS: Una aplicación 100% Java que envía y recibe mensajes.
• Cualquier componente JavaEEpuede actuar como un cliente JMS.
• Cliente No-JMS: aplicación no Java que envía y recibe mensajes.
• Productor JMS: un cliente que crea y envía mensajes JMS.
• Consumidor JMS: un cliente que recibe y procesa mensajes JMS.
• Proveedor JMS: implementación de los interfaces JMS el cual está
idealmente escrito 100% en Java.
• El proveedor debe ofrecer prestaciones tanto de administración como de control
de los recursos JMS.
• Toda implementación de la plataforma Java incluye un proveedor JMS.
• Mensaje JMS: objeto (cabecera + propiedades + cuerpo) que contiene la
información y que es enviado y recibido por clientes JMS.
• Dominio JMS: Los dos estilos de mensajería: PTP y Pub/Sub.
• Objetos Administrados: objetos JMS preconfiguradosque con
Comentarios de: Sesión 1: Introducción a JMS - Servicios de Mensajes con JMS (0)
No hay comentarios