CaGrid 1.4 Deprecation Plan
Overview
This document provides the deprecation plan for caGrid 1.4, in adherence with the [deprecation policy]. As caGrid only supports the current release and two previous versions, the release of caGrid 1.4 will mark the removal of support for caGrid 1.1 and earlier releases.
Stable APIs
A Stable API is one in which there may be additional methods, but no existing public method signatures will change, nor will the runtime behavior change.
As a general philosophy on backwards compatibility, caGrid has always attempted to maintain service-level backwards compatibility of its core service along the caGrid 1.x release stream. That is, the client API of a core service from a given 1.x release should be able to communicate with a service running 1.x or newer code. We are continuing this general philosophy in this specific plan (with exceptions noted below). The items enumerated in this list represent the APIs and other items which can be considered stable and backwards compatible in the caGrid 1.4 release (from the 1.3 release).
NOTE: The omission of an API from the Stable list does not necessarily mean use of the API should be avoided or it will change in the release, but rather that its stability between releases is not currently considered a requirement (as of the caGrid 1.3 release, there were 3137 Classes in the published javadocs; complete backwards compatibility is not feasible). If you have concerns with a particular omission, please contact the development team for its consideration into future deprecation plans.
Core Service Interfaces (WSDL Operations)
Authentication Service
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- Authentication Service
- authenticateUser
Credential Delegation Service (CDS)
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- CDS
- initiateDelegation
- approveDelegation
- findDelegatedCredentials
- updateDelegatedCredentialStatus
- findCredentialsDelegatedToClient
- searchDelegatedCredentialAuditLog
- deleteDelegatedCredential
- addAdmin
- removeAdmin
- getAdmins
Delegated Credential Resource
- Service Security:
- getServiceSecurityMetadata
- WS-Resource Lifetime:
- Destroy
- Delegated Credential
- getDelegatedCredential
Dorian
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- Local Identity Provider
- registerLocalUser
- authenticateUser
- changeLocalUserPassword
- doesLocalUserExist
- Federation
- getCACertificate
- requestUserCertificate
- requestHostCertificate
- getOwnedHostCertificates
- getTrustedIdentityProviders
Federated Query Processor Service (FQP)
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- FQP
Results Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- WS-Resource Lifetime:
- SetTerminationTime
- Destroy
- WS-Notification:
- Subscribe
- FQP
- enumerate (returns access to standard WS-Enumeration Service)
- transfer (returns access to standard caGrid Transfer Service)
- isProcessingComplete
Global Model Exchange (GME)
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- GME
- publishXMLSchemas
- getXMLSchema
- getXMLSchemaNamespaces
- getXMLSchemaAndDependencies
- deleteXMLSchemas
- getImportedXMLSchemaNamespaces
- getImportingXMLSchemaNamespaces
Grid Grouper
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- Grid Grouper
- getStem
- getChildStems
- getParentStem
- updateStem
- getSubjectsWithStemPrivilege
- getStemPrivileges
- hasStemPrivilege
- grantStemPrivilege
- revokeStemPrivilege
- addChildStem
- deleteStem
- getGroup
- getChildGroups
- addChildGroup
- deleteGroup
- updateGroup
- addMember
- getMembers
- isMemberOf
- getMemberships
- deleteMember
- addCompositeMember
- deleteCompositeMember
- grantGroupPrivilege
- revokeGroupPrivilege
- getSubjectsWithGroupPrivilege
- getGroupPrivileges
- hasGroupPrivilege
- isMember
- getMember
- getMembersGroups
Grid Trust Service (GTS)
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- GTS
- addTrustedAuthority
- findTrustedAuthorities
- removeTrustedAuthority
- addPermission
- findPermissions
- revokePermission
- updateTrustedAuthority
- addTrustLevel
- updateTrustLevel
- getTrustLevels
- removeTrustLevel
- addAuthority
- updateAuthority
- updateAuthorityPriorities
- getAuthorities
- removeAuthority
- updateCRL
- validate
Index Service
Main Service
- WS-Resource Lifetime:
- SetTerminationTime
- Destroy
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- WS-ServiceGroup:
- Add
- create
- WS-Notification:
- Subscribe
- GetCurrentMessage
Entry Service
- WS-Resource Lifetime:
- SetTerminationTime
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
Metadata Model Service (MMS)
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- MMS
- generateDomainModelForProject
- generateDomainModelForPackages
- generateDomainModelForClasses
- generateDomainModelForClassesWithExcludes
- annotateServiceMetadata
- getModelSourceMetadata
Taverna Workflow Service
Main Service
- Service Security
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- Taverna
- createWorkflow
Taverna Workflow Service Impl (Context Service)
- WS-Lifetime
- Destroy
- SetTerminationTime
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- WS-Notification
- Subscribe
- Taverna Impl
- start
- pause
- resume
- cancel
- getWorkflowOutput
- getStatus
- getDetailedStatus
Transfer Service Context
- getDataTransferDescriptor
- getStatus
- setStatus
- Service Security
- getServiceSecurityMetadata
- WS-Lifetime
- Destroy
- SetTerminationTime
- WS-Notification
- Subscribe
Provided Operations (WSDL Operations)
WS-Enumeration
- PullOp
- RenewOp
- GetStatusOp
- ReleaseOp
- WS-ResourceProperties
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
Data Services
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- Data Services
- query
WS-Lifetime
- Destroy
- SetTerminationTime
WS-Notification
- Subscribe
WS-ResourceProperties
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
Service Security Provider
- getServiceSecurityMetadata
Client APIs
gov.nih.nci.cagrid.advertisement.AdvertisementClient
- All public methods
gov.nih.nci.cagrid.advertisement.TerminationClient
- All public methods
gov.nih.nci.cagrid.discovery.client.DiscoveryClient
- All public methods
org.cagrid.gaards.authentication.client.AuthenticationClient
- All public methods
org.cagrid.gaards.dorian.client.LocalUserClient
- All public methods
org.cagrid.gaards.dorian.client.GridUserClient
- All public methods
org.cagrid.gme.client.GlobalModelExchangeClient
- All public methods
org.cagrid.gme.common.FilesystemCacher
- All public methods
org.cagrid.gme.common.FilesystemLoader
- All public methods
org.cagrid.mms.client.MetadataModelServiceClient
- All public methods
gov.nih.nci.cagrid.gts.client.GTSPublicClient
- All public methods
gov.nih.nci.cagrid.gts.client.GTSAdminClient
- All public methods
gov.nih.nci.cagrid.syncgts.core.SyncGTS
- All public methods
gov.nih.nci.cagrid.gridgrouper.client.GridGrouper
- All public methods
gov.nih.nci.cagrid.gridgrouper.client.Group
- All public methods
gov.nih.nci.cagrid.gridgrouper.client.Member
- All public methods
gov.nih.nci.cagrid.gridgrouper.client.Membership
- All public methods
gov.nih.nci.cagrid.gridgrouper.client.NamingPrivilege
- All public methods
gov.nih.nci.cagrid.gridgrouper.client.Stem
- All public methods
org.cagrid.gaards.cds.client.DelegationUserClient
- All public methods
org.cagrid.gaards.cds.client.DelegationAdminClient
- All public methods
org.cagrid.gaards.cds.client.DelegatedCredentialUserClient
- All public methods
gov.nih.nci.cagrid.fqp.client.FederatedQueryProcessorClient
- getMultipleResourceProperties
- getResourceProperty
- queryResourceProperties
gov.nih.nci.cagrid.fqp.results.client.FederatedQueryResultsClient
- destroy
- setTerminationTime
- subscribe
- isProcessingComplete
- enumerate
- transfer
- getMultipleResourceProperties
- getResourceProperty
- queryResourceProperties
- getExecutionStatus
gov.nih.nci.cagrid.data.client.DataServiceClient
- getResourceProperty
- getServiceSecurityMetadata
gov.nih.nci.cagrid.data.enumeration.client.EnumerationDataServiceClient
- getResourceProperty
- getServiceSecurityMetadata
Utility APIs
Transfer Services
org.cagrid.transfer.context.client.helper.TransferClientHelper
- All public methods
org.cagrid.transfer.context.service.helper.TransferServiceHelper
- All public methods
Data Services
gov.nih.nci.cagrid.data.cql.validation.DomainModelValidator
- All public methods
gov.nih.nci.cagrid.data.cql.validation.JaxPCqlValidator
- All public methods
gov.nih.nci.cagrid.data.cql.validation.ObjectWalkingCQLValidator
- All public methods
gov.nih.nci.cagrid.data.utilities.* (All Utility Classes, except BdtDataServiceHandle)
- All public methods
WS-Enumeration
gov.nih.nci.cagrid.wsenum.utils.EnumIteratorFactory
- All public methods
gov.nih.nci.cagrid.wsenum.utils.EnumerationResponseHelper
- All public methods
Other
gov.nih.nci.cagrid.metadata.MetadataUtils
- All public methods
gov.nih.nci.cagrid.gridgrouper.client.GridGrouperClientUtils
- All public methods
Introduce
Utility API
gov.nih.nci.cagrid.introduce.common.CommonTools
- All public methods, except the createAndOutputProcess(String cmd), which is deprecated and replaced by createAndOutputProcess(List<String> cmd)
Common API
- gov.nih.nci.cagrid.introduce.common.ImportInformation
- gov.nih.nci.cagrid.introduce.common.NamespaceInformation
- gov.nih.nci.cagrid.introduce.common.SchemaInformation
- gov.nih.nci.cagrid.introduce.common.ServiceInformation
- gov.nih.nci.cagrid.introduce.common.SpecificMethodInformation
- gov.nih.nci.cagrid.introduce.common.SpecificServiceInformation
Extension API
Deployment
- gov.nih.nci.cagrid.introduce.portal.extension.DeploymentUIPanel
Discovery
- gov.nih.nci.cagrid.introduce.portal.modification.discovery.NamespaceTypeDiscoveryComponent
- gov.nih.nci.cagrid.introduce.portal.discoverytools.NamespaceTypeToolsComponent
Service
- gov.nih.nci.cagrid.introduce.extension.CodegenExtensionException
- gov.nih.nci.cagrid.introduce.extension.CodegenExtensionPostProcessor
- gov.nih.nci.cagrid.introduce.extension.CodegenExtensionPreProcessor
- gov.nih.nci.cagrid.introduce.extension.CreationExtensionException
- gov.nih.nci.cagrid.introduce.extension.CreationExtensionPostProcessor
- gov.nih.nci.cagrid.introduce.portal.extension.CreationExtensionUIDialog
- gov.nih.nci.cagrid.introduce.portal.extension.ServiceDeploymentUIPanel
- gov.nih.nci.cagrid.introduce.portal.extension.ServiceModificationUIPanel
- gov.nih.nci.cagrid.introduce.upgrade.common.ExtensionUpgraderI
Other
WebSSO
WebSSO-Client-Acegi: An application that uses the default implementation of WebSSO Acegi Client must extend the abstract class org.cagrid.websso.client.acegi.BaseUserDetailsService and implement the abstract protected method loadUserByGridId(String gridId) method to load the following User information accountenabled/disabled, accountNonExpired/accountexpired, credentialsNonExpired/credentialsExpired, accountNonLocked/accountlocked and the authorities from database using CSM or Data Access Service.
org.cagrid.websso.client.acegi.BaseUserDetailsService
- abstract protected WebSSOUser loadUserByGridId(String gridId)
WebSSO Acegi client puts the loaded WebSSOUser object in Acegi SessionContextHolder.
The process and WebSSOUser class are stable; to retrieve user credentials:
- (WebSSOUser)SecurityContextHolder.getContext().getAuthentication().getPrincipal();
caGrid Standard Metadata Models
- The following main Class models and all associated Classes of:
- gov.nih.nci.cagrid.metadata.ServiceMetadata
- gov.nih.nci.cagrid.metadata.dataservice.DomainModel
- gov.nih.nci.cagrid.metadata.security.ServiceSecurityMetadata
Deprecated Services and APIs
CQL 1.0
Reason for deprecation
Since the caGrid 1.0 release, CQL has been the standardized simple query language used by all Data Services. Over the course of several years of production use by the community, a variety of use cases have arisen that cannot be supported by CQL. This led to the creation of a successor language, CQL2 which aims to address many of these use cases while staying true to the intent of CQL being a "minimum barrier to entry" query language for data resources on the grid (as opposed to a full fledged query language like SQL). A technology preview of CQL2 was released with caGrid 1.3, and the language has been further refined and is now stabilized for use going forward as a proper super set language of CQL, and thus its replacement.
Migration Plan
caGrid 1.4 will support both CQL and CQL2 in its Data Service infrastructure (client APIs, Introduce extensions, etc), as well as Federated Query Processor Service. Users are encouraged to migrate their clients, applications, and service implementations towards exclusive use of CQL2. Introduce will provide Data Service extension upgraders to migrate services by adding the new CQL2 operations, however service developers will be required to implement a CQL2 query processor for any data services which make use of a non-cagrid provided data source. Data services backed by (for example) the caCORE SDK 4.x will automatically be upgraded with a new CQL2 query processor. CQL support may be removed in a caGrid 2.x release.
| Legacy CQL method | Preferred CQL 2 method |
|---|---|
| query | executeQuery |
| enumerationQuery | executeEnumerationQuery |
| transferQuery | executeTransferQuery |
DCQL 1.0
Reason for deprecation
DCQL, by definition, is an extension of CQL to add support for querying and joining multiple data services, using CQL. As CQL is deprecated, DCQL is also deprecated and superseded by DCQL2.
Migration Plan
caGrid 1.4 will support both DCQL and DCQL2 in its Federated Query Processor Service. Users are encouraged to migrate their clients and applications towards exclusive use of DCQL2. DCQL support may be removed in a caGrid 2.x release.
The Federated Query Processor Service in caGrid 1.4 will continue to support the DCQL methods, however their continued use is discouraged, and all new development should make use of DCQL 2.
| Legacy DCQL method | Preferred DCQL 2 method |
|---|---|
| execute | executeQuery |
| executeAndAggregateResults | executeQueryAndAggregate |
| executeAsynchronously | queryAsynchronously |
| query | queryAsynchronously |
Additionally, the FederatedQueryResults client is deprecated. Users should migrate to make use of the FederatedQueryResultsRetrieval client, which handles DCQL 2 results, and is returned by the queryAsynchronously method of the FederatedQueryProcessorClient.
Grid Grouper Authorization Plugin for GridFTP (gridftpauthz Project)
Reason for deprecation
This project provided a Grid Grouper authorization callout from a GridFTP server using JNI. There has been very little uptake of GridFTP for caGrid users, due largely to its difficulty in installation, and platform specific requirements (which are major reasons for the development of caGrid Transfer as a lighter weight and simpler solution). As such, supporting extensions to GridFTP in the core caGrid distribution no longer makes sense.
Migration Plan
The caGrid Transfer documentation provides a tutorial on how to effectively and easily create data transfers with its API and services. It does not currently support Grid Grouper based authorization, but that feature could easily be added should there be need from the caGrid community.
Legacy CSM and XPath based PDPs (authz Project)
Reason for deprecation
The authz project provides Globus Policy Decision Points and utility APIs for performing authorization decisions based on information from a CSM installation
. The primary usage of these APIs was via Introduce extensions. In caGrid 1.3, a simpler CSM authorization extension was added, making use of the Introduce authorization extension framework new to Introduce 1.3. The authz project works with an old version of CSM (version 3.2), and requires features of CSM that are no longer supported. Additionally, it provides more complex capabilities than have been adopted the caGrid user community (identifying protected information via XPath expressions over the SOAP envelope).
Migration Plan
Introduce 1.3 introduced an Introduce Authorization Extension for CSM , which satisfies the basic CSM integration use cases (protecting services and operations via protection elements), and leverages a modern CSM version (4.0). The more powerful XPath-based selectors, which implement Globus interfaces, will continue to work after they are desupported by caGrid, and interested users could incorporate them into their projects' source code if necessary.
Dorian and Authentication Service Client Wrapper APIs (in gov.nih.nci.cagrid.* packages)
Reason for deprecation
In caGrid 1.3, newer client APIs were introduced in org.cagrid.gaards.* packages, which in some cases, make more intelligent use of modern features of Dorian and the Authentication Service (such as new metadata), and can better handle communicating with all caGrid 1.x versions of the services (using new features where possible). While the existing client APIs are still provided, and we have no immediate plans of removing them, developers should migrate to the newer client APIs if at all possible.
Migration Plan
As of caGrid 1.3, newer versions of these APIs where released in the org.cagrid.gaards.* packages. All these clients are stable from 1.3 to 1.4. The mapping is shown below:
| Legacy client | Preferred caGrid 1.4 client |
|---|---|
| gov.nih.nci.cagrid.authentication.client.AuthenticationClient | org.cagrid.gaards.authentication.client.AuthenticationClient |
| gov.nih.nci.cagrid.dorian.client.IdPRegistrationClient | org.cagrid.gaards.dorian.client.LocalUserClient |
| gov.nih.nci.cagrid.dorian.client.IdPUserClient | org.cagrid.gaards.dorian.client.LocalUserClient |
| gov.nih.nci.cagrid.dorian.client.IFSUserClient | org.cagrid.gaards.dorian.client.GridUserClient |
| gov.nih.nci.cagrid.dorian.client.DorianClient | org.cagrid.gaards.dorian.client.DorianClient |
Retired Services and Components
Data Service support for caCORE SDK 3.x
Overview
The various releases of caGrid Data Services support a variety of caCORE SDK versions , via Introduce extensions and CQL Query Processor implementations.
Reason for Retirement
The caCORE SDK team has discontinued support for versions 3.1, 3.2, and 3.2.1, and thus with the release of caGrid 1.3, their use was discouraged and users were requested to migrated to versions 4.0, 4.1.1, 4.2, or 4.3 The caGrid Data Service support for caCORE SDK versions 3.1, 3.2, and 3.2.1 is now being completely removed from caGrid 1.4.
Migration Plan
Users should migrate their systems to a supported version.
Bulk Data Transfer (BDT) Operation Provider
Overview
BDT provided an Introduce extension, and operation providers for a common way to leverage GridFTP, ws-transfer, and ws-enumeration.
Reason for Retirement
The BDT was deprecated in the [caGrid 1.3 Deprecation Plan], as it was replaced by caGrid Transfer in caGrid 1.2.
Migration Plan
The caGrid Transfer documentation provides a tutorial on how to effectively and easily create data transfers with its API and services.
authz
Reason for Retirement
The authz service made use of a deprecated version of the CSM and has been superseded by the CSM grid service.
*Additional discussion
Migration Plan
The CSM service provides similar functionality and contains appropriate guides for administrators and developers.
gridftpauthz
Reason for retirement
The GridFTPauthz service and APIs were useful for securing GridFTP in the context of the Bulk Data Transfer (BDT) services of caGrid. As BDT has been retired from this release, gridftpauthz is no longer used or needed.
Workflow Factory Service (BPEL)
Service Overview
The BPEL-based workflow service provided the capability to execute BPEL workflows.
Reason for Retirement
Due to a variety of reasons, uptake of BPEL as a language was practically non-existent in the caGrid community. This lead to the development of support in caGrid 1.3 for executing SCUFL workflows, developed primarily through the Taverna workbench
which is extremely popular in the scientific community. Using caGrid resources to maintain the BPEL service is not currently in the best interests of the caGrid user community. Standard policy would be to first deprecate this service, and later remove it, but due to lack of adoption, we are simply removing it.
Migration Plan
Users should migrate to the Taverna workflow service. The caGrid 1.4 release will no longer contain the service and client APIs for the BPEL service, but the production and training grids will keep the existing 1.3 service available for a yet to be determined sunset period. Users which cannot migrate to the Taverna workflow service in that timeframe may deploy their own caGrid 1.3-based BPEL service, and configure their clients to leverage it instead of the core deployment provided service.
API-Level Details
The WSDL and client API of the Taverna workflow service is basically identical to the BPEL-based service, with the exception that a SCUFL workflow is provided instead of a BPEL workflow.
Support for Upgrading Introduce 1.1 based Services
Overview
Introduce supports automatically upgrading services created with previous Introduce releases, to a service equivalent to one created with the current release of Introduce. Such upgrades are supported from the past two stable releases of Introduce.
Reason for Retirement
The past two stable releases of Introduce will be version 1.2 and 1.3.
Migration Plan
Introduce users with services created by Introduce 1.0 or 1.1 are encouraged to recreate their service using Introduce 1.4. If this is not possible, they may first use Introduce 1.3 to upgrade their service to 1.3, before using Introduce 1.4 to upgrade to 1.4.
Grid Protocol Changes
There are no grid protocol/specification changes for this release.
| The current stable release of the Globus toolkit (version 4.2), introduces incompatible specification changes, but caGrid 1.4 will not make use of that release. |





