# Presentation: 157113

## caBIG Interoperability and Compatibility

- Patrick McConnell
- Duke Comprehensive Cancer Center

- Brian Davis
- 3rd Millennium

## Agenda

- What is interoperability and compatibility?
- What does it mean to be caBIG compatible?
- How does a system become caBIG compatible?
- How do you build a caBIG compatible system?
- Can we answer any questions for you?

## Interoperability

- ability of a system to access and use the parts or equipment of another system

- Semanticinteroperability

- Syntacticinteroperability

## Compatibility

- When two systems can interoperate (access/use), they are compatible
- Compatibility usually involves a set of guidelines to become interoperable
- So, we will talk mostly of compatibility, which inherently includes interoperability

## Examples of Incompatibility

- Semantic incompatibility:
- French and Spanish speakers
- Syntactic incompatibility:
- Blind person speaking to deaf person using sign language.

**Notes:**
Bd starts

## Compatibility

**SYNTACTIC**

**caBIGTM Compatibility Guidelines**

## Programming and Messaging Interfaces

-                                      ***TM***

**Examples**

- JavaDocs
- XML, ASN.1
- SOAP, CORBA

- Globus
- caGrid-based services

## Information Models (UML Models)

-                                      ***TM***

**Examples**

## Vocabularies/Terminologies

-                                      ***TM***

**Examples**

- GeneOntology
- NCI Thesaurus

- GeneOntology registered in EVS
- NCI Thesaurus

## Common Data Elements (CDEs)

-                                      ***TM***

**Examples**

## Becoming caBIG Compliant

- Build a caBIG-compliant system
- Developing a Model Driven Architecture (MDA) Approach
- The caCORE SDK can help
- Complete a caBIG compatibility review
- Bronze, Silver, and Gold reviews
- Industry partners: Bronze “self-certification”
- caBIG Funded Participants: Silver level review by cross-cutting workspace review
- Gold process is still being finalized

## Bronze-level Certification

- https://cabig.nci.nih.gov/guidelines_documentation
- A verified self assessment
- Descriptive documentation of the interface
- Public controlled vocabularies
- Data element descriptions constructed from controlled terminology sources
- Diagrammatic information model
- Developer completes a self assessment
- NCICB reviews

## Silver-level Review: Questions that the cross-cutting review teams ask:

- Is there an _**object model**_ of input and output data?  Can parts of the object model be re-used?
- Are the concepts (_**vocabulary**_) used to describe the objects available for others to re-use? (EVS)
- Are the _**common data elements**_ (CDEs - data descriptors) that describe the object model (objects and attributes) available to others for re-use? (caDSR)
- Is there a public _**Application Programmers Interface**_ (API) that describes the data descriptors (CDEs)?

## The caCORE SDK workflow can help achieve Silver level compliance

## The caCORE SDK workflow can help achieve Silver level compliance

- Info Model

- Messaging
- Interfaces/
- API

- Common
- Data
- Elements

- Vocabularies

## Gold-level Compliance

- Gold-level compatibility guidelines are not yet complete
- We know this involves
- CDE harmonization
- Vocabulary harmonization
- caGrid compatibility

**Notes:**
Patrick starts

## caBIG System Types

- Information system
- Provides mechanisms to access data
- Java beans, queries, etc.
- Data is caBIG-compliant
- Analysis tool
- Algorithmic manipulation, visualization
- Input caBIG-compliant data
- Analysis service
- A tool that can be invoked programmatically (remotely)
- Input caBIG-compliant data
- Returns caBIG-compliant data

## Building an information systemThe MDA Approach

- Analyze the problem space and develop the artifacts for each scenario
- Use Cases
- Use Unified Modeling Language (UML) to standardize model representations and artifacts. Design the system by developing artifacts based on the use cases
- Class Diagram – Information Model
- Sequence Diagram – Temporal Behavior
- Use meta-model tools to generate the code

## UML Class Diagram

## UML Sequence Diagram

## Using caCORE to supplement MDA

- MDA has limitations
- Limited expressivity for semantics
- No facility for runtime semantic metadata management
- caCORE SDK
- UML Modeling Tool (any with XMI export)
- Semantic Connector (concept binding utility)
- UML Loader (model registration in caDSR)
- Codegen (middleware code generator)
- Security Adaptor (Common Security Module)

## caCORE Architecture

**Java Applications**

**Data Access**
**Objects**

**Web Application Server**

_**Interfaces**_
**Java**
**SOAP**
**XML**

**HTTP Clients**

**SOAP **
**Clients**

_**Data**_

_**Clients**_

**Perl  **
**Clients**

**Enterprise**
**Vocabulary**

**Common**
**Data**
**Elements**

_**Middleware**_

**A**
**P**
**I**

**A**
**P**
**I**

**A**
**P**
**I**

**A**
**P**
**I**

**Data **
**Access**
**Objects**

**Domain**
**Objects**
**[Gene, Disease, etc.]**

**Domain**
**Objects**
**[Gene, Disease, Agent,**
**etc.]**

**Biomedical**
**Data**

**Authorization**

## Building Analytical Tools and Services

- caCORE SDK does not directly address analytics
- Consuming/producing caBIG-compatible data
- Semantic Connector, UML Loader
- Providing APIs
- JavaDoc
- Providing programmatic access
- Apache Axis (web services)

- http://photos.sys-con.com/story/res/39696/fig2.jpg

## From Silver to Gold

**Not all use cases are addressed by Silver-compatible systems**
*Advertisement*
- Service Provider composes service metadata describing the service and publishes it to grid.
*Discovery*
- Researcher (or application developer) specifies search criteria describing a service of interest
- The research submits the discovery request to a discovery service, which identifies a list of services matching the criteria, and returns the list.
*Invocation*
- Researcher (or application developer) instantiates the grid service and access its resources

## Grid View

## caGrid

**Grid Communication Protocol**

**Service Description**

**Service**

**Workflow**

**Service Registry**

**Security**

**Metadata  Management**

**Resource Management**

**Functions**

**Management**

**ID Resolution**

**OGSA Compliant - Service Oriented Architecture**

**Transport**

**Schema  Management**

## Grid Services

- Two types of top-level grid services defined
- Data Services: respond to queries and return caBIG-compatible data objects
- Analytical Services: accept and process caBIG data objects, then return results that are also caBIG data objects.
- caGrid: Introduce Toolkit
- Provides a mechanism for creating caGrid services
- All you have to do is plug in the implementation

## Questions?

- What is interoperability and compatibility?
- What does it mean to be caBIG compatible?
- How does a system become caBIG compatible?
- How do you build a caBIG compatible system?
- Can we answer any questions for you?

## References

- Compatibility Guidelines revision 2:
- _[https://cabig.nci.nih.gov/guidelines_documentation/caBIGCompatGuideRev2_final.pdf](https://cabig.nci.nih.gov/guidelines_documentation/caBIGCompatGuideRev2_final.pdf)_
- Bronze Certification:
- _[https://cabig.nci.nih.gov/guidelines_documentation](https://cabig.nci.nih.gov/guidelines_documentation)_
- Sliver-Level Compatibility Reviews:
- https://cabig.nci.nih.gov/workspaces/VCDE/VCDE_Compatibility_Review/Compatibility_Review
- caCORE SDK Programmers Guide:
- _[http://gforge.nci.nih.gov/docman/view.php/58/1459/caCORE_SDK1.1_Programmers_Guide.pdf](http://gforge.nci.nih.gov/docman/view.php/58/1459/caCORE_SDK1.1_Programmers_Guide.pdf)_
- Vocabulary and Common Data Elements Workspace Website:
- _[https://cabig.nci.nih.gov/workspaces/VCDE](https://cabig.nci.nih.gov/workspaces/VCDE)_
- Architecture Workspace Website
- _[https://cabig.nci.nih.gov/workspaces/Architecture](https://cabig.nci.nih.gov/workspaces/Architecture)_
- caGrid:
- https://cabig.nci.nih.gov/workspaces/Architecture/caGrid/
- caGrid download:
- http://ncicb.nci.nih.gov/download/
- caGrid 1.0 development
- http://gforge.nci.nih.gov/projects/cagrid-1-0/