CaGrid services

From Informatics

Jump to: navigation, search

Contents


Services built and running using caGrid:

  1. Anova
  2. Aracne
  3. Dispatcher
  4. HierarchicalClustering
  5. MarkUs
  6. Mindy
  7. MatrixREDUCE
  8. netboost
  9. SkyLine
  10. SomClustering

To determine if the grid version of a geworkbench component has been deployed for a particular version of geworkbench, see the corresponding release page and look at the list of included and excluded components. For example, a grid version of netboost exists, but is not deployed in GeWorkbench Release 1.7

Code

Code generation

We generate the template code from our Cagrid service model using introduce.

Please see Introduce#Generate_java_code

Code implementation

We implement our analysis in XxxImpl.java (assume Xxx is your analysis name)

For example, Anova, the algorithm is in AnovaImpl.java it implement the execute() method, and call the jarred version from client.

This XxxImpl.java will be run on grid servers, while XxxClient.java run on Dispatcher.

Call the jarred version from client

In order to only maintain one copy of source code for algorithm, we use the jar jarred from client side.

Put the jar in the lib of grid services, and call the algorithm in XxxImpl.java

Remote Exception Handling

Throw a RemoteException with message in it, our exception handling mechanizm will put into a queue and when user polling the result, we'll pass the exception to user as the result. Then, on client side (PollingThread.java), when it received a exception as a result, it will popup dialog box and show user the message in the exception.

logging

Use apache log, to log exceptions/errors/debug info.

Code modification

Please remember, even you only modify one line in the source code, to see the result of modification, you'll need to do the deploying process from scratch (including compiling, deploying, jar classes, put into dispatcher, deploy dispatcher).

Use this ant script would make you easier.

Exception/Tips: While debugging, you can use eclipse to start the tomcat for you in debug mode. And use eclipse's hotswap feature to modify the code on runtime if the code you modify doesn't introduce any new variables. In this case, no redeploying is necessary.

Deploy

see Production#Deploying_Services (probably should move to here)

Debug

see CaGrid Debugging

Personal tools