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.

  1. 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.
  2. 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

  1. 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.
  2. G.A. Wilkin and P. Eugster. Multicasting in the Presence of Aggregated Deliveries. Journal of Parallel and Distributed Computing, to appear.
  3. K.R. Jayaram, C. Jayalath, and P. Eugster. Parametric Content-based Publish/Subscribe. ACM Transactions on Computer Systems, May 2013.
  4. 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.
  5. 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.
  6. A. Holzer, P. Eugster, and B. Garbinato. ALPS -- Adaptive Location-based Publish/Subscribe. Computer Networks, January 2012.
  7. A. Holzer, L. Ziarek, K.R. Jayaram, and P. Eugster. Abstracting Context in Event-based Software. Transactions on Aspect-Oriented Software Development, 9, 2012.
  8. 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.
  9. 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.
  10. 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.
  11. 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.
  12. 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
  13. K. R. Jayaram and P. Eugster. Scalable Efficient Composite Event Detection. 12th International Conference on Coordination Models and Languages (COORDINATION 2010), June 2010.
  14. 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.
  15. 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.
  16. 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.
  17. K. R. Jayaram and P. Eugster. Context-Oriented Programming with EventJava. International Workshop on Context-Oriented Programming (COP '09) at ECOOP 2009, July 2009.
  18. 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

  1. 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.
  2. P. Eugster. Type-based Publish/Subscribe: Concepts and Experiences. ACM Transactions on Programming Languages and Systems (TOPLAS), 29(1), January 2007.
  3. S. Baehni, P. Eugster, and R. Guerraoui. Data-Aware Multicast. 5th International Conference on Dependable Systems and Networks (DSN 2004), June 2004.
  4. P. Eugster and R. Guerraoui. Distributed Programming with Typed Events. IEEE Software, 21(2), March 2004.
  5. P. Eugster and R. Guerraoui. Probabilistic Multicast. 3rd IEEE International Conference on Dependable Systems and Networks (DSN 2000), June 2002.
  6. 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.
  7. 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
  8. 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