Skip to Main Content
We define a set of requirements and criteria for selection and development of middleware for large distributed systems (system-of-systems or SoS). Middleware technologies are critical to the successful implementation and integration of large distributed systems. Such systems are developed by multiple vendors, and often integrated by a large prime contractor. In any such large system-of-systems, there is a wide variety in application performance and functionality requirements. These requirements place a wide range of requirements on the underlying middleware. Our thesis for this research is that it is futile and counter-productive to define one single middleware for these complex systems. There are two major reasons for this difficulty: a) Any middleware implementation approach always requires design compromise between functionality, flexibility, performance, size-weight-power, and cost. For example, more dynamic systems are harder to verify; higher-integrity systems may require lock-step hardware replication. A single implementation can never meet the needs of all applications; b) Middleware is so critical to the overall system integration that suppliers of individual systems are loath to loosen their own control over this middleware. For a large SoS integration, this problem gets especially complicated as system vendors have product and business strategies often in conflict with the SoS integrator. In this scenario, the middleware quickly becomes the SoS bottleneck not just in schedule and cost, but also a large technical risk. The requirements on the underlying middleware depend not on the middleware technologies used, but on the application context it is used in. This becomes the biggest challenge for designing the SoS middleware. Since a specific (or a small set of) trade-offs must be made, there will always be some applications that will not be able to use the middleware to perform its functions. We explore major categories of requirements: Dependability (such as timeliness, fault-tolerance, availability, and information integrity); Functional complexity and distributed state management; and platform size, weight, power. Unfortunately, there are trade-offs to be made as we characterize the performance of an application wit- hin these categories. The enhancements in one category will usually lead in a reduction in other categories.
Digital Avionics Systems Conference, 2005. DASC 2005. The 24th (Volume:2 )
Date of Conference: 30 Oct.-3 Nov. 2005