Romization: Early Deployment and Customization of Java Systems for Constrained Devices

  • Alexandre Courbot
  • Gilles Grimaud
  • Jean-Jacques Vandewalle
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3956)


Memory is one of the scarcest resource of embedded and constrained devices. This paper studies the memory footprint benefit of pre-deploying embedded Java systems up to their activation using romization. We find out that the more the system is deployed off-board, the more it can be efficiently and automatically customized in order to reduce its final size. This claim is validated experimentally through the production of memory images that are between 10% and 45% the size of their J2ME CLDC counterparts, while using the J2SE API and being ready-to-run without any further on-board initialization. Embedded solutions like J2ME degrade the Java environment and API right from their specification, limiting their usage perspectives. By contrast, our romization scheme generates and specializes a custom-tailored Java API for embedded applications deployed in a full-fledged J2SE environment.


Virtual Machine Smart Card Java Virtual Machine Memory Footprint Call Graph 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Carzaniga, A., Fuggetta, A., Hall, R.S., van der Hoek, A., Heimbigner, D., Wolf, A.L.: A characterization framework for software deployment technologies. Tech. Rep. CU-CS-857-98, Dept. of Computer Science, University of Colorado (April 1998)Google Scholar
  2. 2.
    OSGi Alliance, OSGi Service Platform, Release 3. IOS Press, Inc., Amsterdam (2003)Google Scholar
  3. 3.
    Searls, R.: Java 2 Enterprise Edition Deployment API Specification, Version 1.1 (August 2002)Google Scholar
  4. 4.
    Lindholm, T., Yellin, F.: Java Virtual Machine Specification. Addison-Wesley Longman Publishing Co., Inc., Amsterdam (1999)Google Scholar
  5. 5.
    Mulchandani, D.: Java for embedded systems. IEEE Internet Computing 2(3), 30–39 (1998)CrossRefGoogle Scholar
  6. 6.
    Chang, D.-W., Chang, R.-C.: Ejvm: an economic java run-time environment for embedded devices. Software Practice & Experience 31(2), 129–146 (2001)CrossRefMATHGoogle Scholar
  7. 7.
    Rayside, D., Mamas, E., Hons, E.: Compact java binaries for embedded systems. In: Proceedings of the 1999 conference of the Centre for Advanced Studies on Collaborative research, p. 9. IBM Press (1999)Google Scholar
  8. 8.
    Chen, Z.: Java Card Technology for Smart Cards: Architecture and Programmer’s Guide. Addison-Wesley Longman Publishing Co., Inc., Amsterdam (2000)Google Scholar
  9. 9.
    The J-Consortium, JEFF Draft Specification (March 2002)Google Scholar
  10. 10.
    Sun Microsystems, J2ME Building Blocks for Mobile Devices (2000)Google Scholar
  11. 11.
    The Java Card Virtual Machine Specification (2003)Google Scholar
  12. 12.
    Grove, D., DeFouw, G., Dean, J., Chambers, C.: Call graph construction in object-oriented languages. In: OOPSLA 1997: Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 108–124. ACM Press, New York (1997)Google Scholar
  13. 13.
    Rayside, D., Kontogiannis, K.: Extracting java library subsets for deployment on embedded systems. Sci. Comput. Program. 45(2-3), 245–270 (2002)CrossRefMATHGoogle Scholar
  14. 14.
    Tip, F., Sweeney, P.F., Laffra, C.: Extracting library-based java applications. Commun. ACM 46(8), 35–40 (2003)CrossRefGoogle Scholar
  15. 15.
    Diwan, A., McKinley, K.S., Moss, J.E.B.: Using types to analyze and optimize object-oriented programs. ACM Trans. Program. Lang. Syst. 23(1), 30–72 (2001)CrossRefGoogle Scholar
  16. 16.
    Sundaresan, V., Hendren, L., Razafimahefa, C., Vallée-Rai, R., Lam, P., Gagnon, E., Godin, C.: Practical virtual method call resolution for java. In: OOPSLA 2000: Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, pp. 264–280. ACM Press, New York (2000)CrossRefGoogle Scholar
  17. 17.
    Java In The Small,
  18. 18.
    Dean, J., Grove, D., Chambers, C.: Optimization of object-oriented programs using static class hierarchy analysis. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol. 952, pp. 77–101. Springer, Heidelberg (1995)Google Scholar
  19. 19.
    Rippert, C., Courbot, A., Grimaud, G.: A low-footprint class loading mechanism for embedded java virtual machines. In: 3rd ACM International Conference on the Principles and Practice of Programming in Java, Las Vegas, USA (2004)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Alexandre Courbot
    • 1
  • Gilles Grimaud
    • 1
  • Jean-Jacques Vandewalle
    • 2
  1. 1.Laboratoire d’Informatique Fondamentale de Lille, IRCICA/LIFLUniv. Lille 1, CNRS UMR 8022, INRIA FutursVilleneuve d’AscqFrance
  2. 2.Gemplus Systems Research LabsLa Vigie - ZI Athélia IVLa CiotatFrance

Personalised recommendations