System Architecture

Jan Moxter edited this page May 4, 2016 · 10 revisions


eFaps uses a variation of the Three-tier architecture. (see Wikipedia for basic explanations).

Presentation tier

The Standard User interface can be accessed by using one of the current Browsers like Firefox, Chrome etc. As an alternative the eFaps-Console can be used for administrative Functions. For delivering the Webinterface Apache Wicket is used as main component. The console is connected to the middle tier via RESTful Web services by using Jersey.

Middle tier

The eFaps-Kernel provides the middle tier. It uses the CI-Items (Configuration Items) to provide logic, type hierarchy, access control, user interface definition etc.


To reduce the traffic to the database and speed up the processing and response times [Infinispan] ( is used as Caching mechanism.

Data tier

For the data tier various different Databases that work with [SQL] ( (SQL-92) can be used. Up to date MySQL, Derby, Oracle and PostgreSQL where used in different implementation. The use of PostgreSQL is highly recommended due to the reason that it is used mainly during development and provides the most used implementations.


Request Example

This is just a very simple example how a sequence of request might by running through the different levels.

  1. A User asks "Get all Invoices and show their document number and total" by interacting with a Browser
  2. The kernel retrieves the request and translates it in the language for the database to get the objects
  3. The database returns the list of objects
  4. Kernel validates the access to the returned objects by request access rights from the database
  5. Database returns access rights for objects
  6. Kernel caches access rights
  7. Kernel requests object information based on the access rights from database
  8. Database returns object information
  9. Kernel sends information to Userinterface

Due to the use of the Caching mechanism the response time to a second request containing a similar User question can be reduced strongly.

Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.