5 DYNAMIC DEPLOYMENT
The CASS platform includes a dynamic aspect
deployment service. A client parses the
choreography specification, and partitions it into
pointcut and advice definitions that are relevant to
each participant host and service. The deployment
service translates those descriptors into low-level
pointcut expressions that act upon the message
handlers.
All pointcuts are associated to an activity
context. Pointcuts are only triggered for messages
that match the pointcut expression, and whose
context descriptor corresponds to the pointcut
activity. The activity context guarantees consistent
deployment of choreographies. The pointcut that
defines the entry point of the activity – the context –
is only activated after successful deployment of the
choreography. This ensures that the messages being
processed at deployment time are not affected until
all interceptors, advice handlers and adapters are
deployed and activated.
The CASS choreography definition is an
intermediate representation. It is typically generated
from higher level definitions and automatically
validated. CASS Interaction patterns are encoded
into XSLT files, where all service specific
information is factored out, and represented by XSL
variables. A graphical tool can then used to map the
interaction patterns to concrete service topologies.
6 CONCLUSION
This paper introduces a new technique to
dynamically compose Web Services in a
decentralized manner. Contextual Aspect-Sensitive
Services (CASS) enables crosscutting and context
dependent behaviour to be factored out of the
service implementations and modularized into
separate units of encapsulation that are exposed as
Web Services.
CASS introduces a service-oriented pointcut
model and composition operators. The CASS
platform implements a context propagation
mechanism that transparently maintains activity
context across service collaborations in a distributed
setting. The context information is used to define
sophisticated pointcuts that enable concurrent
service customization.
CASS can be used to dynamically deploy
services choreographies. It has the potential to
define more advanced collaboration scenarios than
can be specified with state-of-the-art web service
orchestration languages such as BPEL4WS.
ACKNOWLEDGEMENT
This work is partially supported by CISE NSF grant
No. 0137743.
REFERENCES
Walsh, A., 2002. UDDI, SOAP, and WSDL: The Web
Services Specification Reference Book, Prentice Hall.
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C.,
Lopes, C. V., Loingtier, J.-M., Irwin, J., 1997. Aspect-
oriented programming. In Proceedings of the
European Conference on Object-Oriented
Programming. Springer-Verlag.
Filman, R., Friedman, D., 2000. Aspect-oriented
Programming is Quantification and Obliviousness. In
Workshop on Advanced Separation of Concerns,
OOPSLA 2000.
VanHilst, M., Notkin, D., 1996. Using Role Components
to Implement Collaboration-Based Designs. In
Proceedings of the 11th ACM conference on Object-
Oriented Programming, Systems, Languages, and
Applications.
Smaragdakis, Y., Batory , D., 2002. Mixin Layers: An
Object-Oriented Implementation Technique for
Refinements and Collaboration-Based Designs. ACM
Transactions on Software Engineering and
Methodologies
Chafle, G., Chandra, S., Mann, V., Nanda, M. G., 2004.
Decentralized Orchestration of Composite Web
Services. In Proceedings of the Thirteenth
International World Wide Web Conference.
Charfi, A., Mezini M., 2004. Aspect-Oriented Web
Service Composition with AO4BPEL. In Proceedings
of European Conference on Web Services.
Verheecke, B., Cibrán, M. A., Jonckers, V. 2004., Aspect-
Oriented Programming for Dynamic Web Service
Monitoring and Selection, In Proceedings of the
European Conference on Web Services.
Suvee , D. Vanderperren, W., Jonckers, V., 2003. JAsCo:
an aspect-oriented approach tailored for component
based software development. In Proceedings of the 2
nd
International Conference on Aspect-Oriented Software
Development.
Cottenier, T., Elrad, T., 2004. Validation of Aspect-
Oriented Adaptations to Components. Ninth
Internationapl Workshop on Component-Oriented
Programming as part of ECOOP’04
BPEL4WS, 2003. Business Process Execution Language
for Web Services Specification (BPEL4WS)
http://www-128.ibm.com/developerworks/library/ws-
bpel
Axis, 2000. Apache http://ws.apache.org/axis
DYNAMIC AND DECENTRALIZED SERVICE COMPOSITION: With Contextual Aspect-Sensitive Services
63