Title: Applying Aspect Oriented Modelling to Service Orchestration
1Applying Aspect Oriented Modelling to Service
Orchestration
- Crest Centre, Kings College London
2Agenda
- Service Workflow Orchestration
- Cross Cutting Concerns in Workflow
- Applying Aspect Oriented Modelling Design
- Testing Service Orchestration
3Motivation of Research
- Business models shift from products to services
- Software as Services (SaaS) model of development
- Components are not owned - Service Oriented Architecture Integrated
modular architecture - Mechanisms that allow well integrated services
are difficult to provide Service Workflows in
WS- BPEL standard - Cross-cutting concerns Tangled workflow problem
- Aspect-Oriented Software Development (AOSD)
offers means to disentangle cross-cutting
concerns
4Service Workflows BPEL
- Mechanisms that allow well integrated services
are difficult to provide Service Workflows in
WS- BPEL standard - Processes could only be decomposed according to
the control flow
5Service Workflows Tangled Cross Cutting Concern
Problem
- Concerns that do not align with this
decomposition become scattered across the process
description, making it difficult to manage - Need a means to manage complexity
- To disentangle cross-cutting concerns
6Aspect Oriented Modelling Design
- AOP emerged to complement O.O.Programming
- Models Cross cutting concerns modularised
concerns, making development, maintenance and
reuse easier. - Enable non-invasive addition of concerns
support software evolution - Web service to meet post-deployment requirements
Update
aspect Update pointcut change()
execution(void point.setX(int))
execution(void point.setX(int))
execution(void shape.moveBy(int,int)) after()
returning change() Display.update()
7Opportunities for AOSD in (SOA)
- Service Monitoring detect conditions or
violation of properties at run-time. - or a particular sequence of events has occurred.
- Design by Contract
- Service Verification - testing
- Service Adaptation e.g. QoS Requirements
8Current AOSD Approaches
- Domain Specific Aspect Language Extensions
- Doxpects, AO4BPEL
- Aspects Aware Execution Environment
- AO4BPEL, Small Talk Implementation
- WSFL implemented in JAsCO
- Limitations
- Proprietary solution
- Portability
9Problems Identified
- The Proprietary Technology Problem
- Standard Workflow Engines need to be modified
substantially - In Aspect Deployment
- The Fragile PointCut Problem
- Joinpoint Detection Problem
- Modularisation Problem in Service Middleware
- Address Infrastructural Concerns as
AOP-WS-Middleware
10Proposed Solution
- A framework of A.O. design that provides WS
composition support - XQuery as the PointCut language
- Aspect Representation in XML
- Model Based Transformation for weaving
deployment
PointCut
Advice
JoinPoint
Aspects Representation
11Aspect Weaving Deployment
- Weaving the process that coordinates aspects
and non-aspects code - Static Weaving
- Weaving Before Run-time
- Dynamic Weaving
- Allows for dynamically add, remove or refine
aspects - Difficulties are
- Performance overhead
- Dedicated execution platform
12Static Weaving
BPEL Process
Aspect Definition
Aspect Deployment Description
Static Aspect Weaver
- Extract xsd from .bpel
- ltaspectgt.xml xsd
- Transformation Rules
- Locate pointcut
- Joint point merge
- Composing new .bpel
New BPEL Process Description
Standard BPEL Execution Environment
13Aspect Definition in XML
1 ltaspect name"Billing"gt 2 ltusinggt 3
ltnamespace name"xmlnsbill" uri"my.billing.uri"
/gt 4 ltpartnerLink name"billing"
partnerLinkType"billbillingLT" /gt 5
ltvariable name"billingMsg" type"billbillingMsg"
/gt 6 lt/usinggt 7 ltpointcut name"CallStarts(Jp)" 8
pointcut"invoking(Jp, CallService,
confCallPT, createConfCall)" /gt 9 ltpointcut
name"CallEnds(Jp)" 10 pointcut"invoking(Jp,
CallService, confCallPT, closeConfCall)"
/gt 11 ltadvice name"billService"gt 12 ltinvoke
partnerLink"billing" portType"billbillingPT" 13
operation"billService" inputVariable"billing
Msg" /gt 14 lt/advicegt 15 lt/aspectgt
14Service Implemented Aspect
- Definition of Service Implemented Aspects in
WSDL
ltcomplexType name"EPmessage"gt ltallgt
ltelementname"opName" type"string"/gt ltelement
name"serviceType" type"string"/gt ltelement
name"serviceEndpoint type"EndpointReference"/gt
ltelement name"value" type"Serializable"/gt lt/a
llgt lt/complexTypegt ltmessage name"MessageReceived
"gt ltpart name"MsgReceived
type"tnsEPmessage"/gt lt/messagegt ltportType
name"EndPointMonitorPT"gt ltoperation
name"SendRequest"gt ltinput message"MessageSen
t"/gt lt/operationgt
15Model Based Transformation
- Weaving and aspect deployment
- Process of manipulating the meta data of the
- process schema
- MDA model based transformation
- General purpose languages no overhead
- Generic transformation tools Graph
transformation - Case tools UML based
- Dedicated Tools QVT
- Complexity
- Kermeta Eclipse EMF
Aspect Logic
16Case Studies
17Testing Service Workflows
- Service Orchestration - BPELs claim v.s. BPMN
- Translation between the two processes
-
- Aspect-Oriented Testing Techniques
- Testing Woven Apects
18Evaluation Metrics
- AOSD Evaluation
- Multi-Dimensional Separation of Concerns
- Good Design vs. Good Coding
- Performance Bottleneck
- AOSD decomposition
- Units of aspects
- Well-defined interfaces
- SOA Evaluation
- Comparable with component based software
- SOA is an example of Distributed Computing
- Decomposition of systems into functional or
logical components with well-defined interfaces
used for communication
19AOSD in WS Processes Infrastructural Concerns
choreography
. . .
Transformation
Aspect Interface
Transformation
orchestration
Presentation of Data
Aspect View Customised view of the System
Data
Internal service/API
20Future Directions
- Dynamic AOP, uses wrapper technologies, offers a
way of allowing components to be individually
customized and extended. - Dynamic aspect-oriented programming is relatively
straightforward in a trusted environment, where
(with the exception of bugs) aspects can be
assumed to be safe. In an untrusted public
computing environment, new aspects cannot be
assumed to come from a benign source. - Modularising Web Services Management with AOP
- Relationship between Aspects
- Unraveling Crosscutting Concerns in Web Services
Middleware - Monitoring
- PSL representation of service enactments has
natural representation as a relational database - Can use relational queries to perform run-time
monitoring - Can use queries to do data mining on execution
logs - Transactions
- Providing transactional guarantees remains
largely open - What are the building blocks within services? In
choreography? - Verifying transactional correctness?