Synchronizing shared abstract types
ACM Transactions on Computer Systems (TOCS)
Implementation of resilient, atomic data types
ACM Transactions on Programming Languages and Systems (TOPLAS) - Lecture notes in computer science Vol. 174
Concepts and experiments in computational reflection
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Local atomicity properties: modular concurrency control for abstract data types
ACM Transactions on Programming Languages and Systems (TOPLAS)
Concurrency control and object-oriented databases
Object-oriented concepts, databases, and applications
Apologizing versus asking permission: optimistic concurrency control for abstract data types
ACM Transactions on Database Systems (TODS)
Principles and realization strategies of multilevel transaction management
ACM Transactions on Database Systems (TODS)
Extracting concurrency from objects: a methodology
SIGMOD '91 Proceedings of the 1991 ACM SIGMOD international conference on Management of data
Semantics-based concurrency control: beyond commutativity
ACM Transactions on Database Systems (TODS)
Adaptable concurrency control for atomic data types
ACM Transactions on Computer Systems (TOCS)
Transparency and reflection in distributed systems
ACM SIGOPS Operating Systems Review
Analysis of inheritance anomaly in object-oriented concurrent programming languages
Research directions in concurrent object-oriented programming
A modular and extensible network storage architecture
A modular and extensible network storage architecture
Hybrid concurrency control for abstract data types
Proceedings of the seventh ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Using meta-objects to adapt a persistent object system to meet application needs
EW 6 Proceedings of the 6th workshop on ACM SIGOPS European workshop: Matching operating systems to application needs
Transaction Processing: Concepts and Techniques
Transaction Processing: Concepts and Techniques
The Art of the Metaobject Protocol
The Art of the Metaobject Protocol
An Overview of the Arjuna Distributed Programming System
IEEE Software
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Hybrid Group Reflective Architecture for Object-Oriented Concurrent Reflective Programming
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Inheritance of Synchronization Constraints in Concurrent Object-Oriented Programming Languages
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Solving the Inheritance Anomaly in Concurrent Object-Oriented Programming
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Designing an Extensible Distributed Language with a Meta-Level Architecture
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
ECOOP '94 Proceedings of the 8th European Conference on Object-Oriented Programming
Definition of Reusable Concurrent Software Components
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Synchronization and recovery of actions
PODC '83 Proceedings of the second annual ACM symposium on Principles of distributed computing
Implementing Fault-Tolerant Applications Using Reflective Object-Oriented Programming
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
The transaction concept: virtues and limitations (invited paper)
VLDB '81 Proceedings of the seventh international conference on Very Large Data Bases - Volume 7
Support for Distributed Transactions in the TABS Prototype
IEEE Transactions on Software Engineering
Separation and composition of concerns in the object-oriented model
ACM Computing Surveys (CSUR) - Special issue: position statements on strategic directions in computing research
A Metaobject Architecture for Fault-Tolerant Distributed Systems: The FRIENDS Approach
IEEE Transactions on Computers
Using metalevel techniques in a flexible toolkit for CSCW applications
ACM Transactions on Computer-Human Interaction (TOCHI)
The Design of a Resource-Aware Reflective Middleware Architecture
Reflection '99 Proceedings of the Second International Conference on Meta-Level Architectures and Reflection
From Dalang to Kava - The Evolution of a Reflective Java Extension
Reflection '99 Proceedings of the Second International Conference on Meta-Level Architectures and Reflection
Shifting Up Reflection from the Implementation to the Analysis Level
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
Kava - A Reflective Java Based on Bytecode Rewriting
Proceedings of the 1st OOPSLA Workshop on Reflection and Software Engineering: Reflection and Software Engineering, Papers from OORaSE 1999
Reflection '99 Proceedings of the Second International Conference on Meta-Level Architectures and Reflection
A Meta-Object Protocol for Distributed OO Applications
TOOLS '97 Proceedings of the Tools-23: Technology of Object-Oriented Languages and Systems
MetaJava: an efficient run-time meta architecture for Java/sup TM/
IWOOOS '96 Proceedings of the 5th International Workshop on Object Orientation in Operating Systems (IWOOOS '96)
Fault Tolerance in Concurrent Object-Oriented Software through Coordinated Error Recovery
FTCS '95 Proceedings of the Twenty-Fifth International Symposium on Fault-Tolerant Computing
Kava - using byte code rewriting to add behavioural reflection to Java
COOTS'01 Proceedings of the 6th conference on USENIX Conference on Object-Oriented Technologies and Systems - Volume 6
Hi-index | 0.00 |
Many researchers have suggested using atomic data types to implement transactions as a way of achieving atomicity in a modular, encapsulated fashion. However, in practice, implementing user-defined atomic data types is a difficult task. Existing systems fail to make a clean separation between application code and the synchronisation/recovery code needed to guarantee atomicity, and thus make it very hard for programmers to make changes to a system to meet their particular needs. In this paper, we present a metaobject protocol approach to implementing atomic data types. With this approach, application code is implemented at the base level, whilst the synchronisation and recovery code necessary to ensure atomicity is implemented at the meta level in the form of metaobjects. New schemes for ensuring atomicity can be provided for particular applications by introducing new metaobjects into the system without a need to make any changes at the base level. Furthermore, it is possible for an atomic data object to adapt its mechanism for ensuring atomicity dynamically by changing its metaobject at run time.