¿Qué es el middleware?
El otro día compré esta botella de agua en línea. No pensé mucho al respecto. Hice clic en «comprar ahora» y seguí con mi día. Y para ser honesto, cuando llegó la entrega, vi la caja en mi puerta y tuve que abrir la caja antes de recordar «Oh, eso es correcto, ordené una botella de agua». No hace falta decir que, al menos desde mi punto de vista, obtener esta botella de agua no fue gran cosa. Pero eso es solo porque detrás de escena hay innumerables componentes de software y hardware trabajando en armonía para brindar una experiencia fluida y unificada que hemos llegado a esperar. Permítanme explicarlo.
Índice
El papel del middleware en las compras en línea
Usé una aplicación en mi teléfono que se conecta a la tienda. Desde allí, puedo navegar por esa tienda, que se está interfazando con una base de datos para obtener información sobre los artículos disponibles. Hay un repositorio de imágenes del que puedo extraer elementos para ver los colores y tamaños de la botella de agua. Tal vez haya otro servicio que me permita ver qué artículos podrían estar disponibles para la entrega del día siguiente. El middleware que me trajo mi botella de agua no tiene que ver solo con bases de datos. Cada vez que tienes un servicio que podría ser útil en múltiples situaciones, eso es una posibilidad de usar middleware. Y cuando hago clic en el botón de compra, se comunica con la compañía de mi tarjeta de crédito. Eso es otra caja. Suponiendo que esté todo bien, la información sobre mi botella de agua y dónde debe ir se envía a un almacén y, en última instancia, se envía en un camión para el envío. Hay muchas cosas pasando ahí para mi botella de agua.
Más que solo bases de datos
Estos componentes, y en algunos casos, los componentes dentro de estos componentes, pueden considerarse middleware. El objetivo principal del middleware es proporcionar capacidades a los desarrolladores para que no tengan que construir todo desde cero cada vez que comienzan a trabajar en una nueva solución. Puede que estés pensando: «Una base de datos, eso solo implica leer y escribir datos. No es gran cosa». Pero ¿qué pasa con las situaciones en las que múltiples aplicaciones acceden a la misma pieza de datos al mismo tiempo? ¿Qué pasa con la administración de permisos para asegurarnos de que solo las personas con acceso de lectura vean los datos y solo se actualicen con personas que tengan acceso de escritura? Ahora, ¿qué pasa si tenemos que hacer esto miles de millones de veces al día, todo el día, en una situación donde cualquier error podría ser desastroso? Y donde en un abrir y cerrar de ojos, que es 100 milisegundos, se considera demasiado lento. No creo que nadie quiera responsabilidad de eso. Es por eso que las bases de datos existen como middleware. Podemos dejar que la base de datos se encargue de la complejidad de escalabilidad, rendimiento e integridad de los datos y nosotros manejamos eso a través de un conjunto relativamente simple, o al menos más simple, de interfaces. Coloca estos datos aquí. Obtén estos datos para mí. Borra esta pieza de datos. Estos son solo algunos ejemplos de APIs REST (Application Programming Interfaces). Las APIs son interfaces de programación de aplicaciones que simplifican el acceso al middleware. Con las bases de datos, todo lo que tenemos que hacer es decir «Obtén estos datos para mí». Y con otros datos simplemente podemos decir «Ponlos allí» y así sucesivamente. Podemos dejar que la base de datos se preocupe por toda la comunicación complicada que hay detrás.
El poder de las REST APIs y cómo se llaman
Un tipo específico de API, REST, que significa «REpresentational State Transfer», está ganando popularidad porque pueden ser llamadas desde cualquier lenguaje de programación, en cualquier plataforma de nube híbrida y desde cualquier dispositivo informático. Esta interfaz es una forma más simple de interactuar con el middleware. Las REST APIs utilizan verbos como PUT, GET, POST y DELETE. Por ejemplo, cuando queremos obtener información de un registro, usamos el verbo GET seguido del identificador del registro, como GET 12345. Para crear y actualizar registros utilizamos PUT y POST, que también contienen los datos del registro. Con las REST APIs, la complejidad de las comunicaciones detrás de escena se maneja de manera transparente y no es necesario programar todo desde cero.
Otros tipos de middleware
Ahora bien, el middleware no se limita solo a las bases de datos. Cualquier servicio que pueda ser útil en múltiples situaciones puede considerarse middleware. Uno de los aspectos más difíciles de trabajar en entornos de nube híbrida es asegurarse de que las aplicaciones se comuniquen de manera efectiva. Imagina que tienes cinco aplicaciones que recopilan datos y otras cinco que procesan esos datos. Parece bastante simple, pero la complicación surge cuando las aplicaciones de arriba tardan en procesar y las aplicaciones de abajo tienen nuevos datos que necesitan procesar. Además, cada pieza de datos solo debe procesarse una vez. Podríamos agregar mucha lógica en estas aplicaciones para encontrar una aplicación disponible y transferir los datos, pero también podríamos usar una cola de mensajes, donde los editores o productores colocan los datos en la cola y los consumidores los recogen cuando están disponibles. Con una cola de mensajes, no tenemos que cerrar la comunicación entre estas dos aplicaciones. No importa cuántas aplicaciones tengamos, todo sigue siendo igual. Los datos se colocan en la cola y se sacan cuando es necesario. Este es un buen ejemplo del uso de MQ como middleware.
Otras formas de middleware
Volviendo a la botella de agua y a los procesos automatizados, es probable que haya pasado por una cinta transportadora larga y un brazo robótico u otro mecanismo se activara para colocarla en una caja o contenedor donde pueda continuar su viaje hasta mi puerta. Todo el movimiento y los cálculos necesarios para señalar un elemento en particular, atraparlo, tal vez clasificarlo y colocarle una etiqueta suenan bastante complejos, y también suenan como algo que podría ser utilizado para la reutilización, simplicidad y escalabilidad. Ahí es donde entra en juego el Robotic Middleware, que impulsa toda esa automatización, porque un choque de aplicaciones puede ser malo, pero imagina tener un brazo robótico de dos toneladas chocando con otro brazo robótico de dos toneladas porque alguien intentó escribir su propio código de control de robots. Eso probablemente retrasaría la entrega de mi botella de agua un día o dos. Entonces, como puedes ver, el middleware tiene muchas formas y tamaños.
El rol de los microservicios y la automatización en la nube
Otro aspecto importante es el de los microservicios. Los microservicios son una forma de middleware. Nos permiten verificar el estado de nuestra entrega y ver qué otros productos podrían complementarse bien con nuestra botella de agua. Aunque esto no es parte crucial del panorama general, son lógicas reutilizables que se pueden ofrecer como microservicios y se ajustarán perfectamente a los demás middleware en los que dependemos todos los días. Y si piensas: «Genial, ahora tenemos un montón de código relacionado con los microservicios y tenemos que hacer un seguimiento de todo eso». Bueno, esa es una razón más para que la automatización en la nube cumpla un papel vital en la modernización de las aplicaciones, porque el objetivo de todo esto es dejar que las máquinas se encarguen del trabajo complejo y monótono para que podamos centrarnos en lo que nos hace únicos. Ahora, si me disculpan, hablar tanto me ha dado sed. Si tienen alguna pregunta, por favor deja un comentario. Y si quieren ver más contenido como este en el futuro, por favor denle Me gusta y Suscríbanse. Gracias por leer.
¿Te ha resultado útil??
0 / 0
Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!