[MOBY-dev] Services in registry

Ola Spjuth ola.spjuth at farmbio.uu.se
Fri Aug 31 09:20:18 UTC 2007


Thanks for the help, Edward.

I have some further questions/comments below:

On Aug 30, 2007, at 17:34 , Edward Kawas wrote:

> Hi Ola,
>
>> After trying to programmatically access several services I
>> turned to using the dashboard and found that there are many
>> in "default"
>> registry which answer with "Connection refused", "Operation
>> timed out" etc. Shouldn't the purpose of service discovery be
>> that you only discover available services? How does this
>> process work? Doesn't the registry poll (from time to time)
>> if services are available?
> The registry does do such polling, but many of the clients do not  
> use this
> information yet. One client that does is gBrowse_moby
> (http://mobycentral.icapture.ubc.ca/cgi-bin/gbrowse_moby)

I tried the getStatus() method for MobyService in jMoby, but all  
services in default repository are reported to be "UNCHECKED". Any  
idea why this is the case? Is polling turned off for some reason or  
is the information not used in jMoby?

> For a list of services and whether they respond to a 'ping' (true/ 
> false),
> try the following link:
> http://mobycentral.icapture.ubc.ca:8090/authority/ValidateService
>
>> There are also some (I have tried several) services which
>> answer "Response could not be parsed", "(500)Internal Server
>> Error", and some respond with a stacktrace in the
>> moby:serviceNotes tag.
> I am not sure what services you tried, but one thing to keep in  
> mind is that
> most of the services require a namespace, in addition to the amino  
> acid
> sequence, and the service may fail ungracefully when one doesn't  
> exist.

I have not really understood this. Why do services require a  
namespace? If I am a novice user and have an aminoacid sequence, how  
can I find available services for it then? How do sort out which  
namespaces are relevant? And should not services respond with  
"namespace is required"?

>
>> Many services also have poor or
>> limited description, which makes it hard (almost impossible
>> for novice users) to interpret what they actually do. I guess
>
> This blame here lies with the people that register the services.
> Unfortunately, the only option available to a user of these  
> services would
> be to contact the service provider and ask them to possibly update the
> description to make it more descriptive.

Is it possible to have a curation step and a "CuratedRegistry" where  
only services that are well documented can be registered? That would  
inspire better documentation from providers as they want to see their  
services in the CuratedRegistry.

>
>> the solution to this is to require unit tests of a service
>> upon registration, which the server can test the service with
>> from time to time and make sure that it is operational. It
>> should at least be quite simple to just send e.g. a
>> predefined AminoAcidSequence to all services which accept
>> them as inputs and verify that you get a valid result back.
> This is actually harder than it sounds. What does valid mean? A  
> service may
> return seemingly random data or nothing at all and still be considered
> operational ...

But if it is required to provide at least 2 complex use cases with  
input and a correct output, the server can run these tests from time  
to time. I assume this would fit nicely in the CuratedRegistry.

>> I am wondering how to use BioMoby in our rich client Bioclipse
>> (www.bioclipse.net) at present. Is the resolution to set up
>> our own central repository which we manually curate? How can
>> I in that case synchronize this with the BioMoby registry but
>> only include services which are actually available and return
>> something useful (and omit all services meant for testing)?
> One thing to try would be including only those services that link  
> mentioned
> above stated where 'alive'. This information is available in RDF/ 
> XML from
> http://biomoby.org/RESOURCES/MOBY-S/ServiceInstances, with the  
> predicate
> 'isAlive'.

I assume the same information should be available from the API call  
myService.getStatus() from jMoby API. Right?

>> How are things done for the different registries available in
>> the dashboard? Is it even possible for a person to document
>> someone else's services?
> Not really. the only thing to do is email the service provider and  
> ask them
> to nicely update their descriptions. Unless of course you plan to  
> host your
> own moby registry. In that case, you could mirror the services  
> (using a
> variety of ways, but one would be using the RDFAgent and the RDF  
> mentioned
> above). You could edit the RDF document as much as you wanted and the
> changes would appear in your clone.

I see. But wouldn't all changes like added documentation be lost when  
a service is updated? I assume the only good alternative is to  
require more documentation and have some sort of curation system.  
Maybe I have to set up my own registry to get things working properly  
for my client, but I'd prefer to use a central registry.

>> It is not my intention to sound negative. BioMoby looks
>> extremely promising and will be an integral part of our
>> project's future. Maybe I have just been unlucky with
>> choosing services for testing. Could someone give me a few
>> names of services which accept 1-2 AminoAcidSequence's and
>> are fully operational from the dashboard?
> I found a few, of the ones that didn't work, I emailed the provider.
> Inb.bsc.es
> 	searchInterPro, runEmboss(AntigenicFromSequence | ChargeFromSequence
> | PepstatsFromSequence | PepstatswindowFromSequence | ...)
>
> (In dashboard, I sorted the services by input and attempted to run  
> a few of
> the ones under the branch 'AminoAcidSequence'), etc.
>
> I used the amino acid sequence: RFCFDRLCF

Thanks a lot for the help!

Ola






More information about the MOBY-dev mailing list