At OOPSLA'97, it seemed as if half of the demonstrations were of real-world systems that used explicit representations of their object model that they would interpret. Each system used a different name for this idea, often including "meta" as part of the name. But the name that seemed the clearest was "Dynamic Object-Model".
A system with an dynamic object-model has an explicit object model that it interprets at run-time. If you change the object model, the system changes its behavior. For example, a lot of workflow systems have an dynamic object-model. Objects have states and respond to events by changing state. The dynamic object-model 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 dynamic object model that makes it easy to evolve the way a company does their business.
Researchers working with reflection and meta-level architectures have been looking at how to make systems highly configurable for quite some time as well. We hope to encourage such researchers to compare notes with practitioners who have been building highly configurable systems in industry.
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 meta-data and dynamic object-system patterns, and help establish a shared vocabulary.