# Presentation: 020693

## caGrid Technology Demonstration

## What is caGrid?

- Development project of Architecture Workspace, aimed at helping define and implement Gold Compliance
- caGrid provides the core infrastructure needed for the Grid, tooling and APIs for clients, as well as tooling to provide “**a way**” to achieve Gold compliance

## caGrid Components

- Leverage existing technologies:
- caDSR, EVS, Mobius GME: Common data elements, controlled vocabularies, schema management
- Globus Toolkit (currently version 4.0.1)
- Core grid services infrastructure
- Service deployment, service registry, invocation, base security infrastructure
- Additional Core Infrastructure
- Higher-level security services
- Grid service access to metadata components (caDSR, GME, etc)
- Workflow, Identifier services
- Service Provider Tooling (Introduce)
- Graphical service development and configuration environment
- Abstractions from service infrastructure for Data and Analytical services
- Deployment wizards
- Client Tooling
- High-level APIs for interacting with core components and services
- Graphical Tools

## caGrid Data Description Infrastructure

- Client and service APIs are object oriented, and operate over well-defined and curated data types
- Objects are defined in UML and converted into ISO/IEC 11179 Administered Components, which are in turn registered in the Cancer Data Standards Repository (caDSR)
- Object definitions draw from vocabulary registered in the Enterprise Vocabulary Services (EVS), and their relationships are thus semantically described
- XML serialization of objects adhere to XML schemas registered in the Global Model Exchange (GME)

## What will you see?

- Graphically building queries to integrate semantically related data from multiple data services
- Executing a parallel workflow over multiple caGrid services
- Creating, Implementing, Deploying, and Invoking a new secure analytical service in a matter of minutes
- Accessing a secure grid service by having your local institution vouch for your identity

## Data Service Overview

- Specialization of caGrid grid services to expose data through a common query interface
- Present an object view of data sources
- Exposed objects are registered in caDSR and their XML representation in GME
- Queries made with CQL Query objects
- Results returned as objects (or identifiers) nested in a CQL Query Result Set

## caGrid Data Service

**caGrid**
- Data Service

## caBIO

**caGrid**
- Data Service

- Gene

- Agent

- Taxon

- Object Model Metadata

## CQL query

- caBIO

**caGrid**
- Data Service

- caGrid User

- Gene

- Agent

- Taxon

- Object Model Metadata

## XML Resultset

- caBIO

**caGrid**
- Data Service

- caGrid User

- Gene

- Agent

- Taxon

- Object Model Metadata

## caBIO

**caGrid**
- Data Service

- PIR

**caGrid**
- Data Service

- Gene

- Agent

- Taxon

- Object Model Metadata

- Protein

- Gene

- Object Model Metadata

## caBIO

**caGrid**
- Data Service

- PIR

**caGrid**
- Data Service

- Gene

- Agent

- Taxon

- Object Model Metadata

- Protein

- Gene

- Object Model Metadata

## CQL

**caGrid**
- Data Service

- PIR

**caGrid**
- Data Service

**caGrid**
- Federated Query Engine

- Federated Query Plan

## CQL

**caGrid**
- Data Service

- PIR

**caGrid**
- Data Service

**caGrid**
- Federated Query Engine

- Federated Query Plan

- XML Resultset

- Data Service
- LIVE DEMO

## Workflow demo overview

- Standards-based workflow
- Business Process Execution Language (BPEL)
- Data
- Object model registered in caDSR
- Pipe results between services
- Federation
- caGrid 1.0 Data and Analytical Grid Services
- Data: Argonne
- Analytical: Duke and OSU
- Iteration
- Iteration over set of objects, performing service invocation on each
- Parallelism
- Divide processing between two different sites

## Service-oriented Science via caGrid workflow

- Workflow script:
- Fetch data from
- data service in Chicago
- Perform step 1
- using service at Duke
- Perform step 2
- using service at OSU

- Analytic service
- @ osu.edu

- Analytic service
- @ duke.edu

- Workflow
- Results

## caGrid workflow implementation

- <BPEL
- Workflow
- Doc>

- BPEL
- Engine

- Analytic service
- @ osu.edu

- Analytic service
- @ duke.edu

- <Workflow
- Results>

- <Workflow
- Inputs>

- Each workflow is also a service
- Enacted by BPEL Engine
- Typically runs like a script (synchronous)
- Other powerful models are possible

- link

- link

- link

- link

## Workflow demo overview

- Data Service

- 10x

- interpolate

- removeBG

- denoise

- align

- normalize

**Duke**

- interpolate

- removeBG

- denoise

- align

- normalize

**OSU**

- CQL

- plot

**Argonne**

- 5x

- 5x

- 5x

- 5x

- 5x

- 5x

- 10x

- 10x

- Workflow
- LIVE DEMO

## Dorian

## Dorian IFS – Proxy Creation

**Proxy Creation Workflow**
- Client authenticates with Local IdP
- Client creates public/private key pair to use for grid proxy.
- Client requests Dorian to create a grid proxy.
- Dorian verifies that the SAML assertion provide by the user is signed by a Trusted IdP and that the user has a valid account.
- Dorian locates the uses grid credentials, private key and certificate
- Dorian uses the public key provided to create a proxy certificate and signs it with the users private key
- Dorian returns the proxy certificate to the user.
- The user may now use the proxy to authenticate to grid services

**SAML **
**Assertion**

**Username / Password**

**SAML Assertion**

**SAML Assertion**

**Signed**

- Dorian
- LIVE DEMO

## Introduce Service Authoring Toolkit

**Service Creation**

- Populate required variables for service creation
***Name*** = published service name
***Creation Direction*** = directory to create the service skeleton
***Package*** = the root java package you wish to use for your service
***Namespace Domain*** = the namespace to be used to define the service interface and types

## Created Skeleton Layout

- = generated

- = built

- = developers
-    contribution

## Created Skeleton Layout (cont)

- = manages the *resources *
*   **(metadata) *of this grid service

- = implements the port type
-    and calls into the actual
-    clean unboxed interface
-    the developer defined

- = developers implementation
-     of the defined interface

- = the developer defined grid
-    service interface

- = implements the developer
-    defined interface and calls into
-    the generated client port type
-    stub

## Created Skeleton Layout (cont)

- = service metadata registration configuration

- = describes the services security configuration

- = services WSDL file

- = configuration files for eclipse development

- = ant build files

- = client configuration file for axis

- = deployment time service properties

- = introduce representation of service

- = JNDI service resources configuration

- = namespace mappings for axis

- = server configuration file for axis

## Introduce Service Authoring Toolkit

**Discover Types**

- Using discovery tools a user can quickly obtain data models for the data types that they wish to use in this service.  These data types can come from the caDSR, GME, or even the file system.

## Introduce Service Authoring Toolkit

**Add Operations**

- Using the selected types the user can easily design their strongly typed grid service interface by adding new methods, describing their signatures, and configuring any security settings

## Introduce Service Authoring Toolkit

**Service Security**

- Service level security settings can easily be configured to match your institutional or laboratorial security constraints, or used to create a custom security configuration

## Introduce Service Modification Architecture

## Introduce Service Authoring Toolkit

**Service Deployment**

- Once the generated interface has been implemented the service can then be deployed to a service container so that it can be discovered and invoked

- Introduce
- LIVE DEMO

## What didn’t you see?

- Many more features and enhancements in the pipeline for caGrid 1.0
- Higher-level APIs for interacting with data services, and a stronger integration with typing from caDSR/GME
- Web accessible Grid Monitoring Portal, featuring geospatial rendering of available grid nodes
- Service framework and APIs for grid unique identifiers
- Many higher-level security infrastructure services and management capabilities
- Integration with caDSR for data types discovery when building grid services
- Extensive graphical configuration of caGrid services
- Much more...

## Project Resources and Communication

**caGrid 1.0 GForge Home:**
- Feature Requests
- Bug Reports
- Discussion Forums
- Public Wiki
- Downloads / Source Repository
- _[http://gforge.nci.nih.gov/projects/cagrid-1-0/](http://gforge.nci.nih.gov/projects/cagrid-1-0/)_
**caGrid Users Mailing List**
- _[https://list.nih.gov/archives/cagrid_users-l.html](https://list.nih.gov/archives/cagrid_users-l.html)_
- _[cagrid_users-l@list.nih.gov](mailto:cagrid_users-l@list.nih.gov)_
**Architecture Workspace**
- Community direction from Working Groups
- Report out and feedback during WS calls

## caGrid Team

**Ohio State University - Department of BioMedical Informatics**** ****(**_[http://](http://bmi.osu.edu/)__[bmi.osu.edu](http://bmi.osu.edu/)__[/](http://bmi.osu.edu/)_**)**
- Dave Ervin
- Shannon Hastings
- Tahsin Kurc
- Stephen Langella
- Scott Oster
- Joel Saltz
**Argonne National Lab / University of Chicago****(**_[http://](http://www.globus.org/)__[www.globus.org](http://www.globus.org/)_**)**
- William Allcock
- Jarek Gawor
- Ravi Madduri
- Frank Siebenlist
- Michael Wilde

**Duke University**
-  A. Jamie Cuticchia
- Patrick McConnell
**Georgetown University**
- Colin Freas
- Paul A. Kennedy
- Chad La Joie
**SAIC** **(**_[http://](http://www.saic.com/)__[www.saic.com](http://www.saic.com/)_**)**
- Manav Kher
**Booz | Allen | Hamilton**** (**_[http://](http://www.bah.com/)__[www.bah.com](http://www.bah.com/)_**)**** **
- Arumani Manisundaram
- Michael Keller
- Reechik Chatterjee

## caGrid Technology Demonstration

- Backup Slides

## Introduce caDSR Type Browser

## Using actual SDK Generated Objects in Introduce