Top Banner
Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components
26

Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Jan 11, 2016

Download

Documents

Asher Atkins
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Su Ping and Ma Xiao-xingDepartment of Computer Science and Technology

Nanjing University

Automated Analysis of Dynamic Dependences

between Java Components

Page 2: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

MotivationApproach to dynamic dependencesDDETEvaluationSummaryFuture work

Nanjing University © Su Ping 2

Agenda

Page 3: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Dynamic updates in safe and low-disruptive way

Criteria for dynamic updates

Quiescence Tranquillity Version-consistency

Nanjing University © Su Ping 3

Motivation

Page 4: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

• Static dependences Quiescence• Dynamic dependences

Tranquillity、Version-consistency

Nanjing University © Su Ping 4

Dependences Considered

Safe!L0

L1

L2Safe!

Unsafe!

The more precise dynamic dependences are, the timelier dynamic updates can start!

Static dependences pessimistically include all potential constraints, bringing high disruption[1]!

Page 5: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Goal Get precise dynamic dependences at any point

when the program runs

Scope Java Bytecode Component-based System

Nanjing University © Su Ping 5

Our Work

Dynamic dependencesFuture set: depended components it might use in

the future

Past set: depended components it has used in the past

Page 6: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Dynamic dependences

Portal

T0

Auth Proc DB

T1

getToken(cred)

return token

T2

process(token, data)

T3

verify(token)

OK

T4

dbOp()

6

{Auth,Proc}

{}{Auth}{Proc}

{}{Auth,Proc

}

Start

End

All participants in a transaction are initiator of the transaction or directly connected to the initiator [2].

Dynamic dependences changing makes the running

transaction like an automaton.

Page 7: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Nanjing University © Su Ping 7

Overview

JavaClassFiles

ControlFlow

Graph

Dynamic Dependences

Automaton

TransformedJavaClassFiles

Trigger information have been inserted into the Java class files so that they can drive the automaton to run automatically!

Dynamic Dependences

output

derivation

instrumentation

Page 8: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

State: dynamic dependences Future Past

EventActionTransition

Nanjing University © Su Ping 8

Dynamic Dependences Automaton

1

e1(Ejb.a.5)

2

7

3 6

4

5

e3(Ejb.a.34)

e7(If.1.11)

e4(Ejb.b.41)

e5(Ejb.b.47)

e6(if.0.11)

e9(While.F.29)

e8(While.T.29)e2(Ejb.c.23)

End

e10(End.50)

a;b;cnull

a;b;ca

a;b;c? a

? a;c

a;b? a

? a;ca;b;c? a

? a;c

ba

b? a

? a;c? a;b

null? a

? a;c? a;b

0

e0(Start.1)

statei statej

event

action

Page 9: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Control flow graph (CFG) All possible paths Next bytecode knows easily

Tools: ASM, Soot, Java Path Finder(JPF)

DDA derivation DFS CFG

Merge states with the same contents

Nanjing University © Su Ping 9

DDA Derivation

Page 10: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Nanjing University © Su Ping 10

Example

Source Code Byte Code

B

A

C

Tran

Page 11: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Event: change dynamic dependences potentiallyStartUse service from other componentsBranchEnd

Nanjing University © Su Ping 11

Event

Page 12: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Nanjing University © Su Ping 12

Example: CFG0

1

2

4

3

5

76

8

9

CFG Byte Code

Page 13: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Nanjing University © Su Ping 13

DDA derivation0

1

2

4

3

5

76

8

9

1

e1(Ejb.a.5)

2

7

3 6

4

5

e3(Ejb.a.34)

e7(If.1.11)

e4(Ejb.b.41)

e5(Ejb.b.47)

e6(if.0.11)

e9(While.F.29)

e8(While.T.29)e2(Ejb.c.23)

End

e10(End.50)

0

e0(Start.1)

There is no event, so dynamic dependences won’t change ! Merge the two states into one!

When meets an event, it will produce a new state and the triggered transition! Meanwhile, it transforms to the new state!

CFGDDA

Page 14: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

DDA Derivation

Future set Depended components it might use in all

possible paths from current to ends

Past set Depended components it has used in its

executed path from start to current

Nanjing University © Su Ping 14

Approach to Dynamic Dependences

Page 15: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Analyze future of all states in DDA statically For each state

Depended components it might use in all possible paths from current state to end states

For each transition pre_future = pre_future post_future

component of event

Nanjing University © Su Ping 15

Future Computation

Page 16: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Nanjing University © Su Ping 16

Example: future computation

1

e1(Ejb.a.5)

2

7

3 6

4

5

e3(Ejb.a.34)

e7(If.1.11)

e4(Ejb.b.41)

e5(Ejb.b.47)

e6(if.0.11)

e9(While.F.29)

e8(While.T.29)e2(Ejb.c.23)

End

e10(End.50)

null

null

null

null null

null

null

null

0

e0(Start.1)

b

a;b

a;b

a;b;c

a;b;c

a;b

a;b;c

b

Future set of all states is null initially!

Page 17: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Change dependences adaptively

Past Only one executed path from start state to

current state cur_past = cur_past component of the event

Future Search DDA, find next state according to

current state and the event

Nanjing University © Su Ping 17

Adaptive-DDA

Page 18: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Nanjing University © Su Ping 18

A-DDA

1

e1(Ejb.a.5)

2

7

3 6

4

5

e3(Ejb.a.34)

e7(If.1.11)

e4(Ejb.b.41)

e5(Ejb.b.47)

e6(if.0.11)

e9(While.F.29)

e8(While.T.29)e2(Ejb.c.23)

End

e10(End.50)

a;b;cnull

a;b;c

a;b;c

a;b

a;b;c

b

b

null

0

e0(Start.1)

A-DDA Precise dynamic

dependences got adaptively

Example Path:e0e1e6e8e9e3e5e1

0

a

a

a

a;c

a;c

a;c

a;b;c

Past set of all states is null initially!

Page 19: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

ASM

DDA is inserted in the annotation State

Transition

Trigger information is inserted Event

Nanjing University © Su Ping 19

Instrumentation

Page 20: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Nanjing University © Su Ping 20

Example: Instrumentation

Primary file Transformed file

DDA is inserted in the @transaction annotation.

Trigger information are inserted!

Page 21: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

DDET framework

Nanjing University © Su Ping 21

DDET

DDA Derivation

Dynamic dependences

Instrumentation

Page 22: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Goal: to evaluate safety and disruption Compare our approach with the naïve

approach

Method: ask whether the component can be updated discretely

Safety: whether a updatable point is safe in fact

Disruption: number of updatable points

Nanjing University © Su Ping 22

Summary

Including all possible components, future set doesn’t change; Past set is changing.

Page 23: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Nanjing University © Su Ping 23

Results

Safe criteria for dynamic updates

Naïve approach Our approach

Yes No Yes No

Safe Un-safe

Safe Un-safe

Safe Un-safe

Safe Un-safe

Quiescence 2 18 2 18

Tranquillity 4 0 8 8 16 0 0 4

Version-consistency

4 0 8 8 16 0 0 8

Updatable point checked by safe criteriaNonupdatable point checked by safe criteria

Unsafe ,can not update!Safe in fact!

Safety: All updatable points are safe in fact!

Disruption: Compared to naïve approach, the number of updatable points using our approach is much larger!

Page 24: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Proposed an approach to get precise dynamic dependences automatically

Developed a dynamic dependences extracting tool——DDET using the approach

Experiments with DDET demonstrated our approach not only can ensure consistency, but also speed up the update.

Nanjing University © Su Ping 24

Conclusions

Page 25: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

More precise future set Program slicing

Symbolic execution

Nanjing University © Su Ping 25

Future work

Page 26: Su Ping and Ma Xiao-xing Department of Computer Science and Technology Nanjing University Automated Analysis of Dynamic Dependences between Java Components.

Thank you

Q&A

26