SlideShare uma empresa Scribd logo
1 de 36
Baixar para ler offline
HTTP, AtomPub, REST & CMIS
27-jan-2009 / CMIS F2F - Redmond
David Nuescheler
with input from Julian Reschke
Agenda

 REST & HTTP intro
 AtomPub vs. CMIS
 A good “Web”-citizen: Specific issues
 General Questions for the TC
REST & HTTP Introduction
related to CMIS
REST & HTTP intro




      REST is an
      architectural style.
                          ”Bindings”
      *not a protocol.
                         not possible
REST & HTTP intro




      A “good HTTP citizen”
      follows REST constraints
      *not necessarily all constraints.

                                           Lessons
                                          learned.
Good HTTP citizens
(incomplete)


    (1) Stateless


            Current Draf
                         t
                 OK
Good HTTP citizens
(incomplete)


   (2) Data vs. Control Orientation
   (3) Bookmarkability / Linkability
   (4) Proper use of HTTP Methods
   (5) Distributed Cacheability
   (6) Self Descriptive Messages
   (7) Decoupling
                     Current Draf
                                  t
                     needsfixing
AtomPub vs. CMIS
AtomPub vs. CMIS




      AtomPub is by design
      functionally very limited.
      *currently
                   WebDav?
AtomPub vs. CMIS




      AtomPub does not support
      Folders.
      *and a lot of other things.
                                    “ dd it” to
                                    A
                                    AtomPub.
AtomPub vs. CMIS




      Be a “good AtomPub
      citizen”.
                                    Get
      *well designed extension.
                                  AtomPub
                                   autho
                                      rs.
A good “Web”-citizen:
Specific CMIS issues.
Reference to REST



      Rename REST-Bindings to quot;AtomPub
      Bindingsquot; or quot;AtomPub Extensionsquot;



                          issue - 8
                                1
CMIS- headers




      Reconsider HTTP Extensions

      Recommendation: Drop headers in favour
      of query parameters

                              issue - 9
                                    1
Terminology




      various terminology issues

      APP -> AtomPub
      Atom call -> [HTTP|AtomPub] request
      HTTP Header Tag -> HTTP Header
      URI arguments -> query parameters

                                            issue - 1
                                                  2
JSON MIME type




      bad MIME type for JSON
      specified

      “The MIME media type for JSON text is application/json.”
      http://tools.ietf.org/html/rfc4627


                                                                 issue - 2
                                                                       2
broken XML in examples




      Fix XML
      There are several examples where the XML is broken in that
      ampersands appear unescaped in attribute values, such as in:

      query:
      <link rel=quot;nextquot; href=quot;http://example.org/
      cmis/main?unfiled&n=100quot;/>



                                                                issue - 3
                                                                      2
cacheability extended request
headers



       cacheability in presence of
       extension request headers
       Should specify Vary header.




                                     issue - 4
                                           2
Permission Denied




      mapping for
      PermissionDeniedException
      Should be 403 not 401




                                  issue - 5
                                        2
syntax for CMIS link types




       'cmis-' before the link name
       Short names need to be registered with IANA. The alternative is
       to use absolute URIs for the link names (actually IRIs)
       http://greenbytes.de/tech/webdav/rfc4287.html#rfc.section.4.2.7.2




                                                                       issue - 6
                                                                             2
Stability of IDs in atom feeds




       URL does not satisfy atom id
       requirements
       http://greenbytes.de/tech/webdav/rfc4287.html#rfc.section.4.2.6
       quot;The quot;atom:idquot; element conveys a permanent, universally unique
       identifier for an entry or feed.quot;



                                                                         issue - 7
                                                                               2
use of PUT for partial updates




       Partial update should not use
       PUT
       This really should use PATCH (<http://tools.ietf.org/html/
       rfc2068#section-19.6.1.1&gt;), or alternatively POST




                                                                    issue - 8
                                                                          2
Location header in examples




       Wrong location headers
       In general, for PUT->2xx, the only legal Location header value would
       be one that is identical to the RequestURI.




                                                                        issue - 9
                                                                              2
confusion about mime types




      Mime-types?
      inconsistent use of mimetypes
      “Application/cmisquery+xml”
      “Application/cmisallowableactions+xml”
      quot;application/cmis+xml;type=searchrequestquot;

      mime-types need a proper definition suitable for IANA
      registration
                                                              issue -30
creating new resources




       AtomPub vs. CMIS
       RFC 5023: new non-atom-entry resources are created by
       POSTing to a media collection

       In CMIS, createDocument suggests to create the media entry
       first, and to either inline the content (base64!), or to set the
       content in a second request on the media entry.


                                                                      issue -31
PUT semantics conflict



       quot;Because repositories MAY automatically
       create new Document Versions on a user's
       behalf, the Location returned may not match
       the URL of the PUT request.quot;

       Don’t use PUT.



                                               issue -32
content negotiation priorities



       quot;When the client sends an Accept header
       that applies to more than one format, the
       CMIS Atom format will be chosen.quot;

       Even if quality values give preference to a different format, and
       that different format is supported by the server?



                                                                     issue -33
content negotiation priorities



       quot;When the client sends an Accept header
       that applies to more than one format, the
       CMIS Atom format will be chosen.quot;

       Even if quality values give preference to a different format, and
       that different format is supported by the server?



                                                                     issue -34
General Questions for the TC
Why have a “REST” binding?




      What’s the motivation
      behind the second
      binding?
Motivation? Guesses....



  1. easy HTTP access using browsers?
  2. standard HTTP interface for files and folders?
  3. easy Atom access using feed tools / Atom Readers?
  4. buzzword compliance?
  5. ??
1) Browsers?




      Recommendation:
      XHTML + microformats
2) Files and Folders?




       Recommendation:
       WebDAV
3) Atom Feed tools?




      Is this really a match for
      the CMIS Domain Model?
      If yes, we should really
      make it Atom.
4) Buzzword compliance?




      Recommendation:
      Define your own mime-types.
      Use standard link relations and hypertext-enabled
      data formats.
      All important resources must have a URI.
Why two mandatory bindings?




      Is this really a good thing?
      Are the AtomPub bindings
      worth the trouble?

Mais conteúdo relacionado

Mais procurados

HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1Daniel Austin
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 IntroductionWalter Liu
 
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2Load Impact
 
What HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For YouWhat HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For YouMark Nottingham
 
Implementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixImplementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixAdrian Trenaman
 
21 Www Web Services
21 Www Web Services21 Www Web Services
21 Www Web Servicesroyans
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战Jerry Qu
 
オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由Kazuho Oku
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016Daniel Stenberg
 
PyCon 2005 PyBlosxom
PyCon 2005 PyBlosxomPyCon 2005 PyBlosxom
PyCon 2005 PyBlosxomTed Leung
 
HTTP/2 and Java: Current Status
HTTP/2 and Java: Current StatusHTTP/2 and Java: Current Status
HTTP/2 and Java: Current StatusSimone Bordet
 
Hosting Guide (Arabic)
Hosting Guide (Arabic)Hosting Guide (Arabic)
Hosting Guide (Arabic)webhostingguy
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? Sigma Software
 
HTTP/2 What's inside and Why
HTTP/2 What's inside and WhyHTTP/2 What's inside and Why
HTTP/2 What's inside and WhyAdrian Cole
 
WebServices in ServiceMix with CXF
WebServices in ServiceMix with CXFWebServices in ServiceMix with CXF
WebServices in ServiceMix with CXFAdrian Trenaman
 

Mais procurados (20)

HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1HTML5, HTTP2, and You 1.1
HTML5, HTTP2, and You 1.1
 
HTTP/2 Introduction
HTTP/2 IntroductionHTTP/2 Introduction
HTTP/2 Introduction
 
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
O'Reilly Fluent Conference: HTTP/1.1 vs. HTTP/2
 
What HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For YouWhat HTTP/2.0 Will Do For You
What HTTP/2.0 Will Do For You
 
Implementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMixImplementing WebServices with Camel and CXF in ServiceMix
Implementing WebServices with Camel and CXF in ServiceMix
 
21 Www Web Services
21 Www Web Services21 Www Web Services
21 Www Web Services
 
HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战HTTP2:新的机遇与挑战
HTTP2:新的机遇与挑战
 
Http/2
Http/2Http/2
Http/2
 
HTTP2 is Here!
HTTP2 is Here!HTTP2 is Here!
HTTP2 is Here!
 
オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由オープンソース開発者がDeNAを選ぶ理由
オープンソース開発者がDeNAを選ぶ理由
 
Http2
Http2Http2
Http2
 
HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016HTTP/2 Update - FOSDEM 2016
HTTP/2 Update - FOSDEM 2016
 
PyCon 2005 PyBlosxom
PyCon 2005 PyBlosxomPyCon 2005 PyBlosxom
PyCon 2005 PyBlosxom
 
HTTP/2 and Java: Current Status
HTTP/2 and Java: Current StatusHTTP/2 and Java: Current Status
HTTP/2 and Java: Current Status
 
SPDY and HTTP/2
SPDY and HTTP/2SPDY and HTTP/2
SPDY and HTTP/2
 
Hosting Guide (Arabic)
Hosting Guide (Arabic)Hosting Guide (Arabic)
Hosting Guide (Arabic)
 
HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know? HTTP 2.0 – What do I need to know?
HTTP 2.0 – What do I need to know?
 
spdy
spdyspdy
spdy
 
HTTP/2 What's inside and Why
HTTP/2 What's inside and WhyHTTP/2 What's inside and Why
HTTP/2 What's inside and Why
 
WebServices in ServiceMix with CXF
WebServices in ServiceMix with CXFWebServices in ServiceMix with CXF
WebServices in ServiceMix with CXF
 

Semelhante a CMIS REST HTTP

Expert Tips for Successful Kubernetes Deployments on AWS
Expert Tips for Successful Kubernetes Deployments on AWSExpert Tips for Successful Kubernetes Deployments on AWS
Expert Tips for Successful Kubernetes Deployments on AWSAmazon Web Services
 
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS SummitRun Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS SummitAmazon Web Services
 
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018Amazon Web Services
 
Expert Tips for Successful Kubernetes Deployment on AWS
Expert Tips for Successful Kubernetes Deployment on AWSExpert Tips for Successful Kubernetes Deployment on AWS
Expert Tips for Successful Kubernetes Deployment on AWSAmazon Web Services
 
Computer networking mcis 6163 project
Computer networking mcis 6163 projectComputer networking mcis 6163 project
Computer networking mcis 6163 projectAnakinzs
 
ARM CoAP Tutorial
ARM CoAP TutorialARM CoAP Tutorial
ARM CoAP Tutorialzdshelby
 
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...Edward Burns
 
SophiaConf2010 Présentation des Retours d'expériences de la Conférence du 08 ...
SophiaConf2010 Présentation des Retours d'expériences de la Conférence du 08 ...SophiaConf2010 Présentation des Retours d'expériences de la Conférence du 08 ...
SophiaConf2010 Présentation des Retours d'expériences de la Conférence du 08 ...TelecomValley
 
CON410 - Deep Dive into Container Networking (re:Invent 2018)
CON410 - Deep Dive into Container Networking (re:Invent 2018)CON410 - Deep Dive into Container Networking (re:Invent 2018)
CON410 - Deep Dive into Container Networking (re:Invent 2018)aniait
 
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018Amazon Web Services
 
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterPractical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterDoris Chen
 
20191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 220191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 2makker_nl
 
Innovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesInnovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesSteve Speicher
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)Simon Haslam
 
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...HostedbyConfluent
 
K8s best practices from the field!
K8s best practices from the field!K8s best practices from the field!
K8s best practices from the field!DoiT International
 
MongoDB World 2018: MongoDB for High Volume Time Series Data Streams
MongoDB World 2018: MongoDB for High Volume Time Series Data StreamsMongoDB World 2018: MongoDB for High Volume Time Series Data Streams
MongoDB World 2018: MongoDB for High Volume Time Series Data StreamsMongoDB
 
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)Amazon Web Services
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupStefan Schimanski
 

Semelhante a CMIS REST HTTP (20)

Expert Tips for Successful Kubernetes Deployments on AWS
Expert Tips for Successful Kubernetes Deployments on AWSExpert Tips for Successful Kubernetes Deployments on AWS
Expert Tips for Successful Kubernetes Deployments on AWS
 
Top 8 WCM Trends 2010
Top 8 WCM Trends 2010Top 8 WCM Trends 2010
Top 8 WCM Trends 2010
 
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS SummitRun Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
Run Kubernetes with Amazon EKS - SRV318 - Chicago AWS Summit
 
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
Expert Tips for Successful Kubernetes Deployment - AWS Summit Sydney 2018
 
Expert Tips for Successful Kubernetes Deployment on AWS
Expert Tips for Successful Kubernetes Deployment on AWSExpert Tips for Successful Kubernetes Deployment on AWS
Expert Tips for Successful Kubernetes Deployment on AWS
 
Computer networking mcis 6163 project
Computer networking mcis 6163 projectComputer networking mcis 6163 project
Computer networking mcis 6163 project
 
ARM CoAP Tutorial
ARM CoAP TutorialARM CoAP Tutorial
ARM CoAP Tutorial
 
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
HTTP/2 Comes to Java: Servlet 4.0 and what it means for the Java/Jakarta EE e...
 
SophiaConf2010 Présentation des Retours d'expériences de la Conférence du 08 ...
SophiaConf2010 Présentation des Retours d'expériences de la Conférence du 08 ...SophiaConf2010 Présentation des Retours d'expériences de la Conférence du 08 ...
SophiaConf2010 Présentation des Retours d'expériences de la Conférence du 08 ...
 
CON410 - Deep Dive into Container Networking (re:Invent 2018)
CON410 - Deep Dive into Container Networking (re:Invent 2018)CON410 - Deep Dive into Container Networking (re:Invent 2018)
CON410 - Deep Dive into Container Networking (re:Invent 2018)
 
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
Deep Dive into Container Networking (CON410-R1) - AWS re:Invent 2018
 
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps FasterPractical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
Practical Performance Tips and Tricks to Make Your HTML/JavaScript Apps Faster
 
20191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 220191201 kubernetes managed weblogic revival - part 2
20191201 kubernetes managed weblogic revival - part 2
 
Innovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open InterfacesInnovate2014 Better Integrations Through Open Interfaces
Innovate2014 Better Integrations Through Open Interfaces
 
The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)The Kubernetes WebLogic revival (part 2)
The Kubernetes WebLogic revival (part 2)
 
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
A Look into the Mirror: Patterns and Best Practices for MirrorMaker2 | Cliff ...
 
K8s best practices from the field!
K8s best practices from the field!K8s best practices from the field!
K8s best practices from the field!
 
MongoDB World 2018: MongoDB for High Volume Time Series Data Streams
MongoDB World 2018: MongoDB for High Volume Time Series Data StreamsMongoDB World 2018: MongoDB for High Volume Time Series Data Streams
MongoDB World 2018: MongoDB for High Volume Time Series Data Streams
 
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
具備高可用性和可擴展性的 Kubernetes 服務 (Amazon EKS)
 
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes MeetupKubernetes Architecture and Introduction – Paris Kubernetes Meetup
Kubernetes Architecture and Introduction – Paris Kubernetes Meetup
 

Mais de 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
 
NLJUG: Content Management, Standards, Opensource & JCP
NLJUG: Content Management, Standards, Opensource & JCPNLJUG: Content Management, Standards, Opensource & JCP
NLJUG: Content Management, Standards, Opensource & JCPDavid 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: Content Management Standards
FrOSCamp Zurich: Content Management StandardsFrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management StandardsDavid 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
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5David Nuescheler
 
JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010David Nuescheler
 

Mais de 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
 
NLJUG: Content Management, Standards, Opensource & JCP
NLJUG: Content Management, Standards, Opensource & JCPNLJUG: Content Management, Standards, Opensource & JCP
NLJUG: Content Management, Standards, Opensource & JCP
 
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: Content Management Standards
FrOSCamp Zurich: Content Management StandardsFrOSCamp Zurich: Content Management Standards
FrOSCamp Zurich: Content Management Standards
 
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
 
Agile Edge Valtech
Agile Edge ValtechAgile Edge Valtech
Agile Edge Valtech
 
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.
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
 
JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010JBoye Presentation: WCM Trends for 2010
JBoye Presentation: WCM Trends for 2010
 
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?
 

Último

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilV3cube
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

CMIS REST HTTP

  • 1. HTTP, AtomPub, REST & CMIS 27-jan-2009 / CMIS F2F - Redmond David Nuescheler with input from Julian Reschke
  • 2. Agenda  REST & HTTP intro  AtomPub vs. CMIS  A good “Web”-citizen: Specific issues  General Questions for the TC
  • 3. REST & HTTP Introduction related to CMIS
  • 4. REST & HTTP intro REST is an architectural style. ”Bindings” *not a protocol. not possible
  • 5. REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. Lessons learned.
  • 6. Good HTTP citizens (incomplete) (1) Stateless Current Draf t OK
  • 7. Good HTTP citizens (incomplete) (2) Data vs. Control Orientation (3) Bookmarkability / Linkability (4) Proper use of HTTP Methods (5) Distributed Cacheability (6) Self Descriptive Messages (7) Decoupling Current Draf t needsfixing
  • 9. AtomPub vs. CMIS AtomPub is by design functionally very limited. *currently WebDav?
  • 10. AtomPub vs. CMIS AtomPub does not support Folders. *and a lot of other things. “ dd it” to A AtomPub.
  • 11. AtomPub vs. CMIS Be a “good AtomPub citizen”. Get *well designed extension. AtomPub autho rs.
  • 13. Reference to REST Rename REST-Bindings to quot;AtomPub Bindingsquot; or quot;AtomPub Extensionsquot; issue - 8 1
  • 14. CMIS- headers Reconsider HTTP Extensions Recommendation: Drop headers in favour of query parameters issue - 9 1
  • 15. Terminology various terminology issues APP -> AtomPub Atom call -> [HTTP|AtomPub] request HTTP Header Tag -> HTTP Header URI arguments -> query parameters issue - 1 2
  • 16. JSON MIME type bad MIME type for JSON specified “The MIME media type for JSON text is application/json.” http://tools.ietf.org/html/rfc4627 issue - 2 2
  • 17. broken XML in examples Fix XML There are several examples where the XML is broken in that ampersands appear unescaped in attribute values, such as in: query: <link rel=quot;nextquot; href=quot;http://example.org/ cmis/main?unfiled&n=100quot;/> issue - 3 2
  • 18. cacheability extended request headers cacheability in presence of extension request headers Should specify Vary header. issue - 4 2
  • 19. Permission Denied mapping for PermissionDeniedException Should be 403 not 401 issue - 5 2
  • 20. syntax for CMIS link types 'cmis-' before the link name Short names need to be registered with IANA. The alternative is to use absolute URIs for the link names (actually IRIs) http://greenbytes.de/tech/webdav/rfc4287.html#rfc.section.4.2.7.2 issue - 6 2
  • 21. Stability of IDs in atom feeds URL does not satisfy atom id requirements http://greenbytes.de/tech/webdav/rfc4287.html#rfc.section.4.2.6 quot;The quot;atom:idquot; element conveys a permanent, universally unique identifier for an entry or feed.quot; issue - 7 2
  • 22. use of PUT for partial updates Partial update should not use PUT This really should use PATCH (<http://tools.ietf.org/html/ rfc2068#section-19.6.1.1&gt;), or alternatively POST issue - 8 2
  • 23. Location header in examples Wrong location headers In general, for PUT->2xx, the only legal Location header value would be one that is identical to the RequestURI. issue - 9 2
  • 24. confusion about mime types Mime-types? inconsistent use of mimetypes “Application/cmisquery+xml” “Application/cmisallowableactions+xml” quot;application/cmis+xml;type=searchrequestquot; mime-types need a proper definition suitable for IANA registration issue -30
  • 25. creating new resources AtomPub vs. CMIS RFC 5023: new non-atom-entry resources are created by POSTing to a media collection In CMIS, createDocument suggests to create the media entry first, and to either inline the content (base64!), or to set the content in a second request on the media entry. issue -31
  • 26. PUT semantics conflict quot;Because repositories MAY automatically create new Document Versions on a user's behalf, the Location returned may not match the URL of the PUT request.quot; Don’t use PUT. issue -32
  • 27. content negotiation priorities quot;When the client sends an Accept header that applies to more than one format, the CMIS Atom format will be chosen.quot; Even if quality values give preference to a different format, and that different format is supported by the server? issue -33
  • 28. content negotiation priorities quot;When the client sends an Accept header that applies to more than one format, the CMIS Atom format will be chosen.quot; Even if quality values give preference to a different format, and that different format is supported by the server? issue -34
  • 30. Why have a “REST” binding? What’s the motivation behind the second binding?
  • 31. Motivation? Guesses.... 1. easy HTTP access using browsers? 2. standard HTTP interface for files and folders? 3. easy Atom access using feed tools / Atom Readers? 4. buzzword compliance? 5. ??
  • 32. 1) Browsers? Recommendation: XHTML + microformats
  • 33. 2) Files and Folders? Recommendation: WebDAV
  • 34. 3) Atom Feed tools? Is this really a match for the CMIS Domain Model? If yes, we should really make it Atom.
  • 35. 4) Buzzword compliance? Recommendation: Define your own mime-types. Use standard link relations and hypertext-enabled data formats. All important resources must have a URI.
  • 36. Why two mandatory bindings? Is this really a good thing? Are the AtomPub bindings worth the trouble?