Chapter 11. CMIS bindings

This chapter covers

  • The CMIS bindings: Web Services, AtomPub, and Browser
  • Capturing CMIS traffic
  • CMIS schema

So far you’ve become acquainted with the CMIS domain model and with APIs for several programming languages. But we haven’t yet shown you how CMIS clients and CMIS repositories communicate with each other over the wire.

A big part of the CMIS specification describes how the CMIS domain model is mapped to the bytes that are transferred. These mappings are called bindings. CMIS 1.0 defines two bindings, the Web Services binding and the AtomPub binding; and CMIS 1.1 adds a third, the Browser binding.

The big advantage of using a CMIS library is that it hides most of the binding details. You don’t need to know how your request is serialized into XML or JSON, and you don’t need to know how to parse the response from the repository. Nevertheless, having a basic understanding of how the bindings work can help when you’re debugging your application. It’s also necessary when you’re reading the following chapters about security and performance, because the different bindings have different strengths and characteristics.

For this chapter, you need a basic understanding of XML and JSON. You should also have some high-level understanding of HTTP, Web Services, SOAP, AtomPub, HTML, and JavaScript.

11.1. CMIS binding overview

11.2. A close look at the three bindings

11.3. CMIS schemas and schema extensions

11.4. The OpenCMIS low-level API

11.5. Summary