SlideShare a Scribd company logo
1 of 16
Download to read offline
Plone Web Services
    2008 Plone Conference
    Sally Kleinfeldt, Jazkarta
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)
Previous Work
• CIGNEX implemented SOAP web services
  on Archetypes for a customer
• z3c.rest 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
PSPS Project

• Ticket (includes link to plone-dev posts):
  http://dev.plone.org/plone/ticket/7842
• OpenPlans Page: http://www.openplans.org/
  projects/plone-web-services/project-home
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
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
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)
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”
 • http://roy.gbiv.com/untangled/2008/no-
    rest-in-cmis
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...”
CMIS REST:
      Is It Any Good?
• Sam Ruby
 • Cautiously optimistic
 • Feels OASIS TC will address problems
 • http://www.intertwingly.net/blog/
    2008/10/01/CMIS
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!
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
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
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
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
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!)

More Related Content

What's hot

Introduction to Web Sockets
Introduction to Web SocketsIntroduction to Web Sockets
Introduction to Web SocketsJumping Bean
 
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphereCodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphereCodecamp Romania
 
DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5Eyal Vardi
 
Selecting and deploying automated optimization solutions
Selecting and deploying automated optimization solutionsSelecting and deploying automated optimization solutions
Selecting and deploying automated optimization solutionsPatrick Meenan
 
Measuring the visual experience of website performance
Measuring the visual experience of website performanceMeasuring the visual experience of website performance
Measuring the visual experience of website performancePatrick Meenan
 

What's hot (8)

Web Sockets
Web SocketsWeb Sockets
Web Sockets
 
COMET in Plone
COMET in PloneCOMET in Plone
COMET in Plone
 
Introduction to Web Sockets
Introduction to Web SocketsIntroduction to Web Sockets
Introduction to Web Sockets
 
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphereCodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
CodeCamp Iasi 10 march 2012 - websockets-with-atmosphere
 
DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5DEV301- Web Service Programming with WCF 3.5
DEV301- Web Service Programming with WCF 3.5
 
Selecting and deploying automated optimization solutions
Selecting and deploying automated optimization solutionsSelecting and deploying automated optimization solutions
Selecting and deploying automated optimization solutions
 
Websocket
WebsocketWebsocket
Websocket
 
Measuring the visual experience of website performance
Measuring the visual experience of website performanceMeasuring the visual experience of website performance
Measuring the visual experience of website performance
 

Similar to Plone Web Services

Introduction to AtomPub Web Services
Introduction to AtomPub Web ServicesIntroduction to AtomPub Web Services
Introduction to AtomPub Web ServicesBen Ramsey
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)Kevin Gill
 
Rich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientRich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientFabian Lange
 
Semantic Web Services: A RESTful Approach
Semantic Web Services: A RESTful ApproachSemantic Web Services: A RESTful Approach
Semantic Web Services: A RESTful ApproachOtavio Ferreira
 
Python Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in PythonPython Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in Pythonabhishekdf3
 
OpenCms Days 2012 - OpenCms 8 as a JSR-286 compliant portlet server
OpenCms Days 2012 - OpenCms 8 as a JSR-286 compliant portlet serverOpenCms Days 2012 - OpenCms 8 as a JSR-286 compliant portlet server
OpenCms Days 2012 - OpenCms 8 as a JSR-286 compliant portlet serverAlkacon Software GmbH & Co. KG
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by GoogleASG
 
Build APIs With Kapow Mashup Server
Build APIs With Kapow Mashup ServerBuild APIs With Kapow Mashup Server
Build APIs With Kapow Mashup ServerAndreas Krohn
 
Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Ben Ramsey
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Igalia
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Aviran Mordo
 
Applications of the REST Principle
Applications of the REST PrincipleApplications of the REST Principle
Applications of the REST Principleelliando dias
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolAlessandro Cinelli (cirpo)
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPressPantheon
 
SearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds 2019 - Nichola stott - The state of PWAsSearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds 2019 - Nichola stott - The state of PWAsSearchLeeds
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)Saltlux zinyus
 
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)zinyus
 

Similar to Plone Web Services (20)

Introduction to AtomPub Web Services
Introduction to AtomPub Web ServicesIntroduction to AtomPub Web Services
Introduction to AtomPub Web Services
 
HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)HTML5 - The Python Angle (PyCon Ireland 2010)
HTML5 - The Python Angle (PyCon Ireland 2010)
 
T2 Web Framework
T2 Web FrameworkT2 Web Framework
T2 Web Framework
 
Rich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich ClientRich Ajax Platform - Programming for Web and Rich Client
Rich Ajax Platform - Programming for Web and Rich Client
 
Semantic Web Services: A RESTful Approach
Semantic Web Services: A RESTful ApproachSemantic Web Services: A RESTful Approach
Semantic Web Services: A RESTful Approach
 
Python Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in PythonPython Web Framework – A Detailed List of Web Frameworks in Python
Python Web Framework – A Detailed List of Web Frameworks in Python
 
OpenCms Days 2012 - OpenCms 8 as a JSR-286 compliant portlet server
OpenCms Days 2012 - OpenCms 8 as a JSR-286 compliant portlet serverOpenCms Days 2012 - OpenCms 8 as a JSR-286 compliant portlet server
OpenCms Days 2012 - OpenCms 8 as a JSR-286 compliant portlet server
 
Angular jS Introduction by Google
Angular jS Introduction by GoogleAngular jS Introduction by Google
Angular jS Introduction by Google
 
Build APIs With Kapow Mashup Server
Build APIs With Kapow Mashup ServerBuild APIs With Kapow Mashup Server
Build APIs With Kapow Mashup Server
 
Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)Grokking REST (ZendCon 2010)
Grokking REST (ZendCon 2010)
 
Mashups
MashupsMashups
Mashups
 
Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)Web Technologies in Automotive & Robotics (BlinkOn 10)
Web Technologies in Automotive & Robotics (BlinkOn 10)
 
Scaling wix.com to 100 million users
Scaling wix.com to 100 million users Scaling wix.com to 100 million users
Scaling wix.com to 100 million users
 
Applications of the REST Principle
Applications of the REST PrincipleApplications of the REST Principle
Applications of the REST Principle
 
Divide et impera
Divide et imperaDivide et impera
Divide et impera
 
PHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the foolPHP is the King, nodejs is the Prince and Lua is the fool
PHP is the King, nodejs is the Prince and Lua is the fool
 
Decoupled Architecture and WordPress
Decoupled Architecture and WordPressDecoupled Architecture and WordPress
Decoupled Architecture and WordPress
 
SearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds 2019 - Nichola stott - The state of PWAsSearchLeeds 2019 - Nichola stott - The state of PWAs
SearchLeeds 2019 - Nichola stott - The state of PWAs
 
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가토크릴레이 1탄 html5 전망 (전종홍 박사)
 
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
전문가 토크릴레이 1탄 html5 전망 (전종홍 박사)
 

More from Sally Kleinfeldt

The Future of Search in Plone
The Future of Search in PloneThe Future of Search in Plone
The Future of Search in PloneSally Kleinfeldt
 
Agile Development with Plone
Agile Development with PloneAgile Development with Plone
Agile Development with PloneSally Kleinfeldt
 
Large Files without the Trials
Large Files without the TrialsLarge Files without the Trials
Large Files without the TrialsSally Kleinfeldt
 
Scientific Collaboration with Plone: A Case Study
Scientific Collaboration with Plone: A Case StudyScientific Collaboration with Plone: A Case Study
Scientific Collaboration with Plone: A Case StudySally Kleinfeldt
 
Scientific Collaboration with Plone: Sharing Bibliographies, Papers, Discussions
Scientific Collaboration with Plone: Sharing Bibliographies, Papers, DiscussionsScientific Collaboration with Plone: Sharing Bibliographies, Papers, Discussions
Scientific Collaboration with Plone: Sharing Bibliographies, Papers, DiscussionsSally Kleinfeldt
 
Running a Small Business with Plone
Running a Small Business with PloneRunning a Small Business with Plone
Running a Small Business with PloneSally Kleinfeldt
 

More from Sally Kleinfeldt (6)

The Future of Search in Plone
The Future of Search in PloneThe Future of Search in Plone
The Future of Search in Plone
 
Agile Development with Plone
Agile Development with PloneAgile Development with Plone
Agile Development with Plone
 
Large Files without the Trials
Large Files without the TrialsLarge Files without the Trials
Large Files without the Trials
 
Scientific Collaboration with Plone: A Case Study
Scientific Collaboration with Plone: A Case StudyScientific Collaboration with Plone: A Case Study
Scientific Collaboration with Plone: A Case Study
 
Scientific Collaboration with Plone: Sharing Bibliographies, Papers, Discussions
Scientific Collaboration with Plone: Sharing Bibliographies, Papers, DiscussionsScientific Collaboration with Plone: Sharing Bibliographies, Papers, Discussions
Scientific Collaboration with Plone: Sharing Bibliographies, Papers, Discussions
 
Running a Small Business with Plone
Running a Small Business with PloneRunning a Small Business with Plone
Running a Small Business with Plone
 

Recently uploaded

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 

Recently uploaded (20)

Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 

Plone Web Services

  • 1. Plone Web Services 2008 Plone Conference Sally Kleinfeldt, Jazkarta
  • 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. Previous Work • CIGNEX implemented SOAP web services on Archetypes for a customer • z3c.rest 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. PSPS Project • Ticket (includes link to plone-dev posts): http://dev.plone.org/plone/ticket/7842 • OpenPlans Page: http://www.openplans.org/ projects/plone-web-services/project-home
  • 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. 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. 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. 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” • http://roy.gbiv.com/untangled/2008/no- rest-in-cmis
  • 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. CMIS REST: Is It Any Good? • Sam Ruby • Cautiously optimistic • Feels OASIS TC will address problems • http://www.intertwingly.net/blog/ 2008/10/01/CMIS
  • 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. 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. 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. 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. 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. 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!)