FrOSCamp Zurich: Content Management Standards
Upcoming SlideShare
Loading in...5
×
 

FrOSCamp Zurich: Content Management Standards

on

  • 1,834 views

Open Standards in CMS prepared for the Hackfest at FrOSCamp in Zurich

Open Standards in CMS prepared for the Hackfest at FrOSCamp in Zurich

Statistics

Views

Total Views
1,834
Views on SlideShare
1,834
Embed Views
0

Actions

Likes
1
Downloads
12
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

FrOSCamp Zurich: Content Management Standards FrOSCamp Zurich: Content Management Standards Presentation Transcript

  • Upcoming Content Standards David Nuescheler Spec-Lead JCR (JSR-170 & JSR-283) Member of the CMIS TC Official JCR/CMIS Liaison
  • Agenda CMIS JCR vs. CMIS An Introduction. A comparison CM & Standards JCR v2.0. Evolution. Outlook A brief look at History What’s new. What’s next.
  • CM & Standards What’s next History, Adoption, Usage. where are we headed... 1 2 3 JCR & CMIS History and comparison.
  • Introducing the CM Cloud WCM COLLAB SCM SOCIAL PIM RM DM DAM
  • Many different usecases. Little agreement.
  • There is light. The Content Repository. All disciplines of CM agree on the existence and the featureset of a content repository
  • A Content Repository!? CONTENT REPOSITORY FEATURES OF AN FEATURES OF A RDBMS FILESYSTEM Transactions, Query, Structure, Integrity Binaries, Hierarchy, Locking, Access Control + ALL THE OTHER GOOD STUFF YOU ALWAYS WANTED Unstructured, Versioning, Full-text, Multi-Value, Sort-Order, Observation
  • A history of standards.  DMA & ODMA Document Management oriented Specification. Little Adoption. No active specification development.  WebDAV (& friends) Filesystem (Resource) oriented Protocol Specification IETF. Widely adopted. Every Desktop has WebDAV support. Every CM Vendor Supports WebDAV. No active specification development.  JCR Java Language API specification. Functionally Broad. Wide adoption by Java Applications. Active development. TION  CMIS VE IF ICA TI EC SP Document Management oriented Protocol Specification. Work in progress. Active development of the Specification. AC
  • CM & Standards What’s next History, Adoption, Usage. where are we headed... 1 2 3 JCR & CMIS History and comparison.
  • What is CMIS? TO ED OS OP T SIS PR SEP 8 2005 OA V0.
  • What is CMIS? DOMAIN MODEL LEAST COMMON CMIS DENOMINATOR DM INTEROP DOCUMENTS & FOLDERS (+RELATIONSHIPS) ATOMPUB SOAP (extension) (bindings) BINDINGS HTTP PROTOCOLS
  • What is CMIS? DMIS? WS-DM?
  • Day’s involvement in CMIS Improve Specification via TC Apache Chemistry (incubating) activity CMIS Implementation & Official JCR / CMIS Liaison Catalyst Enable “Web” Support Sponsor, Mentor and Support podling
  • What is JCR? DOMAIN MODEL CONTENT REPOSITORY JCR INFRASTRUCTURE NODES & PROPERTIES (GENERAL PURPOSE) JAVA LANGUAGE (BINDING) BINDINGS API PROGRAMMING LANGUAGES
  • JCR vs. CMIS Goals & Bodies JCR CMIS VS. Java Language API Bindings SOAP & AtomPub Protocol Bindings Large Expert Group Large Technical Committee v2.0 finishing touches v0.61 Draft RELATION COMPLEMENTARY
  • JCR vs. CMIS Scope comparison SCM COLLAB WCM JCR CMIS SOCIAL PIM VS. SCM COLLAB WCM SOCIAL PIM RM DM DAM RM DM DAM General Purpose Content Repository RELATION Focused Model Document Management COMPATIBLE Model SUBSET
  • JCR vs. CMIS Compatibility JCR CMIS VS. Apache Chemistry makes every JCR compliant repository CMIS compliant. Automatically. No work involved. RELATION COMPATIBLE
  • JCR vs. CMIS What, when? JCR CMIS VS. Content Repository DM Interoperability Infrastructure. Browse (multiple) Document Standardized Content Management Systems Repository Applications (CEVA) and Consolidation RELATION COMPLEMENTARY
  • CM & Standards What’s next History, Adoption, Usage. where are we headed... 1 2 3 JCR & CMIS History and comparison.
  • CMIS 1.0 Release ed 2010 Releas Baseline Release
  • CMIS 1.1 Submission Web/Browser Bindings Functional Extensions
  • JCR 2.0 Release Sept ed 9 leas00 Re 2 TCK, RI & Specification
  • JCR 2.1/ JSR-333 -333 JSRiner . jo ome welc Scripting, Ease of Use.
  • Scope & Goals - API Consumers vs. API Implementors - Ease of API use: Make simple, things simple. - Lower entry barriers for implementers and application developers. - Scripting support of the API.
  • Scope & Goals - Client-server awareness. - Protocol and SPI bindings. Binding and liaison to OASIS / CMIS.
  • Scope & Goals - Maintenance and feedback container for implementers, users and non-users. Gauge real- world interoperability. - Node type library. - Internationalization.
  • Working Model - Online Community Tools - Bi-Weekly Phone Conference - Face-2-Face Meetings.
  • Introducing: JSOP
  • Pitch & Goal - Browser enabled, HTTP-based protocol designed to exchange fine-grained information efficiently. - Easy to consume by todays Web-”Gear” (browsers, flash & friends) - Probably suitable for an RFC @ IETF
  • Basics - Serialization to JSON (optionally YAML/XML) - GET (batch/hierarchical) - PUT (batch/hierarchical) - PATCH (json diff content type) - Support for binary as multipart
  • Retro-style - PUT & PATCH -> multipart POST - Allows for Simple HTML forms
  • Extensions - Sort-Order - Query - Typing - Locking - Versioning - Essentially: WebDAV + friends but simple
  • Sample GET Request: GET /myfolder.json HTTP/1.1 Response: { "createdBy" : "uncled", "name" : "myfolder", "id" : "50d9317a-3a95-401a-9638-333a0dbf04bb" "type" : "folder" }
  • Sample GET 2 Request: GET /myfolder.4.json HTTP/1.1 Response: { "createdBy" : "uncled", "name" : "myfolder", "id" : "50d9317a-3a95-401a-9638-333a0dbf04bb" "type" : "folder" "child1" : { "grandchild11" : { "depth3" : { "depth4 : { ... } } } } }
  • Sample PUT PUT /myfolder HTTP/1.1 { "createdBy" : "uncled", "name" : "myfolder", "id" : "50d9317a-3a95-401a-9638-333a0dbf04bb" "type" : "folder" "child1" : { "grandchild11" : { "depth3" : { "depth4 : { ... } } } } }
  • Sample PATCH PATCH /myfolder HTTP/1.1 +newdoc : { "type" : "document", "createdBy" : "me" } -olddoc >movingdoc : /otherfolder/mydocument ^lastModifiedBy : "me"
  • PATCH diff ops "+": create Node/Property/Resource "^": update Node/Property/Resource "-": delete Node/Property/Resource ">": move Node/Property/Resource
  • PATCH diff diff ::= members members ::= pair | pairs pair ::= key [ " : " value ] pairs ::= pair line-end pair | pair line-end pairs line-end ::= "rn" | "n" | "r" key ::= opchar id opchar ::= "+" | "^" | "-" | ">" id ::= * identification url (path | id) * value ::= value+ | value- | value^ | value> value+ ::= * a JSON object * value- ::= "" value^ ::= * any JSON value except JSON object * value> ::= id
  • POST wrap 1 POST /myfolder/my.gif HTTP/1.1 Content-Type: multipart/form-data; boundary=---------21447684891610979728262467120 Content-Length: 123 ---------21447684891610979728262467120 Content-Disposition: form-data; name="data" Content-Type: image/gif GIF89a...................!.......,............s...f.; ---------21447684891610979728262467120 Content-Disposition: form-data; name="jsop:diff" Content-Type: text/plain ^lastModifiedBy : "me" +exif { cameraMake : "Apple", cameraModel : "Apple" } ---------21447684891610979728262467120--
  • POST wrap 2 POST /myfolder/my.gif HTTP/1.1 Content-Type: multipart/form-data; boundary=---------21447684891610979728262467120 Content-Length: 123 ---------21447684891610979728262467120 Content-Disposition: form-data; name="exif/cameraMake" Content-Type: text/plain Another Vendor ---------21447684891610979728262467120--
  • POST wrap 3 POST /myfolder/ HTTP/1.1 Content-Type: multipart/form-data; boundary=---------21447684891610979728262467120 Content-Length: 123 ---------21447684891610979728262467120 Content-Disposition: form-data; name=""; filename="my.gif" Content-Type: image/gif GIF89a...................!.......,............s...f.; ---------21447684891610979728262467120 Content-Disposition: form-data; name=""; filename="yo.gif" Content-Type: image/gif GIF89a...................!.......,............s...f.; ---------21447684891610979728262467120 --
  • JCR modeling tips
  • thanks.