Last update: 17 September 1999
This page lists the tasks that need to be completed.
| Networking | ||
| Who | Status | Task |
| Bob and Brian | Test the range of the Wavelan 2 cards (with and without the Range Extender antennas) | |
| Bob | DONE | Make X-Windows work again on the Tecras |
| Bob | IN PROGRESS | Set the BIOS clock of every laptop to the correct time (and reset as needed) |
| Bob and Ron | Install needed software on all laptops (Linux, ntp, Wavelan 2 drivers, multi-threaded agent server, Aprl 2, etc.). This is basically the final step before any particular demo run. | |
| Brad | DONE | Figure out how to install FreeBsd on the Toshiba and Gateway laptops (see Brad's installation instructions) |
| Bob | IN PROGRESS | Add compression capabilities to D'Agents (to minimize the size of the agents and agent messages sent across the network) |
| Bob | DONE | Port Aprl 2 to Linux |
| Bob | DONE | Allow agents to get new-neighbor alerts from Aprl 2 |
| Bob | DONE | Decide whether to use FreeBsd or Linux |
| Bob and Ron | NOT NEEDED | If we use FreeBsd, install FreeBsd and Harvard's TCP/IP replacement on all of the laptops |
| Bob | DONE | Order the new Wavelan cards (Lucent 802.11 Turbo Bronze cards with Range Extender Antennas) |
| Bob | DONE | Make the Turbo cards work on our laptops |
| Ryan | DONE | Implement an efficient broadcast mechanism for the wireless network (e.g., each soldier broadcasts their position to all other soldiers) |
| Ryan | DONE | Test the broadcast system on the laptops (over the wireless network) |
| Ryan | DONE | Integrate the broadcast system with Bob's Aprl library so that the broadcast systems gets new-neighbor notifications directly from Aprl |
| Bob | DONE | Write a forwarder agent that will forward all broadcast messages to the analyst's GUI (not necessary, but simplifies the demo architecture significantly) |
| Bob | DONE | Make the router agent work with Aprl 2 |
| Bob | DONE | Make wireless_jump work with the new router agent |
| Lisa and Bob | Make the active-messaging system accept and react to disconnection alerts sent from the network-sensing subsystem (this depends on the network-sensing items below) | |
| Ron and Bob | IN PROGRESS | Make a startup script (and install it appropriately in /etc/rc.d/) that will automatically start all the software that a platoon member needs (i.e., we do not want the demo participant to have to enter a password, start up the soldier's GUI themselves, etc.) |
| Bob | Test all laptop batteries | |
| Bob | NOT NEEDED | Figure out if we can close the laptops without the laptops going into suspend mode |
| Soldier's GUI | ||
| Who | Status | Task |
| Sandy | DONE | Make the map resize correctly when the enclosing window is resized |
| Bob | Add Rockefeller and Baker Library to the map | |
| Bob | IN PROGRESS | Integrate the wireless_jump procedure |
| Bob | DONE | Make gridlines a function inside the tkGeoMap library, rather than a separate executable. The separate executable was surprisingly inconvenient last year. |
| Sandy | DONE | Add a scrolling script with time and action cues to the soldier's GUI (e.g., the script might tell a demo team member to move to the base of the Baker Library steps five minutes after the demo starts) |
| Sandy | DONE | Extend the script so that a script event can optionally place a "big red X" at some map position (the event text might say something like "Move to the position indicated on the map") |
| --- | DONE | Extend the map to show the position of every soldier (we get this for free since we used last year's analyst GUI as the starting point for the soldier's GUI) |
| Bob | IN PROGRESS | "Gray out" soldiers who are currently out of range |
| Sandy | DONE | Extend map to allow easy entry of position observations (i.e., a vehicle or person was seen at a specific location) |
| Sandy | DONE | Ehance observation entry so that it is easier to describe an observed person (i.e, explicit fields for height, weight, etc.) |
| Sandy | DONE | Add a command-line option that specifies whether the GUI is being used by a soldier in the field or by an analyst at Battalion HQ. Hide or display certain sections of the GUI according to who is using it. |
| Sandy | DONE | Add a simple single-line status bar to the main display (modules will put "critical messages" into this status bar) |
| Bob | DONE | Determine the types of observations that will be made during the demo (i.e., PERSON, CAR, etc.) |
| Sandy | IN PROGRESS | Add mechanism to select "canned" observations |
| Sandy | DONE | Send observations back to Battalion HQ |
| --- | NEXT DEMO | Store observations in the SALUTE database for later querying |
| Sandy | DONE | Include the observation type in the SALUTE observations |
| Sandy | NOT NEEDED | Add mechanism to view updated orders sent from Battalion HQ |
| Sandy | DONE | Add mechanism to view (and respond to) confirmaton requests sent from Battalion HQ |
| Sandy | IN PROGRESS | Send observations wrapped inside a migrating agent (after which we can integrate with wireless_jump |
| Sandy | IN PROGRESS | Add mechanism to make simple queries againt the BGW database |
| --- | NEXT DEMO | Add mechanism to make simple queries againt the SALUTE database |
| Sandy and Lisa | Add mechanism to display an "emergency alert" if the laptop is going out of range of the other laptops and losing its network connection (this depends on the network-sensing items below) | |
| Network sensing | ||
| Who | Status | Task |
| Lisa | IN PROGRESS | Parameterize the network-sensing code so that it works with the Turbo network cards and will detect when a laptop is about to lose network connectivity |
| Lisa | IN PROGRESS | Provide an interface via which the network-sensing code can send alerts to agent-level components (which have requested alerts), e.g., both the soldier's GUI and the active-messaging agents will request alerts so that they can ake action when the network is about to disappear |
| GPS | ||
| Who | Status | Task |
| Bob | DONE | Order the new GPS units (Motorola Oncore units that work with Brad's differential GPS software) |
| Ron | IN PROGRESS | Make battery packs for the GPS units |
| Jiang | DONE | Understand Brad's differential GPS software |
| Jiang | DONE | Test Brad's differential GPS software |
| Jiang and Bob | DONE | Select position for the three laptops that will broadcast the GPS error corrections to all the moving laptops |
| Bob | DONE | Update the GPS agent to broadcast the laptop's position through the broadcast system |
| Jiang and Bob | DONE | Make Brad's Perl code pass the GPS position to the GPS agent |
| Bob | DONE | Adjust the GUI's to make them understand the GPS broadcasts |
| Jiang and Bob | IN PROGRESS | Propagate the status of the Motorola Oncore (e.g., 2D-fix, 3D-fix, fix lost) all the way to the GUI's, so that the GUI's can flag those soldiers whose GPS units have lost their position fix |
| Jiang and Bob | IN PROGRESS | Disallow "invalid" positions (which might arise if the Motorola Oncore has not yet acquired the correct position) |
| Scenario | ||
| Who | Status | Task |
| Bob | DONE | Decide where on campus the demo will take place. We will use two different buildings, Rockefeller Center and Baker Library, and alternate between the two. The first test run will take place around Rockefeller Center, which is closer to Thayer and significantly smaller than Baker (in terms of perimeter). |
| Sue, Eileen, Lisa, Dartmouth Gang of Four | DONE | Script the confirmation process (battalion HQ sends picture to leader, leader forwards to appropriate soldier, soldier verifies that the person in the picture is the person that he saw) |
| --- | NEXT DEMO | Script the SALUTE queries that the soldiers will make against the SALUTE databases |
| Sue, Eileen, Lisa, Dartmouth Gang of Four | DONE | Script soldier movement that will show off the active-messaging and network-sensing systems (i.e., script movement that forces network disconnections) |
| Bob | Write the script file that will tell everyone what to do and when to do it | |
| Bob | IN PROGRESS | Write the canned observation file |
| Bob | IN PROGRESS | Come up with an easy way for the "soldiers" to carry everything (i..e, buy little backpacks) |
| Optional | ||
| Who | Status | Task |
| --- | NEXT DEMO | Implement a more efficient version of the agent-level active-messaging system |
| --- | NEXT DEMO | Platoon leader has local subset of the SALUTE database |
| --- | NEXT DEMO | Platoon leader tags some SALUTE reports as critical and re-sends (follows military chain-of-command and current military practice) |
| --- | NEXT DEMO | Confirmation request sent to platoon leader, who forwards it to appropriate soldier at a convenient time (follows military chain-of-command and current military practice) |
| --- | NEXT DEMO | Add Windows CE and/or Palm devices (communicating over Metricom radio modems to one or laptops serving as Metricom base stations) to the demo. These devices will have some simple interface for entering observations. We will not port the agent system, etc., to the devices. |
| --- | NEXT DEMO | Make the network-sensing module detect the impending loss of individual links. Right now it detects the impending loss of all links (i.e., if the laptop is going out of range of all other laptops). Feed the individual-link information into the active-messaging system. |
There are five databases:
SALUTE (observations)
BGW (observations)
Intelligence Summaries (free text)
News (free text)
Encyclopedia articles (free text)
The Encyclopedia database, however, will likely not be used this year.
| Data | ||
| Who | Status | Task |
| --- | NOT NEEDED | Sanitize last year's terrorist data |
| Nikita | DONE | BGW database: Write a program to automatically generate entries for the BGW database |
| Bob | DONE | Upgrade to the new mySql |
| Thayer gang | IN PROGRESS | BGW database: Add associates and member-of fields to the BGW database |
| Thayer gang | IN PROGRESS | BGW database: Insert all the people into the BGW database |
| Thayer gang | IN PROGRESS | BGW database: Manually create BGW entries for the two insurgent leaders and for people who look like the first insurgent leader |
| Dennis | DONE | Filter BGW and Salute records according to the "Description" field |
| Arne | IN PROGRESS | News Database: Collect Clarinet articles |
| Thayer gang | IN PROGRESS | News Database: Collect AP articles |
| Bob | DONE | News Database: Get last year's articles |
| Thayer gang | IN PROGRESS | News Database: Get (more) Dartmouth articles |
| Arne and Bob | News Database: Sanitize articles and insert into serval database | |
| --- | NEXT DEMO | Encyclopedia database: Set up and populate the Encyclopedia database |
| Bob | Phone database: Implement the Phone database (sql database, serval database, persitent-query agent) | |
| Thayer gang | Phone database: Break movie scripts apart into conversations | |
| Thayer gang | Phone database: Manually generate a few key phone conversations | |
| Bob | Phone database: Insert some conversations into Phone database (plus script to insert rest of the conversations into the database at random intervals) | |
| Nikita | DONE | BGW database: Add photographs to the BGW database |
| Sandy | DONE | BGW database: Give agents the capability to carry photographs with them (as MIME strings) |
| Ron, Arne and Bob | Install replicated copies of each database (e.g., there might be a copy of the full news database at Dartmouth and at Harvard, and a portion of the news database on a laptop that we bring to Washington) | |
| Dennis | DONE | Improve the SQL interface agent |
| Serval (free-text database) | ||
| Who | Status | Task |
| Ron | DONE | Replace Smart with Serval |
| Katya, Arne and Alex | IN PROGRESS | Add persistent queries to Serval |
| Ron | IN PROGRESS | Write a serval "interface" agent (for use by Tcl query agents) |
| Queries | ||
| Who | Status | Task |
| Dennis | DONE | Improve the agent that performs the base SQL queries (e.g., queries against a single SQL database) |
| Dennis | IN PROGRESS | Improve the agent that performs the base text queries (e.g., queries against a single text database) |
| Dennis and Bob | Implement the "who-is-this" query | |
| Dennis and Bob | Implement the persistent phone-call query | |
| Dennis and Bob | Implement a straight-shot News query | |
| Dennis and Bob | Implement a persistent News query | |
| Ricky | IN PROGRESS | Implement MACE modules that can be used to construct multi-step queries |
| Dennis | DONE | Make the query agents use the yellow pages to find the needed databases (and of course, make the databases register with the yellow pages) |
| Scenario | ||
| Who | Status | Task |
| Sue, Eileen, Lisa, Dartmouth Gang of Four | DONE | Select interesting queries. For the soldier, we will do queries against the BGW database. For the analyst, we have have fourj different query types, which nicely show off the different technologies: "Who is this?", persistent phone-call, straight-shot News, and persistent News. |
| Optional | ||
| Who | Status | Task |
| --- | NEXT DEMO | Use network-sensing system to detect impending database (access) failure |
| Who | Status | Task |
| Sandy | DONE | Analyst's GUI: map with all positions |
| Sandy | IN PROGRESS | Analyst's GUI: scrolling list of SALUTE reports |
| Sandy | IN PROGRESS | Analyst's GUI: Given an observation of a person, query the BGW database to identify the person (i.e., the "Who is this?" query) |
| Sandy and Bob | Analyst's GUI: Launch a persistent query against the phone-call database and receive notifications of matching results | |
| Sandy and Bob | Analyst's GUI: Launch a straight-shot query against the News database | |
| Sandy and Bob | Analyst's GUI: Launch a persistent query against the News database | |
| David Marmaros | DONE | Analyst's GUI: clustering library (Tcl interface to Mark and Ken's clustering server plus Tk code to draw the clusters) |
| Sandy | DONE | Analyst's GUI: Send confirmation requests to the field team |
There are several subsystems that need to be instrumented:
Core D'Agents system
Routing (Aprl 2 and active-messaging system)
Databases
Query agents
Network-sensing system
| Who | Status | Task |
| Rong and Bob | IN PROGRESS | Logger |
| Brad and Bob | DONE | Decide what to log in the routing subsystem: 1. Full packet trace with tcpdump (entire packet or first 58 bytes), 2. All route changes inside Aprl, 3. Whatever the Wavelan 2 cards report (Brad has code to read about a dozen items from the card), 4. Whatever the kernel keeps track of (e.g., retransmissions and dropped packets), and 5. GPS positions (already done) |
| Lisa and Bob | IN PROGRESS | Decide what to log in the network-sensing subsystem |
| Bob and all | IN PROGRESS | Decide what to log in the agent subsystem |
| Bob | DONE | Set up tcpdump |
| Bob | DONE | Set up a logger of all kernel statistics |
| Bob | DONE | Set up a logger of all Wavelan 2 statistics |
| Instrument networking-sensing and agent subsystems with appropriate calls to the logger | ||
| Assign unique identifiers to all demo subsystems (logging requirement) | ||
| All | Data analysis, plotting and visualization |
| Who | Status | Task |
| Bob and Sandy | DONE | Make the soldier's GUI record all incoming agent messages (including network-sensing alarms) |
| Bob and Sandy | IN PROGRESS | Make the analysts's GUI record all incoming agent messages (except for responses to queries and confirmation requests) |
| Bob and Sandy | IN PROGRESS | Add a playback mode to the soldier's GUI |
| Bob and Sandy | IN PROGRESS | Add a playback mode to the analysts's GUI |
| Bob | DONE | Make Aprl 2 log every route change |
| Bob | DONE | Make the active-messaging system record every queue entry or exit, as well as all Aprl notifications |
| Bob | Make the active-messaging system record every alarm coming from the network-sensing subsystem | |
| Bob | DONE | Make every jumping agent log its own path (this simplifies the logging that we need to do inside the active-messaging system) |
| Ryan | DONE | Make the broadcast system record every "event" (message arrival, message transmission, message death, etc.) |
| Bob | DONE | Make the GPS system continually log the laptops's position |
| Bob | Add a second playback mode to the analyst's GUI (or make a stripped-down analyst's GUI) that will replay reality as reflected in the previous five logs. This is necessary since neither the soldier's nor analyst's GUI will have seen all of the demo activity. For example, if three soldiers break off from the main group, but stay together, neither the other soldiers nor the analyst will see that they actually have stayed together, since no position broadcasts can make it across the network disconnection. |
| Who | Status | Task |
| --- | NEXT DEMO | Integrate Hiro's planner so that agents can plan the most effective path through the network |
| Shankar and Ricky | IN PROGRESS | Integrate MACE so that the headquarters team can graphically construct the desired queries |
| --- | NEXT DEMO | Adapt MACE for use as a mission planner |
| Bob | Make all soldier software jump onto the soldier's laptops when the mission starts | |
| --- | NEXT DEMO | Integrate Brian's observation algorithm (e.g., the databases might use it to efficiently construct indices of the changing distributed document collection) |
| --- | NEXT DEMO | Integrate Jiang's functional validation algorithm |
| --- | NEXT DEMO | Create and integrate a planning algorithm that moves around physical entities to maintain network connectivity |