While the advent of mobile and tiny computing devices furthers the pervasion of our society's digital backbone, adequate programming support addressing the needs of adaptivity, versatility, autonomy, and reactivity of pervasive applications is still lacking.
We advocate for event correlation as core interaction paradigm embracing the asynchronous and decoupled nature of pervasive systems. Applications define events, which are triggered by sources and multicast to sinks; sinks are characterized by their interests in combinations of events involving criteria on type, value, time, and --- typical of many applications in pervasive systems --- location. Our contributions are threefold. First, we propose a model which generalizes previous approaches and unifies one-to-one, one-to-many, and many-to-many interaction. Second, we devise programming language support for this model, both through specific extensions to mainstream programming languages, as well as through general-purpose programming language constructs conceived to support also alternative inter-process interaction models. Third, we propose novel location-based routing algorithms and protocols devised for overlay networks tailored to event correlation, making use of randomization, compression, hashing, and error coding techniques to tame complexity while achieving secure, reliable and efficient event dissemination.
This research will advance the state of the art in event-based programming support by combining expertise in areas considered largely independently so far, such as computer networks and programming languages. The resulting cross-fertilization will furthermore facilitate the education of tomorrow's designers and developers of pervasive systems.
This project has investigated (1) models, (2) programming support, (3) middleware support, and (4) tool support for decentralized complex event-based software. Some of the highlights of the project in the respective categories are as follows: (1) We have proposed the FAIDECS (Fair Decentralized Event Correlation System) model for decentralized correlation, yielding a compromise between strong guarantees and efficient implementation. We have proven bounds of agreed event correlation, and have investigated the relationships between existing event correlation languages and FAIDECS. In a parallel track we have proposed the concept of parametric subscriptions to support dynamic event-based applications such as location-based applications. (2) We have designed and implemented the EventJava language for capturing the above-mentioned models and features. EventJava extends the mainstream Java programming language. Besides features for type-safe distributed event-based programming, EventJava also includes support for defining event contexts (called conspects) covering common meta-properties of events such as location or provenance. (3) We have proposed several novel event matching and routing algorithms. Examples include the Berretta extensible event matching algorithm which supports efficient subscription updates such as through parameteric subscriptions; TACMaN (Type/Attribute-Centric Matching Network) is another matching algorithm which leverages (optional) types and thus allows for interoperability between different (typed and untyped) languages; ALPS (Adaptive Location-based Publish/Subscribe) is a distributed routing algorithm for mobile wireless event-based programming which adapts to communication patterns; ACTrESS (Automatic Context Transformations for Event-based Software Systems) performs automatic event transformations to mediate between different event representations in federated event-based systems. (4) We have designed and implemented a resource-efficient tracing tool called TinyTracer for effective diagnosis of distributed event-based wireless sensor network applications. TinyTracer includes a novel hybrid online/offline compression technique called Prius, and a novel efficient scheme scheme called Cadet for tracing distributed event communication correctly in the presence of message reordering and loss in the network.