|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T i
Length: 13707 (0x358b)
Types: TextFile
Names: »initiator.tex«
└─⟦3d0c2be1b⟧ Bits:30001254 ISODE-5.0 Tape
└─⟦eba4602b1⟧ »./isode-5.0.tar.Z«
└─⟦d3ac74d73⟧
└─⟦this⟧ »isode-5.0/doc/ftam/initiator.tex«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦35176feda⟧ »EurOpenD22/isode/isode-6.tar.Z«
└─⟦de7628f85⟧
└─⟦this⟧ »isode-6.0/doc/ftam/initiator.tex«
% run this through SLiTeX with the appropriate wrapper
\f
\begin{bwslide}
\part {ISSUES IN IMPLEMENTING A CLIENT OF THE VIRTUAL FILESTORE}
\begin{nrtc}\bf
\item AN INTERACTIVE FTAM INITIATOR FOR UNIX
\item DIRECTORY HANDLING
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {INITIATORS FOR FTAM}
\begin{nrtc}
\item IN GENERAL, THREE APPROACHES
\item THE INTERACTIVE APPROACH: USER (OR PROGRAM) EXPLICITLY INVOKES
A PROGRAM TO REQUEST FILE SERVICES
\item THE APPLICATIONS APPROACH: PROGRAM INVOKES OTHER SERVICES
(e.g., DATABASE ACCESS) WHICH INVOKES FTAM
\item THE EMBEDDED APPROACH: THE HOST KERNEL USES FTAM AS A PART OF ITS
FILESYSTEM REPETOIRE
\begin{nrtc}
\item THE USE OF FTAM IS TRANSPARENT TO USERS AND PROGRAMS
\end{nrtc}
\item THE EMBEDED APPROACH IS THE MOSE USEFUL, BUT ALSO THE MOST COMPLICATED
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\part* {AN INTERACTIVE FTAM INITIATOR FOR UNIX}%%%\bf
\begin{nrtc}\small
\item IMPORTANT TO DISTINGUISH BETWEEN
\begin{nrtc}
\item THE USER INTERFACE: HOW THE PROGRAM INTERACTS WITH THE USER
\item THE FTAM INTERFACE: HOW THE PROGRAM ACCESS THE FILE SERVICE
\end{nrtc}
\item A ``FRIENDLY'' APPROACH WAS TAKEN FOR THE USER INTERFACE
\begin{nrtc}
\item USER COMMANDS TO THE INITIATOR APPEAR TO BE UNIX COMMANDS
\end{nrtc}
\item SUPPORTS FTAM-3, NBS-2, NBS-9
\begin{nrtc}
\item THE SAME DOCUMENT TYPES SUPPORTED BY THE RESPONDER
\end{nrtc}
\item ABOUT 6000 LINES OF C CODE AND 150 LINES OF PEPY CODE
\end{nrtc}
\end{bwslide}
\f
\begin{note}\em
the initiator, per se, currently runs on berkeley or at\&t unix
(although only the berkeley version has been extensively tested)
the user interface was heavily inspired by the berkeley unix ftp client
\end{note}
\f
\begin{bwslide}
\ctitle {COMMAND LOOP}
\begin{nrtc}
\item ONCE INVOKED, PROGRAM PROMPTS AND ACCEPTS COMMANDS
\item SOME COMMANDS RESULT IN FILE SERVICE ACTIONS
\begin{nrtc}
\item e.g., ASSOCIATE WITH FILESTORE
\item UNEXPECTED DIAGNOSTICS ARE REPORTED TO THE USER
\end{nrtc}
\item OTHER COMMANDS SET OPTIONS CONTROLLING USE OF FILE SERVICE
\item OTHER COMMANDS SET OPTIONS CONTROLLING LOCAL SYSTEM
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {FILESTORE ASSOCIATION COMMANDS}
\begin{nrtc}
\item OPEN host user [account]
\begin{nrtc}
\item PROMPTS FOR A PASSWORD
\item ISSUES AN F-INITIALIZE.REQUEST AND AWAITS THE RESPONSE
\end{nrtc}
\item CLOSE
\begin{nrtc}
\item TERMINATES THE ASSOCIATION WITH THE FILESTORE USING
F-TERMINATE.REQUEST
\end{nrtc}
\item ABORT
\begin{nrtc}
\item UPON ENCOUNTERING A FATAL ERROR, F-U-ABORT.REQUEST IS USED
\end{nrtc}
\item STATUS
\begin{nrtc}
\item REPORTS SUMMARY OF SERVICE PARAMETERS IN EFFECT OVER FTAM
REGIME
\end{nrtc}
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {EXAMPLE: FILESTORE ASSOCIATION COMMANDS}\small
\begin{verbatim}
kr:22-- ftam
ftam> open gr
user (gr:mrose): mrose
password (gr:mrose):
gr... connected
gr> status
associated with virtual filestore on "gr" as user "mrose"
service level: reliable, service class: transfer-and-management
functional units: 0x3b<READ,WRITE,LIMITED,ENHANCED,GROUPING>
attribute groups: 0x3<STORAGE,SECURITY>
document types:
1.0.8571.6.3 unstructured binary file
1.17.3.6.1 unstructured text file
1.17.3.6.8 file directory file
estimated integral FADU size: 65502
\end{verbatim}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {FILE TRANSFER COMMANDS}
\begin{nrtc}
\item GET source destination
\begin{nrtc}
\item RETREIVES A FILE FROM THE FILESTORE
\item FILE SERVICES
\begin{nrtc}
\item F-BEGIN-GROUP F-SELECT F-OPEN(READ) F-END-GROUP
\item BULK DATA TRANSFER FOR READ
\item F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP
\end{nrtc}
\end{nrtc}
\item PUT source destination
\begin{nrtc}
\item STORES A FILE ON THE FILESTORE
\item FILE SERVICES
\begin{nrtc}
\item F-BEGIN-GROUP F-CREATE(OVERWRITE) F-OPEN(WRITE) F-END-GROUP
\item BULK DATA TRANSFER FOR WRITE
\item F-BEGIN-GROUP F-CLOSE F-DESELECT F-END-GROUP
\end{nrtc}
\item OPTION SETTING DETERMINES OVERWRITE MODE
\end{nrtc}
\end{nrtc}
\end{bwslide}
\f
\begin{note}\em
need to exercise a fair bit of caution in ordering of local file access for
the get command:
\begin{quote}
ideally don't want to open file for write until remote open
has succeeded; but if local open fails, still have to do a little bit of bulk
data-transfer before backing out.
\end{quote}
\end{note}
\f
\begin{bwslide}
\ctitle {FILE TRANSFER COMMANDS (cont.)}
\begin{nrtc}
\item APPEND source destination
\begin{nrtc}
\item APPENDS TO A FILE IN THE FILESTORE
\item FILE SERVICES: AS ABOVE, BUT F-CREATE(EXISTING)
\end{nrtc}
\item OPTION SETTING DETERMINES EITHER TEXT OR BINARY
(BUT RESPONSE FROM SERVER OVERRIDES THIS)
\item INTERRUPT FROM USER DURING TRANFSER INVOKES F-CANCEL SERVICE
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {EXAMPLE: FILE TRANSFER COMMANDS}\small
\begin{verbatim}
gr> set type text
type = text - file transfer mode
gr> get manual.dvi manual.dvi
ftam: unstructured binary file transfer
ftam: 613628 bytes received in 10.33 seconds (58.00 Kbytes/s)
gr> get calendar calendar
ftam: 2051 bytes received in 0.13 seconds (15.06 Kbytes/s)
gr> ls
file: .
. .. .Xdefaults .mh_profile bin
calendar lib manual.dvi libisode.a mhbox
gr> get libisode.a libisode.a
ftam: unstructured binary file transfer
^C
ftam: cancelling transfer
ftam: 196506 bytes received in 5.48 seconds (35.00 Kbytes/s)
\end{verbatim}
\end{bwslide}
\f
\begin{note}\em
this is a good example of document type simplification:
manual.dvi was not available as a text file,
hence the responder in the open request returned a simplification of the
document type requested
\end{note}
\f
\begin{bwslide}
\ctitle {FILE MANAGEMENT COMMANDS}
\begin{nrtc}
\item MV source destination
\begin{nrtc}
\item CHANGES THE NAME OF A FILE
\item FILE SERVICES
\begin{nrtc}
\item F-BEGIN-GROUP F-SELECT F-CHANGE-ATTRIBUTE F-DESELECT
F-END-GROUP
\end{nrtc}
\end{nrtc}
\item RM file
\begin{nrtc}
\item DELETES A FILE
\item FILE SERVICES
\begin{nrtc}
\item F-BEGIN-GROUP F-SELECT F-DELETE F-END-GROUP
\end{nrtc}
\end{nrtc}
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {FILE MANAGEMENT COMMANDS (cont.)}
\begin{nrtc}
\item LS file
\begin{nrtc}
\item LISTS THE ATTRIBUTES OF A FILE (USE DIR FOR LONG LISTING)
\item FILE SERVICES
\begin{nrtc}
\item F-BEGIN-GROUP F-SELECT F-READ-ATTRIBUTE F-DESELECT F-END-GROUP
\end{nrtc}
\item THE (APPROPRIATE) FTAM ATTRIBUTES ARE DISPLAYED AS UNIX
ATTRIBUTES
\end{nrtc}
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {EXAMPLE: FILE MANAGEMENT COMMANDS}\small
\begin{verbatim}
gr> mv calendar oldcalendar
gr> rm manual.dvi
gr> ls .
. .. .Xdefaults .mh_profile bin
lib libisode.a mhbox oldcalendar
gr> mv oldcalendar calendar
gr> ls .
. .. .Xdefaults .mh_profile bin
calendar lib libisode.a mhbox
\end{verbatim}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {EXAMPLE: FILE MANAGEMENT COMMANDS (cont.)}\small
\begin{verbatim}
gr> dir .
d mrose csl 1536 Jun 2 23:25 .
d root wheel 512 May 29 21:50 ..
t mrose csl 563 May 27 13:09 .Xdefaults
t mrose csl 1968 Apr 29 09:49 .mh_profile
d mrose csl 1536 May 29 21:58 bin
t mrose csl 2051 Jun 2 18:23 calendar
d mrose csl 512 May 4 19:13 lib
b mrose csl 691798 Jun 2 23:23 libisode.a
d mrose csl 1024 Jun 2 17:43 mhbox
\end{verbatim}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {WHAT THE RESPONDER PROVIDES}\small
\begin{verbatim}
read F-READ-ATTRIB-response, context 1
{
{
action-result success,
attributes {
{ filename { "." } },
{ contents-type { document-type-name 1.17.3.6.8 } },
{ storage-account "csl" },
{ date-and-time-of-creation { actual-values "19870603062745Z" } },
{ date-and-time-of-last-modification
{ actual-values "19870603062745Z" }
},
{ date-and-time-of-last-read-access
{ actual-values "19870603062743Z" }
},
{ date-and-time-of-last-attribute-modification
{ actual-values "19870603062745Z" }
},
{ identity-of-creator { actual-values "mrose" } },
{ identity-of-last-modifier { actual-values "mrose" } },
\end{verbatim}
\end{bwslide}
\f
\begin{bwslide}\small
\begin{verbatim}
{ identity-of-last-reader { no-value-available "" } },
{ identity-of-last-attribute-modifier
{ no-value-available "mrose" }
},
{ file-availability { actual-values immediate-availability } },
{
permitted-actions {
actual-values { read, insert, replace, extend, erase,
read-attribute, change-attribute } }
},
{ filesize { actual-values 1536 } },
{ future-filesize { no-value-available "" } },
{ encryption-name { no-value-available "" } },
{ legal-qualification { no-value-available "" } }
}
}
}
\end{verbatim}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {LOCAL ENVIRONMENT COMMANDS (AND MISCELLANY)}
\begin{nrtc}
\item LCD [file]
\begin{nrtc}
\item CHANGES THE WORKING DIRECTORY ON THE LOCAL SYSTEM
\end{nrtc}
\item HELP [command]
\item SET [variable [value]]
\end{nrtc}
\end{bwslide}
\f
\begin{note}\em
also need protocol exception reporting and tracing
for debugging complete stacks
(and resolving episodes of finger-pointing)
good facilities for reporting exceptions and tracing protocol actions
are invaluable
\end{note}
\f
\begin{bwslide}
\part* {DIRECTORY HANDLING}\bf
\begin{nrtc}
\item WHAT ARE WE MISSING?
\item SOME KIND OF RUDIMENTARY DIRECTORY FACILITIES
\item WILDCARDING OF FILENAMES (GLOBBING)
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {DIRECTORY AND GLOBBING FUNCTIONS}
\begin{nrtc}
\item CD [dir]
\begin{nrtc}
\item CHANGES THE WORKING DIRECTORY ON THE VIRTUAL FILESTORE
\end{nrtc}
\item MKDIR dir
\begin{nrtc}
\item CREATES A DIRECTORY ON THE VIRTUAL FILESTORE
\end{nrtc}
\item PWD
\begin{nrtc}
\item PRINTS THE WORKING DIRECTORY ON THE LOCAL SYSTEM AND THE
VIRTUAL FILESTORE
\end{nrtc}
\item ECHO file $\ldots$
\begin{nrtc}
\item EXPANDS WILDCARD EXPRESSIONS
\end{nrtc}
\item PLUS: VIRTUAL FILESTORE FILENAME ARGUMENTS FOR ALL COMMANDS ARE
GLOBBED, DEPENDING ON OPTION SETTING
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {BUT HOW TO DO THIS?}
\begin{nrtc}
\item MKDIR IS EASY
\begin{nrtc}
\item F-BEGIN F-CREATE(NBS-9) F-DESELECT F-END
\end{nrtc}
\item BUT CD AND GLOBBING AREN'T POSSIBLE:
\begin{nrtc}
\item THE VIRTUAL FILESTORE LACKS A DIRECTORY CONCEPT
\end{nrtc}
\item SUPPOSITION
\begin{nrtc}
\item IF WE KNOW THE RULES FOR BUILDING FILENAMES ON THE REMOTE
SYSTEM,
\item THEN WE CAN EMULATE THIS CONCEPT IN THE INITIATOR!
\item WE CAN ALSO MAKE THE USER INTERFACE SMARTER AS WELL
(BY DEFAULTING MISSING ARGUMENTS)
\end{nrtc}
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {APPROACH}
\begin{nrtc}
\item LET THE ``REALSTORE'' OPTION DETERMINE HOW FILENAMES ARE BUILT
\item ON A CD COMMAND
\begin{nrtc}
\item REMEMBER THE ARGUMENT
\item NORMALIZE FUTURE ARGUMENTS USING THIS STRING
\end{nrtc}
\item FOR GLOBBING
\begin{nrtc}
\item BASED ON THE REALSTORE, SELECT A GLOBBING ROUTINE WHICH
IS INTEGRATED WITH FTAM
\item FOR THE UNIX LOCALSTORE THIS IS TRIVIAL
\end{nrtc}
\end{nrtc}
\end{bwslide}
\f
\begin{note}\em
the globbing facility in the interactive ftam initiator is
based on routines generously supplied by u.c. berkeley
\end{note}
\f
\begin{bwslide}
\ctitle {EXAMPLE: DIRECTORY HANDLING COMMANDS}\small
\begin{verbatim}
gr> set realstore unix
realstore = unix - type of remote realstore
gr> ls
bin lib mhbox
calendar libisode.a nrtc
gr> ls lib
MakeUpdEnv ctype icons notes termcap
bfly emacs la-template sl-template tex82
gr> ls lib/*tem*
lib/la-template:
Makefile template.bbl template.tex text.tex version.sh
lib/sl-template:
Makefile figure.pic template.tex
gr> cd lib/sl-template
gr> pwd
local directory: /f/iso/ftam2
virtual filestore directory: lib/sl-template
gr> ls
Makefile figure.pic template.tex
\end{verbatim}
\end{bwslide}
\f
\begin{bwslide}
\ctitle {THE REALSTORE CONTROVERSY}
\begin{nrtc}
\item THIS IS AN $M*N$ (RATHER THAN $M+N\/$) APPROACH
\begin{nrtc}
\item THE INITIATOR ON ALL LOCAL SYSTEMS MUST POTENTIALLY KNOW ABOUT
ALL LOCAL SYSTEMS HOSTING A VIRTUAL FILESTORE
\end{nrtc}
\item NEEDLESS TO SAY THIS IS CONTRARY TO THE OSI PHILOSOPHY
\begin{nrtc}
\item IT'S PROBABLY WORSE THAN THE PRIVATE ATTRIBUTE GROUP IN
THE FILESTORE
\end{nrtc}
\item IT'S ALSO AMAZINGLY USEFUL\\ (THE FOREWARD PROGRESS ARGUMENT)
\item THE BEST SOLUTION, HOWEVER, WOULD BE FOR FTAM TO BE FIXED
\end{nrtc}
\end{bwslide}
\f
\begin{bwslide}
\part* {SUMMARY}\bf
\begin{nrtc}
\item AN INTERACTIVE FTAM CLIENT WITH REASONABLE CAPABILITIES CAN BE
IMPLEMENTED IN A STRAIGHT-FORWARD FASHION
\item DIRECTORY HANDLING CAN BE IMPLEMENTED, BUT AT A CONCEPTUAL COST
\end{nrtc}
\end{bwslide}