RESTful Publish Subscribe

Download Report

Transcript RESTful Publish Subscribe

RESTful Publish Subscribe
Xiang Su
[email protected]
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(AtomPub)
• AtomPub 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(AtomPub)
• The AtomPub 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 AtomPub 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
AtomPub interactions
cause them to be
updated
8
21.10.2008
AtomPub 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 AtomPub
• 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 AtomPub
• 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 (Web3S)
• REST-style protocol.
• Designed by Miscosoft to overcome some
limitation of AtomPub, 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 (Web3S)
• Web3S utilizes XML Infoset based data
representation specification
• But at February 2008, Microsoft announced to
switch from the Web3S to AtomPub.
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 AtomPub.
– Study the limitation of AtomPub, 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 AtomPub.
• How to develop a general purpose editing protocol for
the web?
14
21.10.2008
Questions and Comments?
15
21.10.2008