A new way to design causally and totally ordered multicast protocols
ACM SIGOPS Operating Systems Review
The reflexive CHAM and the join-calculus
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Featherweight Java: a minimal core calculus for Java and GJ
ACM Transactions on Programming Languages and Systems (TOPLAS)
Garf: A Tool for Programming Reliable Distributed Applications
IEEE Parallel & Distributed Technology: Systems & Technology
Composite Events for Active Databases: Semantics, Contexts and Detection
VLDB '94 Proceedings of the 20th International Conference on Very Large Data Bases
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Hermes: A Distributed Event-Based Middleware Architecture
ICDCSW '02 Proceedings of the 22nd International Conference on Distributed Computing Systems
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
Linear analysis and optimization of stream programs
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
Aurora: a new model and architecture for data stream management
The VLDB Journal — The International Journal on Very Large Data Bases
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)
Jeeg: temporal constraints for the synchronization of concurrent objects: Research Articles
Concurrency and Computation: Practice & Experience - 2002 ACM Java Grande—ISCOPE Conference Part I
Distributed operation in the Borealis stream processing engine
Proceedings of the 2005 ACM SIGMOD international conference on Management of data
Explicitly distributed AOP using AWED
Proceedings of the 5th international conference on Aspect-oriented software development
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
Streamflex: high-throughput stream programming in java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Ptolemy: A Language with Quantified, Typed Events
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Actors that unify threads and events
COORDINATION'07 Proceedings of the 9th international conference on Coordination models and languages
Polyglot: an extensible compiler framework for Java
CC'03 Proceedings of the 12th international conference on Compiler construction
Implementing joins using extensible pattern matching
COORDINATION'08 Proceedings of the 10th international conference on Coordination models and languages
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
Expressive completeness of an event-pattern reactive programming language
FORTE'05 Proceedings of the 25th IFIP WG 6.1 international conference on Formal Techniques for Networked and Distributed Systems
Transparently reconciling transactions with locking for java synchronization
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Responders: language support for interactive applications
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
DirectFlow: a domain-specific language for information-flow systems
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Implicit invocation meets safe, implicit concurrency
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
Type-safe eventful sessions in java
ECOOP'10 Proceedings of the 24th European conference on Object-oriented programming
Event-specific software composition in context-oriented programming
SC'10 Proceedings of the 9th international conference on Software composition
Designing event-based context transition in context-oriented programming
Proceedings of the 2nd International Workshop on Context-Oriented Programming
EScala: modular event-driven object interactions in scala
Proceedings of the tenth international conference on Aspect-oriented software development
Putting events in context: aspects for event-based distributed programming
Proceedings of the tenth international conference on Aspect-oriented software development
EventCJ: a context-oriented programming language with declarative event-based context transition
Proceedings of the tenth international conference on Aspect-oriented software development
Program analysis for event-based distributed systems
Proceedings of the 5th ACM international conference on Distributed event-based system
Parametric subscriptions for content-based publish/subscribe networks
Proceedings of the ACM/IFIP/USENIX 11th International Conference on Middleware
Proceedings of the 3rd International Workshop on Context-Oriented Programming
JavaCtx: seamless toolchain integration for context-oriented programming
Proceedings of the 3rd International Workshop on Context-Oriented Programming
Guarantees for decentralized event correlation
Proceedings of the 8th Middleware Doctoral Symposium
Detecting and Coordinating Complex Patterns of Distributed Events with KETAL
Electronic Notes in Theoretical Computer Science (ENTCS)
A self-replication algorithm to flexibly match execution traces
Proceedings of the eleventh workshop on Foundations of Aspect-Oriented Languages
Adding high-level concurrency to EScala
Proceedings of the 11th annual international conference on Aspect-oriented Software Development Companion
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
FAIDECS: fair decentralized event correlation
Middleware'11 Proceedings of the 12th ACM/IFIP/USENIX international conference on Middleware
Supporting methods and events by an integrated abstraction
Proceedings of the 9th ECOOP Workshop on Reflection, AOP, and Meta-Data for Software Evolution
Impact analysis for distributed event-based systems
Proceedings of the 6th ACM International Conference on Distributed Event-Based Systems
Science of Computer Programming
FAIDECS: fair decentralized event correlation
Proceedings of the 12th International Middleware Conference
Abstracting context in event-based software
Transactions on Aspect-Oriented Software Development IX
Reactive behavior in object-oriented applications: an analysis and a research roadmap
Proceedings of the 12th annual international conference on Aspect-oriented software development
Aggregation for implicit invocations
Proceedings of the 12th annual international conference on Aspect-oriented software development
Method slots: supporting methods, events, and advices by a single language construct
Proceedings of the 12th annual international conference on Aspect-oriented software development
Parametric Content-Based Publish/Subscribe
ACM Transactions on Computer Systems (TOCS)
Identifying message flow in distributed event-based systems
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Join point interfaces for safe and flexible decoupling of aspects
ACM Transactions on Software Engineering and Methodology (TOSEM)
Hi-index | 0.00 |
Event correlation has become the cornerstone of many reactive applications, particularly in distributed systems. However, support for programming with complex events is still rather specific and rudimentary. This paper presents EventJava, an extension of Java with generic support for event-based distributed programming. EventJava seamlessly integrates events with methods, and broadcasting with unicasting of events; it supports reactions to combinations of events, and predicates guarding those reactions. EventJava is implemented as a framework to allow for customization of event semantics, matching, and dispatching. We present its implementation, based on a compiler transforming specific primitives to Java, along with a reference implementation of the framework. We discuss ordering properties of EventJava through a formalization of its core as an extension of Featherweight Java. In a performance evaluation, we show that EventJava compares favorably to a highly tuned database-backed event correlation engine as well as to a comparably lightweight concurrency mechanism.