1 / 22

Ingeniería del software II

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. El e-mail es un sistema de comunicación persona-persona mientras que los MOM’s tratan de comunicaciones aplicación-aplicación.

keran
Download Presentation

Ingeniería del software II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ingeniería del software II Middleware Orientado a Mensajes JMS Sistemas Distribuidos

  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 MOM’s 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 Sistemas Distribuidos

  3. ¿Que es MOM? • Los MOM’s 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 Sistemas Distribuidos

  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 Sistemas Distribuidos

  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. Sistemas Distribuidos

  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. Sistemas Distribuidos

  7. Arquitectura Centralizada Sistemas Distribuidos

  8. Arquitectura distribuida • Las arquitecturas distribuidas usan IP Multicast para distribuir los mensajes. Sistemas Distribuidos

  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 • ExoLab:OpenJMS Sistemas Distribuidos

  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. Sistemas Distribuidos

  11. Java Message Service • Gracias a JMS se puede construir aplicaciones portables entre distintos MOM’s. • 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. Sistemas Distribuidos

  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". Sistemas Distribuidos

  13. JMS: Modelo pub/sub Sistemas Distribuidos

  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. Sistemas Distribuidos

  15. JMS: Modelo p2p Sistemas Distribuidos

  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 Sistemas Distribuidos

  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 Sistemas Distribuidos

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

  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 Sistemas Distribuidos

  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. Sistemas Distribuidos

  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. Sistemas Distribuidos

  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 Sistemas Distribuidos

More Related