Event-Based Middleware for Collaborative Ad Hoc Applications
Middleware supporting event-based communication is widely recognised as being well suited to interconnecting the components of mobile applications since it naturally accommodates a dynamically changing population of components and the dynamic reconfiguration of the connections between them. Existing research on event-based middleware for wireless networks has mainly focussed on accommodating nomadic applications using infrastructure networks while relatively little work has been done to address the distinct requirements associated with supporting collaborative applications, especially those that use ad hoc networks. Traditionally, event-based middleware employs logically centralised or intermediate components to implement key properties of the middleware. Application components may utilise centralised lookup and naming services to discover peers in order to communicate with them. Intermediate components may be used to route event notifications from producers to consumers and to apply event notification filters. Moreover, they may be used to enforce nonfunctional attributes, such as event notification delivery order and priority. The central problem with this approach arises with increasing system scale as such middleware components may become a liability due to availability and bandwidth limitations. Centralised or intermediate middleware components are typically hosted by physical machines that are part of a designated service infrastructure in order to ensure that they are always accessible to application components. The disadvantage of exploiting such an infrastructure is that its installation and maintenance requires substantial resources while limiting communication between components to the geographical areas in which the infrastructure has previously been made available. A similar approach is generally used when designing event-based middleware for wireless communication using infrastructure networks. Designated middleware components can be hosted naturally by parts of the network infrastructure, such as access points.However, alternative approaches have to be adopted by event-based middleware for ad hoc networks since ad hoc networks allow application components to communicate and collaborate in a spontaneous manner without the aid of a separate service infrastructure. The main contribution of the work described in this thesis is the design of an event-based middleware for wireless, ad-hoc environments addressing these problems. We have designed an inherently distributed event-based middleware architecture that does not rely on - vi - the presence of any infrastructure or on centralised or intermediate components. Our approach allows the components comprising collaborative applications to come together anywhere and at any time in order to interact through wireless communication using ad hoc networks without depending on a previously installed service infrastructure. This design supports distributed approaches to discovering peers and to filtering event notifications. Filters may be applied to a range of functional and non-function attributes associated with event notifications including subject, content, and context. Combining event notification filters increases the filtering precision allowing a component to subscribe to the subset of event notifications in which it is interested using multiple criteria, such as meaning, time, location, and quality of service. In particular, event notification filters may be used to define geographical areas within which certain event notifications are valid; hence delivering event notifications at the specific location where they are relevant. Such geographical scopes represent a natural way to identify event notifications of interest for mobile components. In addition, we have discovered decentralised techniques that improve system scalability for mobile computing applications comprising of large numbers of interconnected components distributed over large geographical areas as well as the predictability of the event service. Event notification filtering in general and our approach of combining filters in particular improves system scalability by limiting the forwarding of event notifications. Moreover, limiting event notification forwarding and bounding the event notification dissemination scope improves the predictable behaviour of the middleware. A further contribution of this thesis is a taxonomy of distributed event-based programming systems. The taxonomy is structured as a hierarchy of the fundamental properties of a distributed event-based programming system and may be used as a framework to describe an event system according to a variety of criteria including its event, organisation, and interaction models. In order to validate our contributions, we present an evaluation of a number of mobile application scenarios implemented using middleware that employs our inherently distributed event architecture and our decentralised techniques for improving system scalability and service predictability. The evaluation demonstrates how components of mobile applications can be interconnected through wireless communication and ad hoc networks as well as how our approach to event notification filtering increases filtering precision, improves system scalability, and enhances the predictability of the middleware. In addition, we apply our taxonomy of distributed event-based programming systems to our middleware as well as a selection of other event systems comparing their approaches to providing middleware properties.