The domain model is implemented with Plain Old Java Objects (POJOs) enhanced with Hibernate Annotations in order to persist
domain objects. The service layer and DAO layer are enhanced with the aspect layer. We engrid the aspect layer from the service and dao layer
because aspects are cross cutting concerns which can be used over different layers. In order to use the advice layer we define proxies
for our DAOs and Service objects by using Spring.
The interface between service and presentation layer is the controller layer. This is an important point, because a controller is not a GUI
component, such as a listener. The main task of a controller is to prepare data for the service layer, call it and doing further application
flow. The presentation layer and controller layer are based on JSF (Java Server Faces). We introduce a JsfBeanManager, which provides methods
to get and set managed beans in the JSF context. All web pages are implemented as Java Server Pages (JSPs) using JSF tags.