[comp.protocols.tcp-ip] FTP "STRU VMS"

jensen%hsr.uninett@NORUNIX.BITNET ("Tarjei T. Jensen") (02/26/89)

        If I were to solve something like this I would create something called
a fil description language. This would enable somebody at the other end to
reconstruct the original file or make a representation of it. It would be human
readable so that people without the facility would be able to find out what to
do. I don't care whether somebody would have to invent a cludge or something to
get this to work gracefully. All I want is for it to work. That means that ftp
probably should know about it (FTP "STRU FDL"?) through some sort of extended
hand-shake sequence. A language like this could probably be used to export and
import data into databases. Below I'll give an example of what I mean. I
suppose one would send the description first and then the file itself. In
certain cases there would have to be a facility to build a binary file from an
ascii representation. E.g. ISAM files. This would be appended to the
description file and fed to someting that would build the right file. I know
this could be a difficult task, but if the description is human readable we can
work something out. The point is to make the description logical, so when the
time is right somebody can make a program that will handle this in a reasonable
manner.

Examples (they do not show everything I would want in a description):

DESCRITPTION
QUOTE="
SEPARATOR=" "
REALNAME="A_NICE_FILE.BCK"
FILETYPE=VMSBACKUP ASCII8 NOPARITY ENCODED COMPACTED CRC=FILE
OPERATINGSYSTEM=VMS_4.7
CPU=VAX
COMPACTID=COMPRESS_6.4
ENCODEID=UUENCODE_1.4
CRC=4AC384D5
SPECIAL BCK
BCK_BACKUPTYPE=IMAGE
BCK_RECORDLENGTH=32768
ENDSPECIAL
REPRESENTATION=EXTERNAL
ENDDESCRIPTION

DESCRIPTION
QUOTE="
SEPARATOR=" "
REALNAME="A.FILE.ISAM"
FILETYPE=ISAM ASCII7 NOPARITY ENCODED COMPACTED CRC=FILE
OPERATINGSYSTEM=SINTRAN_III
CPU=ND110CX
COMPACTID=CPRS_92.4c
ENCODEID=BIGSECRET_MCLXIIV
CRC=32F798FD
SPECIAL ISAM
ISAM_DEFINERECORD_1 "clients"
ISAM_DEFINEFIELD_1 "client name" STRING 80 ASCII8
ISAM_DEFINEFIELD_1 "address" NESTED
ISAM_DEFINEFIELD_2 "address 1" STRING 60 ASCII8
ISAM_DEFINEFIELD_2 "address 2" STRING 60 ASCII8
ISAM_DEFINERECORD_END
ENDSPECIAL
REPRESENTATION=INLINE ATTENTION="ISAM_" ESCAPE="@"
ISAM_RECORD1 NO=1
ISAM_RECORD1 NO=SEQUENCE
ISAM_ENDREPRESENTATION
ENDDESCRITPTION

If you don't like it I understand, but try to find something more portable.
With a description like this it would be easy to import the file into a
database that know about FDL. We would have tools that would generate code to
access the file.