36
HTTP, AtomPub, REST & CMIS 27-jan-2009 / CMIS F2F - Redmond David Nuescheler with input from Julian Reschke

HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

HTTP, AtomPub, REST & CMIS

27-jan-2009 / CMIS F2F - Redmond

David Nuescheler with input from Julian Reschke

Page 2: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

Agenda

REST & HTTP intro

AtomPub vs. CMIS

A good “Web”-citizen: Specific issues

General Questions for the TC

Page 3: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

REST & HTTP Introductionrelated to CMIS

Page 4: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

REST & HTTP intro

REST is an architectural style.

*not a protocol. ”Bindings” not possible

Page 5: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

REST & HTTP intro

A “good HTTP citizen” follows REST constraints

*not necessarily all constraints.

Lessons learned.

Page 6: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

Good HTTP citizens (incomplete)

(1) Stateless

Current DraftOK

Page 7: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

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 Draftneeds fixing

Page 8: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

AtomPub vs. CMIS

Page 9: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

AtomPub vs. CMIS

AtomPub is by design functionally very limited.

*currently WebDav?

Page 10: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

AtomPub vs. CMIS

AtomPub does not supportFolders.

*and a lot of other things. “Add it” to AtomPub.

Page 11: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

AtomPub vs. CMIS

Be a “good AtomPub citizen”.

*well designed extension. Get AtomPub authors.

Page 12: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

A good “Web”-citizen: Specific CMIS issues.

Page 29: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

General Questions for the TC

Page 30: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

Why have a “REST” binding?

What’s the motivation behind the second binding?

Page 31: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

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. ??

Page 32: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

1) Browsers?

Recommendation:XHTML + microformats

Page 33: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

2) Files and Folders?

Recommendation:WebDAV

Page 34: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

3) Atom Feed tools?

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

Page 35: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

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.

Page 36: HTTP, AtomPub, REST & CMIS - OASIS · REST & HTTP intro A “good HTTP citizen” follows REST constraints *not necessarily all constraints. s . Good HTTP citizens (incomplete) (1)

Why two mandatory bindings?

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