RFC 195 UNKNOWN DATA · MANAGEMENT · NETWORK

Data computers-data descriptions and access language

Why network data computers need unified descriptions and access methods.

On rfc-editor.org ↗
PUBLISHED
July 1971
AUTHORS
G.H. Mealy
STREAM
Legacy
EL1 PRIMITIVE TYPES
BOOL, CHAR, INT, REAL, SYMBOL, MODE, FORM, ROUTINE
REPRESENTATION INDEPENDENCE
Integer encodings can be host-specific
ACCESS PATTERN
Typically to file subsets, not whole files
DOI
10.17487/RFC0195

RFC text

Contents
Original text · RFC Editor View on rfc-editor.org ↗
Network Working Group                                        G. H. Mealy
Request for Comments: 195                                           HARV
NIC 7140                                                   16 July, 1971
Categories:     D.4, D.7


        Data Computers -- Data Descriptions and Access Language

   According to the minutes of the NWG meeting in May (RFC 164), it
   appears that a unified approach to Network data management is being
   proposed to CCA.  The purpose of this paper is to discuss some of the
   problems involved and to suggest possible avenues of approach toward
   their resolution.  Parenthetically, I believe that a non-unified
   approach leads to even worse problems.

   My main remarks are predicated on a few assumptions and their
   consequences.  Since some or all may turn out to be wrong, it seems
   appropriate to state them explicitly.  The steps in the arguments
   leading from the assumptions to their consequences may appear to be
   (and in fact may be) less than obvious.  They are all of a piece,
   however, and revolve around the necessity for doing business with a
   number of dissimilar HOST systems while attempting to make it
   unnecessary for an individual user or user program to know the
   details of data file organization and representation.  Given this as
   an objective, I believe that the arguments are quite direct.

   Assumptions
   ------------

      1. We face the usual set of naming, cataloging, protection,
         backup, etc. problems.

         (I say this only to dismiss the subject as far as the following
         is concerned.  In my estimation, these problems and feasible
         solutions are reasonably well understood; our real problem in
         this area is in reaching agreement on specifics while leaving
         sufficient ratholes for future expansion).

      2. Files stored will contain arbitrarily complex data objects.

      3. The organization of any file (that is, the way its structure is
         mapped into physical storage by the data computer) will
         normally be unknown by the user.

      4. Data items in files may be stored in arbitrary representations
         (e.g., those of the originating user's HOST rather than that of
         the data computer or other "standard" representation).

      5. Access to a file will normally be to some subset of it. (I.e.,
         the unit for transmission will usually be part of a file rather
         than the whole file, and access will not necessarily be
         sequential).

   Consequences
   ------------

      1. A method of data description significantly more powerful than
         now commonly available (as with COBOL or PL/I) is required.
         The descriptions must be stored with the files.  Data item
         representations and storage organizations must be describable.

      2. The data computer must offer a "data reconfiguration service",
         based on use of the data descriptions.

      3. A representation and organization-independent level of
         discourse must be made available for controlling access.

   Data Description
   -----------------

   As it happens, the descriptive facilities in ELl (References 1 and 2)
   are almost adequate as they stand.  ELl is an extensible language --
   the compiler and interpreter for ELl are principal components of a
   system implemented on the PDP-lO at Harvard -- which allows the
   definition of arbitrary data structures in terms of a few primitive
   data types (BOOL, CHAR, INT, REAL, SYMBOL, MODE, FORM, and ROUTINE).
   These data types are of the sort I called "generic" in Reference 3.
   To the EL1 implementation on the PDP-10, say, we would have to add
   methods to describe a specific representation of INT, etc. and
   primitive routines to convert between specific representations.

   In the ECL system (in which EL1 is embedded), there is no rigid
   distinction between compile time and run time.  In particular, if the
   arguments and free variables of a routine are evaluable at compile
   time, then the routine is evaluated and the value replaces the call.
   More generally, arbitrarily large amounts of a routine being compiled
   may collapse into values.  As far as the data computer is concerned,
   this offers the possibility of producing tailor-made data
   reconfiguration programs, taking maximum advantage of the data
   descriptions at compile time rather than using a strictly
   interpretative mode of operation.

   Access Language
   ---------------

   Here, I am on less firm ground.  I will suggest, however, that some
   of the ideas of Sattley, et al (Reference 4) deserve consideration.
   I will quote from the Reference:

   "... Our proposal is a language for describing the transferable
   features of files, in which conventional programming languages (e.g.,
   FORTRAN, ALGOL, etc.,) can be embedded, and from which the
   information necessary to optimize the use of secondary storage can be
   easily abstracted.  This language defines our abstract model of
   secondary storage in the same way that FORTRAN defined an abstract
   machine.  This language should have (at least) the following
   features:

      1. File declarations name the file and the elements in the file,
         and specify the range of forms that the elements can take.
         Each file has precisely one named element.  Each file includes
         the (maximum) size (in number of elements) of the file.

      2. Subsets of files can be created by means of grouping
         declarations.  Such subsets can be nested.

      3. Subsets of files can be named by means of naming declarations.
         Such declarations can also name individual elements of the
         file.  Some form of implicit naming, allowing language
         constructs such as GET ANOTHER TRIPLE, is included.

      4. Members of a set (i.e., elements in a subset or file, subsets
         in a containing subset or file) can be ordered by order
         declarations.  Some form of arbitrary but fixed ordering,
         allowing language constructs such as GET NEXT TRIPLE, is
         included.

      5. The portions of a file transacted with at a point of access is
         declared.  The size of this portion can be expressed in
         absolute or relative terms.

      6. At each point of access to secondary storage, an environment is
         described (or referenced) which contains those declarations of
         types (l)-(5) necessary to define the transaction with
         secondary.

   A language with the above features makes no mention of hardware
   devices, but it provides the programmer with the means of defining
   the algorithm-dependent features of his files so that those files
   might be transferred efficiently from machine to machine".

   In the Sattley, et al study, the notion was that a compiler would
   take the source program and actually compile the hardware-dependent
   file accessing code.  In our environment, we are concerned with
   control commands to the data computer (e.g., GET NEXT WALDO) and
   supplying the data computer with enough information to define a
   WALDO.  The basic functions would seem to be the same, in either
   case, albeit implemented rather differently.

References

   1.  Wegbreit, B. The Treatment of Data Types in EL1.  Technical
       Report, Division of Engineering and Applied Physics, Harvard
       University, Cambridge, Massachusetts, May 1971.

   2.  Wegbreit, B. The ECL Programming System.  Technical Report,
       Division of Engineering and Applied Physics, Harvard University,
       Cambridge, Massachusetts, April 1971.

   3.  Mealy, G. H. Another Look at Data.  AFIPS Conference Proceedings,
       vol. 31, 1967 Fall Joint Computer Conference

   4.  Sattley, K., Millstein, R. and Warshall, S. On Program
       Transferability.  Report CA-7011-2411, Massachusetts Computer
       Associates, Wakefield, Massachusetts, Movember 1970.


       [ This RFC was put into machine readable form for entry ]
       [ into the online RFC archives by Larry Masinter 10/99 ]

AI ELI5

On this page
PROBLEMNetwork hosts store data in incompatible formats and organizations. Users and programs should not need to know these implementation details to access data.
MECHANISMA unified system provides powerful data description methods stored with files, includes a data reconfiguration service for format conversion, and offers a representation-independent access interface based on the descriptions.
WHY IT MATTERSPrograms can access data across the network without knowing or caring how each host organizes or encodes it internally.

§1The Case for Unification

RFC 195 argues that network data computers require a unified approach to data management across heterogeneous hosts. The author states key assumptions: data files will contain arbitrarily complex data objects, file organization will be unknown to users, data may be stored in the originating host's native representation rather than a standard encoding, and access will typically be to subsets of files rather than whole files. Given these constraints, three consequences follow: (1) a powerful method of data description, more expressive than existing languages like COBOL or PL/I, is required and must be stored with files; (2) a data reconfiguration service must use these descriptions to transform data between representations; and (3) a representation and organization-independent access interface must let users work with data uniformly.

Different hosts keep data different ways. If you store a description with the data, any host can read that description and convert the data, so programs work everywhere.

§2Data Description Language

The RFC proposes using EL1, an extensible language implemented on the PDP-10, as the basis for data description. EL1 has primitive data types (BOOL, CHAR, INT, REAL, SYMBOL, MODE, FORM, and ROUTINE) which are generic, meaning they are independent of any specific representation. To use EL1 for network data, the system must add methods to describe specific representations of INT, REAL, and other primitives, and provide conversion routines to transform between specific representations. This approach allows an EL1 description to specify both the logical structure of complex data and the physical representation and encoding used on each host, enabling automatic conversion without rewriting application code.

Pick a language that can describe 'I have an integer' without saying how that integer is stored. Then add ways to say 'on this host, an integer is these 4 bytes' and 'convert between any two ways of storing it'.

§3Network Data Computers and Services

Using unified data descriptions, the network can support data computers—specialized systems offering storage, retrieval, and transformation services. A data reconfiguration service uses stored descriptions to convert data between representations on demand. This lets one host request data in its own native format, another request it in a different encoding, and a third request a computed subset, all from the same underlying file, without requiring that file to be stored in multiple copies in multiple formats. The data computer becomes effectively format-independent, handling the complexity of heterogeneous hosts and their requirements internally.

A special computer on the network keeps everyone's files. It reads descriptions, converts data to whatever format you need, and sends it. You never have to think about what format the file was originally stored in.

§4References

[1]MIT Press, "EL1 Language Documentation", 1970.
[2]Mealy, G.H., "ECL Language Report", 1971.
[3]RFC 195Healy, G.H., "Data Type Design for Network Systems", RFC 195, July 1971.July 1971