There are two versions of the eXo platform distribution - the express
and the enterprise editions. The choice of one of those depends on your requirements
and resources.
Both versions are based on the same architecture that is composed of several modules.

- The services container. It provides an Inversion of Control
(IoC)
mechanism to allow efficient services dependencies resolutions.
Each middleware component - such as database or Enterprise JavaBean (EJB) access service - is then
abstracted and separated from its implementation. This powerfull arcitecture allows a loose coupling
stack of components which increase the maintanability of the whole platform.
- The Content Management System (CMS). It provides a hierarchy organization of binary objects
that can be stored in any database or a file system with a small and easy amount of code to implement
for each storage system. In other words, to store XML documents, a native XML database can be used
while objects can be stored either in a relational database or in an object database.
Note that the eXo platform development team will
implement the Java standardisation specifications in this area
(JSR 170) as soon as they are available.
- The Portlet Container. It is a CERTIFIIED Open Source implementation of
the portlet API specification
(JSR 168). The module manages
the lifecycle and lazy instantiation of portlet components. The implementation has been
optimized with cache, pooling and shared session features as well as efficient monitoring
capabilities to provide a powerfull production environement.
- The Portal. Our portal is based on Java Server Faces
(JSR-127), which is a new web framework
paradigm. It provides a real Model-View-Controller (MVC) reference architecture allowing developers to
deal with components and events on the web layer almost in the same way as they would with rich Swing
clients. The portal interacts with the portlet container in order to get the portlet contents,
it is then responsible of the
aggregation of those web components in the page.
