Object-oriented information systems vol:2817 pages:18-32
When different clients, each with their own individual customization requirements, use the same system simultaneously, the system must dynamically adapt its behavior on a per client basis. Each non-trivial adaptation of the system's behavior will very likely crosscut the implementation of multiple objects. In this paper we present an extension to the Java programming language that supports the dynamic evolution of collective object behavior in the presence of simultaneous client-specific. views. In accordance with the separation of concerns and locality principles, client-specific customizaion. of collective object behavior is organized as layers-of mixin-like wrappers., Each layer of wrappers incrementally adds behavior and state to a group of core objects without modifying their respective implementations. Hence, collective object behavior can evolve in an additive and non-invasive way. The extension that we propose provides language constructs for defining, encapsulating and selecting behavioral refinements, and runtime support for. transparently integrating them on demand.