Abstract
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.
Keywords
- component adaptation
- component evolution
- dynamic linking
- execution environments
- .NET
- runtime systems
Chapter PDF
References
Aaltonen, A., Buckley, A., Eisenbach, S.: Flexible Dynamic Linking for.NET. Journal of .NET Technologies, vol 4 (June 2006)
Abadi, M., Gonthier, G., Werner, B.: Choice in Dynamic Linking. In: Walukiewicz, I. (ed.) FOSSACS 2004. LNCS, vol. 2987, Springer, Heidelberg (2004)
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)
Attardi G., Cisternino, A., Colombo, D.: CIL + Metadata > Executable Program. Journal of Object Technology, Special issue: .NET: The Programmers Perspective: ECOOP Workshop (2003)
Bracciali, A., Brogi, A., Canal, C.: A formal approach to component adaption. In: J. Syst. Softw. vol. 74(1) (2005)
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)
Buckley, A.: A Model of Dynamic Binding in .NET in ECOOP Workshop on Formal Techniques for Java-like Programs. Oslo, Norway (2005)
Buckley, A., Drossopoulou, S.: Flexible Dynamic Linking. In: ECOOP Workshop on Formal Techniques for Java-like Programs. Oslo, Norway (2004)
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)
Corbato, F.J., Vysssotsky, V.A.: Introduction and Overview of the MULTICS System. AFIPS Fall Joint Computer Conference (1965)
DotGNU Project: Available from: http://dotgnu.org/
Drossopoulou, S., Lagorio, G., Eisenbach, S.: Flexible Models for Dynamic Linking. In: European Symposium on Programming. Warsaw, Poland (2003)
Eisenbach, S., Jurisic, V., Sadler, C.: Feeling the Way Through DLL Hell. In: First Workshop on Unanticipated Software Evolution. Malaga, Spain (2002)
Eisenbach, S., Kayhan, D., Sadler, C.: Keeping Control of Reusable Components. In: International Working Conference on Component Deployment. Edinburgh, Scotland(2004)
Eisenbach, S., Sadler C.: Reuse and Abuse. Journal of Object Technology, (January 1, 2007) vol 6. ETH Swiss Federal Institute of Technology (2007)
ECMA International: Standard ECMA-335 Common Language Infrastructure (CLI) (2005) Available from: http://www.ecma-international.org/publications/standards/Ecma-335.htm
Gosling, J., Joy, B., Steele, G., Bracha, G.: Java(TM) Language Specification, 2nd edn. Addison Wesley, London (2000)
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)
Lander, R.: The Wonders of Whidbey Factoring Features. Part 1: Type Forwarders (September 14, 2005) Available from http://hoser.lander.ca/
Magee, J., Kramer, J.: Concurrency : state models & Java programs Chichester, England, Wiley (2006)
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)
Microsoft Corporation: Microsoft Developer Network. Available from: http://msdn.microsoft.com
Microsoft Corporation. Phoenix Documentation (2005) Available from: http://research.microsoft.com/phoenix/
Microsoft Corporation. SSCLI Documentation (2002) Available from: http://research.microsoft.com/sscli/
Mikunov, A.: Rewrite MSIL Code on the Fly with the .NET Framework Profiling API. MSDN Magazine (September 2003)
Paspallis, N., Ppapadopoulos, G.A.: An approach for Developing Adaptive, Mobile Applications with Separation of Concerns. In: Proc. COMPSAC’06 (2006)
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)
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)
Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly (2003)
Sells, C.: .NET and Win 32 tools. available from http://www.sellsbrothers.com/tools
What is Mono? Available from: http://www.mono-project.com/Main_Page
Wong, F.: DLL Hell, The Inside Story (1998) available from: http://www.desaware.com/tech/dllhell.aspx
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 IFIP International Federation for Information Processing
About this paper
Cite this paper
Eisenbach, S., Sadler, C., Wong, D. (2007). Component Adaptation in Contemporary Execution Environments. In: Indulska, J., Raymond, K. (eds) Distributed Applications and Interoperable Systems. DAIS 2007. Lecture Notes in Computer Science, vol 4531. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-72883-2_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-72883-2_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-72881-8
Online ISBN: 978-3-540-72883-2
eBook Packages: Computer ScienceComputer Science (R0)
