Upload
octavia-miles
View
218
Download
0
Tags:
Embed Size (px)
Citation preview
VERSION CONSISTENCY IMPLEMENTATION
2
CONTENTS
Apache Tuscany VcContainer Domain manager VcContainer communication
3
DYNAMIC UPDATES
Dynamic update of software systems is often desired, sometimes required
How to achieve version consistency is one of the key challenges
Version ConsistencyIntuitively, any extant transaction, with all its (direct and indirect) sub-transactions, is executed as if entirely in the old or entirely in the new configuration.
4
DYNAMIC UPDATES
Goal: implementing a framework to execute dynamic update of component-based
systems verify the correctness of version consistency
algorithm
5
TECHNOLOGIES
Varieties of technologies is available
SCA specification defines a common programming model for different technologies
Apache Tuscany is an open source implementation of SCA, it’s stable and makes component-based development much more easier
Service Component Architecture (SCA)
6
COMPONENT-BASED DISTRIBUTED SYSTEMS
Static configuration of an example CBDS
DBPortal
Auth
Proc
com : Component
: Static Dependence
7
COMPONENT-BASED DISTRIBUTED SYSTEMS
Runtime Portal component
Tuscany components communicate via endpoint service endpoint: the service a components expose reference endpoint
Interceptor handles messages passing through it transaction, security, …
8
OUR CONCERNS
Local dynamic dependences maintaining Dependences management Transaction ID allocation Component lifecycle management On-demand setup Achieving freeness
9
MAINTAINING LOCAL DEPENDENCES
We need to maintain following local dependences future/past arcs entering current component
InArcsRegistry future/past arcs leaving current component
OutArcsRegistry sub transaction and its root transaction
TransactionRegistry
10
OUR CONCERNS
Local dynamic dependences maintaining Dependences management Transaction ID allocation Component lifecycle management On-demand setup Achieving freeness
11
MANAGEMENT OF DEPENDENCES
When a transaction starts When a transaction is running When a transaction ends
12
MANAGEMENT OF DEPENDENCES
When a transaction starts create future arcs store future arcs notify parent/sub components
When a transaction is running When a transaction ends
13
WHEN A TRANSACTION STARTS
When root transaction T0 starts, setting up is needed
14
WHEN A TRANSACTION STARTS
Portal need to create future arcs
DBPortal
Auth
Proc
Setting up
futureT0
futureT0
15
WHEN A TRANSACTION STARTS
Version consistency algorithm
Notify algorithm module that T0 starts; create future arcs to Auth and Proc component
add future arcs to OutArcsRegistry
notify Auth and Proc that a future arc is created
16
MANAGEMENT OF DEPENDENCES
When a transaction starts When a transaction is running
update local future/past OutArcsRegistry notify sub component to update their
InArcsRegistry identify root and its sub transaction
When a transaction ends
17
WHEN A TRANSACTION IS RUNNING
When root transaction T0 is running, processing is needed
18
WHEN A TRANSACTION IS RUNNING
Update future arc
DBPortal
Auth
Proc
Progressing
pastT0
19
WHEN A TRANSACTION IS RUNNING
Version consistency algorithm
update related future arc in OutArcsRegistry
notify Auth that future arc of T0 needs to be updated
Notify algorithm module that T0 is running and Auth component will not be used
20
IDENTIFICATION OF ROOT TRANSACTION
When root transaction T0 is initiated on Portal, how does sub-transactions T1 on Auth component know its root transaction?
21
IDENTIFICATION OF ROOT TRANSACTION
Define a trace interceptorto add root transaction ID T0 to the message that is passing through it
to resolve message to get root transaction T0, and map current sub transaction root(T1)=T0
22
MANAGEMENT OF DEPENDENCES
When a transaction starts When a transaction is running When a transaction ends
update local dependences notify parent component
23
WHEN A TRANSACTION ENDS
Transaction T0 ends
24
WHEN A TRANSACTION ENDS
Update arcs
DBPortal
Auth
Proc
Cleaning up
pastT0
pastT0
pastT0
pastT0
25
WHEN A TRANSACTION ENDS
Version consistency algorithm
update related future arc in OutArcsRegistry
notify Auth that future arc of T0 needs to be updated
Notify algorithm module that T0 ends and all components will not be used
26
VC CONTAINER
A business component and its related VC modules are wrapped in a VcContainer as a single node
27
OUR CONCERNS
Local dynamic dependences maintaining Dependences management Transaction ID allocation Component lifecycle management On-demand setup Achieving freeness
28
ALLOCATION OF TRANSACTION ID
In one domain, for each transaction, it should have an unique ID define a domain manager component allocate
and destroy transaction ID
29
FUTURE WORK
Maintaining local dynamic dependences Management of dependences Allocation of unique transaction ID Component lifecycle management On-demand setup Achieving freeness
30
COMPONENT LIFECYCLE MANAGEMENT
When a component needs dynamic update, it must be deactivated and messages it receiving must be cached.
When dynamic update is done, the component should be activated
31
ON-DEMAND SETUP
Dynamic configuration management could introduce significant overhead Solution: a configuration can be set up on-
demand
32
ACHIEVING FREENESS