Portal UI Architecture
Portal UI Layers
The figure below shows the major portal UI projects
and how they depend on each other. (For an introduction to the portal
page design, see Portal
Page Layout.)
 |
Open Foundation
Open Foundation provides a common library of objects used to automatically
convert code to C#. Written in both Java and C#, this layer wraps the
Java JDK and the .NET SDK and abstracts the differences between them.
It provides a common interface and a common implementation of the base
classes. All portal UI projects are written in Java using Open Foundation
and converted ("jumped") to C#. For a list of interfaces and
methods, see the Open Foundation API documentation.
UI Infrastructure
UI Infrastructure contains the majority of the portal infrastructure
code and a number of frameworks. The project includes the following modules:
HTML Elements and Constructs, Activity
Space, Warmup Servlet, Editor Framework, Tree Control. These components
are independent from the Portal Server and are implemented as a generic
infrastructure that works with any Web application. All portal UI projects
use UI Infrastructure. For a list of interfaces and methods, see the uiinfrastructure API
documentation.
|
Portal UI Infrastructure
Portal UI Infrastructure is another level of infrastructure and frameworks
that mirrors UI Infrastructure and contains the implementation that depends
on the Portal Server API. For example, the implementation of the tree
in the UI Infrastructure project is a generic tree of items, whereas the
version of the tree in Portal UI Infrastructure is a tree of PTObjects
(i.e., Users, Groups, Content Crawlers, etc.).
Portal Pages
Portal Pages contains the source code for most of the portal's end-user
pages. This project is divided into three main categories: admin pages
(pages under Administration), browsing pages (end-user pages that do not
appear under Administration) and common pages (pages common to both Administration
and end-user browsing). Within these three categories, packages are separated
into feature groups, e.g., browsing.login, admin.editors.group , common.search.
There are many reasons the portal UI is built using a layered approach:
- Unified Code Base:
The entire portal UI is written in Java and automatically converted to
C# using a proprietary tool built specifically for the portal. Both versions
of the UI undergo equal testing. Their level of quality is equivalent
and they offer the exact same set of features.
- MVC Architecture:
All UI source code is implemented following the Model-View-Control (MVC)
design pattern. Separating presentation from logic makes front-end customization
simpler, and facilitates upgrades when a new version of the portal becomes
available. For more details on the MVC design pattern, see the next page,
MVC Architecture.
- Object-Oriented
Code: All UI source code is written in object-oriented and compiled
code (Java or C#). As a consequence, there is no JSP or ASP. Object-oriented
code has a number of advantages; the most important for the portal are
upgrading, refactoring and maintenance.
- Strong Infrastructure
and Frameworks: Several UI projects are specifically dedicated
to infrastructure, frameworks and reusable components. Examples include
the Activity Space
framework, PEIs,
and Dynamic
Discovery. These projects are extensively tested and should be leveraged
as much as possible when customizing the UI.