¡Muy buenas!
Hoy seguimos con servicios que podemos encontrar en SAP Cloud Platform. En este caso hablaremos de SAP Cloud Platform Enterprise Messaging.
¿Qué es SAP Cloud Platform Enterprise Messaging?
SCP EM (lo abrevio para mejor lectura) es un servicio de mensajería en el cloud de SAP, que nos permite tener nuestra arquitectura desacoplada. Este servicio utiliza una comunicación asíncrona, y envía y recibe mensajes de las aplicaciones, los servicios y los sistemas que este suscritos. La comunicación se realiza mediante mensajes (JSON).
Existen servicios similares en otros clouds como podría ser Amazon Web Services Simple Notification Service o Google Cloud Platform Pub/Sub.
Ajá… no he entendido aún lo que es…
Vamos a poner un ejemplo:
Tenemos nuestro ERP S/4HANA On premise y queremos que cuando el sistema falle, nos envíe un mail, notificación SMS y genere una notificación al proveedor del mantenimiento del sistema.
Lo primero que tenemos que hacer, es crear un topic. Un topic es un punto en común (vamos… un tema) donde las aplicaciones, sistemas y servicios van a poder enviar y recibir mensajes. Sería un punto de intercambio de mensajes (por llamarlo de una manera).
Una vez tenemos nuestro topic, el S/4HANA ya puede enviar mensajes cuando salte un evento en concreto. En nuestro caso, enviará un mensaje JSON cuando tenga un fallo en el sistema al topic.
Una vez creado el canal de envío, ahora podemos suscribir tantas aplicaciones, servicios o sistemas como queramos. El servicio de SCP EM, al recibir una publicación, enviará un mensaje a los suscriptores desencadenado una serie de acciones, en nuestro caso, enviando mails, SMS y notificando a aplicaciones de terceros.
Llegados a éste punto, podéis entender porque me gusta llamarle el cartero. Como veis, funciona igual que la mensajería tradicional, recibe unas cartas (mensajes JSON) y las reparte a sus destinatarios (suscriptores).
Pero… esto lo puedo programar en mi código sin necesidad de servicios…
Si y no… Hay cosas que por supuesto se pueden programar, al final son llamadas a APIs… Pero el esfuerzo que supone, igual es mejor utilizar el SCP EM, ya que si necesitas añadir otra app, servicio o sistema «sólo» lo tienes que suscribir al servicio. Si lo quieres hacer mediante código, tendrías que añadir a tu código la lógica necesaria, la llamada a la API y tener un mantenimiento constante…
Conclusión
La gracia de SCP EM es que nos provee de un servicio de comunicación asíncrona (servicio pub/sub, publicación/suscripción) que permite conectar mediante mensajería tantos sistemas, servicios o aplicaciones como necesitemos y de una forma escalable, ya que es el propio SCP que mantiene «la máquina» (es un servicio cloud…). Es una forma de integrar nuestros sistemas de una forma desacoplada sin tener que «mantener» código.
A parte, no sólo funciona como mensajería con topics, también nos permite crear colas en eventos para no saturar a nuestros suscriptores.