RESTful Publish Subscribe Xiang Su Xiang suee oulu
RESTful Publish Subscribe Xiang Su Xiang. su@ee. oulu. fi 1 21. 10. 2008
Web content syndication • Explosion of self-publishing form like web blogs, online journals, Wikis, and other similar content • Web content syndication has been an area of growing importance on the Internet. – Syndication technology provides an easily automated method of receiving information. – XML-RPC based protocols are widely used for editing web content – RSS uses XML-RPC. 2 21. 10. 2008
Why RESTful? • XML-RPC based protocols suffer from these limitations: – Native HTTP authentication is not used; – Passwords sent in the clear; – Poor internationalization. (The XML-RPC protocol restricts element content to ASCII); – No built-in extensibility mechanisms; – No ability to specify the title or date of an entry being edited; every request is a POST to the same URI. • REpresentational State Transfer (REST) provides a possibility to implement simple, scalable, but still powerful protocols for blogging and other applications 3 21. 10. 2008
REST Principles • Resources are the key abstraction of application state and functionality, which identified by URIs • Every resource is uniquely addressable using a universal syntax for use in hypermedia links. • All interactions are context-free. • Only use standard methods. • Representation oriented 4 21. 10. 2008
RESTful Publish/Subscribe • Design of a RESTful Publish/Subscribe protocol should comply with these principles. – Use resources with URIs to identify everything: documents, document collections, and feeds. – Only use basic HTTP methods and response codes in the protocol operation. – Operations are stateless. – The protocol operations such as creating a resource or editing a resource are representation oriented. 5 21. 10. 2008
Atom Publishing Protocol(Atom. Pub) • Atom. Pub is the most popular protocol in the RESTful services ecosystems. • It has a canonical HTTP-based approach for creating and editing Web resources. • It is designed fundamentally around the idea of using the basic operations provided by the HTTP protocol, such as GET, PUT, and DELETE, to pass around instances of Atom Feed and Entry documents that represent things like blog entries, Wiki pages, calendar entries, and so on. 6 21. 10. 2008
Atom Publishing Protocol(Atom. Pub) • The Atom. Pub supports the creation of arbitrary web resources and provides facilities for: – Collections: Sets of resources, which can be retrieved in whole or in part. – Introspection: Discovering and describing collections. – Editing: Creating, updating and deleting resources. 7 21. 10. 2008
Sample Atom. Pub publishing environment 1) By creating, editing, and deleting Atom entries, the client changes the state on a repository of entries. 2) Public-oriented resources, such as HTML pages and Atom feeds, are derived from the repository, and Atom. Pub interactions cause them to be updated 8 21. 10. 2008
Atom. Pub Requests and Behaviors 9 Resource Method Representation Description Member GET Atom Entry Retrieve Service Document enumerating the URIs of a group of collections Collection GET Atom Feed Retrieve a list of the members in the collection. May be a subset. Collection POST Atom Entry Create a new member resource with the given Atom Entry. Member GET Atom Entry Retrieve the Atom representation of the entry. Member PUT Atom Entry Update the member resource with the Atom entry representation. Member DELETE Atom Entry Delete the member resource. 21. 10. 2008
Limitation of Atom. Pub • Mismatch with data models that don’t follow microcontent. – The Atom data model fits very well for representing authored content or microcontent on the Web such as blog posts, lists of links, online photo albums and calendar events. – Atom entry has an an ID, a title, an updated date, one or more authors and textual content can be met and actually makes a lot of sense. – there are other kinds online data that don't really fit this model. 10 21. 10. 2008
Limitation of Atom. Pub • Poor support for hierarchy – The Atom data model doesn't directly support nesting or hierarchies. – If you want to represent an item that has children they must be referenced via a link instead of included inline. – When there is a direct parent/child hierarchical relationship, where the child is an addressable resource in its own right, it is cumbersome for clients to always have to make two or more calls to get all the data they need. 11 21. 10. 2008
Web Structured, Schema’d & Searchable (Web 3 S) • REST-style protocol. • Designed by Miscosoft to overcome some limitation of Atom. Pub, including lack the ability to publish information beyond these types, lack support for granular update to data fields and provide poor support for hierarchies. 12 21. 10. 2008
Web Structured, Schema’d & Searchable (Web 3 S) • Web 3 S utilizes XML Infoset based data representation specification • But at February 2008, Microsoft announced to switch from the Web 3 S to Atom. Pub. 13 21. 10. 2008
Conclusion • RESTful Publish/Subscribe, which employ lightweight RESTful architecture in web content syndication. • Contribution: – Summarized the REST principles and studied how these principles are utilized in Atom. Pub. – Study the limitation of Atom. Pub, and give initial explanation why it can not be used as a general purpose editing protocol for the web. – Future study: • Illustrate the capability of Atom. Pub. • How to develop a general purpose editing protocol for the web? 14 21. 10. 2008
Questions and Comments? 15 21. 10. 2008
- Slides: 15