EP2005 > CPS Portlets : architecture overview

Julien Anguenot <ja@nuxeo.com>
29 Juin 2005


OUTLINE



History Framework orthogonality CPSPortlet architecture Cache and performances Summary

2


History


CMF main_template and macros CPSBoxes CPS-3.0 -> 3.2


macro based system sucks ! a mess to maintain (pb of skins overrides) no need to reinvent the wheel all the time. CPS / EPR5 sprint in Paris 2004 CPS3 / CPSSkins integration New design ! major refactoring Chalmers / Nuxeo development See Jean-Marc's presentation
3



CPSPortlets




CPSSkins / CPSPortlets



0rthogonality


CPSSchemas based


reuse of schemas / layouts / vocabularies in between documents, directories and portlets





Unification of the CPS3 architecture Only one concept to learn now to integrate on CPS. PlonePortlets uses the same paradigm with AT.

4


CPS Portlet


Cope only with portlet content


CPSSkins will cope with portlet decorations (JSR168)





Content type object CPSDocument base class (FTI) Specific API extensions (such as RAM Cache) Schema-based Could be even workflowed ;)

5


Portlet architecture overview

6


Portlets repository


Central repository (portal_cpsportlets)




visible in all sub-folder by default has a tendency to increase in the tree basement displayed inside the theme overrides (unless explictly disallowed) placeful configuration displayed inside the theme's slots rulez



Local portlet containers




Security and portlet management delegation in place.
7


Cache for performances


RAM cache integrated on portlets




stored wihin dicts {(index,...), value), ...} tuple index represents the cached object index is composed by (object_path, attr1, attr2, ...., attrn) see cache parameters index is a way to identify the object's context setEntry(), getEntry(), deleteEntry() invalidate() getStats(), getReport(), getSize(), getLastCleanup()



C a ch e




Lazy invalidation Invalidation event service based Decrease seriously rendering time

8


Summary




Major performance improvements with the caches Sexy interface ;) Enhance user experience Architecture unification For documentation see


http://svn.nuxeo.org/pub/CPSPortlets/trunk/d oc/

9