Patterns and performance of distributed real-time and embedded publisher/subscriber architectures

Douglas C. Schmidt, Carlos O'Ryan
2003 Journal of Systems and Software  
Minimizing coupling between components is an important means to fulfill key quality requirements in software-intensive applications. Many applications use publisher/subscriber architectures to deliver events from suppliers to consumers without introducing excessive coupling between event sources and sinks. Though the concepts, programming abstractions, and benefits of publisher/subscriber architectures are well understood, there has been relatively little research on how to design architectures
more » ... that are efficient and predictable enough to meet the quality of service (QoS) requirements of distributed realtime and embedded (DRE) applications. In particular, the QoS performance tradeoffs between different publisher/subscriber configurations are not well understood. This paper makes four contributions to the design and evaluation of publisher/subscriber architectures for DRE applications. First, it illustrates how a flexible publisher/subscriber architecture can be implemented using standard CORBA middleware. Second, it shows how to extend the standard CORBA publisher/subscriber architecture so it is suitable for DRE applications that require low latency and jitter, periodic rate-based event processing, and event filtering and correlation. Third, it explains how to address key performance-related design challenges faced when implementing a publisher/subscriber architecture suitable for DRE applications. Finally, the paper presents benchmarks that empirically demonstrate the predictability, latency, and utilization of a widely used Real-time CORBA publisher/subscriber architecture. Our results demonstrate that it is possible to strike an effective balance between architectural flexibility and real-time quality of service for important classes of DRE applications. Reducing total ownership costs. Custom software development and evolution is labor-intensive and error-prone for complex DRE applications and can represent a substantial amount of total system acquisition and maintenance costs. Since DRE applications are often upgraded multiple times during their lifetime, it can be hard to maintain the QoS properties of custom-made systems as new components and capabilities are added [1]. Sheltering application architectures from obsolescence trends. Incommensurate lifetimes between long-lived DRE applications (20 years or more) and commercial off-the-shelf (COTS) platforms and tools (2-5 years) lead to pervasive software obsolescence and multiply the total ownership costs by requiring periodic software redevelopment and reengineering [2]. Minimizing personnel risks. Acquiring, retaining, and training personnel to maintain and upgrade proprietary, custom-made DRE applications is risky since it can make organizations overly reliant on a small group of specialized software developers. While considerable R&D effort has focused on how to meet these challenges for desktop and enterprise business applications [3], comparatively little effort has focused on how to meet these challenges for DRE applications with stringent QoS requirements.
doi:10.1016/s0164-1212(02)00078-x fatcat:svbiapfmnffqzkl3h2p3zekqzi