ene 2

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.

sep 14

Kumbia, framwork para php 5

Saludos espartanos,

Hoy os hablaremos de un framework desarrollado por hispano-hablantes para php5, kumbia.

(copio-pego de su página de inicio)

¿Qué es kumbia Framework?

Kumbia es un web framework libre escrito en PHP5. Basado en las mejores prácticas de desarrollo web, usado en software comercial y educativo, Kumbia fomenta la velocidad y eficiencia en la creación y mantenimiento de aplicaciones web, reemplazando tareas de codificación repetitivas por poder, control y placer.

Sus principales características son:

  • Sistema de Plantillas sencillo
  • Administración de Cache
  • Scaffolding Avanzado
  • Modelo de Objetos y Separación MVC
  • Soporte para AJAX
  • Generación de Formularios
  • Componentes Gráficos
  • Seguridad

y muchas cosas más.

Adicional a esto Kumbia integra lo mejor de la Web en un solo framework para producir las aplicaciones Web del mañana (prototypejs, phpMailer, Smarty, FPDF, Script.aculo.us)

Yo lo he estado mirando y tiene muy buena pinta. Utiliza los patrones de diseño más populares, como Active Record y MVP. Además, tienen un manual muy currado en español que ayuda a comprenderlo. Recomendamos a todo desarrollador que le eche un vistazo.

Como dicen en su web: “Kumbia puede ser la solución que estabas esperando!”

En somosespartanos alzamos nuestros escudos en señal de aprobación (¡¡HUA HUA HUA!!).