The Feature Client
There is a number of moby clients already available in the distribution of BioMoby.
This client extends the existing clients by providing some features which helps to work
with jMoby and Moby web services with no knowledge of the internal jMoby API.
So first have a look at the features which the client does provide:
- Calling services with the concrete objects (like AminoAcidSequence) instead of the internal Moby API structures. This helps to understand
the input and output handling better and to work with full data structures.
- Service discovery based on service name or input/output definition (like return all services which consume an
AGI locus code and return PMIDs). This enables to automatically detect group of services which fulfill identical or nearly the same tasks.
- Parallelization for multiple service calls. The client enables you to call multiple services at the same time.
- Using a timeout if the service does not return in that time. Limit the time you want to wait for a service to return by providing a maximal time
in which the service shall give back a result.
- Calling a service once with possible different inputs. If you want to call one (or more) service(s) with several inputs the client does help you.
Some of these features are already existing in the current clients but this client packs them together and enables an easy use of the different features.
A fully working example of the client can be viewed in the JABBA application
Building the Feature Client
Assuming you have already checked out the jMoby project (if not have a look here) just type:
ant bindist-featureClient
or
/moby-live/Java/build.sh bindist-featureClient (on an UNIX machine)
/moby-live/Java/build.bat bindist-featureClient (on a Windows machine)
This will build the FeatureClient and you will find it at
/moby-live/Java/docs/dist/featureClient-yyyy-mm-dd.tar.gz
/moby-live/Java/docs/dist/featureClient-yyyy-mm-dd.zip
You can copy the file to any directory of your choice and unpack it. This wil generate a featureClient folder with the jar and the libraries inside.
Running / Using the Feature Client
Basically you have two possibilities you can do with the Featuer Client:
- Run it with the provided test programs (see next section).
- Use it in your own project
In the latter case just ensure to have the FeatureClient.jar and the jars from the lib folder in your CLASSPATH. How to use the client in detail can be discovered if you look at the source code from the examples at moby-live/Java/src/main/de/mpg/mpiz_koeln/pcb/featureClient/test and in the javadoc.
Running the examples
The following test programs are available to see how the client works. You can call one of them by using
java -jar FeatureClient.jar < OPTION >
where option can be one of the following:
- SimpleSingleCall (calls one service once (maps an refseq identifier to an AGI locus code) )
- SimpleMultiCall (calls one service more than once (returns go information for a go term) )
- SingleCallDefinition (calls more services once which return for an AGI locus code pubmed ids)
- SingleCallWithParameters (calls one service once with parameters (to get orthologs from RefSeq)
- SingleMultiServiceCall (calls two services once (get publications for AGI locus code)
- ComplexSingleCall (calls one service once with a complex dataype (returns a protein sequence from a sequence
- MultCallByDefinition (calls more services more often which return for an AGI locus code mapman bins
- MultiCallWithParameters (calls one service more often with parameters (to get orthologs from RefSeq)
This shall give an impression what is possible with the client !