Compadres: A Lightweight Component Middleware Framework for Composing Distributed Real-Time Embedded Systems with Real-Time Java

  • Jie Hu
  • Shruti Gorappa
  • Juan A. Colmenares
  • Raymond Klefstad
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4834)


Component frameworks simplify development of enterprise systems and enable code reuse, but most frameworks are unpredictable and hence unsuitable for embedded or real-time systems. Similarly, Java is increasingly being used to build embedded system software because of its portability and ease of use. The Real-Time Specification for Java (RTSJ) reduces the unpredictability in Java execution times by eliminating the need for a garbage collector. However, it introduces programming complexity that makes it difficult to build non-trivial applications. To bring the advantages of Java component development to DRE systems, while simultaneously simplifying the use of RTSJ, therefore, we have developed a new lightweight component model for RTSJ called Compadres. Compadres offers the following advantages: 1) Simple component definition in Java that abstracts away RTSJ memory management complexity; 2) System assembly from components by connecting ports that communicate through strongly-typed objects; 3) The Compadres compiler that automatically generates the scoped memory architecture for components, while the component framework handles communication between the components. To validate this work, we construct a non-trivial example application using the component framework, a simple real-time CORBA implementation. We then analyze the performance and efficiency of our component example versus a non-component example, RTZen. Our measurements show that our Compadres example built with components incurs only minor time overhead as compared to a comparable hand-coded example.


Real-time Java RTSJ component framework middleware 


  1. 1.
    The Real-Time Specification for Java,
  2. 2.
    Bacon, D.F., Cheng, P., Rajan, V.T.: A real-time garbage collector with low overhead and consistent utilization. In: David, F. (ed.) POPL 2003: Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pp. 285–298. ACM Press, New York (2003)Google Scholar
  3. 3.
    Sun Microsystems. Sun java real-time system 2.0Google Scholar
  4. 4.
    Pizlo, F., Vitek, J.: An emprical evaluation of memory management alternatives for real-time java. In: RTSS 2006. 27th IEEE International Real-Time Systems Symposium, pp. 35–46. IEEE Computer Society Press, Los Alamitos (2006)CrossRefGoogle Scholar
  5. 5.
    Raman, K., Zhang, Y., Panahi, M., Colmenares, J.A., Klefstad, R., Harmon, T.: RTZen: highly predictable, Real-Time Java middleware for distributed and embedded systems. In: Proc. of the 6th Int’l Middleware Conference (December 2005)Google Scholar
  6. 6.
    Deters, M., Cytron, R.K.: Automated discovery of scoped memory regions for real-time java. In: ISMM 2002. Proceedings of the 3rd international symposium on Memory management, pp. 25–35. ACM Press, New York (2002)Google Scholar
  7. 7.
    Pizlo, F., Fox, J.M., Holmes, D., Vitek, J.: Real-time java scoped memory: Design patterns and semantics. In: ISORC 2004. Seventh IEEE International Symposium on Object-Oriented Real-Time Distributed Computing, pp. 101–110. IEEE Computer Society Press, Los Alamitos (2004)CrossRefGoogle Scholar
  8. 8.
    Kwon, J., Wellings, A., King, S.: Ravenscar-java: a high-integrity profile for real-time java: Research articles. Concurr. Comput.: Pract. Exper. 17(5-6), 681–713 (2005)CrossRefGoogle Scholar
  9. 9.
    Sun Microsystems. The Real-Time Java platform (June 2004)Google Scholar
  10. 10.
    Dibble, P.C.: Real-Time Java Platform Programming. Sun Microsystems Press (2002)Google Scholar
  11. 11.
    Stewart, D.B., Volpe, R.A., Khosla, P.K.: Design of dynamically reconfigurable real-time software using port-based objects. IEEE Transactions on Software Engineering 23(12) (December 1997)Google Scholar
  12. 12.
    (Kane) Kim, K.H.: Apis for real-time distributed object programming. IEEE Computer 33(6), 72–80 (2000)CrossRefGoogle Scholar
  13. 13.
    Wang, S., Rho, S., Mai, Z., Bettati, R., Zhao, W.: Real-time component-based systems. In: Proc. 11th IEEE Real Time and Embedded Technology and Applications Symposium, pp. 428–437 (March 2005)Google Scholar
  14. 14.
    de Niz, D., Bhatia, G., Rajkumar, R.: Model-based development of embedded systems: The sysweaver approach. In: RTAS 2006. Proceedings of the 12th IEEE Real-Time and Embedded Technology and Applications Symposium, Washington, DC, USA, pp. 231–242. IEEE Computer Society, Los Alamitos (2006)Google Scholar
  15. 15.
    Colmenares, J.A., Gorappa, S., Panahi, M., Klefstad, R.: A Component Framework for Real-time Java. In: RTAS 2006. 12th IEEE Real-Time and Embedded Technology and Applications Symposium Work-in-Progress, IEEE Computer Society Press, Los Alamitos (2006)Google Scholar
  16. 16.
    Etienne, J.-P., Cordry, J., Bouzefrane, S.: Applying the CBSE paradigm in the real time specification for Java. In: JTRES 2006: Proceedings of the 4th international workshop on Java technologies for real-time and embedded systems, pp. 218–226. ACM Press, New York (2006)Google Scholar
  17. 17.
    Andreae, C., Coady, Y., Gibbs, C., Noble, J., Vitek, J., Zhao, T.: In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol. 4067, Springer, Heidelberg (2006)Google Scholar
  18. 18.
    Spring, J.H., Pizlo, F., Guerraoui, R., Vitek, J.: Reflexes: abstractions for highly responsive systems. In: VEE 2007: Proceedings of the 3rd international conference on Virtual execution environments, pp. 191–201. ACM Press, New York (2007)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2007

Authors and Affiliations

  • Jie Hu
    • 1
  • Shruti Gorappa
    • 1
  • Juan A. Colmenares
    • 1
  • Raymond Klefstad
    • 1
  1. 1.Department of Electrical Engineering and Computer Science, University of California, Irvine, CA 92697USA

Personalised recommendations