[MOBY] [MOBY-l] Interpreting results from Service->execute()

José María Fernández González jmfernandez at cnb.uam.es
Wed Mar 17 18:13:01 UTC 2004


> 
> In fact, I just figured this out. There must be an easy way to find out 
> the required input/output for a service. In my ignorance, I resorted to 
> going to that MOBY-S web-page that lets you select input data types, 
> then shows what services accept that type. I selected each protein type 
> in sequence, until I found your services. But since there are at least 
> half a dozen different protein ID systems, it gets complicated. I guess 
> I could have written a script to iterate through them all, then iterate 
> through the services I'm interested in, to find one that works. But 
> shouldn't it be possible, once I know which service I'm interested in, 
> to figure out what input it's looking for? I'm thinking specifically in 
> terms of finding out what are the acceptable namespaces. Of course, I'm 
> sure it is possible (wouldn't it be in the WSDL?) - anyone care to point 
> me to a description of this? :)

Well, my preferred technique (for humans) is using the Ken Steube's 
"Service Instance Encyclopedia", which distills the list of services 
into a HTML using a CGI.

http://plantsp.sdsc.edu/plantsp/cgi-bin/MOBY/list.services.cgi

Obviusly, you can do it yourself using the available methods 
'retrieveServiceNames' and 'findService' in MOBY::Client::Central 
object, if you are using Perl libraries.

> 
>> But it is true, there are two bugs: one related to signal an invalid 
>> namespace, and other related to say 'no output'. I'm fixing them since 
>> now.
>>
>>>
>>> The simpler answer might be that the service isn't working properly ;-)
> 

I think there should be a common way to tell the most common errors, 
like an unrecognized namespace or an empty output.

> 
> This raises an issue that would seem to increase in importance as the 
> number of available services increases: if a service either doesn't work 
> properly (someone puts it up prematurely, for example), or doesn't work 
> at all (it worked a while ago, but something broke, and nobody is fixing 
> it), how are service consumers to know? This is especially true if the 
> response for unrecognized input data is simply an empty message. Should 
> there be a meta-service, that rates the other services in terms of 
> reliability, percentage time that it's up, length of service, or other 
> criteria? I'm not imagining that it would "Service A is much better than 
> Service B", merely that "Service C was last reported working 
> successfully on January 19, 2002." or "Service D has responded to 97% of 
> all requests in the last week." Maybe there is something like this already?
> 

<perhaps off-topic?>
The same problem is out there since years for CGI's. Some biological 
'classical' web services are maintained by a team, but the input and 
output formats change, breaking all the programs which use it (I had 
some nasty experiences when I built a meta-threading server 3~4 years 
ago). Some other services remain working until they break, because they 
were built for a project which finished some years ago. The surviving 
ones are: 1) the most successful ones 2) those ones with support (money 
to pay a maintainer).
</perhaps off-topic?>

Perhaps, the only way to tackle a piece of this problem is periodically 
doing some tests on the service. Some of them could be generic, like 
sending an ill-formed input or a correct object belonging to an 
incorrect namespace. The others should be provided by the service 
creator: two or three input objects which should give the same output. 
Obviusly, many services will not have a deterministic output, because 
they are based on a changing database, for instance. But for these cases 
the service creators could notify 'our service is still alive!'.

You know, there is no easy way!

	Best Regards,
		José María

-- 
José María Fernández González		e-mail: jmfernandez at cnb.uam.es
Tlfn:	(+34) 91 585 46 69		Fax:	(+34) 91 585 45 06
Grupo de Diseño de Proteinas		Protein Design Group
Centro Nacional de Biotecnología	National Center of Biotechnology
C.P.: 28049				Zip Code: 28049
Campus Universidad Autónoma. Cantoblanco, Madrid (Spain).



More information about the moby-l mailing list