One of the core strengths of the Alfresco repository has been its ability to extend the platform and create custom RESTful APIs using Web Scripts. Whether they are Java Script or Java based, leveraging Web Scripts is an easy way to access the repository to integrate with 3rd party systems, create feeds, etc. However, lately working with clients and on internal projects, we have also been leveraging alternative ways from which to access the repository which may conform to other architectural standards within an organization.
The introduction of Alfresco Subsytems in Alfresco 3.0 has proved to be immensely flexible in providing a key integration point into an Alfresco repository. Any set of code called from a subsystem essentially can access direct Alfresco Java APIs, sharing the same JVM the repository is running on. This bodes well for performance and scalability.
OpenMigrate originally leveraged WebScripts to migrate content into the repository. However, to increase performance, particularly during an ingestion process into the repository, OpenMigrate runs much faster when run as an Alfresco Subsystem. Recently, in expanding the features with our HPI interface, we have now also exposed our OpenContent services by deploying them as well within an Alfresco Subsystem. By doing this, we have been able to access Alfresco Java APIs without the need to go through another layer (Web Scripts). Now, most of our open source solutions, HPI, OpenAnnotate, OpenScan, etc. may be able to leverage OpenContent via the Subsystem directly and mostly likely benefit from performance gains or have access to functionality which is easily accessible via the direct Java API.
Working with a client recently, they had already invested in creating a robust REST-based Service Oriented Architecture leveraging Apache CXF. Alfresco was to be utilized purely as a repository providing services to other front-ends. Initially, Java-backed Web Scripts would be the initial approach, taking into account performance and eventual ingestion and query load. However, upon further analysis, once Apache CXF was brought up, it was determined that Alfresco’s CMIS implementation also leveraged Apache CXF, hence were able to follow a similar architectural approach as their other services.
Another great example of the accessibility of the Alfresco platform.
[…] take advantage of authentication and retrieval of content in a very easy manner (and it was even embedded into Alfresco, so we didn’t even have to start up a separate instance of OpenContent!). Unfortunately, we […]