Event-based Pervasive Programming
Rationale
The idiom of application event has become the cornerstone for
many programming paradigms, patterns, and models, particularly in distributed
multi-party interaction. Events bear many advantages over more traditional ways
of programming predominantly in a sequential style and adding concurrency
later on.
Events have been used in more fundamental computation models
for decades already, yet in programming languages enjoy only limited and
specialized support so far. The goal of this project is to develop
general-purpose event-based programming support, with emphasis on pervasive
systems. A core concern is the achievement of an expressive language which can
be implemented very efficiently, and the expression of causality to support
dynamic analysis and debugging.
Results
The work on this project includes various angles.
- Our first endeavour is to develop the formal foundations
for expressive event-based distributed programming models. A first step
towards this goal is the C3 calculus
(calculus of content-aware channels), a process algebra which can be viewed
as variant of distributed join calculus with more powerful channels, which
support multicast and event correlation. These channels reflect the
functionalities of the last generation of content-based publish/subscribe
systems.
- A practical programming language based on our formal
model has been realized as a strict extension of the Java programming
language. This language, which goes by the name of EventJava, unifies event
handlers with methods, and unicast and multicast interaction. EventJava can
be viewed as a language framework, which hinges on a first class notion of
context, allowing the language to be adapted to various existing
communication substrates and system models. Our reference implementation for
large-scale internet programming builds on JGroups and Jess.
Publications related to this project
- T. Freudenreich, P. Eugster, S. Frischbier, S. Appel, and A. Buchmann.
Implementing Federated Object Systems. 27th European Conference on Object Oriented Programming (ECOOP 2013), July 2013.
- G.A. Wilkin and P. Eugster. Multicasting in the Presence of Aggregated Deliveries. Journal of Parallel and Distributed Computing, to appear.
- K.R. Jayaram, C. Jayalath, and P. Eugster. Parametric Content-based Publish/Subscribe. ACM Transactions on Computer Systems, May 2013.
- S. Frischbier, A. Margara, T. Freudenreich, P. Eugster, D. Eyers, and P. Pietzuch. Aggregation for Implicit Invocations. 12th International Conference on Aspect Oriented Software Development (AOSD 2013), March 2013.
- F. Bry, A. Paschke, P. Eugster, C. Fetzer, and A. Behrend. Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems (DEBS 2012). ACM, July 2012.
- A. Holzer, P. Eugster, and B. Garbinato. ALPS -- Adaptive Location-based Publish/Subscribe. Computer Networks, January 2012.
- A. Holzer, L. Ziarek, K.R. Jayaram, and P. Eugster. Abstracting Context in Event-based Software.
Transactions on Aspect-Oriented Software Development, 9, 2012.
- G.A. Wilkin, K.R. Jayaram, P. Eugster, and A. Khetrapal. Fair Decentralized Event Correlation with FAIDECS. 12th ACM/IFIP/USENIX International Middleware Conference (Middleware 2011), December 2011.
- K.R. Jayaram and P. Eugster
Program Analysis for Distributed Event-based Systems. 5th ACM International Conference on Distributed Event-based Systems (DEBS 2011), July 2011.
- K.R. Jayaram and P. Eugster.
Split and Subsume: Subscription Normalization for Effective Content-based Publish/Subscribe. 31st International Conference on Distributed Computing Systems (ICDCS 2011), June 2011.
- A. Holzer, L. Ziarek, and P. Eugster.Putting Events in Context -- Aspects for Event-based Distributed Programming. 10th International Conference on Aspect-Oriented Software Development (AOSD 2011), March 2011.
- K. R. Jayaram, C. Jayalath and P. Eugster.
Parametric Subscriptions for Content-based Publish/Subscribe Networks. 11th International Middleware Conference (Middleware 2010), December 2010. Awarded Best Paper
- K. R. Jayaram and P. Eugster.
Scalable Efficient Composite Event Detection. 12th International Conference on Coordination Models and Languages (COORDINATION 2010), June 2010.
- K. Hoffman, P. Eugster, and S. Jagannathan. Semantics-Aware Trace Analysis. 2009 ACM SIGPLAN Conference ON Programming Language Design and Implementation (PLDI 2009), June 2009.
- P. Eugster and K. R. Jayaram.
EventJava: An Extension of Java for Event Correlation. 23rd European Conference on Object-Oriented Programming (ECOOP'09), July 2009.
- H. Yuan and P. Eugster.
An Efficient Algorithm for Solving the Dyck-CFL Reachability Problem on Trees. 18th European Symposium on Programming (ESOP'09), Mar 2009.
- K. R. Jayaram and P. Eugster.
Context-Oriented Programming with EventJava. International Workshop on Context-Oriented Programming (COP '09) at ECOOP 2009, July 2009.
- C. Line, K.R. Jayaram, and P. Eugster. Lazy Argument Passing in Java RMI. ACM Conference on Principles and Practices of Programming in Java (PPPJ 2008), Sptember 2008.
Earlier publications related to this project
- S. Baehni, J. Barreto, P. Eugster, and R. Guerraoui.
Efficient Distributed Subtyping Tests. 1st ACM/IEEE/USENIX Conference on
Distributed Event-based Systems (DEBS 2007), June 2007.
- P. Eugster. Type-based Publish/Subscribe: Concepts and
Experiences. ACM Transactions on Programming Languages and Systems (TOPLAS),
29(1), January 2007.
- S. Baehni, P. Eugster, and R. Guerraoui. Data-Aware
Multicast. 5th International Conference on Dependable Systems and Networks (DSN
2004), June 2004.
- P. Eugster and R. Guerraoui. Distributed Programming with
Typed Events. IEEE Software, 21(2), March 2004.
- P. Eugster and R. Guerraoui. Probabilistic Multicast. 3rd
IEEE International Conference on Dependable Systems and Networks (DSN 2000),
June 2002.
- P. Eugster, R. Guerraoui, and C.H. Damm. On Objects and
Events. 16th ACM Conference on Object-Oriented Programming Systems,
Languages, and Applications (OOPSLA 2001), October 2001.
- P. Eugster and R. Guerraoui. Content-based Publish/Subscribe with Structural Reflection. 6th USENIX Conference on Object-Oriented Technologies and Systems (COOTS 2001), January 2001. Awarded Best Student Paper
- P. Eugster, R. Guerraoui, and J. Sventek. Distributed
Asynchronous Collections: Abstractions for Publish/Subscribe Interaction.
14th European Object-Oriented Conference on Object Oriented Programming (ECOOP
2000), June 2000.
Support
This project is currently financially supported by the
National Science Foundation through grants 0644013 ("Pervasive Programming
with Event Correlation") and 0834529 ("A Holistic Approach to Reliable
Pervasive Systems").
Main project members
P. Eugster,
K. R. Jayaram,
A. Holzer