Beyond the features and look and feel of ECM user interfaces discussed in our initial posts, we recognize the importance of a stable and robust development environment necessary to facilitate the customization, support and maintenance of an ECM platform. We also recognize that organizations who use Documentum today likely employ staff with Documentum specific skill sets, and they are probably wondering how these skills might transfer into the Alfresco world. This post provides an overview of the commonalities and differences between both development environments.
Development Framework
Documentum Webtop supports the EMC Web Development Kit (WDK), while Documentum CenterStage will have a Web Services SDK (not yet available). Alfresco Share supports the Surf development framework.
- Key Commonality: Both are Java based so programming skills will transfer with a small amount of training and practice. Standard Java IDE’s can be used for development and packaging of code.
- Key Difference: Looking at the latest and greatest web applications for each platform, Alfresco Share has a development environment to facilitate configuration and customization of the web interface, while Documentum CenterStage framework is still an unknown. This is concerning since most organizations desire some level of customization to meet their specific user needs.
- Key Difference: EMC’s WDK is proprietary and specific only to Documentum. Alfresco’s Surf is open source and has been integrated as part of the generic SpringSource project, enabling the development community to grow beyond Alfresco.
API Interface
Documentum supports the Documentum Foundation Classes (DFC). Alfresco supports the Alfresco Repository Foundation Services.
- Key Commonality: Both are Java based
- Key Commonality: Both are extensive API sets that allow developers to tap into all features of the platform
- Key Difference: DFC can be deployed remotely from the Documentum Content Server and can be integrated directly into web application code. The Alfresco services can only run within the Alfresco server JVM and must be exposed through a web service in order to be called from a web application. The advantage of the DFC approach is that development errors can be caught at code compile time. The advantage of the Alfresco services is that they reside in just one place, so web applications do not need to be re-deployed or re-compiled when upgrading.
- Key Difference: The Alfresco services have not been around as long as DFC, so documentation is not as extensive
Web Service Interface
Documentum’s primary web service interface is the Documentum Foundation Services (DFS). Alfresco’s primary interface is through Alfresco Web Scripts.
- Key Commonality: Both are Java based
- Key Commonality: Both support TSG’s OpenContent generic ECM web service interface, allowing any web application developed using OpenContent to run on both platforms. For organizations who would like to leave the option open to migrate to Alfresco one day, we strongly recommend utilizing our open source OpenContent offering.
- Key Commonality: Both support CMIS standardized ECM web services, however functionality exposed through CMIS is extremely limited at this time.
- Key Difference: DFS is SOAP based while Alfresco Web Scripts are REST based
- Key Difference: DFS is proprietary to EMC and can not be customized or extended in any way. Alfresco Web Scripts are open source and are designed to be extended and easily shared within the Alfresco community.
- Key Difference: DFS is not as extensive as DFC, although functionality provided through DFS has been expanding in recent years. Out of the box Alfresco Web Scripts are limited; however community Web Scripts are available to expose the complete set of Alfresco Repository Foundation Services.
Query Interface
Documentum supports the Documentum Query Language (DQL). Alfresco supports Lucene XPath.
- Key Difference: DQL queries directly against the underlying Documentum relational database. Alfresco’s query interface hits the Lucene index. There are advantages and disadvantages of both approaches. With DQL, you can execute both read and write queries, while Lucene XPath is read only. Querying against Lucene has some performance benefits since the index is separate from the underlying Alfresco relational database.
- Key Difference: DQL is proprietary to EMC. Lucene is an open source solution that can be leveraged outside of Alfresco.
Repository Configuration
Documentum repository configurations (i.e. Object Model setup) are managed through Documentum Application Builder or Composer software. Alfresco repository configurations are made through direct updates to XML.
- Key Difference: Documentum Application Builder and Composer provide a user interface for making repository configurations, however it requires these software components to be installed on the developer’s PC in order to view configurations or make updates.
Development Community
- Key Commonality: Both have a strong community presence accessible via Forums, Wikis and Blogs on the web.
- Key Difference: Alfresco has tapped into the open source community which encourages developers to share solutions and expertise. Although we at TSG are clearly very supportive of the open source mentality, appropriate expectations should be set regarding the nature of the development community and product support. Having an open source community provides more opportunities for developers to contribute and control precise technical behavior of the system. On the flipside, it’s not possible for managers to hold one person or vendor accountable for how system features are implemented.
See related posts regarding Documentum to Alfresco migration.
[…] Development Environment […]