Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Storing a Sparse Table with 0(1) Worst Case Access Time
Journal of the ACM (JACM)
Efficient management of transitive relationships in large data and knowledge bases
SIGMOD '89 Proceedings of the 1989 ACM SIGMOD international conference on Management of data
Type-extension type test can be performed in constant time
ACM Transactions on Programming Languages and Systems (TOPLAS)
Efficient type inclusion tests
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Perfect hashing functions: a single probe retrieving method for static sets
Communications of the ACM
Efficient subtyping tests with PQ-encoding
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Fast algorithm for creating space efficient dispatching tables with application to multi-dispatching
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Optimistic Readers Transformation
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Engineering Event-Based Systems with Scopes
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
C# Language Specification
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley))
Acute: high-level programming language design for distributed computation
Proceedings of the tenth ACM SIGPLAN international conference on Functional programming
Abstraction preservation and subtyping in distributed languages
Proceedings of the eleventh ACM SIGPLAN international conference on Functional programming
Ambient-Oriented programming in ambienttalk
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Modular software upgrades for distributed systems
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Extensible encoding of type hierarchies
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
A Hybrid Method of Indexing Multiple-Inheritance Hierarchies
ISMIS '09 Proceedings of the 18th International Symposium on Foundations of Intelligent Systems
A slice-based decision procedure for type-based partial orders
IJCAR'10 Proceedings of the 5th international conference on Automated Reasoning
Generalized Hybrid Encoding of Polyhierarchical Structures
Fundamenta Informaticae - To Andrzej Skowron on His 70th Birthday
Hi-index | 0.00 |
Subtyping tests are essential in typed publish/subscribe infrastructures, especially when the underlying programming language supports subtype conformance, as in Java or C#. These tests are particularly challenging when the publish/-subscribe infrastructure is distributed, because processes have diverging views and new types may be added in a decentralized manner. Maybe surprisingly, subtyping tests for such distributed systems have been devoted only little attention so far; they are usually strongly intertwined with serialization and code transfer mechanisms. This paper presents an efficient subtype testing method for event objects received through the wire, requiring neither the download of a full description of the types or classes of these objects nor their deserialization. We use a slicing technique that encodes a multiple subtyping hierarchy with as little memory as the best known centralized type encoding, but allows for the dynamic addition of event types without re-computing the encoding. We convey the practicality of our approach through performance measures obtained with standard Java libraries in a publish/subscribe system. Our approach performs between 3 and 12 times faster than a code transfer approach without adding overhead to object deserialization, and requires the same testing time as a straightforward string-based type encoding while reducing the encoding length by a factor of 50.