SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
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.

Weitere ähnliche Inhalte

Ähnlich wie FrOSCamp Zurich: Content Management Standards

JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010David Nuescheler
 
Web Content Management And Agile
Web Content Management And AgileWeb Content Management And Agile
Web Content Management And AgileValtech UK
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnValtech
 
Move your Data Center to the Cloud
Move your Data Center to the CloudMove your Data Center to the Cloud
Move your Data Center to the CloudRedZone Technologies
 
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels  - AWS Summit 2...Keynote: Your Future With Cloud Computing - Dr. Werner Vogels  - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...Amazon Web Services
 
Cmis Virtual Training Webinar 24 Nov09
Cmis Virtual Training  Webinar 24 Nov09Cmis Virtual Training  Webinar 24 Nov09
Cmis Virtual Training Webinar 24 Nov09Alfresco Software
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryJohan den Haan
 
Innovate 2012 ls 1439 linked data oslc
Innovate 2012 ls 1439 linked data oslcInnovate 2012 ls 1439 linked data oslc
Innovate 2012 ls 1439 linked data oslcSteve Speicher
 
Making of a Successful Cloud Business
Making of a Successful Cloud BusinessMaking of a Successful Cloud Business
Making of a Successful Cloud BusinessACMBangalore
 
Cloud Lock-in vs. Cloud Interoperability - Indicthreads cloud computing conf...
Cloud Lock-in vs. Cloud Interoperability  - Indicthreads cloud computing conf...Cloud Lock-in vs. Cloud Interoperability  - Indicthreads cloud computing conf...
Cloud Lock-in vs. Cloud Interoperability - Indicthreads cloud computing conf...IndicThreads
 
Zeroth review presentation - eBay Turmeric / SMC
Zeroth review presentation - eBay Turmeric / SMCZeroth review presentation - eBay Turmeric / SMC
Zeroth review presentation - eBay Turmeric / SMCArvind Krishnaa
 
AWS for Start-ups - Case Study - Go Squared
AWS for Start-ups - Case Study - Go SquaredAWS for Start-ups - Case Study - Go Squared
AWS for Start-ups - Case Study - Go SquaredAmazon Web Services
 
Cloud lockin and interoperability v2 indic threads cloud computing conferen...
Cloud lockin and interoperability v2   indic threads cloud computing conferen...Cloud lockin and interoperability v2   indic threads cloud computing conferen...
Cloud lockin and interoperability v2 indic threads cloud computing conferen...IndicThreads
 
Cloud lockin and interoperability v2 indic threads cloud computing conferen...
Cloud lockin and interoperability v2   indic threads cloud computing conferen...Cloud lockin and interoperability v2   indic threads cloud computing conferen...
Cloud lockin and interoperability v2 indic threads cloud computing conferen...IndicThreads
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Kim Clark
 
New recipes for the ever growing content cloud
New recipes for the ever growing content cloudNew recipes for the ever growing content cloud
New recipes for the ever growing content cloudCédric Hüsler
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2day
 
Federated ECM Search with CMIS
Federated ECM Search with CMISFederated ECM Search with CMIS
Federated ECM Search with CMISAlfresco Software
 
Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...
Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...
Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...CloudOps Summit
 

Ähnlich wie FrOSCamp Zurich: Content Management Standards (20)

JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010
 
Agile Edge Valtech
Agile Edge ValtechAgile Edge Valtech
Agile Edge Valtech
 
Web Content Management And Agile
Web Content Management And AgileWeb Content Management And Agile
Web Content Management And Agile
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management En
 
Move your Data Center to the Cloud
Move your Data Center to the CloudMove your Data Center to the Cloud
Move your Data Center to the Cloud
 
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels  - AWS Summit 2...Keynote: Your Future With Cloud Computing - Dr. Werner Vogels  - AWS Summit 2...
Keynote: Your Future With Cloud Computing - Dr. Werner Vogels - AWS Summit 2...
 
Cmis Virtual Training Webinar 24 Nov09
Cmis Virtual Training  Webinar 24 Nov09Cmis Virtual Training  Webinar 24 Nov09
Cmis Virtual Training Webinar 24 Nov09
 
Lessons learned in building a model driven software factory
Lessons learned in building a model driven software factoryLessons learned in building a model driven software factory
Lessons learned in building a model driven software factory
 
Innovate 2012 ls 1439 linked data oslc
Innovate 2012 ls 1439 linked data oslcInnovate 2012 ls 1439 linked data oslc
Innovate 2012 ls 1439 linked data oslc
 
Making of a Successful Cloud Business
Making of a Successful Cloud BusinessMaking of a Successful Cloud Business
Making of a Successful Cloud Business
 
Cloud Lock-in vs. Cloud Interoperability - Indicthreads cloud computing conf...
Cloud Lock-in vs. Cloud Interoperability  - Indicthreads cloud computing conf...Cloud Lock-in vs. Cloud Interoperability  - Indicthreads cloud computing conf...
Cloud Lock-in vs. Cloud Interoperability - Indicthreads cloud computing conf...
 
Zeroth review presentation - eBay Turmeric / SMC
Zeroth review presentation - eBay Turmeric / SMCZeroth review presentation - eBay Turmeric / SMC
Zeroth review presentation - eBay Turmeric / SMC
 
AWS for Start-ups - Case Study - Go Squared
AWS for Start-ups - Case Study - Go SquaredAWS for Start-ups - Case Study - Go Squared
AWS for Start-ups - Case Study - Go Squared
 
Cloud lockin and interoperability v2 indic threads cloud computing conferen...
Cloud lockin and interoperability v2   indic threads cloud computing conferen...Cloud lockin and interoperability v2   indic threads cloud computing conferen...
Cloud lockin and interoperability v2 indic threads cloud computing conferen...
 
Cloud lockin and interoperability v2 indic threads cloud computing conferen...
Cloud lockin and interoperability v2   indic threads cloud computing conferen...Cloud lockin and interoperability v2   indic threads cloud computing conferen...
Cloud lockin and interoperability v2 indic threads cloud computing conferen...
 
Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...Microservices: Where do they fit within a rapidly evolving integration archit...
Microservices: Where do they fit within a rapidly evolving integration archit...
 
New recipes for the ever growing content cloud
New recipes for the ever growing content cloudNew recipes for the ever growing content cloud
New recipes for the ever growing content cloud
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 
Federated ECM Search with CMIS
Federated ECM Search with CMISFederated ECM Search with CMIS
Federated ECM Search with CMIS
 
Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...
Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...
Cloud architecture and deployment: The Kognitio checklist, Nigel Sanctuary, K...
 

Mehr von David Nuescheler

AEM Hub - on the road with AEM
AEM Hub - on the road with AEMAEM Hub - on the road with AEM
AEM Hub - on the road with AEMDavid Nuescheler
 
Adobe Digital Government Assembly - Technologies that Drive Change.
Adobe Digital Government Assembly - Technologies that Drive Change.Adobe Digital Government Assembly - Technologies that Drive Change.
Adobe Digital Government Assembly - Technologies that Drive Change.David Nuescheler
 
evolve13: The Past, Present and Future of AEM
evolve13: The Past, Present and Future of AEMevolve13: The Past, Present and Future of AEM
evolve13: The Past, Present and Future of AEMDavid Nuescheler
 
Adobe MAX: The Future Enterprise Developer
Adobe MAX: The Future Enterprise DeveloperAdobe MAX: The Future Enterprise Developer
Adobe MAX: The Future Enterprise DeveloperDavid Nuescheler
 
Adobe MAX - WEM: 10 Whirlwind demos
Adobe MAX - WEM: 10 Whirlwind demosAdobe MAX - WEM: 10 Whirlwind demos
Adobe MAX - WEM: 10 Whirlwind demosDavid Nuescheler
 
Introducing CQ5.4: Sneak-Peek
Introducing CQ5.4: Sneak-Peek Introducing CQ5.4: Sneak-Peek
Introducing CQ5.4: Sneak-Peek David Nuescheler
 
FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010David Nuescheler
 
Future of WCM - CM Forum Belgium
Future of WCM - CM Forum BelgiumFuture of WCM - CM Forum Belgium
Future of WCM - CM Forum BelgiumDavid Nuescheler
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.David Nuescheler
 
CQ5 Singapore Workshop at NCS
CQ5 Singapore Workshop at NCSCQ5 Singapore Workshop at NCS
CQ5 Singapore Workshop at NCSDavid Nuescheler
 

Mehr von David Nuescheler (20)

AEM Hub - on the road with AEM
AEM Hub - on the road with AEMAEM Hub - on the road with AEM
AEM Hub - on the road with AEM
 
The New Marketer?
The New Marketer?The New Marketer?
The New Marketer?
 
Adobe Digital Government Assembly - Technologies that Drive Change.
Adobe Digital Government Assembly - Technologies that Drive Change.Adobe Digital Government Assembly - Technologies that Drive Change.
Adobe Digital Government Assembly - Technologies that Drive Change.
 
evolve13: The Past, Present and Future of AEM
evolve13: The Past, Present and Future of AEMevolve13: The Past, Present and Future of AEM
evolve13: The Past, Present and Future of AEM
 
Adobe MAX: The Future Enterprise Developer
Adobe MAX: The Future Enterprise DeveloperAdobe MAX: The Future Enterprise Developer
Adobe MAX: The Future Enterprise Developer
 
Adobe MAX - WEM: 10 Whirlwind demos
Adobe MAX - WEM: 10 Whirlwind demosAdobe MAX - WEM: 10 Whirlwind demos
Adobe MAX - WEM: 10 Whirlwind demos
 
The Future of ECM
The Future of ECMThe Future of ECM
The Future of ECM
 
Introducing CQ5.4: Sneak-Peek
Introducing CQ5.4: Sneak-Peek Introducing CQ5.4: Sneak-Peek
Introducing CQ5.4: Sneak-Peek
 
JCP Heartbeat Monitor
JCP Heartbeat MonitorJCP Heartbeat Monitor
JCP Heartbeat Monitor
 
FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010FrOScamp Zurich: Introducing JCR - 2010
FrOScamp Zurich: Introducing JCR - 2010
 
JSOP in 60 seconds
JSOP in 60 secondsJSOP in 60 seconds
JSOP in 60 seconds
 
Future of WCM - CM Forum Belgium
Future of WCM - CM Forum BelgiumFuture of WCM - CM Forum Belgium
Future of WCM - CM Forum Belgium
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.
 
Introducing JSR-283
Introducing JSR-283Introducing JSR-283
Introducing JSR-283
 
What's new in JSR-283?
What's new in JSR-283?What's new in JSR-283?
What's new in JSR-283?
 
Top 8 WCM Trends 2010
Top 8 WCM Trends 2010Top 8 WCM Trends 2010
Top 8 WCM Trends 2010
 
CQ5 Singapore Workshop at NCS
CQ5 Singapore Workshop at NCSCQ5 Singapore Workshop at NCS
CQ5 Singapore Workshop at NCS
 
JCR loves CMIS
JCR loves CMISJCR loves CMIS
JCR loves CMIS
 
CMS Architecture for 2009
CMS Architecture for 2009CMS Architecture for 2009
CMS Architecture for 2009
 
CMIS Plugfest Basel 2009
CMIS Plugfest Basel 2009CMIS Plugfest Basel 2009
CMIS Plugfest Basel 2009
 

FrOSCamp Zurich: Content Management Standards

  • 1. Upcoming Content Standards David Nuescheler Spec-Lead JCR (JSR-170 & JSR-283) Member of the CMIS TC Official JCR/CMIS Liaison
  • 2. 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.
  • 3. CM & Standards What’s next History, Adoption, Usage. where are we headed... 1 2 3 JCR & CMIS History and comparison.
  • 4. Introducing the CM Cloud WCM COLLAB SCM SOCIAL PIM RM DM DAM
  • 6. There is light. The Content Repository. All disciplines of CM agree on the existence and the featureset of a content repository
  • 7. 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
  • 8. 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
  • 9. CM & Standards What’s next History, Adoption, Usage. where are we headed... 1 2 3 JCR & CMIS History and comparison.
  • 10. What is CMIS? TO ED OS OP T SIS PR SEP 8 2005 OA V0.
  • 11. What is CMIS? DOMAIN MODEL LEAST COMMON CMIS DENOMINATOR DM INTEROP DOCUMENTS & FOLDERS (+RELATIONSHIPS) ATOMPUB SOAP (extension) (bindings) BINDINGS HTTP PROTOCOLS
  • 12. What is CMIS? DMIS? WS-DM?
  • 13. 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
  • 14. What is JCR? DOMAIN MODEL CONTENT REPOSITORY JCR INFRASTRUCTURE NODES & PROPERTIES (GENERAL PURPOSE) JAVA LANGUAGE (BINDING) BINDINGS API PROGRAMMING LANGUAGES
  • 15. 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
  • 16. 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
  • 17. JCR vs. CMIS Compatibility JCR CMIS VS. Apache Chemistry makes every JCR compliant repository CMIS compliant. Automatically. No work involved. RELATION COMPATIBLE
  • 18. 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
  • 19. CM & Standards What’s next History, Adoption, Usage. where are we headed... 1 2 3 JCR & CMIS History and comparison.
  • 20. CMIS 1.0 Release ed 2010 Releas Baseline Release
  • 21. CMIS 1.1 Submission Web/Browser Bindings Functional Extensions
  • 22. JCR 2.0 Release Sept ed 9 leas00 Re 2 TCK, RI & Specification
  • 23. JCR 2.1/ JSR-333 -333 JSRiner . jo ome welc Scripting, Ease of Use.
  • 24. 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.
  • 25. Scope & Goals - Client-server awareness. - Protocol and SPI bindings. Binding and liaison to OASIS / CMIS.
  • 26. Scope & Goals - Maintenance and feedback container for implementers, users and non-users. Gauge real- world interoperability. - Node type library. - Internationalization.
  • 27. Working Model - Online Community Tools - Bi-Weekly Phone Conference - Face-2-Face Meetings.
  • 29. 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
  • 30. Basics - Serialization to JSON (optionally YAML/XML) - GET (batch/hierarchical) - PUT (batch/hierarchical) - PATCH (json diff content type) - Support for binary as multipart
  • 31. Retro-style - PUT & PATCH -> multipart POST - Allows for Simple HTML forms
  • 32. Extensions - Sort-Order - Query - Typing - Locking - Versioning - Essentially: WebDAV + friends but simple
  • 33. Sample GET Request: GET /myfolder.json HTTP/1.1 Response: { "createdBy" : "uncled", "name" : "myfolder", "id" : "50d9317a-3a95-401a-9638-333a0dbf04bb" "type" : "folder" }
  • 34. 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 : { ... } } } } }
  • 35. Sample PUT PUT /myfolder HTTP/1.1 { "createdBy" : "uncled", "name" : "myfolder", "id" : "50d9317a-3a95-401a-9638-333a0dbf04bb" "type" : "folder" "child1" : { "grandchild11" : { "depth3" : { "depth4 : { ... } } } } }
  • 36. Sample PATCH PATCH /myfolder HTTP/1.1 +newdoc : { "type" : "document", "createdBy" : "me" } -olddoc >movingdoc : /otherfolder/mydocument ^lastModifiedBy : "me"
  • 37. PATCH diff ops "+": create Node/Property/Resource "^": update Node/Property/Resource "-": delete Node/Property/Resource ">": move Node/Property/Resource
  • 38. 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
  • 39. 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--
  • 40. 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--
  • 41. 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 --