Distributed real-time systems are becoming more pervasive in many domains including process control, discrete manufacturing, defense systems, air traffic control, and online monitoring systems in medicine. The construction of such systems, however, is impeded by the lack of simple yet powerful programming models and the lack of efficient, scalable, dependable and analyzable interfaces and their implementations. We argue that these issues need to be resolved with powerful application-level toolkits similar to that provided by ISIS. We consider the inter-process communication requirements which form a fundamental block in the construction of distributed real-time systems. We propose the real-time publisher/subscriber model, a variation of group-based programming and anonymous communication techniques, as a model for distributed real-time inter-process communication which can address issues of programming ease, portability, scalability and analyzability. The model has been used successfully in building a software architecture for building upgradable real-time systems. We provide the programming interface, a detailed design and implementation details of this model along with some preliminary performance benchmarks. The results are encouraging in that the goals we seek look achievable.
[1]
Lui Sha,et al.
Priority Inheritance Protocols: An Approach to Real-Time Synchronization
,
1990,
IEEE Trans. Computers.
[2]
Ragunathan Rajkumar,et al.
Synchronization in Real-Time Systems
,
1991
.
[3]
Dale Skeen,et al.
The Information Bus: an architecture for extensible distributed systems
,
1994,
SOSP '93.
[4]
Mark Klein,et al.
A practitioner's handbook for real-time analysis - guide to rate monotonic analysis for real-time systems
,
1993,
The Kluwer international series in engineering and computer science.
[5]
John P. Lehoczky,et al.
An experimental investigation of synchronization protocols
,
1989
.
[6]
Flaviu Cristian.
A probabilistic approach to distributed clock synchronization
,
1989,
[1989] Proceedings. The 9th International Conference on Distributed Computing Systems.