JavaES, a Flexible Java Framework for Embedded Systems

  • Juan Antonio Holgado-Terriza
  • Jaime Viúdez-Aivar


Today, several strategies can be adopted in order to build a complete embedded application, including the use of software and hardware components with a reusable base to satisfy the increasing demands and requirements of actual embedded systems with shorter time to market. A new flexible Java framework is presented in this chapter for the development and deployment of functional embedded systems. It may be adapted to different existing embedded target devices, providing at the same time a common programming environment based on Java with well-defined semantics. This framework makes possible the portability of applications among embedded targets without any re-implementation according to the WORA principle – write once, run anywhere – and gives also a reliable and sound platform that may extend the capabilities of an embedded target by the integration of hardware components without requiring the implementation of any device driver.


Embed System Execution Environment Java Virtual Machine Hardware Device Embed Device 
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.



This paper is an extended version of the paper “A flexible Java framework for embedded systems” published in the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems, JTRES, ACM Digital Library, 2009.


  1. 2.
    G. Agosta, S. Crespi, and G. Svelto. Jetatine: A virtual machine for small embedded systems. In Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems, pages 170–177, 2006.Google Scholar
  2. 4.
    aJile Systems. ajile systems: Home site. Available at
  3. 13.
    J. Andreu, J. Videz, and J.A. Holgado. An ambient assisted-living architecture based on wireless sensor networks. Advances in Soft Computing, Springer, 51:239–248, 2008.Google Scholar
  4. 15.
    Apache. Apache Ant tool. Available at
  5. 18.
    A. Armbruster, J. Baker, A. Cunei, C. Flack, D. Holmes, F. Pizlo, E. Pla, M. Prochazka, and J. Vitek. A real-time Java virtual machine with applications in avionics. Trans. on Embedded Computing Sys., 7(1):1–49, 2007.CrossRefGoogle Scholar
  6. 65.
    G. Bollella, J. Gosling, B. Brosgol, P. Dibble, S. Furr, and M. Turnbull. The Real-Time Specification for Java. Java Series. Addison-Wesley, June 2000.Google Scholar
  7. 117.
    Frampton D., Blackburn S.M., Cheng P., Garner R. J., Grove D., Moss J.E.B., and Salishev S.I. Demystifying magic: high-level low-level programming. In Proceedings of the ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, pages 81–90, 2009.Google Scholar
  8. 123.
    G. De Micheli, R. Ernst, and W. Wolf, editors. Readings in Hardware/Software Co-design. Kluwer Academic Publishers, 2002.Google Scholar
  9. 125.
    M. Debbabi, A. Mourad, C. Talhi, and Yahyaoui H. Accelerating embedded Java for mobile devices. IEEE Communications Magazine, 1:79–85, 2005.Google Scholar
  10. 147.
    EJC. The ejc (embedded Java controller) platform. Available at
  11. 163.
    Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns. Addison Wesley Professional Computing Series. Addison-Wesley, 1995.Google Scholar
  12. 192.
    T. Henties, J.J. Hunt, D. Locke, K. Nilsen, M. Schoeberl, and J. Vitek. Java for safety-critical applications. Electronic Notes in Theoretical Computer Science, 2009.Google Scholar
  13. 195.
    M.T. Higuera, V. Issarny, M. Banatre, G. Cabillic, J.P. Lesot, and F. Parain. Java embedded real-time systems: An overview of existing solutions. In In Proc. 3rd International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC), pages 392–399, 2000.Google Scholar
  14. 207.
    J.A. Holgado, A. Moreno, and Capel M.I. Java-based adaptable middleware platform for virtual instrumentation. In IEEE Symposium on Virtual Environments, Human-Computer Interfaces and Measurement Systems, pages 144–149, 2007.Google Scholar
  15. 215.
    Imsys. Snap, simple network application platform. Available at
  16. 218.
    Imsys AB. Imsys. Available at
  17. 223.
    Javolution. Available at
  18. 224.
    JCP. Java Community Process Program. Available at
  19. 234.
    I.H. Kazi, H.H. Chen, B. Stanley, and D.J. Lilja. Techniques for obtaining high performance in Java programs. ACM Computing Surveys, 32(3):213–240, 2000.CrossRefGoogle Scholar
  20. 249.
    Lejos. Available at
  21. 250.
    S. Liang. The Java Native Interface: Programmer’s Guide and Specification. The Java Series. Prentice Hall, 1999.Google Scholar
  22. 266.
    Matrix. Mtx65. Available at
  23. 267.
  24. 282.
    NXP. Pcf 8591. Available at
  25. 287.
    Oracle Labs. Sunspot. Available at
  26. 291.
    Parallax. Javelin stamp. Available at
  27. 301.
    F. Pizlo, L. Ziarek, and J. Vitek. Real time Java on resource-constrained platforms with fiji vm. In JTRES’09: Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems, pages 110–119, New York, NY, USA, 2009. ACM.Google Scholar
  28. 329.
    S.S. Rodrguez and J.A. Holgado. A home-automation platform towards ubiquitous spaces based on a decentralized p2p architecture. Advances in Soft Computing, Springer, 50:304–308, 2008.Google Scholar
  29. 337.
    RTJ Computing. simpleRTJ a small footprint Java VM for embedded and consumer devices. Available at, 2000.
  30. 342.
    A. Sangiovanni-Vincentelli and G. Martin. Platform-based design and software design methodology for embedded systems. IEEE Des. Test Comput., 18(6):23–33, 2001.CrossRefGoogle Scholar
  31. 347.
    M. Schoeberl. Restrictions of Java for embedded real-time systems. In Proceedings of the 7th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2004), pages 93–100, Vienna, Austria, May 2004. IEEE.Google Scholar
  32. 352.
    M. Schoeberl. A Java processor architecture for embedded real-time systems. Journal of Systems Architecture, 54/1–2:265–286, 2008.Google Scholar
  33. 363.
    U.P. Schultz, K. Burgaard, F.G. Christensen, and J.L. Knudsen. Compiling java for low-end embedded systems. ACM SIGPLAN Notices, 38(7):42–50, 2003.CrossRefGoogle Scholar
  34. 367.
    N. Shaylor, D. Simon, and W. Bush. A Java virtual machine architecture for very small devices. ACM SIGPLAN Notices, 38(7):34–41, 2003.CrossRefGoogle Scholar
  35. 378.
    D. Simon, C. Cifuentes, D. Cleal, J. Daniels, and D. White. Java on the bare metal of wireless sensor devices: the squawk Java virtual machine. In Proceedings of the 2nd international conference on Virtual execution environments (VEE 2006), pages 78–88, New York, NY, USA, 2006. ACM Press.Google Scholar
  36. 386.
    O. Strom, K. Svarstad, and E. J. Aas. On the utilization of Java technology in embedded systems. Design Automation for Embedded Systems, 8(1):87–106, 2003.CrossRefGoogle Scholar
  37. 402.
    Systronix. Tstik. Available at
  38. 403.
    Systronix. Jstik. Available at, 2010.
  39. 425.
    A.J. Wellings. Concurrent and real-time programming in Java. John Wiley and Sons, 2004.Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2012

Authors and Affiliations

  • Juan Antonio Holgado-Terriza
    • 1
  • Jaime Viúdez-Aivar
    • 1
  1. 1.Software Engineering DepartmentUniversity of GranadaGranadaSpain

Personalised recommendations