1 / 21

Service Creation, Advertisement and Discovery

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.

chynna
Download Presentation

Service Creation, Advertisement and Discovery

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda • Service Creation with Introduce • Service Advertisement • Service Discovery

  3. 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.

  4. 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 (http://www.eclipse.org/emf/), 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.

  5. 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

  6. Architecture – Service Synchronization

  7. 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.

  8. 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.

  9. 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.

  10. 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: https://cabig-kc.nci.nih.gov/CaGrid/KC/index.php/Knowledgebase

  11. 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: https://wiki.nci.nih.gov/display/ISO21090/ISO+21090+Wiki

  12. 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.

  13. 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

  14. Agenda • Service Creation with Introduce • Service Advertisement • Service Discovery

  15. 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) • deploy.properties: • Service registration flag • Index Service URL

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

  17. 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.

  18. Agenda • Service Creation with Introduce • Service Advertisement • Service Discovery

  19. 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.

  20. Service Discovery

  21. Programmatic Discovery From: http://cagrid.org/display/knowledgebase/Client+Application+Guide // 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”);

More Related