Skip to main content

Component-Oriented Development for Real-Time Java

  • Chapter
  • First Online:
Distributed, Embedded and Real-time Java Systems

Abstract

The Real-Time Specification for Java (RTSJ) offers developers an attractive platform for development of software that is composed of variously stringent real-time and non real-time tasks. However, the RTSJ introduces a programming model involving several non-intuitive rules and restrictions which make systems modeling and development a complex and error-prone task. In this chapter we introduce an advanced software engineering technology that allows developers to address these challenges – component-oriented development. In the first part, we present the general concepts and identify the key benefits of this technology. We further show one of the possible approaches on how to embrace this technology when mitigating the complexities of RTSJ development – the Hulotte framework. The framework provides a continuum between the component-oriented design and implementation process of RTSJ systems. The RTSJ concepts are treated as first-class entities which enables the modeling and automatized preparation of their implementation by employing code-generation techniques. We conclude this chapter with an extensive case study comparing object-oriented and component-oriented implementation of the Collision Detector Benchmark. Our empirical evaluation shows that the performance overhead of the framework is minimal in comparison to manually written object-oriented applications without imposing any restrictions on the programming style.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

eBook
USD 16.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 159.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 109.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    The Hulotte framework is available at http://adam.lille.inria.fr/soleil/.

  2. 2.

    Available under open-source license at http://www.ovmj.net/cdx/.

  3. 3.

    The model can be further extended to optimize the memory usage by enabling allocation of the infrastructure data in scoped memory areas, which would also allow reconfiguration of the system at runtime, these extensions are currently being investigated.

  4. 4.

    Eclipse Modeling Framework [86] is one of the most widely accepted metamodeling technology.

  5. 5.

    Detail instructions on how to run CD xon various platforms together with its open-source distributions are available from http://www.ovmj.net/cdx. The versions used for this book are tagged as “cdj-RTSJ-COM” and “cdj-RTSJ”.

  6. 6.

    The Linux Rt-Preempt patch is available at www.kernel.org/pub/linux/kernel/projects/rt/.

References

  1. A. Corsaro, C. Santoro. The Analysis and Evaluation of Design Patterns for Distributed Real-Time Java Software. 16th IEEE International Conference on Emerging Technologies and Factory Automation, 2005.

    Google Scholar 

  2. C. Andreae, Y. Coady, C. Gibbs, J. Noble, J. Vitek, and T. Zhao. Scoped types and aspects for real-time Java memory management. Real-Time Syst., 37(1):1–44, 2007.

    Article  MATH  Google Scholar 

  3. A. Basu, M. Bozga, and J. Sifakis. Modeling Heterogeneous Real-time Components in BIP. In Proceedings of the Fourth IEEE International Conference on Software Engineering and Formal Methods, pages 3–12, Washington, DC, USA, 2006. IEEE Computer Society.

    Google Scholar 

  4. E. Benowitz and A. Niessner. A patterns catalog for RTSJ software designs. In Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), Lecture Notes in Computer Science, volume 2889, pages 497–507, 2003.

    Google Scholar 

  5. 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 

  6. M. Bordin and T. Vardanega. Real-time Java from an Automated Code Generation Perspective. In JTRES’07: Proceedings of the 5th International Workshop on Java Technologies for Real-time and Embedded Systems, pages 63–72, New York, NY, USA, 2007. ACM.

    Google Scholar 

  7. E. Bruneton, T. Coupaye, M. Leclercq, V. Quéma, and J.B. Stefani. The Fractal Component Model and its Support in Java. Software: Practice and Experience, 36:1257–1284, 2006.

    Article  Google Scholar 

  8. F. Budinsky, D. Steinberg, R. Ellersick, E. Merks, S.A. Brodsky, and T.J. Grose. Eclipse Modeling Framework. Addison-Wesley, 2004.

    Google Scholar 

  9. T. Bures, P. Hnetynka, and M. Malohlava. Using a Product Line for Creating Component Systems. In Proceedings of ACM SAC 2009, Honolulu, Hawaii, U.S.A., Mar 2009, March 2009.

    Google Scholar 

  10. T. Bures, P. Hnetynka, and F. Plasil. SOFA 2.0: Balancing Advanced Features in a Hierarchical Component Model. In SERA ’06: Proc. of the 4th International Conference on Software Engineering Research, Management and Applications, pages 40–48, USA, 2006. IEEE Computer Society.

    Google Scholar 

  11. C. Szyperski. Component Software: Beyond Object-Oriented Programming, 2nd ed. Addison-Wesley Professional, Boston, 2002.

    Google Scholar 

  12. V. Cechticky, P. Chevalley, A. Pasetti, and W. Schaufelberger. A Generative Approach to Framework Instantiation. Proceedings of GPCE, pages 267–286, September 2003.

    Google Scholar 

  13. M. Clarke, G.S. Blair, G. Coulson, and N. Parlavantzas. An Efficient Component Model for the Construction of Adaptive Middleware. Lecture Notes in Computer Science, 2218:160, 2001.

    Article  Google Scholar 

  14. G. Coulson, G. Blair, P. Grace, F. Taiani, A. Joolia, K. Lee, J. Ueyama, and T. Sivaharan. A Generic Component Model for Building Systems Software. ACM Trans. Comput. Syst., 26(1):1–42, 2008.

    Article  Google Scholar 

  15. I. Crnkovic, M. R. V. Chaudron, and S. Larsson. Component-Based Development Process and Component Lifecycle. In ICSEA, page 44, 2006.

    Google Scholar 

  16. K. Czarnecki and U.W. Eisenecker. Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 2000.

    Google Scholar 

  17. D. Dvorak, G. Bollella, T. Canham, V. Carson, V. Champlin, B. Giovannoni, M. Indictor, K. Meyer, A. Murray, and K. Reinholtz. Project Golden Gate: Towards Real-Time Java in Space Missions. In ISORC, pages 15–22, 2004.

    Google Scholar 

  18. J.P. Etienne, J. Cordry, and S. Bouzefrane. Applying the CBSE Paradigm in the Real-Time Specification for Java. In JTRES’06: Proceedings of the 4th International Workshop on Java Technologies for Real-time and Embedded Systems, pages 218–226, USA, 2006. ACM.

    Google Scholar 

  19. D.J. Hatley and I.A. Pirbhai. Strategies for real-time system specification. Dorset House Publishing Co., Inc., New York, NY, USA, 1987.

    Google Scholar 

  20. T. Henzinger and J. Sifakis. The embedded systems design challenge. FM 2006: Formal Methods, pages 1–15, 2006.

    Google Scholar 

  21. J. Hu, S. Gorappa, J.A. Colmenares, and R. Klefstad. Compadres: A Lightweight Component Middleware Framework for Composing Distributed, Real-Time, Embedded Systems with Real-Time Java. In Proc. ACM/IFIP/USENIX 8th Int’l Middleware Conference (Middleware 2007), Vol. 4834:41–59, 2007.

    Google Scholar 

  22. T. Kalibera, J. Hagelberg, F. Pizlo, A. Plsek, B. Titzer, and J. Vitek. Cdx: a family of real-time Java benchmarks. In JTRES’09: Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems, pages 41–50, New York, NY, USA, 2009. ACM.

    Google Scholar 

  23. H. Kopetz. The complexity challenge in embedded system design. In 11th IEEE International Symposium on Object Oriented Real-Time Distributed Computing (ISORC), 2008, pages 3–12. IEEE, 2008.

    Google Scholar 

  24. F. Loiret, M. Malohlava, A. Plsek, P. Merle, and L. Seinturier. Constructing Domain-Specific Component Frameworks through Architecture Refinement. In Euromicro SEAA 2009, 2009.

    Google Scholar 

  25. F. Loiret, R. Rouvoy, L. Seinturier, D. Romero, K. Sénéchal, and A. Plšek. An aspect-oriented framework for weaving domain-specific concerns into component-based systems. To appear in Journal of Universal Computer Science (J.UCS), Special Issue : Software Components, Architectures and Reuse, pages 709–724, December 2010.

    Google Scholar 

  26. F. Loiret, L. Seinturier, L. Duchien, and D. Servat. A Three-Tier Approach for Composition of Real-Time Embedded Software Stacks. In Proc. of CBSE, 2010.

    Google Scholar 

  27. G.A. Moreno. Creating custom containers with generative techniques. In GPCE’06: Proceedings of the 5th international conference on Generative programming and component engineering, pages 29–38, New York, NY, USA, 2006. ACM.

    Google Scholar 

  28. P. Nicolas, S. Lionel, D. Laurence, and C. Thierry. A Component-based and Aspect-Oriented Model for Software Evolution. Int. Journal of Computer Applications in Technology, 31(1/2):94–105, 2008.

    Article  Google Scholar 

  29. K. Nilsen. Quantitative Analysis of Developer Productivity in C vs. Real-Time Java. Defense Advanced Research Projects Agency Workshop on Real-Time Java, 2004.

    Google Scholar 

  30. F. Pizlo, J. M. Fox, D. Holmes, and J. Vitek. Real-time Java scoped memory: Design patterns and semantics. In Proceedings of the 7th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2004), pages 101–110, 2004.

    Google Scholar 

  31. A. Plsek, F. Loiret, P. Merle, and L. Seinturier. A Component Framework for Java-based Real-time Embedded Systems. In Proceedings of ACM/IFIP/USENIX 9 th International Middleware Conference, volume 5346/2008, pages 124–143, Leuven, Belgium, December 2008. IEEE Computer Society.

    Google Scholar 

  32. A. Plsek, P. Merle, and L. Seinturier. A Real-Time Java Component Model. In Proceedings of the 11 th International Symposium on Object/Component/Service-oriented Real-Time Distributed Computing (ISORC’08), pages 281–288, Orlando, Florida, USA, May 2008. IEEE Computer Society.

    Google Scholar 

  33. M. Prochazka, S. Fowell, and L. Planche. DisCo Space-Oriented Middleware: Architecture of a Distributed Runtime Environment for Complex Spacecraft On-Board Applications. In 4th European Congress on Embedded Real-Time Software (ERTS 2008), Toulouse, France, 2008.

    Google Scholar 

  34. R. Rouvoy and P. Merle. Leveraging Component-Based Software Engineering with Fraclet. Annals of Telecommunications, Special Issue on Software Components – The Fractal Initiative, 64(1–2):65, jan–feb 2009.

    Google Scholar 

  35. L. Seinturier, N. Pessemier, L. Duchien, and T. Coupaye. A Component Model Engineered with Components and Aspects. In Proceedings of the 9th International SIGSOFT Symposium on Component-Based Software Engineering (CBSE’06), volume 4063 of Lecture Notes in Computer Science, pages 139–153, Vasteras, Sweden, Jun 2006. Springer.

    Google Scholar 

  36. Sun Microsystems. Enterprise JavaBeans. Available at http://java.sun.com/ejb.

  37. R. van Ommering, F. van der Linden, J. Kramer, and J. Magee. The Koala Component Model for Consumer Electronics Software. Computer, 33(3):78–85, 2000.

    Article  Google Scholar 

  38. A. Welc, A.L. Hosking, and S. Jagannathan. Preemption-based avoidance of priority inversion for Java. In ICPP’04: Proceedings of the 2004 International Conference on Parallel Processing, pages 529–538, Washington, DC, USA, 2004. IEEE Computer Society.

    Google Scholar 

  39. T. Zhao, J. Noble, and J. Vitek. Scoped types for real-time Java. In Proceedings of the 25th IEEE International Real-Time Systems Symposium (RTSS’04), pages 241–251, Washington, DC, USA, 2004. IEEE Computer Society.

    Google Scholar 

Download references

Acknowledgements

The CD xbenchmark was developed by Filip Pizlo and Ben Titzer at Purdue University. We thank Tomas Kalibera and Petr Maj for their help when re-implementing the benchmark. This work was partially supported by the Czech Science Foundation grant 201/09/H057.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Ales Plsek .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer Science+Business Media, LLC

About this chapter

Cite this chapter

Plsek, A., Loiret, F., Malohlava, M. (2012). Component-Oriented Development for Real-Time Java. In: Higuera-Toledano, M., Wellings, A. (eds) Distributed, Embedded and Real-time Java Systems. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-8158-5_11

Download citation

  • DOI: https://doi.org/10.1007/978-1-4419-8158-5_11

  • Published:

  • Publisher Name: Springer, Boston, MA

  • Print ISBN: 978-1-4419-8157-8

  • Online ISBN: 978-1-4419-8158-5

  • eBook Packages: EngineeringEngineering (R0)

Publish with us

Policies and ethics