Email lists > XMPP Extension Discussion List > Re: [Standards] Proposed XMPP Extension: IO DATA > Re: [Standards] Proposed XMPP Extension: IO DATA

Re: [Standards] Proposed XMPP Extension: IO DATA




This post if a part of  this thread

2008-03-30 15:59:27
Re: Proposed XMPP Extension: IO DATA
Fabio Forno schrieb:
>>  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 ;)
>   
I think so, too. Therefore as our protocol is a very general
approach we 
sent the specs to the standards mailing list. It's worth to
note that we 
already wrote an opensource client and component side
library for this 
protocol to be used from java or scripting languages to 
discover/invoke/manage (start/cancel/continue/complete)
remote 
processes. The sample code in the section 1.3 of the XEP
proposal is 
very similar to how it is actually implemented. We hope that
other 
libraries will have interest in the protocol in future,
too.
>>  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>
>
> - 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>
>   
Indeed. If you read the xep you might see that the XEP is
very much the 
same as you suggest here. Ad-Hoc Commands do also support
several 
actions: For example execute/next/prev/cancel/complete are
actions 
supported by Ad-Hoc Commands. We think that this facilitates
everything 
that is required to completely manage/control a remote
process. As I 
already mentioned our approach is a very general one. The
specs in the 
XEP is that open that it is of course possible to do what
you suggest, 
for example see section 4.2 for getting the schemata. See
4.3 for 
sending data.
> - receiving the result depends on whether the operation
is synchronous
> or not. If synchronous it's just the payload of the
answer, and we can
> correlate them using the id in the <iq/> stanza. 

Exactly. That's how we do it.
> If asynchronous the
> service should create a session on the client, by
adding the session
> id to the headers of the subsequent asynchronous
messages (this
> mechanism is application defined, other applications
may create a
> specialized node or use other strategies for handling
sessions)
>   
Yes, that's why the XEP uses Ad-Hoc Commands. Because it has
already a 
session concept as you suggest here. In addition to this it
is a widely 
supported XEP, we think that - with the very generic io data
container 
in our specs - it is a friendly way to also support
machine2machine 
parseable/readable and especially marshal-able services with
it. As I 
already mentioned our approach is a very general one. The
specs in the 
XEP is that open that it is of course possible to do what
you suggest 
here: for example doing it in an asynchronous way there is
the sessionid 
of Ad-Hoc Commands - especially Examples in section 4.4 and
4.2.

>>  I am aware that we continue the unofficial
extension of Edrin, but
>>  having this as an official XEP will make it much
easier to roll out
>>  XMPP-based webservices on a larger scale.
>>
>>  Looking forward to hearing further comments!
>>     
>
> sure
>
> bye
>
>   
Thank you for your comments



about | contact  Other archives ( Real Estate discussion Medical topics )