Lightweight causal and atomic group multicast
ACM Transactions on Computer Systems (TOCS)
The Information Bus: an architecture for extensible distributed systems
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Concurrent programming in ERLANG (2nd ed.)
Concurrent programming in ERLANG (2nd ed.)
The reflexive CHAM and the join-calculus
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Concurrency and distribution in object-oriented programming
ACM Computing Surveys (CSUR)
Matching events in a content-based subscription system
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Design and evaluation of a wide-area event notification service
ACM Transactions on Computer Systems (TOCS)
The JEDI Event-Based Infrastructure and Its Application to the Development of the OPSS WFMS
IEEE Transactions on Software Engineering
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
DADO: enhancing middleware to support crosscutting features in distributed, heterogeneous systems
Proceedings of the 25th International Conference on Software Engineering
The nesC language: A holistic approach to networked embedded systems
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Filtering and Scalability in the ECO Distributed Event Model
PDSE '00 Proceedings of the International Symposium on Software Engineering for Parallel and Distributed Systems
Remote pointcut: a language construct for distributed AOP
Proceedings of the 3rd international conference on Aspect-oriented software development
Modern concurrency abstractions for C#
ACM Transactions on Programming Languages and Systems (TOPLAS)
Explicitly distributed AOP using AWED
Proceedings of the 5th international conference on Aspect-oriented software development
The CQL continuous query language: semantic foundations and query execution
The VLDB Journal — The International Journal on Very Large Data Bases
Language and compiler design for streaming applications
International Journal of Parallel Programming - Special issue: The next generation software program
Type-based publish/subscribe: Concepts and experiences
ACM Transactions on Programming Languages and Systems (TOPLAS)
Specialization of CML message-passing primitives
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Parameterized subscriptions in publish/subscribe systems
Data & Knowledge Engineering
Streamflex: high-throughput stream programming in java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Staying FIT: efficient load shedding techniques for distributed stream processing
VLDB '07 Proceedings of the 33rd international conference on Very large data bases
Extensible encoding of type hierarchies
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Ptolemy: A Language with Quantified, Typed Events
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Deep typechecking and refactoring
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Scala Actors: Unifying thread-based and event-based programming
Theoretical Computer Science
Composite subscriptions in content-based publish/subscribe systems
Proceedings of the ACM/IFIP/USENIX 2005 International Conference on Middleware
Fairness for Chorded Languages
COORDINATION '09 Proceedings of the 11th International Conference on Coordination Models and Languages
EventJava: An Extension of Java for Event Correlation
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Implementing joins using extensible pattern matching
COORDINATION'08 Proceedings of the 10th international conference on Coordination models and languages
Impact analysis for event-based components and systems
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Putting events in context: aspects for event-based distributed programming
Proceedings of the tenth international conference on Aspect-oriented software development
Parametric subscriptions for content-based publish/subscribe networks
Proceedings of the ACM/IFIP/USENIX 11th International Conference on Middleware
Towards expressive publish/subscribe systems
EDBT'06 Proceedings of the 10th international conference on Advances in Database Technology
The essence of data access in Cω: the power is in the dot!
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Responders: language support for interactive applications
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Scalable efficient composite event detection
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Impact analysis for distributed event-based systems
Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems
Identifying message flow in distributed event-based systems
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Hi-index | 0.01 |
Designing distributed applications around the idiom of events has several benefits including extensibility and scalability. To improve conciseness, safety, and efficiency of corresponding programs, several authors have recently proposed programming languages or language extensions with support for event-based programming. The presence of a dedicated programming language and compilation process offers avenues for program analyses to further improve simplicity, safety, and expressiveness of distributed event-based software. This paper presents three program analyses specifically designed for event-based programs: immutability analysis avoids costly cloning of events in the presence of co-located handlers for same events; guard analysis allows for simple yet expressive subscriptions which can be further simplified and handled efficiently; causality analysis determines causal dependencies among events which are related, allowing unrelated events to be transferred independently for efficiency. We convey the benefits of our approach by empirically evaluating their performance benefits.