An Approach to the Dynamic Evolution of Software Systems Manuel - - PowerPoint PPT Presentation

an approach to the dynamic evolution of software systems
SMART_READER_LITE
LIVE PREVIEW

An Approach to the Dynamic Evolution of Software Systems Manuel - - PowerPoint PPT Presentation

An Approach to the Dynamic Evolution of Software Systems Manuel Oriol June 28th, 2006 RoadMap Motivation Toward Disconnection General Infrastructure Service Descriptions Experiment Reports Conclusion April 20th,


slide-1
SLIDE 1

An Approach to the Dynamic Evolution of Software Systems

Manuel Oriol June 28th, 2006

slide-2
SLIDE 2

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

2

RoadMap

  • Motivation
  • Toward Disconnection
  • General Infrastructure
  • Service Descriptions
  • Experiment Reports
  • Conclusion
slide-3
SLIDE 3

Motivation

  • Motivation
  • Toward Disconnection
  • General Infrastructure
  • Service Descriptions
  • Experiment Reports
  • Conclusion
slide-4
SLIDE 4

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

4

Evolution of Applications

  • Applications are often modified over their

lifetime.

  • It has been said that an application becomes

mature after several years of maintenance.

  • Though there are different types of evolution:

– Marshaled / unmarshaled evolution. – Dynamic / static evolution. – Anticipated / unanticipated evolution.

slide-5
SLIDE 5

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

5

Unmarshaled Evolution

  • A marshaled evolution is an evolution

constrained by invariants.

– Real Life (RL) Example: a chair will always be used to seat. – Object-Oriented Programming (OOP) Example: subtyping constraints for polymorphism.

  • Unmarshaled evolution has no such constraint.

– RL Example: a chair may be modified to be transformed into a table. – OOP Example: redesigning an application.

slide-6
SLIDE 6

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

6

Dynamic Evolution

  • A static evolution is an evolution that is made

without the application running.

– RL Example: the original plans of the chair are changed. – OOP Example: stopping an application, modifying its code and relaunching it.

  • A dynamic evolution is an evolution that is

made while the application runs.

– RL Example: repairing, modifying a chair. – OOP Example: only few, dynamic loading

slide-7
SLIDE 7

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

7

Unanticipated Evolution

  • An anticipated evolution is made when some parts of an

application are evolvable

– RL Example: a chair that may have diverse different colored legs. – OOP Example: interfaces.

  • An unanticipated evolution is an evolution that may

concern the whole application and have not been foreseen at design time.

– RL Example: a chair that looses its back and becomes a stool (or the reparation). – OOP Example: a bug of security that modifies the general behavior of the application (or its correction).

slide-8
SLIDE 8

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

8

Focus

  • We decided to work on unmarshaled

unanticipated and dynamic evolution of object-

  • riented applications.
  • In few words, we want to offer to

programmers an infrastructure for handling such evolutions in order to allow to build highly available applications.

slide-9
SLIDE 9

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

9

Applications

  • At the moment most applications are

programmed using an object-oriented language.

  • More and more systems controlled by software

need to run continuously:

– Example: PDA, mobile phones, car systems, satellite control systems, nuclear power plant systems...

  • These systems need to be dynamically

upgraded!

slide-10
SLIDE 10

Toward Disconnection

  • Motivation
  • Toward Disconnection
  • General Infrastructure
  • Service Descriptions
  • Experiment Reports
  • Conclusion
slide-11
SLIDE 11

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

11

Traditional Object-Oriented Applications ?

slide-12
SLIDE 12

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

12

Problem? Connections

slide-13
SLIDE 13

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

13

What to do? Remove Connections!

? ! ! ? !

slide-14
SLIDE 14

General Infrastructure

  • Motivation
  • Toward Disconnection
  • General Infrastructure
  • Service Descriptions
  • Experiment Reports
  • Conclusion
slide-15
SLIDE 15

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

15

Entities and Service Manager

Service Manager Entities

slide-16
SLIDE 16

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

16

Announcing Services

Service Manager ! !

slide-17
SLIDE 17

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

17

Invoking Services

Service Manager ? ?

T T

slide-18
SLIDE 18

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

18

Returning an Answer

Service Manager !

T T

?

slide-19
SLIDE 19

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

19

Evolution: A Target Disappears

Service Manager ? ?

T T

slide-20
SLIDE 20

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

20

Evolution: A Target Evolves

Service Manager ? ?

T T

slide-21
SLIDE 21

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

21

Evolution: A Caller Evolves

Service Manager ? ?

T T

!

T T

?

slide-22
SLIDE 22

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

22

Model Properties: Anonymity and Associative Naming

Service Manager ? ?

T T

slide-23
SLIDE 23

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

23

Model Properties: Asynchrony

Service Manager ? ?

T T

slide-24
SLIDE 24

Service Descriptions

  • Motivation
  • Toward Disconnection
  • General Infrastructure
  • Service Descriptions
  • Experiment Reports
  • Conclusion
slide-25
SLIDE 25

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

25

How to Describe Services?

  • Functionality:

What does it do? (comparable to a method name)

  • Behaviour:

How does it do it? (comparable to method signature)

  • QoS:

How well does it do it? (comparable to the description of a method in an API)

slide-26
SLIDE 26

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

26

Trees

Root Node1 Node21 Node22 Precision AND Relation OR Relation

slide-27
SLIDE 27

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

27

Comparing Trees?

Root Node1 Node21 Node22 Root Node1 Node2 Node3

? ?

The same Number? number

  • f successive

common nodes?

slide-28
SLIDE 28

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

28

Matching Depth (1)

F « Sort » « BubbleSort » « SlowSort » F « Sort » « SlowSort » F « Sort » F « Sort » F « Sort » 2 F « Sort » « SlowSort » F « Sort » « SlowSort » 3

slide-29
SLIDE 29

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

29

Matching Depth (2)

B argument int [] char [] return return int [] char [] B argument [1,2,3] return char [] B argument [1,2,3] B argument char [] B argument B argument char [] B argument [1,2,3] 3 B argument char [] B argument char [] return char [] B argument [1,2,3] return char [] 5

slide-30
SLIDE 30

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

30

Matching Depth (3)

QoS Slow Fast QoS Fast Very Fast QoS Fast QoS Fast 2

slide-31
SLIDE 31

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

31

Service Descriptions

slide-32
SLIDE 32

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

32

Matching Service Descriptions

  • We match each tree separately and the best

adapted service is the one whose service description matches the best with the required service descriptions. (F, then B, then Q)

  • We impose to have minimal values while

matching, to guarantee a minimal adequacy: if no service description is precise enough, nothing occurs and the caller is notified.

slide-33
SLIDE 33

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

33

Matching Service Descriptions

F « Sort » « BubbleSort » « SlowSort » B argument int [] char [] return return int [] char [] B argument char [] QoS Slow Fast , , , 2, 5, 2 ) (

slide-34
SLIDE 34

Experiment Reports

  • Motivation
  • Toward Disconnection
  • General Infrastructure
  • Service Descriptions
  • Experiment Reports
  • Conclusion
slide-35
SLIDE 35

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

35

Implementation: LuckyJ

  • Allows arbitrary changes to be made in classes and objects

used in an application.

  • Considers components as the units of evolution of the

application.

  • Uses a custom communication model based on services

and their descriptions.

slide-36
SLIDE 36

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

36

LuckyJ Characteristics

  • Built on top of a standard JVM (Java 2).
  • Each entity has its own ClassLoader.
  • Decoupling between Description Passer and Service

Manager (possibility to modify the matching module at runtime).

  • A lightweight core platform (5000 lines of code).
slide-37
SLIDE 37

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

37

Other Implementation

  • 2 distributed implementations:

– A centralized distrubuted one

  • Allows to distribute a LuckyJ implementation at runtime
  • Organised in a tree-like structure.

– A semi-centralized one (Stadler 2003)

  • Client peers
  • Server peers
slide-38
SLIDE 38

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

38

Applications

  • Web server WeeselJ:

– http://www.weeselj.org – Implementation online for the last 18 months. – Up to 160 versions of some parts of the code. – 99.99% availability (4 restarts of the application).

  • Tic-Tac-Toe

– Open Days implementation. – Dynamically recoded versions for participants. – Student work on top of LuckyJ.

slide-39
SLIDE 39

Conclusion

  • Motivation
  • Toward Disconnection
  • General Infrastructure
  • Service Descriptions
  • Experiment Reports
  • Conclusion
slide-40
SLIDE 40

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

40

Conclusion

  • We presented our architecture that addresses the

problem of services in very dynamic environments through associative naming, late binding and asynchrony.

  • We give a way of quantifying how well (possibly

complex) descriptions match and prefer some services to others.

  • And… It works quite well. ;)
slide-41
SLIDE 41

April 20th, 2004 An Approach to the Dynamic Evolution of Software Systems

41

Future work

  • Correctness???
  • Self-Organizing Applications ???
  • Semantic Service Descriptions ???
  • Object-level Evolution ???