Download presentation
Presentation is loading. Please wait.
Published byAmy Dixon Modified over 9 years ago
1
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 2
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). 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. This enables a developer to create compatible and interoperable Grid services without communicating with other Grid service developers. 3
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.http://www.eclipse.org/emf/ 4
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 5
6
Architecture – Service Synchronization 6
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. 7
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. 8
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. 9
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 10
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 11
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. 12
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 Allows for developers to find and download schemas and datatypes. GME schema discovery is a Discovery Extension Metadata extension Allows service creators to standard service information. Service Metadata is a Metadata extension for caBIG services. 13
14
Agenda Service Creation with Introduce Service Advertisement Service Discovery 14
15
Service Advertisement Registering with the Index Service Each Introduce generated grid service contains the functionality necessary to enable service advertisement to the Index Service. While a service is running it will periodically advertise its URL to the Index Service. This allows users to find your service on the grid via the Index Service and the caGrid Portal. 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 15
16
Service Advertisement - 2 Service Advertisement is an asynchronous 2-part registration of a service to the grid Index Service. 16
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. 17
18
Agenda Service Creation with Introduce Service Advertisement Service Discovery 18
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 discover 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 and discovering services. 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. 19
20
Service Discovery 20
21
Programmatic Discovery From: http://cagrid.org/display/knowledgebase/Client+Application+Guidehttp://cagrid.org/display/knowledgebase/Client+Application+Guide // Create Discovery Client DiscoveryClient discClient = 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”); 21
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.