Techniques and patterns for safe and efficient real-time middleware

Over 90 percent of all microprocessors are now used for real-time and embedded applications. The behavior of these applications is often constrained by the physical world. It is therefore important to devise higher-level languages and middleware that meet conventional functional requirements, as well as dependably and productively enforce real-time constraints. Real-Time Java is emerging as a safe, real-time environment. In this thesis we use it as our experimentation platform; however, our findings are easily adapted to other similar platforms. This thesis provides the following contributions to the study of safe and efficient real-time middleware. First, it identifies potential bottlenecks and problem with respect to guaranteeing real-time performance in middleware. Second, it presents a series of techniques and patterns that allow the design and implementation of safe, predictable, and highly efficient real-time middleware. Third, it provides a set of architectural and design patterns that application developers can use when designing real-time systems. Finally, it provides a methodology for evaluating the merits and benefits of real-time middleware. Empirical results are presented using that methodology for the techniques presented in this thesis. The methodology helps compare the performance and predictability of general, real-time middleware platforms.

[1]  Norman H. Cohen Type-extension type test can be performed in constant time , 1991, TOPL.

[2]  Michael Kircher,et al.  Distributed eXtreme Programming , 2001 .

[3]  M. Teresa Higuera-Toledano,et al.  Dynamic detection of access errors and illegal references in RTSJ , 2002, Proceedings. Eighth IEEE Real-Time and Embedded Technology and Applications Symposium.

[4]  Donald F. Towsley,et al.  The effectiveness of affinity-based scheduling in multiprocessor networking , 1996, Proceedings of IEEE INFOCOM '96. Conference on Computer Communications.

[5]  D. C. Sharp,et al.  Reducing avionics software cost through component based product line development , 1998, 17th DASC. AIAA/IEEE/SAE. Digital Avionics Systems Conference. Proceedings (Cat. No.98CH36267).

[6]  Salvatore Cavalieri,et al.  Scheduling Periodic Information Flow in FieldBus and Multi-FieldBus Environments , 2002 .

[7]  Salvatore Cavalieri,et al.  Multicycle Polling Scheduling Algorithms for FieldBus Networks , 2004, Real-Time Systems.

[8]  Corrado Santoro,et al.  A C++ Native Interface for Interpreted JVMs , 2003, OTM Workshops.

[9]  J.F. Ruiz,et al.  QoS-aware component frameworks , 2002, IEEE 2002 Tenth IEEE International Workshop on Quality of Service (Cat. No.02EX564).

[10]  Ali Behforooz,et al.  Software engineering fundamentals , 1996 .

[11]  Martin C. Rinard,et al.  An Implementation of Scoped Memory for Real-Time Java , 2001, EMSOFT.

[12]  Douglas C. Schmidt,et al.  The design and performance of a real-time CORBA event service , 1997, OOPSLA '97.

[13]  Ron Cytron,et al.  Efficient memory-reference checks for real-time java , 2003, LCTES '03.

[14]  Ken Arnold,et al.  The Java Programming Language , 1996 .

[15]  Krishna M. Kavi,et al.  Storage Allocation for Real-Time, Embedded Systems , 2001, EMSOFT.

[16]  Geoffrey Phipps Comparing Observed Bug and Productivity Rates for Java and C++ , 1999, Softw. Pract. Exp..

[17]  Andrei Alexandrescu,et al.  Modern C++ design: generic programming and design patterns applied , 2001 .

[18]  Douglas C. Schmidt,et al.  Towards predictable real-time Java object request brokers , 2003, The 9th IEEE Real-Time and Embedded Technology and Applications Symposium, 2003. Proceedings..

[19]  Douglas C. Schmidt,et al.  The Design and Performance of the jRate Real-Time Java Implementation , 2002, OTM.

[20]  Douglas C. Schmidt,et al.  Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects , 2013 .

[21]  Ron Cytron,et al.  Implementing and optimizing real-time Java , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[22]  James Gosling,et al.  The Real-Time Specification for Java , 2000, Computer.

[23]  Raj Jain,et al.  The art of computer systems performance analysis - techniques for experimental design, measurement, simulation, and modeling , 1991, Wiley professional computing.

[24]  Richard F. Rashid,et al.  Mach and Matchmaker: kernel and language support for object-oriented distributed systems , 1986, OOPSLA 1986.

[25]  Rajesh Gupta,et al.  Aspects + GAMMA = AspectGAMMA A Formal Framework for Aspect-Oriented Specification , 2002 .

[26]  John Regehr,et al.  Inferring Scheduling Behavior with Hourglass , 2002, USENIX Annual Technical Conference, FREENIX Track.

[27]  Jan Vitek,et al.  Java Subtype Tests in Real-Time , 2003, ECOOP.

[28]  Douglas C. Schmidt,et al.  The Design and Performance of Real-Time Java Middleware , 2003, IEEE Trans. Parallel Distributed Syst..

[29]  Advisor,et al.  Juno: a Framework for Reconciling Scheduling Disciplines Juno: a Framework for Reconciling Scheduling Disciplines Contents , 2001 .

[30]  Corrado Santoro,et al.  Design Patterns for RTSJ Application Development , 2004, OTM Workshops.

[31]  Gabor Karsai,et al.  Model-Integrated Computing , 1997, Computer.

[32]  Geoffrey Phipps Comparing observed bug and productivity rates for Java and C++ , 1999 .

[33]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[34]  Douglas C. Schmidt,et al.  Formalizing meta-programming techniques to reconcile heterogeneous scheduling disciplines in open distributed real-time systems , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[35]  Edward Pla Weapon System Software Technology Support (WSSTS). Delivery Order 0008: Real-Time Java for Embedded Systems (RTJES) , 2004 .

[36]  Douglas C. Schmidt,et al.  Evaluating real-time Java features and performance for real-time embedded systems , 2002, Proceedings. Eighth IEEE Real-Time and Embedded Technology and Applications Symposium.

[37]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[38]  Douglas C. Schmidt Policies and patterns for high-performance, real-time object request brokers , 2001, Proceedings 3rd International Symposium on Distributed Objects and Applications.

[39]  Karim R. Lakhani,et al.  Perspectives on Free and Open Source Software , 2005 .