OPERATION-BASED SEMANTICS FOR ENTERPRISE MODELS Roger Burkhart Deere & Company John Deere Road Moline, IL 61265 (309) 765-4365 roger@ci.deere.com International Conference On Enterprise Integration Modeling Technology (ICEIMT) Workshop I: Model Integration February 17-21, 1992 ABSTRACT (early draft overview of an eventual paper) This paper will sketch the outlines of a comprehensive architecture being developed to support enterprise modeling, model execution, and model integration. This architecture is in the planning and design stage for eventual implementation at John Deere, but it also seeks to utilize a wide range of current or potential standards and to define migration across them. The most pressing internal requirement is the need to integrate existing, legacy systems both with each other and with newly developed systems. Standards-based systems will typically be handled in much the same way as legacy systems. All the components of the architecture will also likely be submitted for consideration within future standards. The technical approach to integration is to adopt a global model that defines only a small set of external interactions for each application system or subsystem. Each application is responsible for implementing these external interactions as a wrapper around its existing implementation, and must translate its internal data or processing to the conventions established by the global model. The external interactions are modeled as service requests provided through message input/output operations. The global model establishes the root of a universal name space for all messages that applications use to interact with each other, but this name space may be subdivided as necessary to establish local messages meaningful to smaller clusters of applications. This approach essentially defines each application system as a coarse-grained object whose meaning to the rest of the enterprise is the set of external message-based operations to which it responds. In general, applications run asynchronously and may process incoming and outgoing messages over periods running from near-immediate to days or longer. A single application may encapsulate an entire complex of existing programs or databases along with hardware resources on which they run. The modeling approach is designed to make the critical functions of existing systems available for use externally, while avoiding as long as possible the need to analyze, model, or re-engineer their internals. Often, an entirely new implementation is planned to replace an old system. The modeling of just the external interactions of an application system substantially reduces the bulk of models present at the global level. The software engineering principles of modularity and information hiding are critical to manage development and evolution of the many complex abstractions invented to support various enterprise functions. The interactions across a module boundary, however, also serve as a convenient means by which to capture and define precisely that portion of the semantics of an application which has global signficance. This principle can be applied to application objects of any granularity or implementation role. This principle bases the global modeling framework on the key object-oriented idea of defining any object or object representation by the complete set of external operations in which it participates. Because of the coarse grain and asynchronous processing of enterprise application objects, a considerably enhanced and generalized object model is required. Enterprise application objects are defined as independent processes or threads of control, not just packages of hidden static data as with conventional objects. The current state of an enterprise process is defined by its entire past history of external interactions or internal simulation events. All external requests as well as internal operations may optionally be retained as explicit event records. Regardless of whether they are created at runtime, the event traces serve as a formal basis for specifying internal or external operations whose invocations they represent. An entire apparatus for object specification is being developed based on the event trace foundation. The behavioral characterization of enterprise models appears to have the same expressive power as general forms of logic. In fact, a useful interpretation of predicate logic formulas is as programs that operate on the event traces comprising an enterprise model history. Such a program yields a truth value that is required to hold over any possible history. When given an suitable explicit representation, a single structure can do double duty as both a declarative logic formula and as an executable procedure operating directly on an event trace. The universe of discourse for this new logical system is not the objects that belong to an external world, but the record of interactions of the model with its environment. These interactions, given explicit representational form, contain the only manifestations of external objects that can be referenced directly from within a model construction system. The utility of this model definition approach is that all logic specifications become in principle directly executable, using explicit representations of events and event traces that can be built at run time. In practice, this would usually be far too slow, and virtually all the logic specifications would be interpreted at compile time and used to generate custom implementations guaranteed to satisfy the specification predicates. (Typically this requires manual coding.) Regardless of whether they are directly executed, the availability of such a model gives a very precise and mechanically understandable semantics for all predicates and operation specifications. At sufficiently coarse-grained levels, the model definitions can often be interpreted so literally as to serve directly as a default implementation. An explicit event trace can be turned on whenever required to serve such needs as historical traceability, debugging or profiling, or to trigger other processes in an enclosing context.