|Abstract This paper describes how the concepts
described at OOPSLA ‘97 (Business Object Management Architecture) have
been extended and refined using ideas drawn from complex adaptive systems.
The paper proposes that traditional hierarchical enterprises that rely
on command and control based on central authority will be replaced by networks
of organizations that coordinate their work through contracts. Software
components to support such organizations are illustrated using UML.
Keywords Complexity, contract, organization, supply chain, value network
The fundamental concepts required to model an enterprise are entity, process, purpose, and organization. An entity is a thing used or created by a process, and is modeled by the roles that it can play with respect to those processes. A process is a course of action which affects one or more entities, and a process step is the atom of a process that can change the state of an entity. Closely related processes and entities are grouped into a community, or organization unit, having a specific purpose. A unit may be independent, or may be combined with others to form a larger unit, known a group. An autonomous unit is independent, but may be subject to the authority of another unit, and to the rule of laws, conventions, norms and contracts. A unit typically does not exist in isolation, but belongs to a broader federation.
Organization units cooperate to form chains and networks by which to deliver value. This example illustrates the flow of material, funds and information in a supply chain from design through procurement, to manufacturing, distribution and sales units. Collaboration between these units differs from that within a unit because there is no central authority to devise and enforce policy. Political, cultural, language and technological barriers between units are overcome through standards, codes of practice, contracts and law. Shared protocols and vocabularies are required to conduct meaningful business within such a federation.
Shared purpose is the means to coordinate units, which are otherwise autonomous, by providing the motivation to govern their interaction. By extending the concept of purpose beyond the narrow domain of a single unit, contracts are the glue by which distributed business is done. A contract states the rights and obligations of the units, or parties, each clause specifying the course of action appertaining to a particular state of affairs. A clause authorizes one party to incur an obligation on another party, and specifies the action required to fulfil the obligation. Actions required when an obligation is canceled or violated are also specified in order to cater for exceptional situations. The contract UML diagram shows the elements of such an agreement, illustrating how clauses can be structured for implementation in software. XML is particularly well suited to this kind of structured document.
The primary elements of an enterprise model that supports contracts are organization units, which contract with others to define both purpose and the processes by which it is to be achieved. A unit incurs obligations on others by communicating requests in terms of the contracts, or through the authority that is has over them. It fulfills its obligations by instantiating appropriate business processes, and by allocating entities according to their roles and availability, to each instance. An organization unit therefore has four main management responsibilities.
A contract manager maintains contracts and agreements to incur obligations on other units, and to respond to directives received from them. When due, an obligation initiates the process by which it is to be fulfilled. Process steps are scheduled for execution by actors having the appropriate roles, and the artifact manager manually or automatically selects the entities that they affect. The message manager transmits, receives, interprets and monitors communication with other units. This design is reminiscent of that of an intelligent agent, to which an organization unit is in many ways related. It differs primarily in that it has human actors in addition to its automated role.
Author Chris Marshall is a director of a number of software companies that have been active and successful for many years in delivering mission critical, enterprise wide information systems using object technology. He has been responsible for managing the development of large scale manufacturing, engineering and accounting systems in C for UNIX, and more recently in Java, for companies throughout Southern Africa. He was previously a general manager of a number of divisions of the largest manufacturing company in South Africa, and before that developed power systems software and managed projects on the Zambezi. He has an MBA from the University of Cape Town, and MA Mechanical Sciences from Cambridge in England.