Plataformas middleware

Bonito nombre, plataformas middleware.

Me he querido plantear para este post un reto: mostrar a los profanos de la informática qué es lo que comúnmente se conoce como ‘middleware’, y a los que ya estamos entraditos en el mundo de los binarios, algún ejemplo real de las últimas tecnologías de este tipo.

Bien, partiendo de que todos los que leáis esto sabéis por lo menos qué es el software y qué el hardware, podemos decir que la parte middleware es una capa intermedia, abstracta, situada entre dos niveles funcionales de una computadora (o varias computadoras), que permite conectar los servicios que ofrece uno de ellos para que puedan ser utilizados por el otro.

Esto, dicho así, puede parecer muy duro, pero se entiende fácilmente si pensamos, a nivel de programación, en un sistema operativo.  De una forma bastante bruta, un sistema operativo no es más que el software que permite al programador utilizar los servicios que ofrece el hardware de la computadora.
Imaginemos, pues, intentar abrir un archivo sin utilizar la API que éste ofrece: tendríamos, en primer lugar, que leer la tabla de localización de los bloques de disco para poder leer el contenido del archivo.  Esta tabla, sería diferente si se programa sobre Windows, UNIX ó MAC.  Luego tendríamos que manejar los accesos al disco duro ‘a pelo’ manejando los cabezales, los tamaños de los clusters, etc…
Esto es lo que proporciona un middleware: abstracción.  Encapsular los detalles del manejo de un determinado procedimiento en una simple función; en nuestro caso, esta función sería similar a un FileOpen, fopen u open a secas, en la que simplemente indicamos el nombre del archivo y el sistema operativo ya se encargará del resto.

Un S.O. es un ejemplo, pero en realidad existen infinidad de lugares dentro del amplio mundo de la informática en los que cabe utilizar una plataforma que haga las funciones de un middleware.  A distintos niveles, podríamos nombrar varias, aunque hay más:

  • A nivel del propio computador, encontramos la BIOS, que maneja los dispositivos físicos al más bajo nivel, ofreciendo el manejo de la memoria, los discos (IDE, …), la caché, el vídeo estándar, etc… También están los conocidos controladores o drivers, que se encargan de ampliar la funcionalidad de la BIOS para aquellos dispositivos que no le son conocidos.
  • Ya a un nivel mucho más alto, tenemos, por ejemplo los servidores de aplicaciones, como es el caso de Tuxedo, que se encargan de abstraer tareas tan tediosas como la sincronización o comunicación entre procesos, u ocultar actividades complejas como la transaccionalidad en bases de datos distribuidas.
  • Por poner un último ejemplo, en los últimos tiempos han aparecido plataformas middleware de más alto nivel, que permiten crear aplicaciones que se ejecutan parcialmente en cientos o miles de computadoras, pero que permiten verlas desde el exterior como una única aplicación.  Estos sistemas permiten crear aplicaciones que procesan millones de datos concurrentemente de forma distribuida, como si de un único ordenador se tratara.  Ejemplo de estas plataformas podrían ser Alchemi o ProActive, cuya popularidad está creciendo enormemente en los campos de la ingeniería.

En el próximo post hablaré de ProActive, una conocida mía que me ha salvado el culo en alguna ocasión.

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.