Engineering Dynamic Real-Time Distributed Systems: Architecture, System Description Language, and Middleware

  • Authors:
  • Binoy Ravindran

  • Affiliations:
  • Virginia Polytechnic Institute and State Univ.

  • Venue:
  • IEEE Transactions on Software Engineering
  • Year:
  • 2002

Quantified Score

Hi-index 0.01

Visualization

Abstract

This paper presents an architectural framework and algorithms for engineering dynamic real-time distributed systems using commercial off-the-shelf technologies. In the proposed architecture, a real-time system application is developed in a general-purpose programming language. Further, the architectural-level description of the system such as composition and interconnections of application software and hardware, and the operational requirements of the system such as timeliness and survivability are specified in a system description language. The specification of the system is automatically translated into an intermediate representation (IR) that models the system in a platform-independent manner. The IR is augmented with dynamic measurements of the system by a language runtime system to produce a dynamic system model. The dynamic model is used by resource management middleware strategies to perform resource management that achieves the timeliness and survivability requirements. The middleware techniques achieve the timeliness and survivability requirements through runtime monitoring and failure detection, diagnosis, and dynamic resource allocation. We present two classes of algorithms驴predictive and availability-based驴for performing resource allocation. To validate the viability of the approach, we use a real-time benchmark application that functionally approximates dynamic real-time command and control systems. The benchmark is specified in the system description language and the effectiveness of the architecture in achieving its design goals is examined through a set of experiments. The experimental characterizations illustrate that the middleware is able to achieve the desired timeliness requirements during a number of load situations. Furthermore, the results indicate that availability-based allocation algorithms perform resource allocation less frequently, whereas the predictive algorithms give a better steady state performance for the application.