Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Generative communication in Linda
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Distributed programming in Argus
Communications of the ACM
Two-level semantics and code generation
Theoretical Computer Science - First European Symposium on Programming, Saarbru:9Aicken, W. Germany, March 17:8
Modelling and programming in an object-oriented concurrent language ABCL/1
Object-oriented concurrent programming
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The annotated C++ reference manual
The annotated C++ reference manual
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
F-bounded polymorphism for object-oriented programming
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Eiffel: the language
Coordination languages and their significance
Communications of the ACM
Understanding DCE
HOPL-II The second ACM SIGPLAN conference on History of programming languages
Systematic concurrent object-oriented programming
Communications of the ACM
Toward a method of object-oriented concurrent programming
Communications of the ACM
The process group approach to reliable distributed computing
Communications of the ACM
The Information Bus: an architecture for extensible distributed systems
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A language with distributed scope
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Impossibility of distributed consensus with one faulty process
Journal of the ACM (JACM)
Communications of the ACM
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
Multi-stage programming (poster)
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
The design and performance of a real-time CORBA event service
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Parametric polymorphism for Java: a reflective solution
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Matching events in a content-based subscription system
Proceedings of the eighteenth annual ACM symposium on Principles of distributed computing
Communicating and mobile systems: the &pgr;-calculus
Communicating and mobile systems: the &pgr;-calculus
Exploiting IP multicast in content-based publish-subscribe systems
IFIP/ACM International Conference on Distributed systems platforms
Efficient atomic broadcast using deterministic merge
Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing
Achieving scalability and expressiveness in an Internet-scale event notification service
Proceedings of the nineteenth annual ACM symposium on Principles of distributed computing
Understanding & programming COM+: a practical guide to Windows 2000 DNA
Understanding & programming COM+: a practical guide to Windows 2000 DNA
Nomadic pict: correct communication infrastructure for mobile computation
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Design and implementation of generics for the .NET Common language runtime
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
JavaSpaces Principles, Patterns, and Practice
JavaSpaces Principles, Patterns, and Practice
.NET Framework Essentials
The Java Language Specification
The Java Language Specification
Towards a primitive higher order calculus of broadcasting systems
Proceedings of the 4th ACM SIGPLAN international conference on Principles and practice of declarative programming
Higher-Order and Symbolic Computation
Computer
Yeast: A General Purpose Event-Action System
IEEE Transactions on Software Engineering
Implicit Typing à la ML for the Join-Calculus
CONCUR '97 Proceedings of the 8th International Conference on Concurrency Theory
Abstracting Object Interactions Using Composition Filters
ECOOP '93 Proceedings of the Workshop on Object-Based Distributed Programming
DSN '02 Proceedings of the 2002 International Conference on Dependable Systems and Networks
Jada - Coordination and Communication for Java Agents
MOS '96 Selected Presentations and Invited Papers Second International Workshop on Mobile Object Systems - Towards the Programmable Internet
Event Systems: How to Have Your Cake and Eat It Too
ICDCSW '02 Proceedings of the 22nd International Conference on Distributed Computing Systems
On QoS-Aware Publish-Subscribe
ICDCSW '02 Proceedings of the 22nd International Conference on Distributed Computing Systems
PolyTOIL: A Type-Safe Polymorphic Object-Oriented Language
ECOOP '95 Proceedings of the 9th European Conference on Object-Oriented Programming
FoSSaCS '98 Proceedings of the First International Conference on Foundations of Software Science and Computation Structure
Filtering and Scalability in the ECO Distributed Event Model
PDSE '00 Proceedings of the International Symposium on Software Engineering for Parallel and Distributed Systems
OS Support for P2P Programming: a Case for TPS
ICDCS '02 Proceedings of the 22 nd International Conference on Distributed Computing Systems (ICDCS'02)
Pragmatic Type Interoperability
ICDCS '03 Proceedings of the 23rd International Conference on Distributed Computing Systems
C# Language Specification
Actors: a model of concurrent computation in distributed systems (parallel processing, semantics, open, programming languages, artificial intelligence)
Lightweight probabilistic broadcast
ACM Transactions on Computer Systems (TOCS)
Linguistic Support for Distributed Programming Abstractions
ICDCS '04 Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS'04)
Towards Safe Distributed Application Development
Proceedings of the 26th International Conference on Software Engineering
DSN '04 Proceedings of the 2004 International Conference on Dependable Systems and Networks
Modern concurrency abstractions for C#
ACM Transactions on Programming Languages and Systems (TOPLAS)
Transparent proxies for java futures
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Mutual exclusion in asynchronous systems with failure detectors
Journal of Parallel and Distributed Computing
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Content-based publish/subscribe with structural reflection
COOTS'01 Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6
MOZ'04 Proceedings of the Second international conference on Multiparadigm Programming in Mozart/Oz
A fault tolerant abstraction for transparent distributed programming
MOZ'04 Proceedings of the Second international conference on Multiparadigm Programming in Mozart/Oz
Streamflex: high-throughput stream programming in java
Proceedings of the 22nd annual ACM SIGPLAN conference on Object-oriented programming systems and applications
Context-oriented programming with EventJava
International Workshop on Context-Oriented Programming
EventJava: An Extension of Java for Event Correlation
Genoa Proceedings of the 23rd European Conference on ECOOP 2009 --- Object-Oriented Programming
Event-based systems: opportunities and challenges at exascale
Proceedings of the Third ACM International Conference on Distributed Event-Based Systems
Soft state in publish/subscribe
Proceedings of the Third ACM International Conference on Distributed Event-Based Systems
OTM '09 Proceedings of the Confederated International Conferences, CoopIS, DOA, IS, and ODBASE 2009 on On the Move to Meaningful Internet Systems: Part I
Types and modularity for implicit invocation with implicit announcement
ACM Transactions on Software Engineering and Methodology (TOSEM)
Proceedings of the 2010 ACM Symposium on Applied Computing
Implicit invocation meets safe, implicit concurrency
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
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
Program analysis for event-based distributed systems
Proceedings of the 5th ACM international conference on Distributed event-based system
Scalable efficient composite event detection
COORDINATION'10 Proceedings of the 12th international conference on Coordination Models and Languages
Abstracting context in event-based software
Transactions on Aspect-Oriented Software Development IX
Aggregation for implicit invocations
Proceedings of the 12th annual international conference on Aspect-oriented software development
Survey On reliability in publish/subscribe services
Computer Networks: The International Journal of Computer and Telecommunications Networking
Enterprise integration using event actor based event transformations
Proceedings of the 28th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
A continuously increasing number of interconnected computer devices makes the requirement for programming abstractions for remote one-to-many interaction yet more stringent. The publish/subscribe paradigm has been advocated as a candidate abstraction for such one-to-many interaction at large scale. Common practices in publish/subscribe, however, include low-level abstractions which hardly leverage type safety, and provide only poor support for object encapsulation. This tends to put additional burden on software developers; guarantees such as the aforementioned type safety and object encapsulation become of increasing importance with an accrued number of software components, which modern applications also involve, besides an increasing number of hardware components.Type-based publish/subscribe (TPS) is a high-level variant of the publish/subscribe paradigm which aims precisely at providing guarantees such as type safety and encapsulation. We present the rationale and principles underlying TPS, as well as two implementations in Java: the first based on a specific extension of the Java language, and a second novel implementation making use of recent general-purpose features of Java, such as generics and behavioral reflection. We compare the two approaches, thereby evaluating the aforementioned features---as well as additional features which have been included in the most recent Java 1.5 release---in the context of distributed and concurrent programming. We discuss the benefits of alternative programming languages and features for implementing TPS. By revisiting alternative abstractions for distributed programming, including “classic” and recent ones, we extend our investigations to programming language support for distributed programming in general, pointing out that overall, the support in current mainstream programming languages is still insufficient.