Skip to main content

The Three Phases of FESI research

Posted by fossesi on April 27, 2010 at 4:24 PM PDT

FESI Research Program Overview

FESI is the Free and open source software Enterprise Solutions Institute. We are a research program designed to study tomorrow's internet technologies as a means to teach folks in the local workforce how to use technologies our customers will likely want to implement.  We also perform this research to prepare local engineers with the knowledge and skills to help introduce newer technologies into existing enterprises.  Finally, the integration code we create will be uploaded to java.net and available to everyone under the GPL.

To achieve these goals, we will roll out our initial research in three phases: phase one we will complete setting up the research program and introduce members to some of the core technologies we work with, phase two we will construct a web-application using well established technologies, and phase three we will begin replacing the well-established technologies with cutting edge (but proven) technologies.

To get involved please email me or send an e-mail to fossesi.md@gmail.com

Phase one

Phase one is currently under way.  This blog will be where we tell the world how things are going.  Java.net will be where we host our project and source all of our completed code.  Twitter, LinkedIn and Facebook will be used to further help promote our efforts.   We will also use this time to recruit more researchers to FESI. We will invite new members into our program to use the Camel tutorial introducing them to many of the technologies we will be using.  Once we have established all of the administrivia, phase one will be complete. 

Phase two

Phase two is a planning and rapid implementation process.  We will create a sample application using a well-proven existing technologies. To do this we will:

  • implement a schema, triggers, stored procedures and views on a relational database (either MySQL or Oracle),  
  • employ a middleware product to serve numerous java servlets, and old-school struts applications,
  • use hibernate to act as a bridge between the database and the middleware tier, and
  • use the web as our presentation layer. 

Phase two should not last more then a couple of months, as the folks who are interested in FESI will already have experience using these technologies.

Phase three

Phase three will be spent planning the conversion of the servlets and struts applications into a series of endpoints. To do this we will:  

  • replace the struts router with Camel routing and mediation,
  • convert all of the EJB's into endpoint applications,
  • replace backend RMI with JMS,
  • replace the middleware product with Apache Felix,
  • replace the relational database with Cassandra, and
  • move all stored procedures, triggers and views into Java Pojos.

Conclusion

The hands-on approach of actually performing the work on a sample application will teach the skills necessary to fill positions that are opening up at many of our local customers, and will provide the knowledge necessary to help steer the customers in the direction of technologies that work.  Our integration code will be available to the general community, and hopefully will serve as the basis for similar conversions.

This is the initial plan subject to changes based on the desires of the research participants. I expect this program it to take the better part of a year to complete.