Friday May 11, 2007
Ruchi Goel 's WeblogRuchi Goel's Weblog Designing CMS infrastructure using JSR170 standards and opensource technologies Historically , Portal Server (PS) and Content Management Server (CMS) had been thought of as two independent giant web applications , where former deals with aggregation and presentation of content from various sources while later is primarily storage and management of content. In the market , there are individual vendors who expertise in these respective domains. But for an enterprise system , both the applications are equally required and that is where the problem comes when the customers need to depend on PS from one vendor and CMS from some other or depend on one vendor which provides them an integrated solution. But this is tedious and complicated process , since both the applications are independent and kind of proprietary. e.g. The portal vendor can give OOTB integrated solution with one or two CMS , but not all ,obviously due to high costs involved. Each of the CMS is proprietary and Portal vendor will have to pay huge money if they need integration with each of these CMS , which no doubt comes along with support problems and incomplete features exposure. That is where we in Sun Portal team , were forced to think of a CMS solution OOTB. Initially, I evaluated various Open Source CMS systems which we thought can integrate with Sun Portal , but each has its own constraints in terms of feature exposure and require lot of contribution which I thought , might exceed the effort of writing our own CMS system. Thanks to JSR170 standards (also known as jcr standards) , which I would like to clarify in the very begining are NOT standards for Content Management , but they ARE standards for Content Repository. A brief introduction to these standards in form of presentation was in my previous blog titled "overview of java content repository (JSR170)". So ideally, these standards deal with hierarchical arrangement of content which can be stored on File System, Database, XML backed repository etc. These standards expose API for versioning , storage and retrieval , locking , observation , Search (both Xpath and SQL based) . If you see, it provides quite a lot of exposure for a novice to start writing a content management system on his own. The best thing is while you are designing your CMS , you do not need to start thinking of actual storage system . The only part which is missing is WORKFLOW , which falls ideally under content management , rather than content repository , and that is the reason , it is left out from the standards. For workflow, one can depend on external Open Source workflow systems and integrate with them. We decided to go with all OS technologies in designing our CMS system. In terms of choice of JSR170 implementation , we chose apache's Jackrabbit which is RI for JSR170. The implementation is not yet fully matured and has quite a bit of issues , but as per my evaluation, by far the most trusted and active Open Source implementation of JSR170. The good part is one does not need to directly deal with low level implementation of JSR170. Apache has a jcr-mapping layer ( called Object Content Management System "OCM") based out of apache's CMS framework called "Graffito." Graffito is a dead project now due to lack of activity but OCM is an active project and is now part of Jackrabbit . OCM is very similar to age old object-relational mapping , except that here, plain java objects are mapped to jcr (java content repository) nodes, where nodes can eventually be stored in database or File System , based on configuration. So, once we have our CMS nodes and plain java objects design , as required by jcr-mapping layer in place , we were pretty much ready to go with the basic CMS stuff . That can be termed as CMS infrastructure. Now to make it part of our portal system, we needed to expose the CMS functionality via portlets . We have done the above for Document Library. The interesting part is that we expose CMS functionality via tag libraries where anyone can use them and decide the CMS presentation on their own. For this we have netbeans plugin . Check this out at CMSDemo This CMS solution is in progress and we plan to enhance it further for Article Management , Jobs Management and Ad Management. (2007-05-11 02:29:45.0) PermalinkIntroducing CMS infrastructure with OpenPortal and NetBeans Open Portal will soon have a Content Management System (CMS) infrastructure and an open cms out of the box . This CMS, currently implemented as Document Management System, is JSR170 (jcr standards) compliant and uses Apache's Jackrabbit and Object Content Mapping (OCM) . The interesting part is that Document Management functionality is exposed via tag libraries where the tags can be dragged and dropped in portlet page and developer can have his own CMS presentation . For this we have netbeans plugin . Check this out at CMSDemo . This CMS solution is in progress and we plan to enhance it further for Article Management , Jobs Management and Ad Management. (2007-05-08 02:49:35.0) Permalink |
Calendar
RSS Feeds
All /General /Java /Music SearchLinks
NavigationReferersToday's Page Hits: 3 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||