In this talk I will describe the two major uses for agents that are emerging in the development of information systems. The first use for agents is as the glue in the assembly of large enterprise-wide information systems out of relatively large preexisting components. The components are typically diverse and autonomous, and might be considered legacy systems. The second use for agents is as the fundamental building blocks in the construction of new information systems. In this use, agents enable radically new architectures and development methodologies, leading to dramatic improvements in robustness and capability for the resultant systems. This is a revolutionary advance.
The development methodology has been termed team-oriented programming
or interaction-oriented programming. Its success depends on being able
to express the goals and intentions of agent-based components, and to provide
mechanisms through which cooperation, negotiation, and semantic reconciliation
can occur. I will provide examples of domains where such architectures
and methodologies appear promising.