Adaptive Object-Models Joseph W. Yoder Reza RAZAVI University of Illinois The Refactory, Inc joeyoder@joeyoder.com University of Paris 6 LIP6 - OASIS team razavi@acm.org Workshop Description: The unrelenting pace of change that confronts contemporary software developers compels them to make their applications more configurable, flexible, and adaptable. The era where business rules are buried in Cobol code is coming to an end. Today, users themselves may seek to dynamically change their business rules. Customers require systems that more easily adapt to changing business needs, meet their unique requirements, and scale to large and small installations. On the other hand, the same technique is adequate for the slightly different purpose of producing a whole line of software products : of course, a line of products may be obtained by variously instantiating an abstract model, but also by adapting a given initial system to various requirements that appear simultaneously instead of evolving in time. Moreover, the diversification of a successful product may be also seen as a form of re-engineering. A possible way to meet such requirements is to use an Active Object-Model, where the object representation of the domain under study has itself an explicit object model (albeit partial) that is interpreted at run-time. Objects have states and respond to events by changing state. The active object-model defines the objects, their states, the events, and the conditions under which an object changes state. If you change the object model, the system changes its behavior. For example, such a feature makes it easy to integrate a workflow mechanism, which proves useful in many systems. Also, business rules can be stored in an active object model that makes it easy to evolve the way a company does their business. Our goal is to document the techniques and principles that make these systems work. We hope to "mine" these systems and produce a preliminary collection of metadata and active object-system patterns, and help establish a shared vocabulary. Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Workshop Requirements: Workshops at OOPSLA '98 and '99 were devoted to "pattern mining". Following requests from a large number of '99 participants, this workshop was oriented toward a broader analysis of the possible uses of the Active Object-Model technology, based on the examination of a range of examples. Thus, we are specially looking for position papers describing experience in developing systems that actually display, or might have benefited from, an Active Object-Model. Other domains of interest are the followings topics : 1.Building a common vocabulary (terminology, definitions, ...) E.g. Typical AI terminology (ontologies, ...) vs. software engineering terminology 2.Models and languages for "Metadata and Active Object-Models", including current standardization efforts and expressive (even ambiguous) type languages, .... 3.Do particular programming language constructs (e.g. Smalltalk's blocks or reflective features) facilitate the implementation of specific types of active object-models? 4.Implementation / Design concepts and classification according to semantics and relevance. more… Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Workshop Requirements: (continued) More domains of interest are the followings topics : 5.Appropriate development process models for cultivating active object-models (analysis patterns, design patterns, ...), and the impact of active object-models on development process models (iterative, incremental, testing, ...).Cf. [1] & [2] 6.How do requirements such as heterogeneous, distributed environments, smart software and agents, and user empowerment drive the evolution of active object-models? How can we overcome resistance to building active object-models from programmers and managers? 7.How do get active object-models to exhibit acceptable performance? Can we borrow from traditional disciplines, e.g. caching, Just-In-Time compilation, heuristics, statistics, stereotypical vs. customized interfaces, and tools? 8.How do measure such aspects of active object-models as stability, class library complexity and related metrics, learning curve, cost (development of the 'framework', building the applications, change, maintenance), and performance? 9.Dealing with views continues to be a challenge, can we use active object-models to solve some of these problems? For instance, some models replace a hard-wired view on classification of objects by a dynamic view based on observational equivalence of object behavior. This view takes into account dynamic properties of the parties involved in a contract. If active object-models are any help, which qualities must they possess? 10.Most Active Object-Model implementations focus on one or two isolated aspects, e.g. object model, business rules, mapping objects onto a database. Other aspects are typically left to more traditional approaches. Hence, they often tend to interfere in ad-hoc and hard-wired ways. For instance, it is often hard to design good, pro-active user interface code that is cleanly separated from the business rules without introducing redundancy of one sort or another. Can we use weaver-like approaches in combination with active object-models to achieve more global-wide, yet dynamic reflection? [1] Don Roberts, Ralph Johnson. Evolving Frameworks, A Pattern Language for Developing Object-Oriented Frameworks, http://st-www.cs.uiuc.edu/users/droberts/evolve.html. [2] Brian Foote, Joseph Yoder. Metadata and Active Object-Models. PLOP'98 conference, Monticello, Illinois. 1998, http://www.joeyoder.com/Research/metadata/OOPSLA98MetaDataWkshop.html. Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Hot topics in Adaptive Object-Modeling (1) Experiences in developing systems, which have been developed with, or might have benefited from, an Adaptive Object-Model. Building a common vocabulary (terminology, definitions, etc,); e.g. Typical AI terminology (ontologies) vs. software engineering terminology Models and languages for Metadata and AOMs, including current standardization efforts and expressive (even ambiguous) type languages,.... Comparative works with similar approaches like Metamodeling and Reflection. Specific implementation techniques for Adaptive Object-Models. Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Hot topics in Adaptive Object-Modeling (2) Appropriate development process models for cultivating Adaptive Object-Models (analysis patterns, design patterns, ...), and the impact of AOMs on development process models (iterative, incremental, testing, ...). Most Adaptive Object-Model implementations focus on one or two isolated aspects, e.g. object model, business rules, mapping objects onto a database. Other aspects are typically left to more traditional approaches. Hence, they often tend to interfere in ad-hoc and hard-wired ways. For instance, it is often hard to design good, pro-active user interface code that is cleanly separated from the business rules without introducing redundancy of one sort or another. Can we use weaver-like approaches in combination with Adaptive Object-Models to achieve more global-wide, yet dynamic reflection? Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Hot topics in Adaptive Object-Modeling (3) Dealing with views continues to be a challenge; can we use Adaptive Object-Models to solve some of these problems? For instance, some models replace a hard-wired view on classification of objects by a dynamic view based on observational equivalence of object behavior. This view takes into account dynamic properties of the parties involved in a contract. If Adaptive Object-Models are any help, which qualities must they possess? Design concepts and classification according to semantics and relevance. Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Hot topics in Adaptive Object-Modeling (4) How do requirements such as heterogeneous, distributed environments, smart software and agents, and user empowerment drive the evolution of Adaptive Object-Models? How can we overcome resistance to building Adaptive Object-Models from programmers and managers? How do get Adaptive Object-Models to exhibit acceptable performance? Can we borrow from traditional disciplines, e.g. caching, Just-In-Time compilation, heuristics, statistics, stereotypical vs. customized interfaces, and tools? How do measure such aspects of Adaptive Object-Models as stability, class library complexity and related metrics, learning curve, cost (development of the 'framework', building the applications, change, maintenance), and performance? Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. What is meant by Metadata? MetaData can be described by saying that if something is going to vary in a predictable way, store the description of the variation in a database so that it is easy to change. In other words, if something is going to change a lot, make it easy to change. The problem is that it can be hard to figure out what changes, and even if you know what changes then it can be hard to figure out how to describe the change in your database. Code is powerful, and it can be hard to make your data as powerful as your code without making it as complicated as your code. But when you are able to figure out how to do it right, metadata can be incredibly powerful, and can decrease your maintenance burden by an order of magnitude, or two. [R. Johnson] Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Metadata and “Adaptable” Active Object-Models "Anything you can do, I can do Meta" Metadata: If something is going to vary in a predictable way, store the description of the variation in a database so that it is easy to change….Ralph Johnson ”Meta is Beta" Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Active “Adaptable” ObjectModel (Dynamic Object-Model) An ACTIVE OBJECT-MODEL is an object model that provides “meta” information about the domain so that it can be changed at runtime explicit object model that it interprets at run-time change the object model, system changes its behavior ACTIVE OBJECT-MODELS usually arise as domainspecific frameworks Business rules can be stored in ACTIVE OBJECTMODELS Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Active “Adaptable” ObjectModel (Dynamic Object-Model) Type-Object Properties Strategy / Interpreter Schema / Descriptor Smart Variables Builders / Editors Brian Foote: www.laputan.org Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Adaptive Object-Model (Dynamic Object-Model) When to Build AOMs Need for flexibility High pace of business change Need for experimentation Need to empower user Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Type-Object Before After SomeClass Entity -specificAttribues : type +someOperations() 0..n SubClass1 SubClass2 ... SubClassN EntityType -sharedAttributes : type +typeOperations() PLoPD3 - Johnson and Woolf Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Properties Before After Property Entity Entity -firstAttribute : String = Any 0..n attributes -name : String = firstAttribute -type : String = String -value : String = Any PLoP98 - Foote and Yoder Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Strategies Strategy1 SomeStrategy Entity -sharedAttributes : someType +sharedInterface() -specificAttribues : type +someOperations() Strategy2 Strategy2.1 ... StragegyN Strategy2.2 Design Patterns - GOF95 Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Active Object-Model (Very Common Structure) Entity 0..n type EntityType rule Rule 0..n 0..n properties properties 0..n PropertyType Property 0..n type PrimRule -name : String -type : Type Type Square Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. CompositeRule Adaptive Object-Model (Advantages) Can more easily adapt to new business requirements Smaller in terms of classes so possibly easier to maintain by experts Time to market can be reduced More closely Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Adaptive Object-Model (Disadvantages) Can be hard to understand and maintain Can have higher start up costs Can have poor performance Requires support tools Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Dimensions of Abstractions L3 A language for defining languages L2 A language for defining domain specific software L1 A specific software L0 An execution of that software Dimensions of abstraction in Adaptive Object-Models, Reflection and Adaptive Object-Models -- Joe Yoder &Architecture Reza Razavi OMG ’s metamodeling session, OOPSLA’2000 – October 2000, Minneapolis, USA. Copyright by ECOOP’ 2000 workshop Poster on Adaptive Object-Model. --- http://www.joeyoder.com/Research/metadata/ECOOP2000/description.html Reifying Collaborations within programs By D. Manolescu & R. Johnson at UIUC Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. The Core of Micro-Workflow By D. Manolescu & R. Johnson at UIUC Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Dynamic Structures Referenced by Process Definitions intervalProc := PrimitiveCallSpec sends: #computeInterval: with: ‘Nominal Diameter’ to: #currentGauge result: #interval. nominalDistanceProc := PrimitiveCallSpec sends: #givenValue: with: ‘Nominal Diameter / 2’ to: Distance result: #nominalDistance. ^ intervalProc, nominalDistanceProc Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Architectural Style for Adaptive and Flow-Independent Software Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. References Brian Foote and Joseph Yoder. “Metadata and Active Object-Models,” Collected papers from the PLoP '98 and EuroPLoP '98 Conference, Technical Report #wucs98-25, Dept. of Computer Science, Washington University, Sept 1998. Don Roberts and Ralph Johnson. “Evolving Frameworks: A Pattern Language for Developing Object-Oriented Frameworks,” Pattern Languages of Program Design 3, Robert Martin, Dirk Riehle, and Frank Buschmann, eds., Addison-Wesley, Reading, MA., 1997. Dragos A. Manolescu and Ralph E. Johnson. Dynamic Object Model and Adaptive Workflow. Metadata and Active Object-Model Pattern Mining Workshop. OOPSLA'99, Denver, USA. http://www.uiuc.edu/ph/www/manolesc/Workflow. John Poole - The Common Warehouse Metamodel as a Foundation for Active Object Models in the Data Warehouse Environment. Position paper to ECOOP‘2000 workshop on Metadata and Active Object-Model Pattern Mining. June 2000, Cannes, France. Ralph Johnson and Jeff Oaks. “The User-Defined Product Framework,” URL: http://st-www.cs.uiuc.edu/users/johnson/papers/udp/ Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. References Reza Razavi - Coupling The Core of Active Object-Models and Micro Workflow -- Foundations of a Framework for Developing End User Programming Environments. Position paper to ECOOP‘2000 workshop on Metadata and Active Object-Model Pattern Mining - Cannes, France. Reza Razavi. “Active Object-Models et Lignes de Produits”. OCM’2000. Nantes, France. May 2000. http://www-poleia.lip6.fr/~razavi/ocm2000. Joseph W. Yoder, Brian Foote, Dirk Riehle, and Michel Tilman Metadata and Active Object-Models Workshop Results Submission; OOPSLA Addendum, 1998. Joseph W. Yoder, Federico Balaguer , Ralph Johnson --- From Analysis to Design of the Observation Pattern. Metadata and Active Object-Model Pattern Mining Workshop. OOPSLA'99, Denver, USA. URL: www.joeyoder.com/Research/metadata/OOPSLA99 Joseph Yoder and Reza Razavi. “Metadata and Active Object-Models Workshops” Collected papers from the ECOOP2000. www.joeyoder.com/Research/metadata/ECOOP2000 Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. References Francis Anderson and Ralph Johnson. The Objectiva telephone billing system. MetaData Pattern Mining Workshop, Urbana, IL, May 1998. Available on the Web at http://www.joeyoder.com/Research/metadata/UoI98MetadataWkshop.html. Holger Blasum, Thorsten Weigl - Content management transactions -applicability of a dynamic object model. Position paper to ECOOP‘2000 workshop on Metadata and Active Object-Model Pattern Mining - Cannes, France. Martine Devos and Michel Tilman. A repository-based framework for evolutionary software devel-opment. MetaData Pattern Mining Workshop, Urbana, IL, 1998. P. Brooks, Z. Kovacs, J-M Le Goff, R. McClatchey, T. Solomonides & N. Toth. Ontologies, Patterns and Description-Driven Systems. Position paper to ECOOP‘2000 workshop on Metadata and Active Object-Model Pattern Mining Cannes, France. Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA. Workshop Participants Y. Shaham-Gafni gafni@il.ibm.com J. Bézivin jean.bezivin@sciences.univ-nantes.fr H. Blasum blasum@muc.de V. Couturier vincent.couturier-9333783@netserver.univ-lyon3.fr N. Parlavantzas arlavantzas@lancaster.ac.uk J. Poole John_Poole@hyperion.com R. Razavi Reza.Razavi@lip6.fr N. Revault Nicolas.Revault@lip6.fr G. Rozsavolgyi Gerard.Rozsavolgyi@lip6.fr N. Toth Norbert.Toth@cern.ch J. Yoder joeyoder@joeyoder.com Adaptive Object-Models -- Joe Yoder & Reza Razavi Poster session, OOPSLA’2000 – October 2000, Minneapolis, USA.