[Standards] [API] Proposed XMPP Extension: IO DATA

Pedro Melo melo at simplicidade.org
Mon Mar 31 09:57:41 UTC 2008


On Mar 30, 2008, at 9:04 PM, Fabio Forno wrote:
> On Sun, Mar 30, 2008 at 8:38 PM, Egon Willighagen
> <egon.willighagen at gmail.com> wrote:
>>  BTW, let me say that asynchronous RPC support in XMPP is very
>>  interesting for scientific workflow environments. This proposal
>>  addresses two problems which are important limitations of current
>>  approaches like SOAP over HTTP.
> Indeed, it's interesting in general ;)
>>  1. many different data types. This is particularly a problem in
> [...]
>>  2. asynchronise calls. This is also a big limitation of our current
>>  tools. Call-by-reference does solve the problem of HTTP time   
>> outs on
> [...]
>>  These two items combined, make this proposal an excellent candidate
>>  for running webservices in sciences like chemistry and biology.
> I understand the scenario, as I've written it's more general than
> scientific or biological computations (e.g send the input events from
> a UI widget placed somewhere to a remote service). Basically you'd
> like to do something like this:
> - retrieve a data scheme from an end point
> - send data to that end point
> - receive (also asynchronously) data from that end point
> Let's try to RESTify it in order to have a more general solution:
> - retrieving the data scheme is an operation on a particular node (a
> GET), so we don't need a particular action, just get it from the
> correct node, e.g. GET /nodename/schemata
> <iq from="..." to="..." id="..." type="set">
>     <rest node="/nodename/schemata" action="get" xmlns="api:rest"/>
> </iq>

I would use type='get' here.

REST allows you to tunnel the PUT/DELETE verbs over POST in case your  
transport is "verb-limited" like XMPP (only has get-set mapping to  
GET-POST on the HTTP side). So I would use the type attribute for the  
action, overloading the set to do DELETE/PUT when the need arises.

Also, not quite sure why you need xmlns='api:rest'. Why not xmlns='/ 
nodename/schemata' ? You already have the 'to' attribute on the top  
level iq stanza to send this to the proper destination.

> - sending data is another operation on the node (the semantics of the
> operation on the data is given by the combination of the data and the
> node): POST /nodename payload
> <iq from="..." to="..." id="..." type="set">
>     <rest node="/nodename" action="post" xmlns="api:rest">
>       <header><!-- optional --></header>
>       <body><!-- optional xml payload--></body>
>     <rest/>
> </iq>

Same comments above apply here.

Best regards,
Pedro Melo
Blog: http://www.simplicidade.org/notes/
XMPP ID: melo at simplicidade.org

More information about the Standards mailing list