You are previewing Alfresco CMIS.
O'Reilly logo
Alfresco CMIS

Book Description

Learn how to build applications that talk to content management servers in a standardized way using this superb course on getting the best from Alfresco CMIS. This is a highly practical, step-by-step guide.

In Detail

Content Management Servers (CMS) have been around for a very long time, both proprietary and open source ones, but there has not been a standard way of talking to them until recently. The Content Management Interoperability Services (CMIS) standard provides both an application programming interface and a search language (based on SQL-92). Alfresco CMIS implementation is the basis for many existing CMIS applications, and you can use CMIS too to integrate your application with Alfresco.

Alfresco CMIS is a practical, hands-on guide that provides you with a number of clear step-by-step exercises that will help you take advantage of the real power of CMIS, and give you a good foundation in using it via HTTP/XML, Java, or scripting.It starts off with an introduction to the CMIS standard, in order to update you on the service API, object model, and query language.

The first part of the book explains how to use the service API with HTTP and XML/JSON; this is done in order to show that any library, system, or tool that can make HTTP calls and parse XML or JSON, is able to talk to a content management server that supports CMIS. Next, you learn to demonstrate how a higher abstraction library can be used to talk to a CMIS server in an easy way, hiding some of the complexities of the API using the OpenCMIS Java library. Since most of the applications that are built today are web applications, the book teaches readers how CMIS can be used from JavaScript and Groovy; enterprise application integration, taking Drupal and Mule as references.

Finally, you will learn how to talk to Alfresco Cloud service via CMIS!

What You Will Learn

  • Add, update, delete, and search for content with increasing efficiency using HTTP and XML/JSON, OpenCMIS , JavaScript, and Groovy
  • Feed content directly into a JavaScript widget from a CMIS call JSON response, so you can see how content management servers can be accessed directly via AJAX calls from a web application
  • Integrate Drupal with a content management server via CMIS, so Drupal does not have to store documents and images
  • Integrate multiple content management systems in a standard way via an enterprise service bus and a CMIS connector
  • Handle advanced concepts such as versioning, permissions, and relationships between content items
  • Talk to the Alfresco Cloud service via CMIS, so you can make content available outside the company firewall
  • Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the files e-mailed directly to you.

    Table of Contents

    1. Alfresco CMIS
      1. Table of Contents
      2. Alfresco CMIS
      3. Credits
      4. About the Author
      5. About the Reviewers
      6. www.PacktPub.com
        1. Support files, eBooks, discount offers and more
          1. Why Subscribe?
          2. Free Access for Packt account holders
      7. Preface
        1. What this book covers
        2. What you need for this book
        3. Who this book is for
        4. Conventions
        5. Reader feedback
        6. Customer support
          1. Downloading the example code
          2. Errata
          3. Piracy
          4. Questions
      8. 1. Getting Started with CMIS
        1. Understanding CMIS
        2. Commercial products and companies supporting CMIS
        3. The benefits of using CMIS
        4. CMIS use cases
          1. Repository to Repository (R2R)
          2. Application to Repository (A2R)
          3. Application to Multiple Repositories (A2MR)
        5. An overview of the CMIS standard
          1. The domain model (object model)
          2. Services
          3. Query language
          4. Protocol bindings
            1. RESTful AtomPub binding
            2. Web Service binding
            3. RESTful Browser binding (CMIS 1.1)
        6. Summary
      9. 2. Basic CMIS Operations
        1. Setting up a CMIS server
          1. Installing your own CMIS server
          2. Using cmis.alfresco.com
        2. Setting up a tool to make HTTP requests
        3. Authenticating with the repository
        4. Getting repository information
          1. Repository information via the AtomPub binding
          2. Repository information via the Browser binding
        5. Listing the children of the root folder
          1. Listing the children of the root folder with the AtomPub binding
          2. Listing the children of the root folder with the Browser binding
        6. Optional parameters when listing the children of a folder
          1. Optional parameters when listing the children of a folder with the AtomPub binding
          2. Optional parameters when listing the children of a folder with the Browser binding
        7. Listing available types and subtypes
          1. Listing the types and subtypes with the AtomPub binding
          2. Listing the types and subtypes with the Browser binding
        8. Getting metadata and content
          1. Getting metadata and content with the AtomPub binding
          2. Getting metadata and content with the Browser binding
        9. Creating, updating, and deleting content
          1. Creating folders
            1. Creating a folder with the AtomPub binding
            2. Creating a folder with the Browser binding
          2. Creating documents
            1. Creating a document with the AtomPub binding
            2. Creating a document with the Browser binding
          3. Updating folders and documents
            1. Updating a document with the AtomPub binding
            2. Updating a document with the Browser binding
          4. Deleting a folder or a document
            1. Deleting a folder or document with the AtomPub binding
            2. Deleting a folder or document with the Browser binding
        10. Summary
      10. 3. Advanced CMIS Operations
        1. Version management with check out and check in
          1. Version management with the AtomPub binding
            1. Checking out a document with the AtomPub binding
            2. Cancelling the check out with the AtomPub binding
            3. Updating the physical contents of the checked-out document with the AtomPub binding
            4. Checking in a document with the AtomPub binding
          2. Version management with the Browser binding
            1. Checking out a document with the Browser binding
            2. Cancelling the check out with the Browser binding
            3. Updating the physical content of the checked-out document with the Browser binding
            4. Checking in a document with the Browser binding
        2. Managing permissions for documents and folders
          1. Access control list capabilities
          2. Access control concepts
          3. Supported permissions
          4. Allowable actions and permission mapping
          5. Managing permissions with the AtomPub binding
          6. Managing permissions with the Browser binding
        3. Managing relationships between objects
          1. Creating and reading relationships with the AtomPub binding
          2. Creating and reading relationships with the Browser binding
        4. Searching
          1. Searching with the AtomPub binding
          2. Searching with the Browser binding
          3. CMIS query examples
        5. A word on transactions
        6. Summary
      11. 4. Alfresco and CMIS
        1. Timeline
        2. Architecture/stack
        3. Alfresco content model mapping to the CMIS object model
          1. Repository capabilities
          2. Type mappings
          3. Property mappings
          4. Object path's explanation
          5. Versioning
          6. Access control
          7. Change log
          8. Renditions
          9. Search
        4. Support for Alfresco-specific features
          1. Aspects
          2. Tags
          3. Categories
        5. Summary
      12. 5. Accessing a CMIS Server with a Java Client
        1. Setting up a build environment
        2. Connecting and setting up a session with the repository
          1. Connecting to a repository by ID
        3. Getting repository information
        4. Listing the children of the root/top folder
        5. Optional parameters when listing the children of a folder
        6. Listing available types and subtypes
        7. Creating, updating, and deleting content
          1. Creating folders
          2. Creating documents
          3. Updating folders and documents
          4. Deleting a document, folder, or folder tree
        8. Getting the content for a document
        9. Copying and moving folders and documents
        10. Working with Alfresco aspects
          1. Using secondary types to manage aspects
            1. Adding aspects when creating an object
            2. Adding aspects to an existing object
            3. Reading aspects
          2. The Alfresco OpenCMIS extension to manage aspects
            1. Adding aspects when creating an object
            2. Adding aspects to an existing object
            3. Reading aspects
        11. Version management with check out and check in
          1. Checking out a document
          2. Updating the content of the checked-out document and then checking it in
        12. Managing permissions for documents and folders
        13. Managing relationships between objects
        14. Searching
        15. Summary
      13. 6. Accessing a CMIS Server Using Scripting Languages
        1. Using CMIS in JavaScript and web application pages
          1. Solving the same origin policy problem
          2. Using jQuery
        2. Using CMIS in Groovy scripts
        3. Using CMIS in Spring Surf Web Scripts
          1. Setting up a build project for Spring Surf with CMIS
          2. Updating the Spring Surf project so that CMIS can be used
          3. Updating the home page to display repository info via CMIS
          4. Updating the home page to display text from a file in the repository
          5. Using CMIS calls in Alfresco Share extensions
        4. Summary
      14. 7. System Integration with CMIS
        1. Integrating Drupal with a CMS server
          1. The CMIS API module
            1. Displaying a CMS repository file link on a Drupal page
          2. The CMIS Views module
            1. Displaying a CMS repository folder on a Drupal page
            2. Displaying a result from a CMIS query on a Drupal page
          3. Synchronizing the CMS content with Drupal content
        2. Enterprise integration with CMIS
          1. Moving a file from a folder into a CMS server using Mule
          2. Getting a document from a CMS server via Mule
        3. Talking to Alfresco in the Cloud via CMIS
          1. Setting up an account
          2. Registering a client application
          3. Setting up a development project
          4. Authorizing the client application
          5. Making CMIS calls
        4. Summary
      15. Index