cancel
Showing results for 
Search instead for 
Did you mean: 

How will you leverage CMIS?

jpotts
World-Class Innovator
World-Class Innovator
Alfresco announced today a draft implementation of the new Content Management Interoperability Services (CMIS) specification. The spec defines a set of services (both SOAP and REST) that provide a layer of abstraction between content-centric applications and back-end repositories. Theoretically this will make it easier to write content-centric apps that could work against Alfresco, Documentum, Sharepoint, etc.

My initial thought is that it should make it easier to write things like Surf components and JSR-168 portlets for solutions that need to pull data from multiple repositories. In some clients, for example, it is not uncommon to find Alfresco, Documentum, and Sharepoint, all being used for various purposes.

I've been thinking a lot about Drupal-Alfresco integration lately, for example. With CMIS in place, the Drupal modules we write could be used not only for Alfresco but for other repo's as well. Plus, it might save me some time on the REST API side (although I haven't yet gotten into the details of Alfresco's CMIS implementation yet).

Anyway, I was curious to see if there are other opportunities that came to your mind when you read the announcement.

John Newton's blog post on CMIS
Alfresco CMIS Wiki Page
Alfresco CMIS Press Release
Full CMIS Specification
7 REPLIES 7

alexr
Champ in-the-making
Champ in-the-making
Hi Jeff,

The initiative sounds great. Let's see how developers and companies alike will adopt it.
Do you know if the CMIS query language will be the CQL (http://wiki.alfresco.com/wiki/CQL). In other words
like Documentum iDQL?
Another feature of the definitive Alfresco 3.0 I am looking forward to is Alfresco Web Studio (Surface).

Regards,

Alex

PS: Also looking forward to your Alfresco Developers book  Smiley Very Happy

johnn
Champ in-the-making
Champ in-the-making
Alex -

This is indeed CQL, but it has taken quite a while to get this into an official context. Our attention on CQL went into iECM, then JSR-283 and now into CMIS. Dave Caruana and I had been pushing some flavor of SQL as a query language into JSR-283 and were joined by Al Brown of FileNet, later IBM. Al ran with the specification based upon some of the concepts developed in JSR-283 and you will find a great deal of similarity between the language definitions.

We have held off on implementation until the CMIS working group settled on the syntax and bindings. Until that point, we relied on Lucene. From now on, the focus will be on CMIS query language.

-John

loftux
Star Contributor
Star Contributor
Hi,

I really enjoyed to see that when the other ECM vendors in this only issue press releases you (the Alfresco team) delivers  Smiley Very Happy

Maybe a CMIS Faq on the Wiki? I have seen that there are lots of info there already about CMIS, but I thought of these questions that can be good to have quick answers to.
Maybe some of the are just variants of the same question, I just put down some questions I came to think of.

How does CMIS realate to the SURF platform?
When should I use CMIS and when to use SURF?
Does Alfresco Share client use CMIS?
Can CMIS be used just as Webscripts?
(here I'm thinking do I need to learn new programming way or install special components to use CMIS)

Peter Löfgren

jpotts
World-Class Innovator
World-Class Innovator
How does CMIS realate to the SURF platform?
CMIS is a set of REST URLs and web services that can be called to perform CRUD functions or query the repository. Surf is a web application development framework. You could call CMIS services from a Surf component.
When should I use CMIS and when to use SURF?
Surf would be used to assemble a web application. You might or might not leverage CMIS from your Surf application. CMIS could be used by any application, not just Surf. For example, suppose you want to build a web site using Liferay Portal instead of Surf. You might choose to use CMIS instead of rolling your own REST URLs. That saves you some work on the REST API and makes your portlets interoperable with other CMIS-compliant back-ends. Or perhaps your portlets need to access information from Alfresco and another repository to aggregate or mash-up that data. CMIS allows you to do that.
Does Alfresco Share client use CMIS?
I'll defer to Alfresco on this one. My hunch is that they will use it where they can.
Can CMIS be used just as Webscripts?
CMIS provides SOAP-based services bindings as well as REST URLs. The spec actually requires that CMIS compliant implementations expose both. In Alfresco, the REST URLs are defined using the web script framework. So if you install the latest Alfresco Labs and go to http://localhost:8080/alfresco/service/ you'll be able to browse the CMIS webscripts.

From within your own webscripts, I think the most common use of CMIS will be to leverage the SQL query language. You're already in a webscript with the power of the JavaScript/Java API so making a call to a CMIS service for anything else seems unnecessary.

Jeff

mikeh
Star Contributor
Star Contributor
Does Alfresco Share client use CMIS?
I'll defer to Alfresco on this one. My hunch is that they will use it where they can.
Jeff
Short answer: no, it doesn't. Share uses YUI heavily throughout the client-side, so we use JSON-based data webscripts for performance reasons (and the CMIS specs and implementation weren't ready to still release Share in the timeframe we wanted).

Thanks,
Mike

johnn
Champ in-the-making
Champ in-the-making
Share does not currently use CMIS, because as Mike indicates, it was not ready. However, since Share is built upon SURF, which is designed to incorporate REST components, so you can expect CMIS components to interoperate with Share and SURF. We currently have a test harness available for testing CMIS and will be coming out with Share user interface components to browse and update a CMIS repository, not just an Alfresco repository.

rdanner
Champ in-the-making
Champ in-the-making
Drupal and other community frameworks on CMIS? That absolutely makes a lot of sense.  The focus of those [community] projects is really above the repository.  Alfresco offers a lot of value as a repository to these projects.  I was very excited to hear about Joomla / Alfresco at the DC conference. 

As a side note, the whole conference was pretty darn exciting IMO. Last year webscripts were an exciting addition to the Alfresco suite.  Webscripts really unlocked the potential of the repository by making it easy to develop on top of it. SURF provides a framework to carry that potential beyond the repository server. SHARE, an application built on SURF really demonstrates what we should be able to do with a repository like Alfresco.  The contrast between what was done in the JSF client over 3 years and what has been done in SHARE in under one year is testimony to the agile qualities of the Surf architecture.  With the ease of web script development and SURF as a platform for surfacing that capability, I think we can expect a lot faster application feature growth from alfresco and a lot more community contribution. and CMIS? wow that's a heck of cherry on top of the whole story because it means contribution doesn't have to come from within or proprietary to the alfresco space…   Landmark year.

Alfresco / Drupal / Joomla collaboration is really important.  Everyone wins.  It's certainly no easy road.  Drupal is heavily invested in its own database infrastructure for  application configuration, data persistence and caching purposes.  But as Drupal and its community adopt CMIS, to the extent that they do, they will open the platform up to a lot of options on the back end.  Legacy components aside, it would seem they have a lot to gain by adopting CMIS and very little to lose provided we see a number of implementations that perform well. 

What areas of drupal / joomla  are ripe for "CMIS=ization" and which areas are clearly either not yet ripe or are inappropriate?

-R