Runtime support for quality of information requirements in event-based systems

Modern reactive software systems turn fine-granular real-time notifications about processes in the physical world into information and knowledge to react in time. Push-based Event-based Systems (EBSs) complement pull-based architectures, such as Service-oriented Architectures (SOAs), and enable enterprises to react to meaningful events in a timely manner. Applications for algorithmic trading, energy-aware reactive data center management, or smart supply chain management are just three examples of reactive systems where information provided by heterogeneous data sources has to be interpreted and where false alarms, missed events or otherwise data of inadequate Quality of Information (QoI) carries a cost. Whether the QoI of notifications is adequate depends on the purpose, the information is intended to be used for by each receiver. This purpose is application-specific and changes at runtime. Thus, the notion of QoI combines objectively measurable properties of a notification and their application-specific assessment that determines the Value of Information (VoI) for a receiver. Receiving only data that conforms to their QoI requirements is crucial for reactive applications. Current support for QoI, however, is limited in terms of expressiveness and effectiveness. In this dissertation, we introduce the concept of expectations, capabilities and feedback as a holistic concept to express, negotiate and enforce QoI requirements at runtime in push-based systems. Participants express requirements and define individual trade-offs between them as expectations; the ability of the system to support properties by adapting itself is captured by capabilities that include the individual costs of participants. Feedback to participants is a central component of our approach and is used to coordinate the adaptation of participants at runtime. We show that our approach is more expressive and supports a wider range of properties than current approaches; our approach actively enforces complex requirements about QoI in an effective way without deteriorating the system’s performance. The work presented in this dissertation contributes to the challenge of runtime QoI support in push-based architectures on a conceptual and practical level. On the conceptual level, we contribute a generic and extensible model to express and manage requirements about arbitrary QoI properties, algorithms for negotiation and enforcing these requirements at runtime as well as a concept for effective runtime monitoring in a distributed and decentralized EBS. The conceptual part of this dissertation synthesizes and expands approaches devised in pull- and push-based systems as well as in economics into a novel concept to support QoI at runtime in reactive software systems. On the practical level, we contribute a reference architecture for runtime support of QoI requirements, two prototypes built on a centralized and a decentralized Message-oriented Middleware (MOM), examples for existing applications enhanced with our approach as well as an extensive evaluation of our prototypes built on the industry-strength Apache ActiveMQ platform and the academic REconfigurable Dispatching System (REDS). The evaluation uses industry-strength benchmarks and systems to quantify the benefits and execution costs for participants. The practical part of this dissertation shows the practicability of our approach and quantifies the benefits of actively enforcing QoI requirements using feedback.