Installing Cass
The CASS deployment model decouples Service implementation from Globus-specific resource management mechanisms and naming issues.
In Globus, java service are deployed either by inheriting resource management behavior from 'GridServiceImpl' or by implementing a 'Service Provider'.
The Service Provider approach enables service implementation reuse through inheritance. However, it leads to bloated classes, and tight coupling to globus-specific mechanisms and to a hard-wired namespace.
In CASS, a service implementations is deployed into a provider as a Mixin.
A service is composed of 2 mixins:
- Service Implementation Mixin
- Namespace Mixin
Service Aspect deployment descriptor:
<service name="edu.iit.concur.cass.services.math"
namespace="http://www.iit.edu/~concur/cass/MathService"/>
|
The corresponding Web Service Deployment Descriptor looks like:
<service name="edu/iit/concur/cass/services/math" provider="Handler" style="wrapped">
<parameter name="name" value="MathService"/>
<parameter name="className" value="edu.iit.concur.cass.stubs.math.MathPortType"/>
<parameter name="baseClassName"
value="org.globus.ogsa.impl.ogsi.GridServiceImpl"/>
<parameter name="schemaPath"
value="schema/cass/math/Math_service.wsdl"/>
<parameter name="operationProviders"
value="org.globus.ogsa.impl.ogsi.Provider"/>
<!-- Start common parameters -->
<parameter name="allowedMethods" value="*"/>
<parameter name="persistent" value="true"/>
<parameter name="handlerClass"
value="org.globus.ogsa.handlers.RPCURIProvider"/>
<parameter name="activateOnStartup" value="true"/>
</service>
|
The 2 deployment descriptors will eventually be merged.
Advantages
- The Service implementation is decoupled from the service endpoint
- The Service implementation can be swapped at runtime, as long as it implements the same interface
- The Service implementation is decoupled from globus specifics
In order to provide on-demand service instance refinement, the CASS core includes a Grid Service Hot deployment service.
Once the service schema, implementation and stubs are deployed in their respective directories, new service can be deployed in the container at runtime by passing the service references to the hot deployment service.
|
per-Instance Service Refinement:
|
|
Distributed Aspect Support (Aspect Broker):
|
Reference implementations of Grid Services are tangled!
ASCAS Grid Service implementation:
|