CaGrid 1.3 Deprecation Plan
Overview
This document provides the deprecation plan for caGrid 1.3, in adherence with the deprecation policy.
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), but making it explicit and also maintaining backwards compatibility to additional useful APIs. The items enumerated in this list represent the APIs and other items which can be considered stable and backwards compatible in the caGrid 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.2 release, there were 2791 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)
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
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
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
Dorian
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- Local Identity Provider
- registerWithIdP()
- authenticate()
- Federation
- createProxy()
- requestHostCertificate()
- getOwnedHostCertificates()
Authentication Service
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- Authentication Service
- authenticate()
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-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- Delegated Credential
- getDelegatedCredential
Federated Query Processor Service (FQP)
Main Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- FQP
- execute
- executeAndAggregateResults
- executeAsynchronously
Results Service
- Service Security:
- getServiceSecurityMetadata
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
- WS-Resource Lifetime:
- SetTerminationTime
- Destroy
- FQP
- getResults
- isProcessingComplete
Transfer Service Context
- getDataTransferDescriptor
- getStatus
- setStatus
- Service Security
- getServiceSecurityMetadata
- WS-Lifetime
- Destroy
- SetTerminationTime
- WS-Notification
- Subscribe
Workflow Factory Service
Main Service
- createWorkflow
- WS-Lifetime
- Destroy
- SetTerminationTime
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
Workflow Service Impl (Context Service)
- start
- pause
- resume
- cancel
- getWorkflowOutput
- getStatus
- getDetailedStatus
- WS-Lifetime
- Destroy
- SetTerminationTime
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
Provided Operations (WSDL Operations)
Bulk Data Transfer Service (BDT)
- CreateEnumeration
- GetGridFTPURLs
- PullOp
- RenewOp
- GetStatusOp
- ReleaseOp
- Get
- WS-Lifetime
- Destroy
- SetTerminationTime
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
WS-Enumeration
- PullOp
- RenewOp
- GetStatusOp
- ReleaseOp
- WS-ResourceProperties:
- QueryResourceProperties
- GetMultipleResourceProperties
- GetResourceProperty
Data Services
- query
BDT Data Services
- bdtQuery
Enumeration Data Services
- enumerationQuery
WS-Lifetime
- Destroy
- SetTerminationTime
WS-Notification
- Subscribe
Web Service Resource Properties
- 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
gov.nih.nci.cagrid.authentication.client.AuthenticationClient
- All public methods
gov.nih.nci.cagrid.dorian.client.IdPRegistrationClient
- All public methods
gov.nih.nci.cagrid.dorian.client.IdPUserClient
- All public methods
gov.nih.nci.cagrid.dorian.client.IFSUserClient
- 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
- All public methods
gov.nih.nci.cagrid.fqp.results.client.FederatedQueryResultsClient
- All public methods
gov.nih.nci.cagrid.data.client.DataServiceClient
- All public methods
gov.nih.nci.cagrid.data.enumeration.client.EnumerationDataServiceClient
- All public methods
gov.nih.nci.cagrid.data.bdt.client.BDTDataServiceClient
- All public methods
Utility APIs
Transfer Services
org.cagrid.transfer.context.client.helper.TransferClientHelper
- All public methods
org.cagrid.transfer.context.service.helper.TransferServiceHelper
- All public methods
testing stuff?
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)
- All public methods
gov.nih.nci.cagrid.data.service.BaseServiceImpl
- All public methods
- Of interest to extenders
- Minor changes to fix bugs and add logging
gov.nih.nci.cagrid.data.cql.CQLQueryProcessor
- All public and protected methods
gov.nih.nci.cagrid.data.cql.LazyCQLQueryProcessor
- All public and protected methods
WS-Enumeration
gov.nih.nci.cagrid.wsenum.utils.EnumIteratorFactory
- All public methods
- Implementation details changed, API behaves as in 1.2
gov.nih.nci.cagrid.wsenum.utils.EnumerationResponseHelper
- All public methods
- Addition versions of existing public methods have been added
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
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-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)
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
The following caGrid core services should be known as deprecated with the 1.3 release plan and will be retired in the future:
- BDT
BDT
Reason for deprecation
BDT has been replaced by caGrid Transfer as of caGrid 1.2. Because we have very limited use of the BDT service and heavy adoption of the Transfer service we have decided to enhance our support for the Transfer service and depricate the BDT service.
Migration Plan
The caGrid Transfer contains a tutorial on how to effectively and easily create data transfers with its API and services.
Retired Services
The following caGrid core services will be retired with the 1.3 release:
EVS
Service Overview
The caGrid EVS Grid Service provides access to information in the terminology data stored in the EVS system.
Reason for Retirement
The service interface depends upon the EVS version 3.1 domain models, which are deprecated for version 4.x of the models, and is implemented by remotely communicating with the caCORE version 3.1 Application Service, which is being retired in June of 2009
.
Migration Plan
The EVS team will assume responsibility for grid-access to the information stored within the EVS. They currently offer a grid service based version 4.2 of the model, and a LexEVS Grid service based on the version 4.2 LexEVS model.
The current caGrid EVS Grid service will run in the production grid, for a sunset period following the caGrid 1.3 release, allowing time for service and application developers to migrate.
NOTE: There are currently no other caGrid core tools or services which depend on the current EVS grid service, so it's deprecation only affects external projects. Those projects being migration to the alternative EVS grid service immediately.
API-Level Details
Methods to be replaced from gov.nih.nci.cagrid.evsgridservice.client.EVSGridServiceClient by equivalent functionality in EVS Data Service:
- getHistoryRecords(EVSHistoryRecordsSearchParams)
- getMetaSources()
- getVocabularyNames()
- searchDescLogicConcept(EVSDescLogicConceptSearchParams)
- searchMetaThesaurus(EVSMetaThesaurusSearchParams)
- searchSourceByCode(EVSSourceSearchParams)
caDSR
Service Overview
The caGrid caDSR Grid Service provides access to information in the caDSR that is relevant to caGrid, and has capabilities to generate caGrid standard metadata instances. Specifically, the service provides operations to access UML-like information stored in the caDSR. It also has operations to generate Data Service metadata for a described subset of a given project registered in caDSR. Finally, it has an operation which augments a description of an grid service, via a partially populated service metadata instance, with the necessary UML-like and semantic information, extracted from caDSR, to describe the service and its operations.
Reason for Retirement
The service interface depends upon the caDSR version 3.1 domain models, which are deprecated for version 4.0 of the models, and is implemented by remotely communicating with the caCORE version 3.1 Application Service, which is being retired in June of 2009.
Migration Plan
The caDSR team will be assuming responsibility of providing grid-access to the information stored within the caDSR registry. Their current plans are to expose the caDSR version 4.0 domain models to the grid via the standard caGrid Data Service interfaces. As such, any compatible caGrid version (1.x) of the Data Service libraries will be able to be used to access this information.
The additional capabilities of the current (version 1.2) caDSR grid service to annotate and generate service metadata models will be migrated to a new service metadata grid service, maintained by the caGrid team and made available with the caGrid 1.3 release. This service will provide equivalent functionality to the current grid service, but will no longer have any service interface dependencies on the caDSR domain models. It still be implemented behind the scenes via communication with the caCORE Application Service (in this case version 4.0), but as its interface is no longer dependent on the caDSR domain model version, it can be updated to new caDSR models in the implementation without affects to its service interface (i.e. without breaking backwards compatibility).
The current caDSR Grid service will run in the production grid for a sunset period following the caGrid 1.3 release, allowing time for service and application developers to migrate to other alternatives.
NOTE: once the current service is shutdown, previous versions of Introduce using the caDSR and caGrid metadata extensions will start to receive errors when making use of the features those extensions provide (as the communicate with the current caDSR grid service). However, these features are non-critical and the service developer will still be able to work with their service in earlier versions Introduce until which time as they can upgrade their services to caGrid 1.3.
API-Level Details
Methods in gov.nih.nci.cagrid.cadsr.client.CaDSRServiceClient to be migrated to / replaced by new Service Metadata service operations:
- annotateServiceMetadata(ServiceMetadata)
- generateDomainModelForClasses(Project, String[])
- generateDomainModelForClassesWithExcludes(Project, String[], UMLAssociationExclude[])
- generateDomainModelForPackages(Project, String[])
- generateDomainModelForProject(Project)
Methods in gov.nih.nci.cagrid.cadsr.client.CaDSRServiceClient to be replaced by equivalent functionality in caDSR Data Service:
- findAllProjects()
- findAssociationsForClass(Project, UMLClassMetadata)
- findAssociationsInPackage(Project, String)
- findAssociationsInProject(Project)
- findAttributesInClass(Project, UMLClassMetadata)
- findClassesInPackage(Project, String)
- findClassesInProject(Project)
- findContextForProject(Project)
- findPackagesInProject(Project)
- findProjects(String)
- findSemanticMetadataForClass(Project, UMLClassMetadata)
- findValueDomainForAttribute(Project, UMLAttributeMetadata)
GME
Service Overview
The caGrid Global Model Exchange (GME) Grid Service provides an authoritative management infrastructure for the syntactic models (XML Schemas) used for data transport on the grid. It allows the publish and retrieval of the canonical syntax for data exchange, such that tools and systems can enforce data validity at runtime and retrieve definitions at design time. It's use in caGrid is further discussed [here].
Reason for Retirement
The current (version 1.2) grid service implementation of the GME is just a simple "adapter" for the existing Mobius GME project
. This has caused several limitations which are being addressed in caGrid 1.3 through a reimplementation of the GME service.
The Mobius GME provides a capability to run the GME in a distributed fashion, partitioning the set of valid XML Schema namespaces across multiple GME services. While this has some value, we have not found this use case to be of practical importance, as it still requires a community policy for namespace partitioning which could just as easily be implemented via namespace-based authorization policies in a single GME (as the load and data size of the GME generally do not necessity distributed instances). Aside from the increased simplicity of running a single GME for a given community, the notion of namespace partitioning, as implemented in the current GME, requires XML Schema namespaces to be of a particular format. This makes it impossible for the current GME to process some external standard XML Schemas (such as those which use URNs for namespaces).
Secondly, the current GME only allows for a single XML Schema document to be uploaded at a time, (rightly) requires that referential integrity across XML Schema imports is maintained. This makes it impossible to upload schemas which have cyclic dependencies upon each other (e.g. A imports B imports A), as neither can be uploaded independently. It also prevents the use of XML Schema include and redefine statements, which conceptually allow a single XML Schema to be constructed from multiple physical "docuemnts."
Lastly, the current service isn't implemented with properly defined WSDL and XML Schemas that fully describe the protocol being used by the service; it simply reusing the existing GME protocol by passing it over the grid via equivalently named operations. As such, the service interface is not self-describing to low-level (XML-based) clients, and it is not a fully Introduce-managed service, making it difficult to update and maintain.
Addressing these features requires modifications to the service interface in non-compatible ways, such the the existing interface cannot be supported.
Migration Plan
The current GME Grid service will remain running in the production grid, for a duration of time following the caGrid 1.3 release, to allow time for service and application developers to move to caGrid 1.3.
| NOTE: once the current service is shutdown, previous versions of Introduce using the GME extensions will start to receive errors when making use of the features those extensions provide (as the communicate with the current GME grid service). However, these features are non-critical and the service developer will still be able to work with their service in earlier versions Introduce until which time as they can upgrade their services to caGrid 1.3. |
API-Level Details
Methods in org.projectmobius.client.gme.XMLDataModelServiceClient no longer applicable to the new implementation, as they pertain to distributed references:
- addSubordinate(ServiceIdentifier)
- addSubordinateNamespaceDomain(String, ServiceIdentifier)
- getAuthority()
- setAuthority(ServiceIdentifier)
- getSubordinatesList()
- removeAuthority(ServiceIdentifier)
- removeSubordinate(ServiceIdentifier)
- removeSubordinateNamespaceDomain(String, ServiceIdentifier)
- resolveNamespaceDomain(String)
- resolveReference(ServiceIdentifier, Namespace, String, String)
Methods in org.projectmobius.client.gme.XMLDataModelServiceClient no longer applicable to the new implementation, as they pertain to Namespace Domains:
- addNamespaceDomain(String)
- getNamespaceDomainList()
- getSchemaListForNamespaceDomain(String)
- removeNamespaceDomain(String)
Other methods in org.projectmobius.client.gme.XMLDataModelServiceClient no longer applicable to the new implementation:
- getSchemaElementReferences(String, String)
Methods in org.projectmobius.client.gme.XMLDataModelServiceClient superseded by the similar operations in the new implementation:
- cacheSchema(Namespace, File)
- getSchema(Namespace, boolean)
- publishSchema(String)
Grid Protocol Changes
There are no expected 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.3 will not make use of that release. A brief analysis of the expected impact to such a migration can be found here |





