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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The Hulotte framework is available at http://adam.lille.inria.fr/soleil/.
- 2.
Available under open-source license at http://www.ovmj.net/cdx/.
- 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.
Eclipse Modeling Framework [86] is one of the most widely accepted metamodeling technology.
- 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.
The Linux Rt-Preempt patch is available at www.kernel.org/pub/linux/kernel/projects/rt/.
References
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.
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.
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.
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.
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.
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.
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.
F. Budinsky, D. Steinberg, R. Ellersick, E. Merks, S.A. Brodsky, and T.J. Grose. Eclipse Modeling Framework. Addison-Wesley, 2004.
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.
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.
C. Szyperski. Component Software: Beyond Object-Oriented Programming, 2nd ed. Addison-Wesley Professional, Boston, 2002.
V. Cechticky, P. Chevalley, A. Pasetti, and W. Schaufelberger. A Generative Approach to Framework Instantiation. Proceedings of GPCE, pages 267–286, September 2003.
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.
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.
I. Crnkovic, M. R. V. Chaudron, and S. Larsson. Component-Based Development Process and Component Lifecycle. In ICSEA, page 44, 2006.
K. Czarnecki and U.W. Eisenecker. Generative Programming: Methods, Tools, and Applications. ACM Press/Addison-Wesley Publishing Co., New York, NY, USA, 2000.
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.
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.
D.J. Hatley and I.A. Pirbhai. Strategies for real-time system specification. Dorset House Publishing Co., Inc., New York, NY, USA, 1987.
T. Henzinger and J. Sifakis. The embedded systems design challenge. FM 2006: Formal Methods, pages 1–15, 2006.
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.
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.
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.
F. Loiret, M. Malohlava, A. Plsek, P. Merle, and L. Seinturier. Constructing Domain-Specific Component Frameworks through Architecture Refinement. In Euromicro SEAA 2009, 2009.
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.
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.
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.
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.
K. Nilsen. Quantitative Analysis of Developer Productivity in C vs. Real-Time Java. Defense Advanced Research Projects Agency Workshop on Real-Time Java, 2004.
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.
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.
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.
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.
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.
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.
Sun Microsystems. Enterprise JavaBeans. Available at http://java.sun.com/ejb.
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.
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.
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.
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)