Service creation advertisement and discovery
1 / 21

Service Creation, Advertisement and Discovery - PowerPoint PPT Presentation

  • Uploaded on

Service Creation, Advertisement and Discovery. Including caCORE SDK and ISO21090 William Stephens Operations Manager caGrid Knowledge Center February 2010. Agenda. Service Creation with Introduce Service Advertisement Service Discovery. Service Creation: Introduce.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Service Creation, Advertisement and Discovery' - chynna

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Service creation advertisement and discovery

Service Creation, Advertisement and Discovery

Including caCORE SDK and ISO21090

William Stephens

Operations Manager

caGrid Knowledge Center

February 2010


  • Service Creation with Introduce

  • Service Advertisement

  • Service Discovery

Service creation introduce
Service Creation: Introduce

Introduce is the caGrid Service Creation Toolkit.

It provides a user interface for development and deployment of strongly-typed, secure Grid services. The goals of the project are two-fold.

  • To reduce the development time and knowledge required to implement and stand up Grid Services using the Globus Toolkit (GT). Developing services with the Globus Toolkit requires a good knowledge of Grid Services technologies and the details of the toolkit.  Introduce hides from service developers the complexities of low-level tools and processes for service development and deployment.

  • To enable greater levels of interoperability in the Grid environment.  To this end, we implement support in Introduce for development of strongly-typed services. A strongly-typed service is one that consumes and produces data types that are well-defined and published in the environment. The use of published types enables a developer to create compatible and interoperable Grid services without needing to communicate with other Grid service developers.

Architecture service creator
Architecture – Service Creator

Service Creator

The service creator is composed by a series of templates using the Java Emitter Templates (JET) component, which is part of the Eclipse Modeling Framework (, for generating source code and configuration files, and a skeleton set of directories which is used to generate a Grid service that can be built, registered, and deployed in the Grid environment.

Architecture service s ynchronization
Architecture – Service Synchronization

The process by which the source code and configuration generation tools of the Introduce toolkit will analyze the service's current implementation with that of the desired service description. This process will add, remove, and modify any service methods, resource properties, and service settings which have been added, removed, or modified from the service description

Architecture service deployer
Architecture - Service Deployer

Service Deployer

The service deployment features of Introduce currently support the following:

  • Deploying Grid services to a Globus, JBoss or Tomcat container.

  • Deployment time configuration of Index Service registration settings.

  • Deployment time configuration of service properties to allows a service deployer to specify configuration settings that apply to a particular deployment of the service.

  • Deployment time configuration of service metadata to allow a service deployer to specify service metadata, including Hosting Research Center and Point of Contact, that apply to a particular deployment of the service.

Benefits of using introduce
Benefits of Using Introduce

Benefits of using Introduce:

  • Provides a user interface that allows developers to rapidly generate grid services.

  • Builds services using domain models and artifacts generated by caCORE.

  • Hides the monotonous parts of service development, like WSDL and schema creation to allow the developer to focus on functionality.

  • Generates services with a common structure and reliance upon standard software required for grid integration.

  • Generates a client to allow other users to invoke your service on the grid.

  • Many extension points allow users to create custom “plugins” that add functionality to the base application.

Data service types
Data Service Types

caCORE-based Data Service

  • caGrid 1.2

    • caCORE 3.1, 3.2

    • caCORE 4.0

  • caGrid 1.3.*

    • caCORE 3.1, 3.2(.1)

    • caCORE 4.0, 4.1, 4.2, 4.3, 4.3 with ISO21090 Datatypes

  • caGrid 1.4

    • caCORE 4.0, 4.1, 4.2, 4.3, 4.3 with ISO21090 Datatypes

      caCORE 4.4

  • Development of 4.4 data service style in progress.

    Data service styles are extensions to Introduce.

Data service data sources
Data Service Data Sources

Historically, caCORE has supported the following databases:

  • Oracle

  • MySQL

    Adding MSSQL

    Last Fall, the Knowledge Center supported Roswell Park in determining the caCORE 4.3 and caGrid 1.3 settings required to create a data service using MSSQL Server 2008.

    The configuration has been provided back to the caCORE team for inclusion in future caCORE documentation. It is also documented on the KC WIKI:

Iso21090 support
ISO21090 Support

The ISO 21090 Healthcare Data Type Standard provides a set of data type definitions for representing and exchanging basic concepts that are commonly encountered in healthcare environments in support of information exchange in the healthcare environment, and specifies a collection of healthcare related data types suitable for use in a number of health-related information environments.

NCI CBIIT ISO 21090 Localization Common Library is a specialized and constrained version for 30 of the ISO 21090 Healthcare Data Types. Localization is the list of approved ISO 21090 data types that will be maintained by CBIIT, along with common implementation artifacts.

More Information:

Iso21090 support 2
ISO21090 Support (2)

Introduce Support

  • Data Services

    • caCORE 4.3 with ISO21090 Datatypes extension

    • JAXB for serialization / deserialization

    • CQL to HQL translation engine updated for special handling when generating HQL queries involving the ISO 21090 data types.

  • Analytical Services

    • ISO21090 Datatypes and NCI localizations extension

    • Implemented as an Introduce Datatype Discovery Panel Extension

    • The extension provides a simple way to add the ISO21090 XSDs and jars, and configures the serialization of the types for a grid service.

Extending introduce
Extending Introduce

Introduce is a service development framework that provides several extension points. These points allow developers to add functionality to Introduce.

Extension Types:

  • Service Extension:

    • Allow developers to create custom service Types

    • Data services are a type of Service Extension

  • Discovery Extension

    • GME schema types is a Discovery Extension

  • Metadata extension

    • Service Metadata is a


  • Service Creation with Introduce

  • Service Advertisement

  • Service Discovery

Service advertisement
Service Advertisement

Registering with the Index Service

Each Introduce generated grid service provides the infrastructure necessary to enable service advertisement to the Index Service. Service advertisement allows users to find your service on the grid via the Index Service and the caGrid Portal.

Service advertisement occurs periodically while a service is running to allow the Index Service to have an accurate list of active services.

Registration is made possible by with the following artifacts:

  • caGrid Advertisement Client

  • caGrid Service Metadata:

    • etc/serviceMetadata.xml

  • Service Domain Model (Data Services)


    • Service registration flag

    • Index Service URL

Service advertisement 2
Service Advertisement - 2

Service Advertisement is an asynchronous 2-part registration of a service to the grid Index Service.

Service advertisement issues
Service Advertisement Issues

Issues with registration:

  • The service in question is not actually initialized and running.

  • The hosting machine's system clock is significantly off.

    Issues with Aggregation

  • The container is not configured with a public IP or externally resolvable domain name.

  • The service is running behind a firewall.

  • The service or container is running with untrusted credentials.

  • The service must be providing Service Metadata and specify that it should be registered to the Index Service.


  • Service Creation with Introduce

  • Service Advertisement

  • Service Discovery

Service discovery
Service Discovery

All caGrid services are required to publish standard metadata that describes their functionality. This information is aggregated in the Index Service, and can be used to find out information about the currently running services, including their current Endpoint References (EPRs). Building on this information, a Discovery API is provided with caGrid that facilitates the querying of this information toward the aim of discovering service EPRs.

The Discovery Client API supports:

  • Obtaining a list of registered services: all services, data services or analytical services

  • By service name

  • By service operation name, input or output

  • By domain model

  • By concept code, data concept code or operation concept code.

Programmatic discovery
Programmatic Discovery


// Create Discovery Client

DiscoveryClientdiscClient = new DiscoveryClient(serviceUrl);

// get all available service URLs

EndpointReferenceType[] allServices = discClient.getAllServices(true);

//Get all available data service URLs

EndpointReferenceType[] dataServices = discClient.getAllDataServices();

// Search for “protein” services

EndpointReferenceType[] searchedServices = discClient.discoverServicesBySearchString(“protein”);

// Search for services by public ID. 2322246 = entrezGeneId

EndpointReferenceType[] searchedServices = discClient.discoverServicesBySearchString(“2322246”);