Client Application Guide
Authors: Bill Stephens (caGrid Knowledge Center) and Sarah Honacki (caGrid Knowledge Center)
 | This Article is presented in BETA status.
We appreciate any and all caGrid users who can provide feedback on the article. If you wish to provide feedback, please email knowledge@cagrid.org |
Introduction
Many caGrid developers are involved in the creation of data services and analytical services to share and analyze data on the Grid. Although these services provide invaluable data retrieval and analysis functionality, there is a need to develop standalone graphical user interfaces to interact with these services. In particular, users of Grid applications+ desire the ability to use graphical user interfaces that hide the details of grid service interaction. For this reason, the caGrid distribution provides Java clients and APIs that can be used to interact with grid services included in the caGrid distribution. Several client applications that utilize caGrid services are available to the caGrid community. These applications are built using the Grid clients and APIs that will be presented in this guide and provide an excellent reference for the grid client application developer.
Goals
This guide is intended to explain and display the use of Grid APIs and service client Jars to create a prototype grid client application. We note that this guide introduces how to utilize client APIs bundled with caGrid and also shows how to use clients of community-contributed service developed using Introduce. This guide walks you through the steps to build a Grid+ client application. In each part of the guide, additional functionality is added. The final Grid application has the following features:
- Login to the Grid.
- Discover available Grid services.
- Obtain grid service endpoints.
- Query data services to obtain data in XML format
- Query data services to obtain data as Java objects.
- Pass data to an analytical service to perform data analysis.
Our example code will interact with several grid services including a grid data service for the caCORE SDK-like service used in the NCI'scaCORE Developer Boot Camp. This data service provides an interface to perform queries against the Boot Camp data model. This model contains the definition of various proteins, genes and organisms and has been semantically annotated with caDSR data element IDs. These caDSR ID, or Public IDs, will be used in the Discovery section of this guide to identify available grid services deployed to the Grid.
We note that this application guide uses the Community Training Grid.
Target Audience
This guide is intended for software developers wishing to create grid client applications. It is not intended for typical grid users.
Out of scope
This guide is focused on providing you with the information you need to develop applications that access Grid services. This guide will not focus on the use of specific graphical application frameworks or business logic.
Prerequisite Learning
In order to fully understand the information in this guide you should complete the following prerequisites.
Understanding the Boot Camp data model
The caBIG Developer Boot Camp provides developers with the opportunity to learn about the process of creating a semantically annotated logical model. Then students learn how to use the caCORE SDK to create an application to store this data and use caGrid to create a service to query the data over the Grid. In this guide, we use two Grid services that interact with the model used in the NCI Boot Camp. First, we query a Grid data service that provides access to data in the BootCamp model. Second, we use a Grid analytical service to filter data retrieved from the boot camp data service.
|
As a result, it is essential that you become familiar with the boot camp data model. The data model used for the Boot Camp defines protein, gene, and organism information and the relationships between each.
The classes that we use in this guide include the Organism and Protein classes. Note that each organism has a one-to-many association to the Protein class (indicating one or more proteins for each Organism).
If you would like to review the complete Boot Camp Data Model, you can access it as the following URL: http://software.cagrid.org/knowledgecenter/bootcamp/BootCampModel.zip |
|
Boot Camp caCORE SDK Application:
The caCORE SDK Boot Camp web application has been deployed to the caGrid Training Grid. Feel free to use this application to explore the data in the Boot Camp database.http://tutorials.training.cagrid.org:8080/BootCamp
You can find additional materials for the May, 2009 NCI BootCamp at the following URL:https://wiki.nci.nih.gov/display/caCORE/caBIG+Developer+Boot+Camp+May+5-6,+2009
Understand the use of caBIG semantics
In order to understand how caBIG semantically annotated domain models can be used to discover Grid data repositories and services, please read the following article. The article focuses on using caBIG Common Data Element IDs to find data that is made available on the Grid.
https://cabig-kc.nci.nih.gov/CaGrid/KC/index.php/Using_caBIG_Infrastructure_to_Find_and_Retrieve_Grid_Data
Article Phases