Current trends like the proliferation of sensors or the Internet of Things lead to Cyber-physical Systems#R##N#(CPSs). In these systems many different components communicate by exchanging events. While#R##N#events provide a convenient abstraction for handling the high load these systems generate, CPSs are very#R##N#complex and require expert computer scientists to handle correctly.#R##N#We realized that one of the primary reasons for this inherent complexity is that events do not carry#R##N#context. We analyzed the context of events and realized that there are two dimensions: context about#R##N#the data of an event and context about the event itself. Context about the data includes assumptions like#R##N#systems of measurement units or the structure of the encoded information that are required to correctly#R##N#understand the event. Context about the event itself is data that provides additional information to#R##N#the information carried by the event. For example an event might carry positional data, the additional#R##N#information could then be the room identifier belonging to this position.#R##N#Context about the data helps bridge the heterogeneity that CPSs possess. Event producers and consumers#R##N#may have different assumptions about the data and thus interpret events in different ways. To overcome#R##N#this gap, we developed the ACTrESS middleware. ACTrESS provides a model to encode interpretation#R##N#assumptions in an interpretation context. Clients can thus make their assumptions explicit and send them#R##N#to the middleware, which is then able to mediate between different contexts by transforming events.#R##N#Through analysis of the provided contexts, ACTrESS can generate transformers, which are dynamically#R##N#loaded into the system. It does not need to rely on costly operations like reflection. To prove this,#R##N#we conducted a performance study which shows that in a content-based publish/subscribe system, the#R##N#overhead introduced by ACTrESS’ transformations is too small to be measurable.#R##N#Because events do not carry contextual information, expert computer scientists are required to describe#R##N#situations that are made up of multiple events. The fact that CPSs promise to transform our everyday#R##N#life (e.g., smart homes) makes this problem even more severe in that most of the target users cannot#R##N#use CPSs. In this thesis, we developed a declarative language to easily describe situations and a desired#R##N#reaction. Furthermore, we provide a mechanism to translate this high-level description to executable#R##N#code. The key idea is that events are contextualized, i.e. our middleware enriches the event with the#R##N#missing contextual information based on the situation description. The enriched events are then correlated#R##N#and combined automatically, to ultimately be able to decide if the described situation is fulfilled or#R##N#not. By generating small computational units, we achieve good parallelization and are able to elegantly#R##N#scale up and down, which makes our approach particularly suitable for modern cloud architectures. We#R##N#conducted a usability analysis and performance study. The usability analysis shows that our approach#R##N#significantly simplifies the definition of reactive behavior in CPS. The performance study shows that the#R##N#achieved automatic distribution and parallelization incur a small performance cost compared to highly#R##N#optimized systems like Esper.
['Tobias Freudenreich']
Simplifying the use of event-based systems with context mediation and declarative descriptions