Abstract
Distributed real-time and embedded (DRE) applications possess stringent quality of service (QoS) requirements, such as predictability, latency, and throughput constraints. Real-Time CORBA, an open middleware standard, allows DRE applications to allocate, schedule, and control resources to ensure predictable end-to-end QoS. The Real-Time Specification for Java (RTSJ) has been developed to provide extensions to Java so that it can be used for real-time systems, in order to bring Java’s advantages, such as portability and ease of use, to real-time applications.
In this paper, we describe RTZen, an implementation of a Real-Time CORBA Object Request Broker (ORB), designed to comply with the restrictions imposed by RTSJ. RTZen is designed to eliminate the unpredictability caused by garbage collection and improper support for thread scheduling through the use of appropriate data structures, threading models, and memory scopes. RTZen’s architecture is also designed to hide the complexities of RTSJ related to distributed programming from the application developer. Empirical results show that RTZen is highly predictable and has acceptable performance. RTZen therefore demonstrates that Real-Time CORBA middleware implemented in real-time Java can meet stringent QoS requirements of DRE applications, while supporting safer, easier, cheaper, and faster development in real-time Java.
This material is based upon work supported by the National Science Foundation under Grant No. 0410218, Boeing DARPA contract Z20402, and AFOSR grant F49620-00-1-0330.
Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.
Chapter PDF
References
Schmidt, D.C.: R&D Advances in Middleware for Distributed, Real-time, and Embedded Systems. Communications of the ACM. Special Issue on Middleware 45, 43–48 (2002)
Object Management Group: Real-time CORBA Specification. OMG Document formal/02-08-02 edn. (2002)
Schmidt, D.C., Vinoski, S.: The History of the OMG C++ Mapping. C/C++ Users Journal (2000)
Schmidt, D.C., Vinoski, S.: Standard C++ and the OMG C++ Mapping. C/C++ Users Journal (2001)
ZeroC, I.: The Internet Communications EngineTM (2003), www.zeroc.com/ice.html
Brose, G., Spiegel, A., Tiedemann, R., et al.: Jacorb (2004), http://www.jacorb.org/
Bollella, Gosling, Brosgol, Dibble, Furr, Hardin, Turnbull: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)
Schmidt, D.C., Stal, M., Rohnert, H., Buschmann, F.: Pattern-Oriented Software Architecture: Patterns for Concurrent and Networked Objects, vol. 2. Wiley & Sons, New York (2000)
Benowitz, E.G., Niessner, A.F.: A patterns catalog for RTSJ software designs. In: Meersman, R., Tari, Z. (eds.) OTM-WS 2003. LNCS, vol. 2889, pp. 497–507. Springer, Heidelberg (2003)
Pizlo, F., Fox, J.M., Holmes, D., Vitek, J.: Real-time java scoped memory: Design patterns and semantics. In: 7th IEEE Int’l Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2004), pp. 101–110 (2004)
Corsaro, A., Santoro, C.: Design patterns for RTSJ application development. In: Meersman, R., Tari, Z., Corsaro, A. (eds.) OTM-WS 2004. LNCS, vol. 3292, pp. 394–405. Springer, Heidelberg (2004)
Klefstad, R., Rao, S., Schmidt, D.C.: Design and Performance of a Dynamically Configurable, Messaging Protocols Framework for Real-time CORBA. In: Proceedings of the 36th Annual Hawaii Int’l Conference on System Sciences (2003)
Corsaro, A., Schmidt, D.C.: The Design and Performance of the jRate Real-Time Java Implementation. In: Meersman, R., Tari, Z. (eds.) CoopIS 2002, DOA 2002, and ODBASE 2002. LNCS, vol. 2519, pp. 900–921. Springer, Heidelberg (2002)
Dibble, P.C.: Real-Time Java Platform Programming. Prentice-Hall, Englewood Cliffs (2002)
Klefstad, R., Schmidt, D.C., O’Ryan, C.: Towards highly configurable real-time object request brokers. In: Proceedings of the 5th IEEE Int’l Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2002), pp. 437–447 (2002)
Object Management Group: Real-Time CORBA (Dynamic Scheduling). 2.0 edn. (2003)
Klefstad, R., Krishna, A.S., Schmidt, D.C.: Design and Performance of a Modular Portable Object Adapter for Distributed, Real-Time, and Embedded CORBA Applications. In: Proceedings of the 4th Int’l Symposium on Distributed Objects and Applications (2002)
Krishna, A., Klefstad, R., Schmidt, D.C., Corsaro, A.: Towards predictable real-time Java object request brokers. In: Proceedings of the 9th IEEE Real-Time and Embedded Technology and Applications Symposium (RTTAS 2003), pp. 49–56 (2003)
Krishna, A., Schmidt, D.C., Klefstad, R.: Enhancing real-time CORBA via real-time java features. In: Proceedings of the 24th Int’l Conference on Distributed Computing Systems (ICDCS 2004), pp. 66–73 (2004)
Schmidt, D.C., Levine, D.L., Mungee, S.: The design of the TAO real-time object request broker. Computer Communications 21, 294–324 (1998)
Gokhale, A., Schmidt, D.C.: Techniques for optimizing CORBA middleware for distributed embedded systems. In: Proceedings of the 18th Annual Joint Conference of the IEEE Computer and Communications Societies (INFOCOM 1999), vol. 2, pp. 513–521 (1999)
Pyarali, I., Spivak, M., Cytron, R., Schmidt, D.C.: Evaluating and optimizing thread pool strategies for real-time CORBA. In: Proceedings of the ACM SIGPLAN Workshop on Languages, Compilers and Tools for Embedded Systems (LCTES 2001), pp. 214–222 (2001)
Pyarali, I., Schmidt, D.C., Cytron, R.: Techniques for Enhancing Real-time CORBA Quality of Service. Proceedings of the IEEE 91, 1070–1085 (2003)
O’Ryan, C., Kuhns, F., Schmidt, D.C., Othman, O., Parsons, J.: The design and performance of a pluggable protocols framework for real-time distributed object computing middleware. In: Coulson, G., Sventek, J. (eds.) Middleware 2000. LNCS, vol. 1795, pp. 372–395. Springer, Heidelberg (2000)
Gorappa, S., Colmenares, J.A., Jafarpour, H., Klefstad, R.: Tool-based configuration of real-time corba middleware for embedded systems. In: Proceedings of the 8th IEEE Int’l Symposium on Object-Oriented Real-Time Distributed Computing, ISORC 2005 (2005)
Corp, T.: TimeSys Linux GPL 4.1 (2004), http://www.timesys.com
Sun Microsystems, I.: Tuning garbage collection with the 1.4.2 java[tm] virtual machine (2003)
Object Management Group: Catalog of OMG Specifications (2005), http://www.omg.org/technology/documents/spec_catalog.htm
Gokhale, A., Schmidt, D.C.: Principles for Optimizing CORBA Internet Inter-ORB Protocol Performance. In: Proceedings of the 31st Annual Hawaii Int’l Conference on System Sciences, vol. 7, pp. 376–385 (1998)
Arulanthu, A.B., O’Ryan, C., Schmidt, D.C., Kircher, M., Parsons, J.: The Design and Performance of a Scable ORB Architecture for CORBA Asynchronous Messaging. In: Proceedings of the IFIP/ACM Int’l Conference on Distributed Systems Platforms (Middleware 2000), pp. 208–230 (2000)
Mishra, S., Shi, N.: Improving the Performance of Distributed CORBA Applications. In: Proceedings of the Int’l Parallel and Distributed Processing Symposium (IPDPS 2002), pp. 36–41 (2002)
Porisini, A.C., Pradella, M., Rossi, M., Mandrioli, D.: A formal approach for designing CORBA-based applications. ACM Transaction on Software Engineering and Methodology 12, 107–151 (2003)
Majumdar, S., Shen, E.K., Abdul-Fatah, I.: Performance of adaptive CORBA middleware. Journal of Parallel and Distributed Computing 64, 201–218 (2004)
Borland Software Corporation: Borland Enterprise Server, VisiBroker Edition (2005), http://www.borland.com/visibroker/
IONA Technologies: Orbix 6.2 (2005), http://www.iona.com/products/orbix/
McConnell, S., Pedersen, J., Evans, J.S., Kühne, L., Rumpf, M., Boyce, S., Wood, C.: Openorb community project (2004), http://sourceforge.net/projects/openorb/
Puder, A.: Mico: An open source corba implementation. IEEE Software 21 (2004), http://www.mico.org/
Gokhale, A., Schmidt, D.C.: Evaluating CORBA latency and scalability over high-speed ATM networks. In: Proceedings of the 17th Int’l Conference on Distributed Computing Systems (ICDCS 1997), pp. 401–410 (1997)
O’Ryan, C., Schmidt, D.C., Kuhns, F., Spivak, M., Parsons, J., Pyarali, I., Levine, D.L.: Evaluating policies and mechanisms for supporting embedded, real-time applications with CORBA 3.0. In: Proceedings of the 6th IEEE Real-Time Technology and Applications Symposium (RTAS 2000), pp. 188–197 (2000)
Gill, C.D., Levine, D.L., Schmidt, D.C.: The Design and Performance of a Real-Time CORBA Scheduling Service. Real-Time Systems 20 (2001)
Dipippo, L.C., Wolfe, V.F., Esibov, L., Cooper, G., Bethmangalkar, R., Johnston, R., Thuraisingham, B., Mauer, J.: Scheduling and priority mapping for static real-time middleware. Real-Time Systems 20, 155–182 (2001)
Hao, T., Zhigang, L., Jinde, L.: An end-to-end scheduling approach for real-time CORBA. In: Proceedings of the 2002 IEEE Region 10 Conference on Computers, Communications, Control and Power Engineering (TENCON 2002), vol. 1, pp. 318–322 (2002)
Zinky, J.A., Bakken, D.E., Schantz, R.: Architectural Support for Quality of Service for CORBA Objects. Theory and Practice of Object Systems 3, 1–20 (1997)
Lankes, S., Pfeiffer, M., Bemmerl, T.: Design and Implementation of a SCI-based Real-Time CORBA. In: Proceedings of the 4th IEEE Int’l Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2001), pp. 23–30 (2001)
Lankes, S., Jabs, A., Reke, M.: A time-triggered ethernet protocol for real-time corba. In: Proceedings of the 5th IEEE Int’l Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2002), pp. 215–222 (2002)
Lankes, S., Jabs, A., Bemmerl, T.: Design and performance of a CAN-based connection-oriented protocol for Real-Time CORBA. Journal of Systems and Software 77, 37–45 (2005)
Harrison, T.H., Levine, D.L., Schmidt, D.C.: The design and performance of a real-time CORBA event service. In: Proceedings of the 12th ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications (OOPSLA 1997), pp. 184–200 (1997)
Hong, S., Kim, Y., Kweon, M., Min, D., Han, S.: Object-oriented real-time CORBA naming service on distributed environment. In: Proceedings of the 12th Int’l Conference on Information Networking (ICOIN-12), pp. 637–640 (1998)
Gokhale, A., Schmidt, D.C.: Optimizing a CORBA IIOP Protocol Engine for Minimal Footprint Multimedia Systems. Journal on Selected Areas in Communications - Special issue on Service Enabling Platforms for Networked Multimedia Systems 17 (1999)
Kim, K., Geon, G., Hong, S., Kim, S., Kim, T.: Resource-conscious customization of CORBA for CAN-based distributed embedded systems. In: Proceedings of the 3rd IEEE Int’l Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2000), pp. 34–41 (2000)
Rossi, M., Mandrioli, D.: A formal approach for modeling and verification of rtcorba-based applications. In: Proceedings of the 2004 ACM SIGSOFT Int’l Symposium on Software Testing and Analysis (ISSTA 2004), pp. 263–273 (2004)
Object Management Group: Real-Time CORBA (Static Scheduling). 1.2 edn. (2005)
Schmidt, D.C.: TAO. Real-time CORBA with TAO, The ACE ORB (2004), http://www.cs.wustl.edu/~schmidt/TAO.html
Object Management Group: Common Object Request Broker Architecture: Core Specification. 3.0.3 edn. (2004)
Schmidt, D.C.: CIAO. Real-time CCM with CIAO (Component Integrated ACE ORB) (2004), http://www.cs.wustl.edu/~schmidt/CIAO.html
RWTH Aachen: ROFES (2005), http://www.rofes.de
PrismTech Corporation: OpenFusion e*ORB C Edition for Real-time (2005), http://www.prismtechnologies.com
Objective Interface Systems, Inc.: ORBexpress RT (2005), http://www.ois.com
Borland Software Corporation: VisiBroker-RT. (2005), http://www.borland.com/visibroker/
Sun Microsystems Inc.: Java Remote Method Invocation, Java RMI (2004), http://java.sun.com/products/jdk/rmi/
Borg, A., Wellings, A.: A real-time RMI framework for the RTSJ. In: Proceedings of the 15th Euromicro Conference on Real Time Systems (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2005 IFIP International Federation for Information Processing
About this paper
Cite this paper
Raman, K., Zhang, Y., Panahi, M., Colmenares, J.A., Klefstad, R., Harmon, T. (2005). RTZen: Highly Predictable, Real-Time Java Middleware for Distributed and Embedded Systems . In: Alonso, G. (eds) Middleware 2005. Middleware 2005. Lecture Notes in Computer Science, vol 3790. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11587552_12
Download citation
DOI: https://doi.org/10.1007/11587552_12
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-30323-7
Online ISBN: 978-3-540-32269-6
eBook Packages: Computer ScienceComputer Science (R0)