Child pages
  • FenixEdu Common Architecture
Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

Introduction

The FenixEdu Architecture is how most of the development made in by our FenixEdu team, and for the project as a whole. It comprises the technologies that we use and how you can extend our applications for your organisation needs. Most applications have a great number of dependencies and uses several technologies that have been added to the project along with its development. Instead of talking about all of them we will just mention some of the more important ones to our architecture and its use will be described has we explain our architecture. 

  • Java 8
  • Java Server Pages
  • Java Server Faces
  • Struts
  • Maven
  • MySQL
  • Fenix Framework
  • Bennu
  • Bennu Renders

 

Application Structure

Virtually all FenixEdu applications have been developed using a Model-View-Controller structure. 

Persistence

As you can see from the image, the same domain model is used across all the application code, this enables us to have a simpler architecture and is possible thanks to the use of Fenix Framework. 

 

Fenix Framework is a Java ORM that enables you to express the domain model as entities, the relations between the entities and its attributes. After having this specification, the framework automatically creates the Classes that implement the existing relations. You just have extend that classes and implement the application logic. 

 

The framework takes care of the persistency layer, saving the changes to the entities on the database (MySQL). It also handles the transactions and provides ways to ensure consistency. All the data is kept on memory and the transactions are also done on memory. The updates done are saved on the database from time to time. 

Web Framework

Virtually all FenixEdu applications have a Model-View-Controller structure. 

Modularisation

Virtually all FenixEdu applications have a Model-View-Controller structure. 

  • No labels