Smalltalk-80: the language and its implementation
Smalltalk-80: the language and its implementation
Concurrency control and recovery in database systems
Concurrency control and recovery in database systems
RPC in the x-Kernel: evaluating new design techniques
SOSP '89 Proceedings of the twelfth ACM symposium on Operating systems principles
The art of metaobject protocol
The art of metaobject protocol
Understanding the limitations of causally and totally ordered communication
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 framework for network protocol software
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Unreliable failure detectors for reliable distributed systems
Journal of the ACM (JACM)
Communications of the ACM
Java network programming
The implementation of a CORBA object group service
Theory and Practice of Object Systems - Special issue high availability in CORBA
Concurrency and distribution in object-oriented programming
ACM Computing Surveys (CSUR)
Implementing remote procedure calls
ACM Transactions on Computer Systems (TOCS)
Reliable Distributed Computing with the ISIS Toolkit
Reliable Distributed Computing with the ISIS Toolkit
Garf: A Tool for Programming Reliable Distributed Applications
IEEE Parallel & Distributed Technology: Systems & Technology
An Overview of the Arjuna Distributed Programming System
IEEE Software
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Protocol Classes for Designing Reliable Distributed Environments
ECCOP '96 Proceedings of the 10th European Conference on Object-Oriented Programming
Distributed Programming in GARF
ECOOP '93 Proceedings of the Workshop on Object-Based Distributed Programming
Transaction Model vs. Virtual Synchrony Model: Bridging the Gap
Selected Papers from the International Workshop on Theory and Practice in Distributed Systems
Atomic Updates of Replicated Data
EDCC-2 Proceedings of the Second European Dependable Computing Conference on Dependable Computing
Replicating objects using the CORBA Event Service?
FTDCS '97 Proceedings of the 6th IEEE Workshop on Future Trends of Distributed Computing Systems
The design of a CORBA group communication service
SRDS '96 Proceedings of the 15th Symposium on Reliable Distributed Systems
A transparent light-weight group service
SRDS '96 Proceedings of the 15th Symposium on Reliable Distributed Systems
Flexible Protocol Composition in Bast
ICDCS '98 Proceedings of the The 18th International Conference on Distributed Computing Systems
Filtering Duplicated Invocations Using Symmetric Proxies
IWOOOS '95 Proceedings of the 4th International Workshop on Object-Orientation in Operating Systems
Object Replication in Arjuna
Exploiting the internet inter-ORB protocol interface to provide CORBA with fault tolerance
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
Using the strategy design pattern to compose reliable distributed protocols
COOTS'97 Proceedings of the 3rd conference on USENIX Conference on Object-Oriented Technologies (COOTS) - Volume 3
Six misconceptions about reliable distributed computing
Proceedings of the 8th ACM SIGOPS European workshop on Support for composing distributed applications
e-Transactions: End-to-End Reliability for Three-Tier Architectures
IEEE Transactions on Software Engineering
Programming with Object Groups in CORBA
IEEE Concurrency
Exception handling and resolution for transactional object groups
Advances in exception handling techniques
Exception Handling and Resolution for Transactional Object Groups
Advances in Exception Handling Techniques (the book grow out of a ECOOP 2000 workshop)
Integrating Group Communication with Transactions for Implementing Persistent Replicated Objects
Advances in Distributed Systems, Advanced Distributed Computing: From Algorithms to Systems
Advances in Distributed Systems, Advanced Distributed Computing: From Algorithms to Systems
Customizing Telecommunication Services: Patterns, Issues, and Models
IS&N '99 Proceedings of the 6th International Conference on Intelligence and Services in Networks: Paving the Way for an Open Service Market
A Method for Combining Replication with Caching
SRDS '99 Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems
Enforcing Determinism for the Consistent Replication of Multithreaded CORBA Applications
SRDS '99 Proceedings of the 18th IEEE Symposium on Reliable Distributed Systems
Experiences, Strategies, and Challenges in Building Fault-Tolerant CORBA Systems
IEEE Transactions on Computers
Active Replication of Multithreaded Applications
IEEE Transactions on Parallel and Distributed Systems
Service communities: applications and middleware
Proceedings of the 6th international workshop on Software engineering and middleware
Transactional memory for smalltalk
ICDL '07 Proceedings of the 2007 international conference on Dynamic languages: in conjunction with the 15th International Smalltalk Joint Conference 2007
Transactional memory in a dynamic language
Computer Languages, Systems and Structures
Highly available fault tolerant distributed computing using reflection and replication
Proceedings of the International Conference on Advances in Computing, Communication and Control
Hi-index | 0.01 |
This paper draws several observations from our experiences in building support for object groups. These observations actually go beyond our experiences and may apply to many other developments of object based distributed systems.Our first experience aimed at building support for Smalltalk object replication using the Isis process group toolkit. It was quite easy to achieve group transparency but we were confronted with a strong mismatch between the rigidity of the process group model and the flexible nature of object interactions. Consequently, we decided to build our own object oriented protocol framework, specifically dedicated to support object groups (instead of using a process group toolkit). We built our framework in such a way that basic distributed protocols, such as failure detection and multicasts, are considered as first class entities, directly accessible to the programmers. To achieve flexible and dynamic protocol composition, we had to go beyond inheritance and objectify distributed algorithms.Our second experience consisted in building a CORBA service aimed at managing group of objects written on different languages and running on different platforms. This experience revealed a mismatch between the asynchrony of group protocols and the synchrony of standard CORBA interaction mechanisms, which limited the portability of our CORBA object group service. We restricted the impact of this mismatch by encapsulating asynchrony issues inside a specific messaging sub-service.We dissect the cost of object group transparency in our various implementations, and we point out the recurrent sources of overheads, namely message indirection, marshaling/unmarshaling and strong consistency.