Java Messaging Service es un middleware de comunicación a través de mensajes para Java muy utilizado a nivel mundial, con estandares definidos y varios proveedores.

Actualmente, yo requería utilizar múltiples proveedores de JMS en una aplicacion, entonces para no estar creando implementaciones independientes para cada tipo de proveedor, decidi hacer una interfaz que utilice los estandares JMS y me permita implementar mis clases de forma transparente al proveedor JMS, este es un diagrama de clase de mi diseño:


Patrones de diseño utilizados: