Abstract
Application developers utilizing event-based middleware have sought to leverage domain-specific modeling for the advantages of intuitive specification, code synthesis, and support for design evolution. For legacy and cyber-physical systems, the use of event-based middleware may mean that changes in computational platform can result anomalous system behavior, due to the presence of implicit temporal dependencies. These anomalies are a function not of the component implementation, but of the model of computation employed for supporting system composition. In order to address these behavioral anomalies, the paper presents an approach where time-based blocks are inserted into the system to account for the temporal dependencies. An advantage of capturing the system composition in a domain-specific modeling language is the ability to efficiently refactor an application to include time-triggered, event-based schedulers. This paper describes how an existing event-based component topology can be modified to permit a time-triggered model of computation, with no changes to the existing component software. Further, the time-triggered components can be deployed alongside standard publish/subscribe methodologies. This strategy is beneficial to the maintenance of existing legacy systems upon upgrade, since the current operational mode could be maintained with minimal changes to the legacy software even under changes to the target platform which alter execution speed. These time-triggered layers are discussed in three permutations: fully triggered, start triggered, and release triggered. A discussion is provided regarding the limitations of each approach, and a brief example is given. The example shows how to apply these triggering approaches without the modification of existing components, but instead through the insertion of triggered buffers between legacy components.
Similar content being viewed by others
References
(2007) Data Distribution Service for Real-Time Systems, Version 1.2. Object Modeling Group
Auerbach J, Bacon DF, Iercan DT, Kirsch CM, Rajan VT, Roeck H, Trummer R (2007) Java takes flight: time-portable real-time programming with exotasks. SIGPLAN Not 42(7): 51–62. doi:10.1145/1273444.1254775
Balasubramanian D, Narayanan A, van Buskirk C, Karsai G (2006) The graph rewriting and transformation language: GReAT. In: Zündorf A, Varró D (eds) Electronic Communications of the EASST, Vol 1. 8 p. ISSN 1863-2122
Box D (1997) Essential COM. Addison-Wesley, Reading
Colin A, Puaut I (2000) Worst case execution time analysis for a processor with branch prediction. Real-Time Systems 18(2–3): 249–274. doi:10.1023/A:1008149332687
Farcas E, Farcas C, Pree W, Templ J (2005) Transparent distribution of real-time components based on logical execution time. In: LCTES ’05: Proceedings of the 2005 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems, ACM, New York, NY, USA, pp. 31–39. doi:10.1145/1065910.1065915
Goderis A, Brooks C, Altintas I, Lee EA, Goble C (2007) Heterogeneous composition of models of computation. Tech. Rep. UCB/EECS-2007-139, EECS Department, University of California, Berkeley. http://www.eecs.berkeley.edu/Pubs/TechRpts/2007/EECS-2007-139.html
Henning M, Spruiell M (2009) Distributed Programming with Ice, 3rd edn
Henzinger T, Horowitz B, Kirsch C (2003) Giotto: a time-triggered language for embedded programming. Proceedings of the IEEE 91(1): 84–99. doi:10.1109/JPROC.2002.805825
Henzinger TA, Kirsch CM, Matic S (2005) Composable code generation for distributed Giotto. SIGPLAN Not 40(7): 21–30. doi:10.1145/1070891.1065914
Kahn G (1974) The semantics of a simple language for parallel programming. In: Proceedings of the IFIP Congress, North-Holland Publishing Co, pp 471–475
Kahn G, MacQueen DB (1977) Coroutines and networks of parallel processes. Information Processing, North-Holland Publishing Co, pp 993–998
Kopetz H, Bauer G (2003) The time-triggered architecture. Proc IEEE 91(1): 112–126. doi:10.1109/JPROC.2002.805821
Kopetz H, Grunsteidl G (1993) TTP—a time-triggered protocol for fault-tolerant real-time systems. In: Proceedings of the twenty-third international symposium on fault-tolerant computing, pp 524–533. doi:10.1109/FTCS.1993.627355
Ledeczi A, Bakay A, Maroti M, Vőlgyesi P, Nordstrom G, Sprinkle J, Karsai G (2001) Composing domain-specific design environments. IEEE Computer 34(11): 44–51. doi:10.1109/2.963443
Lee E, Parks T (1995) Dataflow process networks. Proc IEEE 83(5): 773–801. doi:10.1109/5.381846
Lewis B, Berg DJ (1997) Multithreaded programming with PThreads. Prentice Hall PTR, New Jersey
Matic S, Henzinger TA (2005) Trading end-to-end latency for composability. Real-time systems symposium. IEEE Int 0: 99–110. doi:10.1109/RTSS.2005.43
Monson-Haefel R (2001) Enterprise JavaBeans, 3rd edn. O’Reilly, Sebastopol
Prosise J (2002) Programming Microsoft. NET. Microsoft Press, Bellevue
Puschner P, Koza C (1989) Calculating the maximum, execution time of real-time programs. Real-Time Syst 1(2): 159–176. doi:10.1007/BF00571421
Pyarali I, O’Ryan C, Schmidt D, Wang N, Gokhale A, Kachroo V (2000) Using principle patterns to optimize real-time ORBs. Concurrency, IEEE 8(1): 16–25. doi:10.1109/4434.824309
Pyarali I, Schmidt D, Cytron R (2003) Techniques for enhancing real-time CORBA quality of service. Proc IEEE 91(7): 1070–1085. doi:10.1109/JPROC.2003.814616
Schantz RE, Loyall JP, Schmidt DC, Rodrigues C, Kirishnamurthy Y, Pyarali I (2003) Flexible and adaptive QoS control for distributed real-time and embedded middleware. In: Proceedings of middleware 2003, 4th IFIP/ACM/USENIX international conference on distrubted systems platforms, Rio de Janeiro, Brazil
Schmidt D, Levine D, Mungee S (April 1998) The design and performance of real-time object request brokers. Computer Commun 21:294–324
Schuster A, Sprinkle J (2009) Synthesizing executable simulations from structural models of component-based systems. Electronic Communications of the EASST, Vol 21. 10 p. ISSN 1863-2122
Upcroft B, Makarenko A, Moser M, Alempijevic A, Donikian A, Uther W, Fitch R (2007) Empirical evaluation of an autonomous vehicle in an urban environment. J Aerospace Comput Inform Commun 4(12): 1086–1107
Wollrath A, Riggs R, Waldo J (1996) A distributed object model for the Java system. USENIX Computing Systems, MIT Press 9(4)
Wong K, Wang C (1999) Push-Pull Messaging: a high-performance communication mechanism for commodity SMP clusters. In: Parallel processing, International conference on, pp 12–19
Zeigler B, Praehofer H, Kim T (2000) Theory of modeling and simulation. Academic Press, New York
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Sprinkle, J., Eames, B. Time-triggered buffers for event-based middleware systems. Innovations Syst Softw Eng 7, 9–22 (2011). https://doi.org/10.1007/s11334-010-0139-7
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-010-0139-7