Wednesday, May 12, 2004

Ensembles: A "New" Way to Build a Component Architecture

At a meeting of the Microsoft Business Framework Advisory Council in Redmond last week, I was reminded once again that there is a lack of good component models in object design tools. The best one I have seen was created by the first software Scrum at Easel Corporation in 1993. There was a reasonable implementation of this in the Object Studio Smalltalk environment (now owned by Cincom) and in a testing product by Jeff McKenna. Other than that, elegant component design implementations are nowhere to be found.

A Zen Master was asked by a student if he should go study under a teacher who claimed to be enlightened. The Zen Master, a collector of rare wooden buddhas, paused and then exclaimed, "There are enlightened teachers everywhere ... but a good wooden buddha is hard to find."

There are patterns and object models everywhere, but a good component model is harder to find than a good wooden buddha!

Object Management Group, Business Object Domain Task Force

Ensembles: A Component Design Pattern for Business Objects

June 4-6, 1995, San Jose, CA
Doc No: OMG TC Document CF/96-01-04
Doc. Date: 25 Jun 1995 - updated 1997, 2004 by request


Successful companies generate continuous innovation through knowledge generation using a Scrum product development process documented by Nonaka and Takeuchi in The Knowledge Creating Company: How Japanese Companies Create the Dynamics of Innovation. The SCRUM development process, an advanced software application development environment, surfaced the need for seamless integration of business process reengineering with radical innovations in the software development process.

The primary benefits of object technology are based on reusability of plug compatible components. Class libraries have had limited success in providing for reuse because the cost of finding classes, reading code, and understanding the logic often costs more than writing new classes from scratch. Furthermore, frameworks created from current class libraries usually cannot be upgraded after installation without bringing down the application because the notion of a component is not well defined and plug compatibility is not possible.

Business reengineering leads to specification of business processes which are best implemented as reusable, large-grained objects. These objects are dynamic, encapsulated, instance-based components that are orthogonal to the object system class hierarchy. The concept of an ensemble which has appeared infrequently in the computer science literature will be explained and a specific implementation, the S&M ensemble will be described. S&M ensembles are designed to be scalable, nested, and plug compatible components that can be physically generated as OLE/COM or Javabeans objects.

This work has stimulated the OMG Business Object Domain Task Force to develop an RFP for an infrastructure for business objects systems that spans application-specific domains. Standardization of a component-based infrastructure is a critical first step towards building reusable, interoperable, business object frameworks that are the future of corporate application development. Business process reengineering demands radical rengineering of our approach to software development and making plug-compatible, reusable, business object components a reality.

The OMG presentation on S&M Ensembles, a design pattern for rigorous component specification, has been updated for the Web and appeared as the lead article in SunExpert, January 1997, and WebApps, May/June 1997. It was published as part of a CRC Press Handbook on Object Technology as Business Objects and the Evolution of the Internet. For a draft of the original ensemble specification created by the first software Scrum see:

Sutherland, J. and McKenna, J. (1993) Ensembles. Easel Corporation.