technical introduction to cagrid service development cagrid 1.3 justin permar cagrid knowledge...

Download Technical Introduction to caGrid Service Development caGrid 1.3 Justin Permar caGrid Knowledge Center

Post on 25-Dec-2015

215 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Slide 1
  • Technical Introduction to caGrid Service Development caGrid 1.3 Justin Permar caGrid Knowledge Center https://cabig-kc.nci.nih.gov/CaGrid/KC
  • Slide 2
  • Agenda Introduction to Introduce Service Categories Secure Services
  • Slide 3
  • Introduce Vision Introduce is the caGrid service development toolkit aimed at software developers building Grid services The vision is to be one stop shop for grid service development Provide a simple, yet powerful, graphical user interface (GUI) to encapsulate complexities of grid service development Provide an extensible toolkit to create and modify grid services programmatically A GUI front-end is a user interface for the Introduce engine
  • Slide 4
  • Introduce Overview caGrid uses the Globus toolkit under the hood Introduce is a framework which enables fast and easy creation of Grid services based on Globus that incorporate caGrid innovations Hide all grid-ness (distributed computing infrastructure) from the developer Utilize best practice separation of concerns patterns, implemented as a layered grid service architecture Messaging layer, serialization layer, business logic layer
  • Slide 5
  • Introduce Overview (2) Integration with other core grid services and architecture components to enable common Grid use cases GAARDS Security Infrastructure Grid service directory (the Globus Index Service) XML schema storage (the Global Model Exchange Service) Service metadata annotation (the Metadata Model Service Service) NCIs Cancer Data Standards Repository Extension Framework for integrating with other architecture components Extensions provide much of the functionality in Introduce Extensions typically interact with the service (under development) and with external Grid services to add new capabilities to your Grid service
  • Slide 6
  • Introduce Extensions Grid Usage
  • Slide 7
  • Introduce Features Definition of Grid objects types (based on XML schema) Creation of service interface Modification of operations Adding operations Removing Operations Updating Operations Importing Operations (via WSDL) Graphical Service Configuration Advertisement Security Service Metadata Specification Service Metadata Editing Service Configuration Properties Auto Generates Service Code and client API Graphical Service Deployment Globus, Tomcat, and JBoss
  • Slide 8
  • Introduce Requirements Utilize best practice separation of concerns Enable development of strongly-typed services discovery and use of published Grid data types (e.g., type definitions in caDSR or XML schema) self describing services via metadata advertisement and registration configuration (Index Service endpoint) Generate object-oriented client APIs Customizable and extensible via the use of plug-ins Create secure services provide customizable service-, method-, and resource- level security
  • Slide 9
  • Service Layers
  • Slide 10
  • Addressing Strong Typing Strongly typed interfaces: Utilizes XML schema to define Grid object types Uses the XML schema for object binding layer (XML-Java class mapping framework) Business logic layer that Introduce emits uses only Java objects (no XML exposed) Example from caGrid
  • Slide 11
  • Service Advertisement and Discovery When a grid service is deployed to caBIG, it registers its availability and service metadata with a central indexing service (Index Service). The Index Service maintains a list of registered services and aggregates their metadata. It is the white and yellow pages of the grid. Once the service has registered with the Index Service, users can discover the service using caGrid Portal, Globus command line tools, or incorporate the Discovery Client API in to their own applications.
  • Slide 12
  • Addressing Configurable Security Security: Provide a service operation to return the security configuration to each client that wants to invoke service operations Introduce generated clients will automatically retrieve this metadata and use it to configure the client before making a call to the service. Customizable authentication and authorization options
  • Slide 13
  • Service Metadata All caGrid Services are expected to publish a set of standard metadata comprised of metadata registered in caDSR and EVS; metadata describes the meaning of service operations and data types and also provides details of the hosting institution that deployed the service. Metadata is used to discover Grid resources. Standard Service Metadata Instances of this model describe the grid service operations and parameters as well as the semantics of the data models used in the service. Standard service metadata also describes basic information about the service, such as the hosting information, including a point of contact. Editable in Introduce as the ServiceMetadata Resource Property. Standard Data Service Metadata caGrid Data Services require additional standard data service metadata (the grid Domain Model), which details not only the UML Classes exposed by the service, but their relationships such as associations and inheritance. This information describes the logical model over which data service queries are executed. Viewable in Introduce as the DomainModel Resource Property.
  • Slide 14
  • Service Contexts A service context is a service, same as the primary (main) service The purpose of a service context is to provide operations within a context, such as an analytical service job request Each service context has an associated resource that holds data for the context Each context is typically conceptually tied to an owner of that context As an example, when a user submits a job to an analytical service, the service creates a new job context and returns a reference to the user The user can then check job status using operations on the job context
  • Slide 15
  • Stateful Web Services A resource holds state. The context provides operations that typically act on that state. The combination of context (operations) + resource (data) comprises a stateful web service. The service returns an end- point reference (EPR) that points to the context (and resource). The client uses the EPR to connect to their context.
  • Slide 16
  • Agenda Introduction to Introduce Service Categories Secure Services
  • Slide 17
  • Service categories Introduce allows you to create two primary categories of strongly typed, semantically annotated Grid services: 1. An analytical service provides access to analysis routines. 2. A data service provides access to data repositories. Note: technically, a data service is an analytical service. It is a specialization of an analytical service for the purposes of Grid data sharing. A data service extends an analytical service with a standard query method and the standard data service metadata
  • Slide 18
  • Analytical Services caGrid Analytical Services provide the ability to process, transform, and analyze the data available from a Data Service Analytical services all detail with strongly typed, semantically harmonize objects (take these objects as input and return these objects as output) Analytical service aspects Definition of one or more Grid types One or more service contexts One or more operations that utilize those types Authentication and authorization policies at service-, operation-, and resource-level Service properties Use of one or more service extensions for additional functionality For example, the caGrid Transfer service to efficiently transfer large amounts of data
  • Slide 19
  • Data Services (1) Data services are added to Introduce with an Introduce extension. caGrid 1.3 supports building data services using caCORE SDK (up to caCORE SDK version 4.2). The extension provides an easy to use wizard to create a Data service using the artifacts generated by the caCORE SDK. The query language for data services is an object-centric language called CQL.
  • Slide 20
  • Data Services (2) The wizards provides steps to: Select the client interface to the caCORE SDK Configure the properties to access your caCORE- like system Generate a caGrid domain model from the XMI (also used by caCORE SDK) This domain model represents the UML model for Grid use Allows you to select the schemas that represent objects in the domain model When deployed, the caGrid Data Service will use your caCORE-like system to execute your CQL query against the data in your database.
  • Slide 21 ">
  • Example CQL Query
  • Slide 22
  • Agenda Introduction to Introduce Service Categories Secure Services
  • Slide 23
  • GAARDS Security Infrastructure GAARDS provides services and tools for the administration and implementation of security policy in caGrid.
  • Slide 24
  • Authentication in Introduce Introduce allows the user to customize security for the entire service or specific methods on an service context. The user can select any of the options as determined by your security policy. Introduce Options None: no authentication is performed Custom: select authentication options Transport Layer Security Encryption equivalent to https and requires authentication to grid. Secure Conversation Ensures a secure conversation (multiple messages) between a client and service Secure Message A message is signed or encrypted with your grid credential.
  • Slide 25
  • Authorization in Introduce Authorization For secu

View more