When the U.S. military faces a crisis, manpower and time are our most precious resources. Unfortunately, the software we employ during a crisis doesn't always make the best use of our people or support a timely response. The commercial office automation products we use support editing and presentation of information, but their direct-manipulation interfaces require specification of all the details. Internet sources provide access to a huge amount of unfiltered data in different formats; and getting information from these sources still requires a lot of manual work.
Our current focus on client/server information systems is an attempt to buy time by providing quick access to information we use for decision making. However, our experience in software procurement suggests that building large distributed information systems is both risky and expensive, even when using OO technology and standard interface protocols. One problem not addressed by these best practices is that developers still depend on the closed-world assumption that the builder of each software component knows all the relevant interfaces. As the complexity of applications increases, the number of interfaces also rises. At some point, the assumption fails.
Another related problem is that developers hard-code interfaces as if they will never change. In reality, components, middleware, operating systems, and hardware are all periodically upgraded, so services change and new functions are required. These two problems combine to make frequent maintenance necessary for all current applications. Furthermore, dependence on the closed-world assumption has serious consequences on the complexity of problems that current software practice can address.
Software agent technology is poised to solve these problems. Agents will soon revolutionize UI by interpreting user requests and automating manual processes. Agents will allow users to delegate simple tasks. Users will have time to solve complex, abstract problems, while agents use their knowledge of user preferences, standard domain defaults, and networked information sources to make simple decisions and even take action on behalf of the user. As agent technology matures and agent applications become more common, developers will want to integrate multiple applications so that different systems collaborate synergistically.
Integrating many complex applications is a very challenging problem that many developers hope will be assisted by software. One way agents might do this is to use their knowledge to dynamically negotiate software interfaces, enabling agents to self-organize, forming super-applications at run time. These new super-applications will have simpler UIs, better problem-solving abilities, and more flexible composability than anything we have today. Super-applications will embody a new generation of scalable, cost-effective software technology.
It is clear to me our current GUIs are beginning to limit the complexity of applications as well as our level of interactions with these applications. There are just too many new functions we would like to have and the screen real estate isn't growing at the same pace. It also seems clear that users desire automation for many tasks. Moreover, software developers are still seeking methods to reduce the cost of building large applications, despite the advantages of OO technologies.
However, the autonomy and partial knowledge that makes agents useful for addressing these problems can also cause problems. Agents can misinterpret user requests, make poor decisions, or interact with other agents in destructive ways. In the extreme, agents might run out of control, consuming resources such as CPU cycles, memory, and network bandwidth. If any of these problems occur with regularity, users happy with the control over their current computing environment will reject agents out of hand. By the same token, these problems will invalidate any advantage for system developments. Without effective control strategies, agent systems will not be adopted and progress is unlikely.
Many people are interested in or actively developing agent applications. At DARPA, we are leveraging these investments by funding a project that will supply control strategies for multiagent systems. Not only will these strategies ensure the availability of system resources and system integrity, they will enable heterogeneous agent systems to collaborate, even when not hard-coded to do so. If we are successful, we will enable a drastic paradigm shift in software technology toward automation and cost-effective, powerful applications.
©1999 ACM 0002-0782/99/0300 $5.00
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, to republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
The Digital Library is published by the Association for Computing Machinery. Copyright © 1999 ACM, Inc.
No entries found