Plone Web Services


Published on

Sally Kleinfeldt's summary of Plone Web services discussions at the Plone Strategic Planning Summit and the 2008 Plone Conference.

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Plone Web Services

  1. 1. Plone Web Services 2008 Plone Conference Sally Kleinfeldt, Jazkarta
  2. 2. Background • Plone’s current web services story is restricted to XMLRPC and RSS • Becoming a glaring omission • Plone Strategic Planning Summit voted it a focus area • Support an official and complete web services API (REST)
  3. 3. Previous Work • CIGNEX implemented SOAP web services on Archetypes for a customer • provides a framework to build REST APIs on top of Zope 3 • Grok provides REST web services support • Vice provides Atom syndication • Boston and Naples sprints on RESTful WS
  4. 4. PSPS Project • Ticket (includes link to plone-dev posts): • OpenPlans Page: projects/plone-web-services/project-home
  5. 5. Proposed Approaches • Custom XML schemas for serializing content objects (building on GenericSetup) • Microformats • Atom Publishing Protocol possibly with GData extensions for search • OpenSocial for Plone (JavaScript and Atom) • Use OAuth for authentication
  6. 6. Recent News • New “draft standard” announced Sept 10 • CMIS - Content Management Interoperability Services • EMC, IBM, Microsoft, Alfresco, Open Text, Oracle, SAP, and others • Draft specification for a web services standard for content management
  7. 7. CMIS • Has SOAP and REST bindings • REST binding defined as extension to Atom but tightly coupled to data model with “protocol extensions that tunnel the Web Services interface through fake-Atom and fake-HTTP” (Roy Fielding) • Has hype, buzz and industry support (try a Google search and see EMC, Alfresco ads)
  8. 8. CMIS REST: Is It Any Good? • Roy Fielding • “I am getting tired of big companies making idiotic claims about REST and their so-called RESTful architectures. The only similarity between CMIS and REST is that they both have four-letter acronyms” • rest-in-cmis
  9. 9. CMIS REST: Is It Any Good? • Roy Fielding con’t • “...unless you expect blogging clients and syndication feeds to be the primary application of CMIS, it would make a lot more sense to define the representations in a microformat of HTML, JSON,YAML, or whatever else best fits the data...”
  10. 10. CMIS REST: Is It Any Good? • Sam Ruby • Cautiously optimistic • Feels OASIS TC will address problems • 2008/10/01/CMIS
  11. 11. Questions • Should Plone adopt CMIS? or CMIS REST? • No, reconsider when/if a “standard” • Should Plone adopt microformats instead? • Not systematically, just a view so easy to add for specific cases • Should Plone adopt AtomPub? • YES!
  12. 12. Technical Approach • Existing Python AtomPub server packages include Amplee and FlatAtomPub • Plone today isn't a good fit for REST style services because the Zope2 publisher ONLY does FTP, HTTP GET/POST (quot;browser webquot;), and WebDAV
  13. 13. AtomPub WSGI App? • Idea: Atom Publishing application living in a Repoze ecosystem • Aggregate content from several Plone, Grok, etc. sites • Get around the lack of PUT/DELETE in Plone - act as a middleman • Use zgeo.atom as starting point
  14. 14. Atom For Now • Focus on providing read-only Atom representations • Atom browser view that would apply to any folderish object • Start at the root of the Plone site and discover all the Atom publishable objects by following the Atom links
  15. 15. Syndication vs. Web Services • Syndication view: content owners would need to explicitly declare folders as feeds • All-inclusive view: all content should provide the AtomPub interface
  16. 16. Conclusion • Implementing RESTful web services will be a large and complex project, given the limitations of the Zope2 publisher • Not realistic to expect it to get done in a sprint or even a series of sprints • Most likely scenario: a customer needing support for CMIS (after all!)
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.