This page describes the software components that are used in the demo, and how those components fit together.
The demo involves many software components. These components have been developed at Harvard, RPI, Dartmouth and the University of Illinois as part of the demo work.
Aprl 2 (Harvard). Aprl 2 is a routing algorithm/system for wireless networks. Each machine periodically sends out a beacon so that any machine in range will realize that it is a neighbor of the first machine. The beacons include the sending machine's routing table. The receiving machines update their own routing tables based on the new routing information, sending out PSVN packets to verify that an indicated route still exists.
Unlike the Aprl system used last year, Aprl 2 requires only a single process on each machine, which leads to the generation of much less control traffic.
Differential GPS system (Harvard). A differential GPS system in which the error corrections are sent through the computer network itself. Stationary machines with Motorola Oncore VP units calculate the error correction for each GPS satellite signal and multicast these corrections to mobile machines. The mobile machines feed the corrections into their Motorola Oncore GT+ GPS units to get a much more accurate position reading.
Intelligent agents for network sensing (RPI). These (non-mobile) agents analyze SNMP MIB variables to determine current network state (and then send alarms to target applications if the current network state is changing in some important way). These alarms will be used in the demo in two ways: (1) informational alarms to soldiers that simply tell the soldier that their laptop is going out of network range, and (2) alarms that tell agents to jump off of or onto a laptop that is going out of network range (e.g., an agent that is trying to reach the wired network would jump off of the laptop). As a first cut of (2), the network-sensing system will send alarms to the active-networking agents that are waiting on a machine for a network disconnection to go away. If the machine on which the agents are waiting is about to disconnect from the network itself, the agents will jump to some other machine when they receive the alarms. The agents will continue waiting on the new machine for the original disconnection to go away.
Wireless network simulator (Illinois). The simulator will be be helpful in testing the Aprl 2 routing algorithm and laying out the exact demo scenario (i.e., who moves where, and who moves when).
Market-based resource control (Illinois). If time allows, the Illinois markest-based resource-control techniques can be combined with Dartmouth's market-based techniques.
MACE (Dartmouth). MACE is a visual programming environment for graphically constructing information-retrieval agents (and other kinds of dataflow agents). MACE allows a non-programmer to graphically link canned components to create an agent that performs some complex information-retrieval task. Canned components would do such things as "query database type A", "query database type B", "merge results from multiple databases", etc.
D'Agents (Dartmouth). The mobile-agent system D'Agents is the main implementation infrastructure for the overall application. Important improvements to D'Agents since the last demo are (1) much higher performance, (2) support for the much faster language Java, and (3) a decent yellow pages (i.e., directory service). New demo agents will be written in Java. However, there are only a few new agents. Most agents are extended versions of last year's agents, and these agents still will be written in Tcl. Java might not achieve a large presence until next year's demo or later.
Serval (Dartmouth). Serval is a scalable agent-based document server that supports persistent (and single-shot) queries. Serval is not a key part of the ActComm project, but is an excellent replacement for the extremely simple databases and database interfaces that we used in the last demo.
New clustering algorithms (Dartmouth), which are faster than previous algorithms and also produce "better" clusters (i.e., documents in each cluster are more closely related).
Cluster-based algorithms for persistent queries (Dartmouth). Each incoming document is added to a clustering and is returned to the user if it falls inside a cluster that the user previously marked as relevant.
Active-networking system (Dartmouth), which routes agents intelligently in the face of network disconnections. Our simple approach from last year, which we might use without much modification, was to send an agent as far as possible along the last known route to the target machine. The agent then waited until Aprl discovered a route that could take it the rest of the way. The active-networking system will be the main client of RPI's network-sensing alarms.
Optimal Observation (Dartmouth). If time allows, we have a number of models/algorithms for intelligently observing a changing collection of documents to maintain the most up-to-date retrieval index as possible, or to most efficiently handle a standing query for which no index is available (i.e., for which the query agent has to keep checking the documents themselves).
If time allows, market-based resource-control techniques (Dartmouth).
These software components can be divided into three broad categories.
Networking
Differential GPS
Aprl 2
Intelligent agents for network sensing
Wireless network simulator
Active-networking system
Information retrieval
MACE for visually constructing complex queries
Serval, the scalable document server
Clustering algorithms
Cluster-based persistent queries
Observation algorithms
Agent infrastructure
D'Agents
Market-based resource control
This section is far from complete. It will eventually show the interactions between all of the software components. For now, we start with a diagram showing the components that will run on the soldier's machines (i.e., the machines that are moving). Note that this diagram does not yet show all of the active-networking subsystem. (The broadcast agent are half of the active-networking system; the stationary agents that allow moving agents to wait until a network disconnection goes away are the other half.)