skip to main content
10.1145/1101516.1101517acmotherconferencesArticle/Chapter ViewAbstractPublication PagesmiddlewareConference Proceedingsconference-collections
Article

Develop once deploy anywhere achieving adaptivity with a runtime linker/loader framework

Published: 28 November 2005 Publication History

Abstract

This paper presents Load and Let Link -- a framework for flexible runtime loading and linking of procedural native code components. LLL has several novel aspects. First, it provides componentization without requiring an object-oriented language. Second, LLL performs linking at runtime, providing arbitrary code expansion, contraction and substitution. This enables (a) adaptive applications that can rewire themselves in response to dynamic conditions, (b) code patching for mission critical systems and (c) automatic overlaying in memory constrained environments. LLL is language neutral and orthogonal to current software development methodologies, thus providing the substrate for the next generation of develop once deploy anywhere software. In this paper, we present the LLL framework, its implementation on 32 bit x86 architectures and two case studies that showcase the capabilities of the framework.

References

[1]
Aksit, M. and Choukair, Z. Dynamic, adaptive and reconfigurable systems overview and prospective vision. In Proceedings of the 23rd international conference on Distributed computing systems workshops (ICDCSW '03) (Providence, Rhode Island, USA, May, 2003).
[2]
Appavoo, J., Hui, K., Soules, C. A. N., Wisniewski, R. W., Silva, D. M. D., Krieger, O., Auslander, D. J. E. M. A., Gamsa, B., Ganger, G. R., McKenny, P., Ostrowski, M., Rosenburg, B., Stumm, M. and Xenidis, J. Enabling autonomic behavior in systems software with hot-swapping. IBM Systems Journal, 42, 1 (2003).
[3]
Capra, L., Blair, G. S., Mascolo, C., Emmerich, W. and Grace, P. Exploiting reflection in mobile computing middleware. ACM SIGMOBILE Mobile Computing and Communications Review, 6, 4 (October, 2002), 34--44.
[4]
Carpa, L., Emmerich, W. and Masolo, C. Middleware for mobile computing: awareness vs. transparency. In Proceedings of the 8th workshop on Hot topics in operating systems (HOTOS '01) (Schloss Elmau, Germany, May, 2001).
[5]
Chen, Y. Aspect-Oriented Programming (AOP): Dynamic Weaving for C++. Master thesis, Vrije Universiteit Brussel and Ecole des Mines de Nantes, 2003.
[6]
Dillo: http://www.dillo.org/.
[7]
Duran-Limon, H. and Blair, G. S. A resource management framework for adaptive middleware. In Proceedings of the 3rd IEEE international symposium on Object-oriented real time distributed computing (ISORC '00) (Newport Beach, California, USA, March, 2000).
[8]
Flinn, J. and Satyanarayanan, M. Energy-aware adaptation for mobile applications. In Proceedings of the 17th symposium on Operating systems principles (SOSP '99) (Charleston, South Carolina, USA, 1999).
[9]
Gilani, W., Naqvi, N. H. and Spinczyk, O. On adaptable middleware product lines. In Proceedings of the 3rd workshop on Adaptive and reflective middleware (ARM '04) (Toronto, Canada, October, 2004).
[10]
GNU libc: http://www.gnu.org/software/libc/libc.html
[11]
Heffner, A. M. A Runtime Framework for Adaptive Compositional Modeling. Masters Thesis, Virginia Polytechnic Institute and State University, Blacksburg, VA, USA, 2004.
[12]
Hicks, M., Moore, J. T. and Nettles, S. Dynamic software updating. In Proceedings of the ACM SIGPLAN conference on Programming languages design and implementation (PLDI '01) (Snowbird, Utah, USA, May, 2001).
[13]
Huang, G., Mei, H. and Wang, Q. Towards software architecture at runtime. ACM SIGSOFT Software Engineering Notes, 28, 2 (March 2003) 8.
[14]
Kon, F., Costa, F., Blair, G. and Campbell, R. H. The case for reflective middleware. Communications of the ACM, 45, 6 (June 2002) 33--38.
[15]
Liang, S. and Bracha, G. Dynamic class loading in the Java virtual machine. In Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages and applications (OOPSLA '98) (Vancouver, Canada, October, 1998).
[16]
Mahmood, N., Deng, G. and Browne, J. C. Compositional development of parallel programs. In Proceedings of the 16th workshop on Languages and compilers for parallel computing (LCPC '03) (College Station, TX, USA, October, 2003).
[17]
McKinley, P. K., Sadjadi, S. M., Kasten, E. P. and Cheng, B. H. C. Composing adaptive software. IEEE Computer, 37, 7 (2004) 56--64.
[18]
Mukherjee, J. and Varadarajan, S. Weaves: a framework for reconfigurable programming. International Journal forParallel Programming, 33, 2 (June 2005) 279--305.
[19]
Orr, D. B. and Mecklenburg, R. W. OMOS -- an object server for program execution. In Proceedings of the 2nd international workshop on Object orientation in operating systems (OOOS '92) (Paris, France, September, 1992).
[20]
Orr, D. B. Lepreau, J., Bonn, J. and Mecklenburg, R. Fast and flexible shared libraries, In Proceedings of the Summer USENIX conference (1993).
[21]
Pierre-Charles, D. and Ledoux, T. Towards a framework for self-adaptive component-based applications. In Proceedings of the 4th IFIP international conference on Distributed applications and interoperable systems (DAIS '03) (Paris, France, November, 2003).
[22]
Plugins: http://www.plugins.com/
[23]
Poletto, M., Hsieh, W. C., Engler, D. R. and Kaashoek, M. F. C and tcc: a language and compiler for dynamic code generation. ACM Transactions on Programming Languages and Systems, 21, 2 (March 1999) 324--369.
[24]
PNG: http://www.libpng.org/pub/png/
[25]
Pth: http://www.gnu.org/software/pth/
[26]
Pthreads: http://www.llnl.gov/computing/tutorials/pthreads/
[27]
Raatikainen, K., Christensen, H. B. and Nakajima, T. Application requirements for middleware for mobile and pervasive systems. ACM SIGMOBILE Mobile Computing and Communications Review, 6, 4 (October, 2002), 16--24.
[28]
Redmond, B. and Cahill, V. Supporting unanticipated dynamic adaptation of application behavior. In Proceedings of the 16th European conference on Object-oriented programming (ECOOP '02) (Malaga, Spain, June, 2002).
[29]
Rentsch, T. Object oriented programming. ACM SIGPLAN Notices, 17, 9 (September 1982), 51--57.
[30]
Rigole, P., Berbers, Y., Holvoet, T. and Leuven, K. U. Mobile adaptive tasks guided by resource contracts. In Proceedings of the 2nd workshop on Middleware for pervasive and ad-hoc computing (MPAC '04) (Toronto, Canada, October, 2004).
[31]
Schmidt, D. C. Middleware for real-time and embedded systems. Communications of the ACM, 45, 6 (June 2002) 43--48.
[32]
Serra, A., Navarro, N., and Cortes, T. DITOOLS: Application level support for dynamic extension and flexible composition. In Proceedings of the 2000 USENIX Annual technical conference (USENIX '00) (San Diego, California, USA, June, 2000).
[33]
Smith, B. C. Reflection and semantics in a procedural programming language. Ph.D. Thesis, Massachusetts Institute of Technology, Boston, MA, 1982.
[34]
Stoyle, G., Hicks, M., Bierman, G., Sewell, P. and Neamtiu, J. Mutatis mutandis: safe and predictable dynamic software updating. In Proceedings of the 32nd ACM SIGPLAN SIGACT symposium on Principles of programming languages (POPL '05) (Long Beach, California, USA, January, 2005).
[35]
Szyperski, C. Component Software: Beyond Object-Oriented Programming. Addison-Wesley, 1998.
[36]
Tools Interface Standards Committee, Executable and Linkable Format (ELF) Specification. May 1995.
[37]
Unnikrishnan, P., Chen, G., Kandemir, M. and Mudgett, D. R. Dynamic compilation for energy adaptation. In Proceedings of the international conference on Computer aided design(ICCAD '02) (San Jose, California, USA, 2002).
[38]
Varney, L. R. Interface-Oriented Programming. Technical Report TR-040016, Department of Computer Science, University of California, Los Angeles, CA, 2004.
[39]
Varney, L. R. and Parker, D. S. Interface-oriented middleware and distributed service inference. In Proceedings of the 3rd workshop on Adaptive and reflective middleware (ARM '04) (Toronto, Canada, October, 2004).
[40]
Yang, Z., Zhou, Z., Cheng, B. H. C. and McKinley, P. K. Enabling collaborative adaptation across legacy components. In Proceedings of the 3rd workshop on Adaptive and reflective middleware (ARM '04) (Toronto, Canada, October, 2004).

Cited By

View all
  • (2024)NimbleNet: Serverless Computing for the Extreme Edge in Factory EnvironmentsProceedings of the 10th International Workshop on Serverless Computing10.1145/3702634.3702953(19-24)Online publication date: 2-Dec-2024
  • (2013)Distributed ONEProceedings of the 6th International ICST Conference on Simulation Tools and Techniques10.5555/2512734.2512736(10-16)Online publication date: 5-Mar-2013
  • (2012)Open Network EmulatorProceedings of the 2012 ACM/IEEE/SCS 26th Workshop on Principles of Advanced and Distributed Simulation10.1109/PADS.2012.29(101-110)Online publication date: 15-Jul-2012
  • Show More Cited By

Index Terms

  1. Develop once deploy anywhere achieving adaptivity with a runtime linker/loader framework

      Recommendations

      Comments

      Information & Contributors

      Information

      Published In

      cover image ACM Other conferences
      ARM '05: Proceedings of the 4th workshop on Reflective and adaptive middleware systems
      November 2005
      77 pages
      ISBN:1595932704
      DOI:10.1145/1101516
      Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      Published: 28 November 2005

      Permissions

      Request permissions for this article.

      Check for updates

      Author Tags

      1. adaptive applications
      2. composition
      3. runtime linking and loading
      4. software component architectures

      Qualifiers

      • Article

      Acceptance Rates

      Overall Acceptance Rate 15 of 21 submissions, 71%

      Contributors

      Other Metrics

      Bibliometrics & Citations

      Bibliometrics

      Article Metrics

      • Downloads (Last 12 months)3
      • Downloads (Last 6 weeks)0
      Reflects downloads up to 14 Feb 2025

      Other Metrics

      Citations

      Cited By

      View all
      • (2024)NimbleNet: Serverless Computing for the Extreme Edge in Factory EnvironmentsProceedings of the 10th International Workshop on Serverless Computing10.1145/3702634.3702953(19-24)Online publication date: 2-Dec-2024
      • (2013)Distributed ONEProceedings of the 6th International ICST Conference on Simulation Tools and Techniques10.5555/2512734.2512736(10-16)Online publication date: 5-Mar-2013
      • (2012)Open Network EmulatorProceedings of the 2012 ACM/IEEE/SCS 26th Workshop on Principles of Advanced and Distributed Simulation10.1109/PADS.2012.29(101-110)Online publication date: 15-Jul-2012
      • (2008)Towards a service-based middleware layer for runtime environmentsProceedings of the 2008 ACM symposium on Applied computing10.1145/1363686.1363810(507-511)Online publication date: 16-Mar-2008
      • (2007)The Adaptive Code Kitchen: Flexible Tools for Dynamic Application Composition2007 IEEE International Parallel and Distributed Processing Symposium10.1109/IPDPS.2007.370493(1-8)Online publication date: Mar-2007

      View Options

      Login options

      View options

      PDF

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader

      Figures

      Tables

      Media

      Share

      Share

      Share this Publication link

      Share on social media