Saturday, January 9, 2010

Building Solutions on top of Alfresco

Alfresco offers several products from its entire solution framework such as Document Management, Web Content Management, Collaboration. Furthermore, and more powerfully it offers the Content as Platform and Service.

This makes building your own business ready solution development very easy. As said in there area few features that developers like - what Alfresco has successfully achieved is exposing most (if not all) of its functionalities as REST services over HTTP. The source code bundle of Alfresco comes with around 300+ REST services, using which developers can very quickly implement a new solution altogether, and can integrate Alfresco in existing stack in a very loosely coupled SOA based architecture.

There are several models of building solutions on top of and using Alfresco. I will discuss one of the models here. It uses Alfresco REST services (more popularly known as Web Scripts).

In this model, Alfresco would act as a Content Database exposing various services and APIs to architect and develop solutions on top of it. Several services has been exposed such as Content (Nodes), Workflow, Rules, Security, Session, Thumbnail, Content Model etc. More importantly these services has been exposed as JavaScript API ( making it very easy for developers to implement different functionalities.

Using several JavaScript and/or Java services and APIs provided by the Alfresco engine, we can create REST services which can be invoked by any Client Application (irrespective of underlying technology on which the client application is implemented). In this way, we can implement a new client application altogether or we can add Alfresco's rich CMS and other functionalities in any existing systems.

This methodology can be also used in order to implement SOA architecture based systems in existing infrastructure.