[MOBY-dev] [moby] Example of a response message with SOAP envelope

Javier de la Torre jatorre at gmail.com
Tue Sep 19 12:37:41 UTC 2006


Hi Mark,

>
> Because it is illegal to have an <?xml...> tag in the middle of an XML
> document.  (API notes: http://biomoby.open-bio.org/CVS_CONTENT/moby-
> live/Docs/MOBY-S_API/InputMessage.html  and the bottom of
> http://biomoby.open-bio.org/CVS_CONTENT/moby-live/Docs/MOBY-
> S_API/MessageStructure.html)
>

Yes, I know that, but I was wondering why you need to have a full XML  
message as the payload and not rather the normal way of integrating  
your xml inside with a different namespace. You could actually have a  
simple mobyMessage type that defines the mobyContent. And actually  
you go further because, as far as I understood every moby response  
message will have then a mobyData element and then a simple or  
collection element...

(By the way! wouldnt be bad to include at least one full xml  
messages, with the SOAP envelope,  on the documentation)

> we either escape it, or we base64 encode it.  Either way, what you get
> from the SOAP payload is a fully-qualified XML document including the
> XML header such that you can simply pass it to an XML parser verbatim.
> When I wrote that part of the API I was thinking about future
> extensibility into non-SOAP messages, where there would be the need  
> for
> an XML header... it never happened, of course...
>

But this is also possible. In a WSDL file you can define other things  
than SOAP.
For example RESTful services can be described with WSDL files too.
>
> Several years ago, for my own amusement, I constructed a pure-CGI
> version of MOBY, and it worked just fine... so there's no good  
> argument
> for using SOAP (especially since we can't model MOBY messages in XML
> schema, so the WSDL standard isn't particularly useful to us either!)
>

The kind of MOBY services we create can very well described using a  
WSDL file because our outputs will always be the same and therefore  
could be typed with xml schema.
And a way to produce MOBY services in a RESTful way would make it  
very easy to create these kind of MOBY services... In general the  
request services will always accept the same object and parameters  
and produce the same object as a result... and create a service like  
this in any language is really simple! And in some cases you could  
give potential simple-request-service-type moby providers a WSDL file  
that they can implement.


> As such, I don't see that MOBY is any less interoperable with non-MOBY
> web services than they are with each other, with the exception that we
> pass XML rather than raw data.

Well, I see some MOBY services that can be well defined with a WSDL  
file and that someone outside from the MOBY world could be interested  
in using... Someone will maybe want to program an interface to these  
moby services, that are all of the same type (the exact WSDL file),  
and does not want to worry about BIOMOBY at all (apart of using the  
registry for discovery and understanding the little semantics of this  
specific service template).

What I am more interested now is on another topic. If you remeber  
Mark we discussed more than one year ago the need for a paging  
mechanism for our services in BioMOBY. Now that I am implementing  
this I took Martin Singer approach to include this functionality on  
the service: the services always have a two parameters: maxPages and  
startPage that are used for paging...
What is your opinion on this? I think we need an agreement on how  
this work so that future BioMOBY clients could make use of paging. I  
dont know if it would be better to move these parameters somewhere  
inside the MOBY API as they are more operational parameters for lot  
of services than actual parameters only for my specific service.

Is there anybody out there who was implemented paging on any MOBY  
service?

For the time being I am happy with Martin approach and this is the  
way we are doing it.

Best regards.

Javier.



More information about the MOBY-dev mailing list