TYPO3 and CMIS

1.824 Aufrufe

Veröffentlicht am

This presentation outlines on how CMIS will bei implemented in TYPO3 CMS during the EU funded ForgetIT Project.

Veröffentlicht in: Technologie
  • Als Erste(r) kommentieren

TYPO3 and CMIS

  1. 1. A love affair: CMIS & TYPO3 CMS
  2. 2. T3CON14 Berlin Content Management Interoperability Services How CMIS works
  3. 3. Meeting, Date, Location Content Management Interoperability Services (CMIS) An open standard, ensuring CMS interoperability Abstraction layer Defined protocols and domain model Common data model with generic properties
  4. 4. T3CON14 Berlin CMIS Benefits Easy to learn and adopt Supported by the widest range of vendors and user organizations (e.g. Alfresco, Sharepoint, Magnolia, Adobe, Nuxeo) End users can use one application to access / exchange documents between various systems supported CMIS Libraries for Java, Python, .NET, Objective-C and PHP Standard service API
  5. 5. Meeting, Date, Location Example architecture with CMIS
  6. 6. Meeting, Date, Location CMIS Use Cases Repository to Repository: CMIS talk directly to each other Application to Repository: E.g. End user gets information from a mobile website via CMIS !
  7. 7. Meeting, Date, Location Application to Multiple Repositories. Example:
  8. 8. T3CON14 Berlin Data Model and Services Domain Model
  9. 9. Meeting, Date, Location Data Model Grey objects: CMIS 1.1
  10. 10. Meeting, Date, Location Services Services Description Repository Services Used to get information and capabilities of a repository Navigation Services Used to traverse the repository‘s folder hierarchy Object Services Used to perform CRUD operations on objects Multi-filing Services If the repository supports storing an object in more than one folder, this service handles it Discovery Services Used to handle queries Versioning Services Used to checkout documents and work with document versions Relationship Services Used to query an object for its relationships Policy Services Used to apply, remove, and query for policies ACL Services Used to manage the ACL of an object
  11. 11. T3CON14 Berlin Web Services, AtomPub and Browser Binding Bindings
  12. 12. T3CON14 Berlin Web Services Binding Maps CMIS operations directly to SOAP calls (Simple Object Access Protocol) Covers entire CMIS specification Authentication: WS-Security 1.1 or Username Token Profile 1.1 other authentication mechanisms CMIS repository needs MTOM (Message Transmission Optimization Mechanism) for content transfer
  13. 13. T3CON14 Berlin AtomPub Binding Built on the AtomPub specification (mainly designed for publishing and simple editing of resources) Extends AtomPub to support features like hierarchies, versioning, renditions, permissions, and so on. Follows REST paradigm by using HTTP methods GET, POST, PUT, DELETE Recommended Authentication: HTTP Basic Authentication in conjunction with SSL
  14. 14. T3CON14 Berlin AtomPub Binding Disadvantages: Covers not the entire specification (e.g. does not support createDocumentFromSource()) Mostly needs two HTTP calls to access the content of a document: get document’s Atom entry which contains the AtomPub Link to the content
  15. 15. T3CON14 Berlin Browser Binding Based on JSON (JavaScript Object Notation) HTTP methods: GET (read), POST (create, update, delete) Covers entire specification Recommended authentication: HTTP Basic Authentication for non-browser Clients Authentication with Tokens for browser Clients
  16. 16. T3CON14 Berlin Browser Binding Benefits More compact and performant than AtomPub and Web Services Binding Suitable for use in mobile and browser apps Additional client libraries are not necessary
  17. 17. T3CON14 Berlin Why we need CMIS 1.1 (1/2) Main new features: Type Mutability: CMIS clients can create, modify and delete type definitions (see Data Model) Secondary object types: set of properties that can be dynamically added and removed from CMIS objects Browser Binding Supports bulk property updates with a single service call
  18. 18. T3CON14 Berlin Why we need CMIS 1.1 (2/2) Main new features: New Item object type: exposes any other object types via CMIS that do not fit the model's definition for document, folder, relationship or policy Append to a content stream: CMIS 1.1 allows to move large files in chunks into the repository
  19. 19. T3CON14 Berlin TYPO3 CMS and CMIS
  20. 20. T3CON14 Berlin Current status Several CMIS Extensions for TYPO3 CMS already available, BUT they are not be maintained/updated since years do support only CMIS 1.0 Disadvantages of existing CMIS library for PHP (Apache Chemistry) Not CMIS 1.1. compatible Not object-oriented
  21. 21. T3CON14 Berlin Converting TCA and FAL TYPO3 Objects in CMIS
  22. 22. T3CON14 Berlin Table configuration array (TCA) Database field definition beyond SQL possibilities type of a field (text, date, select field, checkbox, etc.) what field should be displayed in the Backend and in which layout how to validate the content of the field (required, integer, etc.) define relation between records / TCA tables highly extensible to implement own validators or special field types
  23. 23. T3CON14 Berlin File abstraction layer (FAL) Abstract API to store files Support for multiple „storages“ Each storage has a driver that communicates with the target system Available Drivers and ideas: Local, WebDAV, Dropbox, FTP, Amazon S3, Flickr, Database, CMIS
  24. 24. T3CON14 Berlin File abstraction layer (FAL)
  25. 25. T3CON14 Berlin TYPO3 CMS CMIS Object model
  26. 26. T3CON14 Berlin A few words on CMIS and TYPO3 Neos Objects in Neos
  27. 27. T3CON14 Berlin Neos Nodes vs. CMIS Neos Storage inspired on the PHP based JCR implementation PHPCR TYPO3 CR offers some funky / future features (Dimensions) JCR / PHPCR Nodes can be translated to a CMIS compatible format Expectations are high that PHPCR <-> CMIS is way more easy to realize than TCA+FAL <-> CMIS
  28. 28. T3CON14 Berlin Benefits for Web CMS
  29. 29. T3CON14 Berlin Benefits for Web CMS Content gets decoupled from presentation layer Specialized Applications doing one job right „Future proof“ Reduction of redundancies, many content objects are used in production systems and those can be linked to CMIS repository Expanding possibilities
  30. 30. T3CON14 Berlin Roadmap
  31. 31. T3CON14 Berlin A real php-CMIS-lib dkd is currently building an open source version of a CMIS library in php as part of the ForgetIT project following the java implementation to keep interfaces consistent threaded, object oriented, scalable supporting CMIS V 1.1 > Want to contribute? Talk to us!
  32. 32. T3CON14 Berlin Roadmap First version Q1/2015 browserbindings CRUD for standard TCA objects More features as CMIS evolves and gets accepted by TYPO3 community as additional content repository technology Native Support in TYPO3 CMS 7 onwards?
  33. 33. T3CON14 Berlin Where to get more information … Book: CMIS and Apache Chemistry CMIS - OASIS Specs/Site
 http://docs.oasis-open.org/cmis/CMIS/v1.1/cs01/CMIS-v1.1-cs01.html Apache Chemistry
 http://chemistry.apache.org Alternative TER Plugins
 http://typo3.org/extensions/repository/?id=23&L=0&q=CMIS&tx_solr%5Bfilter%5D%5Boutdated%5D=outdated%3AshowOutdateddf 

  34. 34. Thank you!
 Olivier Dobberkau @T3RevNeverEnd

×