Computer Corporation of America
28 August 1973
Storing Network Survey Data at the Datacomputer
In November, 1972, Computer Corporation of America (CCA) and the Programming Technology Division of the Dynamics Modeling System (DMS) at M.I.T.'s Project MAC began planning to transmit to CCA's datacomputer  information about the behavior of ARPA network hosts collected by DMS's program SURVEY . The information was to be stored at the datacomputer and retrieved by an interactive program that would address the datacomputer from DMS's PDP-10.
One goal of this joint project was to enable DMS to retain all of the information that SURVEY collects: SURVEY had been running since late 1971, saving only a short daily summary of its findings and discarding potentially useful details. A second goal was to discover and remove shortcomings in the interface between CCA's datacomputer and a program running at a remote host.
The project was completed last month, and the programs described in this document have been operating successfully with the datacomputer since July 10.
Part 1, below, describes SURVEY's output. Part 2 describes a program that retrieves portions of that output from the datacomputer.
Part 1: The Survey Database
Every twenty minutes, DMS's program SURVEY wakes up and performs the initial connection protocol from the PDP-10 at DMS to the logger socket (socket 1) of each 28 network hosts.
SURVEY records a date time, host, status,and response time for each host. A host may be in one of these states:
undetermined or not surveyed
disconnect from the network or dead
network control program not responding
ICP to logger aborted by the host
ICP to logger timed out by SURVEY after 20 seconds logger available and responding within 20 seconds
SURVEY records response times responding in tenths of seconds.
When the data for all 28 hosts has been assembled, SURVEY transmits that data to CCA's datacomputer. If for some reason the datacomputer cannot accept the information, it is held at DMS and sent another time.
The datacomputer's survey database is inverted by host, status, month, and year. That is to say that the datacomputer maintains several indices to records of one attempt to establish a full duplex connection to one host's logger: it maintains one such index for each host, one for each status, one for each month, and one for each year. The datacomputer can select records that are specified in boolean expressions by performing boolean operations on the inversion, and without consulting the data itself. The inversion thus facilitates rapid interaction between the survey retrieval program described below and the survey database at the datacomputer.
SURVEY expresses the record of each attempt to access one host in 17 ASCII characters. The record of one survey then occupies 17 * 28 = 476 characters, and each day the datacomputer receives 3 * 24 * 476 = 34,272 characters from DMS.
Part 2: Retrieving Survey Data
A Program called SURRET, written at DMS in the language MUDDLE, allows one to selectively retrieve material from the survey data base stored at the datacomputer . Its user may specify values, groups of values, or, where appropriate, upper and lower bounds for values of each of five fields: host name, date, time, response time, and host status. In addition, one may request that all five fields or any subset of the five be retrieved. A sample interaction with SURRET is reproduced below.
<HOST (CASE-10)>$ "OK" <DATE (AUG 5 73)>$ "OK" <TIME (BETWEEN 2000 2400)>$ "OK" <REQ ((TIME STATUS RESTIME))>$ ;J205 10-08-73 1557:20 RHRUN: SUCCESSFUL COMPILATION .1241 10-08-73 1557:21 OCSOP: (DEFAULT) OUTPUT PORT OPENED TIME STATUS R.T.(1/10 SEC) 2004 LOGGER RESPONDING (UP) 019 2024 LOGGER RESPONDING (UP) 024 2044 LOGGER RESPONDING (UP) 021 2104 LOGGER RESPONDING (UP) 016 2124 LOGGER RESPONDING (UP) 046 2144 LOGGER RESPONDING (UP) 018 2204 LOGGER RESPONDING (UP) 017 2224 LOGGER RESPONDING (UP) 017 2244 LOGGER RESPONDING (UP) 023 2304 LOGGER RESPONDING (UP) 015 2324 LOGGER RESPONDING (UP) 016 2344 LOGGER RESPONDING (UP) 015 "END OF DATCOMPUTER OUTPUT"
The angle brackets, the material they enclose, and '$' (ESC or altmode) were typed by a person using SURRET. The remainder was typed by the system. The phrases in quotation marks are, effectively, SURRET prompts. The status messages beginning with ';' and '.' were generated by the datacomputer. The column headings and table were formatted by SURRET using figures retrieved from the datacomputer.
SURRET generates datalanguage, sends it to the datacomputer, and processes systems diagnostics and data sent to it from the datacomputer. The datalanguage generated for the foregoing SURRET request was:
FOR |SURVEY.LOGTRY, SURVEY.LOGTRY WITH ((YEAR EQ '73' AND MONTH EQ '08' AND DAY EQ '05') AND (HRMIN GE '2000' AND HRMIN LE '2400') AND (HOST EQ '013')) HRMIN=HRMIN ; STATUS=STATUS ; RESTIME=RESTIME ; END;
The field names in the datalanguage were entered with file descriptors before the first data was loaded.
One can ask SURRET to retrieve new data by changing the values of any number of fields and issuing a new REQ (request). The command <state> displays current values for the five prospective retrieval criteria. Thus:
<HOST (USC-44)>$ "OK" <STATE>$ !HOST: (USC-44)STATUS: () RESTIME: () DATE: (AUG 5 73) TIME: (BETWEEN 2000 2400)! <REQ ((TIME STATUS RESTIME))>$ ;J205 10-08-73 1610:08 RHRUN: SUCCESSFUL COMPILATION .1241 10-08-73 1610:09 OCSOP: (DEFAULT) OUTPUT PORT OPENED TIME STATUS R.T.(1/10 SEC) 2004 LOGGER RESPONDING (UP) 020 2024 LOGGER RESPONDING (UP) 008 2044 LOGGER RESPONDING (UP) 008 2104 LOGGER RESPONDING (UP) 009 2124 LOGGER NOT RESPONDING (LNR) 000 2144 LOGGER NOT AVAILABLE(DEAD) 000 2204 NCP NOT RESPONDING (NNR) 000 2224 LOGGER NOT RESPONDING (LNR) 000 2244 LOGGER NOT AVAILABLE (DEAD) 000 2304 LOGGER NOT AVAILABLE (DEAD 000 2324 NCP NOT RESPONDING (NNR) 000 2344 LOGGER RESPONDING (UP) 007 "END OF DATCOMPUTER OUTPUT"
We might have retrieved all of the foregoing output with:
<HOST (CASE-10 OR USC-44)>
<HOST (CASE-10 CCA OR USC-44)>
would cause SURRET to access the database twice, once for information about Case-10, and then a second time for information about the remaining two hosts.
Detailed Survey data from July 10, 1973 forward is available either directly from the datacomputer or through SURRET. Persons who wish to use the datacomputer directly may obtain the pertinent documents through the NIC or by contacting Dale Stern at CCA (617-491-3670).
 An overview of the data computer is given in Thomas Marill, The Datacomputer, 18 Oct '71, 7pp. (NIC 7979). A detailed study of the programming language for addressing the datacomputer is found in Computer Corporation of America, Datacomputer Project Working Paper No. 3, Datalanguage, 29 Oct '71, 78 pp. (NIC 8208). The current status of the language is reviewed in Richard Winter, Specifications for Datalanguage, Version 0/9, 6 Jun '73, 36 pp. (NIC 16446). A user's manual for version 0/9, will be released by CCA in September, 1973.
 SURVEY is described in Abhay Bhushan, A Report on the Survey Project, 22 June '73 (NIC 17375).
 A detailed discussion of SURRET is found in Safwan Bengelloun, MUDDLE Survey Data Retrieval Programs, an internal DMS memo of 14 June, '73. Our purpose here is to describe enough of the program's syntax and structure to show how it interacts with the datacomputer.