RTZen: Highly Predictable, Real-Time Java Middleware for Distributed and Embedded Systems

  • Krishna Raman
  • Yue Zhang
  • Mark Panahi
  • Juan A. Colmenares
  • Raymond Klefstad
  • Trevor Harmon
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3790)


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.


RTSJ Real-Time CORBA Design Patterns Middleware DRE 


  1. 1.
    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)Google Scholar
  2. 2.
    Object Management Group: Real-time CORBA Specification. OMG Document formal/02-08-02 edn. (2002)Google Scholar
  3. 3.
    Schmidt, D.C., Vinoski, S.: The History of the OMG C++ Mapping. C/C++ Users Journal (2000)Google Scholar
  4. 4.
    Schmidt, D.C., Vinoski, S.: Standard C++ and the OMG C++ Mapping. C/C++ Users Journal (2001)Google Scholar
  5. 5.
    ZeroC, I.: The Internet Communications EngineTM (2003), www.zeroc.com/ice.html
  6. 6.
    Brose, G., Spiegel, A., Tiedemann, R., et al.: Jacorb (2004), http://www.jacorb.org/
  7. 7.
    Bollella, Gosling, Brosgol, Dibble, Furr, Hardin, Turnbull: The Real-Time Specification for Java. Addison-Wesley, Reading (2000)Google Scholar
  8. 8.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, Reading (1995)MATHGoogle Scholar
  9. 9.
    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)MATHGoogle Scholar
  10. 10.
    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)CrossRefGoogle Scholar
  11. 11.
    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)Google Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    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)Google Scholar
  14. 14.
    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)CrossRefGoogle Scholar
  15. 15.
    Dibble, P.C.: Real-Time Java Platform Programming. Prentice-Hall, Englewood Cliffs (2002)Google Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    Object Management Group: Real-Time CORBA (Dynamic Scheduling). 2.0 edn. (2003)Google Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    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)Google Scholar
  20. 20.
    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)Google Scholar
  21. 21.
    Schmidt, D.C., Levine, D.L., Mungee, S.: The design of the TAO real-time object request broker. Computer Communications 21, 294–324 (1998)CrossRefGoogle Scholar
  22. 22.
    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)Google Scholar
  23. 23.
    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)Google Scholar
  24. 24.
    Pyarali, I., Schmidt, D.C., Cytron, R.: Techniques for Enhancing Real-time CORBA Quality of Service. Proceedings of the IEEE 91, 1070–1085 (2003)CrossRefGoogle Scholar
  25. 25.
    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)CrossRefGoogle Scholar
  26. 26.
    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)Google Scholar
  27. 27.
    Corp, T.: TimeSys Linux GPL 4.1 (2004), http://www.timesys.com
  28. 28.
    Sun Microsystems, I.: Tuning garbage collection with the 1.4.2 java[tm] virtual machine (2003)Google Scholar
  29. 29.
    Object Management Group: Catalog of OMG Specifications (2005), http://www.omg.org/technology/documents/spec_catalog.htm
  30. 30.
    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)Google Scholar
  31. 31.
    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)Google Scholar
  32. 32.
    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)Google Scholar
  33. 33.
    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)CrossRefGoogle Scholar
  34. 34.
    Majumdar, S., Shen, E.K., Abdul-Fatah, I.: Performance of adaptive CORBA middleware. Journal of Parallel and Distributed Computing 64, 201–218 (2004)CrossRefGoogle Scholar
  35. 35.
    Borland Software Corporation: Borland Enterprise Server, VisiBroker Edition (2005), http://www.borland.com/visibroker/
  36. 36.
    IONA Technologies: Orbix 6.2 (2005), http://www.iona.com/products/orbix/
  37. 37.
    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/
  38. 38.
    Puder, A.: Mico: An open source corba implementation. IEEE Software 21 (2004), http://www.mico.org/
  39. 39.
    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)Google Scholar
  40. 40.
    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)Google Scholar
  41. 41.
    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)Google Scholar
  42. 42.
    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)CrossRefMATHGoogle Scholar
  43. 43.
    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)Google Scholar
  44. 44.
    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)CrossRefGoogle Scholar
  45. 45.
    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)Google Scholar
  46. 46.
    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)Google Scholar
  47. 47.
    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)CrossRefGoogle Scholar
  48. 48.
    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)Google Scholar
  49. 49.
    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)Google Scholar
  50. 50.
    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)Google Scholar
  51. 51.
    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)Google Scholar
  52. 52.
    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)Google Scholar
  53. 53.
    Object Management Group: Real-Time CORBA (Static Scheduling). 1.2 edn. (2005)Google Scholar
  54. 54.
    Schmidt, D.C.: TAO. Real-time CORBA with TAO, The ACE ORB (2004), http://www.cs.wustl.edu/~schmidt/TAO.html
  55. 55.
    Object Management Group: Common Object Request Broker Architecture: Core Specification. 3.0.3 edn. (2004)Google Scholar
  56. 56.
    Schmidt, D.C.: CIAO. Real-time CCM with CIAO (Component Integrated ACE ORB) (2004), http://www.cs.wustl.edu/~schmidt/CIAO.html
  57. 57.
    RWTH Aachen: ROFES (2005), http://www.rofes.de
  58. 58.
    PrismTech Corporation: OpenFusion e*ORB C Edition for Real-time (2005), http://www.prismtechnologies.com
  59. 59.
    Objective Interface Systems, Inc.: ORBexpress RT (2005), http://www.ois.com
  60. 60.
    Borland Software Corporation: VisiBroker-RT. (2005), http://www.borland.com/visibroker/
  61. 61.
    Sun Microsystems Inc.: Java Remote Method Invocation, Java RMI (2004), http://java.sun.com/products/jdk/rmi/
  62. 62.
    Borg, A., Wellings, A.: A real-time RMI framework for the RTSJ. In: Proceedings of the 15th Euromicro Conference on Real Time Systems (2003)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2005

Authors and Affiliations

  • Krishna Raman
    • 1
  • Yue Zhang
    • 1
  • Mark Panahi
    • 1
  • Juan A. Colmenares
    • 1
  • Raymond Klefstad
    • 1
  • Trevor Harmon
    • 1
  1. 1.Department of Electrical Engineering and Computer ScienceUniversity of CaliforniaIrvineUSA

Personalised recommendations