Dear Wasaq,

On Sun, Sep 6, 2009 at 8:28 PM, Waqas Hussain<[email protected]> wrote:
> Some problems with the XEP:
>
> 1. The XEP basically allows a service to expose a set of global functions.
> There is no possibility for function namespaces. This is similar to the SOAP
> over XMPP XEP, where you can have only one service end point per-JID (which
> I consider a non-minor deficiency).

Can you elaborate on this? If you run a service discovery on
ws1.bmc.uu.se you will see various JIDs, each with one and often more
functions...

> 2. The schemata discovery protocol requires at least two IQ requests per
> exposed function. For a service exposing a large number of functions, this
> makes it impractical to use for generating marshalling code at runtime.

I do not understand how you see the number of needed IQ requests to
make generation of marshalling code at runtime difficult. Could you
please explain?

> And
> there’s no allowance for caching the schemas (i.e., you have to load all of
> them every time, since there is no assurance that it didn’t change since you
> last checked). For something like Prosody, where we might be exposing
> hundreds of functions, which can appear and disappear when modules
> (including third-party modules) are loaded/unloaded, this makes for some
> nastiness.

As far as I know there is no standard for versioning on XML schemata,
other than with the schema itself. Indeed, the current proposal does
not propose a mechanism for doing this,
and defines the schemata itself is 'contract' for the service interaction.

I do understand that if you wish the change that contract regularly
*and *you wish the services to keep the same JID, that this places
stress on the clients. However, I am not sure that the XEP should
provide best practices for dealing with service providers with such
wishes.

If we could get to, or reuse, a different XEP for specifying detailed
versioning information for schemata, this would have been useful
indeed. But in the lack thereof, I think that using the XML Schemata
itself as exact versioning is a wise choice, even though it for larger
schemata this puts some stress on the bandwidth.

That said, using the current XEP, you could simply consider using
<xs:include/>'s which gives you exact control over the schemata
versions your services are using. I think this provides the clients
exact caching control on included schemata.

Looking forward to hearing from you about the things that were not
clear to me in your comments,

Egon

-- 
Post-doc @ Uppsala University
Blog: http://chem-bla-ics.blogspot.com/

Reply via email to