ConfAIt es un framework destinado al desarrollo de componentes auto configurados. La idea es proporcionar un marco de trabajo común para estos componentes y definir las reglas que deben seguir para que ConfAIt pueda modificar su comportamiento en tiempo de ejecución.
ConfAIt es, entre otras cosas, un agente inteligente. Empleando un algoritmo genético intentará adaptarse en cada caso a la carga de trabajo que tenga el componente, proponiendo modificaciones en sus parámetros de configuración.
El agente de configuración propondrá regularmente cambios de configuración al componente. Para poder hacerlo, es necesario que los componentes proporcionen información sobre su comportamiento, en particular:
Si tenemos un componente desarrollado, y deseamos incorporar la capacidad de auto configuración mediante ConfAIt, los pasos a seguir son:
com.fnbrito.ai.config.ConfigurationChangecom.fnbrito.ai.config.FitnessFunction. El objetivo de la función será puntuar numéricamente un
conjunto de cambios propuestos por el agente, de manera que mayor puntuación implique cambios más adecuados. Ésta es, sin duda la parte más difícil, y requerirá algo de práctica y ensayo.
com.fnbrito.ai.config.Configurable. En el constructor habrá que instanciar un com.fnbrito.ai.config.ConfiguratorAgent.
La mejor manera de entender el funcionamiento es viendo un componente desarrollado.
Por eso se ha incluído en el cvs un componente de ThreadPool, en el paquete com.fnbrito.pita,
y una versión auto configurable del mismo, en el paquete com.fnbrito.pita.configurable,
que gracias a maven y XRef se pueden consultar en html navegable ;-)
De momento ConfAIt es un proyecto en pleno desarrollo. El código está escrito, aunque aún no puede considerarse estable. Puede que se produzcan cambios en la API a medida que las ideas maduren. Igualmente, la única manera de acceder ConfAIt a día de hoy es mediante el CVS. Echad un vistazo a la página del proyecto y colaborad en él si os parece interesante. Hay mucho por hacer, por ejemplo: