eXtensible REST Services Protocol
Plug-in Architectural Style for the Cloud
http://xrest.googlecode.com
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
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
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
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
Protocol Runtime


               POST Plug-in A
               extension

     Browser                     Plug-in A


     Desktop              Host   Plug-in B


        ...                      Plug-in C
Protocol Runtime


                            GET Plug-in A
                          acknowledgement


     Browser                          Plug-in A


     Desktop       Host               Plug-in B


        ...                           Plug-in C
Protocol Runtime


                                 OK



     Browser              Plug-in A


     Desktop       Host   Plug-in B


        ...               Plug-in C
Protocol Runtime




                          OK

     Browser                   Plug-in A


     Desktop       Host        Plug-in B


        ...                    Plug-in C
Protocol Runtime




     Browser                          Plug-in A


     Desktop       Host               Plug-in B


        ...                           Plug-in C
                          The service has
                          been extended
Protocol Runtime



               REST call

     Browser                      Plug-in A


     Desktop               Host   Plug-in B


        ...                       Plug-in C
Protocol Runtime



                          Compute
                          response

     Browser                         Plug-in A


     Desktop       Host              Plug-in B


        ...                          Plug-in C
Protocol Runtime

                                POST
                           response body +
                          extension header


     Browser                         Plug-in A


     Desktop       Host              Plug-in B


        ...                          Plug-in C
Protocol Runtime

                                  Decorated
                               response body


     Browser              Plug-in A


     Desktop       Host   Plug-in B


        ...               Plug-in C
Protocol Runtime



                        Decorated
                     response body
     Browser                         Plug-in A


     Desktop       Host              Plug-in B


        ...                          Plug-in C
Scheduling



             Asynchronous Callbacks:
              • May be executed concurrently
              • Cannot decorate the host response



             Synchronous Callbacks:
              • Sequential execution
              • Can decorate the host response
              • Flexible to failures
Resources


Specification: http://tiny.cc/xrest



Questions and feedbacks:
xrest@googlegroups.com

More infos:
http://xrest.googlecode.com

XREST Protocol

  • 1.
    eXtensible REST ServicesProtocol Plug-in Architectural Style for the Cloud http://xrest.googlecode.com
  • 2.
    Protocol Objectives • Runningthe 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
  • 17.
    Resources Specification: http://tiny.cc/xrest Questions andfeedbacks: xrest@googlegroups.com More infos: http://xrest.googlecode.com