From martin.senger at gmail.com Tue Jul 1 14:41:49 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 1 Jul 2008 11:41:49 -0700
Subject: [MOBY-dev] data by reference - a request for comments
Message-ID: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
Hi all,
Yesterday, Mark, Eddie and I, we spent some time to evaluate what was
proposed during our last meeting about sending data by references. Here are
some thoughts that may crystalize into a request fro comments.
*What is the purpose of sending data by reference
*
Well, the first purpose (A) is obvious: we want to be able to deliver huge
data from a service. So the service returns only a reference instead of the
real data and the client can fetch the real data using some memory-friendly
protocol (usualy a simple HTTP/GET).
But it appeeared that it was not the only purpose. The second purpose (B) is
to be able to send around already existing references (such as URLs of the
EMBL or NCBI records). The existence of this B purpose makes the problem a
bit harder but it is a valid puspose. So the first question is:
*Do you agree that we pursue both purposes in this requests?
*
*The machinery
*
a) A service claims (in the registration time) that it can provide data by
reference.
b) A client asks for getting back references by including "acceptRefs"
attribute in mobyData tag. The attribute lists one or more protocol names
that the client can accept.
c) A service *can* obey such request and send one or more *primitive
data*as references (the focus on primitive type is new, originaly we
thought
about allowing references on any level, but now, mainly becuse of the
purpose B we do not propose it anymore). It can use any of the protocols
mentioned in the client's "acceptRefs" attribute. It can send references
only if at least one protocol matches.
*How does a client knows what protocols a service supports?*
This is a fundamental question that goes closely with "use existing
standards rather than inventing your own". An ideal solution is perhaps
this: A service returns not a reference to data itself but a reference to a
WSDL document that contains all supported protocols, including the endpoints
for this particular data. It is a nice idea but it breaks the purpose B - we
cannot use existing references without wrapping them first in a WSDL
document. The WSDL is strong because it gives us actually an *interface* how
to get data, but it is weak because the references cannot be used as *
indexes* (e.g. for further caching). Also, it does not solve the client
side: the "acceptRefs" attribute still needs to use a list of protocol names
(and not a WSD document because clients cannot make WSDL documents visible
to the world).
After going there and back, we concluded (and it is now our proposal for the
request of comments) that the service returns a reference to data, and
clients can deduce what protocol to us by looking at the protocol part of
the returned URL. We are aware that this is fine for usual protocol, such as
HTTP and FTP, but it cannot serve data, for example, by a SOAP. But, as
Eddie pointed out, if somebody wants SOAP for data, she can return data
directly in the Moby message.
*The remaining questions
*
Dmitry suggested to use WSRF. We think that he meant something else: It
could be used instead of the whole Moby message - but that is not what we
are looking for. We are looking for replacing just data part by references,
and we want still to keep the original Moby message as it is used now. So we
have concluded: no WSRF.
*How can a client tells a service that she is sending a reference instead of
data?* This could be useful for chaining services. We have not talked about
it. Ideas welcome.
The machinery described above may not allow to find, in advance, what
protocols a service is able to provide. It depends on what a service can
register into a moby central registry. It can be just a boolen flag ("I can
provid references"), or a list of supported protocols ("names"), or actually
nothing. The latest option has an advantage that no change in the registry
is needed. *Can we live with this simple option?*
I am not sure if I covered all, but better to send ti now and wait for your
comments.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From jmfernandez at cnio.es Tue Jul 1 15:04:40 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Tue, 01 Jul 2008 21:04:40 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
Message-ID: <486A7FC8.20201@cnio.es>
Hi everybody,
I have added inline some personal comments about the RFC:
Martin Senger wrote:
> Hi all,
>
> Yesterday, Mark, Eddie and I, we spent some time to evaluate what was
> proposed during our last meeting about sending data by references. Here are
> some thoughts that may crystalize into a request fro comments.
>
> *What is the purpose of sending data by reference
> *
> Well, the first purpose (A) is obvious: we want to be able to deliver huge
> data from a service. So the service returns only a reference instead of the
> real data and the client can fetch the real data using some memory-friendly
> protocol (usualy a simple HTTP/GET).
>
> But it appeeared that it was not the only purpose. The second purpose (B) is
> to be able to send around already existing references (such as URLs of the
> EMBL or NCBI records). The existence of this B purpose makes the problem a
> bit harder but it is a valid puspose. So the first question is:
>
> *Do you agree that we pursue both purposes in this requests?
> *
> *The machinery
> *
> a) A service claims (in the registration time) that it can provide data by
> reference.
>
It can be claimed from the RDF of the service as a predicate, including the
understood reference protocols (which should be described elsewhere in an RDF
ontology).
> b) A client asks for getting back references by including "acceptRefs"
> attribute in mobyData tag. The attribute lists one or more protocol names
> that the client can accept.
>
I suggest using serviceNotes child element (called for instance acceptRefs
:-), telling what it can understand) instead of adding a new attribute to
mobyData, in both ways of the MOBY dialog. The client uses the acceptRefs
element in the message sent to the service to tell what it can understand, and
the service answers using the acceptRefs explaining what it have done. The
service must answer a subset of the understood reference protocols to the
client in order to maintain the contract.
If the service cannot fulfill the request where client does not understand the
protocols' the service is able to handle (because it refuses to send too much
information inline), it can fail using a new exception code related to message
size.
If the service uses references which are not understood by the client, then
the client can mark the message or the service as corrupted or offensive.
> c) A service *can* obey such request and send one or more *primitive
> data*as references (the focus on primitive type is new, originaly we
> thought
> about allowing references on any level, but now, mainly becuse of the
> purpose B we do not propose it anymore). It can use any of the protocols
> mentioned in the client's "acceptRefs" attribute. It can send references
> only if at least one protocol matches.
>
> *How does a client knows what protocols a service supports?*
>
> This is a fundamental question that goes closely with "use existing
> standards rather than inventing your own". An ideal solution is perhaps
> this: A service returns not a reference to data itself but a reference to a
> WSDL document that contains all supported protocols, including the endpoints
> for this particular data. It is a nice idea but it breaks the purpose B - we
> cannot use existing references without wrapping them first in a WSDL
> document. The WSDL is strong because it gives us actually an *interface* how
> to get data, but it is weak because the references cannot be used as *
> indexes* (e.g. for further caching). Also, it does not solve the client
> side: the "acceptRefs" attribute still needs to use a list of protocol names
> (and not a WSD document because clients cannot make WSDL documents visible
> to the world).
>
A passive, static way is publishing the service capabilities about references
in the RDF. An active, dynamic way is creating a new service port (like we did
with asynchronous services), which provides live metadata information about
the service. I could even be linked/related to LSID metadata servers, but it
is still outside my knowledge.
> After going there and back, we concluded (and it is now our proposal for the
> request of comments) that the service returns a reference to data, and
> clients can deduce what protocol to us by looking at the protocol part of
> the returned URL. We are aware that this is fine for usual protocol, such as
> HTTP and FTP, but it cannot serve data, for example, by a SOAP. But, as
> Eddie pointed out, if somebody wants SOAP for data, she can return data
> directly in the Moby message.
>
> *The remaining questions
> *
> Dmitry suggested to use WSRF. We think that he meant something else: It
> could be used instead of the whole Moby message - but that is not what we
> are looking for. We are looking for replacing just data part by references,
> and we want still to keep the original Moby message as it is used now. So we
> have concluded: no WSRF.
>
> *How can a client tells a service that she is sending a reference instead of
> data?* This could be useful for chaining services. We have not talked about
> it. Ideas welcome.
>
> The machinery described above may not allow to find, in advance, what
> protocols a service is able to provide. It depends on what a service can
> register into a moby central registry. It can be just a boolen flag ("I can
> provid references"), or a list of supported protocols ("names"), or actually
> nothing. The latest option has an advantage that no change in the registry
> is needed. *Can we live with this simple option?*
>
> I am not sure if I covered all, but better to send ti now and wait for your
> comments.
>
> Cheers,
> Martin
>
Best Regards,
Jos? Mar?a
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From martin.senger at gmail.com Wed Jul 2 01:22:30 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 1 Jul 2008 22:22:30 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486A7FC8.20201@cnio.es>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
<486A7FC8.20201@cnio.es>
Message-ID: <4d93f07c0807012222i1ae4f97ai152796660a0bc46a@mail.gmail.com>
> It can be claimed from the RDF of the service as a predicate, including the
> understood reference protocols (which should be described elsewhere in an
> RDF ontology).
I do not like using the RDF for mandatory features. The RDF, at least in the
current moby, is optional and should not carry anything that is significant
for the service and its behaviour. The data by reference should be part of
the main BioMoby API (or whatever we call it).
> I suggest using serviceNotes child element
I do not have a strong opinion where in the message this could be - I have
just used the tag name and location that was suggested in our February
meeting. The ServiceNotes, however, seems a bit a strange place when used by
the clients.
> and the service answers using the acceptRefs explaining what it have done.
Why? Why is not enough the reference itself? It is a URL and the URL has a
wel-defined protocol. And what if a service uses a different protocol for
different parts of the message (remember the purpose B)? No, the
ServiceNotes is not a suitable place for it.
> The service must answer a subset of the understood reference protocols to
> the client in order to maintain the contract.
And what about if the service does not want to return references, at all?
That should be an error, as well? No, I don't think so. A client just
suggests that she is able to accept references but there is no guarantee
that she can get it (many services will not have any provision for
references).
> A passive, static way is publishing the service capabilities about
> references in the RDF.
It can be there, why not, - but not as the main way.
> An active, dynamic way is creating a new service port (like we did with
> asynchronous services)
Do you mean a new method name? But for what? Not sure I understand how this
new method may help here (and not breaking the purpose B, for example).
Just my opinions.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From dmitry.repchevski at bsc.es Wed Jul 2 06:26:52 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Wed, 02 Jul 2008 12:26:52 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
Message-ID: <486B57EC.7090302@bsc.es>
Hello!
Here are my comments. Please note that all they are in mode IMHO,
because I understand the complicity of the problem and just looking for
possible solution.
> [A] Well, the first purpose (A) is obvious: we want to be able to deliver huge data from a service.
It depends.
If we are going to stay with SOAP (and especially move to doc/lit) the
right way is to provide streaming through SOAP Attachments (SwA) or even
better using MTOM.
This way we have to introduce a special Moby Primitive Type something
called "BinaryAttachment" which will be bind to [type="base64Binary"]
This type will be replaced with:
...
--MIME_boundary
Content Type:image/gif
Content-Transfer-Encoding:binary
Content-ID:
... (file content)
--MIME_boudary
In case of using MTOM:
...
------=_Part_1_4558657.1118953559446
Content-Type: image/jpeg
Content-ID:
Obviously JAVA supports both, but considering Perl, I am not sure which
is better
(I am very pessimistic in SOAP Perl capabilities... :-( )
> The second purpose (B) is to be able to send around already existing references (such as URLs of the EMBL or NCBI records).
Here is the question where ever we continue to invent standards or
trying to use SOAP capabilities...
Finally we have WS-Addressing (and even have it implemented in Perl :-) ).
More we have WSRF that is exactly for this purpose - reference for resource.
> Dmitry suggested to use WSRF. We think that he meant something else: It
> could be used instead of the whole Moby message - but that is not what we
> are looking for.
I am afraid you didn't understand me well... WSRF doesn't mean we have
to send ALL the message.
It is only the way to reference a resource. Even in moby-asynchrony we
return the whole message if needn't be so.
We can perfectly return a reference to ANY part of the original request.
It is up to the service to locate the asked resource and send it back to
the WSRF request.
We shouldn't confuse "A" and "B" because they are different.
"A" is to stream the data which in many case means "give me a huge file".
"B" is to keep the reference to it (something temporal like a
calculation that produces a lot of data and we don't want to pass it
around).
> We are looking for replacing just data part by references,
> and we want still to keep the original Moby message as it is used now. So we
> have concluded: no WSRF.
Don't understand it... How you suppose to replace some object in Moby
message by refernce without changing it?
> *How can a client tells a service that she is sending a reference instead of
> data?* This could be useful for chaining services. We have not talked about
> it. Ideas welcome.
There is no way to specify that it can be send both by value and by
reference and the same type...
I suggest - the service expecting the usual "value", but check if there
is WSRF resource sent in header.
If it is it just calls the service (or in case it is the same server,
just locate it locally) to get the object (not all Moby message, but
just serialized Moby object, like AminoacidSequence) and use it instead
the EMPTY one in MobyMessage.
Something like - We expect two AminoacidSequence(s) -
articleName="first", articleName="second"
In header we put WS Addressing (WSRF) resource to "server1/second"
The service check headers for resources and call the server1 to obtain
"second" Aminoacid.
This can be useful to make a workflow too... because we can call the
server1 to get AminoacidSequence2, obtain reference to it AND send it to
the server 2, so actually server2 will get the reference to it...
In case server1 and the server2 are the same (this is the main idea of
[B]?) we do not need to pass around and get it directly... in case of
server1 != server2 we have a ... Moby "GRID" :D
> I do not like using the RDF for mandatory features. The RDF, at least in the
> current moby, is optional and should not carry anything that is significant
> for the service and its behaviour.
Agree. IMHO I would use WSDL capability to describe it all, but having
so many types of services this could be very hard...
IMO the main problem is that BioMoby is using SOAP, but use nothing of
it trying to replace all W3C and WS-I specification by it's own solution.
So the question is why do we use SOAP?
I see (in a long term) two possibilities:
1. Forget about SOAP and do the REST (which is a fancy name to say we
are going to send what ever we want without any standard)
2. Use SOAP and Web Services architecture.
Best regards,
Dmitry
From markw at illuminae.com Wed Jul 2 10:22:13 2008
From: markw at illuminae.com (Mark)
Date: Wed, 02 Jul 2008 07:22:13 -0700
Subject: [MOBY-dev] Interesting...
Message-ID:
http://www.biomedcentral.com/1471-2105/9/295/abstract
I wonder how they got document-literal stuff working in Perl??
M
From markw at illuminae.com Wed Jul 2 10:11:29 2008
From: markw at illuminae.com (Mark)
Date: Wed, 02 Jul 2008 07:11:29 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486B57EC.7090302@bsc.es>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
<486B57EC.7090302@bsc.es>
Message-ID:
>> The second purpose (B) is to be able to send around already existing
>> references (such as URLs of the EMBL or NCBI records).
> Here is the question where ever we continue to invent standards or
> trying to use SOAP capabilities...
> Finally we have WS-Addressing (and even have it implemented in Perl :-)
> ).
> More we have WSRF that is exactly for this purpose - reference for
> resource.
Hi Dmitry!
Could you send an example of a Moby message that has multiple components
(e.g., the image and annotation component of SimpleAnnotatedJpegImage)
where the content of the data-carrying primitives are references using the
WS-Addressing standard? that way, we'll all know without any ambiguity
what it is you are suggesting.
Thanks!
Mark
From dmitry.repchevski at bsc.es Wed Jul 2 13:56:51 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Wed, 02 Jul 2008 19:56:51 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
Message-ID: <486BC163.9050007@bsc.es>
Hello Mark,
My suggestion (not a final specification :-)) is something like:
******************************
http://myserver.com/MyService?asyncId=ID
ID
mobyws:result_queryId00/image/jpeg/content
description
***********************
The idea is to include the WSRF reference into the header:
***********************
http://myserver.com/MyService?asyncId=ID
ID
mobyws:result_queryId00/image/jpeg/content
***********************
The service can access the header looking for resources and then to call
WSRF service specified to obtain them.
Of course we must update our WSRF stack to return a particular moby
object instead of all mobyData. here I "updated" the like to
"mobyws:result_queryId00/image/jpeg/content"
Note that I used a simplest possible way to produce an... uri (?) to it
- using "articleNames". I commented the "content" in the body to
demonstrate the idea better - it is up to service implementation to call
a wsrf and obtain the image... This way we do not need to change "moby"
message.
Cheers,
Dmitry
From gordonp at ucalgary.ca Wed Jul 2 13:57:40 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Wed, 02 Jul 2008 11:57:40 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807012222i1ae4f97ai152796660a0bc46a@mail.gmail.com>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com> <486A7FC8.20201@cnio.es>
<4d93f07c0807012222i1ae4f97ai152796660a0bc46a@mail.gmail.com>
Message-ID: <486BC194.90506@ucalgary.ca>
Hi Martin,
I agree with most of your post, but I will be pedantic and point out the
trap you, and previously Tom Oinn, fell into in this discussion:
> Why? Why is not enough the reference itself? It is a URL and the URL has a
> wel-defined protocol. ...
URL does not in fact have a well-defined protocol. URL is simply a way
to express "protocol:protocol-specific-stuff"
I'll assume you mean http and maybe ftp protocols. It's important to be
specific, because you probably don't want to include mailto:, gopher: or
prospero: for example.
Paul
From markw at illuminae.com Wed Jul 2 14:21:57 2008
From: markw at illuminae.com (Mark)
Date: Wed, 02 Jul 2008 11:21:57 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486BC163.9050007@bsc.es>
References: <486BC163.9050007@bsc.es>
Message-ID:
Do you suggest that there is no indication, in the MOBY block, that the
message contains data-by-reference? i.e. should our tools simply see that
the primitive is empty, and then look into the ws header for the
possibility of a ws-ref, and then if it isn't found, adopt the other
interpretation of an empty block (i.e. that the data is known to be NULL)
?
M
On Wed, 02 Jul 2008 10:56:51 -0700, Dmitry Repchevsky
wrote:
> Hello Mark,
>
> My suggestion (not a final specification :-)) is something like:
>
> ******************************
>
>
>
>
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
> http://myserver.com/MyService?asyncId=ID
>
>
> ID
>
>
>
> mobyws:result_queryId00/image/jpeg/content
>
>
>
>
>
>
>
>
>
>
>
> articleName="Description">description
>
>
>
>
>
>
>
>
> ***********************
>
> The idea is to include the WSRF reference into the header:
>
> ***********************
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
> http://myserver.com/MyService?asyncId=ID
>
> xmlns:mobyws="http://biomoby.org/">ID
>
>
> mobyws:result_queryId00/image/jpeg/content
>
>
> ***********************
>
> The service can access the header looking for resources and then to call
> WSRF service specified to obtain them.
> Of course we must update our WSRF stack to return a particular moby
> object instead of all mobyData. here I "updated" the like to
> "mobyws:result_queryId00/image/jpeg/content"
> Note that I used a simplest possible way to produce an... uri (?) to it
> - using "articleNames". I commented the "content" in the body to
> demonstrate the idea better - it is up to service implementation to call
> a wsrf and obtain the image... This way we do not need to change "moby"
> message.
>
> Cheers,
>
> Dmitry
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
--
--
Mark Wilkinson
Heart + Lung Research Institute
Centre for High Throughput Biology
UBC
From dmitry.repchevski at bsc.es Wed Jul 2 18:15:13 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 03 Jul 2008 00:15:13 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
Message-ID: <486BFDF1.1070001@bsc.es>
Hello,
No I think that the service (tool?) should look into the header first
and if there are some references, ignore corresponding element from the
body. As I said this is only an idea. This way we do not change the
message itself and do can implement it on the base of existing wsrf code...
As of the wsrf response for
//"mobyws:result_queryId00/image/jpeg/content"// the service will return
the standard MOBY message but only with elements found in the path
(MOBY/mobyContent/mobyData/Simple/SimpleAnnotatedJPEGImage/String
Best regards,
Dmitry
From edward.kawas at gmail.com Wed Jul 2 18:33:07 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 2 Jul 2008 15:33:07 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486BFDF1.1070001@bsc.es>
References: <486BFDF1.1070001@bsc.es>
Message-ID: <486c0227.07ec720a.5dc1.ffffd76a@mx.google.com>
With all this talk about WSRF, SOAP, etc, what would happen with cgi (i.e.
non moby/moby-async) services?
I think that the solution needs to be able to encompass all categories of
services that moby claims to support and not just [JAVA] SOAP services.
Just a few of my thoughts,
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Dmitry Repchevsky
Sent: July-02-08 3:15 PM
To: moby-dev at lists.open-bio.org
Subject: Re: [MOBY-dev] data by reference - a request for comments
Hello,
No I think that the service (tool?) should look into the header first
and if there are some references, ignore corresponding element from the
body. As I said this is only an idea. This way we do not change the
message itself and do can implement it on the base of existing wsrf code...
As of the wsrf response for
//"mobyws:result_queryId00/image/jpeg/content"// the service will return
the standard MOBY message but only with elements found in the path
(MOBY/mobyContent/mobyData/Simple/SimpleAnnotatedJPEGImage/String
Best regards,
Dmitry
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From martin.senger at gmail.com Thu Jul 3 00:11:26 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Wed, 2 Jul 2008 21:11:26 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486BC194.90506@ucalgary.ca>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
<486A7FC8.20201@cnio.es>
<4d93f07c0807012222i1ae4f97ai152796660a0bc46a@mail.gmail.com>
<486BC194.90506@ucalgary.ca>
Message-ID: <4d93f07c0807022111u4f65fe7ap851a997a23e230a8@mail.gmail.com>
Paul,
URL does not in fact have a well-defined protocol. URL is simply a way to
> express "protocol:protocol-specific-stuff"
Point taken. The URL has a well-defined *place* where I can find a protocol,
but it does not define what protocol can sit on that place.
> I'll assume you mean http and maybe ftp protocols. It's important to be
> specific, because you probably don't want to include mailto:, gopher: or
> prospero: for example.
>
Well, I did not mean to be too specific. All the protocols you mentioned
would be possible (but some of them may hardly find a match between a
service an a client).
All,
I am not against standards, actually standards was what I was hired to
promote at EBI, but my experiences are that sometimes standards simply are
an obstacle. Especially for BioMoby - that is anyway a non-standard message
protocol. We already burned ourselves with using WSRF for asynchronous
services (we have now problems how to make asynchronous services using
REST). I am afraid that using WSRF will rather move service provider from
Moby world than closer to it (I am talking from the point of view of the
service providers and the tools developers, not from the perspective of Mark
who has to face the funding agencies).
The fact is that we want to use REST (in the near future) and not only SOAP,
we want to use Perl where SOAP is not that well supported, and we want the
solution for data by reference to be simple.
Therefore, I do not wish to be eaten (again) by the WSRF - unless my boss
(whoever it is or will be) forces me to do so, of course.
BTW, I like very much the Dmitry's definition of the REST ("a fancy name to
say we are going to send what ever we want without any standard"). I agree
with him - except that we are sending Moby message - which is not standard,
it is faulty, but it has worked relatively fine so far.
For being able to continue this discussion (about data by reference), I
suggest that we try to answer first whether we want to use only SOAP or
whether we are really heading to use REST, as well. My vote for this
question is: yes, we will want to have the REST services, as well.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From dmitry.repchevski at bsc.es Thu Jul 3 04:46:40 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 03 Jul 2008 10:46:40 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486c0227.07ec720a.5dc1.ffffd76a@mx.google.com>
References: <486c0227.07ec720a.5dc1.ffffd76a@mx.google.com>
Message-ID: <486C91F0.4000100@bsc.es>
>
> With all this talk about WSRF, SOAP, etc, what would happen with cgi (i.e.
> non moby/moby-async) services?
Interesting question... How do we implement all possible functionality
using all possible solutions... :-)
Here is my point of view:
1. "moby" service
It can work with "wsrf" pass by reference... it's up to the toolkit
to look into the header
Attachment (SwA). Just put your attachment outside the soap message
and find it somehow from the toolkit
2 "moby-async" service
The same as "moby", but also can return a reference (through wsrf) to
a particular moby object
3. "doc-literal" service
The same as "moby", but attachment would be MTOM (backward compatible
with SwA).
4. "doc-literal-async"
Also see no problem.
5. "soap", "cgi", "wsdl", "post" - what's this??? (sorry for ingnorance)
Best regards,
Dmitry
From machiel.jansen at sara.nl Thu Jul 3 05:13:14 2008
From: machiel.jansen at sara.nl (Machiel Jansen)
Date: Thu, 3 Jul 2008 11:13:14 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486C91F0.4000100@bsc.es>
References: <486c0227.07ec720a.5dc1.ffffd76a@mx.google.com>
<486C91F0.4000100@bsc.es>
Message-ID:
For all I know WSRF is already been surpassed by WS-RT. http://www.ibm.com/developerworks/grid/library/gr-wsrfwsrt/index.html?ca=drs-
There are quite a number of people who are disenchanted by WSRF. See http://blog.harbulot.com/post/2006/11/22/Experiences-with-WSRF for one example.
Machiel
> -----Original Message-----
> From: moby-dev-bounces at lists.open-bio.org [mailto:moby-dev-
> bounces at lists.open-bio.org] On Behalf Of Dmitry Repchevsky
> Sent: donderdag 3 juli 2008 10:47
> To: moby-dev at lists.open-bio.org
> Subject: Re: [MOBY-dev] data by reference - a request for comments
>
> >
> > With all this talk about WSRF, SOAP, etc, what would happen with cgi
> (i.e.
> > non moby/moby-async) services?
> Interesting question... How do we implement all possible functionality
> using all possible solutions... :-)
>
> Here is my point of view:
>
> 1. "moby" service
> It can work with "wsrf" pass by reference... it's up to the toolkit
> to look into the header
> Attachment (SwA). Just put your attachment outside the soap message
> and find it somehow from the toolkit
>
> 2 "moby-async" service
> The same as "moby", but also can return a reference (through wsrf)
> to
> a particular moby object
>
> 3. "doc-literal" service
> The same as "moby", but attachment would be MTOM (backward
> compatible
> with SwA).
>
> 4. "doc-literal-async"
> Also see no problem.
>
>
> 5. "soap", "cgi", "wsdl", "post" - what's this??? (sorry for ingnorance)
>
> Best regards,
>
> Dmitry
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
From dmitry.repchevski at bsc.es Thu Jul 3 05:20:32 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 03 Jul 2008 11:20:32 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807022111u4f65fe7ap851a997a23e230a8@mail.gmail.com>
References: <4d93f07c0807022111u4f65fe7ap851a997a23e230a8@mail.gmail.com>
Message-ID: <486C99E0.4040402@bsc.es>
Hello Martin,
So as far as I understand, the final battle is about Rest/Soap... So
let's use CORBA!!! (joke)
I am not the one that like all the standards (especially the
latest_and_greatest ones), but as a developer I recognize that we can
not compete against the whole industry. My usual position is to use
those standards that have a strong support in a Java world (of course I
am Java biased). So I see what we have from w3c, an then to JCP... I
don't want to implement them by myself... I am lazy...
With WSRF I had no other way, but implement a part of it. Here we have a
problem, because in distributed computations (and Moby is a kind of it)
Grid is very popular and so WSRF, but somehow Sun guys ignore it...
I understand SOAP and how it works... We can do all the things we need
just USING it.
Even current Moby message format can fit into it with XML Schema. My
moby implementation library doesn't parse moby message, but rather let
the standard Java library do it.
I am afraid we can not mix SOAP-WSRF approach with REST... Just because
the REST is not a technology, neither a protocol.
It's just a concept (and... IT IS STATELESS), so you can define your
protocol, but you will need to reinvent all the protocols... when a
resource should be destroyed? It reminds me the year 2000 when having
CORBA that worked just fine, someone said "It is complicated, let's
invent something simple"... Now we have SOAP with 4 different encodings
+ some 20 specifications + WSDL +... And all they do the same CORBA did
10 years ago...
Now people don't want SOAP because it is complicated so let's start
REST... OK, but I'd like to see the specification with
asynchrony/streaming based on REST concept.
What is why I love Java - There is no any Java specification without a
working implementation.
So, finally IMHO if we want to move out of SOAP we at least need to know
where we are moving...
Cheers,
Dmitry
From dmitry.repchevski at bsc.es Thu Jul 3 05:57:59 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 03 Jul 2008 11:57:59 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
Message-ID: <486CA2A7.4070702@bsc.es>
Hello,
> For all I know WSRF is already been surpassed by WS-RT. http://www.ibm.com/developerworks/grid/library/gr-wsrfwsrt/index.html?ca=drs-
> There are quite a number of people who are disenchanted by WSRF. See http://blog.harbulot.com/post/2006/11/22/Experiences-with-WSRF for one example.
>
> Machiel
This is what I am talking about... Martin has a reason we have had
enough problems with WSRF... now we have a "better" one (WSRT)...
But (!) There is an implementation? It looks like that this is a perfect
technology that exists in a paper...
Should we implement all the standards just to be able to use it? If IBM
claims to have a new/cool standard (by the way "standard" - who is
behind it?) but why can't I find (free) implementation of it?
It uses WS-Transfer has more sense to me because it can describe a way
to represent a moby object in moby message tree (for wsrf). and it is at
least w3s standard.
Claiming something to be a standard is always a bold claim...
Dmitry
From jflo at imim.es Tue Jul 8 07:42:04 2008
From: jflo at imim.es (Judith Flo)
Date: Tue, 08 Jul 2008 13:42:04 +0200
Subject: [MOBY-dev] strange behaviour
Message-ID: <4873528C.7070000@imim.es>
Hi,
Yesterday I changed one datatype (WeightedObject) to add another String
(Description). I unregistered the previous one and registered the new
one, same name, diferent structure.
Now the problem: when I try to compile the service, i get an error
telling me that the method that should set, this new attribute doesn't
exists. It is a very strange problem I've never seen before... The
curious is that Eclipse is not complaining and when I type object.set it
shows me as a possible operation to do, to set this atribute, but when I
try to compile it, just get:
[javac] Compiling 1 source file to
/home/judith/workspace3/services/WebContent/WEB-INF/classes
[javac]
/home/judith/workspace3/services/src/es/imim/cgl/runBlastXPImpl.java:76:
cannot find symbol
[javac] symbol : method set_Description(java.lang.String)
[javac] location: class org.biomoby.shared.datatypes.WeightedObject
[javac] w.set_Description("asdf");
[javac] ^
[javac] 1 error
Does someone know what's happening?
Of course I have regenerated the biomoby-datatypes.jar and now I check
that the new class exists and it contains this new atribute.
j
From jflo at imim.es Tue Jul 8 07:58:07 2008
From: jflo at imim.es (Judith Flo)
Date: Tue, 08 Jul 2008 13:58:07 +0200
Subject: [MOBY-dev] strange behaviour part 2
Message-ID: <4873564F.4020700@imim.es>
I also got this error on server side when trying to run some service
from dashboard:
AN ERROR OCCURED DURING THE SERVICE EXECUTION: Class
'org.biomoby.shared.datatypes.MapDataTypes' was not found.
It may indicate that you have not generated all Biomoby data types from
a Biomoby registry.
See http://www.biomoby.org/moby-live/Java/docs/Moses.html for details.
If you are a jMoby developer just type: ./build-dev.sh moses-datatypes.
Or perhaps, they just need to be compiled: ./build-dev.sh moses-compile.
From martin.senger at gmail.com Tue Jul 8 09:07:01 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 8 Jul 2008 08:07:01 -0500
Subject: [MOBY-dev] strange behaviour
In-Reply-To: <4873528C.7070000@imim.es>
References: <4873528C.7070000@imim.es>
Message-ID: <4d93f07c0807080607i402e659cy22532236854192d@mail.gmail.com>
> Yesterday I changed one datatype (WeightedObject) to add another String
> (Description). I unregistered the previous one and registered the new one,
> same name, diferent structure.
When changing an existing data type, the local cache should be updated. Or
newly created (reloading).
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From martin.senger at gmail.com Tue Jul 8 09:10:24 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 8 Jul 2008 08:10:24 -0500
Subject: [MOBY-dev] strange behaviour part 2
In-Reply-To: <4873564F.4020700@imim.es>
References: <4873564F.4020700@imim.es>
Message-ID: <4d93f07c0807080610p75acfcdaofc707d78abc1cb5a@mail.gmail.com>
> AN ERROR OCCURED DURING THE SERVICE EXECUTION: Class
> 'org.biomoby.shared.datatypes.MapDataTypes' was not found.
>
Look into your Tomcat's WEB-INF's lib directory and check what jar files you
have there, and if there are up-to-date.
> If you are a jMoby developer just type: ./build-dev.sh moses-datatypes.
>
Be aware that this message is a bit old (I have to update it in the code).
But you already know that you are using rather "ant moses-datatypes".
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From jflo at imim.es Tue Jul 8 10:51:14 2008
From: jflo at imim.es (Judith Flo)
Date: Tue, 08 Jul 2008 16:51:14 +0200
Subject: [MOBY-dev] strange behaviour part 2
In-Reply-To: <4d93f07c0807080610p75acfcdaofc707d78abc1cb5a@mail.gmail.com>
References: <4873564F.4020700@imim.es>
<4d93f07c0807080610p75acfcdaofc707d78abc1cb5a@mail.gmail.com>
Message-ID: <48737EE2.1010804@imim.es>
I've checked the lasts versions that are running (both in my machine and
the server) and the biomoby-datatypes.jar is the same (the last that I
generated with the object changed).
I did reload the cache before, I repeated now and it keeps complaining
about this new atribute/method.
I'll try to remove cache... maybe it'll help...
Any other idea?
j
Martin Senger wrote:
>> AN ERROR OCCURED DURING THE SERVICE EXECUTION: Class
>> 'org.biomoby.shared.datatypes.MapDataTypes' was not found.
>>
>>
>
> Look into your Tomcat's WEB-INF's lib directory and check what jar files you
> have there, and if there are up-to-date.
>
>
>
>> If you are a jMoby developer just type: ./build-dev.sh moses-datatypes.
>>
>>
>
> Be aware that this message is a bit old (I have to update it in the code).
> But you already know that you are using rather "ant moses-datatypes".
>
> Martin
>
>
From martin.senger at gmail.com Tue Jul 8 11:27:27 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 8 Jul 2008 10:27:27 -0500
Subject: [MOBY-dev] strange behaviour part 2
In-Reply-To: <48737EE2.1010804@imim.es>
References: <4873564F.4020700@imim.es>
<4d93f07c0807080610p75acfcdaofc707d78abc1cb5a@mail.gmail.com>
<48737EE2.1010804@imim.es>
Message-ID: <4d93f07c0807080827n1b63ef3yd4c8cfdc420983c6@mail.gmail.com>
> Any other idea?
Also restart yout Tomcat. Or, try your service "locally" (either from
Dashboard or from a command-line script) - if this works then the probelm is
in Tomcat.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Mon Jul 14 02:52:10 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Mon, 14 Jul 2008 08:52:10 +0200
Subject: [MOBY-dev] Problem with MobyNamespace.getNamespace
Message-ID: <487AF79A.30301@mpiz-koeln.mpg.de>
Hi,
I'm using the method MobyNamespace.getNamespace(String ns) in the jmoby
api to retrieve the MobyNamespace for a given string. Unfortunately this
method is not working anymore correctly. E.g. if i use PMID as input
(which is a namespace) i get null back from this method.
I tested it with PDB, AFAWE_ID, PMID and UniProt, which all are namespaces.
The java code I'm using is some weeks old and it worked as far as i know
for a long long time - why not now ?
If i call http://biomoby.org/RESSOURCES/MOBY-S/Namespaces i get the rdf
in which I do find e.g. PMID... but still the method above returns null.
any ideas ?
thx
andreas
From gordonp at ucalgary.ca Mon Jul 14 09:57:02 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Mon, 14 Jul 2008 07:57:02 -0600
Subject: [MOBY-dev] Problem with MobyNamespace.getNamespace
In-Reply-To: <487AF79A.30301@mpiz-koeln.mpg.de>
References: <487AF79A.30301@mpiz-koeln.mpg.de>
Message-ID: <487B5B2E.4030104@ucalgary.ca>
Hi Andreas,
I'll check it out and get back to you...
Andreas Groscurth wrote:
> Hi,
>
> I'm using the method MobyNamespace.getNamespace(String ns) in the
> jmoby api to retrieve the MobyNamespace for a given string.
> Unfortunately this method is not working anymore correctly. E.g. if i
> use PMID as input (which is a namespace) i get null back from this
> method.
>
> I tested it with PDB, AFAWE_ID, PMID and UniProt, which all are
> namespaces.
>
> The java code I'm using is some weeks old and it worked as far as i
> know for a long long time - why not now ?
>
> If i call http://biomoby.org/RESSOURCES/MOBY-S/Namespaces i get the
> rdf in which I do find e.g. PMID... but still the method above returns
> null.
>
> any ideas ?
>
> thx
> andreas
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
>
From groscurt at mpiz-koeln.mpg.de Tue Jul 15 07:56:17 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Tue, 15 Jul 2008 13:56:17 +0200
Subject: [MOBY-dev] findService and the hierarchy
Message-ID: <487C9061.3030203@mpiz-koeln.mpg.de>
Hi,
another question from my side...
I use the findService method in jmoby in CentralImpl. Due to the code
all calls end up in the method findService(MobyService service, String[]
keyword, boolean includeChildrenServiceType, boolean
includeParentDatatype).
I use the MobyDatatype Annotated_GO_Term which is a child of GO_Term. In
my opinion when searching for services consuming Annotated_GO_Term via
the findService method i should also include the service which consumes
a GO_Term datatype, as this is the parent datatype (per default
'includeParentDatatype' is true)....
what is wrong in this way to think ? because i do not find service with
datatype GO_Term ? and if the way i think is wrong - can you give me an
example how this parameter is used at all ?
Thanks
andreas
From gordonp at ucalgary.ca Wed Jul 16 16:43:02 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Wed, 16 Jul 2008 14:43:02 -0600
Subject: [MOBY-dev] Problem with MobyNamespace.getNamespace
In-Reply-To: <487AF79A.30301@mpiz-koeln.mpg.de>
References: <487AF79A.30301@mpiz-koeln.mpg.de>
Message-ID: <487E5D56.8050508@ucalgary.ca>
Hi Andreas,
I've updated MobyNamespace to use Eddie's new caching mechanism, and it
seems to work again. You'll ned to do a CVS update for the whole the
moby-live/Java/src/main directory. Please let me know if you have any
more trouble. I will be updating MobyDataType and MobyServiceType
similarly.
Regards,
Paul
Andreas Groscurth wrote:
> Hi,
>
> I'm using the method MobyNamespace.getNamespace(String ns) in the
> jmoby api to retrieve the MobyNamespace for a given string.
> Unfortunately this method is not working anymore correctly. E.g. if i
> use PMID as input (which is a namespace) i get null back from this
> method.
>
> I tested it with PDB, AFAWE_ID, PMID and UniProt, which all are
> namespaces.
>
> The java code I'm using is some weeks old and it worked as far as i
> know for a long long time - why not now ?
>
> If i call http://biomoby.org/RESSOURCES/MOBY-S/Namespaces i get the
> rdf in which I do find e.g. PMID... but still the method above returns
> null.
>
> any ideas ?
>
> thx
> andreas
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
>
From groscurt at mpiz-koeln.mpg.de Fri Jul 18 04:00:34 2008
From: groscurt at mpiz-koeln.mpg.de (groscurt)
Date: Fri, 18 Jul 2008 10:00:34 +0200
Subject: [MOBY-dev] Problem with MobyNamespace.getNamespace
In-Reply-To: <487E5D56.8050508@ucalgary.ca>
Message-ID:
Hi Paul
thanks for your effort, it does work now :)
Best
andreas
----------------original message-----------------
From: "Paul Gordon" gordonp at ucalgary.ca
To: "Core developer announcements" moby-dev at lists.open-bio.org
Date: Wed, 16 Jul 2008 14:43:02 -0600
-------------------------------------------------
> Hi Andreas,
>
> I've updated MobyNamespace to use Eddie's new caching mechanism, and it
> seems to work again. You'll ned to do a CVS update for the whole the
> moby-live/Java/src/main directory. Please let me know if you have any
> more trouble. I will be updating MobyDataType and MobyServiceType
> similarly.
>
> Regards,
>
> Paul
>
> Andreas Groscurth wrote:
>> Hi,
>>
>> I'm using the method MobyNamespace.getNamespace(String ns) in the
>> jmoby api to retrieve the MobyNamespace for a given string.
>> Unfortunately this method is not working anymore correctly. E.g. if i
>> use PMID as input (which is a namespace) i get null back from this
>> method.
>>
>> I tested it with PDB, AFAWE_ID, PMID and UniProt, which all are
>> namespaces.
>>
>> The java code I'm using is some weeks old and it worked as far as i
>> know for a long long time - why not now ?
>>
>> If i call http://biomoby.org/RESSOURCES/MOBY-S/Namespaces i get the
>> rdf in which I do find e.g. PMID... but still the method above returns
>> null.
>>
>> any ideas ?
>>
>> thx
>> andreas
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>>
>>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
From martin.senger at gmail.com Tue Jul 22 23:09:48 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 22 Jul 2008 20:09:48 -0700
Subject: [MOBY-dev] findService and the hierarchy
In-Reply-To: <487C9061.3030203@mpiz-koeln.mpg.de>
References: <487C9061.3030203@mpiz-koeln.mpg.de>
Message-ID: <4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
> In my opinion when searching for services consuming Annotated_GO_Term via
> the findService method i should also include the service which consumes a
> GO_Term datatype, as this is the parent datatype (per default
> 'includeParentDatatype' is true)....
>
I assume that by "I should also include" you actually meant "the registry
response should also include". Is my understanding correct?
If so, I am afraid that it is not the issue of the jMoby library but the
registry itself. Eddie or Mark can confirm or reject this hypothesis.
The BioMoby API allows to specify two XML tags when calling findService
method: the
X
and
X
Where X can be either 1 or 0.
The jMoby's findService() method sets these two tags according to the two
boolean parameters that the method can get:
boolean includeChildrenServiceTypes
and
boolean includeParentDataTypes
I have tried to call the findService, with the Annotated_GO_Term input,
using all combinations of these two tags (you can do it using the Moby
command-line client with the optioins -nc and/or -np). The results are
either no service or 713 services:
expandObjects expandServices # of found services
1 1 713
0 0 0
1 0 713
0 0 0
I have feeling that this is not a correct result. Could Eddie or Mark
perhaps comment on it?
[I vaguely remember that we had this conversation about these tags with Mark
years(!) ago - but I do not recall what was the conclusion. I only, and
again vaguely, remember to have this issue in my to-do list - which would
indicate that something could be done in the jMoby library.]
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Wed Jul 23 04:05:48 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Wed, 23 Jul 2008 10:05:48 +0200
Subject: [MOBY-dev] findService and the hierarchy
In-Reply-To: <4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
References: <487C9061.3030203@mpiz-koeln.mpg.de>
<4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
Message-ID: <4886E65C.5060205@mpiz-koeln.mpg.de>
Yes Martin you understood it - as always - perfectly correct :)
Thanks for the additional information
Martin Senger wrote:
>> In my opinion when searching for services consuming Annotated_GO_Term via
>> the findService method i should also include the service which consumes a
>> GO_Term datatype, as this is the parent datatype (per default
>> 'includeParentDatatype' is true)....
>>
>>
>
> I assume that by "I should also include" you actually meant "the registry
> response should also include". Is my understanding correct?
>
> If so, I am afraid that it is not the issue of the jMoby library but the
> registry itself. Eddie or Mark can confirm or reject this hypothesis.
>
> The BioMoby API allows to specify two XML tags when calling findService
> method: the
>
> X
> and
> X
>
> Where X can be either 1 or 0.
>
> The jMoby's findService() method sets these two tags according to the two
> boolean parameters that the method can get:
>
> boolean includeChildrenServiceTypes
> and
> boolean includeParentDataTypes
>
> I have tried to call the findService, with the Annotated_GO_Term input,
> using all combinations of these two tags (you can do it using the Moby
> command-line client with the optioins -nc and/or -np). The results are
> either no service or 713 services:
>
> expandObjects expandServices # of found services
> 1 1 713
> 0 0 0
> 1 0 713
> 0 0 0
>
> I have feeling that this is not a correct result. Could Eddie or Mark
> perhaps comment on it?
>
> [I vaguely remember that we had this conversation about these tags with Mark
> years(!) ago - but I do not recall what was the conclusion. I only, and
> again vaguely, remember to have this issue in my to-do list - which would
> indicate that something could be done in the jMoby library.]
>
> Cheers,
> Martin
>
>
From groscurt at mpiz-koeln.mpg.de Wed Jul 23 04:54:56 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Wed, 23 Jul 2008 10:54:56 +0200
Subject: [MOBY-dev] working with images
In-Reply-To:
References:
Message-ID: <4886F1E0.5020704@mpiz-koeln.mpg.de>
Hi,
i try to figure out how to transfer images via Web Service in moby....
E.g. i use the b64_encoded_jpeg. It has the children 'content' which
requires a String, so i need to somehow encode/decode the image file so
that it can be transmitted as a String and the client can read it as an
image (which is somehow done via MobyDataBytes)...
how to do that ?
thanks
Andreas
From Sebastien.Carrere at toulouse.inra.fr Wed Jul 23 05:10:04 2008
From: Sebastien.Carrere at toulouse.inra.fr (Sebastien Carrere)
Date: Wed, 23 Jul 2008 11:10:04 +0200
Subject: [MOBY-dev] working with images
In-Reply-To: <4886F1E0.5020704@mpiz-koeln.mpg.de>
References:
<4886F1E0.5020704@mpiz-koeln.mpg.de>
Message-ID: <4886F56C.4090100@toulouse.inra.fr>
Hi Andreas,
In my web services (written using PlayMoby , then Perl), I use the
module MIME::Base64
(http://search.cpan.org/~gaas/MIME-Base64-3.07/Base64.pm).
I just make a cat on my picture file, and encode the result in Base64,
then add it to my Moby String content.
Sebastien
Andreas Groscurth wrote:
> Hi,
>
> i try to figure out how to transfer images via Web Service in moby....
>
> E.g. i use the b64_encoded_jpeg. It has the children 'content' which
> requires a String, so i need to somehow encode/decode the image file
> so that it can be transmitted as a String and the client can read it
> as an image (which is somehow done via MobyDataBytes)...
>
> how to do that ?
>
> thanks
> Andreas
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Sebastien_Carrere.vcf
Type: text/x-vcard
Size: 387 bytes
Desc: not available
URL:
From martin.senger at gmail.com Wed Jul 23 05:22:19 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Wed, 23 Jul 2008 17:22:19 +0800
Subject: [MOBY-dev] working with images
In-Reply-To: <4886F1E0.5020704@mpiz-koeln.mpg.de>
References:
<4886F1E0.5020704@mpiz-koeln.mpg.de>
Message-ID: <4d93f07c0807230222l1586b9f1r37b0c9f05f326c38@mail.gmail.com>
> i try to figure out how to transfer images via Web Service in moby....
You can look for an example in the
org.biomoby.service.dashboard.renderers.Base64Image.java. This example does
opposite thing that you want, but it is still the same. I used there the
library coming with Axis (which is used by BioMoby anyway, so it is not an
additional dependency):
import org.apache.axis.encoding.Base64;
The example uses method decode() - and you need to use encode() (I guess).
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Wed Jul 23 05:36:25 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Wed, 23 Jul 2008 11:36:25 +0200
Subject: [MOBY-dev] working with images
In-Reply-To: <4886F56C.4090100@toulouse.inra.fr>
References: <4886F1E0.5020704@mpiz-koeln.mpg.de>
<4886F56C.4090100@toulouse.inra.fr>
Message-ID: <4886FB99.1080404@mpiz-koeln.mpg.de>
Hi,
thanks for that - i forgot to mention i'm looking for a java solution ;-)
but your hint of encode in Base64 made me google again and found the
apache.commons.codec and it works.
Thanks for the hint :)
Andreas
Sebastien Carrere wrote:
> Hi Andreas,
>
> In my web services (written using PlayMoby , then Perl), I use the
> module MIME::Base64
> (http://search.cpan.org/~gaas/MIME-Base64-3.07/Base64.pm).
>
> I just make a cat on my picture file, and encode the result in Base64,
> then add it to my Moby String content.
>
>
> Sebastien
>
>
>
>
>
> Andreas Groscurth wrote:
>> Hi,
>>
>> i try to figure out how to transfer images via Web Service in moby....
>>
>> E.g. i use the b64_encoded_jpeg. It has the children 'content' which
>> requires a String, so i need to somehow encode/decode the image file
>> so that it can be transmitted as a String and the client can read it
>> as an image (which is somehow done via MobyDataBytes)...
>>
>> how to do that ?
>>
>> thanks
>> Andreas
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
From martin.senger at gmail.com Wed Jul 23 05:35:32 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Wed, 23 Jul 2008 17:35:32 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
Message-ID: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
I have deployed (to Maven) the current jMoby as version 1.1.0.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From edward.kawas at gmail.com Wed Jul 23 08:54:08 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 23 Jul 2008 05:54:08 -0700
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
Message-ID: <488729f9.20f8720a.0551.0626@mx.google.com>
Hi Martin,
Does this update include org.biomoby.service.dashboard.* (the dashboard
components)?
Thanks,
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-23-08 2:36 AM
To: Core developer announcements
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
I have deployed (to Maven) the current jMoby as version 1.1.0.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From martin.senger at gmail.com Wed Jul 23 09:04:10 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Wed, 23 Jul 2008 21:04:10 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <488729f9.20f8720a.0551.0626@mx.google.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com>
Message-ID: <4d93f07c0807230604p664530ag2dda536268aaf8a1@mail.gmail.com>
> Does this update include org.biomoby.service.dashboard.* (the dashboard
> components)?
I have not changed anything regarding included packages - my intention was
simply to have the latest code available from maven (because we need it for
some projects). I am aware that you want to have some separation of packages
- for that we may make another release sooner or later.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From jmfernandez at cnio.es Wed Jul 23 09:04:02 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Wed, 23 Jul 2008 15:04:02 +0200
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <488729f9.20f8720a.0551.0626@mx.google.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com>
Message-ID: <48872C42.3060008@cnio.es>
Hi Eddie and Martin,
I have realized that there are two sets of jMoby artifacts. The first one
(biomoby.org maven group) is the used by taverna-biomoby plugin, meanwhile the
second one (org.biomoby maven group) is the officially provided by you.
So, which are the differences between them? The first one is already in
version 1.2, while the second one has just reached version 1.1.0.
Best Regards,
Jos? Mar?a
Edward Kawas wrote:
> Hi Martin,
>
> Does this update include org.biomoby.service.dashboard.* (the dashboard
> components)?
>
> Thanks,
>
> Eddie
>
> -----Original Message-----
> From: moby-dev-bounces at lists.open-bio.org
> [mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
> Sent: July-23-08 2:36 AM
> To: Core developer announcements
> Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
>
> I have deployed (to Maven) the current jMoby as version 1.1.0.
>
> Cheers,
> Martin
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From edward.kawas at gmail.com Wed Jul 23 09:13:19 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 23 Jul 2008 06:13:19 -0700
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <48872C42.3060008@cnio.es>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com> <488729f9.20f8720a.0551.0626@mx.google.com>
<48872C42.3060008@cnio.es>
Message-ID: <48872e78.16538c0a.696c.1560@mx.google.com>
Hi Jose Maria,
The version used by the taverna-biomoby plugin contains some extra classes.
Once these classes are available in the org.biomoby maven group, the
biomoby.org maven group will be wound down and the plugin will utilize the
official org.biomoby maven group.
Thanks,
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Jos? Mar?a
Fern?ndez Gonz?lez
Sent: July-23-08 6:04 AM
To: Core developer announcements
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
Hi Eddie and Martin,
I have realized that there are two sets of jMoby artifacts. The
first one
(biomoby.org maven group) is the used by taverna-biomoby plugin, meanwhile
the
second one (org.biomoby maven group) is the officially provided by you.
So, which are the differences between them? The first one is already
in
version 1.2, while the second one has just reached version 1.1.0.
Best Regards,
Jos? Mar?a
Edward Kawas wrote:
> Hi Martin,
>
> Does this update include org.biomoby.service.dashboard.* (the dashboard
> components)?
>
> Thanks,
>
> Eddie
>
> -----Original Message-----
> From: moby-dev-bounces at lists.open-bio.org
> [mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
> Sent: July-23-08 2:36 AM
> To: Core developer announcements
> Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
>
> I have deployed (to Maven) the current jMoby as version 1.1.0.
>
> Cheers,
> Martin
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los
ficheros adjuntos, pueden contener informaci?n protegida para el uso
exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o
cualquier otro tipo de transmisi?n por parte de otra persona que no sea el
destinatario. Si usted recibe por error este correo, se ruega comunicarlo al
remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may
contain confidential and privileged information for the sole use of the
designated recipient named above. Distribution, reproduction or any other
use of this transmission by any party other than the intended recipient is
prohibited. If you are not the intended recipient please contact the sender
and delete all copies.
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From pieter.neerincx at gmail.com Wed Jul 23 11:06:38 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Wed, 23 Jul 2008 17:06:38 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486CA2A7.4070702@bsc.es>
References:
<486CA2A7.4070702@bsc.es>
Message-ID: <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
Hi,
> Martin Senger wrote:
> A service *can* obey such request and send one or more *primitive
> data* as references (the focus on primitive type is new, originaly
> we thought about allowing references on any level, but now, mainly
> becuse of the purpose B we do not propose it anymore).
That doesn't sound very appealing to me. I use quite large data
structures and can have tens of thousands of them in a collection
(think of oligos for micro arrays.) If I can only replace the
primitives with references, I would still have to send a BioMoby XML
structure with hundreds of thousands of references replacing the
primitives. A client or the next service in a workflow would have to
resolve all those references with each reference pointing to only a
relatively small amount of data. That would be a mess and just cause a
huge amount of overhead.
So, I would really love to see the ability to replace a complete
collection or even the entire mobyData block with a reference. Having
said that I really like the idea of purpose "B" too, where I can embed
a link to existing EMBL/Genbank/etc. records on EBI/NCBI/etc. servers.
The only risk would be that a client or the next service in a workflow
happily resolves those links as fast and efficient as it can causing
too much load on those servers. A colleague once managed to have our
entire campus disconnected from the NCBI with simple script resolving
PubMed URLs... it was really easy :). With references it's always
possible to reference something on someone else's servers, but with
purpose "B" it's more likely to happen.
> Martin Senger wrote:
> I do not like using the RDF for mandatory features. The RDF, at
> least in the
> current moby, is optional and should not carry anything that is
> significant
> for the service and its behaviour. The data by reference should be
> part of
> the main BioMoby API (or whatever we call it).
I agree with Martin partially on this one: pass by reference should be
part of the main BioMoby API and not something optional as it is
essential for successful client-service communication. But that
doesn't necessarily exclude using RDF. We could also promote the RDF
stuff from optional to required. I don't want to open a can of worms
here and I'm not advocating making the RDF features mandatory. I'm
just saying it might be an option...
> Dmitry Repchevski wrote:
> If we are going to stay with SOAP (and especially move to doc/lit)
> the right way is to provide streaming through SOAP Attachments (SwA)
> or even better using MTOM.
I don't think attachments of any kind would be a good idea. Although
theoretically a nice solution for streaming data and keeping
everything together, there are practical problems:
* Most firewalls block attachments over 5 MB in size. One of the great
things of web services compared to the good 'ol CORBA is that we can
tunnel over any protocol. So most of us use HTTP(S) to bypass our
institute's paranoid sys admins and skip the part where you'd have to
bug them to open up another firewall port. I'm not sure if this
problem persists with the newer MTOM, but it's disaster with MIME or
DIME attachments.
* I'm not sure about the newer MTOM, but the combination of SOAP and
MIME attachments is a disaster of you're using Perl. The required
modules are dying projects and you'd have to patch them manually to
make it work. If we would go with attachments we would either drop
Perl support for BioMoby or one of us would have to write a SOAP::Lite
+ MIME::tools alternative...
I agree with Dmitry that if we are going to stick with a standard it
has to be a de facto standard. Hence well supported by toolkits/
implementations. A standard that only exists on paper is useless. Most
of us want to build or use BioMoby services and are not that much
interested in writing toolkits. I never managed to become a big WSRF
fan. It's needlessly complicated causing lot's of overhead.
Actually I like what Mark wrote initially most:
> We'll write-up the formal specification of how to do this soon, but
> briefly the idea is that we will use the xlink XML attribute in a
> Moby Object XML <.... xlink=''/>. When that tag is present, it is
> assumed that the content of that node is available at the URI in
> that reference. During service registration a provider will
> indicate the various transport protocols they provide for creating
> references (e.g. http, ftp) and this will be discoverable during a
> registry query. If you don't indicate a protocol, then you are
> saying that you do not support pass-by-reference, and therefore all
> existing services are supported. When accessing a service, you
> indicate to the service provider that you want data to be passed by
> reference by adding an attribute in the mobyData block acceptRefs="http ftp">. The service provider then has the option of
> providing you references for any data they wish. The xlink
> attribute can appear at any level in your Moby object, such that
> some data may be passed in the object itself, while other data from
> the same object may be passed by reference.
For the BioMoby data structures this only requires allowing an
optional xlink attribute and acceptRefs in the request from the
client. Maybe it's nicer to have acceptRefs as a child element of
mobyData or maybe at another level in the XML, but not as an
attribute, because attributes are intended for single items. In the
example above acceptRefs contains a space separated list and off
course we can parse that, but it's ugly XML. Anyway, what Mark wrote
above is very flexible, light-weight and relatively backwards
compatible. If I can choose between a simple <... xlink=""> attribute
or the bulky WSA header from Dmitry's example like in:
http://myserver.com/MyService?asyncId=ID
wsa:Address>
ID
mobyws:result_queryId00/image/jpeg/content
I'd choose the xlink attribute!
Cheers,
Pi
On 3?Jul?2008, at 11:57 AM, Dmitry Repchevsky wrote:
> Hello,
>
>> For all I know WSRF is already been surpassed by WS-RT. http://www.ibm.com/developerworks/grid/library/gr-wsrfwsrt/index.html?ca=drs-
>> There are quite a number of people who are disenchanted by WSRF.
>> See http://blog.harbulot.com/post/2006/11/22/Experiences-with-WSRF
>> for one example.
>>
>> Machiel
> This is what I am talking about... Martin has a reason we have had
> enough problems with WSRF... now we have a "better" one (WSRT)...
> But (!) There is an implementation? It looks like that this is a
> perfect technology that exists in a paper...
> Should we implement all the standards just to be able to use it? If
> IBM claims to have a new/cool standard (by the way "standard" - who
> is behind it?) but why can't I find (free) implementation of it?
>
> It uses WS-Transfer has more sense to me because it can describe a
> way to represent a moby object in moby message tree (for wsrf). and
> it is at least w3s standard.
> Claiming something to be a standard is always a bold claim...
>
> Dmitry
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
------------------------------------------------------------
From markw at illuminae.com Wed Jul 23 12:55:06 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Wed, 23 Jul 2008 09:55:06 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
Message-ID:
On Wed, 23 Jul 2008 08:06:38 -0700, Pieter Neerincx
wrote:
> That doesn't sound very appealing to me. I use quite large data
> structures and can have tens of thousands of them in a collection (think
> of oligos for micro arrays.) If I can only replace the primitives with
> references, I would still have to send a BioMoby XML structure with
> hundreds of thousands of references replacing the primitives.
Hmmm... that's a situation that we had NEVER considered! Putting xlinks
into a component of the Moby message higher than the mobyData block was
not a scenario that came up during our discussions in Tokyo. the xlink
was really only intended to carry data, not data + moby message
structure... but I suppose it COULD!
How do others feel about this?
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
From jmfernandez at cnio.es Wed Jul 23 13:47:54 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Wed, 23 Jul 2008 19:47:54 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
Message-ID: <48876ECA.1040109@cnio.es>
IMHO it can be dangerous for the MOBY payload integrity using XInclude at
mobyContent childs (mobyData) level, but it can be needed in scenarios like
the one described by Pieter. For security reasons, XInclude / XLink / XPointer
should be restricted to the contents of mobyData, not to MOBY Data itself. For
instance, references to Simples or Collections, Collections composed by a
mixure of Simples and references to Simples, or Secondary parameters copied
from run to run.
Best Regards,
Jos? Mar?a
Mark Wilkinson wrote:
> On Wed, 23 Jul 2008 08:06:38 -0700, Pieter Neerincx
> wrote:
>
>
>> That doesn't sound very appealing to me. I use quite large data
>> structures and can have tens of thousands of them in a collection
>> (think of oligos for micro arrays.) If I can only replace the
>> primitives with references, I would still have to send a BioMoby XML
>> structure with hundreds of thousands of references replacing the
>> primitives.
>
> Hmmm... that's a situation that we had NEVER considered! Putting xlinks
> into a component of the Moby message higher than the mobyData block was
> not a scenario that came up during our discussions in Tokyo. the xlink
> was really only intended to carry data, not data + moby message
> structure... but I suppose it COULD!
>
> How do others feel about this?
>
> M
>
>
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From gordonp at ucalgary.ca Wed Jul 23 14:45:39 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Wed, 23 Jul 2008 12:45:39 -0600
Subject: [MOBY-dev] working with images
In-Reply-To: <4886FB99.1080404@mpiz-koeln.mpg.de>
References: <4886F1E0.5020704@mpiz-koeln.mpg.de> <4886F56C.4090100@toulouse.inra.fr>
<4886FB99.1080404@mpiz-koeln.mpg.de>
Message-ID: <48877C53.7010101@ucalgary.ca>
Hi Andreas,
If you're using the org.biomoby.shared.data package, there is a class
specifically for handling binary data:
http://biomoby.open-bio.org/CVS_CONTENT/moby-live/Java/docs/API/org/biomoby/shared/data/MobyDataBytes.html
Andreas Groscurth wrote:
> Hi,
>
> thanks for that - i forgot to mention i'm looking for a java solution ;-)
> but your hint of encode in Base64 made me google again and found the
> apache.commons.codec and it works.
>
> Thanks for the hint :)
> Andreas
>
> Sebastien Carrere wrote:
>> Hi Andreas,
>>
>> In my web services (written using PlayMoby , then Perl), I use the
>> module MIME::Base64
>> (http://search.cpan.org/~gaas/MIME-Base64-3.07/Base64.pm).
>>
>> I just make a cat on my picture file, and encode the result in
>> Base64, then add it to my Moby String content.
>>
>>
>> Sebastien
>>
>>
>>
>>
>>
>> Andreas Groscurth wrote:
>>> Hi,
>>>
>>> i try to figure out how to transfer images via Web Service in moby....
>>>
>>> E.g. i use the b64_encoded_jpeg. It has the children 'content' which
>>> requires a String, so i need to somehow encode/decode the image file
>>> so that it can be transmitted as a String and the client can read
>>> it as an image (which is somehow done via MobyDataBytes)...
>>>
>>> how to do that ?
>>>
>>> thanks
>>> Andreas
>>> _______________________________________________
>>> MOBY-dev mailing list
>>> MOBY-dev at lists.open-bio.org
>>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>>
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>>
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> !DSPAM:60005,4886f8b9109503161834!
>
>
>
From pieter.neerincx at gmail.com Wed Jul 23 19:48:03 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Thu, 24 Jul 2008 01:48:03 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <48876ECA.1040109@cnio.es>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
Message-ID: <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
Hi Jos?,
I don't understand how references could be security risk. And if they
do why the level at which you could use them would impact security.
Could you please explain?
If references to mobyData blocks are not an option having at least
references to BioMoby articles would already be a big help.
Secondaries are usually very small so I wouldn't need / use references
there, but for primary Simple and especially for primary Collection
articles it would be a big plus!
Cheers,
Pi
On 23 Jul 2008, at 19:47, Jos? Mar?a Fern?ndez Gonz?lez wrote:
> IMHO it can be dangerous for the MOBY payload integrity using
> XInclude at mobyContent childs (mobyData) level, but it can be
> needed in scenarios like the one described by Pieter. For security
> reasons, XInclude / XLink / XPointer should be restricted to the
> contents of mobyData, not to MOBY Data itself. For instance,
> references to Simples or Collections, Collections composed by a
> mixure of Simples and references to Simples, or Secondary parameters
> copied from run to run.
>
> Best Regards,
> Jos? Mar?a
>
> Mark Wilkinson wrote:
>> On Wed, 23 Jul 2008 08:06:38 -0700, Pieter Neerincx > > wrote:
>>> That doesn't sound very appealing to me. I use quite large data
>>> structures and can have tens of thousands of them in a collection
>>> (think of oligos for micro arrays.) If I can only replace the
>>> primitives with references, I would still have to send a BioMoby
>>> XML structure with hundreds of thousands of references replacing
>>> the primitives.
>> Hmmm... that's a situation that we had NEVER considered! Putting
>> xlinks into a component of the Moby message higher than the
>> mobyData block was not a scenario that came up during our
>> discussions in Tokyo. the xlink was really only intended to carry
>> data, not data + moby message structure... but I suppose it COULD!
>> How do others feel about this?
>> M
>
> --
> "There is no reason why anybody would want a computer in their home" -
> Ken Olson, founder of DEC 1977
> "640K ought to be enough for anybody" - Bill Gates, 1981
> "Nobody will ever outgrow a 20Mb hard drive." - ???
>
> "Premature optimization is the root of all evil." - Donald Knuth
>
> Jos? Mar?a Fern?ndez Gonz?lez
> Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
> e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
> Unidad del Instituto Nacional de Bioinform?tica
> Biolog?a Estructural y Biocomputaci?n Structural Biology and
> Biocomputing
> Centro Nacional de Investigaciones Oncol?gicas
> C.P.: 28029 Zip Code: 28029
> C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
>
> **NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso
> los ficheros adjuntos, pueden contener informaci?n protegida para el
> uso exclusivo de su destinatario. Se proh?be la distribuci?n,
> reproducci?n o cualquier otro tipo de transmisi?n por parte de otra
> persona que no sea el destinatario. Si usted recibe por error este
> correo, se ruega comunicarlo al remitente y borrar el mensaje
> recibido.
> **CONFIDENTIALITY NOTICE** This email communication and any
> attachments may contain confidential and privileged information for
> the sole use of the designated recipient named above. Distribution,
> reproduction or any other use of this transmission by any party
> other than the intended recipient is prohibited. If you are not the
> intended recipient please contact the sender and delete all copies.
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
-------------------------------------------------------------
From martin.senger at gmail.com Wed Jul 23 20:41:35 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Thu, 24 Jul 2008 08:41:35 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <48872C42.3060008@cnio.es>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com> <48872C42.3060008@cnio.es>
Message-ID: <4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
> I have realized that there are two sets of jMoby artifacts.
I can't see them. Where should I look?
The official jMoby Maven representation is in
http://biomoby.org/m2repo/org/biomoby/jmoby/ and its headers are:
org.biomoby
jmoby
1.1.0
There is also a Taverna-related artifact, here:
http://biomoby.org/m2repo/org/biomoby/taverna-for-moby/. But it may be too
old and obsolete (version 2004). This one has, indeed, a different group ID
(biomoby.org) which is a bit unfortunate (because it is confusing).
Anything I should change?
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From edward.kawas at gmail.com Wed Jul 23 20:47:45 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 23 Jul 2008 17:47:45 -0700
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com> <488729f9.20f8720a.0551.0626@mx.google.com>
<48872C42.3060008@cnio.es>
<4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
Message-ID: <4887d13d.02578c0a.4963.ffffe502@mx.google.com>
Hey Martin,
The one that Jose Maria is referring to is the one on
http://moby.ucalgary.ca/moby_maven/biomoby/org/
That was the one that I was using for the taverna-biomoby plugin.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-23-08 5:42 PM
To: Core developer announcements
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
> I have realized that there are two sets of jMoby artifacts.
I can't see them. Where should I look?
The official jMoby Maven representation is in
http://biomoby.org/m2repo/org/biomoby/jmoby/ and its headers are:
org.biomoby
jmoby
1.1.0
There is also a Taverna-related artifact, here:
http://biomoby.org/m2repo/org/biomoby/taverna-for-moby/. But it may be too
old and obsolete (version 2004). This one has, indeed, a different group ID
(biomoby.org) which is a bit unfortunate (because it is confusing).
Anything I should change?
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From martin.senger at gmail.com Wed Jul 23 20:58:02 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Thu, 24 Jul 2008 08:58:02 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4887d13d.02578c0a.4963.ffffe502@mx.google.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com> <48872C42.3060008@cnio.es>
<4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
<4887d13d.02578c0a.4963.ffffe502@mx.google.com>
Message-ID: <4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com>
>
> The one that Jose Maria is referring to is the one on
> http://moby.ucalgary.ca/moby_maven/biomoby/org/
>
> That was the one that I was using for the taverna-biomoby plugin.
Okay, splendid. Why always must we two, Paul and I, have things
differently/separately? Or perhaps it was not Paul who created this
repository...
We should use one Maven repository that was created for us at open-bio
servers. At least, that is where I am putting jMoby releases. The
taverna-plugin should be there, as well (my opinion).
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From edward.kawas at gmail.com Wed Jul 23 21:01:34 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 23 Jul 2008 18:01:34 -0700
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com> <488729f9.20f8720a.0551.0626@mx.google.com>
<48872C42.3060008@cnio.es> <4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com> <4887d13d.02578c0a.4963.ffffe502@mx.google.com>
<4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com>
Message-ID: <4887d47a.08b38c0a.380d.fffff846@mx.google.com>
Hey Martin,
Shoot me ;-)
That repository was created by me when taverna moved over to supporting
maven as a way for me to update the core jmoby code that the plugin uses.
Like I said previously, I want to kill that ucalgary repository once the
current one has the code that I need.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-23-08 5:58 PM
To: Core developer announcements
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
>
> The one that Jose Maria is referring to is the one on
> http://moby.ucalgary.ca/moby_maven/biomoby/org/
>
> That was the one that I was using for the taverna-biomoby plugin.
Okay, splendid. Why always must we two, Paul and I, have things
differently/separately? Or perhaps it was not Paul who created this
repository...
We should use one Maven repository that was created for us at open-bio
servers. At least, that is where I am putting jMoby releases. The
taverna-plugin should be there, as well (my opinion).
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From markw at illuminae.com Wed Jul 23 21:04:31 2008
From: markw at illuminae.com (markw at illuminae.com)
Date: Thu, 24 Jul 2008 01:04:31 +0000
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4887d47a.08b38c0a.380d.fffff846@mx.google.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com> <488729f9.20f8720a.0551.0626@mx.google.com><48872C42.3060008@cnio.es> <4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com> <4887d13d.02578c0a.4963.ffffe502@mx.google.com><4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com><4887d47a.08b38c0a.380d.fffff846@mx.google.com>
Message-ID: <2124445639-1216861474-cardhu_decombobulator_blackberry.rim.net-1399312485-@bxe175.bisx.prod.on.blackberry>
Eddie, be careful! Martin might just take you up on the offer! He isn't always as sweet and gentle as he is when he's in the beautiful city of Vancouver! LOL!
We love you Martin :-)
M
On the Road!
-----Original Message-----
From: "Edward Kawas"
Date: Wed, 23 Jul 2008 18:01:34
To: 'Core developer announcements'
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
Hey Martin,
Shoot me ;-)
That repository was created by me when taverna moved over to supporting
maven as a way for me to update the core jmoby code that the plugin uses.
Like I said previously, I want to kill that ucalgary repository once the
current one has the code that I need.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-23-08 5:58 PM
To: Core developer announcements
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
>
> The one that Jose Maria is referring to is the one on
> http://moby.ucalgary.ca/moby_maven/biomoby/org/
>
> That was the one that I was using for the taverna-biomoby plugin.
Okay, splendid. Why always must we two, Paul and I, have things
differently/separately? Or perhaps it was not Paul who created this
repository...
We should use one Maven repository that was created for us at open-bio
servers. At least, that is where I am putting jMoby releases. The
taverna-plugin should be there, as well (my opinion).
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From martin.senger at gmail.com Wed Jul 23 21:35:59 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Thu, 24 Jul 2008 09:35:59 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <2124445639-1216861474-cardhu_decombobulator_blackberry.rim.net-1399312485-@bxe175.bisx.prod.on.blackberry>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com> <48872C42.3060008@cnio.es>
<4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
<4887d13d.02578c0a.4963.ffffe502@mx.google.com>
<4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com>
<4887d47a.08b38c0a.380d.fffff846@mx.google.com>
<2124445639-1216861474-cardhu_decombobulator_blackberry.rim.net-1399312485-@bxe175.bisx.prod.on.blackberry>
Message-ID: <4d93f07c0807231835y3b9457d2q65728de32d7b6c17@mail.gmail.com>
:-) - I promise: no shooting!
Thanks for all clarification (and, BTW, thanks for wonderful days in
Vancouver, I really, really, enjoyed it).
Cheers,
Martin
PS. Eddie, let me know if you need any assistance with the [re]packaging of
the jMoby libraries. M.
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From jmfernandez at cnio.es Thu Jul 24 09:34:05 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Thu, 24 Jul 2008 15:34:05 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
Message-ID: <488884CD.9030403@cnio.es>
Hi Pieter,
I agree with you about the references to primary Simple and Collection
articles: they are absolutely needed. References to Secondary parameters can
be needed to copy/use the same values in other calls. I am not strongly
against references to full mobyData elements, but they should be considered
and used very carefully, because they can add more mobyData elements than you
wanted, and you cannot check duplicity of queryIds until all the referenced
mobyData elements are fetched.
With an ill-designed service (or libraries) and a carefully built XInclude
reference, with no checks local contents (from the computer or the intranet)
could be referenced and perhaps obtained. With an even more ill-designed
service (or libraries) and a carefully built XInclude reference, an external
hacker could fire OOM (Out Of Memory) or buffer overflow conditions.
Best Regards,
Jos? Mar?a
Pieter Neerincx wrote:
> Hi Jos?,
>
> I don't understand how references could be security risk. And if they do
> why the level at which you could use them would impact security. Could
> you please explain?
>
> If references to mobyData blocks are not an option having at least
> references to BioMoby articles would already be a big help. Secondaries
> are usually very small so I wouldn't need / use references there, but
> for primary Simple and especially for primary Collection articles it
> would be a big plus!
>
> Cheers,
>
> Pi
>
> On 23 Jul 2008, at 19:47, Jos? Mar?a Fern?ndez Gonz?lez wrote:
>
>> IMHO it can be dangerous for the MOBY payload integrity using XInclude
>> at mobyContent childs (mobyData) level, but it can be needed in
>> scenarios like the one described by Pieter. For security reasons,
>> XInclude / XLink / XPointer should be restricted to the contents of
>> mobyData, not to MOBY Data itself. For instance, references to Simples
>> or Collections, Collections composed by a mixure of Simples and
>> references to Simples, or Secondary parameters copied from run to run.
>>
>> Best Regards,
>> Jos? Mar?a
>>
>> Mark Wilkinson wrote:
>>> On Wed, 23 Jul 2008 08:06:38 -0700, Pieter Neerincx
>>> wrote:
>>>> That doesn't sound very appealing to me. I use quite large data
>>>> structures and can have tens of thousands of them in a collection
>>>> (think of oligos for micro arrays.) If I can only replace the
>>>> primitives with references, I would still have to send a BioMoby XML
>>>> structure with hundreds of thousands of references replacing the
>>>> primitives.
>>> Hmmm... that's a situation that we had NEVER considered! Putting
>>> xlinks into a component of the Moby message higher than the mobyData
>>> block was not a scenario that came up during our discussions in
>>> Tokyo. the xlink was really only intended to carry data, not data +
>>> moby message structure... but I suppose it COULD!
>>> How do others feel about this?
>>> M
>>
>> --
>> "There is no reason why anybody would want a computer in their home" -
>> Ken Olson, founder of DEC 1977
>> "640K ought to be enough for anybody" - Bill Gates, 1981
>> "Nobody will ever outgrow a 20Mb hard drive." - ???
>>
>> "Premature optimization is the root of all evil." - Donald Knuth
>>
>> Jos? Mar?a Fern?ndez Gonz?lez
>> Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
>> e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
>> Unidad del Instituto Nacional de Bioinform?tica
>> Biolog?a Estructural y Biocomputaci?n Structural Biology and
>> Biocomputing
>> Centro Nacional de Investigaciones Oncol?gicas
>> C.P.: 28029 Zip Code: 28029
>> C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
>>
>> **NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los
>> ficheros adjuntos, pueden contener informaci?n protegida para el uso
>> exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n
>> o cualquier otro tipo de transmisi?n por parte de otra persona que no
>> sea el destinatario. Si usted recibe por error este correo, se ruega
>> comunicarlo al remitente y borrar el mensaje recibido.
>> **CONFIDENTIALITY NOTICE** This email communication and any
>> attachments may contain confidential and privileged information for
>> the sole use of the designated recipient named above. Distribution,
>> reproduction or any other use of this transmission by any party other
>> than the intended recipient is prohibited. If you are not the intended
>> recipient please contact the sender and delete all copies.
>>
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> -------------------------------------------------------------
> Wageningen University and Research centre (WUR)
> Laboratory of Bioinformatics
> Transitorium (building 312) room 1034
>
> Dreijenlaan 3
> 6703 HA Wageningen
> The Netherlands
>
> phone: +31 (0)317-483 060
> mobile: +31 (0)6-143 66 783
> e-mail: pieter.neerincx at gmail.com
> skype: pieter.online
> -------------------------------------------------------------
>
>
>
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From martin.senger at gmail.com Thu Jul 24 20:06:03 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 25 Jul 2008 08:06:03 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488884CD.9030403@cnio.es>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
Message-ID: <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
Thank you for all your comments. We need to move on, however. I am, almost
impatiently, waiting for a conclusion because I need to implement the
"data-by-reference" rather soon. Are there other people preparing/building
their comments - so we should wait for them, or can I summarize what was
said so far - and create an official "RFC" from it?
My personal opinion is still on the side to have references only for
primitives. I am not convinced by the Peter's vision of a huge collection
that is too big even when it uses references. I am simply trying to find a
solution that will be good for the most cases - and then deal with the
marginal cases separately (like by designing the service differently).
I would like to hear also Eddie's voice - because he knows how easy or hard
it would be to make the way we decide to do the "data-by-reference" in
Taverna (and I am still talking about the T1 which I expect to be supported
for some time).
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Fri Jul 25 05:25:31 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Fri, 25 Jul 2008 11:25:31 +0200
Subject: [MOBY-dev] findService and the hierarchy
In-Reply-To: <4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
References: <487C9061.3030203@mpiz-koeln.mpg.de>
<4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
Message-ID: <48899C0B.70408@mpiz-koeln.mpg.de>
i like to bring this up for discussion again ;-)
thanks
Martin Senger wrote:
>> In my opinion when searching for services consuming Annotated_GO_Term via
>> the findService method i should also include the service which consumes a
>> GO_Term datatype, as this is the parent datatype (per default
>> 'includeParentDatatype' is true)....
>>
>>
>
> I assume that by "I should also include" you actually meant "the registry
> response should also include". Is my understanding correct?
>
> If so, I am afraid that it is not the issue of the jMoby library but the
> registry itself. Eddie or Mark can confirm or reject this hypothesis.
>
> The BioMoby API allows to specify two XML tags when calling findService
> method: the
>
> X
> and
> X
>
> Where X can be either 1 or 0.
>
> The jMoby's findService() method sets these two tags according to the two
> boolean parameters that the method can get:
>
> boolean includeChildrenServiceTypes
> and
> boolean includeParentDataTypes
>
> I have tried to call the findService, with the Annotated_GO_Term input,
> using all combinations of these two tags (you can do it using the Moby
> command-line client with the optioins -nc and/or -np). The results are
> either no service or 713 services:
>
> expandObjects expandServices # of found services
> 1 1 713
> 0 0 0
> 1 0 713
> 0 0 0
>
> I have feeling that this is not a correct result. Could Eddie or Mark
> perhaps comment on it?
>
> [I vaguely remember that we had this conversation about these tags with Mark
> years(!) ago - but I do not recall what was the conclusion. I only, and
> again vaguely, remember to have this issue in my to-do list - which would
> indicate that something could be done in the jMoby library.]
>
> Cheers,
> Martin
>
>
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From martin.senger at gmail.com Fri Jul 25 05:34:15 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 25 Jul 2008 17:34:15 +0800
Subject: [MOBY-dev] findService and the hierarchy
In-Reply-To: <48899C0B.70408@mpiz-koeln.mpg.de>
References: <487C9061.3030203@mpiz-koeln.mpg.de>
<4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
<48899C0B.70408@mpiz-koeln.mpg.de>
Message-ID: <4d93f07c0807250234h53e049bv9b97edecbd0865e3@mail.gmail.com>
> i like to bring this up for discussion again ;-)
Well, let's not discuss it but let's look what we are getting back from the
registry when different values are given for expandObjects and
expandService. I posted my results - now it is up to Eddie or Mark to draw
conclusion from that results... :-)
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From pieter.neerincx at gmail.com Fri Jul 25 06:50:12 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Fri, 25 Jul 2008 12:50:12 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
Message-ID: <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
Hi Martin at al.,
On 25?Jul?2008, at 2:06 AM, Martin Senger wrote:
> Thank you for all your comments. We need to move on, however. I am,
> almost
> impatiently, waiting for a conclusion because I need to implement the
> "data-by-reference" rather soon. Are there other people preparing/
> building
> their comments - so we should wait for them, or can I summarize what
> was
> said so far - and create an official "RFC" from it?
>
> My personal opinion is still on the side to have references only for
> primitives. I am not convinced by the Pieter's vision of a huge
> collection
> that is too big even when it uses references. I am simply trying to
> find a
> solution that will be good for the most cases - and then deal with the
> marginal cases separately (like by designing the service differently).
Well, especially if you want to have a solution that works in most
cases, I think we should have pass-by-reference at *any* level in
mobyData. How often will the data of a single primitive be too large
for inclusion in the SOAP body? I can imagine wrapping legacy data
formats like a complete EMBL/Genbank/DDBJ record in a String object or
sending images as base 64 encoded pieces of text in a String object.
Maybe even sending a bulky sequence like a complete chromosome inside
a String object, but in most cases the raw data carried by a primitive
will be smaller than your average URL! And even if you do send some
bulky stuff inside a String object as long as you send only one of
those at a time it'll still work in most cases. But once you start to
send tens, hundreds or more of those you have a problem. If you still
send around tens, hundreds or more URLs, you'd have to fetch each one
individually causing massive overhead. The reason to implement pass-by-
reference is to make BioMoby scale much better for big jobs and in
such cases fetching data from a single reference is much more efficient.
Take for example position information of alignments on a genome:
13
97419218
97419282
65M
With pass-by-reference only for primitives this would become something
like this:
That ain't much of an improvement!
I have on average 30.000 features on a micro array and for each oligo
on average 3 hits on a reference assembly. That makes for an average
total of 90.000 HitPosition objects and that is just a small part of
the annotation for my oligos....
Just to stress that these are not hypothetical cases: The stuff above
is just a single example of what I'm already using for more than two
years. Off course I needed a pass by reference workaround, because the
data is too big for the SOAP body. So I registered an URL object and
send those around. These URL objects point to chunks of BioMoby XML
which is a complete mobyData block in most cases. Although the URL
obeject is fully compatible with the current BioMoby standard, it's an
ugly solution because of two reasons:
1. It's not a standard to do pass-by-reference.
2. It defeats the entire purpose of having the BioMoby object ontology
to improve automatic service discovery. You can only discover that I
provide several services which consume or produce URL objects, but you
can not discover automatically what those URLs point to, so most of
the URL object producers and consumers will be incompatible! (Ok, I
can use namespace restriction to limit the problem of incompatible
services a bit, but still you would have no idea what the URL points
to based on the data in BioMoby Central.)
So I would love to see standardised pass-by-reference as part of the
BioMoby specs and I think it doesn't require rocket science to do this
at any level in the structure of BioMoby objects. Why don't we simply
do the following:
Current situation:
A BioMoby object is a BioMoby tripple with optional articleName
attribute and optionally raw character data for primitives. The
tripple is the XML element name, an id attribute and a namespace
attribute.
New situation:
The above + The id and namespace attributes of a BioMoby tripple can
be replaced with an xlink attribute resulting in a "BioMoby double".
If the latter is the case the element containing the xlink attribute
and all it's children are available from link specified by the xlink
attribute.
Example old:
ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
4569343
Example with pass-by-reference:
which points to:
ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
4569343
Hence note that the link points to a ComplexObject and not just to
it's children. The latter would also be an option but than you would
get:
which points to:
ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
4569343
If you have more than one child element like with the example above,
some XML parsers might have problems with such a chunk. Although it is
well balanced, it doesn't have a (pseudo-)root element. So for
practical reasons I suggest to have the links point to the element
containing the xlink attribute and it's children. This should be
really easy to parse. You either have an id + namespace attribute or
you have an xlink attribute. If both were not present the values were
NULL. This doesn't require parsing dozens of WSRF tags in a header. It
even doesn't require a service to tell the client using the
serviceNotes or something similar that it did pass-by-reference of
some kind nor does it require the client to specify that it can
understand certain references. Off course it would be handy though to
have some extension to BioMoby Central to prevent discovering services
providing references which are incompatible with your client.
Secondly, if a service can provide multiple types of references and
your client doesn't understand them all, it would also be nice if a
client can specify a preference for a certain type of reference. But
both wouldn't be required for a first quick implementation of pass-by-
reference.
> I would like to hear also Eddie's voice - because he knows how easy
> or hard
> it would be to make the way we decide to do the "data-by-reference" in
> Taverna (and I am still talking about the T1 which I expect to be
> supported
> for some time).
I agree we need Eddie's feedback on Taverna compatibility!
Compatibility with Taverna 1 would be great, but it would be extremely
lame if our BioMoby references turn out to be incompatible with the
new pass-by-reference feature of Taverna 2.
I hope you see the potential for improving scalability of BioMoby
services with pass-by-reference at any level of mobyData!
Cheers,
Pi
> Martin
>
> --
> Martin Senger
> email: martin.senger at gmail.com,m.senger at cgiar.org
> skype: martinsenger
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
------------------------------------------------------------
From martin.senger at gmail.com Fri Jul 25 07:14:01 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 25 Jul 2008 19:14:01 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
Message-ID: <4d93f07c0807250414q1d456695ld65cd3d5a6daa63@mail.gmail.com>
Pieter, thanks! Your reply was very good, and convincing! I like the most
the fact that you are driven by a real use case, and a long one, lasting
already for two years.
I had in mind other use cases, but now I agree that Pieter's point of view
is better. I will read his email once again, just to be sure that I have not
missed something.
Are we closer now to the RFC proposal?
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Fri Jul 25 07:15:52 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Fri, 25 Jul 2008 13:15:52 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es> <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
Message-ID: <4889B5E8.6010903@mpiz-koeln.mpg.de>
Hi,
I'm not sure whether i get the complete point of the discussion here,
nevertheless I like to jump in into that.
What i dont understand is why do we need references for only primitives
? I dont understand what a reference for a primitive is good for ?
I would also like to have references for any type, if possible.
Currently i work on sending image information around. some images are up
to several MBs. It would be way more convinient to send references to
the http url of the image instead of encoding/decoding it and
transferring around some networks.
If any type of object could be a reference, then we could stay with the
current way of registering and discovering services....
It might also just the case i dont get the point what martin said ;-)
Cheers
andreas
Pieter Neerincx wrote:
> Hi Martin at al.,
>
> On 25?Jul?2008, at 2:06 AM, Martin Senger wrote:
>
>> Thank you for all your comments. We need to move on, however. I am,
>> almost
>> impatiently, waiting for a conclusion because I need to implement the
>> "data-by-reference" rather soon. Are there other people
>> preparing/building
>> their comments - so we should wait for them, or can I summarize what was
>> said so far - and create an official "RFC" from it?
>>
>> My personal opinion is still on the side to have references only for
>> primitives. I am not convinced by the Pieter's vision of a huge
>> collection
>> that is too big even when it uses references. I am simply trying to
>> find a
>> solution that will be good for the most cases - and then deal with the
>> marginal cases separately (like by designing the service differently).
>
> Well, especially if you want to have a solution that works in most
> cases, I think we should have pass-by-reference at *any* level in
> mobyData. How often will the data of a single primitive be too large
> for inclusion in the SOAP body? I can imagine wrapping legacy data
> formats like a complete EMBL/Genbank/DDBJ record in a String object or
> sending images as base 64 encoded pieces of text in a String object.
> Maybe even sending a bulky sequence like a complete chromosome inside
> a String object, but in most cases the raw data carried by a primitive
> will be smaller than your average URL! And even if you do send some
> bulky stuff inside a String object as long as you send only one of
> those at a time it'll still work in most cases. But once you start to
> send tens, hundreds or more of those you have a problem. If you still
> send around tens, hundreds or more URLs, you'd have to fetch each one
> individually causing massive overhead. The reason to implement
> pass-by-reference is to make BioMoby scale much better for big jobs
> and in such cases fetching data from a single reference is much more
> efficient.
>
> Take for example position information of alignments on a genome:
>
> moby:namespace='transcriptome' moby:articleName='hit_position'>
> moby:articleName='seq_id'> 13
> moby:articleName='start'> 97419218
> moby:articleName='stop'> 97419282
> moby:articleName='strand'/>
> moby:articleName='cll'> 65M
>
>
> With pass-by-reference only for primitives this would become something
> like this:
>
> moby:namespace='transcriptome' moby:articleName='hit_position'>
> moby:articleName='seq_id'
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/String_seq_id.xml'/>
>
> moby:articleName='start'
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/Integer_start.xml'/>
>
> moby:articleName='stop'
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/Integer_stop.xml'/>
> moby:articleName='strand'/>
> moby:articleName='cll'
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/String_cll.xml'/>
>
>
> That ain't much of an improvement!
>
> I have on average 30.000 features on a micro array and for each oligo
> on average 3 hits on a reference assembly. That makes for an average
> total of 90.000 HitPosition objects and that is just a small part of
> the annotation for my oligos....
>
> Just to stress that these are not hypothetical cases: The stuff above
> is just a single example of what I'm already using for more than two
> years. Off course I needed a pass by reference workaround, because the
> data is too big for the SOAP body. So I registered an URL object and
> send those around. These URL objects point to chunks of BioMoby XML
> which is a complete mobyData block in most cases. Although the URL
> obeject is fully compatible with the current BioMoby standard, it's an
> ugly solution because of two reasons:
> 1. It's not a standard to do pass-by-reference.
> 2. It defeats the entire purpose of having the BioMoby object ontology
> to improve automatic service discovery. You can only discover that I
> provide several services which consume or produce URL objects, but you
> can not discover automatically what those URLs point to, so most of
> the URL object producers and consumers will be incompatible! (Ok, I
> can use namespace restriction to limit the problem of incompatible
> services a bit, but still you would have no idea what the URL points
> to based on the data in BioMoby Central.)
>
> So I would love to see standardised pass-by-reference as part of the
> BioMoby specs and I think it doesn't require rocket science to do this
> at any level in the structure of BioMoby objects. Why don't we simply
> do the following:
>
> Current situation:
>
> A BioMoby object is a BioMoby tripple with optional articleName
> attribute and optionally raw character data for primitives. The
> tripple is the XML element name, an id attribute and a namespace
> attribute.
>
> New situation:
> The above + The id and namespace attributes of a BioMoby tripple can
> be replaced with an xlink attribute resulting in a "BioMoby double".
> If the latter is the case the element containing the xlink attribute
> and all it's children are available from link specified by the xlink
> attribute.
>
> Example old:
>
> articleName='MyFavoriteObject'>
>
> ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
>
>
> 4569343
>
>
>
> Example with pass-by-reference:
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/ComplexObject.xml' articleName='MyFavoriteObject'
> />
>
> which points to:
>
> articleName='MyFavoriteObject'>
>
> ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
>
>
> 4569343
>
>
>
> Hence note that the link points to a ComplexObject and not just to
> it's children. The latter would also be an option but than you would get:
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/ComplexObject_content.xml' id='accession_number123875'
> namespace='' articleName='MyFavoriteObject' />
>
> which points to:
>
>
> ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
>
>
> 4569343
>
>
> If you have more than one child element like with the example above,
> some XML parsers might have problems with such a chunk. Although it is
> well balanced, it doesn't have a (pseudo-)root element. So for
> practical reasons I suggest to have the links point to the element
> containing the xlink attribute and it's children. This should be
> really easy to parse. You either have an id + namespace attribute or
> you have an xlink attribute. If both were not present the values were
> NULL. This doesn't require parsing dozens of WSRF tags in a header. It
> even doesn't require a service to tell the client using the
> serviceNotes or something similar that it did pass-by-reference of
> some kind nor does it require the client to specify that it can
> understand certain references. Off course it would be handy though to
> have some extension to BioMoby Central to prevent discovering services
> providing references which are incompatible with your client.
> Secondly, if a service can provide multiple types of references and
> your client doesn't understand them all, it would also be nice if a
> client can specify a preference for a certain type of reference. But
> both wouldn't be required for a first quick implementation of
> pass-by-reference.
>
>> I would like to hear also Eddie's voice - because he knows how easy
>> or hard
>> it would be to make the way we decide to do the "data-by-reference" in
>> Taverna (and I am still talking about the T1 which I expect to be
>> supported
>> for some time).
>
> I agree we need Eddie's feedback on Taverna compatibility!
> Compatibility with Taverna 1 would be great, but it would be extremely
> lame if our BioMoby references turn out to be incompatible with the
> new pass-by-reference feature of Taverna 2.
>
> I hope you see the potential for improving scalability of BioMoby
> services with pass-by-reference at any level of mobyData!
>
> Cheers,
>
> Pi
>
>> Martin
>>
>> --
>> Martin Senger
>> email: martin.senger at gmail.com,m.senger at cgiar.org
>> skype: martinsenger
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> -------------------------------------------------------------
> Wageningen University and Research centre (WUR)
> Laboratory of Bioinformatics
> Transitorium (building 312) room 1034
>
> Dreijenlaan 3
> 6703 HA Wageningen
> The Netherlands
>
> phone: +31 (0)317-483 060
> mobile: +31 (0)6-143 66 783
> e-mail: pieter.neerincx at gmail.com
> skype: pieter.online
> ------------------------------------------------------------
>
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From martin.senger at gmail.com Fri Jul 25 07:35:33 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 25 Jul 2008 19:35:33 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4889B5E8.6010903@mpiz-koeln.mpg.de>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
<4889B5E8.6010903@mpiz-koeln.mpg.de>
Message-ID: <4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
> What i dont understand is why do we need references for only primitives ? I
> dont understand what a reference for a primitive is good for ?
If you do not understand, it is my fault - I have tried to explain it, but
obviously have not done it well.
The discussion is now, however, a bit farer.Your first question is probably
obsolete - the forming RFC seems to be that the references will be able to
be anywhere (or not only on primitives).
Your second question: We need to allow reference on primitives if we want to
reuse existing references on not-yet-moby objects (such as uniprot
sequences).
The same with URLs of existing images - as in your use case. What you are
describing is exactly what we are going to do. You will have a choice: a)
You store somewhere an XML moby message (its part) and send a reference to
it, or b) you store somewhere only the image (not wrapped in a moby message)
and you send a moby message with a reference attached to a primitive.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Fri Jul 25 07:46:45 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Fri, 25 Jul 2008 13:46:45 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es> <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com> <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com> <4889B5E8.6010903@mpiz-koeln.mpg.de>
<4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
Message-ID: <4889BD25.3080701@mpiz-koeln.mpg.de>
Martin Senger wrote:
> If you do not understand, it is my fault - I have tried to explain it, but
> obviously have not done it well.
>
hehe not automatically - i might just missed something ;-)
Thanks for the explanation, now i know i did understand it correctly ;-)
Andreas
> The discussion is now, however, a bit farer.Your first question is probably
> obsolete - the forming RFC seems to be that the references will be able to
> be anywhere (or not only on primitives).
>
> Your second question: We need to allow reference on primitives if we want to
> reuse existing references on not-yet-moby objects (such as uniprot
> sequences).
>
> The same with URLs of existing images - as in your use case. What you are
> describing is exactly what we are going to do. You will have a choice: a)
> You store somewhere an XML moby message (its part) and send a reference to
> it, or b) you store somewhere only the image (not wrapped in a moby message)
> and you send a moby message with a reference attached to a primitive.
>
> Martin
>
>
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From pieter.neerincx at gmail.com Fri Jul 25 08:28:43 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Fri, 25 Jul 2008 14:28:43 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
<4889B5E8.6010903@mpiz-koeln.mpg.de>
<4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
Message-ID:
Hi,
On 25?Jul?2008, at 1:35 PM, Martin Senger wrote:
>> What i dont understand is why do we need references for only
>> primitives ? I
>> dont understand what a reference for a primitive is good for ?
>
>
> If you do not understand, it is my fault - I have tried to explain
> it, but
> obviously have not done it well.
>
> The discussion is now, however, a bit farer.Your first question is
> probably
> obsolete - the forming RFC seems to be that the references will be
> able to
> be anywhere (or not only on primitives).
>
> Your second question: We need to allow reference on primitives if we
> want to
> reuse existing references on not-yet-moby objects (such as uniprot
> sequences).
Yes :) !
> The same with URLs of existing images - as in your use case. What
> you are
> describing is exactly what we are going to do. You will have a
> choice: a)
> You store somewhere an XML moby message (its part) and send a
> reference to
> it, or b) you store somewhere only the image (not wrapped in a moby
> message)
> and you send a moby message with a reference attached to a primitive.
Eh, but in the case of images they must be encoded to put then inside
a String primitive. So, since the data the reference points to must be
the same as in the case where you would not use a reference, it musty
also be encoded. Hence, you can not replace the object with a
reference to a plain (un-encoded) JPEG for example. Take for example
the b64_encoded_jpeg Object. That would look like:
afr78e349tu9rghjerewptu59hgfirhegwug9uwguwujw9-
If you want to replace this with a reference the actual data would
still have to be a base64 encoded piece of text. So you can not make a
reference to an image that exists as a plain JPEG, GIF, etc. on a web
server. We don't have a datatype to send un-encoded binary stuff. You
could create a new (un-encoded) JPEG object and use references, but
than you are required to always send a reference as you can not send
that BioMoby datatype un-encoded as part of the SOAP payload! This is
again not optimal though as you would have different objects for
encoded and un-encoded images limiting the discovery of potentially
compatible services. I couldn't care less about whether it's encoded
or not. I just want to send or receive an image and the optional
encoding is just the side effect of a workaround. I don't see how we
can easily solve that. Does anyone have suggestion how we should
handle this?...
Cheers,
Pi
> Martin
>
> --
> Martin Senger
> email: martin.senger at gmail.com,m.senger at cgiar.org
> skype: martinsenger
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
------------------------------------------------------------
From edward.kawas at gmail.com Fri Jul 25 09:03:34 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Fri, 25 Jul 2008 06:03:34 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
Message-ID: <4889cf38.1aba720a.1b32.3a36@mx.google.com>
Hi Martin,
Don't worry about Taverna! Whatever we decide will most likely be the same
amount of work. So let's just get it right.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-24-08 5:06 PM
To: Core developer announcements
Subject: Re: [MOBY-dev] data by reference - a request for comments
Thank you for all your comments. We need to move on, however. I am, almost
impatiently, waiting for a conclusion because I need to implement the
"data-by-reference" rather soon. Are there other people preparing/building
their comments - so we should wait for them, or can I summarize what was
said so far - and create an official "RFC" from it?
My personal opinion is still on the side to have references only for
primitives. I am not convinced by the Peter's vision of a huge collection
that is too big even when it uses references. I am simply trying to find a
solution that will be good for the most cases - and then deal with the
marginal cases separately (like by designing the service differently).
I would like to hear also Eddie's voice - because he knows how easy or hard
it would be to make the way we decide to do the "data-by-reference" in
Taverna (and I am still talking about the T1 which I expect to be supported
for some time).
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From gordonp at ucalgary.ca Fri Jul 25 11:05:42 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Fri, 25 Jul 2008 09:05:42 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4889cf38.1aba720a.1b32.3a36@mx.google.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es> <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<4889cf38.1aba720a.1b32.3a36@mx.google.com>
Message-ID: <4889EBC6.6010500@ucalgary.ca>
I'll finally chime in...I'm in favour of data-by-reference at any level
within a mobyData block. Above that and you get weird issues with
exception maintenance, and any restriction below that appears pretty
artificial to me.
Edward Kawas wrote:
> Hi Martin,
>
> Don't worry about Taverna! Whatever we decide will most likely be the same
> amount of work. So let's just get it right.
>
> Eddie
>
> -----Original Message-----
> From: moby-dev-bounces at lists.open-bio.org
> [mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
> Sent: July-24-08 5:06 PM
> To: Core developer announcements
> Subject: Re: [MOBY-dev] data by reference - a request for comments
>
> Thank you for all your comments. We need to move on, however. I am, almost
> impatiently, waiting for a conclusion because I need to implement the
> "data-by-reference" rather soon. Are there other people preparing/building
> their comments - so we should wait for them, or can I summarize what was
> said so far - and create an official "RFC" from it?
>
> My personal opinion is still on the side to have references only for
> primitives. I am not convinced by the Peter's vision of a huge collection
> that is too big even when it uses references. I am simply trying to find a
> solution that will be good for the most cases - and then deal with the
> marginal cases separately (like by designing the service differently).
>
> I would like to hear also Eddie's voice - because he knows how easy or hard
> it would be to make the way we decide to do the "data-by-reference" in
> Taverna (and I am still talking about the T1 which I expect to be supported
> for some time).
>
> Martin
>
>
From jason.e.stewart at gmail.com Fri Jul 25 12:07:22 2008
From: jason.e.stewart at gmail.com (Jason Stewart)
Date: Fri, 25 Jul 2008 21:37:22 +0530
Subject: [MOBY-dev] Interesting...
In-Reply-To:
References:
Message-ID: <41c1ade50807250907k61a3a459m3d394bf6d793df5f@mail.gmail.com>
Hey Mark,
On Wed, Jul 2, 2008 at 7:52 PM, Mark wrote:
> http://www.biomedcentral.com/1471-2105/9/295/abstract
>
> I wonder how they got document-literal stuff working in Perl??
Can you get me a pdf of that article? It looks like a subscription is needed.
Cheers, jas.
From edward.kawas at gmail.com Fri Jul 25 14:05:23 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Fri, 25 Jul 2008 11:05:23 -0700
Subject: [MOBY-dev] updated wsrf perl module
Message-ID: <488a1605.06d7720a.021c.ffff9cd4@mx.google.com>
Hi all,
I am trying to create a cpan distribution for the WSRF module created by
Mark McKeown. In the process, I wanted to see if I could get it to work with
windows (you never know, there might be some windows moby service developers
out there somewhere ;-) ) and to see if I could improve the install
procedure.
So, I now have a beta version of the module that I plan on sending to cpan,
but I want to make sure that I didn't break anything for those using this
module for creating async services. Is it possible for those that have
developed async services to try out this new module and to let me know if
anything is missing, broken, etc?
I would really appreciate any feedback.
Thanks,
Eddie
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WSRF-Lite-0.8.2.2.1.tar.gz
Type: application/octet-stream
Size: 454887 bytes
Desc: not available
URL:
From markw at illuminae.com Fri Jul 25 14:34:13 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Fri, 25 Jul 2008 11:34:13 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4889EBC6.6010500@ucalgary.ca>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<4889cf38.1aba720a.1b32.3a36@mx.google.com>
<4889EBC6.6010500@ucalgary.ca>
Message-ID:
On Fri, 25 Jul 2008 08:05:42 -0700, Paul Gordon
wrote:
> I'll finally chime in...I'm in favour of data-by-reference at any level
> within a mobyData block. Above that and you get weird issues with
> exception maintenance, and any restriction below that appears pretty
> artificial to me.
I agree with Paul. I wouldn't go any higher than the mobyData block, but
allowing it at any lower levels seems sensible to me, particularly given
Pieter's use-case.
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
From markw at illuminae.com Fri Jul 25 14:33:07 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Fri, 25 Jul 2008 11:33:07 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
<4889B5E8.6010903@mpiz-koeln.mpg.de>
<4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
Message-ID:
On Fri, 25 Jul 2008 05:28:43 -0700, Pieter Neerincx
wrote:
> If you want to replace this with a reference the actual data would still
> have to be a base64 encoded piece of text. So you can not make a
> reference to an image that exists as a plain JPEG, GIF, etc. on a web
> server.
Martin and I discussed this while he was here and the behaviour of this
case will be part of his RFC proposal. It seems to me that it would be
silly to b64 encode something that is being passed by reference... but I
agree that to do anything else is a 'hack'. Nevertheless, there are a lot
of 'hacks' in Moby, and this one is one of the more sensible 'hacks' IMO...
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
From jason.e.stewart at gmail.com Sat Jul 26 01:52:11 2008
From: jason.e.stewart at gmail.com (Jason Stewart)
Date: Sat, 26 Jul 2008 11:22:11 +0530
Subject: [MOBY-dev] updated wsrf perl module
In-Reply-To: <488a1605.06d7720a.021c.ffff9cd4@mx.google.com>
References: <488a1605.06d7720a.021c.ffff9cd4@mx.google.com>
Message-ID: <41c1ade50807252252r2cc2482euad274ab511dd3421@mail.gmail.com>
Hey,
Cool Eddie - it's a pain to have to install perl modules by hand -
glad you're making this available on CPAN. I don't have any async
services though...
Cheers, jas.
On Fri, Jul 25, 2008 at 11:35 PM, Edward Kawas wrote:
> Hi all,
>
> I am trying to create a cpan distribution for the WSRF module created by
> Mark McKeown.
From dmitry.repchevski at bsc.es Sat Jul 26 06:49:07 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Sat, 26 Jul 2008 12:49:07 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
Message-ID: <488B0123.3040608@bsc.es>
Hello everybody,
WSRF has a way to reference a part of resource using XPath expressions.
It's easy to include it just by updating current asynchronous specification.
The only thing to do is to implement QueryResourceProperties method.
So we can always get any part of mobyData (for practical reason I think
to limit it to MobySimple/MobyCollection).
This way the reference to any remote resource will be standard WSRF
reference (based on WS-Addressing) with XPath expression to get the
interested part of it.
I'm not very good in XPath, but something like this:
String expression =
"/*[local-name()='MOBY']/*[local-name()='mobyContent']/*[local-name()='mobyData'
and @*[local-name()='queryID']='id_01']/*[local-name()='Simple' and
@*[local-name()='articleName']='sequence']"
will give us a "Simple" with articleName = "sequence";
Best regards,
Dmitry
From martin.senger at gmail.com Sat Jul 26 07:52:30 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Sat, 26 Jul 2008 19:52:30 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488B0123.3040608@bsc.es>
References:
<488B0123.3040608@bsc.es>
Message-ID: <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
> WSRF has...
Sorry, if you wish to use WSRF - I am out. Happy hacking...
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From martin.senger at gmail.com Sun Jul 27 21:29:34 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Mon, 28 Jul 2008 09:29:34 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
References:
<488B0123.3040608@bsc.es>
<4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
Message-ID: <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
I am trying to figure out how I would implement the data by reference in
order to achieve the main purpose - not no have all data in memory. I know
how I would do it for the references being on the primitive types level, but
it is less clear to me how I would do it with the references on other
levels. Perhaps you can help me to explain how you would do it (or even
Pieter can explore how he is already doing it)?
For references on the primitive type level, I would do a usual parsing of a
Moby message and when I find a reference, I would resolve it do a local file
and I would pass to my service class the data as a file reference. It would
be up to the service to read the file contents to the memory or not - that
would depend what it needs to do with the data.
However, on the higher level, such as mobyData level, the reference must be
treated differently. If I do the same (resolving the reference to a local
file), I still need to call a parser again to parse the contents of the
local file. Because I still want to give my service already parsed data (and
not a biomoby XML), and because I do not want to have all in memory, I need
to create local files for each primitive type and do the same as above
(passing my service local file references). I do not see much other choices.
Am I missing a point here?
The above is doable, of course. But you see why I wanted to have references
only on the primitive type level. If we have them on any level (as it seems
to be) I need, in my implementation, actually make another (local)
references for the primitive type, anyway. Of course, it is better than the
remote references because I do not need to make a network connection for
each individual primitive type (point taken, Pieter) - but it still to be
done.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From gordonp at ucalgary.ca Sun Jul 27 21:50:30 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Sun, 27 Jul 2008 19:50:30 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
References: <488B0123.3040608@bsc.es> <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
<4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
Message-ID: <488D25E6.7030601@ucalgary.ca>
Hi Martin,
> I am trying to figure out how I would implement the data by reference in
> order to achieve the main purpose - not no have all data in memory.
I think you are coming at this from a different side than most of us:
data-by-reference is primarily to reduce the bandwidth burden by not
requiring results to go back to the client before being sent to another
service.
Paul
From markw at illuminae.com Sun Jul 27 23:58:56 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Sun, 27 Jul 2008 20:58:56 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488D25E6.7030601@ucalgary.ca>
References:
<488B0123.3040608@bsc.es>
<4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
<4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
<488D25E6.7030601@ucalgary.ca>
Message-ID:
On Sun, 27 Jul 2008 18:50:30 -0700, Paul Gordon
wrote:
> Hi Martin,
>> I am trying to figure out how I would implement the data by reference in
>> order to achieve the main purpose - not no have all data in memory.
> I think you are coming at this from a different side than most of us:
> data-by-reference is primarily to reduce the bandwidth burden by not
> requiring results to go back to the client before being sent to another
> service.
I don't think that is the PRIMARY reason, necessarily - we also want to
get around passing large objects in the SOAP message due to limitations in
the (Perl) SOAP libraries, and increasingly in the non-SOAP services where
passing large data inside of an XML tag doesn't allow for nice download
optimizations/caching, etc.
M
From gordonp at ucalgary.ca Mon Jul 28 00:03:21 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Sun, 27 Jul 2008 22:03:21 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References: <488B0123.3040608@bsc.es> <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com> <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com> <488D25E6.7030601@ucalgary.ca>
Message-ID: <488D4509.6070407@ucalgary.ca>
Perhaps we should make a statement of intendion before hammering out the
details then ? ;-)
Mark Wilkinson wrote:
> On Sun, 27 Jul 2008 18:50:30 -0700, Paul Gordon
> wrote:
>
>> Hi Martin,
>>> I am trying to figure out how I would implement the data by
>>> reference in
>>> order to achieve the main purpose - not no have all data in memory.
>> I think you are coming at this from a different side than most of us:
>> data-by-reference is primarily to reduce the bandwidth burden by not
>> requiring results to go back to the client before being sent to
>> another service.
>
> I don't think that is the PRIMARY reason, necessarily - we also want
> to get around passing large objects in the SOAP message due to
> limitations in the (Perl) SOAP libraries, and increasingly in the
> non-SOAP services where passing large data inside of an XML tag
> doesn't allow for nice download optimizations/caching, etc.
>
> M
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> !DSPAM:60005,488d415d1095014969098!
>
>
>
From gordonp at ucalgary.ca Mon Jul 28 00:07:14 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Sun, 27 Jul 2008 22:07:14 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488D4509.6070407@ucalgary.ca>
References: <488B0123.3040608@bsc.es> <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com> <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com> <488D25E6.7030601@ucalgary.ca>
<488D4509.6070407@ucalgary.ca>
Message-ID: <488D45F2.40900@ucalgary.ca>
Okay, this is a very long thread, so I forgot the original message,
which indeed has both of these uses (except I don't limit my vision of
inter-service data passing to well-known entities as Martin gave in his
example).
Paul Gordon wrote:
> Perhaps we should make a statement of intendion before hammering out
> the details then ? ;-)
>
> Mark Wilkinson wrote:
>> On Sun, 27 Jul 2008 18:50:30 -0700, Paul Gordon
>> wrote:
>>
>>> Hi Martin,
>>>> I am trying to figure out how I would implement the data by
>>>> reference in
>>>> order to achieve the main purpose - not no have all data in memory.
>>> I think you are coming at this from a different side than most of
>>> us: data-by-reference is primarily to reduce the bandwidth burden by
>>> not requiring results to go back to the client before being sent to
>>> another service.
>>
>> I don't think that is the PRIMARY reason, necessarily - we also want
>> to get around passing large objects in the SOAP message due to
>> limitations in the (Perl) SOAP libraries, and increasingly in the
>> non-SOAP services where passing large data inside of an XML tag
>> doesn't allow for nice download optimizations/caching, etc.
>>
>> M
>>
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>>
>>
>>
>>
>>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> !DSPAM:60005,488d4268109502155522951!
>
>
>
From martin.senger at gmail.com Mon Jul 28 00:10:05 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Mon, 28 Jul 2008 12:10:05 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488D4509.6070407@ucalgary.ca>
References:
<488B0123.3040608@bsc.es>
<4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
<4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
<488D25E6.7030601@ucalgary.ca>
<488D4509.6070407@ucalgary.ca>
Message-ID: <4d93f07c0807272110k66b54250q9373799210f28f22@mail.gmail.com>
> Perhaps we should make a statement of intendion before hammering out the
> details then ? ;-)
The first email in this thread says it (I believe):
Well, the first purpose (A) is obvious: we want to be able to deliver huge
> data from a service. So the service returns only a reference instead of the
> real data and the client can fetch the real data using some memory-friendly
> protocol (usualy a simple HTTP/GET).
>
> But it appeeared that it was not the only purpose. The second purpose (B)
> is to be able to send around already existing references (such as URLs of
> the EMBL or NCBI records).
>
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From soiland-reyes at cs.manchester.ac.uk Mon Jul 28 05:32:42 2008
From: soiland-reyes at cs.manchester.ac.uk (Stian Soiland-Reyes)
Date: Mon, 28 Jul 2008 10:32:42 +0100
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<4889cf38.1aba720a.1b32.3a36@mx.google.com>
Message-ID:
Sorry if you got this email a couple of times, I ended up getting
bounces from moby-l@ even if I was posting to moby-dev@ - and changed
the wrong subscription!
On Mon, Jul 28, 2008 at 10:23 AM, Stian Soiland-Reyes
wrote:
> On Fri, Jul 25, 2008 at 2:03 PM, Edward Kawas wrote:
>> Don't worry about Taverna! Whatever we decide will most likely be the same
>> amount of work. So let's just get it right.
>
> Taverna 2 has built-in support for references (and their
> dereferencing) - so you could implement any referencing scheme you
> like, really, there's just a very simple interface to implement:
>
> http://taverna.cvs.sourceforge.net/taverna/t2reference/t2reference-api/src/main/java/net/sf/taverna/t2/reference/ExternalReferenceSPI.java?view=markup
>
>
> Example implementation:
>
> http://taverna.cvs.sourceforge.net/taverna/t2reference/t2reference-core-extensions/src/main/java/net/sf/taverna/t2/reference/impl/external/http/HttpReference.java?view=markup
>
>
> Plain HTTP references should work out of the box, though. You could
> make a version of this and add your own added-value semantics to the
> URIs - and it could still also work with other non-biomoby-services
> that recognised HTTP-URLs.
>
> t2 allows you to add translators between different reference schemes -
> so if you ended up with say "urn:biomoby:fish/1337" and you knew that
> you could download such references by using
> http://download.biomoby.org/fish/1337.xml - you can easily add a
> BiomobyReferenceToHttpReference translator that constructs such URIs
> given the biomoby reference.
>
>
> --
> Stian Soiland-Reyes, myGrid team
> School of Computer Science
> The University of Manchester
> http://www.mygrid.org.uk/dev/blog/
>
--
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
http://www.mygrid.org.uk/dev/blog/
From jmfernandez at cnio.es Mon Jul 28 12:25:29 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Mon, 28 Jul 2008 18:25:29 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es> <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com> <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com> <4889B5E8.6010903@mpiz-koeln.mpg.de> <4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
Message-ID: <488DF2F9.5090207@cnio.es>
Last weeks we (at INB) were talking about binary objects and data-by-reference
in our internal list (mainly related to the usage of XInclude), and we found
that on one hand XInclude allows referencing non-XML content:
http://www.w3.org/TR/xinclude/#text-included-items
but that content must be string-like (with an associated encoding), not binary
one. So, when we realized that limitation we were talking about extending
XInclude in a non-standard way, considering a new parse style, called
'base64'. Standard XInclude understands parse='xml' and parse='text' styles,
and 'base64' parse mode would work like 'text' one, but encoding the content
in base64 before including it in the place of the reference.
What do you think about this hack?
Best Regards,
Jos? Mar?a
Mark Wilkinson wrote:
> On Fri, 25 Jul 2008 05:28:43 -0700, Pieter Neerincx
> wrote:
>
>
>
>> If you want to replace this with a reference the actual data would
>> still have to be a base64 encoded piece of text. So you can not make a
>> reference to an image that exists as a plain JPEG, GIF, etc. on a web
>> server.
>
> Martin and I discussed this while he was here and the behaviour of this
> case will be part of his RFC proposal. It seems to me that it would be
> silly to b64 encode something that is being passed by reference... but
> I agree that to do anything else is a 'hack'. Nevertheless, there are a
> lot of 'hacks' in Moby, and this one is one of the more sensible 'hacks'
> IMO...
>
> M
>
>
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From py at pingoured.fr Tue Jul 29 05:09:26 2008
From: py at pingoured.fr (Pierre-Yves Chibon)
Date: Tue, 29 Jul 2008 11:09:26 +0200
Subject: [MOBY-dev] php client for biomoby services
Message-ID: <488EDE46.5070804@pingoured.fr>
Dear list,
We have been trying to make a php client for a simple biomoby web
service that we developed few days ago.
We are facing a problem in the creation of the input XML. We think that
using php soap library we create soap XML and not moby XML. Which
obviously returns an error.
Has anyone of you ever try to make a simple client in php or just even
call a bioMoby service via php ?
Below is the input that is sent to our service and the XML retrieve from
that service
Thanks for your help,
Best regards,
Pierre
input:
a:1:{s:12:"Solstis_User";a:3:{s:8:"userName";s:4:"test";s:8:"password";s:4:"test";s:5:"email";s:12:"test at test.fr";}}
output:
<?xml version="1.0"
encoding="UTF-8"?>
<moby:MOBY xmlns:moby="http://www.biomoby.org/moby">
<moby:mobyContent>
<moby:serviceNotes>
<moby:mobyException moby:severity="error">
<moby:exceptionCode>600</moby:exceptionCode>
<moby:exceptionMessage>AN ERROR OCCURED DURING THE
SERVICE EXECUTION: Error in the XML input.
SystemID: null
Line (perhaps): 1
Column: 1</moby:exceptionMessage>
</moby:mobyException>
</moby:serviceNotes>
</moby:mobyContent>
</moby:MOBY>
From edward.kawas at gmail.com Tue Jul 29 10:56:04 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Tue, 29 Jul 2008 07:56:04 -0700
Subject: [MOBY-dev] php client for biomoby services
In-Reply-To: <488EDE46.5070804@pingoured.fr>
References: <488EDE46.5070804@pingoured.fr>
Message-ID: <488f2f88.2a528c0a.7d99.54ae@mx.google.com>
Hi Pierre,
Take a look at the following example that someone created at a TIGR
workshop.
https://biomoby.tigr.org/wiki/index.php/JCVI_Workshop#::_Step_5_-_how_to_cre
ate_a_MOBY_client_in_PHP_::
This example did work at the time and may still do the trick.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Pierre-Yves Chibon
Sent: July-29-08 2:09 AM
To: MOBY-dev at lists.open-bio.org
Subject: [MOBY-dev] php client for biomoby services
Dear list,
We have been trying to make a php client for a simple biomoby web
service that we developed few days ago.
We are facing a problem in the creation of the input XML. We think that
using php soap library we create soap XML and not moby XML. Which
obviously returns an error.
Has anyone of you ever try to make a simple client in php or just even
call a bioMoby service via php ?
Below is the input that is sent to our service and the XML retrieve from
that service
Thanks for your help,
Best regards,
Pierre
input:
a:1:{s:12:"Solstis_User";a:3:{s:8:"userName";s:4:"test
";s:8:"password";s:4:"test";s:5:"email";s:12:"test at test.fr";}}
output:
<?xml version="1.0"
encoding="UTF-8"?>
<moby:MOBY xmlns:moby="http://www.biomoby.org/moby">
<moby:mobyContent>
<moby:serviceNotes>
<moby:mobyException moby:severity="error">
<moby:exceptionCode>600</moby:exceptionCode>
<moby:exceptionMessage>AN ERROR OCCURED DURING THE
SERVICE EXECUTION: Error in the XML input.
SystemID: null
Line (perhaps): 1
Column: 1</moby:exceptionMessage>
</moby:mobyException>
</moby:serviceNotes>
</moby:mobyContent>
</moby:MOBY>
<
/soapenv:Envelope>
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From edward.kawas at gmail.com Tue Jul 29 11:23:58 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Tue, 29 Jul 2008 08:23:58 -0700
Subject: [MOBY-dev] php client for biomoby services
In-Reply-To: <488EDE46.5070804@pingoured.fr>
References: <488EDE46.5070804@pingoured.fr>
Message-ID: <488f3612.20d7720a.6190.1e4a@mx.google.com>
Just in case, you didn't get it working (I am sure that you did, but just in
case ...), I attached 2 php files that you can test with.
The test client is in the file 'moby_php_test_service.php' and the
moby_soap_factory.php needs to be either in the same directory as the test
service or on your PHP include path.
Thanks to Julian Tonti-Filippini for creating the PHP basis for the attached
examples!
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Pierre-Yves Chibon
Sent: July-29-08 2:09 AM
To: MOBY-dev at lists.open-bio.org
Subject: [MOBY-dev] php client for biomoby services
Dear list,
We have been trying to make a php client for a simple biomoby web
service that we developed few days ago.
We are facing a problem in the creation of the input XML. We think that
using php soap library we create soap XML and not moby XML. Which
obviously returns an error.
Has anyone of you ever try to make a simple client in php or just even
call a bioMoby service via php ?
Below is the input that is sent to our service and the XML retrieve from
that service
Thanks for your help,
Best regards,
Pierre
input:
a:1:{s:12:"Solstis_User";a:3:{s:8:"userName";s:4:"test
";s:8:"password";s:4:"test";s:5:"email";s:12:"test at test.fr";}}
output:
<?xml version="1.0"
encoding="UTF-8"?>
<moby:MOBY xmlns:moby="http://www.biomoby.org/moby">
<moby:mobyContent>
<moby:serviceNotes>
<moby:mobyException moby:severity="error">
<moby:exceptionCode>600</moby:exceptionCode>
<moby:exceptionMessage>AN ERROR OCCURED DURING THE
SERVICE EXECUTION: Error in the XML input.
SystemID: null
Line (perhaps): 1
Column: 1</moby:exceptionMessage>
</moby:mobyException>
</moby:serviceNotes>
</moby:mobyContent>
</moby:MOBY>
<
/soapenv:Envelope>
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: moby_php_test_service.php
Type: application/octet-stream
Size: 1308 bytes
Desc: not available
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: moby_soap_factory.php
Type: application/octet-stream
Size: 4300 bytes
Desc: not available
URL:
From groscurt at mpiz-koeln.mpg.de Wed Jul 30 04:51:58 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Wed, 30 Jul 2008 10:51:58 +0200
Subject: [MOBY-dev] [MOBY-l] Apologies,
a hint for MIPS-Service substitutions, and an invitation
In-Reply-To:
References:
Message-ID: <48902BAE.7000501@mpiz-koeln.mpg.de>
Mark wrote:
> This all brings me to my final comment - I currently have two
> summer-students who are working on the problem of automated workflow
> repair (i.e. finding equivalent services to fix broken workflows).
> We're going to be inviting everyone to participate in a Moby Service
> Annotation Jamboree later this summer. It will be a "virtual"
> jamboree - just come to the website. We'll have an interface there
> through which you can deeply annotate Moby services (inputs, outputs,
> underlying resources, service types, authorities, etc.) with the goal
> of improving service discovery. I encourage all Moby users to
> participate and improve the quality of our service annotations! At a
> minimum, I hope that the current service providers will visit the
> website and annotate their own services :-)
I was wondering how you store this information ? are they mapped to the
services/datatypes etc in the moby central database ?
Here at the mpiz we already thought about offering this feature as a
permanent service to everyone, so everyone can tag services/datatypes
etc. Have you ever considered such kind of things ? I recently modified
dashboard and my local moby database to have a prototype for service
tagging. Unfortunately i can only offer you some screenshots, but I was
wondering if such extension could be worth considering to integrate it
in the official moby api ? you can see the first idea at
http://bioinfo.mpiz-koeln.mpg.de/tagging2.jpg
so my suggestion is to think about a tagging system (via dashboard / web
portal), which is permant available and allows everyone to tag moby stuff ?!
best
andreas
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From pieter.neerincx at gmail.com Wed Jul 30 09:51:54 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Wed, 30 Jul 2008 15:51:54 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
References:
<488B0123.3040608@bsc.es>
<4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
<4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
Message-ID:
Hi Martin,
Had to think about the issues you raised below for a while...
On 28 Jul 2008, at 03:29, Martin Senger wrote:
> I am trying to figure out how I would implement the data by
> reference in
> order to achieve the main purpose - not no have all data in memory.
> I know
> how I would do it for the references being on the primitive types
> level, but
> it is less clear to me how I would do it with the references on other
> levels. Perhaps you can help me to explain how you would do it (or
> even
> Pieter can explore how he is already doing it)?
What I use mostly are http(s) references. I download them and save
them as tmp files in a tmp dir. What happens next completely depends
on the service.
Sometimes I'm lazy and simply use a DOM parser to load the entire
thing in memory for convenient access to all nodes. (Note that I'm
living in a Perl world and therefore this makes sense. Using a
reference prevents DOM parsing of the SOAP message by SOAP::Lite which
has an expansion factor 5-7 times worse than DOM parsing of only the
Moby payload.)
If I cannot afford to be lazy, because the Moby payload tends to be
big, I use hybrid parsers. I never use pure streaming (SAX) parsers.
Hybrid means I use a streaming parser to divide the input into certain
chunks/fragments. Next I loop over the chunks and load them completely
into memory. This way I only have one chunk at a time in memory plus a
few globals like for example a counter to keep track of the amount of
BLAST hits. This hybrid parsing can be either for XML or for legacy
data formats like BLAST reports in tabular format.
In one case I use an XSLT to parse and convert one type of Moby XML
message into an SVG (is also XML) image. The XSLT is pretty cool and
is also some kind of hybrid. Basically it works similar to a flat file
indexing system. You define certain nodes of interest. It parses the
XML (SAX not DOM) once to make an index of where these nodes occur in
the XML. This index is kept in memory, but that is a lot smaller since
it stores only where a certain node occurs not it's contents and it
stores only nodes you need and specified not everything. Next it
parses the XML again (SAX not DOM) to do your business logic.
The inconvenience of a pure streaming parser is that you cannot jump
around the data. Once the streaming has parsed and passed a certain
point it forgets about that data unless you decide to store it in
variables. So, if you parse 100 BLAST hits and when you parse number
88 you want to go back to compare it to number 12, you can not unless
you stored number 12 somehow. With the XSLT you don't have to store
it, as you could have indexed the BLAST hits. So, when you need 12
again the parser jumps back to that point and parses only the chunk/
fragment for number 12 again. This means some parts of the XML might
get parsed more than once, but for scalability that is much better
than parsing the entire XML several times or storing large pieces in
memory.
The disadvantage of XLSTs in my opinion is that it works radically
different than any language I've seen before. Perl and Java are
different, but they share many concepts like if, else, while, for
loops. Developing XSLTs requires a completely different way of
thinking and I never found it easy.
> For references on the primitive type level, I would do a usual
> parsing of a
> Moby message and when I find a reference, I would resolve it do a
> local file
> and I would pass to my service class the data as a file reference.
> It would
> be up to the service to read the file contents to the memory or not
> - that
> would depend what it needs to do with the data.
>
> However, on the higher level, such as mobyData level, the reference
> must be
> treated differently. If I do the same (resolving the reference to a
> local
> file), I still need to call a parser again to parse the contents of
> the
> local file. Because I still want to give my service already parsed
> data (and
> not a biomoby XML), and because I do not want to have all in memory,
> I need
> to create local files for each primitive type and do the same as above
> (passing my service local file references). I do not see much other
> choices.
Not only would you have to do that for the primitives. If you want to
provide pre-parsed data to a service you would have to do it for the
values of namespace and id attributes at any level of mobyData too
right? I assume we are talking about MoSeS here were based on the data
in BioMoby Central code is generated both to parse the Biomoby XML
inputs of a service as well as to compile its results as BioMoby XML.
Saving everything pre-parsed as tmp files to disk, doesn't make much
sense too me. If you would do it both for the entire message and for
all it's possible dissected parts it would cause quite some redundancy
and overhead.
But how to do it with a hybrid DOM/SAX parser or with an XSLT that
uses indices? You would have to generate the code to chunk the input
for a hybrid parser or you have to generate the code to index certain
nodes for the XSLT. This means you need to know how the business logic
of the services works to figure out at which level level of the XML
you would have to chunk or index. I know Mark has this famous slide
with the God of BioMoby, but I'm afraid even the almighty Martin
cannot predict based on the info in BioMoby Central how the business
logic of a services works :(... In the current MoSeS parsing of the
input and the business logic are two separate things, but if you want
to improve scalability with a hybrid SAX/DOM or XSLT parser, parsing
the input will become an essential part of the business logic. What
you could do is generate some disabled example code to chunk/index at
any level and then a developer could uncomment the lines required.
Furthermore there are some obvious levels at which chunking/indexing
makes sense. Take for example a huge Collection of Simples. It would
make sense to chunk/index at the level of the pseudo-root element of
the Simples. I don't think it's possible to pre-generate all code to
parse the input in the right order and with chunking/indexing at the
right levels, but with a few smart examples a developer should be able
to quickly change the order and/or adapt to chunking/indexing further
up or down the tree.
> Am I missing a point here?
No, making a typical "currency convertor" example web service with a
single small input and a single small output is easy, but making a web
service that scales well is really hard!
There is a Perl module in the BioMoby CVS for XSLT based parsing. It
was developed in France some time ago if I remember correctly and
AFAIK it is not maintained, so it probably lacks some of the newer
stuff like proper error handling, async services etc., but it might be
a nice example of what can be done with XSLTs.
Ok, those of you who managed to read all the way up till here earned a
beer on the next BioMoby developers meeting!
Cheers,
Pi
> The above is doable, of course. But you see why I wanted to have
> references
> only on the primitive type level. If we have them on any level (as
> it seems
> to be) I need, in my implementation, actually make another (local)
> references for the primitive type, anyway. Of course, it is better
> than the
> remote references because I do not need to make a network connection
> for
> each individual primitive type (point taken, Pieter) - but it still
> to be
> done.
>
> Cheers,
> Martin
>
> --
> Martin Senger
> email: martin.senger at gmail.com,m.senger at cgiar.org
> skype: martinsenger
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
-------------------------------------------------------------
From markw at illuminae.com Wed Jul 30 10:54:23 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Wed, 30 Jul 2008 07:54:23 -0700
Subject: [MOBY-dev] [MOBY-l] Apologies,
a hint for MIPS-Service substitutions, and an invitation
In-Reply-To: <48902BAE.7000501@mpiz-koeln.mpg.de>
References:
<48902BAE.7000501@mpiz-koeln.mpg.de>
Message-ID:
On Wed, 30 Jul 2008 01:51:58 -0700, Andreas Groscurth
wrote:
> I was wondering how you store this information ? are they mapped to the
> services/datatypes etc in the moby central database ?
At the moment we're not entirely sure where to put it. I am loathe to put
it in Moby Central as we don't yet know what the quality of the annotation
will be (though I guess Moby Central isnt' curated either, so... it
probably wouldn't hurt). Moreover, the Moby Central API isn't able to
query at the level of detail that we will be capturing these annotations,
so there's no compelling reason to put it there. For now, we're putting
it in a local RDF store, but we may eventually move it into Freebase
(http://www.freebase.com/) to enable direct queries there. we'll see how
it goes.
> so my suggestion is to think about a tagging system (via dashboard / web
> portal), which is permant available and allows everyone to tag moby
> stuff ?!
Certainly I think we need a dashboard panel that contains the annotation
interface (called "ED" - the Entity Describer http://entitydescriber.org;
written by our very own Eddie Kawas :-) ). ED is currently a bit too
tightly linked to Connotea, but we're in the process of ripping it out and
making it more standalone for this Jamboree.
Eddie, what do you think of a dashboard ED panel?
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
From edward.kawas at gmail.com Wed Jul 30 10:59:10 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 30 Jul 2008 07:59:10 -0700
Subject: [MOBY-dev] [MOBY-l] Apologies,
a hint for MIPS-Service substitutions, and an invitation
In-Reply-To:
References: <48902BAE.7000501@mpiz-koeln.mpg.de>
Message-ID: <489081c6.22bd720a.2434.ffffe4ae@mx.google.com>
I like the dashboard panel idea a lot. Seems like the best place to keep
that information. Nice thinking Andreas!
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Mark Wilkinson
Sent: July-30-08 7:54 AM
To: Core developer announcements; moby-l at lists.open-bio.org
Subject: Re: [MOBY-dev] [MOBY-l] Apologies, a hint for MIPS-Service
substitutions, and an invitation
On Wed, 30 Jul 2008 01:51:58 -0700, Andreas Groscurth
wrote:
> I was wondering how you store this information ? are they mapped to the
> services/datatypes etc in the moby central database ?
At the moment we're not entirely sure where to put it. I am loathe to put
it in Moby Central as we don't yet know what the quality of the annotation
will be (though I guess Moby Central isnt' curated either, so... it
probably wouldn't hurt). Moreover, the Moby Central API isn't able to
query at the level of detail that we will be capturing these annotations,
so there's no compelling reason to put it there. For now, we're putting
it in a local RDF store, but we may eventually move it into Freebase
(http://www.freebase.com/) to enable direct queries there. we'll see how
it goes.
> so my suggestion is to think about a tagging system (via dashboard / web
> portal), which is permant available and allows everyone to tag moby
> stuff ?!
Certainly I think we need a dashboard panel that contains the annotation
interface (called "ED" - the Entity Describer http://entitydescriber.org;
written by our very own Eddie Kawas :-) ). ED is currently a bit too
tightly linked to Connotea, but we're in the process of ripping it out and
making it more standalone for this Jamboree.
Eddie, what do you think of a dashboard ED panel?
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From groscurt at mpiz-koeln.mpg.de Thu Jul 31 03:32:28 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Thu, 31 Jul 2008 09:32:28 +0200
Subject: [MOBY-dev] [MOBY-l] Apologies,
a hint for MIPS-Service substitutions, and an invitation
In-Reply-To:
References: <48902BAE.7000501@mpiz-koeln.mpg.de>
Message-ID: <48916A8C.2090801@mpiz-koeln.mpg.de>
Mark Wilkinson wrote:
>
>> I was wondering how you store this information ? are they mapped to
>> the services/datatypes etc in the moby central database ?
>
> At the moment we're not entirely sure where to put it. I am loathe to
> put it in Moby Central as we don't yet know what the quality of the
> annotation will be
Considering some registered namespaces and especially datatypes -
annotations will be probably of low quality, but that we have already at
some point and it will always be with uncurated community systems.
> Moreover, the Moby Central API isn't able to query at the level of
> detail that we will be capturing these annotations, so there's no
> compelling reason to put it there.
yeah the central api and the client api has to be changed then...
although the searching for services via tags is not difficult on client
side.
>> so my suggestion is to think about a tagging system (via dashboard /
>> web portal), which is permant available and allows everyone to tag
>> moby stuff ?!
>
> Certainly I think we need a dashboard panel that contains the
> annotation interface (called "ED" - the Entity Describer
> http://entitydescriber.org; written by our very own Eddie Kawas :-)
> ). ED is currently a bit too tightly linked to Connotea, but we're in
> the process of ripping it out and making it more standalone for this
> Jamboree.
>
> Eddie, what do you think of a dashboard ED panel?
looks like a good idea for it ... nice to see something already
'somehow' existing :)
Best
andreas
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From dmitry.repchevski at bsc.es Thu Jul 31 05:10:08 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 31 Jul 2008 11:10:08 +0200
Subject: [MOBY-dev] Binary data streaming
Message-ID: <48918170.2060300@bsc.es>
Hello everybody,
Last INB meeting in Valencia we were agreed the the correct way to
implement streaming would be using XOP/MTOM specifications.
Even there is no any concrete document or agreement I was played with it
and IMO the easiest way to introduce it in Moby is through a new
primitive type,
something like "Binary". I implemented it in my package and it's very
easy to do using JAXB.
The schema for such an element is:
*****************************************
... moby attributes
*****************************************
Such a binary type will be encoded as base64 if there is no MTOM support
and as a MIME attachment (streamed) otherwise.
Here are both examples of encoding (with and without XOP/MTOM) support:
*****************************************
...
dGVzdA==
...
*****************************************
--uuid:0895f30d-7b88-411f-94a8-172a5187c9f7
Content-Id:
Content-Type: application/xop+xml;charset=utf-8;type="text/xml"
Content-Transfer-Encoding: binary
...
...
--uuid:0895f30d-7b88-411f-94a8-172a5187c9f7
Content-Id:
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
test
--uuid:0895f30d-7b88-411f-94a8-172a5187c9f7--
*****************************************
This way a PERL implementation (which could face a problem with MTOM
implementation) would use the first form and a Java one, the second...
Looking forward for comments,
Dmitry
From martin.senger at gmail.com Thu Jul 31 20:03:03 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 1 Aug 2008 08:03:03 +0800
Subject: [MOBY-dev] Binary data streaming
In-Reply-To: <48918170.2060300@bsc.es>
References: <48918170.2060300@bsc.es>
Message-ID: <4d93f07c0807311703t5a361e9fmb4e44f8bb2663e87@mail.gmail.com>
> the correct way to implement streaming
What do you mean by "implement streaming"? I concluded that you meant
"sending binary data from (or to) a moby service". Is is correct?
> would be using XOP/MTOM specifications
This is again a SOAP-based specification, meaning another way how to make an
attachment (correct?).
I have feeling that our current proposal about the data-by-reference (that I
am going to summarize in the next few hours) has a reasonable tools for
getting binary data - if sent as a reference. If the protocol for
dereferencing is HTTP, we can use MIME type (content-type HTTP header) for
references data.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From pieter.neerincx at gmail.com Thu Jul 31 21:45:33 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Fri, 1 Aug 2008 03:45:33 +0200
Subject: [MOBY-dev] Binary data streaming
In-Reply-To: <4d93f07c0807311703t5a361e9fmb4e44f8bb2663e87@mail.gmail.com>
References: <48918170.2060300@bsc.es>
<4d93f07c0807311703t5a361e9fmb4e44f8bb2663e87@mail.gmail.com>
Message-ID:
Hi,
On 01 Aug 2008, at 02:03, Martin Senger wrote:
>> the correct way to implement streaming
>
>
> What do you mean by "implement streaming"? I concluded that you meant
> "sending binary data from (or to) a moby service". Is is correct?
>
>
>> would be using XOP/MTOM specifications
>
>
> This is again a SOAP-based specification, meaning another way how to
> make an
> attachment (correct?).
Well theoretically an attachment would be ideal. It makes sure the
attachment can be parsed separately to provide scalability.
Furthermore, you always keep the data "together". With "external"
references the data is separated and has to go over the wire in two
different sessions. This way data might get lost. If the first session
uses SOAP over HTTP with a reference to data available only over FTP
and my client or service doesn't talk FTP, I received only half of the
package. With an attachment it either arrives completely or it doesn't
arrive at all.
So, theoretically I'd love attachment support for BioMoby services,
but my previous questions remained unanswered:
1. Is there any Perl support for such XOP/MTOM attachments. I mean a
module that actually *works* in contrast to the MIME-tools package.
2. Do XOP/MTOM attachments scale beyond the reach of the casual
firewall? Most firewalls block MIME/DIME attachments over 5 MB in
size. Attachments ain't going to improve scalability of BioMoby
services if 99% of our users scale to a max of 5 MB.
Martin, if you are at the EBI right now, you might ask for some advise
at the external services group. I know they are one of the few smart
guys who managed to get their SOAP services working with MIME
attachments and hit the firewall limits. It was at ISMB in Fortaleza
2006 when I talked to them about these issues, so the situation might
have improved by now...
Still, even if we wouldn't need it for scalability, pass-by-reference
would be very handy so you can reference existing data from others
(like a reference to a UniProt record on a EBI server.)
So unless the issues above are resolved, attachments are theoretically
maybe a nicer solution, but I'd say pass-by-reference is practically
the best solution to improve scalability in a pragmatic way.
Cheers,
Pi
> I have feeling that our current proposal about the data-by-reference
> (that I
> am going to summarize in the next few hours) has a reasonable tools
> for
> getting binary data - if sent as a reference. If the protocol for
> dereferencing is HTTP, we can use MIME type (content-type HTTP
> header) for
> references data.
>
> Martin
>
> --
> Martin Senger
> email: martin.senger at gmail.com,m.senger at cgiar.org
> skype: martinsenger
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
-------------------------------------------------------------
From soiland-reyes at cs.manchester.ac.uk Mon Jul 28 05:23:47 2008
From: soiland-reyes at cs.manchester.ac.uk (Stian Soiland-Reyes)
Date: Mon, 28 Jul 2008 10:23:47 +0100
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4889cf38.1aba720a.1b32.3a36@mx.google.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<4889cf38.1aba720a.1b32.3a36@mx.google.com>
Message-ID:
On Fri, Jul 25, 2008 at 2:03 PM, Edward Kawas wrote:
> Don't worry about Taverna! Whatever we decide will most likely be the same
> amount of work. So let's just get it right.
Taverna 2 has built-in support for references (and their
dereferencing) - so you could implement any referencing scheme you
like, really, there's just a very simple interface to implement:
http://taverna.cvs.sourceforge.net/taverna/t2reference/t2reference-api/src/main/java/net/sf/taverna/t2/reference/ExternalReferenceSPI.java?view=markup
Example implementation:
http://taverna.cvs.sourceforge.net/taverna/t2reference/t2reference-core-extensions/src/main/java/net/sf/taverna/t2/reference/impl/external/http/HttpReference.java?view=markup
Plain HTTP references should work out of the box, though. You could
make a version of this and add your own added-value semantics to the
URIs - and it could still also work with other non-biomoby-services
that recognised HTTP-URLs.
t2 allows you to add translators between different reference schemes -
so if you ended up with say "urn:biomoby:fish/1337" and you knew that
you could download such references by using
http://download.biomoby.org/fish/1337.xml - you can easily add a
BiomobyReferenceToHttpReference translator that constructs such URIs
given the biomoby reference.
--
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
http://www.mygrid.org.uk/dev/blog/
From martin.senger at gmail.com Tue Jul 1 18:41:49 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 1 Jul 2008 11:41:49 -0700
Subject: [MOBY-dev] data by reference - a request for comments
Message-ID: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
Hi all,
Yesterday, Mark, Eddie and I, we spent some time to evaluate what was
proposed during our last meeting about sending data by references. Here are
some thoughts that may crystalize into a request fro comments.
*What is the purpose of sending data by reference
*
Well, the first purpose (A) is obvious: we want to be able to deliver huge
data from a service. So the service returns only a reference instead of the
real data and the client can fetch the real data using some memory-friendly
protocol (usualy a simple HTTP/GET).
But it appeeared that it was not the only purpose. The second purpose (B) is
to be able to send around already existing references (such as URLs of the
EMBL or NCBI records). The existence of this B purpose makes the problem a
bit harder but it is a valid puspose. So the first question is:
*Do you agree that we pursue both purposes in this requests?
*
*The machinery
*
a) A service claims (in the registration time) that it can provide data by
reference.
b) A client asks for getting back references by including "acceptRefs"
attribute in mobyData tag. The attribute lists one or more protocol names
that the client can accept.
c) A service *can* obey such request and send one or more *primitive
data*as references (the focus on primitive type is new, originaly we
thought
about allowing references on any level, but now, mainly becuse of the
purpose B we do not propose it anymore). It can use any of the protocols
mentioned in the client's "acceptRefs" attribute. It can send references
only if at least one protocol matches.
*How does a client knows what protocols a service supports?*
This is a fundamental question that goes closely with "use existing
standards rather than inventing your own". An ideal solution is perhaps
this: A service returns not a reference to data itself but a reference to a
WSDL document that contains all supported protocols, including the endpoints
for this particular data. It is a nice idea but it breaks the purpose B - we
cannot use existing references without wrapping them first in a WSDL
document. The WSDL is strong because it gives us actually an *interface* how
to get data, but it is weak because the references cannot be used as *
indexes* (e.g. for further caching). Also, it does not solve the client
side: the "acceptRefs" attribute still needs to use a list of protocol names
(and not a WSD document because clients cannot make WSDL documents visible
to the world).
After going there and back, we concluded (and it is now our proposal for the
request of comments) that the service returns a reference to data, and
clients can deduce what protocol to us by looking at the protocol part of
the returned URL. We are aware that this is fine for usual protocol, such as
HTTP and FTP, but it cannot serve data, for example, by a SOAP. But, as
Eddie pointed out, if somebody wants SOAP for data, she can return data
directly in the Moby message.
*The remaining questions
*
Dmitry suggested to use WSRF. We think that he meant something else: It
could be used instead of the whole Moby message - but that is not what we
are looking for. We are looking for replacing just data part by references,
and we want still to keep the original Moby message as it is used now. So we
have concluded: no WSRF.
*How can a client tells a service that she is sending a reference instead of
data?* This could be useful for chaining services. We have not talked about
it. Ideas welcome.
The machinery described above may not allow to find, in advance, what
protocols a service is able to provide. It depends on what a service can
register into a moby central registry. It can be just a boolen flag ("I can
provid references"), or a list of supported protocols ("names"), or actually
nothing. The latest option has an advantage that no change in the registry
is needed. *Can we live with this simple option?*
I am not sure if I covered all, but better to send ti now and wait for your
comments.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From jmfernandez at cnio.es Tue Jul 1 19:04:40 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Tue, 01 Jul 2008 21:04:40 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
Message-ID: <486A7FC8.20201@cnio.es>
Hi everybody,
I have added inline some personal comments about the RFC:
Martin Senger wrote:
> Hi all,
>
> Yesterday, Mark, Eddie and I, we spent some time to evaluate what was
> proposed during our last meeting about sending data by references. Here are
> some thoughts that may crystalize into a request fro comments.
>
> *What is the purpose of sending data by reference
> *
> Well, the first purpose (A) is obvious: we want to be able to deliver huge
> data from a service. So the service returns only a reference instead of the
> real data and the client can fetch the real data using some memory-friendly
> protocol (usualy a simple HTTP/GET).
>
> But it appeeared that it was not the only purpose. The second purpose (B) is
> to be able to send around already existing references (such as URLs of the
> EMBL or NCBI records). The existence of this B purpose makes the problem a
> bit harder but it is a valid puspose. So the first question is:
>
> *Do you agree that we pursue both purposes in this requests?
> *
> *The machinery
> *
> a) A service claims (in the registration time) that it can provide data by
> reference.
>
It can be claimed from the RDF of the service as a predicate, including the
understood reference protocols (which should be described elsewhere in an RDF
ontology).
> b) A client asks for getting back references by including "acceptRefs"
> attribute in mobyData tag. The attribute lists one or more protocol names
> that the client can accept.
>
I suggest using serviceNotes child element (called for instance acceptRefs
:-), telling what it can understand) instead of adding a new attribute to
mobyData, in both ways of the MOBY dialog. The client uses the acceptRefs
element in the message sent to the service to tell what it can understand, and
the service answers using the acceptRefs explaining what it have done. The
service must answer a subset of the understood reference protocols to the
client in order to maintain the contract.
If the service cannot fulfill the request where client does not understand the
protocols' the service is able to handle (because it refuses to send too much
information inline), it can fail using a new exception code related to message
size.
If the service uses references which are not understood by the client, then
the client can mark the message or the service as corrupted or offensive.
> c) A service *can* obey such request and send one or more *primitive
> data*as references (the focus on primitive type is new, originaly we
> thought
> about allowing references on any level, but now, mainly becuse of the
> purpose B we do not propose it anymore). It can use any of the protocols
> mentioned in the client's "acceptRefs" attribute. It can send references
> only if at least one protocol matches.
>
> *How does a client knows what protocols a service supports?*
>
> This is a fundamental question that goes closely with "use existing
> standards rather than inventing your own". An ideal solution is perhaps
> this: A service returns not a reference to data itself but a reference to a
> WSDL document that contains all supported protocols, including the endpoints
> for this particular data. It is a nice idea but it breaks the purpose B - we
> cannot use existing references without wrapping them first in a WSDL
> document. The WSDL is strong because it gives us actually an *interface* how
> to get data, but it is weak because the references cannot be used as *
> indexes* (e.g. for further caching). Also, it does not solve the client
> side: the "acceptRefs" attribute still needs to use a list of protocol names
> (and not a WSD document because clients cannot make WSDL documents visible
> to the world).
>
A passive, static way is publishing the service capabilities about references
in the RDF. An active, dynamic way is creating a new service port (like we did
with asynchronous services), which provides live metadata information about
the service. I could even be linked/related to LSID metadata servers, but it
is still outside my knowledge.
> After going there and back, we concluded (and it is now our proposal for the
> request of comments) that the service returns a reference to data, and
> clients can deduce what protocol to us by looking at the protocol part of
> the returned URL. We are aware that this is fine for usual protocol, such as
> HTTP and FTP, but it cannot serve data, for example, by a SOAP. But, as
> Eddie pointed out, if somebody wants SOAP for data, she can return data
> directly in the Moby message.
>
> *The remaining questions
> *
> Dmitry suggested to use WSRF. We think that he meant something else: It
> could be used instead of the whole Moby message - but that is not what we
> are looking for. We are looking for replacing just data part by references,
> and we want still to keep the original Moby message as it is used now. So we
> have concluded: no WSRF.
>
> *How can a client tells a service that she is sending a reference instead of
> data?* This could be useful for chaining services. We have not talked about
> it. Ideas welcome.
>
> The machinery described above may not allow to find, in advance, what
> protocols a service is able to provide. It depends on what a service can
> register into a moby central registry. It can be just a boolen flag ("I can
> provid references"), or a list of supported protocols ("names"), or actually
> nothing. The latest option has an advantage that no change in the registry
> is needed. *Can we live with this simple option?*
>
> I am not sure if I covered all, but better to send ti now and wait for your
> comments.
>
> Cheers,
> Martin
>
Best Regards,
Jos? Mar?a
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From martin.senger at gmail.com Wed Jul 2 05:22:30 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 1 Jul 2008 22:22:30 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486A7FC8.20201@cnio.es>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
<486A7FC8.20201@cnio.es>
Message-ID: <4d93f07c0807012222i1ae4f97ai152796660a0bc46a@mail.gmail.com>
> It can be claimed from the RDF of the service as a predicate, including the
> understood reference protocols (which should be described elsewhere in an
> RDF ontology).
I do not like using the RDF for mandatory features. The RDF, at least in the
current moby, is optional and should not carry anything that is significant
for the service and its behaviour. The data by reference should be part of
the main BioMoby API (or whatever we call it).
> I suggest using serviceNotes child element
I do not have a strong opinion where in the message this could be - I have
just used the tag name and location that was suggested in our February
meeting. The ServiceNotes, however, seems a bit a strange place when used by
the clients.
> and the service answers using the acceptRefs explaining what it have done.
Why? Why is not enough the reference itself? It is a URL and the URL has a
wel-defined protocol. And what if a service uses a different protocol for
different parts of the message (remember the purpose B)? No, the
ServiceNotes is not a suitable place for it.
> The service must answer a subset of the understood reference protocols to
> the client in order to maintain the contract.
And what about if the service does not want to return references, at all?
That should be an error, as well? No, I don't think so. A client just
suggests that she is able to accept references but there is no guarantee
that she can get it (many services will not have any provision for
references).
> A passive, static way is publishing the service capabilities about
> references in the RDF.
It can be there, why not, - but not as the main way.
> An active, dynamic way is creating a new service port (like we did with
> asynchronous services)
Do you mean a new method name? But for what? Not sure I understand how this
new method may help here (and not breaking the purpose B, for example).
Just my opinions.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From dmitry.repchevski at bsc.es Wed Jul 2 10:26:52 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Wed, 02 Jul 2008 12:26:52 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
Message-ID: <486B57EC.7090302@bsc.es>
Hello!
Here are my comments. Please note that all they are in mode IMHO,
because I understand the complicity of the problem and just looking for
possible solution.
> [A] Well, the first purpose (A) is obvious: we want to be able to deliver huge data from a service.
It depends.
If we are going to stay with SOAP (and especially move to doc/lit) the
right way is to provide streaming through SOAP Attachments (SwA) or even
better using MTOM.
This way we have to introduce a special Moby Primitive Type something
called "BinaryAttachment" which will be bind to [type="base64Binary"]
This type will be replaced with:
...
--MIME_boundary
Content Type:image/gif
Content-Transfer-Encoding:binary
Content-ID:
... (file content)
--MIME_boudary
In case of using MTOM:
...
------=_Part_1_4558657.1118953559446
Content-Type: image/jpeg
Content-ID:
Obviously JAVA supports both, but considering Perl, I am not sure which
is better
(I am very pessimistic in SOAP Perl capabilities... :-( )
> The second purpose (B) is to be able to send around already existing references (such as URLs of the EMBL or NCBI records).
Here is the question where ever we continue to invent standards or
trying to use SOAP capabilities...
Finally we have WS-Addressing (and even have it implemented in Perl :-) ).
More we have WSRF that is exactly for this purpose - reference for resource.
> Dmitry suggested to use WSRF. We think that he meant something else: It
> could be used instead of the whole Moby message - but that is not what we
> are looking for.
I am afraid you didn't understand me well... WSRF doesn't mean we have
to send ALL the message.
It is only the way to reference a resource. Even in moby-asynchrony we
return the whole message if needn't be so.
We can perfectly return a reference to ANY part of the original request.
It is up to the service to locate the asked resource and send it back to
the WSRF request.
We shouldn't confuse "A" and "B" because they are different.
"A" is to stream the data which in many case means "give me a huge file".
"B" is to keep the reference to it (something temporal like a
calculation that produces a lot of data and we don't want to pass it
around).
> We are looking for replacing just data part by references,
> and we want still to keep the original Moby message as it is used now. So we
> have concluded: no WSRF.
Don't understand it... How you suppose to replace some object in Moby
message by refernce without changing it?
> *How can a client tells a service that she is sending a reference instead of
> data?* This could be useful for chaining services. We have not talked about
> it. Ideas welcome.
There is no way to specify that it can be send both by value and by
reference and the same type...
I suggest - the service expecting the usual "value", but check if there
is WSRF resource sent in header.
If it is it just calls the service (or in case it is the same server,
just locate it locally) to get the object (not all Moby message, but
just serialized Moby object, like AminoacidSequence) and use it instead
the EMPTY one in MobyMessage.
Something like - We expect two AminoacidSequence(s) -
articleName="first", articleName="second"
In header we put WS Addressing (WSRF) resource to "server1/second"
The service check headers for resources and call the server1 to obtain
"second" Aminoacid.
This can be useful to make a workflow too... because we can call the
server1 to get AminoacidSequence2, obtain reference to it AND send it to
the server 2, so actually server2 will get the reference to it...
In case server1 and the server2 are the same (this is the main idea of
[B]?) we do not need to pass around and get it directly... in case of
server1 != server2 we have a ... Moby "GRID" :D
> I do not like using the RDF for mandatory features. The RDF, at least in the
> current moby, is optional and should not carry anything that is significant
> for the service and its behaviour.
Agree. IMHO I would use WSDL capability to describe it all, but having
so many types of services this could be very hard...
IMO the main problem is that BioMoby is using SOAP, but use nothing of
it trying to replace all W3C and WS-I specification by it's own solution.
So the question is why do we use SOAP?
I see (in a long term) two possibilities:
1. Forget about SOAP and do the REST (which is a fancy name to say we
are going to send what ever we want without any standard)
2. Use SOAP and Web Services architecture.
Best regards,
Dmitry
From markw at illuminae.com Wed Jul 2 14:22:13 2008
From: markw at illuminae.com (Mark)
Date: Wed, 02 Jul 2008 07:22:13 -0700
Subject: [MOBY-dev] Interesting...
Message-ID:
http://www.biomedcentral.com/1471-2105/9/295/abstract
I wonder how they got document-literal stuff working in Perl??
M
From markw at illuminae.com Wed Jul 2 14:11:29 2008
From: markw at illuminae.com (Mark)
Date: Wed, 02 Jul 2008 07:11:29 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486B57EC.7090302@bsc.es>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
<486B57EC.7090302@bsc.es>
Message-ID:
>> The second purpose (B) is to be able to send around already existing
>> references (such as URLs of the EMBL or NCBI records).
> Here is the question where ever we continue to invent standards or
> trying to use SOAP capabilities...
> Finally we have WS-Addressing (and even have it implemented in Perl :-)
> ).
> More we have WSRF that is exactly for this purpose - reference for
> resource.
Hi Dmitry!
Could you send an example of a Moby message that has multiple components
(e.g., the image and annotation component of SimpleAnnotatedJpegImage)
where the content of the data-carrying primitives are references using the
WS-Addressing standard? that way, we'll all know without any ambiguity
what it is you are suggesting.
Thanks!
Mark
From dmitry.repchevski at bsc.es Wed Jul 2 17:56:51 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Wed, 02 Jul 2008 19:56:51 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
Message-ID: <486BC163.9050007@bsc.es>
Hello Mark,
My suggestion (not a final specification :-)) is something like:
******************************
http://myserver.com/MyService?asyncId=ID
ID
mobyws:result_queryId00/image/jpeg/content
description
***********************
The idea is to include the WSRF reference into the header:
***********************
http://myserver.com/MyService?asyncId=ID
ID
mobyws:result_queryId00/image/jpeg/content
***********************
The service can access the header looking for resources and then to call
WSRF service specified to obtain them.
Of course we must update our WSRF stack to return a particular moby
object instead of all mobyData. here I "updated" the like to
"mobyws:result_queryId00/image/jpeg/content"
Note that I used a simplest possible way to produce an... uri (?) to it
- using "articleNames". I commented the "content" in the body to
demonstrate the idea better - it is up to service implementation to call
a wsrf and obtain the image... This way we do not need to change "moby"
message.
Cheers,
Dmitry
From gordonp at ucalgary.ca Wed Jul 2 17:57:40 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Wed, 02 Jul 2008 11:57:40 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807012222i1ae4f97ai152796660a0bc46a@mail.gmail.com>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com> <486A7FC8.20201@cnio.es>
<4d93f07c0807012222i1ae4f97ai152796660a0bc46a@mail.gmail.com>
Message-ID: <486BC194.90506@ucalgary.ca>
Hi Martin,
I agree with most of your post, but I will be pedantic and point out the
trap you, and previously Tom Oinn, fell into in this discussion:
> Why? Why is not enough the reference itself? It is a URL and the URL has a
> wel-defined protocol. ...
URL does not in fact have a well-defined protocol. URL is simply a way
to express "protocol:protocol-specific-stuff"
I'll assume you mean http and maybe ftp protocols. It's important to be
specific, because you probably don't want to include mailto:, gopher: or
prospero: for example.
Paul
From markw at illuminae.com Wed Jul 2 18:21:57 2008
From: markw at illuminae.com (Mark)
Date: Wed, 02 Jul 2008 11:21:57 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486BC163.9050007@bsc.es>
References: <486BC163.9050007@bsc.es>
Message-ID:
Do you suggest that there is no indication, in the MOBY block, that the
message contains data-by-reference? i.e. should our tools simply see that
the primitive is empty, and then look into the ws header for the
possibility of a ws-ref, and then if it isn't found, adopt the other
interpretation of an empty block (i.e. that the data is known to be NULL)
?
M
On Wed, 02 Jul 2008 10:56:51 -0700, Dmitry Repchevsky
wrote:
> Hello Mark,
>
> My suggestion (not a final specification :-)) is something like:
>
> ******************************
>
>
>
>
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
> http://myserver.com/MyService?asyncId=ID
>
>
> ID
>
>
>
> mobyws:result_queryId00/image/jpeg/content
>
>
>
>
>
>
>
>
>
>
>
> articleName="Description">description
>
>
>
>
>
>
>
>
> ***********************
>
> The idea is to include the WSRF reference into the header:
>
> ***********************
> xmlns:wsa="http://www.w3.org/2005/08/addressing">
> http://myserver.com/MyService?asyncId=ID
>
> xmlns:mobyws="http://biomoby.org/">ID
>
>
> mobyws:result_queryId00/image/jpeg/content
>
>
> ***********************
>
> The service can access the header looking for resources and then to call
> WSRF service specified to obtain them.
> Of course we must update our WSRF stack to return a particular moby
> object instead of all mobyData. here I "updated" the like to
> "mobyws:result_queryId00/image/jpeg/content"
> Note that I used a simplest possible way to produce an... uri (?) to it
> - using "articleNames". I commented the "content" in the body to
> demonstrate the idea better - it is up to service implementation to call
> a wsrf and obtain the image... This way we do not need to change "moby"
> message.
>
> Cheers,
>
> Dmitry
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
--
--
Mark Wilkinson
Heart + Lung Research Institute
Centre for High Throughput Biology
UBC
From dmitry.repchevski at bsc.es Wed Jul 2 22:15:13 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 03 Jul 2008 00:15:13 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
Message-ID: <486BFDF1.1070001@bsc.es>
Hello,
No I think that the service (tool?) should look into the header first
and if there are some references, ignore corresponding element from the
body. As I said this is only an idea. This way we do not change the
message itself and do can implement it on the base of existing wsrf code...
As of the wsrf response for
//"mobyws:result_queryId00/image/jpeg/content"// the service will return
the standard MOBY message but only with elements found in the path
(MOBY/mobyContent/mobyData/Simple/SimpleAnnotatedJPEGImage/String
Best regards,
Dmitry
From edward.kawas at gmail.com Wed Jul 2 22:33:07 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 2 Jul 2008 15:33:07 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486BFDF1.1070001@bsc.es>
References: <486BFDF1.1070001@bsc.es>
Message-ID: <486c0227.07ec720a.5dc1.ffffd76a@mx.google.com>
With all this talk about WSRF, SOAP, etc, what would happen with cgi (i.e.
non moby/moby-async) services?
I think that the solution needs to be able to encompass all categories of
services that moby claims to support and not just [JAVA] SOAP services.
Just a few of my thoughts,
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Dmitry Repchevsky
Sent: July-02-08 3:15 PM
To: moby-dev at lists.open-bio.org
Subject: Re: [MOBY-dev] data by reference - a request for comments
Hello,
No I think that the service (tool?) should look into the header first
and if there are some references, ignore corresponding element from the
body. As I said this is only an idea. This way we do not change the
message itself and do can implement it on the base of existing wsrf code...
As of the wsrf response for
//"mobyws:result_queryId00/image/jpeg/content"// the service will return
the standard MOBY message but only with elements found in the path
(MOBY/mobyContent/mobyData/Simple/SimpleAnnotatedJPEGImage/String
Best regards,
Dmitry
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From martin.senger at gmail.com Thu Jul 3 04:11:26 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Wed, 2 Jul 2008 21:11:26 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486BC194.90506@ucalgary.ca>
References: <4d93f07c0807011141y73f5f919g169a1c01d93d6c95@mail.gmail.com>
<486A7FC8.20201@cnio.es>
<4d93f07c0807012222i1ae4f97ai152796660a0bc46a@mail.gmail.com>
<486BC194.90506@ucalgary.ca>
Message-ID: <4d93f07c0807022111u4f65fe7ap851a997a23e230a8@mail.gmail.com>
Paul,
URL does not in fact have a well-defined protocol. URL is simply a way to
> express "protocol:protocol-specific-stuff"
Point taken. The URL has a well-defined *place* where I can find a protocol,
but it does not define what protocol can sit on that place.
> I'll assume you mean http and maybe ftp protocols. It's important to be
> specific, because you probably don't want to include mailto:, gopher: or
> prospero: for example.
>
Well, I did not mean to be too specific. All the protocols you mentioned
would be possible (but some of them may hardly find a match between a
service an a client).
All,
I am not against standards, actually standards was what I was hired to
promote at EBI, but my experiences are that sometimes standards simply are
an obstacle. Especially for BioMoby - that is anyway a non-standard message
protocol. We already burned ourselves with using WSRF for asynchronous
services (we have now problems how to make asynchronous services using
REST). I am afraid that using WSRF will rather move service provider from
Moby world than closer to it (I am talking from the point of view of the
service providers and the tools developers, not from the perspective of Mark
who has to face the funding agencies).
The fact is that we want to use REST (in the near future) and not only SOAP,
we want to use Perl where SOAP is not that well supported, and we want the
solution for data by reference to be simple.
Therefore, I do not wish to be eaten (again) by the WSRF - unless my boss
(whoever it is or will be) forces me to do so, of course.
BTW, I like very much the Dmitry's definition of the REST ("a fancy name to
say we are going to send what ever we want without any standard"). I agree
with him - except that we are sending Moby message - which is not standard,
it is faulty, but it has worked relatively fine so far.
For being able to continue this discussion (about data by reference), I
suggest that we try to answer first whether we want to use only SOAP or
whether we are really heading to use REST, as well. My vote for this
question is: yes, we will want to have the REST services, as well.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From dmitry.repchevski at bsc.es Thu Jul 3 08:46:40 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 03 Jul 2008 10:46:40 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486c0227.07ec720a.5dc1.ffffd76a@mx.google.com>
References: <486c0227.07ec720a.5dc1.ffffd76a@mx.google.com>
Message-ID: <486C91F0.4000100@bsc.es>
>
> With all this talk about WSRF, SOAP, etc, what would happen with cgi (i.e.
> non moby/moby-async) services?
Interesting question... How do we implement all possible functionality
using all possible solutions... :-)
Here is my point of view:
1. "moby" service
It can work with "wsrf" pass by reference... it's up to the toolkit
to look into the header
Attachment (SwA). Just put your attachment outside the soap message
and find it somehow from the toolkit
2 "moby-async" service
The same as "moby", but also can return a reference (through wsrf) to
a particular moby object
3. "doc-literal" service
The same as "moby", but attachment would be MTOM (backward compatible
with SwA).
4. "doc-literal-async"
Also see no problem.
5. "soap", "cgi", "wsdl", "post" - what's this??? (sorry for ingnorance)
Best regards,
Dmitry
From machiel.jansen at sara.nl Thu Jul 3 09:13:14 2008
From: machiel.jansen at sara.nl (Machiel Jansen)
Date: Thu, 3 Jul 2008 11:13:14 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486C91F0.4000100@bsc.es>
References: <486c0227.07ec720a.5dc1.ffffd76a@mx.google.com>
<486C91F0.4000100@bsc.es>
Message-ID:
For all I know WSRF is already been surpassed by WS-RT. http://www.ibm.com/developerworks/grid/library/gr-wsrfwsrt/index.html?ca=drs-
There are quite a number of people who are disenchanted by WSRF. See http://blog.harbulot.com/post/2006/11/22/Experiences-with-WSRF for one example.
Machiel
> -----Original Message-----
> From: moby-dev-bounces at lists.open-bio.org [mailto:moby-dev-
> bounces at lists.open-bio.org] On Behalf Of Dmitry Repchevsky
> Sent: donderdag 3 juli 2008 10:47
> To: moby-dev at lists.open-bio.org
> Subject: Re: [MOBY-dev] data by reference - a request for comments
>
> >
> > With all this talk about WSRF, SOAP, etc, what would happen with cgi
> (i.e.
> > non moby/moby-async) services?
> Interesting question... How do we implement all possible functionality
> using all possible solutions... :-)
>
> Here is my point of view:
>
> 1. "moby" service
> It can work with "wsrf" pass by reference... it's up to the toolkit
> to look into the header
> Attachment (SwA). Just put your attachment outside the soap message
> and find it somehow from the toolkit
>
> 2 "moby-async" service
> The same as "moby", but also can return a reference (through wsrf)
> to
> a particular moby object
>
> 3. "doc-literal" service
> The same as "moby", but attachment would be MTOM (backward
> compatible
> with SwA).
>
> 4. "doc-literal-async"
> Also see no problem.
>
>
> 5. "soap", "cgi", "wsdl", "post" - what's this??? (sorry for ingnorance)
>
> Best regards,
>
> Dmitry
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
From dmitry.repchevski at bsc.es Thu Jul 3 09:20:32 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 03 Jul 2008 11:20:32 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807022111u4f65fe7ap851a997a23e230a8@mail.gmail.com>
References: <4d93f07c0807022111u4f65fe7ap851a997a23e230a8@mail.gmail.com>
Message-ID: <486C99E0.4040402@bsc.es>
Hello Martin,
So as far as I understand, the final battle is about Rest/Soap... So
let's use CORBA!!! (joke)
I am not the one that like all the standards (especially the
latest_and_greatest ones), but as a developer I recognize that we can
not compete against the whole industry. My usual position is to use
those standards that have a strong support in a Java world (of course I
am Java biased). So I see what we have from w3c, an then to JCP... I
don't want to implement them by myself... I am lazy...
With WSRF I had no other way, but implement a part of it. Here we have a
problem, because in distributed computations (and Moby is a kind of it)
Grid is very popular and so WSRF, but somehow Sun guys ignore it...
I understand SOAP and how it works... We can do all the things we need
just USING it.
Even current Moby message format can fit into it with XML Schema. My
moby implementation library doesn't parse moby message, but rather let
the standard Java library do it.
I am afraid we can not mix SOAP-WSRF approach with REST... Just because
the REST is not a technology, neither a protocol.
It's just a concept (and... IT IS STATELESS), so you can define your
protocol, but you will need to reinvent all the protocols... when a
resource should be destroyed? It reminds me the year 2000 when having
CORBA that worked just fine, someone said "It is complicated, let's
invent something simple"... Now we have SOAP with 4 different encodings
+ some 20 specifications + WSDL +... And all they do the same CORBA did
10 years ago...
Now people don't want SOAP because it is complicated so let's start
REST... OK, but I'd like to see the specification with
asynchrony/streaming based on REST concept.
What is why I love Java - There is no any Java specification without a
working implementation.
So, finally IMHO if we want to move out of SOAP we at least need to know
where we are moving...
Cheers,
Dmitry
From dmitry.repchevski at bsc.es Thu Jul 3 09:57:59 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Thu, 03 Jul 2008 11:57:59 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
Message-ID: <486CA2A7.4070702@bsc.es>
Hello,
> For all I know WSRF is already been surpassed by WS-RT. http://www.ibm.com/developerworks/grid/library/gr-wsrfwsrt/index.html?ca=drs-
> There are quite a number of people who are disenchanted by WSRF. See http://blog.harbulot.com/post/2006/11/22/Experiences-with-WSRF for one example.
>
> Machiel
This is what I am talking about... Martin has a reason we have had
enough problems with WSRF... now we have a "better" one (WSRT)...
But (!) There is an implementation? It looks like that this is a perfect
technology that exists in a paper...
Should we implement all the standards just to be able to use it? If IBM
claims to have a new/cool standard (by the way "standard" - who is
behind it?) but why can't I find (free) implementation of it?
It uses WS-Transfer has more sense to me because it can describe a way
to represent a moby object in moby message tree (for wsrf). and it is at
least w3s standard.
Claiming something to be a standard is always a bold claim...
Dmitry
From jflo at imim.es Tue Jul 8 11:42:04 2008
From: jflo at imim.es (Judith Flo)
Date: Tue, 08 Jul 2008 13:42:04 +0200
Subject: [MOBY-dev] strange behaviour
Message-ID: <4873528C.7070000@imim.es>
Hi,
Yesterday I changed one datatype (WeightedObject) to add another String
(Description). I unregistered the previous one and registered the new
one, same name, diferent structure.
Now the problem: when I try to compile the service, i get an error
telling me that the method that should set, this new attribute doesn't
exists. It is a very strange problem I've never seen before... The
curious is that Eclipse is not complaining and when I type object.set it
shows me as a possible operation to do, to set this atribute, but when I
try to compile it, just get:
[javac] Compiling 1 source file to
/home/judith/workspace3/services/WebContent/WEB-INF/classes
[javac]
/home/judith/workspace3/services/src/es/imim/cgl/runBlastXPImpl.java:76:
cannot find symbol
[javac] symbol : method set_Description(java.lang.String)
[javac] location: class org.biomoby.shared.datatypes.WeightedObject
[javac] w.set_Description("asdf");
[javac] ^
[javac] 1 error
Does someone know what's happening?
Of course I have regenerated the biomoby-datatypes.jar and now I check
that the new class exists and it contains this new atribute.
j
From jflo at imim.es Tue Jul 8 11:58:07 2008
From: jflo at imim.es (Judith Flo)
Date: Tue, 08 Jul 2008 13:58:07 +0200
Subject: [MOBY-dev] strange behaviour part 2
Message-ID: <4873564F.4020700@imim.es>
I also got this error on server side when trying to run some service
from dashboard:
AN ERROR OCCURED DURING THE SERVICE EXECUTION: Class
'org.biomoby.shared.datatypes.MapDataTypes' was not found.
It may indicate that you have not generated all Biomoby data types from
a Biomoby registry.
See http://www.biomoby.org/moby-live/Java/docs/Moses.html for details.
If you are a jMoby developer just type: ./build-dev.sh moses-datatypes.
Or perhaps, they just need to be compiled: ./build-dev.sh moses-compile.
From martin.senger at gmail.com Tue Jul 8 13:07:01 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 8 Jul 2008 08:07:01 -0500
Subject: [MOBY-dev] strange behaviour
In-Reply-To: <4873528C.7070000@imim.es>
References: <4873528C.7070000@imim.es>
Message-ID: <4d93f07c0807080607i402e659cy22532236854192d@mail.gmail.com>
> Yesterday I changed one datatype (WeightedObject) to add another String
> (Description). I unregistered the previous one and registered the new one,
> same name, diferent structure.
When changing an existing data type, the local cache should be updated. Or
newly created (reloading).
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From martin.senger at gmail.com Tue Jul 8 13:10:24 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 8 Jul 2008 08:10:24 -0500
Subject: [MOBY-dev] strange behaviour part 2
In-Reply-To: <4873564F.4020700@imim.es>
References: <4873564F.4020700@imim.es>
Message-ID: <4d93f07c0807080610p75acfcdaofc707d78abc1cb5a@mail.gmail.com>
> AN ERROR OCCURED DURING THE SERVICE EXECUTION: Class
> 'org.biomoby.shared.datatypes.MapDataTypes' was not found.
>
Look into your Tomcat's WEB-INF's lib directory and check what jar files you
have there, and if there are up-to-date.
> If you are a jMoby developer just type: ./build-dev.sh moses-datatypes.
>
Be aware that this message is a bit old (I have to update it in the code).
But you already know that you are using rather "ant moses-datatypes".
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From jflo at imim.es Tue Jul 8 14:51:14 2008
From: jflo at imim.es (Judith Flo)
Date: Tue, 08 Jul 2008 16:51:14 +0200
Subject: [MOBY-dev] strange behaviour part 2
In-Reply-To: <4d93f07c0807080610p75acfcdaofc707d78abc1cb5a@mail.gmail.com>
References: <4873564F.4020700@imim.es>
<4d93f07c0807080610p75acfcdaofc707d78abc1cb5a@mail.gmail.com>
Message-ID: <48737EE2.1010804@imim.es>
I've checked the lasts versions that are running (both in my machine and
the server) and the biomoby-datatypes.jar is the same (the last that I
generated with the object changed).
I did reload the cache before, I repeated now and it keeps complaining
about this new atribute/method.
I'll try to remove cache... maybe it'll help...
Any other idea?
j
Martin Senger wrote:
>> AN ERROR OCCURED DURING THE SERVICE EXECUTION: Class
>> 'org.biomoby.shared.datatypes.MapDataTypes' was not found.
>>
>>
>
> Look into your Tomcat's WEB-INF's lib directory and check what jar files you
> have there, and if there are up-to-date.
>
>
>
>> If you are a jMoby developer just type: ./build-dev.sh moses-datatypes.
>>
>>
>
> Be aware that this message is a bit old (I have to update it in the code).
> But you already know that you are using rather "ant moses-datatypes".
>
> Martin
>
>
From martin.senger at gmail.com Tue Jul 8 15:27:27 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 8 Jul 2008 10:27:27 -0500
Subject: [MOBY-dev] strange behaviour part 2
In-Reply-To: <48737EE2.1010804@imim.es>
References: <4873564F.4020700@imim.es>
<4d93f07c0807080610p75acfcdaofc707d78abc1cb5a@mail.gmail.com>
<48737EE2.1010804@imim.es>
Message-ID: <4d93f07c0807080827n1b63ef3yd4c8cfdc420983c6@mail.gmail.com>
> Any other idea?
Also restart yout Tomcat. Or, try your service "locally" (either from
Dashboard or from a command-line script) - if this works then the probelm is
in Tomcat.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Mon Jul 14 06:52:10 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Mon, 14 Jul 2008 08:52:10 +0200
Subject: [MOBY-dev] Problem with MobyNamespace.getNamespace
Message-ID: <487AF79A.30301@mpiz-koeln.mpg.de>
Hi,
I'm using the method MobyNamespace.getNamespace(String ns) in the jmoby
api to retrieve the MobyNamespace for a given string. Unfortunately this
method is not working anymore correctly. E.g. if i use PMID as input
(which is a namespace) i get null back from this method.
I tested it with PDB, AFAWE_ID, PMID and UniProt, which all are namespaces.
The java code I'm using is some weeks old and it worked as far as i know
for a long long time - why not now ?
If i call http://biomoby.org/RESSOURCES/MOBY-S/Namespaces i get the rdf
in which I do find e.g. PMID... but still the method above returns null.
any ideas ?
thx
andreas
From gordonp at ucalgary.ca Mon Jul 14 13:57:02 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Mon, 14 Jul 2008 07:57:02 -0600
Subject: [MOBY-dev] Problem with MobyNamespace.getNamespace
In-Reply-To: <487AF79A.30301@mpiz-koeln.mpg.de>
References: <487AF79A.30301@mpiz-koeln.mpg.de>
Message-ID: <487B5B2E.4030104@ucalgary.ca>
Hi Andreas,
I'll check it out and get back to you...
Andreas Groscurth wrote:
> Hi,
>
> I'm using the method MobyNamespace.getNamespace(String ns) in the
> jmoby api to retrieve the MobyNamespace for a given string.
> Unfortunately this method is not working anymore correctly. E.g. if i
> use PMID as input (which is a namespace) i get null back from this
> method.
>
> I tested it with PDB, AFAWE_ID, PMID and UniProt, which all are
> namespaces.
>
> The java code I'm using is some weeks old and it worked as far as i
> know for a long long time - why not now ?
>
> If i call http://biomoby.org/RESSOURCES/MOBY-S/Namespaces i get the
> rdf in which I do find e.g. PMID... but still the method above returns
> null.
>
> any ideas ?
>
> thx
> andreas
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
>
From groscurt at mpiz-koeln.mpg.de Tue Jul 15 11:56:17 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Tue, 15 Jul 2008 13:56:17 +0200
Subject: [MOBY-dev] findService and the hierarchy
Message-ID: <487C9061.3030203@mpiz-koeln.mpg.de>
Hi,
another question from my side...
I use the findService method in jmoby in CentralImpl. Due to the code
all calls end up in the method findService(MobyService service, String[]
keyword, boolean includeChildrenServiceType, boolean
includeParentDatatype).
I use the MobyDatatype Annotated_GO_Term which is a child of GO_Term. In
my opinion when searching for services consuming Annotated_GO_Term via
the findService method i should also include the service which consumes
a GO_Term datatype, as this is the parent datatype (per default
'includeParentDatatype' is true)....
what is wrong in this way to think ? because i do not find service with
datatype GO_Term ? and if the way i think is wrong - can you give me an
example how this parameter is used at all ?
Thanks
andreas
From gordonp at ucalgary.ca Wed Jul 16 20:43:02 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Wed, 16 Jul 2008 14:43:02 -0600
Subject: [MOBY-dev] Problem with MobyNamespace.getNamespace
In-Reply-To: <487AF79A.30301@mpiz-koeln.mpg.de>
References: <487AF79A.30301@mpiz-koeln.mpg.de>
Message-ID: <487E5D56.8050508@ucalgary.ca>
Hi Andreas,
I've updated MobyNamespace to use Eddie's new caching mechanism, and it
seems to work again. You'll ned to do a CVS update for the whole the
moby-live/Java/src/main directory. Please let me know if you have any
more trouble. I will be updating MobyDataType and MobyServiceType
similarly.
Regards,
Paul
Andreas Groscurth wrote:
> Hi,
>
> I'm using the method MobyNamespace.getNamespace(String ns) in the
> jmoby api to retrieve the MobyNamespace for a given string.
> Unfortunately this method is not working anymore correctly. E.g. if i
> use PMID as input (which is a namespace) i get null back from this
> method.
>
> I tested it with PDB, AFAWE_ID, PMID and UniProt, which all are
> namespaces.
>
> The java code I'm using is some weeks old and it worked as far as i
> know for a long long time - why not now ?
>
> If i call http://biomoby.org/RESSOURCES/MOBY-S/Namespaces i get the
> rdf in which I do find e.g. PMID... but still the method above returns
> null.
>
> any ideas ?
>
> thx
> andreas
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
>
From groscurt at mpiz-koeln.mpg.de Fri Jul 18 08:00:34 2008
From: groscurt at mpiz-koeln.mpg.de (groscurt)
Date: Fri, 18 Jul 2008 10:00:34 +0200
Subject: [MOBY-dev] Problem with MobyNamespace.getNamespace
In-Reply-To: <487E5D56.8050508@ucalgary.ca>
Message-ID:
Hi Paul
thanks for your effort, it does work now :)
Best
andreas
----------------original message-----------------
From: "Paul Gordon" gordonp at ucalgary.ca
To: "Core developer announcements" moby-dev at lists.open-bio.org
Date: Wed, 16 Jul 2008 14:43:02 -0600
-------------------------------------------------
> Hi Andreas,
>
> I've updated MobyNamespace to use Eddie's new caching mechanism, and it
> seems to work again. You'll ned to do a CVS update for the whole the
> moby-live/Java/src/main directory. Please let me know if you have any
> more trouble. I will be updating MobyDataType and MobyServiceType
> similarly.
>
> Regards,
>
> Paul
>
> Andreas Groscurth wrote:
>> Hi,
>>
>> I'm using the method MobyNamespace.getNamespace(String ns) in the
>> jmoby api to retrieve the MobyNamespace for a given string.
>> Unfortunately this method is not working anymore correctly. E.g. if i
>> use PMID as input (which is a namespace) i get null back from this
>> method.
>>
>> I tested it with PDB, AFAWE_ID, PMID and UniProt, which all are
>> namespaces.
>>
>> The java code I'm using is some weeks old and it worked as far as i
>> know for a long long time - why not now ?
>>
>> If i call http://biomoby.org/RESSOURCES/MOBY-S/Namespaces i get the
>> rdf in which I do find e.g. PMID... but still the method above returns
>> null.
>>
>> any ideas ?
>>
>> thx
>> andreas
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>>
>>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
From martin.senger at gmail.com Wed Jul 23 03:09:48 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Tue, 22 Jul 2008 20:09:48 -0700
Subject: [MOBY-dev] findService and the hierarchy
In-Reply-To: <487C9061.3030203@mpiz-koeln.mpg.de>
References: <487C9061.3030203@mpiz-koeln.mpg.de>
Message-ID: <4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
> In my opinion when searching for services consuming Annotated_GO_Term via
> the findService method i should also include the service which consumes a
> GO_Term datatype, as this is the parent datatype (per default
> 'includeParentDatatype' is true)....
>
I assume that by "I should also include" you actually meant "the registry
response should also include". Is my understanding correct?
If so, I am afraid that it is not the issue of the jMoby library but the
registry itself. Eddie or Mark can confirm or reject this hypothesis.
The BioMoby API allows to specify two XML tags when calling findService
method: the
X
and
X
Where X can be either 1 or 0.
The jMoby's findService() method sets these two tags according to the two
boolean parameters that the method can get:
boolean includeChildrenServiceTypes
and
boolean includeParentDataTypes
I have tried to call the findService, with the Annotated_GO_Term input,
using all combinations of these two tags (you can do it using the Moby
command-line client with the optioins -nc and/or -np). The results are
either no service or 713 services:
expandObjects expandServices # of found services
1 1 713
0 0 0
1 0 713
0 0 0
I have feeling that this is not a correct result. Could Eddie or Mark
perhaps comment on it?
[I vaguely remember that we had this conversation about these tags with Mark
years(!) ago - but I do not recall what was the conclusion. I only, and
again vaguely, remember to have this issue in my to-do list - which would
indicate that something could be done in the jMoby library.]
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Wed Jul 23 08:05:48 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Wed, 23 Jul 2008 10:05:48 +0200
Subject: [MOBY-dev] findService and the hierarchy
In-Reply-To: <4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
References: <487C9061.3030203@mpiz-koeln.mpg.de>
<4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
Message-ID: <4886E65C.5060205@mpiz-koeln.mpg.de>
Yes Martin you understood it - as always - perfectly correct :)
Thanks for the additional information
Martin Senger wrote:
>> In my opinion when searching for services consuming Annotated_GO_Term via
>> the findService method i should also include the service which consumes a
>> GO_Term datatype, as this is the parent datatype (per default
>> 'includeParentDatatype' is true)....
>>
>>
>
> I assume that by "I should also include" you actually meant "the registry
> response should also include". Is my understanding correct?
>
> If so, I am afraid that it is not the issue of the jMoby library but the
> registry itself. Eddie or Mark can confirm or reject this hypothesis.
>
> The BioMoby API allows to specify two XML tags when calling findService
> method: the
>
> X
> and
> X
>
> Where X can be either 1 or 0.
>
> The jMoby's findService() method sets these two tags according to the two
> boolean parameters that the method can get:
>
> boolean includeChildrenServiceTypes
> and
> boolean includeParentDataTypes
>
> I have tried to call the findService, with the Annotated_GO_Term input,
> using all combinations of these two tags (you can do it using the Moby
> command-line client with the optioins -nc and/or -np). The results are
> either no service or 713 services:
>
> expandObjects expandServices # of found services
> 1 1 713
> 0 0 0
> 1 0 713
> 0 0 0
>
> I have feeling that this is not a correct result. Could Eddie or Mark
> perhaps comment on it?
>
> [I vaguely remember that we had this conversation about these tags with Mark
> years(!) ago - but I do not recall what was the conclusion. I only, and
> again vaguely, remember to have this issue in my to-do list - which would
> indicate that something could be done in the jMoby library.]
>
> Cheers,
> Martin
>
>
From groscurt at mpiz-koeln.mpg.de Wed Jul 23 08:54:56 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Wed, 23 Jul 2008 10:54:56 +0200
Subject: [MOBY-dev] working with images
In-Reply-To:
References:
Message-ID: <4886F1E0.5020704@mpiz-koeln.mpg.de>
Hi,
i try to figure out how to transfer images via Web Service in moby....
E.g. i use the b64_encoded_jpeg. It has the children 'content' which
requires a String, so i need to somehow encode/decode the image file so
that it can be transmitted as a String and the client can read it as an
image (which is somehow done via MobyDataBytes)...
how to do that ?
thanks
Andreas
From Sebastien.Carrere at toulouse.inra.fr Wed Jul 23 09:10:04 2008
From: Sebastien.Carrere at toulouse.inra.fr (Sebastien Carrere)
Date: Wed, 23 Jul 2008 11:10:04 +0200
Subject: [MOBY-dev] working with images
In-Reply-To: <4886F1E0.5020704@mpiz-koeln.mpg.de>
References:
<4886F1E0.5020704@mpiz-koeln.mpg.de>
Message-ID: <4886F56C.4090100@toulouse.inra.fr>
Hi Andreas,
In my web services (written using PlayMoby , then Perl), I use the
module MIME::Base64
(http://search.cpan.org/~gaas/MIME-Base64-3.07/Base64.pm).
I just make a cat on my picture file, and encode the result in Base64,
then add it to my Moby String content.
Sebastien
Andreas Groscurth wrote:
> Hi,
>
> i try to figure out how to transfer images via Web Service in moby....
>
> E.g. i use the b64_encoded_jpeg. It has the children 'content' which
> requires a String, so i need to somehow encode/decode the image file
> so that it can be transmitted as a String and the client can read it
> as an image (which is somehow done via MobyDataBytes)...
>
> how to do that ?
>
> thanks
> Andreas
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Sebastien_Carrere.vcf
Type: text/x-vcard
Size: 387 bytes
Desc: not available
URL:
From martin.senger at gmail.com Wed Jul 23 09:22:19 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Wed, 23 Jul 2008 17:22:19 +0800
Subject: [MOBY-dev] working with images
In-Reply-To: <4886F1E0.5020704@mpiz-koeln.mpg.de>
References:
<4886F1E0.5020704@mpiz-koeln.mpg.de>
Message-ID: <4d93f07c0807230222l1586b9f1r37b0c9f05f326c38@mail.gmail.com>
> i try to figure out how to transfer images via Web Service in moby....
You can look for an example in the
org.biomoby.service.dashboard.renderers.Base64Image.java. This example does
opposite thing that you want, but it is still the same. I used there the
library coming with Axis (which is used by BioMoby anyway, so it is not an
additional dependency):
import org.apache.axis.encoding.Base64;
The example uses method decode() - and you need to use encode() (I guess).
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Wed Jul 23 09:36:25 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Wed, 23 Jul 2008 11:36:25 +0200
Subject: [MOBY-dev] working with images
In-Reply-To: <4886F56C.4090100@toulouse.inra.fr>
References: <4886F1E0.5020704@mpiz-koeln.mpg.de>
<4886F56C.4090100@toulouse.inra.fr>
Message-ID: <4886FB99.1080404@mpiz-koeln.mpg.de>
Hi,
thanks for that - i forgot to mention i'm looking for a java solution ;-)
but your hint of encode in Base64 made me google again and found the
apache.commons.codec and it works.
Thanks for the hint :)
Andreas
Sebastien Carrere wrote:
> Hi Andreas,
>
> In my web services (written using PlayMoby , then Perl), I use the
> module MIME::Base64
> (http://search.cpan.org/~gaas/MIME-Base64-3.07/Base64.pm).
>
> I just make a cat on my picture file, and encode the result in Base64,
> then add it to my Moby String content.
>
>
> Sebastien
>
>
>
>
>
> Andreas Groscurth wrote:
>> Hi,
>>
>> i try to figure out how to transfer images via Web Service in moby....
>>
>> E.g. i use the b64_encoded_jpeg. It has the children 'content' which
>> requires a String, so i need to somehow encode/decode the image file
>> so that it can be transmitted as a String and the client can read it
>> as an image (which is somehow done via MobyDataBytes)...
>>
>> how to do that ?
>>
>> thanks
>> Andreas
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
From martin.senger at gmail.com Wed Jul 23 09:35:32 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Wed, 23 Jul 2008 17:35:32 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
Message-ID: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
I have deployed (to Maven) the current jMoby as version 1.1.0.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From edward.kawas at gmail.com Wed Jul 23 12:54:08 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 23 Jul 2008 05:54:08 -0700
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
Message-ID: <488729f9.20f8720a.0551.0626@mx.google.com>
Hi Martin,
Does this update include org.biomoby.service.dashboard.* (the dashboard
components)?
Thanks,
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-23-08 2:36 AM
To: Core developer announcements
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
I have deployed (to Maven) the current jMoby as version 1.1.0.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From martin.senger at gmail.com Wed Jul 23 13:04:10 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Wed, 23 Jul 2008 21:04:10 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <488729f9.20f8720a.0551.0626@mx.google.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com>
Message-ID: <4d93f07c0807230604p664530ag2dda536268aaf8a1@mail.gmail.com>
> Does this update include org.biomoby.service.dashboard.* (the dashboard
> components)?
I have not changed anything regarding included packages - my intention was
simply to have the latest code available from maven (because we need it for
some projects). I am aware that you want to have some separation of packages
- for that we may make another release sooner or later.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From jmfernandez at cnio.es Wed Jul 23 13:04:02 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Wed, 23 Jul 2008 15:04:02 +0200
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <488729f9.20f8720a.0551.0626@mx.google.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com>
Message-ID: <48872C42.3060008@cnio.es>
Hi Eddie and Martin,
I have realized that there are two sets of jMoby artifacts. The first one
(biomoby.org maven group) is the used by taverna-biomoby plugin, meanwhile the
second one (org.biomoby maven group) is the officially provided by you.
So, which are the differences between them? The first one is already in
version 1.2, while the second one has just reached version 1.1.0.
Best Regards,
Jos? Mar?a
Edward Kawas wrote:
> Hi Martin,
>
> Does this update include org.biomoby.service.dashboard.* (the dashboard
> components)?
>
> Thanks,
>
> Eddie
>
> -----Original Message-----
> From: moby-dev-bounces at lists.open-bio.org
> [mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
> Sent: July-23-08 2:36 AM
> To: Core developer announcements
> Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
>
> I have deployed (to Maven) the current jMoby as version 1.1.0.
>
> Cheers,
> Martin
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From edward.kawas at gmail.com Wed Jul 23 13:13:19 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 23 Jul 2008 06:13:19 -0700
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <48872C42.3060008@cnio.es>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com> <488729f9.20f8720a.0551.0626@mx.google.com>
<48872C42.3060008@cnio.es>
Message-ID: <48872e78.16538c0a.696c.1560@mx.google.com>
Hi Jose Maria,
The version used by the taverna-biomoby plugin contains some extra classes.
Once these classes are available in the org.biomoby maven group, the
biomoby.org maven group will be wound down and the plugin will utilize the
official org.biomoby maven group.
Thanks,
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Jos? Mar?a
Fern?ndez Gonz?lez
Sent: July-23-08 6:04 AM
To: Core developer announcements
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
Hi Eddie and Martin,
I have realized that there are two sets of jMoby artifacts. The
first one
(biomoby.org maven group) is the used by taverna-biomoby plugin, meanwhile
the
second one (org.biomoby maven group) is the officially provided by you.
So, which are the differences between them? The first one is already
in
version 1.2, while the second one has just reached version 1.1.0.
Best Regards,
Jos? Mar?a
Edward Kawas wrote:
> Hi Martin,
>
> Does this update include org.biomoby.service.dashboard.* (the dashboard
> components)?
>
> Thanks,
>
> Eddie
>
> -----Original Message-----
> From: moby-dev-bounces at lists.open-bio.org
> [mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
> Sent: July-23-08 2:36 AM
> To: Core developer announcements
> Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
>
> I have deployed (to Maven) the current jMoby as version 1.1.0.
>
> Cheers,
> Martin
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los
ficheros adjuntos, pueden contener informaci?n protegida para el uso
exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o
cualquier otro tipo de transmisi?n por parte de otra persona que no sea el
destinatario. Si usted recibe por error este correo, se ruega comunicarlo al
remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may
contain confidential and privileged information for the sole use of the
designated recipient named above. Distribution, reproduction or any other
use of this transmission by any party other than the intended recipient is
prohibited. If you are not the intended recipient please contact the sender
and delete all copies.
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From pieter.neerincx at gmail.com Wed Jul 23 15:06:38 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Wed, 23 Jul 2008 17:06:38 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <486CA2A7.4070702@bsc.es>
References:
<486CA2A7.4070702@bsc.es>
Message-ID: <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
Hi,
> Martin Senger wrote:
> A service *can* obey such request and send one or more *primitive
> data* as references (the focus on primitive type is new, originaly
> we thought about allowing references on any level, but now, mainly
> becuse of the purpose B we do not propose it anymore).
That doesn't sound very appealing to me. I use quite large data
structures and can have tens of thousands of them in a collection
(think of oligos for micro arrays.) If I can only replace the
primitives with references, I would still have to send a BioMoby XML
structure with hundreds of thousands of references replacing the
primitives. A client or the next service in a workflow would have to
resolve all those references with each reference pointing to only a
relatively small amount of data. That would be a mess and just cause a
huge amount of overhead.
So, I would really love to see the ability to replace a complete
collection or even the entire mobyData block with a reference. Having
said that I really like the idea of purpose "B" too, where I can embed
a link to existing EMBL/Genbank/etc. records on EBI/NCBI/etc. servers.
The only risk would be that a client or the next service in a workflow
happily resolves those links as fast and efficient as it can causing
too much load on those servers. A colleague once managed to have our
entire campus disconnected from the NCBI with simple script resolving
PubMed URLs... it was really easy :). With references it's always
possible to reference something on someone else's servers, but with
purpose "B" it's more likely to happen.
> Martin Senger wrote:
> I do not like using the RDF for mandatory features. The RDF, at
> least in the
> current moby, is optional and should not carry anything that is
> significant
> for the service and its behaviour. The data by reference should be
> part of
> the main BioMoby API (or whatever we call it).
I agree with Martin partially on this one: pass by reference should be
part of the main BioMoby API and not something optional as it is
essential for successful client-service communication. But that
doesn't necessarily exclude using RDF. We could also promote the RDF
stuff from optional to required. I don't want to open a can of worms
here and I'm not advocating making the RDF features mandatory. I'm
just saying it might be an option...
> Dmitry Repchevski wrote:
> If we are going to stay with SOAP (and especially move to doc/lit)
> the right way is to provide streaming through SOAP Attachments (SwA)
> or even better using MTOM.
I don't think attachments of any kind would be a good idea. Although
theoretically a nice solution for streaming data and keeping
everything together, there are practical problems:
* Most firewalls block attachments over 5 MB in size. One of the great
things of web services compared to the good 'ol CORBA is that we can
tunnel over any protocol. So most of us use HTTP(S) to bypass our
institute's paranoid sys admins and skip the part where you'd have to
bug them to open up another firewall port. I'm not sure if this
problem persists with the newer MTOM, but it's disaster with MIME or
DIME attachments.
* I'm not sure about the newer MTOM, but the combination of SOAP and
MIME attachments is a disaster of you're using Perl. The required
modules are dying projects and you'd have to patch them manually to
make it work. If we would go with attachments we would either drop
Perl support for BioMoby or one of us would have to write a SOAP::Lite
+ MIME::tools alternative...
I agree with Dmitry that if we are going to stick with a standard it
has to be a de facto standard. Hence well supported by toolkits/
implementations. A standard that only exists on paper is useless. Most
of us want to build or use BioMoby services and are not that much
interested in writing toolkits. I never managed to become a big WSRF
fan. It's needlessly complicated causing lot's of overhead.
Actually I like what Mark wrote initially most:
> We'll write-up the formal specification of how to do this soon, but
> briefly the idea is that we will use the xlink XML attribute in a
> Moby Object XML <.... xlink=''/>. When that tag is present, it is
> assumed that the content of that node is available at the URI in
> that reference. During service registration a provider will
> indicate the various transport protocols they provide for creating
> references (e.g. http, ftp) and this will be discoverable during a
> registry query. If you don't indicate a protocol, then you are
> saying that you do not support pass-by-reference, and therefore all
> existing services are supported. When accessing a service, you
> indicate to the service provider that you want data to be passed by
> reference by adding an attribute in the mobyData block acceptRefs="http ftp">. The service provider then has the option of
> providing you references for any data they wish. The xlink
> attribute can appear at any level in your Moby object, such that
> some data may be passed in the object itself, while other data from
> the same object may be passed by reference.
For the BioMoby data structures this only requires allowing an
optional xlink attribute and acceptRefs in the request from the
client. Maybe it's nicer to have acceptRefs as a child element of
mobyData or maybe at another level in the XML, but not as an
attribute, because attributes are intended for single items. In the
example above acceptRefs contains a space separated list and off
course we can parse that, but it's ugly XML. Anyway, what Mark wrote
above is very flexible, light-weight and relatively backwards
compatible. If I can choose between a simple <... xlink=""> attribute
or the bulky WSA header from Dmitry's example like in:
http://myserver.com/MyService?asyncId=ID
wsa:Address>
ID
mobyws:result_queryId00/image/jpeg/content
I'd choose the xlink attribute!
Cheers,
Pi
On 3?Jul?2008, at 11:57 AM, Dmitry Repchevsky wrote:
> Hello,
>
>> For all I know WSRF is already been surpassed by WS-RT. http://www.ibm.com/developerworks/grid/library/gr-wsrfwsrt/index.html?ca=drs-
>> There are quite a number of people who are disenchanted by WSRF.
>> See http://blog.harbulot.com/post/2006/11/22/Experiences-with-WSRF
>> for one example.
>>
>> Machiel
> This is what I am talking about... Martin has a reason we have had
> enough problems with WSRF... now we have a "better" one (WSRT)...
> But (!) There is an implementation? It looks like that this is a
> perfect technology that exists in a paper...
> Should we implement all the standards just to be able to use it? If
> IBM claims to have a new/cool standard (by the way "standard" - who
> is behind it?) but why can't I find (free) implementation of it?
>
> It uses WS-Transfer has more sense to me because it can describe a
> way to represent a moby object in moby message tree (for wsrf). and
> it is at least w3s standard.
> Claiming something to be a standard is always a bold claim...
>
> Dmitry
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
------------------------------------------------------------
From markw at illuminae.com Wed Jul 23 16:55:06 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Wed, 23 Jul 2008 09:55:06 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
Message-ID:
On Wed, 23 Jul 2008 08:06:38 -0700, Pieter Neerincx
wrote:
> That doesn't sound very appealing to me. I use quite large data
> structures and can have tens of thousands of them in a collection (think
> of oligos for micro arrays.) If I can only replace the primitives with
> references, I would still have to send a BioMoby XML structure with
> hundreds of thousands of references replacing the primitives.
Hmmm... that's a situation that we had NEVER considered! Putting xlinks
into a component of the Moby message higher than the mobyData block was
not a scenario that came up during our discussions in Tokyo. the xlink
was really only intended to carry data, not data + moby message
structure... but I suppose it COULD!
How do others feel about this?
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
From jmfernandez at cnio.es Wed Jul 23 17:47:54 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Wed, 23 Jul 2008 19:47:54 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
Message-ID: <48876ECA.1040109@cnio.es>
IMHO it can be dangerous for the MOBY payload integrity using XInclude at
mobyContent childs (mobyData) level, but it can be needed in scenarios like
the one described by Pieter. For security reasons, XInclude / XLink / XPointer
should be restricted to the contents of mobyData, not to MOBY Data itself. For
instance, references to Simples or Collections, Collections composed by a
mixure of Simples and references to Simples, or Secondary parameters copied
from run to run.
Best Regards,
Jos? Mar?a
Mark Wilkinson wrote:
> On Wed, 23 Jul 2008 08:06:38 -0700, Pieter Neerincx
> wrote:
>
>
>> That doesn't sound very appealing to me. I use quite large data
>> structures and can have tens of thousands of them in a collection
>> (think of oligos for micro arrays.) If I can only replace the
>> primitives with references, I would still have to send a BioMoby XML
>> structure with hundreds of thousands of references replacing the
>> primitives.
>
> Hmmm... that's a situation that we had NEVER considered! Putting xlinks
> into a component of the Moby message higher than the mobyData block was
> not a scenario that came up during our discussions in Tokyo. the xlink
> was really only intended to carry data, not data + moby message
> structure... but I suppose it COULD!
>
> How do others feel about this?
>
> M
>
>
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From gordonp at ucalgary.ca Wed Jul 23 18:45:39 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Wed, 23 Jul 2008 12:45:39 -0600
Subject: [MOBY-dev] working with images
In-Reply-To: <4886FB99.1080404@mpiz-koeln.mpg.de>
References: <4886F1E0.5020704@mpiz-koeln.mpg.de> <4886F56C.4090100@toulouse.inra.fr>
<4886FB99.1080404@mpiz-koeln.mpg.de>
Message-ID: <48877C53.7010101@ucalgary.ca>
Hi Andreas,
If you're using the org.biomoby.shared.data package, there is a class
specifically for handling binary data:
http://biomoby.open-bio.org/CVS_CONTENT/moby-live/Java/docs/API/org/biomoby/shared/data/MobyDataBytes.html
Andreas Groscurth wrote:
> Hi,
>
> thanks for that - i forgot to mention i'm looking for a java solution ;-)
> but your hint of encode in Base64 made me google again and found the
> apache.commons.codec and it works.
>
> Thanks for the hint :)
> Andreas
>
> Sebastien Carrere wrote:
>> Hi Andreas,
>>
>> In my web services (written using PlayMoby , then Perl), I use the
>> module MIME::Base64
>> (http://search.cpan.org/~gaas/MIME-Base64-3.07/Base64.pm).
>>
>> I just make a cat on my picture file, and encode the result in
>> Base64, then add it to my Moby String content.
>>
>>
>> Sebastien
>>
>>
>>
>>
>>
>> Andreas Groscurth wrote:
>>> Hi,
>>>
>>> i try to figure out how to transfer images via Web Service in moby....
>>>
>>> E.g. i use the b64_encoded_jpeg. It has the children 'content' which
>>> requires a String, so i need to somehow encode/decode the image file
>>> so that it can be transmitted as a String and the client can read
>>> it as an image (which is somehow done via MobyDataBytes)...
>>>
>>> how to do that ?
>>>
>>> thanks
>>> Andreas
>>> _______________________________________________
>>> MOBY-dev mailing list
>>> MOBY-dev at lists.open-bio.org
>>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>>
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>>
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> !DSPAM:60005,4886f8b9109503161834!
>
>
>
From pieter.neerincx at gmail.com Wed Jul 23 23:48:03 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Thu, 24 Jul 2008 01:48:03 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <48876ECA.1040109@cnio.es>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
Message-ID: <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
Hi Jos?,
I don't understand how references could be security risk. And if they
do why the level at which you could use them would impact security.
Could you please explain?
If references to mobyData blocks are not an option having at least
references to BioMoby articles would already be a big help.
Secondaries are usually very small so I wouldn't need / use references
there, but for primary Simple and especially for primary Collection
articles it would be a big plus!
Cheers,
Pi
On 23 Jul 2008, at 19:47, Jos? Mar?a Fern?ndez Gonz?lez wrote:
> IMHO it can be dangerous for the MOBY payload integrity using
> XInclude at mobyContent childs (mobyData) level, but it can be
> needed in scenarios like the one described by Pieter. For security
> reasons, XInclude / XLink / XPointer should be restricted to the
> contents of mobyData, not to MOBY Data itself. For instance,
> references to Simples or Collections, Collections composed by a
> mixure of Simples and references to Simples, or Secondary parameters
> copied from run to run.
>
> Best Regards,
> Jos? Mar?a
>
> Mark Wilkinson wrote:
>> On Wed, 23 Jul 2008 08:06:38 -0700, Pieter Neerincx > > wrote:
>>> That doesn't sound very appealing to me. I use quite large data
>>> structures and can have tens of thousands of them in a collection
>>> (think of oligos for micro arrays.) If I can only replace the
>>> primitives with references, I would still have to send a BioMoby
>>> XML structure with hundreds of thousands of references replacing
>>> the primitives.
>> Hmmm... that's a situation that we had NEVER considered! Putting
>> xlinks into a component of the Moby message higher than the
>> mobyData block was not a scenario that came up during our
>> discussions in Tokyo. the xlink was really only intended to carry
>> data, not data + moby message structure... but I suppose it COULD!
>> How do others feel about this?
>> M
>
> --
> "There is no reason why anybody would want a computer in their home" -
> Ken Olson, founder of DEC 1977
> "640K ought to be enough for anybody" - Bill Gates, 1981
> "Nobody will ever outgrow a 20Mb hard drive." - ???
>
> "Premature optimization is the root of all evil." - Donald Knuth
>
> Jos? Mar?a Fern?ndez Gonz?lez
> Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
> e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
> Unidad del Instituto Nacional de Bioinform?tica
> Biolog?a Estructural y Biocomputaci?n Structural Biology and
> Biocomputing
> Centro Nacional de Investigaciones Oncol?gicas
> C.P.: 28029 Zip Code: 28029
> C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
>
> **NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso
> los ficheros adjuntos, pueden contener informaci?n protegida para el
> uso exclusivo de su destinatario. Se proh?be la distribuci?n,
> reproducci?n o cualquier otro tipo de transmisi?n por parte de otra
> persona que no sea el destinatario. Si usted recibe por error este
> correo, se ruega comunicarlo al remitente y borrar el mensaje
> recibido.
> **CONFIDENTIALITY NOTICE** This email communication and any
> attachments may contain confidential and privileged information for
> the sole use of the designated recipient named above. Distribution,
> reproduction or any other use of this transmission by any party
> other than the intended recipient is prohibited. If you are not the
> intended recipient please contact the sender and delete all copies.
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
-------------------------------------------------------------
From martin.senger at gmail.com Thu Jul 24 00:41:35 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Thu, 24 Jul 2008 08:41:35 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <48872C42.3060008@cnio.es>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com> <48872C42.3060008@cnio.es>
Message-ID: <4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
> I have realized that there are two sets of jMoby artifacts.
I can't see them. Where should I look?
The official jMoby Maven representation is in
http://biomoby.org/m2repo/org/biomoby/jmoby/ and its headers are:
org.biomoby
jmoby
1.1.0
There is also a Taverna-related artifact, here:
http://biomoby.org/m2repo/org/biomoby/taverna-for-moby/. But it may be too
old and obsolete (version 2004). This one has, indeed, a different group ID
(biomoby.org) which is a bit unfortunate (because it is confusing).
Anything I should change?
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From edward.kawas at gmail.com Thu Jul 24 00:47:45 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 23 Jul 2008 17:47:45 -0700
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com> <488729f9.20f8720a.0551.0626@mx.google.com>
<48872C42.3060008@cnio.es>
<4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
Message-ID: <4887d13d.02578c0a.4963.ffffe502@mx.google.com>
Hey Martin,
The one that Jose Maria is referring to is the one on
http://moby.ucalgary.ca/moby_maven/biomoby/org/
That was the one that I was using for the taverna-biomoby plugin.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-23-08 5:42 PM
To: Core developer announcements
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
> I have realized that there are two sets of jMoby artifacts.
I can't see them. Where should I look?
The official jMoby Maven representation is in
http://biomoby.org/m2repo/org/biomoby/jmoby/ and its headers are:
org.biomoby
jmoby
1.1.0
There is also a Taverna-related artifact, here:
http://biomoby.org/m2repo/org/biomoby/taverna-for-moby/. But it may be too
old and obsolete (version 2004). This one has, indeed, a different group ID
(biomoby.org) which is a bit unfortunate (because it is confusing).
Anything I should change?
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From martin.senger at gmail.com Thu Jul 24 00:58:02 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Thu, 24 Jul 2008 08:58:02 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4887d13d.02578c0a.4963.ffffe502@mx.google.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com> <48872C42.3060008@cnio.es>
<4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
<4887d13d.02578c0a.4963.ffffe502@mx.google.com>
Message-ID: <4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com>
>
> The one that Jose Maria is referring to is the one on
> http://moby.ucalgary.ca/moby_maven/biomoby/org/
>
> That was the one that I was using for the taverna-biomoby plugin.
Okay, splendid. Why always must we two, Paul and I, have things
differently/separately? Or perhaps it was not Paul who created this
repository...
We should use one Maven repository that was created for us at open-bio
servers. At least, that is where I am putting jMoby releases. The
taverna-plugin should be there, as well (my opinion).
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From edward.kawas at gmail.com Thu Jul 24 01:01:34 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 23 Jul 2008 18:01:34 -0700
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com> <488729f9.20f8720a.0551.0626@mx.google.com>
<48872C42.3060008@cnio.es> <4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com> <4887d13d.02578c0a.4963.ffffe502@mx.google.com>
<4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com>
Message-ID: <4887d47a.08b38c0a.380d.fffff846@mx.google.com>
Hey Martin,
Shoot me ;-)
That repository was created by me when taverna moved over to supporting
maven as a way for me to update the core jmoby code that the plugin uses.
Like I said previously, I want to kill that ucalgary repository once the
current one has the code that I need.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-23-08 5:58 PM
To: Core developer announcements
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
>
> The one that Jose Maria is referring to is the one on
> http://moby.ucalgary.ca/moby_maven/biomoby/org/
>
> That was the one that I was using for the taverna-biomoby plugin.
Okay, splendid. Why always must we two, Paul and I, have things
differently/separately? Or perhaps it was not Paul who created this
repository...
We should use one Maven repository that was created for us at open-bio
servers. At least, that is where I am putting jMoby releases. The
taverna-plugin should be there, as well (my opinion).
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From markw at illuminae.com Thu Jul 24 01:04:31 2008
From: markw at illuminae.com (markw at illuminae.com)
Date: Thu, 24 Jul 2008 01:04:31 +0000
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <4887d47a.08b38c0a.380d.fffff846@mx.google.com>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com> <488729f9.20f8720a.0551.0626@mx.google.com><48872C42.3060008@cnio.es> <4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com> <4887d13d.02578c0a.4963.ffffe502@mx.google.com><4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com><4887d47a.08b38c0a.380d.fffff846@mx.google.com>
Message-ID: <2124445639-1216861474-cardhu_decombobulator_blackberry.rim.net-1399312485-@bxe175.bisx.prod.on.blackberry>
Eddie, be careful! Martin might just take you up on the offer! He isn't always as sweet and gentle as he is when he's in the beautiful city of Vancouver! LOL!
We love you Martin :-)
M
On the Road!
-----Original Message-----
From: "Edward Kawas"
Date: Wed, 23 Jul 2008 18:01:34
To: 'Core developer announcements'
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
Hey Martin,
Shoot me ;-)
That repository was created by me when taverna moved over to supporting
maven as a way for me to update the core jmoby code that the plugin uses.
Like I said previously, I want to kill that ucalgary repository once the
current one has the code that I need.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-23-08 5:58 PM
To: Core developer announcements
Subject: Re: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
>
> The one that Jose Maria is referring to is the one on
> http://moby.ucalgary.ca/moby_maven/biomoby/org/
>
> That was the one that I was using for the taverna-biomoby plugin.
Okay, splendid. Why always must we two, Paul and I, have things
differently/separately? Or perhaps it was not Paul who created this
repository...
We should use one Maven repository that was created for us at open-bio
servers. At least, that is where I am putting jMoby releases. The
taverna-plugin should be there, as well (my opinion).
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From martin.senger at gmail.com Thu Jul 24 01:35:59 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Thu, 24 Jul 2008 09:35:59 +0800
Subject: [MOBY-dev] jMoby - version 1.1.0 deployed to Maven
In-Reply-To: <2124445639-1216861474-cardhu_decombobulator_blackberry.rim.net-1399312485-@bxe175.bisx.prod.on.blackberry>
References: <4d93f07c0807230235t2f10f43aq9776c1f613680436@mail.gmail.com>
<488729f9.20f8720a.0551.0626@mx.google.com> <48872C42.3060008@cnio.es>
<4d93f07c0807231741l60d97d6dyf0ccf7d5d53f5462@mail.gmail.com>
<4887d13d.02578c0a.4963.ffffe502@mx.google.com>
<4d93f07c0807231758n6f82f337o2cf7d5ced2d60a76@mail.gmail.com>
<4887d47a.08b38c0a.380d.fffff846@mx.google.com>
<2124445639-1216861474-cardhu_decombobulator_blackberry.rim.net-1399312485-@bxe175.bisx.prod.on.blackberry>
Message-ID: <4d93f07c0807231835y3b9457d2q65728de32d7b6c17@mail.gmail.com>
:-) - I promise: no shooting!
Thanks for all clarification (and, BTW, thanks for wonderful days in
Vancouver, I really, really, enjoyed it).
Cheers,
Martin
PS. Eddie, let me know if you need any assistance with the [re]packaging of
the jMoby libraries. M.
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From jmfernandez at cnio.es Thu Jul 24 13:34:05 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Thu, 24 Jul 2008 15:34:05 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
Message-ID: <488884CD.9030403@cnio.es>
Hi Pieter,
I agree with you about the references to primary Simple and Collection
articles: they are absolutely needed. References to Secondary parameters can
be needed to copy/use the same values in other calls. I am not strongly
against references to full mobyData elements, but they should be considered
and used very carefully, because they can add more mobyData elements than you
wanted, and you cannot check duplicity of queryIds until all the referenced
mobyData elements are fetched.
With an ill-designed service (or libraries) and a carefully built XInclude
reference, with no checks local contents (from the computer or the intranet)
could be referenced and perhaps obtained. With an even more ill-designed
service (or libraries) and a carefully built XInclude reference, an external
hacker could fire OOM (Out Of Memory) or buffer overflow conditions.
Best Regards,
Jos? Mar?a
Pieter Neerincx wrote:
> Hi Jos?,
>
> I don't understand how references could be security risk. And if they do
> why the level at which you could use them would impact security. Could
> you please explain?
>
> If references to mobyData blocks are not an option having at least
> references to BioMoby articles would already be a big help. Secondaries
> are usually very small so I wouldn't need / use references there, but
> for primary Simple and especially for primary Collection articles it
> would be a big plus!
>
> Cheers,
>
> Pi
>
> On 23 Jul 2008, at 19:47, Jos? Mar?a Fern?ndez Gonz?lez wrote:
>
>> IMHO it can be dangerous for the MOBY payload integrity using XInclude
>> at mobyContent childs (mobyData) level, but it can be needed in
>> scenarios like the one described by Pieter. For security reasons,
>> XInclude / XLink / XPointer should be restricted to the contents of
>> mobyData, not to MOBY Data itself. For instance, references to Simples
>> or Collections, Collections composed by a mixure of Simples and
>> references to Simples, or Secondary parameters copied from run to run.
>>
>> Best Regards,
>> Jos? Mar?a
>>
>> Mark Wilkinson wrote:
>>> On Wed, 23 Jul 2008 08:06:38 -0700, Pieter Neerincx
>>> wrote:
>>>> That doesn't sound very appealing to me. I use quite large data
>>>> structures and can have tens of thousands of them in a collection
>>>> (think of oligos for micro arrays.) If I can only replace the
>>>> primitives with references, I would still have to send a BioMoby XML
>>>> structure with hundreds of thousands of references replacing the
>>>> primitives.
>>> Hmmm... that's a situation that we had NEVER considered! Putting
>>> xlinks into a component of the Moby message higher than the mobyData
>>> block was not a scenario that came up during our discussions in
>>> Tokyo. the xlink was really only intended to carry data, not data +
>>> moby message structure... but I suppose it COULD!
>>> How do others feel about this?
>>> M
>>
>> --
>> "There is no reason why anybody would want a computer in their home" -
>> Ken Olson, founder of DEC 1977
>> "640K ought to be enough for anybody" - Bill Gates, 1981
>> "Nobody will ever outgrow a 20Mb hard drive." - ???
>>
>> "Premature optimization is the root of all evil." - Donald Knuth
>>
>> Jos? Mar?a Fern?ndez Gonz?lez
>> Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
>> e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
>> Unidad del Instituto Nacional de Bioinform?tica
>> Biolog?a Estructural y Biocomputaci?n Structural Biology and
>> Biocomputing
>> Centro Nacional de Investigaciones Oncol?gicas
>> C.P.: 28029 Zip Code: 28029
>> C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
>>
>> **NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los
>> ficheros adjuntos, pueden contener informaci?n protegida para el uso
>> exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n
>> o cualquier otro tipo de transmisi?n por parte de otra persona que no
>> sea el destinatario. Si usted recibe por error este correo, se ruega
>> comunicarlo al remitente y borrar el mensaje recibido.
>> **CONFIDENTIALITY NOTICE** This email communication and any
>> attachments may contain confidential and privileged information for
>> the sole use of the designated recipient named above. Distribution,
>> reproduction or any other use of this transmission by any party other
>> than the intended recipient is prohibited. If you are not the intended
>> recipient please contact the sender and delete all copies.
>>
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> -------------------------------------------------------------
> Wageningen University and Research centre (WUR)
> Laboratory of Bioinformatics
> Transitorium (building 312) room 1034
>
> Dreijenlaan 3
> 6703 HA Wageningen
> The Netherlands
>
> phone: +31 (0)317-483 060
> mobile: +31 (0)6-143 66 783
> e-mail: pieter.neerincx at gmail.com
> skype: pieter.online
> -------------------------------------------------------------
>
>
>
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From martin.senger at gmail.com Fri Jul 25 00:06:03 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 25 Jul 2008 08:06:03 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488884CD.9030403@cnio.es>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
Message-ID: <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
Thank you for all your comments. We need to move on, however. I am, almost
impatiently, waiting for a conclusion because I need to implement the
"data-by-reference" rather soon. Are there other people preparing/building
their comments - so we should wait for them, or can I summarize what was
said so far - and create an official "RFC" from it?
My personal opinion is still on the side to have references only for
primitives. I am not convinced by the Peter's vision of a huge collection
that is too big even when it uses references. I am simply trying to find a
solution that will be good for the most cases - and then deal with the
marginal cases separately (like by designing the service differently).
I would like to hear also Eddie's voice - because he knows how easy or hard
it would be to make the way we decide to do the "data-by-reference" in
Taverna (and I am still talking about the T1 which I expect to be supported
for some time).
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Fri Jul 25 09:25:31 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Fri, 25 Jul 2008 11:25:31 +0200
Subject: [MOBY-dev] findService and the hierarchy
In-Reply-To: <4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
References: <487C9061.3030203@mpiz-koeln.mpg.de>
<4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
Message-ID: <48899C0B.70408@mpiz-koeln.mpg.de>
i like to bring this up for discussion again ;-)
thanks
Martin Senger wrote:
>> In my opinion when searching for services consuming Annotated_GO_Term via
>> the findService method i should also include the service which consumes a
>> GO_Term datatype, as this is the parent datatype (per default
>> 'includeParentDatatype' is true)....
>>
>>
>
> I assume that by "I should also include" you actually meant "the registry
> response should also include". Is my understanding correct?
>
> If so, I am afraid that it is not the issue of the jMoby library but the
> registry itself. Eddie or Mark can confirm or reject this hypothesis.
>
> The BioMoby API allows to specify two XML tags when calling findService
> method: the
>
> X
> and
> X
>
> Where X can be either 1 or 0.
>
> The jMoby's findService() method sets these two tags according to the two
> boolean parameters that the method can get:
>
> boolean includeChildrenServiceTypes
> and
> boolean includeParentDataTypes
>
> I have tried to call the findService, with the Annotated_GO_Term input,
> using all combinations of these two tags (you can do it using the Moby
> command-line client with the optioins -nc and/or -np). The results are
> either no service or 713 services:
>
> expandObjects expandServices # of found services
> 1 1 713
> 0 0 0
> 1 0 713
> 0 0 0
>
> I have feeling that this is not a correct result. Could Eddie or Mark
> perhaps comment on it?
>
> [I vaguely remember that we had this conversation about these tags with Mark
> years(!) ago - but I do not recall what was the conclusion. I only, and
> again vaguely, remember to have this issue in my to-do list - which would
> indicate that something could be done in the jMoby library.]
>
> Cheers,
> Martin
>
>
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From martin.senger at gmail.com Fri Jul 25 09:34:15 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 25 Jul 2008 17:34:15 +0800
Subject: [MOBY-dev] findService and the hierarchy
In-Reply-To: <48899C0B.70408@mpiz-koeln.mpg.de>
References: <487C9061.3030203@mpiz-koeln.mpg.de>
<4d93f07c0807222009x7c108d25j52930dae4f9ddaf1@mail.gmail.com>
<48899C0B.70408@mpiz-koeln.mpg.de>
Message-ID: <4d93f07c0807250234h53e049bv9b97edecbd0865e3@mail.gmail.com>
> i like to bring this up for discussion again ;-)
Well, let's not discuss it but let's look what we are getting back from the
registry when different values are given for expandObjects and
expandService. I posted my results - now it is up to Eddie or Mark to draw
conclusion from that results... :-)
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From pieter.neerincx at gmail.com Fri Jul 25 10:50:12 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Fri, 25 Jul 2008 12:50:12 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
Message-ID: <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
Hi Martin at al.,
On 25?Jul?2008, at 2:06 AM, Martin Senger wrote:
> Thank you for all your comments. We need to move on, however. I am,
> almost
> impatiently, waiting for a conclusion because I need to implement the
> "data-by-reference" rather soon. Are there other people preparing/
> building
> their comments - so we should wait for them, or can I summarize what
> was
> said so far - and create an official "RFC" from it?
>
> My personal opinion is still on the side to have references only for
> primitives. I am not convinced by the Pieter's vision of a huge
> collection
> that is too big even when it uses references. I am simply trying to
> find a
> solution that will be good for the most cases - and then deal with the
> marginal cases separately (like by designing the service differently).
Well, especially if you want to have a solution that works in most
cases, I think we should have pass-by-reference at *any* level in
mobyData. How often will the data of a single primitive be too large
for inclusion in the SOAP body? I can imagine wrapping legacy data
formats like a complete EMBL/Genbank/DDBJ record in a String object or
sending images as base 64 encoded pieces of text in a String object.
Maybe even sending a bulky sequence like a complete chromosome inside
a String object, but in most cases the raw data carried by a primitive
will be smaller than your average URL! And even if you do send some
bulky stuff inside a String object as long as you send only one of
those at a time it'll still work in most cases. But once you start to
send tens, hundreds or more of those you have a problem. If you still
send around tens, hundreds or more URLs, you'd have to fetch each one
individually causing massive overhead. The reason to implement pass-by-
reference is to make BioMoby scale much better for big jobs and in
such cases fetching data from a single reference is much more efficient.
Take for example position information of alignments on a genome:
13
97419218
97419282
65M
With pass-by-reference only for primitives this would become something
like this:
That ain't much of an improvement!
I have on average 30.000 features on a micro array and for each oligo
on average 3 hits on a reference assembly. That makes for an average
total of 90.000 HitPosition objects and that is just a small part of
the annotation for my oligos....
Just to stress that these are not hypothetical cases: The stuff above
is just a single example of what I'm already using for more than two
years. Off course I needed a pass by reference workaround, because the
data is too big for the SOAP body. So I registered an URL object and
send those around. These URL objects point to chunks of BioMoby XML
which is a complete mobyData block in most cases. Although the URL
obeject is fully compatible with the current BioMoby standard, it's an
ugly solution because of two reasons:
1. It's not a standard to do pass-by-reference.
2. It defeats the entire purpose of having the BioMoby object ontology
to improve automatic service discovery. You can only discover that I
provide several services which consume or produce URL objects, but you
can not discover automatically what those URLs point to, so most of
the URL object producers and consumers will be incompatible! (Ok, I
can use namespace restriction to limit the problem of incompatible
services a bit, but still you would have no idea what the URL points
to based on the data in BioMoby Central.)
So I would love to see standardised pass-by-reference as part of the
BioMoby specs and I think it doesn't require rocket science to do this
at any level in the structure of BioMoby objects. Why don't we simply
do the following:
Current situation:
A BioMoby object is a BioMoby tripple with optional articleName
attribute and optionally raw character data for primitives. The
tripple is the XML element name, an id attribute and a namespace
attribute.
New situation:
The above + The id and namespace attributes of a BioMoby tripple can
be replaced with an xlink attribute resulting in a "BioMoby double".
If the latter is the case the element containing the xlink attribute
and all it's children are available from link specified by the xlink
attribute.
Example old:
ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
4569343
Example with pass-by-reference:
which points to:
ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
4569343
Hence note that the link points to a ComplexObject and not just to
it's children. The latter would also be an option but than you would
get:
which points to:
ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
4569343
If you have more than one child element like with the example above,
some XML parsers might have problems with such a chunk. Although it is
well balanced, it doesn't have a (pseudo-)root element. So for
practical reasons I suggest to have the links point to the element
containing the xlink attribute and it's children. This should be
really easy to parse. You either have an id + namespace attribute or
you have an xlink attribute. If both were not present the values were
NULL. This doesn't require parsing dozens of WSRF tags in a header. It
even doesn't require a service to tell the client using the
serviceNotes or something similar that it did pass-by-reference of
some kind nor does it require the client to specify that it can
understand certain references. Off course it would be handy though to
have some extension to BioMoby Central to prevent discovering services
providing references which are incompatible with your client.
Secondly, if a service can provide multiple types of references and
your client doesn't understand them all, it would also be nice if a
client can specify a preference for a certain type of reference. But
both wouldn't be required for a first quick implementation of pass-by-
reference.
> I would like to hear also Eddie's voice - because he knows how easy
> or hard
> it would be to make the way we decide to do the "data-by-reference" in
> Taverna (and I am still talking about the T1 which I expect to be
> supported
> for some time).
I agree we need Eddie's feedback on Taverna compatibility!
Compatibility with Taverna 1 would be great, but it would be extremely
lame if our BioMoby references turn out to be incompatible with the
new pass-by-reference feature of Taverna 2.
I hope you see the potential for improving scalability of BioMoby
services with pass-by-reference at any level of mobyData!
Cheers,
Pi
> Martin
>
> --
> Martin Senger
> email: martin.senger at gmail.com,m.senger at cgiar.org
> skype: martinsenger
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
------------------------------------------------------------
From martin.senger at gmail.com Fri Jul 25 11:14:01 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 25 Jul 2008 19:14:01 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
Message-ID: <4d93f07c0807250414q1d456695ld65cd3d5a6daa63@mail.gmail.com>
Pieter, thanks! Your reply was very good, and convincing! I like the most
the fact that you are driven by a real use case, and a long one, lasting
already for two years.
I had in mind other use cases, but now I agree that Pieter's point of view
is better. I will read his email once again, just to be sure that I have not
missed something.
Are we closer now to the RFC proposal?
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Fri Jul 25 11:15:52 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Fri, 25 Jul 2008 13:15:52 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es> <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
Message-ID: <4889B5E8.6010903@mpiz-koeln.mpg.de>
Hi,
I'm not sure whether i get the complete point of the discussion here,
nevertheless I like to jump in into that.
What i dont understand is why do we need references for only primitives
? I dont understand what a reference for a primitive is good for ?
I would also like to have references for any type, if possible.
Currently i work on sending image information around. some images are up
to several MBs. It would be way more convinient to send references to
the http url of the image instead of encoding/decoding it and
transferring around some networks.
If any type of object could be a reference, then we could stay with the
current way of registering and discovering services....
It might also just the case i dont get the point what martin said ;-)
Cheers
andreas
Pieter Neerincx wrote:
> Hi Martin at al.,
>
> On 25?Jul?2008, at 2:06 AM, Martin Senger wrote:
>
>> Thank you for all your comments. We need to move on, however. I am,
>> almost
>> impatiently, waiting for a conclusion because I need to implement the
>> "data-by-reference" rather soon. Are there other people
>> preparing/building
>> their comments - so we should wait for them, or can I summarize what was
>> said so far - and create an official "RFC" from it?
>>
>> My personal opinion is still on the side to have references only for
>> primitives. I am not convinced by the Pieter's vision of a huge
>> collection
>> that is too big even when it uses references. I am simply trying to
>> find a
>> solution that will be good for the most cases - and then deal with the
>> marginal cases separately (like by designing the service differently).
>
> Well, especially if you want to have a solution that works in most
> cases, I think we should have pass-by-reference at *any* level in
> mobyData. How often will the data of a single primitive be too large
> for inclusion in the SOAP body? I can imagine wrapping legacy data
> formats like a complete EMBL/Genbank/DDBJ record in a String object or
> sending images as base 64 encoded pieces of text in a String object.
> Maybe even sending a bulky sequence like a complete chromosome inside
> a String object, but in most cases the raw data carried by a primitive
> will be smaller than your average URL! And even if you do send some
> bulky stuff inside a String object as long as you send only one of
> those at a time it'll still work in most cases. But once you start to
> send tens, hundreds or more of those you have a problem. If you still
> send around tens, hundreds or more URLs, you'd have to fetch each one
> individually causing massive overhead. The reason to implement
> pass-by-reference is to make BioMoby scale much better for big jobs
> and in such cases fetching data from a single reference is much more
> efficient.
>
> Take for example position information of alignments on a genome:
>
> moby:namespace='transcriptome' moby:articleName='hit_position'>
> moby:articleName='seq_id'> 13
> moby:articleName='start'> 97419218
> moby:articleName='stop'> 97419282
> moby:articleName='strand'/>
> moby:articleName='cll'> 65M
>
>
> With pass-by-reference only for primitives this would become something
> like this:
>
> moby:namespace='transcriptome' moby:articleName='hit_position'>
> moby:articleName='seq_id'
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/String_seq_id.xml'/>
>
> moby:articleName='start'
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/Integer_start.xml'/>
>
> moby:articleName='stop'
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/Integer_stop.xml'/>
> moby:articleName='strand'/>
> moby:articleName='cll'
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/String_cll.xml'/>
>
>
> That ain't much of an improvement!
>
> I have on average 30.000 features on a micro array and for each oligo
> on average 3 hits on a reference assembly. That makes for an average
> total of 90.000 HitPosition objects and that is just a small part of
> the annotation for my oligos....
>
> Just to stress that these are not hypothetical cases: The stuff above
> is just a single example of what I'm already using for more than two
> years. Off course I needed a pass by reference workaround, because the
> data is too big for the SOAP body. So I registered an URL object and
> send those around. These URL objects point to chunks of BioMoby XML
> which is a complete mobyData block in most cases. Although the URL
> obeject is fully compatible with the current BioMoby standard, it's an
> ugly solution because of two reasons:
> 1. It's not a standard to do pass-by-reference.
> 2. It defeats the entire purpose of having the BioMoby object ontology
> to improve automatic service discovery. You can only discover that I
> provide several services which consume or produce URL objects, but you
> can not discover automatically what those URLs point to, so most of
> the URL object producers and consumers will be incompatible! (Ok, I
> can use namespace restriction to limit the problem of incompatible
> services a bit, but still you would have no idea what the URL points
> to based on the data in BioMoby Central.)
>
> So I would love to see standardised pass-by-reference as part of the
> BioMoby specs and I think it doesn't require rocket science to do this
> at any level in the structure of BioMoby objects. Why don't we simply
> do the following:
>
> Current situation:
>
> A BioMoby object is a BioMoby tripple with optional articleName
> attribute and optionally raw character data for primitives. The
> tripple is the XML element name, an id attribute and a namespace
> attribute.
>
> New situation:
> The above + The id and namespace attributes of a BioMoby tripple can
> be replaced with an xlink attribute resulting in a "BioMoby double".
> If the latter is the case the element containing the xlink attribute
> and all it's children are available from link specified by the xlink
> attribute.
>
> Example old:
>
> articleName='MyFavoriteObject'>
>
> ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
>
>
> 4569343
>
>
>
> Example with pass-by-reference:
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/ComplexObject.xml' articleName='MyFavoriteObject'
> />
>
> which points to:
>
> articleName='MyFavoriteObject'>
>
> ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
>
>
> 4569343
>
>
>
> Hence note that the link points to a ComplexObject and not just to
> it's children. The latter would also be an option but than you would get:
>
> xlink='http://www.mydomain.org/biomoby/tmp/job1239573/ComplexObject_content.xml' id='accession_number123875'
> namespace='' articleName='MyFavoriteObject' />
>
> which points to:
>
>
> ATTGCGCGCTAGAGTGCGGGTGTGCAAACCGGTGT
>
>
> 4569343
>
>
> If you have more than one child element like with the example above,
> some XML parsers might have problems with such a chunk. Although it is
> well balanced, it doesn't have a (pseudo-)root element. So for
> practical reasons I suggest to have the links point to the element
> containing the xlink attribute and it's children. This should be
> really easy to parse. You either have an id + namespace attribute or
> you have an xlink attribute. If both were not present the values were
> NULL. This doesn't require parsing dozens of WSRF tags in a header. It
> even doesn't require a service to tell the client using the
> serviceNotes or something similar that it did pass-by-reference of
> some kind nor does it require the client to specify that it can
> understand certain references. Off course it would be handy though to
> have some extension to BioMoby Central to prevent discovering services
> providing references which are incompatible with your client.
> Secondly, if a service can provide multiple types of references and
> your client doesn't understand them all, it would also be nice if a
> client can specify a preference for a certain type of reference. But
> both wouldn't be required for a first quick implementation of
> pass-by-reference.
>
>> I would like to hear also Eddie's voice - because he knows how easy
>> or hard
>> it would be to make the way we decide to do the "data-by-reference" in
>> Taverna (and I am still talking about the T1 which I expect to be
>> supported
>> for some time).
>
> I agree we need Eddie's feedback on Taverna compatibility!
> Compatibility with Taverna 1 would be great, but it would be extremely
> lame if our BioMoby references turn out to be incompatible with the
> new pass-by-reference feature of Taverna 2.
>
> I hope you see the potential for improving scalability of BioMoby
> services with pass-by-reference at any level of mobyData!
>
> Cheers,
>
> Pi
>
>> Martin
>>
>> --
>> Martin Senger
>> email: martin.senger at gmail.com,m.senger at cgiar.org
>> skype: martinsenger
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> -------------------------------------------------------------
> Wageningen University and Research centre (WUR)
> Laboratory of Bioinformatics
> Transitorium (building 312) room 1034
>
> Dreijenlaan 3
> 6703 HA Wageningen
> The Netherlands
>
> phone: +31 (0)317-483 060
> mobile: +31 (0)6-143 66 783
> e-mail: pieter.neerincx at gmail.com
> skype: pieter.online
> ------------------------------------------------------------
>
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From martin.senger at gmail.com Fri Jul 25 11:35:33 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Fri, 25 Jul 2008 19:35:33 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4889B5E8.6010903@mpiz-koeln.mpg.de>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
<4889B5E8.6010903@mpiz-koeln.mpg.de>
Message-ID: <4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
> What i dont understand is why do we need references for only primitives ? I
> dont understand what a reference for a primitive is good for ?
If you do not understand, it is my fault - I have tried to explain it, but
obviously have not done it well.
The discussion is now, however, a bit farer.Your first question is probably
obsolete - the forming RFC seems to be that the references will be able to
be anywhere (or not only on primitives).
Your second question: We need to allow reference on primitives if we want to
reuse existing references on not-yet-moby objects (such as uniprot
sequences).
The same with URLs of existing images - as in your use case. What you are
describing is exactly what we are going to do. You will have a choice: a)
You store somewhere an XML moby message (its part) and send a reference to
it, or b) you store somewhere only the image (not wrapped in a moby message)
and you send a moby message with a reference attached to a primitive.
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From groscurt at mpiz-koeln.mpg.de Fri Jul 25 11:46:45 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Fri, 25 Jul 2008 13:46:45 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es> <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com> <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com> <4889B5E8.6010903@mpiz-koeln.mpg.de>
<4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
Message-ID: <4889BD25.3080701@mpiz-koeln.mpg.de>
Martin Senger wrote:
> If you do not understand, it is my fault - I have tried to explain it, but
> obviously have not done it well.
>
hehe not automatically - i might just missed something ;-)
Thanks for the explanation, now i know i did understand it correctly ;-)
Andreas
> The discussion is now, however, a bit farer.Your first question is probably
> obsolete - the forming RFC seems to be that the references will be able to
> be anywhere (or not only on primitives).
>
> Your second question: We need to allow reference on primitives if we want to
> reuse existing references on not-yet-moby objects (such as uniprot
> sequences).
>
> The same with URLs of existing images - as in your use case. What you are
> describing is exactly what we are going to do. You will have a choice: a)
> You store somewhere an XML moby message (its part) and send a reference to
> it, or b) you store somewhere only the image (not wrapped in a moby message)
> and you send a moby message with a reference attached to a primitive.
>
> Martin
>
>
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From pieter.neerincx at gmail.com Fri Jul 25 12:28:43 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Fri, 25 Jul 2008 14:28:43 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
<4889B5E8.6010903@mpiz-koeln.mpg.de>
<4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
Message-ID:
Hi,
On 25?Jul?2008, at 1:35 PM, Martin Senger wrote:
>> What i dont understand is why do we need references for only
>> primitives ? I
>> dont understand what a reference for a primitive is good for ?
>
>
> If you do not understand, it is my fault - I have tried to explain
> it, but
> obviously have not done it well.
>
> The discussion is now, however, a bit farer.Your first question is
> probably
> obsolete - the forming RFC seems to be that the references will be
> able to
> be anywhere (or not only on primitives).
>
> Your second question: We need to allow reference on primitives if we
> want to
> reuse existing references on not-yet-moby objects (such as uniprot
> sequences).
Yes :) !
> The same with URLs of existing images - as in your use case. What
> you are
> describing is exactly what we are going to do. You will have a
> choice: a)
> You store somewhere an XML moby message (its part) and send a
> reference to
> it, or b) you store somewhere only the image (not wrapped in a moby
> message)
> and you send a moby message with a reference attached to a primitive.
Eh, but in the case of images they must be encoded to put then inside
a String primitive. So, since the data the reference points to must be
the same as in the case where you would not use a reference, it musty
also be encoded. Hence, you can not replace the object with a
reference to a plain (un-encoded) JPEG for example. Take for example
the b64_encoded_jpeg Object. That would look like:
afr78e349tu9rghjerewptu59hgfirhegwug9uwguwujw9-
If you want to replace this with a reference the actual data would
still have to be a base64 encoded piece of text. So you can not make a
reference to an image that exists as a plain JPEG, GIF, etc. on a web
server. We don't have a datatype to send un-encoded binary stuff. You
could create a new (un-encoded) JPEG object and use references, but
than you are required to always send a reference as you can not send
that BioMoby datatype un-encoded as part of the SOAP payload! This is
again not optimal though as you would have different objects for
encoded and un-encoded images limiting the discovery of potentially
compatible services. I couldn't care less about whether it's encoded
or not. I just want to send or receive an image and the optional
encoding is just the side effect of a workaround. I don't see how we
can easily solve that. Does anyone have suggestion how we should
handle this?...
Cheers,
Pi
> Martin
>
> --
> Martin Senger
> email: martin.senger at gmail.com,m.senger at cgiar.org
> skype: martinsenger
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
------------------------------------------------------------
From edward.kawas at gmail.com Fri Jul 25 13:03:34 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Fri, 25 Jul 2008 06:03:34 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
Message-ID: <4889cf38.1aba720a.1b32.3a36@mx.google.com>
Hi Martin,
Don't worry about Taverna! Whatever we decide will most likely be the same
amount of work. So let's just get it right.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
Sent: July-24-08 5:06 PM
To: Core developer announcements
Subject: Re: [MOBY-dev] data by reference - a request for comments
Thank you for all your comments. We need to move on, however. I am, almost
impatiently, waiting for a conclusion because I need to implement the
"data-by-reference" rather soon. Are there other people preparing/building
their comments - so we should wait for them, or can I summarize what was
said so far - and create an official "RFC" from it?
My personal opinion is still on the side to have references only for
primitives. I am not convinced by the Peter's vision of a huge collection
that is too big even when it uses references. I am simply trying to find a
solution that will be good for the most cases - and then deal with the
marginal cases separately (like by designing the service differently).
I would like to hear also Eddie's voice - because he knows how easy or hard
it would be to make the way we decide to do the "data-by-reference" in
Taverna (and I am still talking about the T1 which I expect to be supported
for some time).
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From gordonp at ucalgary.ca Fri Jul 25 15:05:42 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Fri, 25 Jul 2008 09:05:42 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4889cf38.1aba720a.1b32.3a36@mx.google.com>
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es> <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<4889cf38.1aba720a.1b32.3a36@mx.google.com>
Message-ID: <4889EBC6.6010500@ucalgary.ca>
I'll finally chime in...I'm in favour of data-by-reference at any level
within a mobyData block. Above that and you get weird issues with
exception maintenance, and any restriction below that appears pretty
artificial to me.
Edward Kawas wrote:
> Hi Martin,
>
> Don't worry about Taverna! Whatever we decide will most likely be the same
> amount of work. So let's just get it right.
>
> Eddie
>
> -----Original Message-----
> From: moby-dev-bounces at lists.open-bio.org
> [mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Martin Senger
> Sent: July-24-08 5:06 PM
> To: Core developer announcements
> Subject: Re: [MOBY-dev] data by reference - a request for comments
>
> Thank you for all your comments. We need to move on, however. I am, almost
> impatiently, waiting for a conclusion because I need to implement the
> "data-by-reference" rather soon. Are there other people preparing/building
> their comments - so we should wait for them, or can I summarize what was
> said so far - and create an official "RFC" from it?
>
> My personal opinion is still on the side to have references only for
> primitives. I am not convinced by the Peter's vision of a huge collection
> that is too big even when it uses references. I am simply trying to find a
> solution that will be good for the most cases - and then deal with the
> marginal cases separately (like by designing the service differently).
>
> I would like to hear also Eddie's voice - because he knows how easy or hard
> it would be to make the way we decide to do the "data-by-reference" in
> Taverna (and I am still talking about the T1 which I expect to be supported
> for some time).
>
> Martin
>
>
From jason.e.stewart at gmail.com Fri Jul 25 16:07:22 2008
From: jason.e.stewart at gmail.com (Jason Stewart)
Date: Fri, 25 Jul 2008 21:37:22 +0530
Subject: [MOBY-dev] Interesting...
In-Reply-To:
References:
Message-ID: <41c1ade50807250907k61a3a459m3d394bf6d793df5f@mail.gmail.com>
Hey Mark,
On Wed, Jul 2, 2008 at 7:52 PM, Mark wrote:
> http://www.biomedcentral.com/1471-2105/9/295/abstract
>
> I wonder how they got document-literal stuff working in Perl??
Can you get me a pdf of that article? It looks like a subscription is needed.
Cheers, jas.
From edward.kawas at gmail.com Fri Jul 25 18:05:23 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Fri, 25 Jul 2008 11:05:23 -0700
Subject: [MOBY-dev] updated wsrf perl module
Message-ID: <488a1605.06d7720a.021c.ffff9cd4@mx.google.com>
Hi all,
I am trying to create a cpan distribution for the WSRF module created by
Mark McKeown. In the process, I wanted to see if I could get it to work with
windows (you never know, there might be some windows moby service developers
out there somewhere ;-) ) and to see if I could improve the install
procedure.
So, I now have a beta version of the module that I plan on sending to cpan,
but I want to make sure that I didn't break anything for those using this
module for creating async services. Is it possible for those that have
developed async services to try out this new module and to let me know if
anything is missing, broken, etc?
I would really appreciate any feedback.
Thanks,
Eddie
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WSRF-Lite-0.8.2.2.1.tar.gz
Type: application/octet-stream
Size: 454887 bytes
Desc: not available
URL:
From markw at illuminae.com Fri Jul 25 18:34:13 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Fri, 25 Jul 2008 11:34:13 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4889EBC6.6010500@ucalgary.ca>
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<4889cf38.1aba720a.1b32.3a36@mx.google.com>
<4889EBC6.6010500@ucalgary.ca>
Message-ID:
On Fri, 25 Jul 2008 08:05:42 -0700, Paul Gordon
wrote:
> I'll finally chime in...I'm in favour of data-by-reference at any level
> within a mobyData block. Above that and you get weird issues with
> exception maintenance, and any restriction below that appears pretty
> artificial to me.
I agree with Paul. I wouldn't go any higher than the mobyData block, but
allowing it at any lower levels seems sensible to me, particularly given
Pieter's use-case.
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
From markw at illuminae.com Fri Jul 25 18:33:07 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Fri, 25 Jul 2008 11:33:07 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com>
<4889B5E8.6010903@mpiz-koeln.mpg.de>
<4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
Message-ID:
On Fri, 25 Jul 2008 05:28:43 -0700, Pieter Neerincx
wrote:
> If you want to replace this with a reference the actual data would still
> have to be a base64 encoded piece of text. So you can not make a
> reference to an image that exists as a plain JPEG, GIF, etc. on a web
> server.
Martin and I discussed this while he was here and the behaviour of this
case will be part of his RFC proposal. It seems to me that it would be
silly to b64 encode something that is being passed by reference... but I
agree that to do anything else is a 'hack'. Nevertheless, there are a lot
of 'hacks' in Moby, and this one is one of the more sensible 'hacks' IMO...
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
From jason.e.stewart at gmail.com Sat Jul 26 05:52:11 2008
From: jason.e.stewart at gmail.com (Jason Stewart)
Date: Sat, 26 Jul 2008 11:22:11 +0530
Subject: [MOBY-dev] updated wsrf perl module
In-Reply-To: <488a1605.06d7720a.021c.ffff9cd4@mx.google.com>
References: <488a1605.06d7720a.021c.ffff9cd4@mx.google.com>
Message-ID: <41c1ade50807252252r2cc2482euad274ab511dd3421@mail.gmail.com>
Hey,
Cool Eddie - it's a pain to have to install perl modules by hand -
glad you're making this available on CPAN. I don't have any async
services though...
Cheers, jas.
On Fri, Jul 25, 2008 at 11:35 PM, Edward Kawas wrote:
> Hi all,
>
> I am trying to create a cpan distribution for the WSRF module created by
> Mark McKeown.
From dmitry.repchevski at bsc.es Sat Jul 26 10:49:07 2008
From: dmitry.repchevski at bsc.es (Dmitry Repchevsky)
Date: Sat, 26 Jul 2008 12:49:07 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
Message-ID: <488B0123.3040608@bsc.es>
Hello everybody,
WSRF has a way to reference a part of resource using XPath expressions.
It's easy to include it just by updating current asynchronous specification.
The only thing to do is to implement QueryResourceProperties method.
So we can always get any part of mobyData (for practical reason I think
to limit it to MobySimple/MobyCollection).
This way the reference to any remote resource will be standard WSRF
reference (based on WS-Addressing) with XPath expression to get the
interested part of it.
I'm not very good in XPath, but something like this:
String expression =
"/*[local-name()='MOBY']/*[local-name()='mobyContent']/*[local-name()='mobyData'
and @*[local-name()='queryID']='id_01']/*[local-name()='Simple' and
@*[local-name()='articleName']='sequence']"
will give us a "Simple" with articleName = "sequence";
Best regards,
Dmitry
From martin.senger at gmail.com Sat Jul 26 11:52:30 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Sat, 26 Jul 2008 19:52:30 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488B0123.3040608@bsc.es>
References:
<488B0123.3040608@bsc.es>
Message-ID: <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
> WSRF has...
Sorry, if you wish to use WSRF - I am out. Happy hacking...
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From martin.senger at gmail.com Mon Jul 28 01:29:34 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Mon, 28 Jul 2008 09:29:34 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
References:
<488B0123.3040608@bsc.es>
<4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
Message-ID: <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
I am trying to figure out how I would implement the data by reference in
order to achieve the main purpose - not no have all data in memory. I know
how I would do it for the references being on the primitive types level, but
it is less clear to me how I would do it with the references on other
levels. Perhaps you can help me to explain how you would do it (or even
Pieter can explore how he is already doing it)?
For references on the primitive type level, I would do a usual parsing of a
Moby message and when I find a reference, I would resolve it do a local file
and I would pass to my service class the data as a file reference. It would
be up to the service to read the file contents to the memory or not - that
would depend what it needs to do with the data.
However, on the higher level, such as mobyData level, the reference must be
treated differently. If I do the same (resolving the reference to a local
file), I still need to call a parser again to parse the contents of the
local file. Because I still want to give my service already parsed data (and
not a biomoby XML), and because I do not want to have all in memory, I need
to create local files for each primitive type and do the same as above
(passing my service local file references). I do not see much other choices.
Am I missing a point here?
The above is doable, of course. But you see why I wanted to have references
only on the primitive type level. If we have them on any level (as it seems
to be) I need, in my implementation, actually make another (local)
references for the primitive type, anyway. Of course, it is better than the
remote references because I do not need to make a network connection for
each individual primitive type (point taken, Pieter) - but it still to be
done.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From gordonp at ucalgary.ca Mon Jul 28 01:50:30 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Sun, 27 Jul 2008 19:50:30 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
References: <488B0123.3040608@bsc.es> <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
<4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
Message-ID: <488D25E6.7030601@ucalgary.ca>
Hi Martin,
> I am trying to figure out how I would implement the data by reference in
> order to achieve the main purpose - not no have all data in memory.
I think you are coming at this from a different side than most of us:
data-by-reference is primarily to reduce the bandwidth burden by not
requiring results to go back to the client before being sent to another
service.
Paul
From markw at illuminae.com Mon Jul 28 03:58:56 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Sun, 27 Jul 2008 20:58:56 -0700
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488D25E6.7030601@ucalgary.ca>
References:
<488B0123.3040608@bsc.es>
<4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
<4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
<488D25E6.7030601@ucalgary.ca>
Message-ID:
On Sun, 27 Jul 2008 18:50:30 -0700, Paul Gordon
wrote:
> Hi Martin,
>> I am trying to figure out how I would implement the data by reference in
>> order to achieve the main purpose - not no have all data in memory.
> I think you are coming at this from a different side than most of us:
> data-by-reference is primarily to reduce the bandwidth burden by not
> requiring results to go back to the client before being sent to another
> service.
I don't think that is the PRIMARY reason, necessarily - we also want to
get around passing large objects in the SOAP message due to limitations in
the (Perl) SOAP libraries, and increasingly in the non-SOAP services where
passing large data inside of an XML tag doesn't allow for nice download
optimizations/caching, etc.
M
From gordonp at ucalgary.ca Mon Jul 28 04:03:21 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Sun, 27 Jul 2008 22:03:21 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References: <488B0123.3040608@bsc.es> <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com> <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com> <488D25E6.7030601@ucalgary.ca>
Message-ID: <488D4509.6070407@ucalgary.ca>
Perhaps we should make a statement of intendion before hammering out the
details then ? ;-)
Mark Wilkinson wrote:
> On Sun, 27 Jul 2008 18:50:30 -0700, Paul Gordon
> wrote:
>
>> Hi Martin,
>>> I am trying to figure out how I would implement the data by
>>> reference in
>>> order to achieve the main purpose - not no have all data in memory.
>> I think you are coming at this from a different side than most of us:
>> data-by-reference is primarily to reduce the bandwidth burden by not
>> requiring results to go back to the client before being sent to
>> another service.
>
> I don't think that is the PRIMARY reason, necessarily - we also want
> to get around passing large objects in the SOAP message due to
> limitations in the (Perl) SOAP libraries, and increasingly in the
> non-SOAP services where passing large data inside of an XML tag
> doesn't allow for nice download optimizations/caching, etc.
>
> M
>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> !DSPAM:60005,488d415d1095014969098!
>
>
>
From gordonp at ucalgary.ca Mon Jul 28 04:07:14 2008
From: gordonp at ucalgary.ca (Paul Gordon)
Date: Sun, 27 Jul 2008 22:07:14 -0600
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488D4509.6070407@ucalgary.ca>
References: <488B0123.3040608@bsc.es> <4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com> <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com> <488D25E6.7030601@ucalgary.ca>
<488D4509.6070407@ucalgary.ca>
Message-ID: <488D45F2.40900@ucalgary.ca>
Okay, this is a very long thread, so I forgot the original message,
which indeed has both of these uses (except I don't limit my vision of
inter-service data passing to well-known entities as Martin gave in his
example).
Paul Gordon wrote:
> Perhaps we should make a statement of intendion before hammering out
> the details then ? ;-)
>
> Mark Wilkinson wrote:
>> On Sun, 27 Jul 2008 18:50:30 -0700, Paul Gordon
>> wrote:
>>
>>> Hi Martin,
>>>> I am trying to figure out how I would implement the data by
>>>> reference in
>>>> order to achieve the main purpose - not no have all data in memory.
>>> I think you are coming at this from a different side than most of
>>> us: data-by-reference is primarily to reduce the bandwidth burden by
>>> not requiring results to go back to the client before being sent to
>>> another service.
>>
>> I don't think that is the PRIMARY reason, necessarily - we also want
>> to get around passing large objects in the SOAP message due to
>> limitations in the (Perl) SOAP libraries, and increasingly in the
>> non-SOAP services where passing large data inside of an XML tag
>> doesn't allow for nice download optimizations/caching, etc.
>>
>> M
>>
>> _______________________________________________
>> MOBY-dev mailing list
>> MOBY-dev at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/moby-dev
>>
>>
>>
>>
>>
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
>
> !DSPAM:60005,488d4268109502155522951!
>
>
>
From martin.senger at gmail.com Mon Jul 28 04:10:05 2008
From: martin.senger at gmail.com (Martin Senger)
Date: Mon, 28 Jul 2008 12:10:05 +0800
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <488D4509.6070407@ucalgary.ca>
References:
<488B0123.3040608@bsc.es>
<4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
<4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
<488D25E6.7030601@ucalgary.ca>
<488D4509.6070407@ucalgary.ca>
Message-ID: <4d93f07c0807272110k66b54250q9373799210f28f22@mail.gmail.com>
> Perhaps we should make a statement of intendion before hammering out the
> details then ? ;-)
The first email in this thread says it (I believe):
Well, the first purpose (A) is obvious: we want to be able to deliver huge
> data from a service. So the service returns only a reference instead of the
> real data and the client can fetch the real data using some memory-friendly
> protocol (usualy a simple HTTP/GET).
>
> But it appeeared that it was not the only purpose. The second purpose (B)
> is to be able to send around already existing references (such as URLs of
> the EMBL or NCBI records).
>
Martin
--
Martin Senger
email: martin.senger at gmail.com,m.senger at cgiar.org
skype: martinsenger
From soiland-reyes at cs.manchester.ac.uk Mon Jul 28 09:32:42 2008
From: soiland-reyes at cs.manchester.ac.uk (Stian Soiland-Reyes)
Date: Mon, 28 Jul 2008 10:32:42 +0100
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References:
<486CA2A7.4070702@bsc.es>
<2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com>
<48876ECA.1040109@cnio.es>
<2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com>
<488884CD.9030403@cnio.es>
<4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com>
<4889cf38.1aba720a.1b32.3a36@mx.google.com>
Message-ID:
Sorry if you got this email a couple of times, I ended up getting
bounces from moby-l@ even if I was posting to moby-dev@ - and changed
the wrong subscription!
On Mon, Jul 28, 2008 at 10:23 AM, Stian Soiland-Reyes
wrote:
> On Fri, Jul 25, 2008 at 2:03 PM, Edward Kawas wrote:
>> Don't worry about Taverna! Whatever we decide will most likely be the same
>> amount of work. So let's just get it right.
>
> Taverna 2 has built-in support for references (and their
> dereferencing) - so you could implement any referencing scheme you
> like, really, there's just a very simple interface to implement:
>
> http://taverna.cvs.sourceforge.net/taverna/t2reference/t2reference-api/src/main/java/net/sf/taverna/t2/reference/ExternalReferenceSPI.java?view=markup
>
>
> Example implementation:
>
> http://taverna.cvs.sourceforge.net/taverna/t2reference/t2reference-core-extensions/src/main/java/net/sf/taverna/t2/reference/impl/external/http/HttpReference.java?view=markup
>
>
> Plain HTTP references should work out of the box, though. You could
> make a version of this and add your own added-value semantics to the
> URIs - and it could still also work with other non-biomoby-services
> that recognised HTTP-URLs.
>
> t2 allows you to add translators between different reference schemes -
> so if you ended up with say "urn:biomoby:fish/1337" and you knew that
> you could download such references by using
> http://download.biomoby.org/fish/1337.xml - you can easily add a
> BiomobyReferenceToHttpReference translator that constructs such URIs
> given the biomoby reference.
>
>
> --
> Stian Soiland-Reyes, myGrid team
> School of Computer Science
> The University of Manchester
> http://www.mygrid.org.uk/dev/blog/
>
--
Stian Soiland-Reyes, myGrid team
School of Computer Science
The University of Manchester
http://www.mygrid.org.uk/dev/blog/
From jmfernandez at cnio.es Mon Jul 28 16:25:29 2008
From: jmfernandez at cnio.es (=?ISO-8859-1?Q?Jos=E9_Mar=EDa_Fern=E1ndez_Gonz=E1lez?=)
Date: Mon, 28 Jul 2008 18:25:29 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To:
References: <486CA2A7.4070702@bsc.es> <2A730847-8B4D-4ABE-9AED-23E3D68BA517@gmail.com> <48876ECA.1040109@cnio.es> <2D387E4C-AE3B-48D7-9121-925EB1281469@gmail.com> <488884CD.9030403@cnio.es> <4d93f07c0807241706t34b5a4c1w95049cd0f7728b55@mail.gmail.com> <2692C2D4-02A7-4B01-8A42-7BEF778B221E@gmail.com> <4889B5E8.6010903@mpiz-koeln.mpg.de> <4d93f07c0807250435g45dfb62cyf30b23f2de050986@mail.gmail.com>
Message-ID: <488DF2F9.5090207@cnio.es>
Last weeks we (at INB) were talking about binary objects and data-by-reference
in our internal list (mainly related to the usage of XInclude), and we found
that on one hand XInclude allows referencing non-XML content:
http://www.w3.org/TR/xinclude/#text-included-items
but that content must be string-like (with an associated encoding), not binary
one. So, when we realized that limitation we were talking about extending
XInclude in a non-standard way, considering a new parse style, called
'base64'. Standard XInclude understands parse='xml' and parse='text' styles,
and 'base64' parse mode would work like 'text' one, but encoding the content
in base64 before including it in the place of the reference.
What do you think about this hack?
Best Regards,
Jos? Mar?a
Mark Wilkinson wrote:
> On Fri, 25 Jul 2008 05:28:43 -0700, Pieter Neerincx
> wrote:
>
>
>
>> If you want to replace this with a reference the actual data would
>> still have to be a base64 encoded piece of text. So you can not make a
>> reference to an image that exists as a plain JPEG, GIF, etc. on a web
>> server.
>
> Martin and I discussed this while he was here and the behaviour of this
> case will be part of his RFC proposal. It seems to me that it would be
> silly to b64 encode something that is being passed by reference... but
> I agree that to do anything else is a 'hack'. Nevertheless, there are a
> lot of 'hacks' in Moby, and this one is one of the more sensible 'hacks'
> IMO...
>
> M
>
>
>
--
"There is no reason why anybody would want a computer in their home" -
Ken Olson, founder of DEC 1977
"640K ought to be enough for anybody" - Bill Gates, 1981
"Nobody will ever outgrow a 20Mb hard drive." - ???
"Premature optimization is the root of all evil." - Donald Knuth
Jos? Mar?a Fern?ndez Gonz?lez
Tlfn: (+34) 91 732 80 00 / 91 224 69 00 (ext 3061)
e-mail: jmfernandez at cnio.es Fax: (+34) 91 224 69 76
Unidad del Instituto Nacional de Bioinform?tica
Biolog?a Estructural y Biocomputaci?n Structural Biology and Biocomputing
Centro Nacional de Investigaciones Oncol?gicas
C.P.: 28029 Zip Code: 28029
C/. Melchor Fern?ndez Almagro, 3 Madrid (Spain)
**NOTA DE CONFIDENCIALIDAD** Este correo electr?nico, y en su caso los ficheros adjuntos, pueden contener informaci?n protegida para el uso exclusivo de su destinatario. Se proh?be la distribuci?n, reproducci?n o cualquier otro tipo de transmisi?n por parte de otra persona que no sea el destinatario. Si usted recibe por error este correo, se ruega comunicarlo al remitente y borrar el mensaje recibido.
**CONFIDENTIALITY NOTICE** This email communication and any attachments may contain confidential and privileged information for the sole use of the designated recipient named above. Distribution, reproduction or any other use of this transmission by any party other than the intended recipient is prohibited. If you are not the intended recipient please contact the sender and delete all copies.
From py at pingoured.fr Tue Jul 29 09:09:26 2008
From: py at pingoured.fr (Pierre-Yves Chibon)
Date: Tue, 29 Jul 2008 11:09:26 +0200
Subject: [MOBY-dev] php client for biomoby services
Message-ID: <488EDE46.5070804@pingoured.fr>
Dear list,
We have been trying to make a php client for a simple biomoby web
service that we developed few days ago.
We are facing a problem in the creation of the input XML. We think that
using php soap library we create soap XML and not moby XML. Which
obviously returns an error.
Has anyone of you ever try to make a simple client in php or just even
call a bioMoby service via php ?
Below is the input that is sent to our service and the XML retrieve from
that service
Thanks for your help,
Best regards,
Pierre
input:
a:1:{s:12:"Solstis_User";a:3:{s:8:"userName";s:4:"test";s:8:"password";s:4:"test";s:5:"email";s:12:"test at test.fr";}}
output:
<?xml version="1.0"
encoding="UTF-8"?>
<moby:MOBY xmlns:moby="http://www.biomoby.org/moby">
<moby:mobyContent>
<moby:serviceNotes>
<moby:mobyException moby:severity="error">
<moby:exceptionCode>600</moby:exceptionCode>
<moby:exceptionMessage>AN ERROR OCCURED DURING THE
SERVICE EXECUTION: Error in the XML input.
SystemID: null
Line (perhaps): 1
Column: 1</moby:exceptionMessage>
</moby:mobyException>
</moby:serviceNotes>
</moby:mobyContent>
</moby:MOBY>
From edward.kawas at gmail.com Tue Jul 29 14:56:04 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Tue, 29 Jul 2008 07:56:04 -0700
Subject: [MOBY-dev] php client for biomoby services
In-Reply-To: <488EDE46.5070804@pingoured.fr>
References: <488EDE46.5070804@pingoured.fr>
Message-ID: <488f2f88.2a528c0a.7d99.54ae@mx.google.com>
Hi Pierre,
Take a look at the following example that someone created at a TIGR
workshop.
https://biomoby.tigr.org/wiki/index.php/JCVI_Workshop#::_Step_5_-_how_to_cre
ate_a_MOBY_client_in_PHP_::
This example did work at the time and may still do the trick.
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Pierre-Yves Chibon
Sent: July-29-08 2:09 AM
To: MOBY-dev at lists.open-bio.org
Subject: [MOBY-dev] php client for biomoby services
Dear list,
We have been trying to make a php client for a simple biomoby web
service that we developed few days ago.
We are facing a problem in the creation of the input XML. We think that
using php soap library we create soap XML and not moby XML. Which
obviously returns an error.
Has anyone of you ever try to make a simple client in php or just even
call a bioMoby service via php ?
Below is the input that is sent to our service and the XML retrieve from
that service
Thanks for your help,
Best regards,
Pierre
input:
a:1:{s:12:"Solstis_User";a:3:{s:8:"userName";s:4:"test
";s:8:"password";s:4:"test";s:5:"email";s:12:"test at test.fr";}}
output:
<?xml version="1.0"
encoding="UTF-8"?>
<moby:MOBY xmlns:moby="http://www.biomoby.org/moby">
<moby:mobyContent>
<moby:serviceNotes>
<moby:mobyException moby:severity="error">
<moby:exceptionCode>600</moby:exceptionCode>
<moby:exceptionMessage>AN ERROR OCCURED DURING THE
SERVICE EXECUTION: Error in the XML input.
SystemID: null
Line (perhaps): 1
Column: 1</moby:exceptionMessage>
</moby:mobyException>
</moby:serviceNotes>
</moby:mobyContent>
</moby:MOBY>
<
/soapenv:Envelope>
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From edward.kawas at gmail.com Tue Jul 29 15:23:58 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Tue, 29 Jul 2008 08:23:58 -0700
Subject: [MOBY-dev] php client for biomoby services
In-Reply-To: <488EDE46.5070804@pingoured.fr>
References: <488EDE46.5070804@pingoured.fr>
Message-ID: <488f3612.20d7720a.6190.1e4a@mx.google.com>
Just in case, you didn't get it working (I am sure that you did, but just in
case ...), I attached 2 php files that you can test with.
The test client is in the file 'moby_php_test_service.php' and the
moby_soap_factory.php needs to be either in the same directory as the test
service or on your PHP include path.
Thanks to Julian Tonti-Filippini for creating the PHP basis for the attached
examples!
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Pierre-Yves Chibon
Sent: July-29-08 2:09 AM
To: MOBY-dev at lists.open-bio.org
Subject: [MOBY-dev] php client for biomoby services
Dear list,
We have been trying to make a php client for a simple biomoby web
service that we developed few days ago.
We are facing a problem in the creation of the input XML. We think that
using php soap library we create soap XML and not moby XML. Which
obviously returns an error.
Has anyone of you ever try to make a simple client in php or just even
call a bioMoby service via php ?
Below is the input that is sent to our service and the XML retrieve from
that service
Thanks for your help,
Best regards,
Pierre
input:
a:1:{s:12:"Solstis_User";a:3:{s:8:"userName";s:4:"test
";s:8:"password";s:4:"test";s:5:"email";s:12:"test at test.fr";}}
output:
<?xml version="1.0"
encoding="UTF-8"?>
<moby:MOBY xmlns:moby="http://www.biomoby.org/moby">
<moby:mobyContent>
<moby:serviceNotes>
<moby:mobyException moby:severity="error">
<moby:exceptionCode>600</moby:exceptionCode>
<moby:exceptionMessage>AN ERROR OCCURED DURING THE
SERVICE EXECUTION: Error in the XML input.
SystemID: null
Line (perhaps): 1
Column: 1</moby:exceptionMessage>
</moby:mobyException>
</moby:serviceNotes>
</moby:mobyContent>
</moby:MOBY>
<
/soapenv:Envelope>
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: moby_php_test_service.php
Type: application/octet-stream
Size: 1308 bytes
Desc: not available
URL:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: moby_soap_factory.php
Type: application/octet-stream
Size: 4300 bytes
Desc: not available
URL:
From groscurt at mpiz-koeln.mpg.de Wed Jul 30 08:51:58 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Wed, 30 Jul 2008 10:51:58 +0200
Subject: [MOBY-dev] [MOBY-l] Apologies,
a hint for MIPS-Service substitutions, and an invitation
In-Reply-To:
References:
Message-ID: <48902BAE.7000501@mpiz-koeln.mpg.de>
Mark wrote:
> This all brings me to my final comment - I currently have two
> summer-students who are working on the problem of automated workflow
> repair (i.e. finding equivalent services to fix broken workflows).
> We're going to be inviting everyone to participate in a Moby Service
> Annotation Jamboree later this summer. It will be a "virtual"
> jamboree - just come to the website. We'll have an interface there
> through which you can deeply annotate Moby services (inputs, outputs,
> underlying resources, service types, authorities, etc.) with the goal
> of improving service discovery. I encourage all Moby users to
> participate and improve the quality of our service annotations! At a
> minimum, I hope that the current service providers will visit the
> website and annotate their own services :-)
I was wondering how you store this information ? are they mapped to the
services/datatypes etc in the moby central database ?
Here at the mpiz we already thought about offering this feature as a
permanent service to everyone, so everyone can tag services/datatypes
etc. Have you ever considered such kind of things ? I recently modified
dashboard and my local moby database to have a prototype for service
tagging. Unfortunately i can only offer you some screenshots, but I was
wondering if such extension could be worth considering to integrate it
in the official moby api ? you can see the first idea at
http://bioinfo.mpiz-koeln.mpg.de/tagging2.jpg
so my suggestion is to think about a tagging system (via dashboard / web
portal), which is permant available and allows everyone to tag moby stuff ?!
best
andreas
--
=====================================================
Dipl. Bioinf. Andreas Groscurth
Bioinformatics Software Developer
Plant Computational Biology group
Max-Planck Institute for plant breeding research
Carl-von-Linne Weg 10
50829 Cologne
Germany
+49(0) 221 5062449
=====================================================
From pieter.neerincx at gmail.com Wed Jul 30 13:51:54 2008
From: pieter.neerincx at gmail.com (Pieter Neerincx)
Date: Wed, 30 Jul 2008 15:51:54 +0200
Subject: [MOBY-dev] data by reference - a request for comments
In-Reply-To: <4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
References:
<488B0123.3040608@bsc.es>
<4d93f07c0807260452g3048765ev6f84be49dc8cf26d@mail.gmail.com>
<4d93f07c0807271829v10ff50d5y2c6f83b279256fdb@mail.gmail.com>
Message-ID:
Hi Martin,
Had to think about the issues you raised below for a while...
On 28 Jul 2008, at 03:29, Martin Senger wrote:
> I am trying to figure out how I would implement the data by
> reference in
> order to achieve the main purpose - not no have all data in memory.
> I know
> how I would do it for the references being on the primitive types
> level, but
> it is less clear to me how I would do it with the references on other
> levels. Perhaps you can help me to explain how you would do it (or
> even
> Pieter can explore how he is already doing it)?
What I use mostly are http(s) references. I download them and save
them as tmp files in a tmp dir. What happens next completely depends
on the service.
Sometimes I'm lazy and simply use a DOM parser to load the entire
thing in memory for convenient access to all nodes. (Note that I'm
living in a Perl world and therefore this makes sense. Using a
reference prevents DOM parsing of the SOAP message by SOAP::Lite which
has an expansion factor 5-7 times worse than DOM parsing of only the
Moby payload.)
If I cannot afford to be lazy, because the Moby payload tends to be
big, I use hybrid parsers. I never use pure streaming (SAX) parsers.
Hybrid means I use a streaming parser to divide the input into certain
chunks/fragments. Next I loop over the chunks and load them completely
into memory. This way I only have one chunk at a time in memory plus a
few globals like for example a counter to keep track of the amount of
BLAST hits. This hybrid parsing can be either for XML or for legacy
data formats like BLAST reports in tabular format.
In one case I use an XSLT to parse and convert one type of Moby XML
message into an SVG (is also XML) image. The XSLT is pretty cool and
is also some kind of hybrid. Basically it works similar to a flat file
indexing system. You define certain nodes of interest. It parses the
XML (SAX not DOM) once to make an index of where these nodes occur in
the XML. This index is kept in memory, but that is a lot smaller since
it stores only where a certain node occurs not it's contents and it
stores only nodes you need and specified not everything. Next it
parses the XML again (SAX not DOM) to do your business logic.
The inconvenience of a pure streaming parser is that you cannot jump
around the data. Once the streaming has parsed and passed a certain
point it forgets about that data unless you decide to store it in
variables. So, if you parse 100 BLAST hits and when you parse number
88 you want to go back to compare it to number 12, you can not unless
you stored number 12 somehow. With the XSLT you don't have to store
it, as you could have indexed the BLAST hits. So, when you need 12
again the parser jumps back to that point and parses only the chunk/
fragment for number 12 again. This means some parts of the XML might
get parsed more than once, but for scalability that is much better
than parsing the entire XML several times or storing large pieces in
memory.
The disadvantage of XLSTs in my opinion is that it works radically
different than any language I've seen before. Perl and Java are
different, but they share many concepts like if, else, while, for
loops. Developing XSLTs requires a completely different way of
thinking and I never found it easy.
> For references on the primitive type level, I would do a usual
> parsing of a
> Moby message and when I find a reference, I would resolve it do a
> local file
> and I would pass to my service class the data as a file reference.
> It would
> be up to the service to read the file contents to the memory or not
> - that
> would depend what it needs to do with the data.
>
> However, on the higher level, such as mobyData level, the reference
> must be
> treated differently. If I do the same (resolving the reference to a
> local
> file), I still need to call a parser again to parse the contents of
> the
> local file. Because I still want to give my service already parsed
> data (and
> not a biomoby XML), and because I do not want to have all in memory,
> I need
> to create local files for each primitive type and do the same as above
> (passing my service local file references). I do not see much other
> choices.
Not only would you have to do that for the primitives. If you want to
provide pre-parsed data to a service you would have to do it for the
values of namespace and id attributes at any level of mobyData too
right? I assume we are talking about MoSeS here were based on the data
in BioMoby Central code is generated both to parse the Biomoby XML
inputs of a service as well as to compile its results as BioMoby XML.
Saving everything pre-parsed as tmp files to disk, doesn't make much
sense too me. If you would do it both for the entire message and for
all it's possible dissected parts it would cause quite some redundancy
and overhead.
But how to do it with a hybrid DOM/SAX parser or with an XSLT that
uses indices? You would have to generate the code to chunk the input
for a hybrid parser or you have to generate the code to index certain
nodes for the XSLT. This means you need to know how the business logic
of the services works to figure out at which level level of the XML
you would have to chunk or index. I know Mark has this famous slide
with the God of BioMoby, but I'm afraid even the almighty Martin
cannot predict based on the info in BioMoby Central how the business
logic of a services works :(... In the current MoSeS parsing of the
input and the business logic are two separate things, but if you want
to improve scalability with a hybrid SAX/DOM or XSLT parser, parsing
the input will become an essential part of the business logic. What
you could do is generate some disabled example code to chunk/index at
any level and then a developer could uncomment the lines required.
Furthermore there are some obvious levels at which chunking/indexing
makes sense. Take for example a huge Collection of Simples. It would
make sense to chunk/index at the level of the pseudo-root element of
the Simples. I don't think it's possible to pre-generate all code to
parse the input in the right order and with chunking/indexing at the
right levels, but with a few smart examples a developer should be able
to quickly change the order and/or adapt to chunking/indexing further
up or down the tree.
> Am I missing a point here?
No, making a typical "currency convertor" example web service with a
single small input and a single small output is easy, but making a web
service that scales well is really hard!
There is a Perl module in the BioMoby CVS for XSLT based parsing. It
was developed in France some time ago if I remember correctly and
AFAIK it is not maintained, so it probably lacks some of the newer
stuff like proper error handling, async services etc., but it might be
a nice example of what can be done with XSLTs.
Ok, those of you who managed to read all the way up till here earned a
beer on the next BioMoby developers meeting!
Cheers,
Pi
> The above is doable, of course. But you see why I wanted to have
> references
> only on the primitive type level. If we have them on any level (as
> it seems
> to be) I need, in my implementation, actually make another (local)
> references for the primitive type, anyway. Of course, it is better
> than the
> remote references because I do not need to make a network connection
> for
> each individual primitive type (point taken, Pieter) - but it still
> to be
> done.
>
> Cheers,
> Martin
>
> --
> Martin Senger
> email: martin.senger at gmail.com,m.senger at cgiar.org
> skype: martinsenger
> _______________________________________________
> MOBY-dev mailing list
> MOBY-dev at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/moby-dev
-------------------------------------------------------------
Wageningen University and Research centre (WUR)
Laboratory of Bioinformatics
Transitorium (building 312) room 1034
Dreijenlaan 3
6703 HA Wageningen
The Netherlands
phone: +31 (0)317-483 060
mobile: +31 (0)6-143 66 783
e-mail: pieter.neerincx at gmail.com
skype: pieter.online
-------------------------------------------------------------
From markw at illuminae.com Wed Jul 30 14:54:23 2008
From: markw at illuminae.com (Mark Wilkinson)
Date: Wed, 30 Jul 2008 07:54:23 -0700
Subject: [MOBY-dev] [MOBY-l] Apologies,
a hint for MIPS-Service substitutions, and an invitation
In-Reply-To: <48902BAE.7000501@mpiz-koeln.mpg.de>
References:
<48902BAE.7000501@mpiz-koeln.mpg.de>
Message-ID:
On Wed, 30 Jul 2008 01:51:58 -0700, Andreas Groscurth
wrote:
> I was wondering how you store this information ? are they mapped to the
> services/datatypes etc in the moby central database ?
At the moment we're not entirely sure where to put it. I am loathe to put
it in Moby Central as we don't yet know what the quality of the annotation
will be (though I guess Moby Central isnt' curated either, so... it
probably wouldn't hurt). Moreover, the Moby Central API isn't able to
query at the level of detail that we will be capturing these annotations,
so there's no compelling reason to put it there. For now, we're putting
it in a local RDF store, but we may eventually move it into Freebase
(http://www.freebase.com/) to enable direct queries there. we'll see how
it goes.
> so my suggestion is to think about a tagging system (via dashboard / web
> portal), which is permant available and allows everyone to tag moby
> stuff ?!
Certainly I think we need a dashboard panel that contains the annotation
interface (called "ED" - the Entity Describer http://entitydescriber.org;
written by our very own Eddie Kawas :-) ). ED is currently a bit too
tightly linked to Connotea, but we're in the process of ripping it out and
making it more standalone for this Jamboree.
Eddie, what do you think of a dashboard ED panel?
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
From edward.kawas at gmail.com Wed Jul 30 14:59:10 2008
From: edward.kawas at gmail.com (Edward Kawas)
Date: Wed, 30 Jul 2008 07:59:10 -0700
Subject: [MOBY-dev] [MOBY-l] Apologies,
a hint for MIPS-Service substitutions, and an invitation
In-Reply-To:
References: <48902BAE.7000501@mpiz-koeln.mpg.de>
Message-ID: <489081c6.22bd720a.2434.ffffe4ae@mx.google.com>
I like the dashboard panel idea a lot. Seems like the best place to keep
that information. Nice thinking Andreas!
Eddie
-----Original Message-----
From: moby-dev-bounces at lists.open-bio.org
[mailto:moby-dev-bounces at lists.open-bio.org] On Behalf Of Mark Wilkinson
Sent: July-30-08 7:54 AM
To: Core developer announcements; moby-l at lists.open-bio.org
Subject: Re: [MOBY-dev] [MOBY-l] Apologies, a hint for MIPS-Service
substitutions, and an invitation
On Wed, 30 Jul 2008 01:51:58 -0700, Andreas Groscurth
wrote:
> I was wondering how you store this information ? are they mapped to the
> services/datatypes etc in the moby central database ?
At the moment we're not entirely sure where to put it. I am loathe to put
it in Moby Central as we don't yet know what the quality of the annotation
will be (though I guess Moby Central isnt' curated either, so... it
probably wouldn't hurt). Moreover, the Moby Central API isn't able to
query at the level of detail that we will be capturing these annotations,
so there's no compelling reason to put it there. For now, we're putting
it in a local RDF store, but we may eventually move it into Freebase
(http://www.freebase.com/) to enable direct queries there. we'll see how
it goes.
> so my suggestion is to think about a tagging system (via dashboard / web
> portal), which is permant available and allows everyone to tag moby
> stuff ?!
Certainly I think we need a dashboard panel that contains the annotation
interface (called "ED" - the Entity Describer http://entitydescriber.org;
written by our very own Eddie Kawas :-) ). ED is currently a bit too
tightly linked to Connotea, but we're in the process of ripping it out and
making it more standalone for this Jamboree.
Eddie, what do you think of a dashboard ED panel?
M
--
Mark D Wilkinson, PI Bioinformatics
Assistant Professor, Medical Genetics
The James Hogg iCAPTURE Centre for Cardiovascular and Pulmonary Research
Providence Heart + Lung Institute
University of British Columbia - St. Paul's Hospital
Vancouver, BC, Canada
_______________________________________________
MOBY-dev mailing list
MOBY-dev at lists.open-bio.org
http://lists.open-bio.org/mailman/listinfo/moby-dev
From groscurt at mpiz-koeln.mpg.de Thu Jul 31 07:32:28 2008
From: groscurt at mpiz-koeln.mpg.de (Andreas Groscurth)
Date: Thu, 31 Jul 2008 09:32:28 +0200
Subject: [MOBY-dev] [MOBY-l] Apologies,
a hint for MIPS-Service substitutions, and an invitation
In-Reply-To: