1. eXtensible REST Services Protocol
Plug-in Architectural Style for the Cloud
http://xrest.googlecode.com
2. Protocol Objectives
• Running the Web as Platform
• Unify the Experience and Implementation of
Programmable Web Services
Pub/Sub
Browser Blog Plug-in
Social Twitter
Desktop Network Plug-in
... Mail Your Tool
3. Protocol Model
Clients:
• Consume services on the host
• Add plug-in references (extensions) to the host
extension registry
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
4. Protocol Model
Hosts:
• Restful application (HTTP: RFC2616)
• Extension registry (AtomPub: RFC5023)
• Callback to plug-ins (Web Hooks: http://webhooks.org)
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
5. Protocol Model
Plug-ins:
• Receive callback parameters from the host
• Can decorate the host response to the client.
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
6. Protocol Runtime
POST Plug-in A
extension
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
7. Protocol Runtime
GET Plug-in A
acknowledgement
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
8. Protocol Runtime
OK
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
9. Protocol Runtime
OK
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
10. Protocol Runtime
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
The service has
been extended
11. Protocol Runtime
REST call
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
12. Protocol Runtime
Compute
response
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
13. Protocol Runtime
POST
response body +
extension header
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
14. Protocol Runtime
Decorated
response body
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
15. Protocol Runtime
Decorated
response body
Browser Plug-in A
Desktop Host Plug-in B
... Plug-in C
16. Scheduling
Asynchronous Callbacks:
• May be executed concurrently
• Cannot decorate the host response
Synchronous Callbacks:
• Sequential execution
• Can decorate the host response
• Flexible to failures