CDM Technical Report: CDM-18-04, December 29, 2004, pages 1-208.
This report provides a technical description of the Integrated Cooperative Decision-Making (ICDM) software toolkit for the development of intelligent decision-support applications. An overview of the transformational forces that have precipitated the need for a development toolkit capable of supporting a distributed, information-centric software environment, and the objectives of ICDM are contained in a companion CDM Technical Report (CDM-16-04) entitled: “The ICDM Development Toolkit: Purpose and Overview”.
ICDM is an application development framework and toolkit for distributed decision-support systems incorporating software agents that collaborate with each other and human users to monitor changes (i.e., events) in the state of problem situations, generate and evaluate alternative plans, and alert human users to immediate and developing resource shortages, failures, threats, and similar adverse conditions. A core component of any ICDM-based application is a virtual representation of the real world problem (i.e., decision-making) domain. This virtual representation takes the form of an internal information model, commonly referred to as an ontology. By providing context (i.e., data plus relationships) the ontology is able to support the automated reasoning capabilities of rule-based software agents.
Principal objectives that are realized to varying degrees by the ICDM Toolkit include: support of an ontology-based, distributed, information-centric system environment that limits internal communications to changes in information; ability to automatically “push” changes in information to clients, based on individual subscription profiles that are changeable during execution; ability of clients to generate information queries in addition to their standing subscription-based requests; automatic management of object relationships (i.e., associations) during the creation, deletion and editing of objects; and, the ability to interface with external data sources through translators and ontological facades.
Most importantly, the ICDM Toolkit is designed to support the machine generation of significant portions of both the server and client side code of an application. This is largely accomplished with tools that automatically build an application engine by integrating Toolkit components with the ontological properties derived from the internal information model. In this respect, an ICDM-based application consists of loosely coupled, generic services (e.g., subscription, query, persistence, agent engine), which in combination with the internal domain-specific information model are capable of satisfying the functional requirements of the application field.
An ICDM-based software development process offers at least four distinct advantages over current data-centric software development practices. First, it provides a convenient structured transition to information-centric software applications and systems in which computer-based agents with reasoning capabilities assist human users to accelerate the tempo and increase the accuracy of decision-making activities. Second, ICDM allows software developers to automatically generate a significant portion of the code, leaving essentially only the domain-specific user-interface functions and individual agents to be designed and coded manually. Third, ICDM disciplines the software development process by shifting the focus from implementation to design, and by structuring the process into clearly defined stages. Each of these stages produces a set of verifiable artifacts, including a well defined and comprehensive documentation trail. Finally, ICDM provides a development platform for achieving interoperability by formalizing a common language and compatible representation across multiple applications within a distributed environment.