This page exists to capture an overview of the uPortal framework architecture, child pages should be added for detailed descriptions of various parts of the framework.
High Level Architecture
- Tiers & Coloring
- The blue tiers (1-3) are APIs where the HttpServletRequest is a primary argument.
- The green tier (4) are APIs where there is NO reference to high level objects like HttpServletRequest
- CRUD style data access objects, generally implemented in JPA2.
- DAOs contain no business logic or dependencies on higher level structures like the request or response objects
- Their only role is to provide coherent lifecycle management of persistent data objects for uPortal.
- The business logic for the DAOs, in general each DAO or group of related DAOs has a registry layer above it.
- Contain commonly used helper methods to reduce duplicate code in other parts of the framework that perform similar operations. For example the PortletEntityRegistry might have a method that looks like:
getOrCreatePortletEntityForLayoutNode(IPerson user, String layoutNode)The implementation would talk to the layout manager, portlet definition registry and portlet entity DAO to come up with the right answer.
- Internal services such as Groups, Permissions, Person Directory. These have some interaction with registries for portal specific or locally managed data but also integrate with external systems.
- Rendering Pipeline
- Pulls together user layouts, xslt transformations and portlet data into a coherent package.
- Interacts with Registries and Services for data, and Portlet Execution Management for portlet content.
- Portlet Execution Management
- Manages direct and async portlet execution
- Interacts with Registries and Pluto SPI to effect execution
- Pluto SPI Implementation
- Implments the Pluto Service API providing hooks from the Portlet APIs back into uPortal services
- WebMVC Controllers
- The front end that user's interact with, contains controller logic that talks to Services, Registries and other 2nd tier components to source data
- Data Import & Export
- Utilities for data migration services.
- These utilities interact directly with the DAO layer, bypassing all of the services, registries, etc.