ABSTRACT

Software architectures, as described in Mary Shaw's chapter, are structures that allow collections of software systems to invoke and understand each other. By definition, architectural-level control and communication mechanisms do not change over the life of the system. Yet Chapter 7 also notes that heterogeneity and evolution of software systems combine to work against any fixed mechanisms, and ultimately the integrating structure will have to adapt to accommodate the systems being integrated. Adaptation is necessary because some particular bit of knowledge, whether about the component systems or about the context of use of the total system, is just not available when the integrating structure is being created. This commentary explores the possibility that an artificial intelligent agent can mediate between the system users and the system components by searching for that missing knowledge at the time of system integration (which may even be at the time of running the components). Wiederhold used the term mediation to describe agents that aid in the use of heterogeneous databases, but the concept generalizes far beyond databases. It seems likely that intelligent mediators for software might enter routine use in the near future. Soar, with its capabilities for knowledge acquisition and integration, has been used as the basis for several implemented prototypes of intelligent mediators, and we briefly mention three here: Soar/IBDE, which uses several software systems to perform different aspects of a task; MDB-Soar, which uses multiple systems in the same functional way as needed to perform a task; and Soar/Mathematica, which uses a single system for a variety of functions within a task.