Fowler, inversion del control

Quizá es un poco antiguo el artículo, pero ahora que quiero empezar a escribir mi tesis, basada en componentes y contenedores, este artículo me viene genial para saber quién tuvo una de las primeras ideas de cómo implementar contenedores y sus consideraciones asociadas. La «Inversión de control» implica aplicar el Principio de Hollywood a la construcción de software. En EJB y CCM (también en el código de mi tesis, por cierto), y en la mayoría de los _frameworks_ para construir interfaces de usuario, el control no lo toma el programa desarrollado por el usuario (el componente EJB, por ejemplo), sino que lo toma el propio entorno de ejecución, que llama al componente cuando necesita alguna acción por parte del componente o requiere algún dato del mismo.

La comunicación entre contenedor (el que hace de gestor de los componentes) se inicia normalmente estableciendo un contexto de ejecución, en el que se le indican al componente las características del entorno de ejecución (por ejemplo, qué servicios tiene a su disposición, como persistencia, etc.) y continúa con el contenedor llamando a las operaciones implementadas por el componente cada vez que se requiere su ejecución.

En los entornos distribuidos (en concreto de componentes distribuidos), esta inversión se da a muchos niveles. Por ejemplo, para cada interfaz se genera un _stub_ y un _skeleton_. Este último llama a las operaciones implementadas por el componente cuando un cliente requiere que se ejecuten (esto es, una llamada llega por la red). De hecho, este principio es el más básico de todos los sistemas remotos, desde RPC de Sun hasta CORBA y su modelo de componentes (CCM).

blog comments powered by Disqus