Envío de mensajes SOAP
Hay muchas maneras de controlar el envío de mensajes SOAP recibidos al servicio adecuado. Los dos mecanismos más sencillos son el envío de nivel de transporte y la dirección y el envío de acciones.
Envío de nivel de transporte
Con el envío de nivel de transporte, el servidor HTTP subyacente (como la API HTTP) se usa para administrar el enrutamiento de solicitudes al dispositivo y sus servicios. El servidor proporciona una dirección URL diferente para cada servicio y para el dispositivo y los receptores diferentes se registran para cada dirección URL. Esto permite diseñar código para que cada servicio esté aislado del otro, ya sea ejecutándose como componentes independientes dentro del mismo proceso o ejecutándose como procesos independientes.
El envío de nivel de transporte tiene algunas ventajas. Los mensajes se pueden enviar al componente adecuado sin analizar primero el sobre SOAP o el cuerpo del mensaje. Además, se puede reutilizar el mecanismo existente para enrutar los mensajes proporcionados por la mayoría de las implementaciones del servidor HTTP, lo que significa que el código de envío personalizado no es necesario. También aísla el código de procesamiento SOAP entre los servicios, que proporciona un nivel de seguridad, ya que los servicios seguros evitan que los mensajes viajen a través del código común.
Dirección y distribución de acciones
La dirección y el envío de acciones se basan en los encabezados SOAP para determinar el servicio adecuado al que se envía el mensaje. Este modelo también puede usar información adicional, como parámetros de referencia, para facilitar aún más el envío.
Este modelo fomenta la reutilización del código a lo largo de una pila de mensajería por capas, ya que todos los servicios comparten el código hasta el procesador SOAP. Además, no se requieren direcciones de transporte distintas para los servicios, lo que significa que las direcciones UUID se pueden usar para los puntos de conexión de servicio. El envío de direcciones y acciones también se traduce más directamente en un modelo de programación. Los desarrolladores pueden conectar servicios y dispositivos a un único componente que administra el enrutamiento, en lugar de tener que vincularlos a una capa HTTP o crear componentes independientes para cada servicio.