RODS-GDBC

Purpose

To build a Globus-based service using Introduce that will connect-to a rods database and send back a simple array of time series or spatial series. It will be compared to RODSA-DAI and should be a bit simpler to install and execute, and it should still be secure since it is going into the globus container.

Basic Structure:

    • RODS-GDBC's main part will be a .gar package to be deployed on globus nodes that can access RODS Databases via JDBC.
      • contains a properties file to contain connection info
      • will probably be built on site due to need for different JDBC drivers based on database being used
      • ultimately packaged as a globus .gar and deployed to globus container.
    • RODS-GDBC client to be accessed by RODS or other display applications with interface very similar to RODSAdai.

Concerns being addressed

OGSA-DAI is rather cool, but it is a bit of an ordeal to set up and install and test, and using it for a simple "expose this data to the secure globus network" is a bit overkill. This seems like it would be an easier "fill out this .properties file, run mvn install, and you're good to go" for exposing a RODS Database. It may not be as simple as mvn install, (It might be more like "fill out this .properties file, put a file in this directory, run ant, run gar-deploy on the resulting gar, and you're good to go). But it will have a simpler install and might even be able to eliminate a two-ended install (OGSA-DAI on one end and RODSAdai on the other).

New Concerns generated

    • Is it easy for RODS and other applications to access the Globus toolkit?
      • RODS could not be directly integrated with RODSADai because the OGSA-DAI client components used by RODSAdai used a special version of the AXIS web-service libraries that conflicted with the AXIS libraries RODS used. It appears that the If RODS tries to access RODS-GDBC directly, will it need that special version of Globus' AXIS?
      • Is this the place to use JarJarLinks to reformat the axis used by the client?
    • Security.
      • Username and Password probably in a properties file.
      • Will have to make sure that the Globus user that accesses RODS-GDBC are not authorized to access any sort of file transfer services
    • Introduce generated code bundleability.
      • Can the massive pile of introduce goodness be easily adapted to mvn build scripts
        • How many plug ins are needed.
      • Need for multiple JDBCs or an extra step to include appropriate JDBC in lib section.

Use Case:

    1. Environment preparation (Complete)
      1. Install Introduce in a local node with Globus
      2. Generate a demo project (Stock quote?)
      3. Deploy sample GAR and use client generated by introduce to confirm output.
    2. Generate and test service
      1. Make a JDBC client for RODS data resource (allow flexibility between mysql and postgresql)
      2. Design the interface for a RODS-GDBC service and use Introduce to build the skeleton
      3. Incorporate client into RODS-GDBC skeleton generated for introduce
      4. Package .gar file and deploy to globus
      5. Run Introduce-generated client to pull back data
    3. Demo Project
      1. Make RODS-GDBC-web in the image of RODSAdai-web, deploy and compare.
    4. Repackage project
      1. See about creating or discovering mvn plugins for introduce project for easy installation and deployment.