Introduce provides support for development and deployment of strongly-typed, secure Grid services. The goals of our work are two-fold. The first is 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. The second goal is 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. We believe that the availability of tools like Introduce will greatly impact the efficacy of the Grid in fields where Grid style architectures are a great change to the everyday development and management of data and analytical services.
The Introduce toolkit uses the GT as the underlying core Grid infrastructure. Introduce has a rich plug-in environment that enables developers to add to the functionality the framework provides and the services it can generate. Introduce enables strongly-typed grid services by providing an extension framework for plugging in data type and semantics discovery service, enabling Introduce to leverage semantic data models and strongly-typed data types provided by the community. The salient features of Introduce can be summarized as follows:
- It provides a graphical user interface (GUI) and high-level functions that encapsulate and hide the common complexities and low-level command-line tools of the GT for generating a suitable service layout. These include client and server wrappers to encapsulate the "boxed" document literal Grid service calls, functions to create configurable service properties, functions to specify resource properties and register metadata, functions to specify the security configurations of the service operations of the service, and support to deploy a service to commonly used Grid service containers. The service developer can create and modify Grid service interfaces using a GUI. Developers can also write their own service description documents, which the Introduce toolkit can use to create and modify a service programmatically.
- It enables development of strongly-typed services. Using plug-ins, Introduce enables discovery of data types from virtually any style of data type providers.
- It is customizable and extensible via the use of extension plug-ins. Plug-ins allow for Introduce to be customized and its base functionality to be extended 1) for custom and common service types in an application domain and 2) to employ customized discovery mechanisms for common data types for creating strongly-typed services.
- It allows for implementation of secure services. It leverages all aspects of the Grid Security Infrastructure (GSI) in order to provide customizable service- and method-level security configuration and code generation. It provides support for service developers to optionally turn on authentication and authorization support for individual service methods as well as the entire service itself.
- It manages all the service-specific files and directories required by the GT for correct compilation and deployment. It also generates object-oriented client APIs which can be used by client applications to interact with the service.
Introduce is available with the caGrid distributions (https://cagrid.org); caGrid is the Grid architecture and middleware infrastructure of the NCI-funded cancer Biomedical Informatics Grid (caBIG https://cabig.nci.nih.gov) program. Originally implemented as a tool to assist analytical service developers in caBIG, Introduce has evolved into a more generic Grid service development and deployment toolkit. The current version of Introduce has been used as the core caBIG service development toolkit in caGrid and has now been adopted across many other grid computing development programs. Introduce was originally released in December 2006 to build various types of services ranging from data services to core security infrastructure services to biomedical image analysis services. Introduce was also accepted as an Incubator project for the GT in November 2006.