Using prototypical objects to implement shared behavior in object-oriented systems
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
Prototype-based languages: from a new taxonomy to constructive proposals and their validation
OOPSLA '92 conference proceedings on Object-oriented programming systems, languages, and applications
Subject-oriented programming: a critique of pure objects
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
On the semantic diversity of delegation-based programming languages
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Split objects: a disciplined use of delegation within objects
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Environmental acquisition: a new inheritance-like abstraction mechanism
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Role model based framework design and integration
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Just-in-time aspects: efficient dynamic weaving for Java
Proceedings of the 2nd international conference on Aspect-oriented software development
Supporting Unanticipated Dynamic Adaptation of Application Behaviour
ECOOP '02 Proceedings of the 16th European Conference on Object-Oriented Programming
JAC: an aspect-based distributed dynamic framework
Software—Practice & Experience
Proceedings of the 4th international conference on Aspect-oriented software development
Adapting virtual machine techniques for seamless aspect support
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Morphing: safely shaping a class in the image of others
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Dynamic evolution of web-based systems
IITA'09 Proceedings of the 3rd international conference on Intelligent information technology application
Hi-index | 0.00 |
Large information systems are typically distributed and cater to several client programs, with different needs. Traditional approaches to software development and deployment cannot handle situations where (i) the needs of one client application evolve over time, diverging from the needs of others, and (ii) when the server application cannot be shutdown for maintenance. In this paper, we propose an experimental framework for the unanticipated dynamic evolution of distributed objects that enables us to: (i) extend the behavior of distributed objects during run-time, requiring no shutdown, and (ii) offer different functionalities to different applications simultaneously. In our approach, new client programs can invoke behavioral extensions to server objects that are visible only to them, while legacy applications may continue to use the non-extended versions of the server. Our approach has the advantage of: (i) requiring no changes to the host programming language or to the virtual machine, and (ii) providing a transparent programming model to the developer. In this paper, we describe the problem of unanticipated dynamic evolution of distributed objects, the principles underlying our approach, and our prototype implementations for Java and C#. We conclude by discussing related work, and the extent to which our approach can be used to support industrial strength unanticipated evolution.