RODSA-DAI Service Registry Entry

Description

RODSA-DAI is a code library that facilitates secure SQL queries to different RODS (Realtime Outbreak Detection System) databases exposed using OGSA-DAI across the globus network. RODS is an outbreak detection software application maintained by the University of Pittsburgh Realtime Outbreak and Disease Surveillance Laboratory. It collects symptom and disease data from various hospitals using HL7 listeners and aggregates it into a central database. RODS instances are usually regional, and formerly were only able to see their own database. Thus, RODSAdai was developed as a prototype interface for allowing one RODS instance to query other RODS Instance's data.

In short, it is a a toolkit with an interface that will return a collection of RODS style spatial series or a RODS style time series given a query, a globus container endpoint, and an OGSA-DAI resource name. It will check for proper credentials (a user-proxy for the globus x.509 certificate) before running the query.

The RODS databases contain sensitive medical information. Thus, OGSA-DAI libraries were chosen to expose the appropriate tables as Data Resources accessible across a secure network built using the Globus toolkit.

In addition to RODSA-DAI, a simple servlet used to test and demonstrate the connectivity called RODSA-DAI-Web was created.

Location of source code

The source code for RODSA-DAI is located in the University of Pittsburgh SubVersion repository. The address is: https://svn.rods.pitt.edu/repos/phgrid/rodsadai

The source code for RODSA-DAI-Web is located in the same repository at: https://svn.rods.pitt.edu/repos/phgrid/rodsadai

Deployment instructions

Prerequisites:

    • A local build box with subversion, maven, tomcat, globus, ogsadai, and the standard ogsadai 'littleblackbook' test database.
      • Making the environment needed to build RODSA-DAI will be an excellent tutorial for installing all the appropriate peices elsewhere.Access to some RODS Data, or a reasonable sample set (most likely a backup of a decontented sample database).
    • The Globus toolkit installed on a computer with access to the desired RODS database, and the computer running a client that would be using RODSA-DAI
    • OGSA-DAI installed in the globus container of the node with access to the database.
    • An OGSA-DAI data resource connected to the RODS Database deployed on that OGSA-DAI install. (So, expose the database to the globus network using OD).
    • A box that will run the client.
      • If a web-enabled application like RODS or RODSA-DAI Web is going to be used then JBoss is also needed.

Installation/Configuration:

    1. Check out the RODSA-DAI code from the repository.
    2. Configure the rodsadai.filter-example.properties file, rename it to the rodsadai.filter.properties appropriate server and resource names and build a package file.
    3. Test the build running mvn test.
    4. Package the library using the mvn package command
    5. Deploy the resulting jar to the computer that will host the client program.
    6. Generate a user proxy for the network the OGSA-DAI resource of the RODS Database is exposed-to.
    7. Run the application from the command line, confirm results of spatial or time series.
    8. Develop/Install client program that uses RODSA-DAI.

Rodsadai-web:

If you are interested in using a quick little web-client that has already been implemented, you can download and deploy the Rodsadai-web client.

    1. Make sure you have run "mvn install" on the RODSA-DAI project, the rodsadai jar will be needed by the rodsadai-web project.
    2. update and double check the rodsadai-web.filter-example.properties file (and save it as rodsadai-web.filter.properties) to ensure that
      1. The default server matches a server in the rodsadai.filter.properties file.
      2. The google maps key is updated for the server address where rodsadai-web is going to be run-from.
    3. run mvn package in rodsadai-web to make the rodsadai-web.war file
    4. Deploy the war file to the java web container of choice. (Jboss is recommended).

Links to the design diagrams for the development of service

The link for the Wiki Page with design diagrams and a discussion of the RODSA-dai here.

Link to the RODSA-DAI demo

There is a simple RODSA-DAI-Web demo here

Anything else potential users would be interested in regarding the RODSA-DAI client and the related OGSA-DAI services.

The WSDL file for the DataRequestExecutionService.wsdl file (The DRER of OGSA-DAI) is included in the attachments.