HTML and CSS Reference
Figure 13-12. Mega App high-level components
As shown in the previous figure, the application has the following high-level components:
Facelets pages: They represent the Mega App pages. They use both the backing beans and
JPA beans (which are managed using CDI) via the JSF expression language (EL). They also
utilize the application Facelets templates.
Facelets Templates: They represent the templates that are used by the application pages.
In Mega App, there are two templates (one for the public pages and the other for the
Backing Beans: They are normal managed beans that are conceptually related to the UI
pages and are not part of the application model. Backing beans are ideal for centralizing
the handling of the page actions (sometimes backing beans are called controller classes).
In Mega App, backing beans mainly use the JPA CDI managed beans to call the Business
Manager (Service) EJBs in order to perform the required operation(s).
Business Manager EJBs: In order to perform the business operations, backing beans call
Business Manager EJBs. Business Manager EJBs are stateless session EJBs which use
the JPA entities and the JPA EntityManager in order to perform the required database
operations. In Mega App, we have the following business manager EJBs:
Book Manager EJB to handle the topic management operations such as (
updateBook , deleteBook , getBookInformation . . . etc).
Book Request Manager EJB to handle the topic request flow operations (
approveBookRequest , and viewRequests ).
MegaUser Manager EJB to handle the Mega App user management operations
( getMegaUser , retrieveMegaUsers , registerMegaUser , removeMegaUser ).
JPA Entities (CDI managed beans): JPA entities represent the data classes that map to the
database tables. In Mega App, the JPA entities are used as the application's CDI managed
beans which are binded with the Facelets pages using EL.