The new ABC: Agent Based Computation
Agent-Based Computation (ABC) is likely to be the next significant breakthrough in software development, after object-oriented programming, in the mid- to late-1990s. Why should this be so ?
The computer industry has a need for series of continuous revolutions, "techno-fashions", to retain the customer interest, to provide a way of differentiating a product in the market, and to give meaning to steady, unrevolutionary progress. People find it difficult to get excited about steady progress and much prefer to be part of dramatic developments: discoveries, breakthroughs and revolutions.
The last 30 years has seen collections of software techniques bundled together, given a catchy name, and thrust onto the industry. This was true of structured programming, analysis methodologies, software engineering, artificial intelligence, expert systems, semantic data modelling, open-systems and object-oriented everything. Of the breakthroughs and fads, only relational databases have a unitary, well-defined core, the others have always made money for thousands out of training courses and consultancy on "What is structured programming ?", or "How to define expert system technology".
Given this fundamental character of the industry it is natural to ask what the next great revolution will be, and Agent-Based Computation is not merely timely and necessary, it also has a memorable acronym (ABC).
ABC builds on object-orientation except that where objects have independent existence only within a program, agents are independent programs and have existence within a computer network. Effective agents can only be written by programmers who have learned the lessons of information encapsulation and behaviour delegation from object-oriented programming. They rely on stable multi-tasking operating systems with consistent communications interfaces, such as OS/2, Windows 3, Unix, and the Macintosh operating system.
With object-oriented programs there is a limit to software re-use because objects are not independent, they are embedded in their original class-hierarchy which determines their behaviour (objects delegate some aspects of default behaviour to their ancestors). You don't just get the banana, you get "the whole gorilla".
Why should people need or want to write agent-based systems ? The answer is that some types of problem are too big for the organisations which would like to write them; and where there is no chance that a joint effort would succeed. The successes of collaborative software projects such as X-windows or the Open Software Foundation's version of Unix are exceptional, not usual.
What is needed is a way for many individuals to collaborate by writing software components which can contribute to an evolving population of programs which can be used to solve a range of similar problems. The overhead of organising a collaboration rises as the square of the number of participants. So above a certain number of people involved, the non-communicating collaboration is more efficient. The analogy of the failure of central command-economies in Eastern Europe compared with the decentralised, constructively chaotic economies of the West is clear.
Populations of people and companies which prefer to collaborate indirectly, only through the medium of the software they are developing, are much more common than consortia. Examples include the population of MS-DOS utility and tool programs, Hypercard stacks, 1-2-3 macros, Unix communications software etc. The problems for ABC are obvious: how do we ensure that tools can have useful information transfer; how do we control the interaction of a number of tools and how do we ensure that large numbers of tools, hundreds perhaps, can manage themselves most of the time ? We need to devise agents whose sole job is to manage other groups of agents.
ABC Is Not New
ABC has all the characteristics of a typical new paradigm in software: many people will say that it is unnecessary, others will say that it will never work, while still others will say that it is simply a new name for something that they have been doing all along.
Blackboard architectures of multiple expert systems and message-passing operating systems are both forerunners and essential components of ABC. Once agents have made contact through central facilities such as Windows dynamic data exchange or blackboards they can set up direct communication links using standard protocols: named pipes or remote procedure call (for fast real-time response).
In future software units will be internally sophisticated enough to manage their separate existence, but externally very narrowly focussed to perform highly specific tasks. An example might be an agent whose job would be solely to check for the correct use of semicolons in on-line documents.
Since agents exchange information through standard communications channels they can be constructed using any kind of programming technique. Systems currently under development to support engineering design almost invariably include agents using highly numerically-intensive algorithms, agents containing inference engines and knowledge-based rules, agents manipulating symbolic project management information and agents which interface to databases or people. ABC provides an excellent basis for integrating different programming skills and for raising the level of abstraction and intellect at which really difficult problems can be tackled.
Visible developments of ABC will be far less dependent on computer science research than has hitherto been the case. This is because the information that agents communicate is highly specific to particular jobs, e.g. the semicolon agent will communicate in terms of words, prepositions, adjectives etc., and agents designing electronic circuit boards will use chips, pads, layers and tracks. This means that development of the agent languages will be done by the professionals whose tasks they will be aiding: lawyers, accountants, medical doctors, photographers, clerks and engineers of all kinds. The general programmer will disappear as most people will spend more of their time customising and training groups of agents. Being able to develop a description of a problem, to qualitatively and symbolically "model" your problem such that existing agents can work with it, process it, transform it and solve it, will be the hallmark of professional training at the beginning of the next century.
This article is 972 words long.
The author is a research fellow at Cambridge University developing behaviour models of structural materials.
Engineering Dept., Trumpington St., Cambridge CB2 1PZ
ABC-Agent Based Computation.doc, November 4th 1991
Published in The Guardian, March 12th 1992