Craig Randall recently posted how he was presenting on Building Content-Enabled Applications at EMC World, at least until he was downed by injury. Regardless of his injury, this is a topic of great interest to me and I had a few conversations over the past year with him on the topic. I wanted to chime in on his post to both amplify it and see if we can get some dialog going in advance of the conference.
What is a Content-Enabled Application?
There are too many names for them, and most are dull. The Big Men (recently in this post) and I have talked about CEVAs (Content-Enabled Vertical Applications) previously and I’ve tossed around the term Content Rich Applications. Craig refers to Forrester and their concept of Content-Centric Applications. It is all enough to make your head spin.
I think Craig simplifies it all down to one core description that will work for our discussion. Content-enabled applications should facilitate the convergence of content, collaboration, interaction, and process. Applications that do that are going to be successful. Content is an aspect of the application, not the center.
Let’s take my favorite generic Content-Enabled Application, Case Management, as an example.
- Something triggers the creation of the case, typically at a central location. For correspondence this could be the front-office. In other case management systems, it could be anywhere in the organization.
- Following defined business rules, the case is routed around until the person that is going to primarily work on the case is assigned. Note that this step can actually occur multiple times with defined routing in-between.
- The case officer, for want of a better generic term, collaborates with colleagues and researches past cases that were similar to the current one in order to prepare the response. This is where Enterprise 2.0 technologies and “traditional” collaborative spaces (like eRoom and SharePoint) would be leveraged.
- Once completed, it enters another defined route to either the next case officer, through an approval process, or a combination of the two. Electronic signatures are key in this process (as is eNotarization).
An application to support a case management system needs to be designed around this entire process to make it as easy as possible for people to perform their tasks. Content plays a big part, but the processes and user interface is what till determine if this application will be a success or failure.
This holds true for ANY Content-Enabled Application. Users want to do their job. They want to do it well, if for no other reason than to keep their job and get a raise. They don’t want to have to spend time figuring things out or adapting their work patterns to an application. The application should be shaped to work with and enhance the process the users use to perform their work.
Building the Application
Traditionally, providers of CEVAs (for want of a shorter term) have had to write to the API of a specific ECM vendor to leverage their repository. That meant that they had to either package that particular ECM product as part of the system or sell to companies that already had the needed ECM back-end. When an ECM market leader in a vertical might only have 20% of that vertical, that leaves a lot of uncovered territory. Decisions on which vendor to support are never easy. Then comes the decision of which vendor to support as a second platform, and the challenges of managing the resultant larger code base.
The Java Content Repository standard made this easier, but with uneven support among vendors and the technology requirement of Java, this didn’t solve the problem.
Vendors started to implement Web Service interfaces. This was a very uneven effort, but it did simplify things for the CEVA vendor. There were still multiple code bases, but they were smaller as many of the details, like session handling, were hidden behind the scenes. Better, but not there.
The proposed Content Management Interoperability Services (CMIS) standard (you had to know this was coming) solves that problem. Now a vendor only needs to support that standard and the CEVA vendor can support it. Simple. Still a year away, but a nice solution for the problem. One code base, multiple repository support.
The only need is to write a script to create the necessary object model in the target system, and you are done. Contractors can build and test that in a week.
All the money that the CEVA vendors save by using CMIS will lead to better products developed by more financially stable companies. More Content-Enabled solutions means the more ECM systems that will most likely be needed which won’t install themselves (Yet). What’s not to love?
Back to the Show
Let’s put the EMC spin on this in order to provide some more feedback to Craig. If I was building a new Content-Enabled application, with Documentum as my (first) repository, what questions would I need to ask to design it? Here are just three.
- Am I ever going to move this to a new back-end?
- Do I want to package the solution for another deployment?
- Do I have time and resources for a proper development process?
If those answers are all No, then find a close-hit Documentum front-end and be done with it. Expect users to occasionally complain and plan for lots of training. You could spend a lot of time customizing/configuring the front-end to solve that, but upgrades may be daunting. None of these issues are Documentum specific. All vendors need better interfaces.
If the answer to the first question is No, and the third answer is Yes, then you can build a custom application. You could use DFC or DFS. If you want to front into an existing application, like SharePoint, DFS is probably the way to go. While DFC could perform faster in many situations, there is a lot more room for poor coding that would offset that natural advantage. DFS would be faster to develop and shove lots of the niggling details to EMC. If you know what you are doing, fire away with the DFC and watch it sing.
If the answer to all three is Yes, then get thee to CMIS. This is the sweet spot. Basic Content Services and great search, more than enough for most Content-Enabled Applications. Plus, no vendor lock-in.
This decision process is a lot more complicated than what I just portrayed, but you get the overall feel.
I figure within two years of the finalization of the CMIS standard, Content-Enabled Applications will be entrenched in the mainstream.