¿Cómo intercambian información los sistemas en la nube?

Si alguna vez has usado un sistema en línea para reservar boletos o seguir un envío, has de saber que por detrás hay código que permite a las diversas plataformas comunicarse entre sí de una manera accesible. Entonces, ¿Cómo hacen los programadores para interconectar tantos sistemas?, ¿deben ser expertos en todos esos lenguajes?. No necesariamente, y aquí lo trataremos de ilustrar con un ejemplo.

Un sistema para reservar boletos de viaje por autobús

Si una empresa de transporte de pasajeros te pide que se vendan boletos en su página de internet, seguramente deberás interactuar con su plataforma de emisión de boletos, que puede estar desarrollada en X lenguaje (C, Java, Python…el que se te ocurra) y alojada en Y infraestructura (Azure, Linux[+20 sabores]…etc.).

Para interactuar con esta plataforma ¿se debe conocer previamente el lenguaje y la infraestructura de la plataforma?

No si el desarrollador del sistema de autobuses te da una API.

Con una API tú puedes enviar desde tu desarrollo mensajes que la plataforma de los autobuses puede entender, y la plataforma devuelve las respuestas con mensajes del mismo tipo. De esta manera la intercomunicación entre los dos desarrollos se “abstrae” y ninguno de los desarrolladores necesita conocer el lenguaje o la infraestructura en la que están implementados sus desarrollos, basta con que redacten de manera adecuada sus mensajes y sepan interpretar correctamente los que reciben.

Esto es posible porque los mensajes que intercambian siguen un estándar o conjunto de reglas común. El estándar más extendido es el que se conoce como JSON (JavaScript Object Notation = Notación de objetos de Javascript), aunque también existen otros como XML (eXtensible Markup Language).

Los mensajes que siguen el estandar JSON son archivos de texto simple, cuyo contenido está organizado mediante reglas que le permiten enviar información coherente y válida. Si el mensaje no sigue las reglas, no se considera válido.

Siguiendo con el ejemplo de los autobuses, imaginemos que le envías a la plataforma, mediante un formulario de tu página, los datos del boleto que deseas reservar, junto con tu nombre. La página web le enviaría al sistema de autobuses algo como esto:

{
    "nombre": "Juan Pérez",
    "origen": "Mexicali",
    "id_pedido": 999999,
    "destino":{
        "ciudad": "Tapachula",
        "estado": "Chiapas"
    },
    "abordaje":{
        "hora": "20:00",
        "fecha": "2023-03-12"
    }
}

Como puedes ver, la información está organizada dentro de llaves {}, que a su vez puede contener otros niveles de información con llaves interiores.

La página web espera entonces la respuesta. Cuando el sistema de autobuses responde, le puede enviar alguno de estos dos mensajes:

Éxito

{
    "id_pedido": 999999,
    "nombre": "Juan Pérez",
    "estado": "Exito",
    "boleto":{
        "hora": "20:00",
        "fecha": "2023-03-12",
        "autobus": 204,
        "anden": 8,
        "numero": 2678912
    }
}

Falla

{
    "id_pedido": 999999,
    "nombre": "Juan Pérez",
    "estado": "Falla",
    "error":{
        "clave": "ERR_22",
        "mensaje": "Sin corridas disponibles"
    }
}

Teniendo de tu lado estos mensajes, puedes programar la página web para que le muestre al usuario el boleto para descargar por QR code, o un mensaje de disculpa.

Etiquetas de esta entrada:

Cloud Computing, Programación