Metadata and Adaptive Object-Model
Pattern Mining Workshop

Smalltalk Solutions 2001

Monday, April 9, 2001



Brian Foote (The Refactory, Inc.)
Joseph W. Yoder (The Refactory, Inc.)


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 and products.  Customers want systems that more easily adapt to changing business needs, meet their unique requirements, and scale to large and small installations.  Multi-tiered systems often demand that data that move through them carry with them their own descriptions.  There have been a number of successful frameworks and applications implemented and delivered in different areas of industry that use domain specific languages, metadata, and flexible business rule implementations to address these sorts of needs.


Today’s businesses prefer to buy applications than to build them.  As a consequence, the IT environment of large corporations is filled with a wild and vast collection of different off-the-shelf products as well as homegrown applications that all need to be integrated.  Metadata-driven application and business model integration can play a major role in allowing these systems to evolve smoothly.


A system with an Adaptive Object-model has an explicit object model that is itself built out of objects.  These objects (or a translated version of them) are, in turn, interpreted or executed at run-time.  If you change the object model, the system changes its behavior.  For example, a lot of workflow systems have an Adaptive Object-model.  Objects have states and respond to events by changing state.  The Adaptive Object-model (a.k.a. knowledge level) defines the objects, their states, the events, and the conditions under which an object changes state. Suitably privileged people can change this object model "without programming".  Or are they programming after all?  Business rules can be stored in an Adaptive Object model.  This makes it easy for the way a company does their business to evolve.


Researchers working with reflection and meta-level architectures have been looking at how to make systems highly configurable for quite some.  We hope to encourage such researchers to compare notes with practitioners who have been building highly configurable systems in industry. 


Indeed, Smalltalk’s rich reflective facilities have helped to make Smalltalk fertile ground in which some of the earliest and best examples of such systems have germinated and flourished.


The goal of our workshop will be to document the techniques and principles that make these systems work. We hope to "mine" these systems and continue to cultivate a preliminary collection of metadata and Adaptive Object-system patterns, and help establish and refine a shared vocabulary.


We are looking for position papers discussing the following 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 Adaptive Object-Models", including current standardization efforts and expressive (even ambiguous) type languages
  3. The programming language constructs in Smalltalk that facilitate the implementation of specific types of Adaptive Object-models
  4. Implementation / Design concepts and classification according to semantics and relevance.
  5. Appropriate development process models for cultivating Adaptive Object-models (analysis patterns, design patterns), and the impact of Adaptive Object-models on development process models (iterative, incremental, testing).
  6. 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?
  7. How to 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?
  8. 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?
  9. Most Adaptive Object-Model implementations focus on one or two isolated aspects, e.g. the object model, business rules, or mapping objects onto a database.  Other aspects are typically handled using 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?

Summary of Findings:


Relevant Links:

·         University of Illinois '98 MetaData Workshop

·         OOPSLA'98 Metadata Workshop Home Page

·         Joe's MetaData Pages

·         Brian’s Pattern and Reflection Pages

·         OOPSLA ’99 Metadata Workshop

·         ECOOP 2000 Metadata Workshop


Brian Foote Joseph Yoder

Last modified: Thursday, February 22, 2001