an approach to the dynamic evolution of software systems
play

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,


  1. An Approach to the Dynamic Evolution of Software Systems Manuel Oriol June 28th, 2006

  2. RoadMap • Motivation • Toward Disconnection • General Infrastructure • Service Descriptions • Experiment Reports • Conclusion April 20th, 2004 An Approach to the Dynamic 2 Evolution of Software Systems

  3. Motivation •Motivation •Toward Disconnection •General Infrastructure •Service Descriptions •Experiment Reports •Conclusion

  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. April 20th, 2004 An Approach to the Dynamic 4 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. April 20th, 2004 An Approach to the Dynamic 5 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 April 20th, 2004 An Approach to the Dynamic 6 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). April 20th, 2004 An Approach to the Dynamic 7 Evolution of Software Systems

  8. Focus • We decided to work on unmarshaled unanticipated and dynamic evolution of object- oriented 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. April 20th, 2004 An Approach to the Dynamic 8 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! April 20th, 2004 An Approach to the Dynamic 9 Evolution of Software Systems

  10. Toward Disconnection •Motivation •Toward Disconnection •General Infrastructure •Service Descriptions •Experiment Reports •Conclusion

  11. Traditional Object-Oriented Applications ? April 20th, 2004 An Approach to the Dynamic 11 Evolution of Software Systems

  12. Problem? Connections April 20th, 2004 An Approach to the Dynamic 12 Evolution of Software Systems

  13. What to do? Remove Connections! ! ? ! ! ? April 20th, 2004 An Approach to the Dynamic 13 Evolution of Software Systems

  14. General Infrastructure •Motivation •Toward Disconnection •General Infrastructure •Service Descriptions •Experiment Reports •Conclusion

  15. Entities and Service Manager Service Manager Entities April 20th, 2004 An Approach to the Dynamic 15 Evolution of Software Systems

  16. Announcing Services Service Manager ! ! April 20th, 2004 An Approach to the Dynamic 16 Evolution of Software Systems

  17. Invoking Services Service Manager ? T ? T April 20th, 2004 An Approach to the Dynamic 17 Evolution of Software Systems

  18. Returning an Answer Service Manager ! T ? T April 20th, 2004 An Approach to the Dynamic 18 Evolution of Software Systems

  19. Evolution: A Target Disappears Service Manager ? T ? T April 20th, 2004 An Approach to the Dynamic 19 Evolution of Software Systems

  20. Evolution: A Target Evolves Service Manager ? T ? T April 20th, 2004 An Approach to the Dynamic 20 Evolution of Software Systems

  21. Evolution: A Caller Evolves Service Manager ? T ! T ? T ? T April 20th, 2004 An Approach to the Dynamic 21 Evolution of Software Systems

  22. Model Properties: Anonymity and Associative Naming Service Manager ? T ? T April 20th, 2004 An Approach to the Dynamic 22 Evolution of Software Systems

  23. Model Properties: Asynchrony Service Manager ? T ? T April 20th, 2004 An Approach to the Dynamic 23 Evolution of Software Systems

  24. Service Descriptions •Motivation •Toward Disconnection •General Infrastructure •Service Descriptions •Experiment Reports •Conclusion

  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) April 20th, 2004 An Approach to the Dynamic 25 Evolution of Software Systems

  26. Trees Root Precision Node1 AND Relation Node21 Node22 OR Relation April 20th, 2004 An Approach to the Dynamic 26 Evolution of Software Systems

  27. Comparing Trees? Root Root ? Node1 Node1 number Node2 of successive Node21 Node22 common nodes? Node3 ? The same Number? April 20th, 2004 An Approach to the Dynamic 27 Evolution of Software Systems

  28. Matching Depth (1) F F F F F F F 3 2 « Sort » « Sort » « Sort » « Sort » « Sort » « Sort » « Sort » « BubbleSort » « SlowSort » « SlowSort » « SlowSort » « SlowSort » April 20th, 2004 An Approach to the Dynamic 28 Evolution of Software Systems

  29. Matching Depth (2) B B B B B B B B B B 5 3 argument argument argument argument argument argument argument argument argument argument int [] char [] char [] char [] char [] char [] [1,2,3] [1,2,3] [1,2,3] [1,2,3] return return return return return int [] char [] char [] char [] char [] April 20th, 2004 An Approach to the Dynamic 29 Evolution of Software Systems

  30. Matching Depth (3) QoS QoS QoS QoS 2 Slow Fast Fast Fast Fast Very Fast April 20th, 2004 An Approach to the Dynamic 30 Evolution of Software Systems

  31. Service Descriptions April 20th, 2004 An Approach to the Dynamic 31 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. April 20th, 2004 An Approach to the Dynamic 32 Evolution of Software Systems

  33. Matching Service Descriptions QoS ( B B , , 2, 5, 2 ) F , argument argument « Sort » Slow Fast int [] char [] char [] « SlowSort » return return « BubbleSort » int [] char [] April 20th, 2004 An Approach to the Dynamic 33 Evolution of Software Systems

  34. Experiment Reports •Motivation •Toward Disconnection •General Infrastructure •Service Descriptions •Experiment Reports •Conclusion

  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. April 20th, 2004 An Approach to the Dynamic 35 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). April 20th, 2004 An Approach to the Dynamic 36 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 April 20th, 2004 An Approach to the Dynamic 37 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. April 20th, 2004 An Approach to the Dynamic 38 Evolution of Software Systems

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend