So I was on the Oracle UCM documentation page the other day looking for the Javadocs for CIS and I ran across something I had not seen before, the “Content Server JCR Repository Adapter” document.
It was hiding there is plain site for, well I am not sure how long, I guess I just missed the memo on that one. Very interesting though. For those of you who are curious about what a JCR is, it stands for Java Content Repository and though it uses the word “Repository” it’s really more of a connector. The big thing about it is that it’s a Java standard, specifically the JSR-170 standard actually.
BEA(now Oracle) WebLogic as well as WebCenter(the flagship portal of the Oracle fleet) both communicate to content management systems using a JCR. UCM and before that Stellent have both traditionally not provided a JCR, rather they provided a pretty robust API known as the Content Integration Suite. From the new document(and of course it’s location) it appears that the JCR is more or less a wrapper on top of CIS.
The Swiss are Clever
The JSR-170 standard has an interesting history. It was submitted by Day, a CMS vendor out in Switzerland. Thier content managment system(and I may be messing this up a little) Communique, leverages a proprietary content repository called CRX which of course is a JCR(and most likely the first). The thing about Day though is that they are Swiss, and so very clever. While many CMS vendors had interesting and/or creative content repositories, Day not only touted theirs as the best, they also submitted it as a Java standard.
Since then a number of other vendors began supporting the standard. Apache released Jackrabbit, I think Vignette uses it too, but really when BEA started adopting it in Weblogic, it became quite a bit more credible. The Day team and of course the standards committee has since updated it, there’s now a new version known as JSR-283, though I have not seen much use yet.
My Somewhat irrational dislike of the JCR standards
I really don’t like the JCR standards and my reasons really aren’t all that good. There’s nothing technically wrong with them. I think they are somewhat on the simple side, but honestly for a standard simple is probably better. My problem really stems from the fact that they are Java based in a multi-language world. Having a CMS with a standards-based connector that oh-by-the-way only works in Java, doesn’t make a whole lot of sense. All of your content consumers must then be in Java, and that just really limits the whole “Enterprise” piece of the Enterprise Content Management system.
The unfortunate thing I would see though was that many CMS vendors would market their support of the JCR standard as a sort of money back guarantee for buying their product. ”Go ahead and buy our CMS and if you don’t like it you can just switch it out with another, we support the JSR-170 standard”. While of course that was technically true from a 10k foot level, I am sure the reality of the implementation was much different from the sales presentation. Of course overcoming the “money back guarantee” argument with “the standard should not be Java-specific” never went over very well though.
Things are looking good
Despite my somewhat irrational dislike, I am pretty excited about this new connector. There are a number of applications that support JCRs(though most of them serve like UCM), including a Spring module. In addition it looks like there may be some movement on getting a “Service-like” standard for content repositories and actually we would have the JCR to thank for it. Back in December, BEA filed a patent for a JDBC-like services wrapper for the JCRs. Though many folks weren’t too crazy about the fact that they filed a patent instead of just releasing a connector, I think this is a pretty positive move. Oracle obviously owning BEA won’t hurt the future UCM integration either I’m sure.