CP RSS Channel
About Our Sponsors
Articles & Papers
Technology and Society
|Apache Software Foundation Launches Chemistry Incubation Effort for CMIS.|
On April 30, 2009, the Apache Software Foundation (ASF) announced the creation of a new Incubator project to support the OASIS Content Management Interoperability Services (CMIS) specification. As proposed, the Apache Chemistry Incubation development effort will implement the latest draft of the CMIS specification and provide input to the TC on the implementation details of the specification. It is also anticipated that the group will produce a CMIS Reference Implementation (RI) and a CMIS Technology Compatibility Kit (TCK). Three Apache Chemistry mailing lists have been set up, along with a Jira issues tracking system and SVN source code repository.
The OASIS Content Management Interoperability Services (CMIS) TC was chartered to define a domain model including a data model and abstract capabilities for Content Management (CM) and a set of bindings that can be used by applications to work with one or more Content Management Repositories/systems and that can be implemented by content repositories and enable interoperability across repositories for the set of defined use cases (e.g., Collaborative Content Applications; Portals leveraging Content Management repositories; Mashups; Searching a Content Repository). The CMIS TC based its technical work on Version 0.5 of the CMIS specification as published by EMC, IBM, and Microsoft. Initial deliverables include a revised CMIS Domain model specification, CMIS SOAP-based Web Services binding specification, and CMIS REST/Atom-based Web Services binding specification.
The background to Apache Chemistry can be found (in source code) within the Chemistry codebase developed at Nuxeo and the JCR-CMIS sandbox components developed at Apache Jackrabbit. All contributions to the JCR-CMIS components in Jackrabbit have been made by people with Contributor License Agreements (CLAs) on file; this agreement is required before an individual is given commit rights to an ASF project. According to the published proposal: "An ancestor for the project was built in the Apache Jackrabbit sandbox. One of the first backends to be written for Apache Chemistry will be one for JCR, using Apache Jackrabbit. Chemistry also exploits capabilities from some other Apache projects. The AtomPub binding is built upon an Abdera extension covering specific CMIS elements. The SOAP binding takes advantage of CXF and its JAX-WS APIs as a services framework. Chemistry will potentially establish an interesting relationship with every Apache project handling any sort of content. Web frameworks such as Cocoon, Struts, Wicket and Tapestry can find a good relation, as well as SOA frameworks or ESB including Tuscany and Synapse...." Chemistry will directly use (at least) Apache Abdera, for AtomPub bindings and Apache CXF, for SOAP bindings; other Apache projects may be interested in using Chemistry to add CMIS support once the standard is final.
Rationale for the Apache Chemistry Incubation is provided in the proposal as follows (excerpt): "For the [CMIS] standard to succeed, ensuring interoperability is paramount: in order to manage an ever growing context and leverage the enormous portability and interoperability issues that a globally adopted Standard brings, it is necessary to think about how to make the related ecosystem healthy and sustainable... Successful modern standards are driven by clear documentation, a clearly defined compatibility process, accurate compliance criteria, and reference implementation to clear up potential doubts and ensure that the standard can actually be implemented in real life scenarios... Having an healthy ecosystem will ensure a smoother implementation process, more compliant products and, ultimately, a wider adoption of the standard. The CMIS ecosystem has been successful in creating and documenting early drafts the basic standard, yet it might potentially lack two very important components, that is a Reference Implementation (RI) and a Technology Compatibility Kit (TCK). As much as such artifacts can be developed independently by any CMIS proponent, the value of having a neutral party as a steward of actual code is to be considered. The Apache Software Foundation has been playing this kind of role for many years, and can provide the perfect environment to foster contributions on the CMIS theme with a great amount of expertise..."
The Sponsoring Entity for Apache Chemistry Incubation is the Apache Jackrabbit Project Management Committee (PMC). Apache Jackrabbit "is a fully conforming implementation of the Content Repository for Java Technology API (JCR). A content repository is a hierarchical content store with support for structured and unstructured content, full text search, versioning, transactions, observation, and more. Typical applications that use content repositories include content management, document management, and records management systems. Version 1.0 of the JCR API was specified by the Java Specification Request 170 (JSR 170) and work on the JCR version 2.0 has begun in JSR 283. Apache Jackrabbit 1.5.5 was published on April 28, 2009 as a fully backward-compatible bug fix release that fixes issues reported against previous releases. The jackrabbit-jcr2spi component contains also some other improvements over previous releases..."
The Apache Software Foundation (ASF) is a 501(c)3 non-profit organization incorporated in the United States of America and was formed primarily to provide a foundation for open, collaborative software development projects by supplying hardware, communication, and business infrastructure. An Apache Incubator project supports the entry path into The Apache Software Foundation (ASF) for projects and codebases wishing to become part of the Foundation's efforts. All code donations from external organisations and existing external projects wishing to join Apache enter through the Incubator. The Apache Incubator has two primary goals: (1) to ensure all donations are in accordance with the ASF legal standards, and (b) to develop new communities that adhere to ASF guiding principles. The incubation period normally serves to estimate whether or not the project is able to increase the diversity of its committer base and to play with the meritocratic rules of the foundation..."
The Apache Chemistry "Champion" is Jukka Zitting, a Senior Developer at Day Management AG, and ASF Vice President for Apache Jackrabbit. An Incubator Champion is a member of ASF who supports a Candidate's application for Incubation and who supports and assists the Podling through the Incubation process. Mentors for Apache Chemistry include Felix Meschberger (Day Software), Gianugo Rabellino (Sourcesense), and Jukka Zitting. Incubator Project Mentors are chosen by the Sponsor to actively monitor the podling, guide the podling in the Apache Way, and report its status to the Sponsor and the Incubator PMC. Initial source code committers, as presented in the proposal, include Florent Guillaume (Nuxeo), Bogdan Stefanescu (Nuxeo), Stéphane Lacoin (Nuxeo), Sun Seng David Tan (Nuxeo), Gabriele Columbro (Alfresco), David Nuescheler (Day Software), Paolo Mottadelli (Sourcesense), Dominique Pfister (Day Software), and Stéfane Fermigier (Nuxeo).
Adapted from the 2009-04-26 version of the web site, by Jukka Zitting and others.
Apache Chemistry is a generic Java language implementation of the upcoming OASIS CMIS specification.
The proposed CMIS (Content Management Interoperability Services) standard defines a domain model and set of bindings, such as AtomPub and SOAP that can be used by applications to work with one or more Content Management repositories and systems. The standard aims to help providing vendor-neutral formats to share information across Internet.
The submission of the specification was originally proposed by seven CMS vendors and since that a number of other vendors have joined the OASIS TC, both commercial and Open Source. It is now in an early definition phase (started in September 2008); improvement of specifications and compatibility among existing implementations are the short term goals for CMIS.
There has been considerable interest in a JCR-based implementation of this proposed standard, and some months ago a group of interested people started working on such a codebase in the Apache Jackrabbit sandbox. Write access to the Jackrabbit sandbox was opened to all Apache committers to lower the barriers for cooperation.
This work gave birth also to an effort at creating a more generic CMIS implementation framework. This effort, named "Chemistry", has been led by Florent Guillaume and other Nuxeo employees. The Chemistry work has taken place in a Mercurial source repository outside Apache, since the developers are not yet Apache committers and thus do not have write access to the Jackrabbit sandbox.
This situation with separate codebases in separate source repositories was causing confusion and coordination problems. The effort was clearly no longer just an extra component in Jackrabbit, and so it was proposed that the project should brought to the Incubator where it can grow in a more controlled and yet less constrained manner.
The project name went through a few iterations before reaching "Apache Chemistry" (based on CMIS, as in !CheMIStry). There were some concerns about that name being too "general" and conflicting with potential future chemistry projects in Apache, but we feel that these are mostly hypothetical issues. There is also a minor naming overlap with another Java project called "Chemistry Development Kit", but the developers of that project weren't too concerned about that so we think it's fine for us to use this name.
More vendors moving to CMIS means more choice for customers who will be able to use different implementations. For the standard to succeed, however, ensuring interoperability is paramount: in order to manage an ever growing context and leverage the enormous portability and interoperability issues that a globally adopted Standard brings, it is necessary to think about how to make the related ecosystem healthy and sustainable. Successful modern standards are driven by:
- Clear documentation, built iteratively with continuous feedback from stakeholders
- A clearly defined compatibility process, enforced by tools that allow to gauge how implementations can be compatible and interoperable
- Accurate compliance criteria, documented in writing as well as in actual testing code that measure how tools and libraries are able to interoperate
- A reference implementation to clear up potential doubts and ensure that the standard can actually be implemented in real life scenarios
The above mentioned pieces are able to make the development activity, towards a CMIS implementation, easier and more successful. Having an healthy ecosystem will ensure a smoother implementation process, more compliant products and, ultimately, a wider adoption of the standard.
The CMIS ecosystem has been successful in creating and documenting early drafts the basic standard, yet it might potentially lack two very important components, that is a Reference Implementation (RI) and a Technology Compatibility Kit (TCK). As much as such artifacts can be developed independently by any CMIS proponent, the value of having a neutral party as a steward of actual code is to be considered. The Apache Software Foundation has been playing this kind of role for many years, and can provide the perfect environment to foster contributions on the CMIS theme with a great amount of expertise.
- Implement the latest draft of the CMIS specification
- Provide input to the TC on the implementation details of the specification
All of the initial committers are open source developers and many of them have already worked in other Apache projects. We will follow standard Apache procedures in accepting new contributors to the project team.
Managed by an OASIS Technical Committee, the CMIS standard definition should be based on the idea of a community driven effort. In the last months the lack of a development community around CMIS has showed up.
Apache Chemistry aims to be a community driven initiative in developing a Java CMIS implementation. Such an approach is allowing more transparency and direct feedback even within the definition and improvement of CMIS specifications.
We welcome everyone interested in CMIS to join the Chemistry effort.
The core developers of the Chemistry project have a strong background within the ECM industry. While a core structure of a CMIS sandbox has been set up by some Jackrabbit PMC members, there has been a very important contribution by a development team from Nuxeo, led by Florent Guilaume. The Nuxeo team has implemented a draft version of the project on a Nuxeo repository; such a version has been merged inside the Jackrabbit sandbox. Developers from Day and Sourcesense have contributed to the project since its early stages: Dominique Pfister (Day) and Paolo Mottadelli (Sourcesense), with some patches contributed by Gabriele Columbro (former Sourcesense and now Alfresco); also a few commits by Jukka Zitting (Day) are tracked.
An ancestor for the project was built in the Apache Jackrabbit sandbox. One of the first backend to be written for Apache Chemistry will be one for JCR, using Apache Jackrabbit.
Chemistry also exploit capabilities from some other Apache projects. The AtomPub binding is built upon an Abdera extension covering specific CMIS elements. The SOAP binding takes advantage of CXF and its JAX-WS APIs as a services framework.
Chemistry will potentially establish an interesting relationship with every Apache project handling any sort of content. Web frameworks such as Cocoon, Struts, Wicket and Tapestry can find a good relation, as well as SOA frameworks or ESB including Tuscany and Synapse.
Apache Chemistry is a fresh new codebase that targets the still moving CMIS standardization effort. Thus the future of this project depends heavily on the success of the standard. We hope and expect that our implementation efforts will strengthen and support the CMIS standard.
Inexperience with Open Source
All the initial committers are experienced open source developers.
The initial committers work for a number of different companies, each with their own backgrounds and priorities.
Reliance on Salaried Developers
Many of the initial committers are paid to work on this or related projects.
Relationships with Other Apache Products
Chemistry will directly use at least the following projects:
- Abdera — for AtomPub bindings. "The goal of the Apache Abdera project is to build a functionally-complete, high-performance implementation of the IETF Atom Syndication Format (RFC 4287) and Atom Publishing Protocol (RFC 5023) specifications."
- Apache CXF — for SOAP bindings. "Apache CXF is an open source services framework. CXF helps you build and develop services using frontend programming APIs, like JAX-WS. These services can speak a variety of protocols such as SOAP, XML/HTTP, RESTful HTTP, or CORBA and work over a variety of transports such as HTTP, JMS or JBI."
Many other Apache projects may be interested in using Chemistry to add CMIS support once the standard is final.
A Excessive Fascination with the Apache Brand
We value Apache as a neutral place where diverse communities can work together on implementing shared standards. We hope that this part of the Apache brand helps attract contributions from many potential CMIS vendors. However, the brand value is not the main reason why we prefer to have this project at Apache.
This project is still at an early stage, so there is not much documentation available. See the [WWW] OASIS CMIS page for information about the CMIS standardization effort.
The initial source for the Chemistry project comes from the following two sources:
Source and Intellectual Property Submission Plan
- Nuxeo has already filed a software grant covering their Chemistry codebase
- All contributions to the JCR-CMIS components in Jackrabbit have been made by people with CLAs on file
All the external dependencies of the initial codebases comply with Apache licensing policies.
A binding to the Metro web service stack is being planned for increased interoperability. The licensing implications of that dependency (CDDL+GPL) will be considered in more detail during incubation once the technical details are clearer.
Apache Chemistry is not expected to implement or use cryptographic code.
JIRA CMIS (CMIS)
Other Resources: [none]
Champion: Jukka Zitting
- Jukka Zitting
- Felix Meschberger
- Gianugo Rabellino
Sponsoring Entity: Apache Jackrabbit PMC
Apache Chemistry By David Nuescheler. April 27, 2009. Posting to the CMIS TC List. "I am definitely excited to see that we seem to manage to attract a number of different parties in an open source implementation that is licensed liberally enough and architected in a way that it allows different parties to contribute and use... In JCR we had four independent open source implementations very quickly, which is a double-edged sword since on the positive side it creates competition and on the negative side divides the fragile initial community into many different parties. Looking forward to see as many TC members as possible contributing to Apache Chemistry, everybody is very welcome..."
Apache Chemistry. By Florent Guillaume. April 27, 2009. Posting to the CMIS TC List. "As I mentioned at the last conf call, we're in the process of setting up an Apache project named "Chemistry" to hold generic Java code around the CMIS specification. This code will have a high level API, a lower-level SPI and generic implementations of clients and servers for AtomPub and SOAP bindings, as well as sample backends serving data from an in-memory repository or one based on JCR, with more to be added later. We also expect that the unit tests will turn into some kind of unofficial TCK..."
"CMIS Gets New Momentum, Thanks to Chemistry." By Kas Thomas (Analyst, CMS Watch). April 27, 2009. "There's been an interesting development with regard to Content Management Interoperability Services (CMIS, the new, yet-to-be-ratified content API being considered by OASIS). The Apache Foundation, it turns out, has begun incubating a new project, called Chemistry, which aims to produce a generic, open-source "reference implementation" of CMIS... Some months ago, Day Software tried to drum up interest in a CMIS-to-JCR bridge layer as part of Apache Jackrabbit (the well-known JCR reference implementation). But a more generic (non-JCR) open-source CMIS implementation, led by Florent Guillaume and other Nuxeo employees, began to gather momentum before the CMIS-JCR bridge effort had a chance to get very far. Soon enough, the two companies realized that rather than duplicate each other's efforts, it might be better to combine efforts on a larger, joint effort (not tied to JCR) hosted by Apache. The name Chemistry was chosen, in part, because it contains the letters 'CMIS.' Committers on the project include five developers from Nuxeo, two from Day, and one each from Alfresco and European Open Source systems integrator SourceSense. We see this as yet another indication (if any was needed) of the broad base of support behind CMIS. What will be interesting to see is whether any of the large commercial vendors who are backing CMIS (such as Microsoft, Open Text, and EMC) will contribute code to the Chemistry project -- and then use it once it's released. The potential exists for commercial vendors to adapt the Chemistry code for their own use. The alternative, of course, is for those vendors to reinvent the wheel in-house..."
"Nuxeo's Take on Apache CMIS Implementation aka Chemistry." By Irina Guseva. Blog. Florent Guillaume: "Nuxeo, as an open source vendor, values interoperability a lot. And this is not just marketing-speak, we see CMIS as a key factor for customers who need a standardized way of accessing Nuxeo repositories from their applications without learning proprietary protocols or APIs... Conversely, CMIS will also allow customers to migrate data from other repositories, provided their vendors adopt CMIS as well. The more CMIS adoption we see, the more people will be able to make educated choices based on the intrinsic merits of a product, instead of being locked into their previous platforms and having to do costly product renewals because no clear transition path exists for them. Chemistry for us is an opportunity to promote standard adoption by providing a library of a well-defined API and an exhaustive coverage of the CMIS specification. Chemistry will be a bridge between different protocols and backends, following the CMIS domain model... We started working on a CMIS prototype in January, to investigate technical feasibility and gauge the level of complexity of a basic implementation. As a prototype it proved a success, and some useful bits of that code base will be moved to Chemistry in the near future... Through their involvement in the Jackrabbit project, Day had shown exemplar commitment to open standards and to the Apache Software Foundation. At the CMIS face-to-face meeting in January, David Nuescheler of Day had presented slides about his vision of a generic CMIS layer bridging clients and servers in a modular fashion. The prototype that Dominique Pfister (Day) and Paolo Mottadelli (SourceSense) had produced for the face-to-face was, however, very much tied to the JCR. Following these ideas, but beginning from scratch, I decided in February to start working on a repository-independent Java API that could then be bridged in both directions to clients or servers, as desired — this became the Chemistry project. Now that it has visibility through Jackrabbit and the incubator, more people have joined the effort, starting with Dominique, Paolo, and David of course but also a number of others..."
Apache CMIS Implementation: Is There Chemistry?" By Irina Guseva. Blog. "The CMIS specification is still in early stages, but the buzz around it is consistently loud. Most recently, the specification has piqued interest of the Apache Software Foundation (ASF), as some saw a "reference implementation" ingredient missing from the CMIS recipe for success. Meet Chemistry — a recently-proposed Apache Incubator Project with a goal of creating a generic, open-source, Java-language implementation of CMIS... Who is Behind Chemistry? In addition to Nuxeo and Day, Chemistry's committers are affiliated with Alfresco and SourceSense (a European open source systems integrator strongly represented in the Apache community). Interestingly, as Nuescheler mentioned, one of the committers, Gabriele Columbro, has recently left SourceSense for its partner Alfresco. Nuescheler also expressed hopes that Columbro will be able to continue his contributions to the ASF and Chemistry from Alfresco, bringing the 'true spirit of open source' to the ECM vendor. This is not to mention that with Columbro's arrival, Alfresco got its first ever Apache committer on board. There are potential plans for Magnolia and Hippo to contribute to the effort, as both have expressed interest in Chemistry. As Jackrabbit users, they would get this CMIS implementation (that will sit on top of JCR and Jackrabbit by default) for free, so the intention is quite clear here... According to David Nuescheler [Day Software], Open Text is involved, but no code contributions yet. IBM has a different, its own history of getting involved with the ASF. Microsoft has recently submitted their first code to the ASF, so time will tell how the big companies will react to Chemistry. Nuescheler did mention that one of the biggest stumbling blocks on their way to contribute is the fact that those big companies need to feel comfortable with the organization they contribute to. The ASF holds a unique position in this case..." See earlier: "Day and Nuxeo Partner for Java Implementation of CMIS".
Other comments by Jeff Potts, Alexander Witzigmann, James Robertson, Bertrand Delacrétaz...
The Apache Incubator project is the entry path into The Apache Software Foundation (ASF) for projects and codebases wishing to become part of the Foundation's efforts. All code donations from external organisations and existing external projects wishing to join Apache enter through the Incubator...
In October 2002 the Board of Directors of the Apache Software Foundation passed a resolution creating the Apache Incubator PMC charged with "accepting new products into the Foundation, providing guidance and support to help each new product engender their own collaborative community, educating new developers in the philosophy and guidelines for collaborative development as defined by the members of the Foundation, and proposing to the board the promotion of such products to independent PMC status once their community has reached maturity"...
"The Apache Software Foundation provides organizational, legal, and financial support for a broad range of open source software projects. The Foundation provides an established framework for intellectual property and financial contributions that simultaneously limits contributors potential legal exposure. Through a collaborative and meritocratic development process, Apache projects deliver enterprise-grade, freely available software products that attract large communities of users. The pragmatic Apache License makes it easy for all users, commercial and individual, to deploy Apache products.
Formerly known as the Apache Group, the Foundation has been incorporated as a membership-based, not-for-profit corporation in order to ensure that the Apache projects continue to exist beyond the participation of individual volunteers. Individuals who have demonstrated a commitment to collaborative open-source software development, through sustained participation and contributions within the Foundation's projects, are eligible for membership in the ASF. An individual is awarded membership after nomination and approval by a majority of the existing ASF members..."
On October 06, 2008, OASIS issued a public call for participation in a new technical committee chartered to define specifications for use of Web services and Web 2.0 interfaces to enable information sharing across content management repositories from different vendors. The OASIS Content Management Interoperability Services (CMIS) TC will build upon existing specifications to "define a domain model and bindings that are designed to be layered on top of existing Content Management systems and their existing programmatic interfaces. The TC will not prescribe how specific features should be implemented within those Enterprise Content Management (ECM) systems. Rather it will seek to define a generic/universal set of capabilities provided by an ECM system and a set of services for working with those capabilities."
As of January 29, 2009, the CMIS technical work had received broad support through analyst opinion and declarations of interest from major companies. Some of these include Adullact, AIIM, Alfresco, Amdocs, Anakeen, Booz Allen Hamilton, Capgemini, Day Software, Ektron, EMC, Exalead, FatWire, Fidelity, Flatirons, Greenbytes GmbH, Harris, IBM, Magnolia, Mekon, Microsoft, Nuxeo, Open Text, Oracle, Pearson, Quark, SAP, Saperion, Sun Microsystems, Tanner AG, Vamosa, and Vignette. Early commentary from industry analysts and software engineers is positive about the value proposition in standardizing an enterprise content-centric management specification. The OASIS announcement of November 17, 2008 includes endorsements.
Principal use cases motivating the CMIS technical work include collaborative content applications, portals leveraging content management repositories, mashups, and searching a content repository. Subject to TC vote, the members may also address additional use cases like core ECM repository capabilities; collaborative content applications; portals leveraging content management repositories; mashups utilizing content; workflow and BPM-centric applications utilizing content; content archival applications; compound and virtual documents applications; electronic and legal discovery of content applications; records management and compliance; digital asset management applications; web content management applications; information rights management applications; desktop integration of content management repositories.
- Apache Chemistry JIRA Issues Tracking
- Apache Chemistry Mailing Lists
- Precursors to Apache Chemistry (initial source code)
- CMIS References
- TC Members:
- Initial TC Officers: David Choy (EMC, Chair); Al Brown (IBM, Secretary); Ethan Gur-esh (Microsoft, Secretary).
- Mailing Lists:
- Document Repositories:
- Apache Incubator
- Apache Foundation
|Receive daily news updates from Managing Editor, Robin Cover.|