Transparent and Dynamic Code Offloading for Java Applications

  • Nicolas Geoffray
  • Gaël Thomas
  • Bertil Folliot
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4276)


Code offloading is a promising effort for embedded systems and load-balancing. Embedded systems will be able to offload computation to nearby computers and large-scale applications will be able to load-balance computation during high load. This paper presents a runtime infrastructure that transparently distributes computation between interconnected workstations. Application source code is not modified: instead, dynamic aspect weaving within an extended virtual machine allows to monitor and distribute entities dynamically. Runtime policies for distribution can be dynamically adapted depending on the environment. A first evaluation of the system shows that our technique increases the transaction rate of a Web server during high load by 73%.


Virtual Machine Load Balance Shared Memory Pervasive Computing Average Response Time 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
  3. 3.
    Aridor, Y., Factor, M., Teperman, A.: cJVM: A Single System Image of a JVM on a Cluster. In: Proceedings of the International Conference on Parallel Processing, Fukushima, Japan, September 1999, pp. 4–11 (1999)Google Scholar
  4. 4.
    Bouchenak, S., Hagimont, D.: Zero Overhead Java Thread Migration. Technical Report 0261, INRIA (May 2002)Google Scholar
  5. 5.
    Chen, X., Allan, V.H.: MultiJav: A Distributed Shared Memory System Based on Multiple Java Virtual Machines. In: Proceedings of the International Conference on Parallel and Distributed Processing Techniques and Applications, Las Vegas, USA, July 1998, vol. I, pp. 91–98 (1998)Google Scholar
  6. 6.
    Dahm, M.: The Doorastha System. Technical Report B 00-01, Freie Universität Berlin (May 2000)Google Scholar
  7. 7.
    Diaconescu, R.E., Wang, L., Mouri, Z., Chu, M.: A Compiler and Runtime Infrastructure for Automatic Program Distribution. In: Proceedings of the International Parallel and Distributed Processing Symposium, Washington, USA, pp. 52–67 (2005)Google Scholar
  8. 8.
    Funfrocken, S.: Transparent Migration of Java-Based Mobile Agents. In: Proceedings of the Mobile Agents Conference, pp. 26–37 (1998)Google Scholar
  9. 9.
    Gosling, J., Joy, B., Steele, G., Bracha, G.: The Java(TM) Language Specification, 2nd edn. (2000)Google Scholar
  10. 10.
    Gu, X.: Adaptive Offloading Inference for Delivering Applications in Pervasive Computing Environments. In: Proceedings of the IEEE Pervasive Computing and Communication (2003)Google Scholar
  11. 11.
    Hagimont, D., Louvegnies, D.: Javanaise: Distributed Shared Objects for Internet Cooperative Applications. In: Proceedings of the Middleware Conference, The Lake District, England (1998)Google Scholar
  12. 12.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  13. 13.
    Lattanzi, E., Gayasen, A., Kandemir, M., Narayanan, V., Benini, L., Bogliolo, A.: Improving Java Performance by Dynamic Method Migration on FPGAs. In: Proceedings of the IEEE Reconfigurable Architecture Workshop (April 2004)Google Scholar
  14. 14.
    Ma, M., Wang, C., Lau, F.: JESSICA: Java-Enabled Single-System-Image Computing Architecture. Journal of Parallel and Distributed Computing 60(10), 1194–1222 (2000)CrossRefGoogle Scholar
  15. 15.
    Messer, A., Greenberg, I., Bernadat, P., Milojicic, D., Giuli, T., Gu, X.: Towards a Distributed Platform for Resource-Constrained Devices. Technical report, Hewlett-Packard (2002)Google Scholar
  16. 16.
    Nagaratnam, N., Srinivasan, A.: Remote Objects in Java. In: Proceedings of the IASTED International Conference on Networks (1996)Google Scholar
  17. 17.
    Ogel, F., Folliot, B., Thomas, G.: A Step Toward Ubiquitous Computing: An Efficient Flexible Micro-ORB. In: Proceedings of the ACM SIGOPS European Workshop, Leuven, Belgium, pp. 176–181 (September 2004)Google Scholar
  18. 18.
    Ogel, F., Patarin, S., Piumarta, I., Folliot, B.: C/SPAN: A Self-Adapting Web Proxy Cache. In: Proceedings of the Autonomic Computing Workshop of the International Workshop on Active Middleware Services, p. 178 (June 2003)Google Scholar
  19. 19.
    Ogel, F., Thomas, G., Folliot, B.: Support Efficient Dynamic Aspects Through Reflection and Dynamic Compilation. In: Proceedings of the Symposium on Applied Computing, Santa Fe, USA (March 2005)Google Scholar
  20. 20.
    Philippsen, M., Zenger, M.: JavaParty: Transparent Remote Objects in Java. Concurrency: Practice and Experience 9(11), 1225–1242 (1997)CrossRefGoogle Scholar
  21. 21.
    Piumarta, I.: The Virtual Processor: Fast, Architecture-Neutral Dynamic Code Generation. In: Proceedings of the Virtual Machine Research and Technology Symposium, San Jose, USA, pp. 97–110 (2004)Google Scholar
  22. 22.
    Piumarta, I., Ogel, F., Folliot, B.: YNVM: Dynamic Compilation in Support of Software Evolution. In: Proceedings of the OOPSLA Engineering Complex Object Oriented System for Evolution Workshop, Tampa Bay, USA (October 2001)Google Scholar
  23. 23.
    Sakamoto, T., Sekiguchi, T., Yonezawa, A.: Bytecode Transformation for Portable Thread Migration in Java. In: Proceedings of the Agent Systems and Applications/Mobile Agents Symposium, pp. 16–28 (2000)Google Scholar
  24. 24.
    Seltzer, M.: The World Wide Web: Issues and Challenges. Presented at IBM Almaden, 7 (1996)Google Scholar
  25. 25.
    Shudo, K., Muraoka, Y.: Asynchronous Migration of Execution Context in Java Virtual Machines. Future Generation Computer Systems 18(2), 225–233 (2001)MATHCrossRefGoogle Scholar
  26. 26.
    Spiegel, A.: Object Graph Analysis. Technical Report B-99-11, Freie Universität Berlin (July 1999)Google Scholar
  27. 27.
    Spiegel, A.: PANGAEA: An Automatic Distribution Front-End for Java. In: Proceedings of the Heterogeneous Computing Workshop, pp. 93–99 (1999)Google Scholar
  28. 28.
    Tatsubori, M., Sasaki, T., Chiba, S., Itano, K.: A Bytecode Translator for Distributed Execution of Legacy Java Software. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, p. 236. Springer, Heidelberg (2001)CrossRefGoogle Scholar
  29. 29.
    Thomas, G., Ogel, F., Galland, A., Folliot, B., Piumarta, I.: Building a Flexible Java Runtime upon a Flexible Compiler. In: Simplot-Ryl, J.-J.V.D., Grimaud, G. (eds.) Special Issue on ‘System & Networking for Smart Objects’ of IASTED International Journal on Computers and Applications, vol. 27, pp. 28–47 (2005)Google Scholar
  30. 30.
    Tilevich, E., Smaragdakis, Y.: J-Orchestra: Automatic Java Application Partitioning. In: Proceedings of the European Conference on Object-Oriented Programming, Malaga, Spain (June 2002)Google Scholar
  31. 31.
    Tilevich, E., Smaragdakis, Y.: NRMI: Natural and Efficient Middleware. In: Proceedings of the International Conference on Distributed Computing Systems, Providence, USA (May 2003)Google Scholar
  32. 32.
    Truyen, E., Robben, B., Vanhaute, B., Coninx, T., Joosen, W., Verbaeten, P.: Portable Support for Transparent Thread Migration in Java. In: Proceedings of the Agent Systems and Application/Mobile Agents Symposium, Zürich, Switzerland, September 2000, pp. 29–43 (2000)Google Scholar
  33. 33.
    Whaley, J.: Joeq: A Virtual Machine and Compiler Infrastructure. In: Proceedings of the Interpreters, Virtual Machines and Emulators Workshop, San Diego, USA, June 2003, pp. 58–67 (2003)Google Scholar
  34. 34.
    Yu, W., Cox, A.: Java/DSM: A Platform for Heterogeneous Computing. Concurrency: Practice and Experience 9(11), 1213–1224 (1997)CrossRefGoogle Scholar
  35. 35.
    Zhu, W., Wang, C., Lau, F.: JESSICA2: A Distributed Java Virtual Machine with Transparent Thread Migration Support. In: Proceedings of the International Conference on Cluster Computing, Chicago, USA (September 2002)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Nicolas Geoffray
    • 1
  • Gaël Thomas
    • 1
  • Bertil Folliot
    • 1
  1. 1.Laboratoire d’Informatique de Paris 6ParisFrance

Personalised recommendations