Re: [Standards] XEP-0244: the xs namespace prefix

2009-09-10 Thread Egon Willighagen
Hi Pedro,

On Thu, Sep 10, 2009 at 11:00 PM, Pedro Melo  wrote:
> Example 5 of XEP-0244 introduces a xs: namespace prefix without a proper
> declaration. Are the authors assuming that the declaration is going to be in
> the  top level header? What happens when this stanza crosses to an
> outgoing S2S link without that declaration at the stream level? the stanza
> would be invalid XML.

The xs prefix should indeed have be defined in the example.

Egon

-- 
Post-doc @ Uppsala University
Blog: http://chem-bla-ics.blogspot.com/
PubList: http://www.citeulike.org/user/egonw/tag/papers


Re: [Standards] LAST CALL: XEP-0244 (IO Data)

2009-09-06 Thread Egon Willighagen
Dear Wasaq,

On Sun, Sep 6, 2009 at 8:28 PM, Waqas Hussain 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
'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/


Re: [Standards] LAST CALL: XEP-0244 (IO Data)

2009-08-15 Thread Egon Willighagen
Hi all,

not sure I am supposed to reply to this as author of the XEP, but here
goes... I hope it will trigger more replies to the call.

On Wed, Aug 12, 2009 at 11:33 PM, XMPP Extensions Editor wrote:
> 1. Is this specification needed to fill gaps in the XMPP protocol stack or to 
> clarify an existing protocol?

To me it is. It defines clearly the content of an  with respect to
the data type and allowed content. The specification describes how
clients can query the allowed content with the service in a simple and
well defined manner. I like this simplicity, making it easier to write
100% implementing libraries.

> 2. Does the specification solve the problem stated in the introduction and 
> requirements?

The XEP introduces an alternative data container with strong data
typing (going beyond xs:string), which we are happily using in
machine-to-machine settings, in our XMPP web services environment.
Using XML Schema the data type is well defined, such that clients can
even on the fly build Java models of that schema and use that to
create a IO-Data message.

> 3. Do you plan to implement this specification in your code? If not, why not?

We are using Johannes Wagener's

  http://xws4j.sourceforge.net/

And I know if this client implementation by Tuomas:

  http://www.lobstermonster.org/examples/ws1.bmc.uu.se/

> 4. Do you have any security concerns related to this specification?

Data input is generally a source of failures of services, and IO-Data
does not change that. However, the strong data typing makes it much
easier to validate the input, though it depends on how strong the
schema implements data types.

This XEP does not introduce new security issues.

> 5. Is the specification accurate and clearly written?

I understand it :) So, I leave this to others to comment on.

Egon

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


Re: [Standards] XMPP example site - www.LiveBaseballChat.com

2009-04-09 Thread Egon Willighagen
On Tue, Apr 7, 2009 at 11:00 PM, Dean Collins  wrote:
> Basically it is an ajax/xmpp site with 2430 chat rooms set up over the
> next 6 months for people to talk about specific Baseball games.

Interesting... I have been thinking about making a web front end for
IO-DATA services, assuming there must be web/JavaScript libraries to
talk over the XMPP network...

Can you please elaborate on the libraries used behind your website?

Egon

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


[Standards] xmlns="" in IQ stanza

2009-03-23 Thread Egon Willighagen
Hi all,

In this email I would like to ask clarifiation of section 11.2.2 of
RFC 3920 (XMPP), regarding the use of default namespaces in IQ stanza.

In the IO-DATA proposal, XML Schema is passed in the IQ stanza. These
XML Schema documents may use the default namespace when defining XML
schema types and elements. For example, this is what the Chemical
Markup Language does in [0] at line 1 (for readability layed out on
multiple lines here):

http://www.xml-cml.org/schema";
  xmlns:h="http://www.w3.org/1999/xhtml";
  xmlns:xsd="http://www.w3.org/2001/XMLSchema";
  xmlns="http://www.xml-cml.org/schema";>


Which defines the default namespace, and following XML Schema design
puts the defined simpleType 'actionOrderType' using the
targetNamespace attributs in the CML namespace... later in the schema,
again according to XML Schema customs, the actionOrderType is used
again, without prefix, and therefore taking from the default namespace
defined in the above snippet (see lin 3070 in [0]:



Now, one of the XMPP tools we use (I do not know yet which one, so
won't name the tools just yet, to not encourage false accusations)
removes the xmlns="" attribute from the above snippet. This
effectively means that the second part (line 3070) of the CML XML
Schema becomes invalid, refering to an actionOrderType now in the XMPP
default namespace...

Before I want to further explore which of the tools we use is removing
this crucial bit of XML, and to decide this is a minor bug or a rather
critical one, I would like to inquire if the XMPP protocol allows the
above set up. Section 11.2.2 of RFC 3920 states [1]:

"A default namespace declaration is REQUIRED and is used in all XML
   streams in order to define the allowable first-level children of the
   root stream element.  This namespace declaration MUST be the same for
   the initial stream and the response stream so that both streams are
   qualified consistently.  The default namespace declaration applies to
   the stream and all stanzas sent within a stream (unless explicitly
   qualified by another namespace, or by the prefix of the streams
   namespace or the dialback namespace)."

This section defines the default namespace that applies by default to
all elements, unless elements are explicitly qualified otherwise. From
this section I do not read that the default namespace cannot be
overwritten by IQ stanza content; indeed, the above description seems
to follow the XML Namespace specification nicely. The first statement
could be interpreted that the default namespace can solely be used to
define the namespace of the first-level children, but that would
contradict, I think, the last statement.

So, my questions is, is the one of the libraries we use wrong, or,
alternatively, can IQ stanza never overwrite the default namespace?

Looking forward to your opinions on how to interpret this part of the
XMPP specification,

kind regards,

Egon Willighagen

0.http://cdk.svn.sourceforge.net/viewvc/cdk/cdk-xws/trunk/xws-qsar-services/src/org/openscience/cdk/xws/schema/cml.xml?revision=14106&view=markup
1.http://www.ietf.org/rfc/rfc3920.txt

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


Re: [Standards] Proposed XMPP Extension: IO DATA

2008-03-30 Thread Egon Willighagen
On Sun, Mar 30, 2008 at 7:09 PM, Fabio Forno <[EMAIL PROTECTED]> wrote:
>  While it's true that in SOAP+XMPP specs there is no asynchronous
>  message exchange pattern (and that was a mistake, though I think it's
>  possible to add a new MEP), this is not related to REST. Neither the
>  concept of session id is somewhat related to REST, at the contrary,
>  REST explicitly forbids things like session ids.

Fabio,

thank you for catching this misqualification. We'll fix this shortly.

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.

1. many different data types. This is particularly a problem in
(bio-)chemical sciences, where experimental data is found in many,
many data types, which, moreover, are increasingly semantic.
Currently, SOAP often cannot validate input unless the call has been
made, while this proposal promises to allow to do this at the gate.
Big improvement.

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
intermediate IP packet routers, but the only way to do long running
jobs is to have the client use a second 'service' to poll the primary
service and ask if it is done yet. XMPP is provides a much nicer
protocol for such situations, and this proposal formalizes this.

These two items combined, make this proposal an excellent candidate
for running webservices in sciences like chemistry and biology.

I am not too much into XMPP myself, but hope the discussions on this
mailing list will help us get the proposal in shape, because we really
like to see this functionality. The example code from Johannes looks
great, and eager to start using it. We are setting up webservices for
metabolomics, where the data that needs to be passed around goes in
the gigabytes, and where processing easily goes into the tens of
minutes.

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!

Egon

-- 

Post-doc in Metabolomics
Wageningen Universtity & Research Center, The Netherlands
http://chem-bla-ics.blogspot.com/