Ingenier - PowerPoint PPT Presentation

1 / 22
About This Presentation
Title:

Ingenier

Description:

Ingenier a del software II Middleware Orientado a Mensajes JMS Que es MOM? Un ejemplo de sistema de mensajer a que todos conocemos es el e-mail. – PowerPoint PPT presentation

Number of Views:76
Avg rating:3.0/5.0
Slides: 23
Provided by: alfr148
Category:
Tags: ingenier

less

Transcript and Presenter's Notes

Title: Ingenier


1
Ingeniería del software II
  • Middleware Orientado a Mensajes JMS

2
Que es MOM?
  • Un ejemplo de sistema de mensajería que todos
    conocemos es el e-mail. El e-mail es un sistema
    de comunicación persona-persona mientras que los
    MOMs tratan de comunicaciones aplicación-aplicaci
    ón.
  • Estos sistemas permiten que las aplicaciones
    intercambien información en forma de mensajes, un
    mensaje esta compuesto por
  • Cabeceras
  • datos

3
Que es MOM?
  • Los MOMs aseguran que los mensajes son
    distribuidos adecuadamente entre las distintas
    aplicaciones, por lo general suelen proporcionar
    otras características importantes como
  • Tolerancia a fallos
  • Transacciones
  • Escalabilidad

4
Que es MOM?
  • En un MOM las aplicaciones intercambian mensajes
    a través de canales virtuales destinations
  • Cuando se envía un mensaje no se envía a una
    aplicación concreta sino a un determinado
    destination
  • Las aplicaciones receptoras de los mensajes deben
    registrar su interés por recibir los mensajes
    dirigidos a un destination

5
Que es MOM?
  • En un MOM los mensajes son enviados de forma
    asíncrona.
  • El encargado de enviar el mensaje no tiene que
    esperar una respuesta, envía el mensaje y sigue
    procesando.
  • Los mensajes son tratados como unidades
    auto-contenidas. Contienen todos los datos
    necesarios para que puedan ser procesados.

6
Arquitectura de un MOM
  • Las distintas implementaciones actuales de MOM
    están basadas en diferentes arquitecturas, desde
    arquitecturas con un servidor de mensajes
    centralizado a arquitecturas descentralizadas que
    distribuyen el proceso entre los clientes.
  • Un sistema de mensajería esta compuesto por los
    clientes y el propio MOM. Un cliente es cualquier
    aplicación que envié o reciba mensajes del MOM.

7
Arquitectura Centralizada
8
Arquitectura distribuida
  • Las arquitecturas distribuidas usan IP Multicast
    para distribuir los mensajes.

9
Implementaciones de MOM
  • Los siguientes productos son ejemplos de
    distintas implementaciones de un sistema MOM
  • IBM MQSeries
  • Progress SonicMQ
  • Fiorano FioranoMQ
  • Softwired iBus
  • Sun Microsystems Java Message Queue
  • BEA WebLogic Server
  • ExoLabOpenJMS

10
Java Message Service
  • JMS es un API estándar de la plataforma java para
    construir aplicaciones que utilicen sistemas de
    mensajería.
  • JMS no es un sistema de mensajería, es un
    conjunto de las clases y interfaces que necesita
    un cliente para comunicarse con un sistema de
    mensajería.
  • De forma análoga a como el API JDBC permite
    acceder a diferentes bases de datos JMS permite
    acceder a diferentes sistemas de mensajería.

11
Java Message Service
  • Gracias a JMS se puede construir aplicaciones
    portables entre distintos MOMs.
  • La gran mayoría de implementaciones de MOM
    soportan el API JMS, lo que en la practica
    permite construir aplicaciones que usen un
    paradigma de comunicación basado en mensajes
    independientemente del producto MOM concreto que
    se use.

12
JMS Messaging Models
  • JMS nos proporciona dos modelos distintos de
    mensajería
  • publicación/subscripción abreviadamente
    "pub/sub
  • comunicación punto a punto abreviadamente "p2p
  • Como primera aproximación el modelo
    publicación/subscripción está pensado para una
    comunicación "uno a muchos" mientras que el
    modelo punto a punto lo está para comunicaciones
    "uno a uno".

13
JMS Modelo pub/sub
14
JMS Modelo pub/sub
  • En el modelo pub/sub un productor envía un
    mensaje a un canal virtual llamado tópico.
  • Los consumidores pueden subscribirse a dicho
    tópico, con lo que recibirían una copia del
    mensaje.
  • Todos los mensajes enviados a un tópico son
    entregados a todos los receptores.
  • En este modelo se conoce al productor como
    publicador y al consumidor como subscriptor.

15
JMS Modelo p2p
16
JMS Modelo p2p
  • Los clientes JMS envían mensajes a través de
    canales virtuales llamados colas.
  • Aquí se conoce a los productores como emisores y
    a los consumidores como receptores.
  • En este modelo los receptores chequean la cola
    para ver si han recibido algún mensaje.
  • En una cola puede haber más de un receptor
    esperando mensajes, aunque solamente uno de ellos
    va a consumir cada mensaje

17
JMS Modelo p2p
  • La especificación no define las reglas que deben
    seguirse para la distribución de los mensajes
    entre los receptores, así que cada fabricante
    realiza su propia implementación.
  • Este modelo ofrece un explorador de colas
    mediante el cual el receptor es capaz de examinar
    los mensajes pendientes antes de consumirlos

18
JMS Anatomía de mensajes
  • Un mensaje esta compuesto por 3 partes
  • Cabeceras
  • Propiedaes
  • datos

19
JMS Anatomía de mensajes
  • Cabeceras (Headers)
  • Todos los mensajes JMS tienen una serie de
    cabeceras estándar.
  • Existen dos tipos de cabeceras
  • Las que se asignan automáticamente, ej
    JMSMessageID, JMSTimeStamp
  • Las asignadas por el usuario del API JMSReplyTo,
    JMSCorrelationID y JMSType

20
JMS Anatomía de mensajes
  • Propiedades
  • Son propiedades definidas por el usuario que
    pueden servir para posteriormente filtrar los
    mensajes que recibe un destinatario.
  • Ejemplo en un programa de chat podríamos definir
    las siguientes propiedades
  • Usuario con el nombre del usuario que enviá el
    mensaje
  • Destinatario podría llevar el nombre de un
    destinario para enviar mensajes privados o
    todos en caso de que sea un mensaje que se
    envíe a todo el mundo.

21
JMS Message Selectors
  • El subscribirse a un tópico o cola puedo indicar
    un Message Selector para filtrar los mensajes que
    voy a recibir en función de sus atributos, estos
    selectores son expresiones booleanas.
  • Ejemplo con los dos atributos que hemos definido
    para el char podriamos crear un selector como
  • Destinatario mi_nombre_usuario or
    Destinatario todos
  • Con este selector recibiría los mensajes para
    todo el mundo y los dirigidos a mi en exclusiva,
    además no recibiremos los mensajes privados
    dirigidos a otros usuarios.

22
JMS Anatomía de mensajes
  • Datos (Payload)
  • Dentro de JMS se definen 6 tipos de mensajes en
    función del tipo de datos que pueden contener
  • Message
  • TextMessage
  • ObjectMessage
  • BytesMessage
  • MapMessage
  • StreamMessage
Write a Comment
User Comments (0)
About PowerShow.com