Un mensaje en si es simple, sólo es una estructura de datos. Ahora, en el contexto de SOA, donde consumidores y servidores intercambian información libremente en base a los contratos y políticas la cosa es diferente.
En este escenario la construcción del mensaje tiene varios aspectos de los cuales uno se debe hacer cargo. Estos datos “anexos” se incluyen en el sobre del mensaje (WRAPPER). A continuación se explican los aspectos básicos a tener en cuenta.
- Identificador de correlación.
Problema: una aplicación que envía muchos mensajes a diferentes proveedores de servicios, recibe múltiples respuestas. Debe ser capaz de identificar que respuesta pertenece a que petición.
Solución: Cada mensaje debe tener un identificador de correlación único. Para esto se deben considerar los siguientes componentes de la cadena:
Ø Aplicación que hace el Request.
Ø Servicio que responde.
Ø Mensaje Request.
Ø Mensaje Response.
Ø Identificador Request (identificador de correlación)
- Secuenciador de Mensajes.
Problema: en un escenario SOA los mensajes viajan por redes por lo que se debe tratar de usar el ancho de banda de la mejor manera posible. Para ello hay que observar el tamaño del mensaje que se quiere enviar.
Solución: Usar un secuenciador de mensajes que divide los mensajes en partes para evitar el problema del ancho de banda. Los datos necesarios a agrega en el HEADER para cada mensaje secuenciado son:
Ø Secuencia, identificador de la secuencia.
Ø Posición, identificador de la posición de esa parte del mensaje en la secuencia.
Ø Fin, indica si es el último mensaje de la secuencia.
- Expiración de mensajes.
Problema: en todos los escenarios SOA de aplicaciones empresariales se persisten los mensajes como testimonios o para análisis posterior. Esto produce un problema de almacenamiento de datos.
Solución: Dar tiempo de vida a los mensaje. Un campo de tipo Fecha/Hora que indique si el mensaje a terminado su ciclo de vida. Si expira el mensaje debe ser eliminado o movido a un DEAD LETTER. Siempre existirán mensajes que no tienen expiración, ellos se marcan en este mismo campo.
Los aspectos anteriores podemos ubicarlos en el HEADER del WRAPPER del mensaje. A su vez en el BODY ponemos la información de negocio, propósito inicial del mensaje.