When discussing the Content Management Interoperability Services (CMIS) standard with organizations, progress is measurable when the developers start asking me if they have to use CMIS.
The answer is of course no. In the recent Forrester report from Cheryl McKinnon on how CMIS is being used in the “real world”, this excerpt explains the balance to be struck.
a large insurance company evaluated CMIS but chose not to use it due to developer comfort with a vendor’s existing application programming interfaces (APIs). However, the technology management team is actively monitoring CMIS for future projects, such as integration between their customer relationship management (CRM) system and ECM repository.
They clearly value CMIS but had a very common decision to make. Use the API we know over the standard we do not know. When do you make the transition?
Bird in the Hand
When I defined the basic use cases of CMIS, I didn’t go in depth on when it might make sense when to not use it. There are a handful of situations where CMIS may not be the ideal choice.
- Detailed Functionality: Sometimes you need access to functions that are present in underlying Content Management System (CMS) that are not in CMIS. If this functionality is needed frequently, using CMIS and the vendor API can be more effort than is needed.
- Existing Expertise: If you have a development team familiar with your vendors API and you don’t need to talk to other CMSs anytime soon, it makes sense to stick with what you know.
- High Performance: When you need to perform one-time operations in massive batches, like migrations and bulk updates, CMIS may not offer the performance as it usually not architected to be efficient by most CMSs. In transactional systems, this isn’t noticeable. In large batch operations, those milliseconds add up quick. Of course, if this one-time functionality is going to be used against multiple CMSs, then CMIS is the right choice.
The discussions I am seeing are starting with CMIS as the answer. The requirements are evaluated and only when it is shown that CMIS is not the answer does the use of native APIs become the answer.
Notice that I didn’t include lack of vendor support. This is because the case for using CMIS is strong regardless. Many organizations are using the Apache Chemistry project to create CMIS interfaces for systems that don’t provide CMIS support. This essentially turns the older systems into a black box that just has to be kept alive. This was highlighted several times in the Forrester report.
If you want to read the full Forrester report, you can download the complimentary Forrester report, courtesy of Alfresco.