Component Adaptation in Contemporary Execution Environments

  • Susan Eisenbach
  • Chris Sadler
  • Dominic Wong
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4531)


Because they are required to support component deployment and composition, modern execution environments embody a number of common features such as dynamic linking and support for multiple component versions. These features help to overcome some classical maintenance problems focused largely on component evolution, where successive generations of collaborating components need to be kept collaborating. What has been less studied has been component adaptation, whereby a component developed in an environment consisting of one set of service components is required to operate in one or several other environments containing qualitatively different components. In this paper we examine the needs developers and deployers have arising out of component adaptation and explore the concept of Flexible Dynamic Linking as a means of satisfying them. We describe a suite of tools developed to demonstrate this approach to component adaptation support within the .NET Common Language Runtime.


component adaptation component evolution dynamic linking execution environments .NET runtime systems 


  1. 1.
    Aaltonen, A., Buckley, A., Eisenbach, S.: Flexible Dynamic Linking for.NET. Journal of .NET Technologies, vol 4 (June 2006)Google Scholar
  2. 2.
    Abadi, M., Gonthier, G., Werner, B.: Choice in Dynamic Linking. In: Walukiewicz, I. (ed.) FOSSACS 2004. LNCS, vol. 2987, Springer, Heidelberg (2004)Google Scholar
  3. 3.
    Ancona, D., Damiani, F., Drossopoulou, S., Zucca, E.: Polymorphic Bytecode: Compositional Compilation for Java-like Languages. In: ACM SIGPLAN-SIGACT Symposium on Principles of Progamming Languages. Long Beach, California (2005)Google Scholar
  4. 4.
    Attardi G., Cisternino, A., Colombo, D.: CIL + Metadata > Executable Program. Journal of Object Technology, Special issue: .NET: The Programmers Perspective: ECOOP Workshop (2003) Google Scholar
  5. 5.
    Bracciali, A., Brogi, A., Canal, C.: A formal approach to component adaption. In: J. Syst. Softw. vol. 74(1) (2005)Google Scholar
  6. 6.
    Bialek, R., Jul, E., Schneider, J.-G., Jin, y.: Partitioning of Java Applications to Support Dynamic Updates. In: 11th Asia-Pacific Software Engineering Conference (APSEC’04)(2004) Google Scholar
  7. 7.
    Buckley, A.: A Model of Dynamic Binding in .NET in ECOOP Workshop on Formal Techniques for Java-like Programs. Oslo, Norway (2005)Google Scholar
  8. 8.
    Buckley, A., Drossopoulou, S.: Flexible Dynamic Linking. In: ECOOP Workshop on Formal Techniques for Java-like Programs. Oslo, Norway (2004)Google Scholar
  9. 9.
    Buckley, A., Murray, M., Eisenbachm, S., Drossopoulou, S.: Flexible Bytecode for Linking. In: .NET in ETAPS Workshop on Bytecode Semantics, Verification, Analysis and Transformation. Edinburgh, Scotland (2005)Google Scholar
  10. 10.
    Corbato, F.J., Vysssotsky, V.A.: Introduction and Overview of the MULTICS System. AFIPS Fall Joint Computer Conference (1965)Google Scholar
  11. 11.
    DotGNU Project: Available from:
  12. 12.
    Drossopoulou, S., Lagorio, G., Eisenbach, S.: Flexible Models for Dynamic Linking. In: European Symposium on Programming. Warsaw, Poland (2003)Google Scholar
  13. 13.
    Eisenbach, S., Jurisic, V., Sadler, C.: Feeling the Way Through DLL Hell. In: First Workshop on Unanticipated Software Evolution. Malaga, Spain (2002)Google Scholar
  14. 14.
    Eisenbach, S., Kayhan, D., Sadler, C.: Keeping Control of Reusable Components. In: International Working Conference on Component Deployment. Edinburgh, Scotland(2004)Google Scholar
  15. 15.
    Eisenbach, S., Sadler C.: Reuse and Abuse. Journal of Object Technology, (January 1, 2007) vol 6. ETH Swiss Federal Institute of Technology (2007)Google Scholar
  16. 16.
    ECMA International: Standard ECMA-335 Common Language Infrastructure (CLI) (2005) Available from:
  17. 17.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: Java(TM) Language Specification, 2nd edn. Addison Wesley, London (2000)zbMATHGoogle Scholar
  18. 18.
    Kennedy, A., Syme, D.: Design and Implementation of Generics for the .NET Common Language Runtime. In: ACM SIGPLAN Conference on Programming Language Design and Implementation. Snowbird, Utah, USA (2001)Google Scholar
  19. 19.
    Lander, R.: The Wonders of Whidbey Factoring Features. Part 1: Type Forwarders (September 14, 2005) Available from
  20. 20.
    Magee, J., Kramer, J.: Concurrency : state models & Java programs Chichester, England, Wiley (2006) Google Scholar
  21. 21.
    McKinley, P., Sadjadi, S.M., Kasten, E.P., Cheng, B.H.C.: A Taxonomy of Compositional Adaptation in Software Engnieering and Network Systems Laboratory Technical Report MSU-CSE-04-17 (2004)Google Scholar
  22. 22.
    Microsoft Corporation: Microsoft Developer Network. Available from:
  23. 23.
    Microsoft Corporation. Phoenix Documentation (2005) Available from:
  24. 24.
    Microsoft Corporation. SSCLI Documentation (2002) Available from:
  25. 25.
    Mikunov, A.: Rewrite MSIL Code on the Fly with the .NET Framework Profiling API. MSDN Magazine (September 2003)Google Scholar
  26. 26.
    Paspallis, N., Ppapadopoulos, G.A.: An approach for Developing Adaptive, Mobile Applications with Separation of Concerns. In: Proc. COMPSAC’06 (2006)Google Scholar
  27. 27.
    Piessens, F., Jacobs, B., Truyen, E., Joosen, W.: Support for Metadata-driven Selection of Run-time Services In: .NET is Promising but Immature. Journal of Object Technology, Special issue: .NET: The Programmers Perspective: ECOOP Workshop (2003)Google Scholar
  28. 28.
    Shao, Z., Appel, A.W.: Smartest Recompilation. In: Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL’93), Charleston, South Carolina, USA (1993)Google Scholar
  29. 29.
    Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly (2003)Google Scholar
  30. 30.
    Sells, C.: .NET and Win 32 tools. available from
  31. 31.
    What is Mono? Available from:
  32. 32.
    Wong, F.: DLL Hell, The Inside Story (1998) available from:

Copyright information

© IFIP International Federation for Information Processing 2007

Authors and Affiliations

  • Susan Eisenbach
    • 1
  • Chris Sadler
    • 2
  • Dominic Wong
    • 3
  1. 1.Department of Computing, Imperial College LondonUK
  2. 2.School of Computing Science, Middlesex UniversityUK
  3. 3.Morgan Stanley, LondonUK

Personalised recommendations