80 likes | 198 Views
Events, Actions, and Compositions. Somayeh Malakuti , Christoph Bockisch, Mehmet Aksit Software Engineering Group http://trese.cs.utwente.nl. Definition of Runtime Enforcement. Nowadays, application software is becoming more and more complex, therefore:
E N D
Events, Actions, and Compositions Somayeh Malakuti, Christoph Bockisch, Mehmet Aksit Software Engineering Group http://trese.cs.utwente.nl
Definition of Runtime Enforcement • Nowadays, application software is becoming more and more complex, therefore: • it is not possible to detect all the failures of the software before its actual deployment. • Runtime Enforcement (RE) Systems: • verify the active execution trace of software against formally specified properties. • if the properties are violated, RE systems diagnose the cause of failure and take recovery actions accordingly.
Elements of a Runtime Enforcement System Events Recovery Components Events Observer Verification Components … Observer Events … Diagnosis Components Events Observer Verification Components Observer Events … Verification Components Events Observer Verification Components Observer Events Application Components Obs.
Everything boils down to Events, Actions and Compositions Events Actions Events Compos. Actions • Actions perform operations and may publish their results as events. • Events are typed data • primitive types and composite types • Composition operatorsfacilitate composition of events and actions based on some constraints. • the compositions must be closed with respect to events. Compos. Events Actions Events Compos. Actions Compos. Events Actions Events Compos. Actions Compos. Events Compos. Actions
AO Implementation of a Runtime Enforcement System • Events can be identified via pointcuts • primitive pointcuts for identifying primitive events • history-based pointcuts/ join point types/ explicit join points for composite events • Actions can be defined via advices • Compositions • advices with pointcuts • pointcuts with each other via logical operators • advices (aspects) with each other at shared join points
Deficiencies in Supporting Events, Actions and Compositions Events Recovery Components • Limited expressive power to define composite event types • as a workaround they must be defined as (part of) actions • there is no guarantee for side-effect freeness the such actions. • Lack of support for side-effect free actions • Deficiencies in compositions • deficiency in composing events with each other • deficiency in composing actions with each other • composition constraints are scattered across and tangled with actions. Observer Events Diagnosis Components Observer Events Verification Components Observer Events Obs. Application Components
Filter : Type Filter : Type Filter : Type Filter : Type Filter :Type Application Object Application Object The Extended Compose* to Support Events, Actions and Compositions • The execution and the invocation of application messages are regarded as primitive event types. • Filters are means to define composite event types, actions and composition constraints. • Two sorts of filters are supported: read-only and read-write. messages messages