[jdev] In-Band RPC and SOAP discovery

Jonathan Dickinson jonathanD at k2.com
Thu May 22 08:25:26 CDT 2008


Hey all,

What are the options here?

One potentially elegant solution would be (for XMPP-RPC):

C:
<iq type='get'
    from='requester at company-b.com/jrpc-client'
    to='responder at company-a.com/jrpc-server'
    id='disco1'>
  <query xmlns='http://jabber.org/protocol/disco#info'/>
</iq>

S:
<iq type='result'
    to='requester at company-b.com/jrpc-client'
    from='responder at company-a.com/jrpc-server'
    id='disco1'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    <identity category='automation' type='rpc'/>
    <feature var='jabber:iq:rpc'/>
    <identity category='automation' type='jabber:iq:rpc' />
    <feature var='http://www.mycompany.org/xml-rpc/example.ConvertCurrency.php' />
    <!-- More Services -->
  </query>
</iq>

And for SOAP:

C:
<iq from='requester at example.com/soap-server'
    to='responder at example.com/soap-client'
    id='disco1'
    type='get'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
  </query>
</iq>

S:
<iq from='responder at example.com/soap-server'
    to='requester at example.com/soap-client'
    id='disco1'
    type='result'>
  <query xmlns='http://jabber.org/protocol/disco#info'>
    <identity category='automation' type='soap'/>
    <feature var='http://jabber.org/protocol/soap'/>
    <identity category='automation' type='http://jabber.org/protocol/soap' />
    <feature var='http://www.myserver.org/soap/someservice' />
    <!-- More to follow -->
  </query>
</iq>

And for getting the wsdl:

C:
<iq from='requester at example.com/soap-server'
    to='responder at example.com/soap-client'
    id='soap1'
    type='get'>

<wsdl:definitions name='SomeService'
  targetNamespace='http://www.myserver.org/soap/someservice'
  xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' />

</iq>

S:
<iq from='responder at example.com/soap-client'
    to='requester at example.com/soap-server'
    id='soap1'
    type='result'>

<wsdl:definitions name='SomeService'
  targetNamespace='http://www.myserver.org/soap/someservice'
  xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/'>

  <!-- WSDL definitions -->

</wsdl:definitions>

</iq>

Yes/no/good/bad/ugly/scary?

I am implementing this stuff so I need some feedback before I make a home-grown protocol.

Jonathan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.jabber.org/jdev/attachments/20080522/fd527618/attachment-0002.htm>


More information about the JDev mailing list