Ralph E. Johnson & Joseph W. YoderUniversity of Illinois at Urbana-Champaign • Department of Computer Science
The volatile nature of contemporary business requirements forces developers 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. Multi-tiered systems often demand that data that the 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, meta-data, good object-oriented design, and flexible implementation of business rules to address these sorts of needs.
At OOPSLA'97 more than half of the demos had an explicit representation 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 ActiveObjectModel.
A system with an ActiveObjectModel 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 ActiveObjectModel. Objects have states and respond to events by changing state. The ActiveObjectModel 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 ActiveObjectModel that makes it easy to evolve the way a company does their business.
We will look at three systems that make business rules explicit. The Hartford Insurance Company has an ActiveObjectModel for representing insurance policies. ClearSystems uses these ideas in a telephone billing system making it so that it is not only easy to map to the needs of a new telephone customer, it is also easy to change the business rules as new types of telephone services become available etc. The Belgium school system uses meta-data ideas to create dynamic objects and rules associated with the attributes of the objects, making it so that a new system can be quickly created and changed to the end-users needs.
There appears to be some commonalties between these systems and it should prove worthwhile to do some pattern mining of these systems finding out what does and what doesn’t work. These systems make business rules explicit thus making their respective systems very dynamic and configurable. They can all change their behavior with very little coding. We believe a lot can be learned by studying these systems. 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 active object system patterns, and help establish a shared vocabulary. A followup to this worksho will be at an OOPSLA '98 MetaData Workshop.