V ERSION CONSISTENCY IMPLEMENTATION. C ONTENTS Apache Tuscany VcContainer Domain manager VcContainer...

Preview:

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