Fundamentos

Como se desprende de su propio nombre, AFRYCA es un framework destinado al análisis de los procesos de consenso. El desarrollo de un framework implica tomar importantes decisiones en su diseño que hacen que su arquitectura pueda resultar inicialmente un tanto confusa si no se ha trabajado con aplicaciones similares.

No obstante, tras una breve conocimiento de los fundamentos sobre los que se construye la herramienta, es fácil comprender las grandes ventajas que su arquitectura brinda para llevar a cabo tareas usualmente costosas como ampliaciones, modificaciones o adaptaciones.

Cualquier usuario que destine un tiempo a analizar los fundamentos de AFRYCA encontrará que:

  • Puede añadir nuevas funcionalidades a la aplicación sin necesidad de modificar el código existente.
  • Puede desarrollar aplicaciones a medida empleando la funcionalidad de AFRYCA.
  • Puede utilizar partes de las funcionalidades ofrecidas por AFRYCA para crear nuevas herramientas.
  • Puede utilizar casi cualquier algoritmo desde el entorno de scripting de la aplicación.

Por ello, desde el equipo le animamos a que conozca los fundamentos y pueda beneficiarse de toda la potencia del framework.

AFRYCA se ha desarrollado como una aplicación Eclipse RCP de la rama E4 y la mayor parte de los conocimientos que será necesario adquirir serán relativos a estas herramientas.

Entorno de desarrollo de AFRYCA

A continuación se incluye una breve guía de referencia que, desde el equipo de AFRYCA, creemos que será de utilidad para una rápida asimilación de los fundamentos necesarios.

Java

Como aplicación Eclipse RCP, AFRYCA es una aplicación Java, por lo que lógicamente será necesario saber desenvolverse con este lenguaje de programación. Casi con total seguridad se puede afirmar que Java es a día de hoy el lenguaje de programación más conocido y utilizado, siendo posible encontrar miles de recursos gratuitos de forma sencilla en todo tipo de formato. Por ello, desde el equipo de AFRYCA invitamos a que se busque aquel material más apropiado para cada tipo de usuario.

No obstante, aquellos usuarios que no tengan ninguna experiencia, pueden partir si así lo desean desde alguno de los libros reseñados en el siguiente enlace

OSGi

Las aplicaciones Eclipse RCP son aplicaciones que emplean una arquitectura de componentes, recibiendo cada uno de los componentes usado en la aplicación el nombre de Eclipse Plug-in o simplemente plugin. Los plugins de Eclipse están estrechamente relacionados con la especificación OSGi, siendo además ampliamente utilizados en E4 algunos conceptos de OSGi. Por ello, y aunque no es estrictamente necesario, es recomendable adquirir un conocimiento de la especificación OSGi antes de comenzar a trabajar con Eclipse RCP.

Eclipse Plug-ins

La mayor parte de los conocimientos que será necesario adquirir serán los relativos al desarrollo de plugins para Eclipse. Actualmente, casi todos los recursos disponibles para aprender a desarrollar plugins Eclipse se centran en la rama 3.X, siendo AFRYCA un framework desarrollado usando la rama E4. No obstante, la amplia mayoría de los conceptos usados en la rama 3.X siguen siendo aplicables a la rama E4, la cual en esencia lo que hace es una adaptación de los conceptos a los nuevos paradigmas de desarrollo (inyección de dependencias, diseño CSS, servicios declarativos, etc). Por ello, cualquier material que aborde el desarrollo de plugins Eclipse desde su versión 3.X será totalmente válido para adquirir los conocimientos necesarios.

Eclipse RCP

Aún siendo AFRYCA una herramienta Eclipse RCP, la adquisición de los conceptos relativos a esta tecnología será únicamente una pequeña parte del proceso de aprendizaje, pues en esencia, una aplicación Eclipse RCP es una aplicación desarrollada a partir de un conjunto de plugins Eclipse organizados de un modo particular. En este punto, es recomendable que se utilice como material de apoyo únicamente recursos centrados en el desarrollo de aplicaciones Eclipse RCP en la rama E4, pues las diferencias son significativas respecto a las versiones previas.