El canal Sender del adaptador es el encargado de suscribirse a uno o más Topics en el Broker. Estos canales permanecerán a la espera de que se produzca una publicación en alguno de los Topics a los que están suscritos, de modo que se active el canal y así éste pueda pasar el mensaje a PI.
Configuración del canal Sender
En la configuración del canal Sender del adaptador B_PLUS_MQTT, lo primero que hay que elegir es el tipo de archivo de entrada mediante el parámetro Message Protocol: XML/JSON.
- XML: El archivo recibido es de tipo XML. Se procesa y envía a SAP PI como un XML.
- JSON: El archivo recibido es de tipo JSON. Se parsea y transforma a XML para que SAP PI pueda trabajar con él.
Con ambos tipos de protocolo aparecen las siguientes pestañas de configuración:
- General: Configuración de los datos de conexión al Broker y de la existencia de un mensaje de tipo Last Will and Testament:
- Connection Parameters: En este apartado se encuentran los parámetros en los que se configura la conexión al Broker:
Primero se define un ID de cliente, que debe de ser único por cada cliente conectado a un mismo Broker. Se recomienda el uso de un ID de cliente claro, ya que puede facilitar enormemente la interpretación del log del Broker. Los siguientes dos parámetros son: el Host en el que se encuentre alojado el Broker y el puerto de acceso al Broker.
De forma opcional, se puede configurar la identificación por usuario y contraseña, que forma parte de la configuración del Broker. Se recomienda configurar varios usuarios para poder acceder al Broker de forma segura.
Por último, también es posible, la configuración de una conexión al servidor a través de un Proxy, definiendo Host y Puerto.
- Additional Parameters: En este apartado se encuentra una configuración adicional para la conexión al Broker.
Cuando se pierda la conexión con el Broker, o con el servidor que aloja al mismo, se entrará en un periodo de reconexión. Es muy importante poder recuperar la conexión sin perder la persistencia de datos, para no perder ningún mensaje publicado desde la última conexión; por lo que, este proceso se ejecuta de forma periódica hasta lograr la reconexión o hasta que el canal sea detenido por el administrador de forma manual.
El primer parámetro especifica el tiempo de espera entre cada intento de reconexión.
El segundo parámetro es propio del protocolo MQTT, especifica el intervalo de tiempo entre cada confirmación del estado de la conexión emitido por el Broker: cada X tiempo, definido por el Keep Alive Ratio, Broker y cliente intercambian un ping, si el Broker no obtuviera respuesta o no se produjera en el tiempo especificado, el Adaptador considera que se ha perdido la conexión entre Broker y Adaptador, y entra en estado de reconexión.
El tercer parámetro de este apartado representa una sesión limpia, sin persistencia de datos. La persistencia de datos de una conexión se utiliza para mantener el estado de la misma, más allá de la conexión al Broker; es decir, entre conexiones se almacena información acerca de los Topics suscritos: número de mensajes recibidos, ID de cliente, etc.
- Last Will and Testament Parameters: En este apartado se especifican los parámetros del LWT.
El proceso conocido como Last Will and Testament consiste en el envío de un mensaje al Broker cuando el Adaptador detecta una pérdida abrupta de la conexión. Este mensaje se debe haber almacenado en su memoria previamente, indicando el Topic específico que se quiere que reciba el mensaje y con un Quality of Service predefinido. Es un proceso opcional; de hecho, sólo se aconseja su uso en casos muy específicos como, por ejemplo, canales que sean susceptibles de presentar errores de conexión y que manejen datos sensibles.
Los parámetros que se deben configurar son: el Topic del Last Will and Testament, el Quality of Service con el que se enviará el mensaje y el Mensaje a enviar en caso de pérdida inesperada de la conexión.
- Connection Parameters: En este apartado se encuentran los parámetros en los que se configura la conexión al Broker:
Processing: Configuración de los parámetros del procesamiento.
Suscribe: Configuración de los parámetros de suscripción.
Subscribe Parameters: En este apartado se pueden definir los parámetros de suscripción. Es posible suscribirse a un Topic o a varios en una misma sesión.
Un canal Sender se puede subscribir a más de un Topic a la vez. Para ello se tiene que marcar la opción de Subscribe to Additional Topics y rellenar la tabla con los valores especificados.
El ejemplo de la imagen representa dos Topics: Topic1 y Topic2, que descienden del Topic TechedgeGroup; sin embargo, el canal se podría suscribir directamente a ese topic, TechedgeGroup, y de esta forma se quedaría suscrito a todos los Topics que desciendan de TechedgeGroup.
Payload Parameters:
Por último, se puede especificar si el mensaje que se espera recibir está codificado en Base64. De esta forma, y con la finalidad de que SAP PI pueda trabajar con él, es posible decodificar el mensaje haciendo check en "Base64 decode received message" e indicando el encoding en la casilla “Message Encoding”.
Adicionalmente, si el protocolo de mensaje elegido es XML, entonces se puede elegir una opción extra de decodificación a través de una expresión XPath e indicado el encoding:
Con esta opción, únicamente se decodifica el texto que se encuentra dentro de la etiqueta indicada en la expresión XPath. En el ejemplo de la imagen, la salida será el mensaje completo con el texto de la etiqueta "name" decodificado.
- Advanced: Configuración avanzada en la que se incluye la opción de elegir el estado del canal; es decir, se puede configurar el canal como activo o como inactivo.