Rochester Institute of Technology
RIT Scholar Works
Theses
Thesis/Dissertation Collections
8-1-1986
A Study of the Xerox XNS Filing Protocol as
Implemented on Several Heterogenous Systems
Edward Flint
Follow this and additional works at:
http://scholarworks.rit.edu/theses
This Thesis is brought to you for free and open access by the Thesis/Dissertation Collections at RIT Scholar Works. It has been accepted for inclusion
in Theses by an authorized administrator of RIT Scholar Works. For more information, please contact
Recommended Citation
Rochester [nstitute of Technology
School of Computer Science and Technology
A Study of the Xerox XNS Filing Protocol as Implemented
on Several Heterogenous Systems
August. 1986
Ed Flint
A thesis. submitted to the Faculty of the School of Computer Science and Technology.
in
partial
fullfillment of the requirements for the degree of Master of Science in Computer Science
.
Approved by
Leslie Jill Miller
8/7/86
John
L.
Ellis
8/26/86
Title of Thesis:
A Study of the Xerox XNS Filing Protocol as Implemented on Several Heterogeneous Systems
( Edward
Flint hereby grant permission to the WaUace Memorial Library
,
of RlT
,
to reproduce my
thesis
in
whole or
in
part
.
Any reproduction wiU not be for commercial use or profit.
Table
ofContents
Table
ofContents
2
Abstract
...5
Key
Words
andPhrases
5
Computing
Review
Subject
Codes
5
1.
Introduction
...6
2.
XNS
Architecture
.82.1.
ISO Model
8
2.2.
Servers,
Services
andClients
10
2.3-
XNS Protocols
andStandards
122 3.1.
Physical/Data Link
Protocols
122
3
2
Internet Transport
Protocols
1
2
233
Courier
(Remote
Procedure Call
Protocol)
13
234
Application Protocols
143.
Filing
Protocol
Overview
. . .I"
3.1.
Clients
andServers
.1~
32
Procedures
. .18
33-
Sessions
34.
Users
andAuthentication
19
20
20
21
21
7 1
3
5.
Files:
content and attributes36.
Handles
3.""
Controls
38.
Scopes
39.
Errors
22Implementation Descriptions
. .24
4.1.
Attribute Acceptance
-Services
.
25
4.1.1.
Xerox 8037 File Service
254
1.2
VAX/VMSFile Service
254.1.3.
UNLX
File
Service
2"4
2
Attribute Usage
-Clients
28
42
1
XDEFileTool . . .2842
2
VAX/VMSClient
. .29
4.2
3.
UNLXClient
. . .2943.
Procedure Support
-Services
...30
4
32
VAX/VMS File
Service
30
4.3.3-
UNLX File Service
32
4.4.
Procedure
Support
-Clients
33
4.4.1.
XDEFileTool
33
4.4.2
VAX /VMS Client
. . 354.4.3.
UNLX Client.
...35
Implementation
Incompatibilities
. .3"
5.1.
Areas
ofIncompatibility
3~
51.1.
Non-support
ofFiling
constructsby
the nativeoperating
system38
5.1.2.
Alternate
specificationsin
theFiling
Protocol
.38
5.2
Resolving
incompatibilities
39
52 1.
Non-support
ofFiling
constructsby
the nativeoperating
system39
5.2.2
Alternate
specificationsin
theFiling
Protocol
42FilingSubset
456.1.
Overview
456.1.1.
Motivation . 456.12
Requirements
andGoals
466.2
Definition
4"6.3.
Attributes
... 486.3.1.
Mandatory
Attributes
486.3.1.1.
createdOn 4863
12dataSize
.48
6.3.1.3.
isDirectory
486.3
14
modifiedOn . 496.3.I
5
pathname . 496.3-1.6.
type50
6.32.
Implied Attributes
50
6.3-3.
Optional Attributes
50
6.4.
Remote
Procedure Support
.50
6.4.1.
Session Support
.51
64
2
Opening
andClosing
Files
. .51
6.4.3
Enumerating
Files in Directories
52
6.4.3-1.
Scopes
.52
6.4.3-2
Attribute
Support
52
6.4
6.
Deleting
Files
.546.5.
Remote
Procedure
Restrictions
. .546.6.
Remote
Errors
.566.7.
Procedures
andAttributes
56
6.8.
Courier Definition
60
References
6"Appendices
A
FilingSubset Implementor's Guide
69
Abstract
The Xerox Network System is
composed ofheterogeneous
processors connected across avariety
oftransmissionmedia A series ofprotocols
is
defined
todescribe
the communication mechanismsbetween
system elements.
One
of these protocols, theFiling
Protocol,
defines
a general purposefile
managementsystem.
Current implementations
of the protocol, althoughderived
from
theXerox
specification,fall
short of
providing
theinterconnect! vity between
elementsdesired in
aheterogeneous
network systemThe
definition
of aneasily
implemented
protocol subset that provides the commonfile
systemfunctions
of retrieval, storage, enumeration/location and
deletion
is
derived
from
experiences with severalimplementations This definition
and anaccompanying
implementation document
provide a mechanismto guide
future
implementations
towardincreased
interconnectivity
Keywords
andPhrases
Network
Protocols,
Distributed
File Systems
Computing
Review
Subject Codes
C.2 2
[Computer-Communication
Networks]:
Network
Protocols
Protocol
architecture,C24
[Computer-Communication
Networks]:
Distributed
Systems
Distributed
applications,D
43
1.
Introduction
The Xerox Network
Systems
(XNS)
architecturedefines
a series of protocolsfor
usebetween
systemsin
a
distributed computing
environmentThese
protocols provide a mechanismfor
communicating
between
a
variety
ofmachines across avariety
oftransmission media, andencompass thefull
rangeoftheISO/OSI
reference model
from
the physical through applicationlayers. Application
protocols aredefined for
filing,
printing,network objectlookup
and userauthenticationThe Xerox Network Systems
provide a general purposefile
management system whichis heirarchical in
nature andsupports a wide
variety
offunctions,
including
file
transfer, access control,file
location
andenumeration, random access, serialization and
deserialization
ofdirectory
heirarchies. The
Filing
Protocol
represents a
formal
definiton
ofthisfile
systemas well as a guidefor accessing
thesystem.As
the network modelhas
been
refined,implementations
of this modelbecame
more prevalentIt
became
clear that there aremany
operating
systems and application processes which1)
have
a specificneed
for
certainportions, orjust
a subset, oftheFiling
functions
and/or2)
do
nothave
the requirementsor resources to support the
Filing
Protocol in its
entirety.For
example, a subset intendedfor
simplefile
transfer and enumeration
has
a range of uses within the areas ofdistributed
printing
electronicpublishing
andinterconnectivity
ofheterogeneous
systems.Currently
several commercialimplementations
of theFiling
Protocol existfor
different
systemconfigurations.
Although
each oftheseimplementations is based
upon theXNS specificationfor
Filing,
in
reality, each of these
implementations
falls
short of thefull
implementationThe
resultis
alack
ofinterconnectivity
because
thereis
noformal definition
of a standardFiling
subset toguide coordination ofthe implementation schemes
This
thesisis divided into
several sectionsdocumenting
the evolution of a subset of theFiling
Protocol
for
use as a simplefile
transfer protocolThe
thesis was motivatedby
my
inital experiencesinvolved
work resulted
in
theformal definition
andincorporation
of theFilingSubset Protocol into
theXerox
Filing
Protocol
andthedevelopment
oftheaccompanying implementor's
guide.Section 2
is
an overviewof theXNS
architecture and therelationship
between
theXNS
protocolfamily
and the
ISO/OSI
Reference
Model
Section
3 describes
the concepts and termsdefined
by
theFiling
Protocol
as afoundation
for
understanding
the moredetailed
discussions
in
later
sectionsSection
4describes
severalexisting
Filing
implementations
and points out theincompatibilities
evidencedbetween
them.
This
description
highlights
thedifficulty
in
providing
interoperability
between
variousimplementations. Section 5
presents a specific solution to the problemsfrom
theseimplementations
ofthe
Filing
Protocol. The
choices madein
this section are thenformalized into
a subset of theFiling
Protocol
that provides theintended
file
transferfunctionality
This
formal
specification of theFilingSubset Protocol is
presentedin
Section
6.
Appendix A includes
the FilingSubsetImplementor's
Guide,
adetailed
implementation strategy
for
theFilingSubset Protocol.
This strategy describes
theimplementation
ofthe protocolfrom
general perspective anddescribes
specific support required on theUNIX
andVMS
operating
systems.A copy
of verion6
of theXerox
Filing
Protocol
is included in
Appendix B
for
referenceThis
version contains theXerox
definition
oftheFilingSubset
Protocol,
which2.
XNS
Architecture
The
XNS
architecturedefines
afamily
of protocols and standards to providefor
the exchange andhandling
ofinformation
within adistributed
network environment.This
architectureis
an outgrowth ofthe
3MB Ethernet
used withinXerox
from
theearly ^"O's into
the1980s. This
experimental networkwas
developed
atXerox's Palo Alto Research Center
(PARC)
andhas
been
the subject of numerouspublishedpapers.
The XNS
protocols represent a refinement oftheearly
research protocolsAs
the architecture graduatedto the 10MB
Ethernet
and other transmission media, research continuedinto
numerous application areasand products were
developed
to provide greaterdiversity
andricherfunctionality
This
section presents an overview oftheXNS
architecture andits relationship
to theISO/OSI
referencemodel
The intent is
to providethe reader with somebackground
on the structured approach of theXNS
architecture and the
interrelationship
between
the various protocols thatit
defines
This
interrelationship
is important in understanding
thedefinition
and use oftheFiling
Protocol
later in
this thesis2.1.
ISO
ModelIn 1981
theInternational Organization for Standardization
(ISO)
defined
a reference model[11]
for Open
Systems Interconnection
(OSI)
consisting
of"
layers
of protocols as shown inFigure 2
1Each
of theselayers
offersdistinct
functions
thatdepend
upon thelower
layers
and in turn are relied uponby
thehigher layers. The layers included in
thismodelare-Layer
1: Physical
This
layer
performs the actual transmission ofdata
over the physicalcommunication medium
Layer 2
Data Link
This layer
provides reliable transmissionby
organizing
thedata into
UserProcess UserProcess
Application
Presentation
Session
Transport
Network
Data Link
Physical
Application Protocols
Presentation Protocols
Session Protocols
Transport Protocols
Network Protocols
Data Link Protocols
Physical Protocols
*- Application
i 1i
* Presentation
t
-Session
a
Transport
t
? Network
t
^ Data Link
a
* Physical
End SystemA
Layer 3: Network
Layer
4
Transport
Layer 5: Session
Transmission Medium
ncj System BFigure 2
1ISO/OSI Reference Model Protocols
The
responsibility
of thislayer is
to organizehigher level data into
packets which are transmitted to the recipient
To
performthis,
thenetwork
layer
must providefor
packetaddressing
androuting
This
layer
provides reliable end-to-end transmissionindependent
ofany
intermediate
nodesThe
sessionlayer
providesfor
the establishment, management,to
destination
This
connection existsindependent
of theunderlying
transportconnections
Layer
6: Presentation
This
layer
translates userdata
objectsinto
theform
transmittedbetween
systemsCommon
translationsmay include data
compression,encryption and charactercode conversions.
Layer 7: Application
This layer
performs applications specific to the environmentin
whichthenetwork
is
usedThe XNS
architectureis
organizedinto
a series ofprotocollayers
whichclosely
resemble theISO
modelHowever,
in
severalinstances,
a singleXNS
layer
corresponds to multipleISO
layers
The XNS layers
andtheir associationtothe
ISO
modelis
depicted in Figure 2 2
2.2.
Servers,
Services
andClients
Two
terms usedquitefrequently
whendescribing
theXNS
architecture are thoseofclientsandservers.Any
device
attached to the networkfor
the purposes ofpro\ding
a service to network usersis
referredto as a server
The
collection of software which accomplishes a specific taskby
following
adefined
protocol
for interaction is commonly
referred toasaserviceSeveral
typesof servers are evidentin
the XNS environment Adedicated
server performs a specifictaskand
nothing
else.A
print serveris
an example of such adedicated
server A servermay
alsobe
a generalpurpose computer capable of
providing
several services simultaneously, such asnaming
authenticationand mail services
In
addition, a user workstationmay
function
as a network server on occasion,for
example,a
temporary file
service.
The entity
which makes requests of a serviceis
called a clientClients typically
perform work onbehalf
of a user;
however,
servicesmay in fact be
clients of other services under certain conditions, such asInterpress Mail
Format
Raster
Encoding
Standard
Information Format
andEncoding
Standards
Layer
7
Application
Printing
ProtocolFiling
Protocol Mail Transport ProtocolGateway
Access ProtocolBasic Application Services
Clearing
house Protocol Authenti cation Protocol Time Protocol Font Standards Character Code StandardApplication
Support Environment
Layer
6
Presentation
Layer
5
Session
Courier Message Stream
Object Stream
Block Stream
BulkData Transfer Protocol
Courier
Layer
4
Transport
Layer
3
Network
Echo Protocol Sequenced Packet Protocol Packet Exchange Protocol Error ProtocolRouting
Information ProtocolInternet Datagram Protocol
Internet Transport
Protocols
Layer 2
Data Link
Layer 1
PhysicalEthernet
Data Link Layer
Ethernet Physical Layer
Ethernet
X2s Virtual Circuit S\nchrunous Point-to-Point ProtocolRS-232,
RS
449,
X.21,
etc.2.3.
XNS
Protocols
andStandards
2.3.1.
Physical/Data
Link Protocols
The
primary
transmission medium usedby
XNS is
theEthernet
[7].
The
Ethernet
specificationdescribes
both
the physical anddata
link
layers
asdefined
by
theISO
model.XNS
also supports other standardphysical
interfaces
(RS-232,
RS-449
andX
21)
anddata
link
protocols(X
25
and synchronouspoint-to-point protocol).
2.3.2
Internet Transport
Protocols
Typically,
a network consists ofmany
sub-networkconfigurations which are connectedin
some mannerEach
of these sub-networksmay
use adifferent
physical transmission mediumHowever,
aninternet
protocol provides the
functions
which allow these sub-networks tobe
addressed as a single uniformnetwork
The
XNS
network,like
other packetswitching
networks, routes each packet, ordatagram,
individually
This
conceptdiffers
from
thatofa virtual circuitin
that nopriorsetup is necessary between
the respective source and
destination
nodesbefore
data
canbe
exchanged A transport protocol mustprovide the mechanisms to
insure
that packets aredelivered
to thereceiverin
the same orderin
whichthey
weresent, with noduplication
or omissionThe XNS Internet Transport Protocols
[9]
provide these services through severallayered
protocols, eachperforming
adistinct function.
The Internet Datagram Protocol
defines
thefundamental
unit ofdata
an internet packet, whichis
passedwithin the
internet,
and alsodefines
the meansfor
these packets tobe
addressed, routed anddelivered
Each
packet containsaddressing information
(source
anddestination
addresses), controlinformation
(checksum,
length,
packettype andtransportcontrol)
anddata (encoded higher lev
el protocoldata).
The Sequenced Packet Protocol
(SPP)
providesfor
the reliabledelivery
of packetsfrom
source todestination.
It is
this protocol that guarantees thedeliv cry
of packets in order with noduplication
orThe
Packet
Exchange
Protocol
(PEP)
provides afacility
for
efficient request-response orientedcommunication.
This
is
typically
used when a singleinternet
packet can contain the responsedata
andthe
reliability
achievedthroughtheuse oftheSequenced Packet Protocol is
not requiredThe Error Protocol
providesa standard mechanismfor
errors tobe
communicatedThe
Routing
Information
Protocol
defines
the meansby
which networkrouting
tables are maintained.Each
network node must maintain arouting
table whichis
used to route individual
packetsfrom
onenetwork to another
This
protocol providesfor
thebroadcast
and maintenance of theinformation
contained withinthe tables
The Echo
Protocol
defines
a simple means toverify
the existence and correct operation ofany
networkhost.
2.3.3
Courier
(Remote
Procedure Call
Protocol)
The Courier Protocol
[6]
defines
the mannerin
which clients andservers interact within thedistributed
XNS
environmentCourier defines
a single request reply, or transaction, mechanism upon which allhigher level XNS
protocols arebased
Courier is based
upon the remote procedure call model, where an active clientinvokes
operationsprovided
by
a passive network server ACourier
callis
analagous to a subroutine call where argumentsare passed onthe call and values
may
be
conveyed on the return,as shownin
Figure2
3
CALLprocedure arguments
RETIRN results
-or--ABORTerror,arguments
Figure 2
3
Courier
modelPassive
Courier is defined
asconsisting
of threelayers
theblock
stream, the object stream and the messageSequenced
Packet Protocol.
The
object streamimposes
structure onto thisbinary
data
in
theform
ofcommon
data
types(such
asbooleans,
cardinals, strings, etc). The
message stream structures thesedata
types
into
Courier
procedure calls andrepliesThe
messageanddata
typessupportedby
Courier
alsoform
thedefinition for
alanguage
in
whichallXNS
application
level
protocols are written.The formal
definition for higher
level
protocols consists oftransaction-orientedexpressions written
in
thisCourier
language
There may
be
instances
where applicationsdesire
to sendlarge
amounts ofdata
for
whichit
does
notmake sense to pass the
data
as a procedure argument.For
this reason,Courier
alsoincludes
aBulk Data
Protocol
[2]
whichdefines
the mechanismfor
transmitting
simple streams ofdata between
twoCourier
applications.
For
the purposes of transmission, thisdata
may be
viewed
as a singleCourier data
objectwhich
is interpreted
based
upon thecontextofarecentCourier
callBulk
data
transfersmay
takeplacein
two
forms:
immediate,
where theinitiator
is
either the sender or receiver of thedata
and third party,wherethe
initiator
causesthedata
tobe
sentfrom
aseparate sendertoanotherreceiver2.3.4
Application Protocols
The XNS
application protocollayer
consists ofa set of protocols and standards that support and enhancethose protocols.
This layer is further
subdividedinto
threedistinct
levels,
the ApplicationSupport
Environment,
Basic Application
Services
andInformation Format
andEncoding
Standards
The lowest
level,
the ApplicationSupport
Environment,
providesthose services usedby
themajority
ofhigher level
applicationsSpecifically
thislevel
provides
thefollowing
functions
to present a secure andreliable network
for
thehigher levels:
location
of resources andindividuals
withinthenetworkuserauthentication
acommon time
base
for
theentire networkstandardization
for
the use offonts
andfont
servicesThe Clearinghouse
Protocol
[4]
defines
the mechanismsfor
objectnaming
andaddressing
within thenetwork.
The Clearinghouse
service and associateddatabase
is
decentralized
and replicated throughoutthe network.
This
protocoldefines
theinformation
storedby
the service and the meanswhereby
userscanretrievethe
information.
The
Authentication Protocol
[1]
defines
the methods usedby
clients and serverstoidentify
each otherin
asecure and reliable manner.
This
protocoldefines
the credentials which a user provides to gain accessto thenetworkservicesandthe proceduresemployed
by
clients and servicestoverify
these credentialsThe
Time
Protocol
[14]
defines
a standardformat for
the representation of time within the network andthemanner
in
which network clients receive thecurrent timefrom
anetwork timeserviceThe
Character Code Standard
[3]
defines
theencoding
of characterdata
within the networkThis
encoding
provides character assignmentsfor Ascii
andISO
646
characters as well as special charactersfrom many different
alphabets, mathematical symbols and graphics charactersThe
secondlevel,
consisting
oftheBasic Application
Protocols,
defines
the protocols neededby
users ofthenetwork ona regular
basis These
protocols provide thefollowing
commonapplicationsa global network
file
systemremote
printing
mailservices
interactive
terminal servicesThe
Printing
Protocol[12]
defines
the mannerin
which print requests are communicated to print serversandthe status ofprintrequests
is determined
The
Filing
Protocol[8]
defines
a general purposedistributed file
system and the mechanismfor
transferofThe
Gateway
Access Protocol
supports terminal emulation andfile
exchangebetween
non-XNS clientsand
XNS
servicesas well asXNS
clients and non-XNSservicesThe
Mail Protocol
defines
theformat
of mail messages and the means employed tosend and receive thesemessages.
The
thirdlevel,
consisting
of the Information andEncoding
Standards,
defines
specificformats
orlanguages for
theencoding
anddecoding
offiles
within the networkThis level
provides a uniformformat for
similarfiles
in
an effort to provide users with theability
to edit, print or transmit afile
anywhere withinthe network, regardless of
host hardware
or softwareInterpress
[10]
defines
a standard representationfor documents
which are tobe
printedIt
is
thislanguage
thatis interpreted
by
a print service prior to the actual printing.Interpress
provides dev ice
independence
for
the creators of printfiles
withinthe network.The Raster
Encoding
Standard is
thedefinition
of a general purposeencoding
for digital
imagesThis
standard
is
used to represent stand-aloneimages
tobe
viewed as well asimages
included
within3.
Filing
Protocol
Overview
The
Xerox Network
Systems
provide a general purposefile
management system whichis hierarchical in
nature and supports a wide
variety
offunctions,
including
file
transfer, access control,file
location
andenumeration, randomaccess, serialization and
deserialization
ofdirectory
heirarchies
The
Filing
Protocol
represents a
formal
definiton
ofthisfile
system as well as a guidefor accessing
thesystem.The
protocolbeing
defined
by
this thesis evolved as a subset oftheFiling
Protocol because
there wereexisting
implementations
of theFiling
Protocol
andcompatability
with theseimplementations
couldbe
preserved.
Since
theFiling
Protocol
contained thelevel
offunctionality
desired
for
the protocolbeing
defined,
thatfunctionality
simply
needed tobe
separatedfrom
thefull
protocolinto
thedefinition
of thesubset.
A
brief description
ofthebasic
concepts oftheFiling
Protocolis
presentedhere
to provide abackground
for
the remainderofthe thesisA
detailed description
oftheprotocolis
notintended,
sincemany
ofthesedetails
are not relevant to this thesis.Instead,
the complete Xerox specification oftheFiling
Protocolis
included,
for
reference,in
AppendixB The description
ofthe protocol thatfollows
defines
the terms andconcepts
intrinsic
tounderstanding
thework presentedlater
3.1
Clients
andServers
The Xerox
Filing
Protocol is
aformal
specification of a general purposefile
systemIt
defines
theinteraction that takes place
between
a.filing
client, anentity requesting
work tobe done
onbehalf
of auser,and a
file
service; theentity
accepting
requestsfor
workA
clientmay have
an explicit userinterface,
where specific user inputs controltheclient process actions,or
it may
be
invokedduring
the executionof a process where thereis
no userinteraction
A
file
service mav,but is
not required to, exist on a separate processor or serverMultiple
separatefile
services mav
in fact
reside on a single server A generaltime-sharing
computermay
provideafile
serviceAll
files
within afile
service are organizedin
aheirarchical
mannerEach
service contains a single rootdirectory
whichin
turn contains variousdescendant
subdirectories andfiles
All
files
residing
directly
in
a
directory
are referred toas children ofthedirectory
file. The
directory
which contains afile is,
in
turn,that
file's
parent.3.2
Procedures
The
Filing
Protocol
defines
a set of proceduresfor
variouslevels
offile
access and transferThe
procedures
defined
in
theXerox
specification areSession
Management-Logon
Logoff
Continue
establish a session
terminate asession
retainanopen session
during
a period ofinactivity-File
Access--Open
Close
open a
file
close a
file
Create
create afile
with no contentDelete
delete
afile
Access Control
Management-ChangeControls
GetControls
UnifyAccessLists
Attribute
Management-Change
Attributesmodify
thecontrolsin
effectfor
a previously openedfile
retrieve thecontrols
in
effectfor
apreviously
openedfile
unifv theaccess
lists
for
asubtreeGetAttributes
retrievethe attributesfor
afile
3.3
Remote
File
Management-Copy
Move
File
Transfer-Retrieve
Store
Replace
Serialize
Deserialize
Random
Access--ReplaceBytes
RetrieveBytes
File
Enumeration-Find
List
Sessions
copy
afile
andits
descendants
toanotherdirectory
move a
file
andits
descendants
toanotherdirectorv
retrieve the contentsof a
file
create a
file
with contentsreplace thecontents ofan
existing file
encode a
file
andits
descendants
into
a streamofbvtes
reconstruct a
file
andits
descendants from
a stream ofbytes
overwriteor appendto the
existing
content of afile
read a range of
bytes from
anexisting
file
locate
and open afile
in
adirectory
return attributesabout
files
in
adirectory
The
Filing
Protocol is
a session oriented protocol,in
that an explicit userlogon
mustbe
performed toestablish a session, with a subsequent
logoff
terminating
the session All procedure callsissued
by
theclient relative to the initial
logon
requesttakeplacein
thecontext ofthatsessionA
unique identifier called a sessionhandle
is
usedby
both
client and service processes to maintain thesession
handle
and returnsit
to the client.This
handle
is
then used on all subsequent client calls withinthe same session until a
logoff
occurs.The logoff
signals terminationof the session and causes the clientand serviceto
discard
thecorresponding
sessionhandle
Sessions
may
vary
greatly
in
theirduration
and amount ofactivity
Afile
servicemay
terminatea sessionat
any
timewhen a remote procedure callis
notin
progress.3.4
Users
andAuthentication
Each
session requires that some useridentification
be
presented to the service processThe
Filing
Protocol
providesfor
the use ofboth
primary
and secondary credentials.Primary
credentials arein
aform defined
in
theAuthentication Protocol
[1]
and are validated against a network Authenticationservice.
Secondary
credentials arefile
service specific andmay be
required as neededby
theunderlying
service
operating
systemThe
service performsthenecessary
validation ofthecredentials presented as apartof
logging
onto theservice3.5
Files:
content and attributesThe basic
unit of operation within theFiling
Protocol is
that of afile
A
file
is
alogical
grouping
ofdata
which
is
stored as a singleunitEach
file
is
viewed as eithertemporary
or permanentTemporary
files
do
not residein any
directory
andonly
existfor
theduration
of all sessions whichhave
thefile
open Permanentfiles
reside in a specificdirectory
and remainthere untilexplicitly
deleted
Each
file
consists oftwodistinct
parts content and attributesThe
content of thefile is
thedata
actually
contained
in
thefile
as a sequence of eightbit
bytes
This data is
uninterpretedby
thefile
service
exceptin
thecase whereaspecificformat is defined for
the transferofthedata
Attributes
areadditionaldata items
associated with afile's
content that mavbe
usedto provide
additionalspecific
meaning
to afile
service and resultin
adefined
behavior,
or uninterpreted,in
which casethey
arestored onthe
file
servicebut interpreted only
by
the clientEach
attributeis
designated
by
an attributetype, many
of whicharedefined
by
theFiling
Protocol. Each
ofthese
defined
attributetypesmustbe
interpretedby
allfile
servicesimplementing
theFiling
Protocol.
Attributes
normally
are obtained and modifiedby
explicit client action;however,
certain proceduresdo
result
in
file
servicemodification ofattributes.Interpreted
attributes existin
severaldifferent
categories;identification
relatedfilelD.
isDirectory, isTemporary.
name, pathname, type andversioncontent related checksum,
dataSize
andstoredSizeparent related parentlD and position
event related createdBy, createdOn, modifiedBy, modifiedOn,
readBy
and readOndirectory
related childrenUniquelyNamed, numberOfChildren, ordering, subtreeSize andsubtreeSizeLimit
access related accessList and
defaultAccessI.ist
3.6
Handles
Filing
clientsissue
requests to afile
service to operate onfiles
When a service creates a newfile
oropens an
existing
file
onbehalf
of aclient, afile handle
is
created and returned to theclientThis
handle
is
usedby
the client and service toidentify
thefile
within the context of a sessionThe
handle
is
discarded
oncethefile is
closed or thesessionis
terminatedThe
actual structure of afile handle
is
service specificandis only
interpretedby
thefile
service3.7
Controls
A
clientmay
request access to afile
with certain access characteristics tobe imposed
by
the serviceintended interaction
with afile
by
the client.Controls
canbe
usedby
the service todetermine
thelevel
of
interaction
with afile
that can occursimultaneously
by
several clients.Since
controls are relative to agiven
file
handle,
they
can alsobe
used to control accessby
the same clientif
afile
is
opened multipletimes
in
asingle session.Specifically,
controls candesignate:
lock
timeout
access
atype of
lock
(none,
share orexclusive)
atimeout periodto
be
usedin
waiting for
alock
a set of access permissions requested
for
afile
3.8
Scopes
When
clients enumerate orlocate
files,
they
specify
arguments, called scopes, todescribe
the selectioncriteriato use
Scopes
canspecify
thefollowing:
count
depth
direction
filters
the maximum numberof
files
topresent to the clientthe
nesting
level
ofdescendants
toconsiderduring
the searchthe
direction
of examination, eitherfrom
beginning
toend or endtobeginning
the conditions on attributes to
be
usedfor
identification (conditionis True
orFalse,
condition equal toa constant, or alogical
combination ofconditions)
3.9
Errors
Consistent
with theCourier
model, theFiling
Protocol
will return appropriate errors when a procedurecallcannot
be
servicedcorrectly
Specifically,
thefollowing
classes oferrorsmay be
returnedAccessError
ArgumentError
the
desired
file
accessis
not possiblea specified argument
(attribute,
control orscope)
type or value wasinvalid
ConnectionError
HandleError
InsertionError
RangeError
ServiceError
SessionError
SpaceError
TransferError
UndefinedError
the
bulk
data
connectioncouldnotbe
establishedthespecified
file handle
wasinvalid
thespecified
file
could notbe inserted
into
thedirectory
thespecified random access
byte
rangewasinvalid
the sessioncould not
be
created orterminatedthespecified session
handle
wasinvalid
thespecified storage
for
thefile
could notbe
allocatedthe
bulk data
transferencountered a problem4.
Implementation Descriptions
This
section presentsdescriptions
of severalexisting
implementations based
upon theXerox
Filing
Protocol
definition. These descriptions
areintended
todemonstrate
the potential areas ofincompatibility
arising from
thedifferences
in
eachimplementor's
choice of a specific subset.This
section willdiscuss
thefollowing
implementations
:1)
theXerox Network Systems
803"File Server
and
Xerox
Development
Environment
FileTool
client,2)
Implementation
A
for
VAX/VMS
and3)
Implementation B
for
VAX/4 2BSD
UNLX andSystem
VUNIX The
anonymousidentification
of thelatter
two
implementations
resultsfrom
theproprietary
nature of thecorresponding
commercial productsThey
areincluded in
thediscussion because
they
areworking
examples ofdifferent
implementations,
eachof which attempted to support useful
functionality
.They
provide concrete examples of the variousforms
ofincompatibilities
whichmay
be
experienced.The
descriptions
presented will compare theimplementations
with regard to two categories: attributeacceptance/usage and procedure support
The discussion
of attribute acceptance and usagefocuses
onthe acceptance and retention of
Filing
attributesby
afile
service and the usage of attributesby
theclients.
The discussion
of procedure supportdescribes
where the implementationsdiffer
from
theFiling
Protocol in
their supportfor
Filing
proceduresThis description does
not encompass thefull detail
ofthese
implementations,
rather,it is intended
to provide a perspective on the alternatives available whenimplementing
a subset of the protocol and theinteroperability
problems which are a result of thesealternatives.
The
problems pointed outin
this section provide the motivationfor
this thesisThey forcibly
demonstrate
the needfor
a single welldefined
protocol,in
order to achieveinteroperability
between
heterogeneous
implementationsSection 5 describes
some of the specific choices made indefining
thisstandard subset and Section
6
specifics theresulting
Filing
Protocol subset which provides thedesired
4.1
Attribute Acceptance
-Services
Table 4.1 lists
theattributes allowed on those procedures acceptedby
atleast
two of the various serverimplementations. From
thistable, it is
evident thatonly
a small subset of attributesis actually
acceptedand
subsequently
retainedby
each oftheimplementations
andthattheintersection
ofall three representsan even smaller subset
4.1.1
Xerox
8037
File
Service
The
Xerox
803"File Service
supports thefull
Filing
Protocol
with respect to attribute supportThe List
and
GetAttributes
proceduresallow specification ofany
attributes and will return appropriate valuesfor
theattributes requested.
The Open
andStore
procedures allowonly
thoseattributes specified aslegal in
theseries oftables
in
Section
3
10
oftheFiling
Protocol
[8]
Attribute
specificationis
also supportedfor
the
Copy,
Deserialize,
Move
andReplace
attributes althoughthey
are not includedin
Table
41
sinceneitherthe
VMS
orUNIX implementations
support theseprocedures4.1.2
VAX/VMS File Service
The VAX/VMS
serviceonly
supports those attributes whichreadily
map into
specific VMSfile
systemconstructs
In
addition, the range of attributes supportedis
not consistent across each of the proceduresimplemented.
Attributes
that are notincluded in
the table are not accepted and thecorresponding
procedure
is
rejectedHowever,
not all attributes accepted on various procedures are,in
turn, retainedby
thefile
service.A List
procedureis
rejectedif
an attribute type other than createdBy, createdOn,dataSi/e
filell),
isDirectory,
modifiedOn, name, readOn, type or versionis
specified Appropriate values are returnedfor
eachofthese attributes
The Open
procedureonly
accepts thefilell),
name, parentlD and version attributesThe
Open
willbe
Procedure Xerox 8037 File Service VAX/VMS File Service UNK FileService
ChangeAttrlbutes
accessList checksum childrenUniquelyNamed createdBy createdOn defaultAccessList name ordering position subtreeSizeLimit type versionprocedurenot supported all attributetypes
Create accessList checksum childrenUniquelyNamed createdby createdOn dataSize defaultAccessList
isDirectory
isTemporary
name ordering position subtreeSizeLimit type versionprocedurenot supported all attribute t\pcs
GetAttrlbutes
(values
returnedfortheseattributes)
all attribute types procedurenot supported dataSize
isDirectun
modifiedOn
name
type
List
(values
returnedfortheseattributes)
all attributetypes createdBy
createdOn dataSize filelD
isDirectory
modifiedOn name readOn type version dataSize isDireann modifiedOn name typeTable 4.1
Procedure Xerox
8037
File Service VAX/VMS FileService
UNIX
File Service
Open filelD
name
parentlD
pathname
version
file ID
name
parentlD
version
allattribute types
Store accessList
checksum
childrenUniquelyNamed
createdby
createdOn
dataSize
defaultAccessList
isDirectory
isTemporary
name
ordering
position
subtreeSizeLimit
type
version
createdBy
createdOn
dataSize
isDirectory
name
type
version
all attributetypes
Table 4 1
(continued)
Service
acceptanceof attributetypesThe Store
procedureis
rejectedif
the client specifies an attribute type other thancreatedBy
, createdOn,dataSize, isDirectory,
name, type or versionOnly
the attributes name, type and version areactually
retained withthe
file;
valuesfor
theother attributes arc acceptedbut
ignoredThe
ChangeAttributes,
Create
andGetAttributes
procedures are not supportedby
the VMSimplementation.
4.1.3
UNLXFile Service
The UNLX
file
service supports adifferent
subset ofFiling
attributesAgain,
only
those attributesreadily
mapped
into Unix
file
system constructs are supported and retained with thefiles
The
file
service willThe
ChangeAttributes
procedureonly
allows the name attribute tobe
specified.If
the name attributeis
not
specified,
the procedureis
rejected;however,
specification of other attributesdoes
not cause theprocedurecallto
be
rejected.The
Create,
Open
andStore
procedures accept all attributes anddo
not reject the procedure callaccording
to thelegality
of the attributes as specifiedin
theFiling
definition.
Although specification ofthe
isDirectory
and name attributes arenecessary for
theservice toprocess theOpen
procedurecall, theprocedure
is
not rejectedif
either ofthese attributes are missing.All
attributes specified on theCreate
and
Store
procedures, withtheexceptionofisDirectory
andnameare not retainedThe
dataSize,
isDirectory,
modifiedOn, name and type attributes are acceptedby
theGetAttributes
andList
procedures and appropriate values returnedOther
attributes are accepted,but
values aresimply
omitted
from
thelist
returned totheclient.4.2
Attribute Usage
-Clients
Table
4.2
compares theuse of attributesby
clients on those proceduressupportedby
one or more clientsFor
eachprocedure, the clientmay
useany
combination oftheattributeslisted This
tablein
conjunctionwith
Table
4
1 is
usefulin
identifying
theincomptabilities between
the variousclients and services4.2.1
XDEFileTool
The Xerox
FileTool uses a subset of thedefined
Filing
attributesdepending
upon thehigher level
userfunction
being
performed.For
example, theOpen
proceduremay specify
the pathnameorfilelD
attributedepending
upon whetheraprevious GetAttributes
was performed todetermine
thefilelD
attribute value.The List
procedureonly
requests thoseattributesactually
specifiedby
an optionin
the userinterface
Usage
ofattributesby
the FileTool clientis legal
asdefined
by
the tables inSection
3. 10
of theFiling
Procedure
XDE FileToolVAX/VMS
Client
UNLX
Client
ChangeAttributes
procedurenot used procedurenot used nameCreate
procedurenot used procedure not used nametype
GetAttributes
pathname procedurenot used dataSizemodifiedOn name type List createdBy createdOn dataSize modifiedOn name pathname readOn type version dataSize
isDirectory
name type dataSize modifiedOn name typeOpen file ID
name pathname name
isDirectory
name Store createdOn dataSize name type dataSizeisDirectory
name type dataSize modifiedOn name typeTable
-42
Client
usage of attribute types4.2.2
VAX/VMS
Client
The
VAX/VMS clientonly
uses those atributesnecessary
toidentify
files
and maintainround-trip
integrity
ofthedata between Xerox
andcorresponding
VMS
servicesThose
attributes supportedinclude
dataSize,
isDirectory,
name and type4.2.3
UNLX Client
The UNLX
client also makes use ofonly
a small set of attributesfor
the same reasons as theVMS
client4.3
Procedure
Support
-Services
Table 4 3 depicts
thelevel
of supportfor
Filing
defined
proceduresby
the variousimplementations Each
non-empty
entry
describes
digressions
from
theFiling
Protocol
that are evidencedby
theseimplementations.
4.3.1
Xerox
8037 File
Service
The Xerox
803"7File Service
implementation was the originalimplementation
of theFiling
Protocol
andprovides support
for
much ofthe protocol asdefined Some
anomalies are present which are of specificimportance
whenconsideredin
conjunction withtheotherimplementations
The List
proceduredoes
not allow specification ofthe pathname attribute on afilter
oftype matchesThe
Create
andStore
procedures allow theisDirectory
andtype attributestohave conflicting
valuesThe
isDirectory
attributeis
thesoleindicator
ofdirectory
files
on thefile
service; specificationof atDircctory
type value without an
accompanying
isDirectory
value ofTRUE
does
not create adirectory
on thefile
service
4.32
VAX/VMS
File Service
The
VAX/VMS implementation supports alimited
set of proceduresThe
Logon,
Logoff, Open, Close,
Delete,
Store,
Retrieve, List
andContinue
routines are theonly
procedures supportedOf
these,only
theLogoff, Close,
Delete
andContinue
proceduresdo
notimpose
somerestrictions upon their useThe
Logon
procedure willonly
acceptAuthentication
credentials of type simple An appropriaterejection
is issued if
other credentialstypesare specifiedThe Open
procedureis
restrictivein
the type of attributesit
allowsThe
acceptance of attributesis
described in
Section4.1.1.
The Store
procedure also imposes restrictions on the types of attributes accepted andsubsequently
Procedure
Xerox File ServiceVAX/VMS
FileService
UNLX
File Service
Logon - credentials
(simple)
credentials(not in Xeroxform)
Logoff - -
-Open ""
attributesupport
controls
(only
exclusivelock)
attribute support
allcontrols acceptedbutnot
implemented
Close
- --Create
"* not supportedattribute support
allcontrols acceptedbutnot
implemented
Delete -- -
-GetControls
- not supportednot supported
ChangeControls
~ not supported not supportedGetAttributes
-not supported
-ChangeAttrlbutes
- not supported-Move - not supported not supported
Store controls
(only
exclusivelock)
removeCRfromtText
records
separate procedurefortText
storage
all controls acceptedbutnot
implemented
Retrieve
-addedCRto tTextrecords separate procedurefortText
retrieval
Serialize
-not supported not supported
DeSerialize - not supported not supported
Find - not supported not supported
List "" scopes(countorfilteroftype
matches onpathnameor
equal on versionattribute)
implementedown
wildcardingprocedures
scopes(not
implemented)
Continue - -
-Unify
AccessLlsts - not supported notsupportedRetrieveBytes - not supported notsupported
ReplaceBytes - not supported notsupported
Table
43
rejected.
A
conversion offile
contentis
performed onincoming
files
of type tText to preserve theeditability
ofsimple textfiles
throughout the networkThe
service assumes that a carriage returnis
therecord
delimiter
andsubsequently
strips these characters toform
recordswhenwriting
toVMS
files
The
Retrieve
procedure performs theinverse
conversion offile
contentif
thefile
being
transferredis
oftype tText.
Specifically,
a carriage return characteris inserted
at the end of each record asit is
enteredinto
thebulk
data
streamThe VMS
servicedoes
notallowstorage orretriev al ofdirectory
files
The List
procedureonly
allows specification of afew
types of scopes:1)
count or2)
filter
of typematcheson the name and
3)
filter
oftype equal on the version attribute.In
addition, the count scopeis
not used when
formatting
the returned attributelist
The List
procedure alsoimposes
restrictions onacceptanceof attributetypes as
described in Section
4.1.1.4.3.3
UNLX File
Service
The
UNLX
service implementation supportsonly
theLogon,
Logoff,
Open,
Close,
Create,
Delete,
ChangeAttributes,
GetAttributes,
Store, Retrieve,
List
andContinue
proceduresThe
Logoff,
Close,
Delete
and
Continue
are theonly
procedures whichimpose
no restrictionsbeyond
theFiling
Protocol
definition
The Logon
procedure acceptsonly
credentialsin
the simpleform;
however,
theencoding
of thecredentials
data
does
not adhere to theAuthentication
Protocol,
since the XNS modelofauthenticationis
not supported
The Open
andCreate
proceduresimpose
restrictions on the types ofattributesaccepted, asdescribed
in
Section
4.
1.3.
In
addition, severalnon-Filing
attributes aredefined
and are requiredby
the service toidentify
files. These
procedures also accept all controls types, even though noform
of controlsis
provided
by
theservice.The Store
procedure,like Open
andCreate,
accepts allcontrols types withoutproviding
specific supportchosen
by
theVMS
implementation.
Specifically
, animplementation-specific
procedureis defined
whichis
used to storefiles
oftype tText.The
content of thesefiles
is
actually
maintained across thebulk
data
stream
by
defining
aformat for encoding
thedata
into
thebulk data
streamThe
Retrieve
procedureis identical
tothatdefined
in
theFiling
definition.
However,
a separateroutineis
implemented
for
retrieval offiles
of type tText.This
proceduresimply
performs theinverse
of theencoding
performedby
theanalagousStore
procedure.The
List
procedure wastotally
incompatible
with theFiling
definition
since the scope selectionmechanism was not
implemented
The
client used animplementation-specific
procedure to establish thecontext
for
wildcardsearcheson theserviceThe List
procedurewas then usedtodetermine
the nextfile
matching
thepreviously
specifiedfile
specification and return therequestedattributes.4.4
Procedure
Support
-Clients
Table
4.4
describes
those procedures usedby
the various clientimplementations
andany
restrictions ontheir use
Many
of the restrictionsdescribed
arecomplementary
to restrictions enforcedby
thecorresponding file
service.4.4.1
XDE FileTool
The Xerox
clientonly
usestheLogon, Logoff, Open, Close,
Delete,
GetAttributes,
Store,
Retrieve,
List
andContinue
proceduresAll
procedures areimplemented in
accordance with theFiling
definition
The
Delete
proceduredoes,
however,
make use of multiple transport connectionsspecifying
a singleFiling
session
handle. Although
thisfeature
is
allowedby
thedefinition
ofCourier,
it is
not usedby
the otherclient implementations.
Controls
specified ontheOpen
andStore
procedures areoftypeempty
The List
specifies afilter
of typeProcedure
XDE FileTool VAX/VMSClient
UNLX ClientLogon - credentials
(simple)
credentials(notin Xeroxform)
Logoff - -
-Open attribute use
controls
(empty)
attribute use
controls
(empty)
attribute use
controls
(empty)
Close
- --Create not used not used attribute use
Delete usesmultipletransport
connectionsforasingle session
--
--GetControls not used not used not used
ChangeControls not used not used not used
GetAttributes
-not used attribute use
ChangeAttrlbutes not used not used attribute use
Move not used not used not used
Store attribute use
controls
(empty)
attribute use
controls
(empty)
addCRto tTextrecords
attributeuse
controls
(empty)
separate procedurefortText storage
Retrieve
-removeCRfromtText records
separate procedurefortText retrieval
Serialize not used not used not used
DeSerialize not used not used not used
Find not used not used not used
List scopes
(only
filteroftype matches on nameattribute)attribute use
scopes
(only
filteroftype matches on nameattribute)attributeuse
implementedown
wildcardingprocedures scopes(not
implemented)
Continue ~ -
-Unify
AccessLists not used not used not usedRetrleveBytes not used not used not used
ReplaceBytes not used not used not used
Table
4 4Client
implementations4.4.2
VAX/VMS Client
The
VMS
clientimplements
the same procedures asFileTool
with the exception of theGetAttributes
procedure.
Attribute
usage on those proceduresis legal
asdefined
by
the protocol, althoughonly
alimited
number of attributesare used, asdescribed in Section
42.2
Simple
credentialsarespecifiedby
the clientonaLogon
procedure.Controls
specified on theOpen
andStore
areempty
The
List
procedure performs selection with afilter
oftypematches on the name attribute.
The Store
andRetrieve
proceduresperform the same conversionoftTextfile
content as theVMS service4.4.3
UNLX
Client
The UNLX
clientimplements
theChangeAttributes
andCreate
procedures in addition to the proceduressupported
by
theXDE
clientThe
subset of attributesimplemented
for
use on those proceduresis
described in Section
4.2 3
The
Logon
procedure uses credentials of type simple,but does
not encode thedata according
to theXerox
Authentication ProtocolEmpty
controls are specified on theOpen,
Create
andStore
proceduresThe Create
procedureis
only-used to create
empty
directory
files
However,
the type attribute is used toconvey
a type oftDirectory
without an
accompanying
isDirectory
attributeThis
useis legal according
to theFiling
definition but is
in
conflict with theXeroxfile
service
implementationThe
client also uses two implementation-specific proceduresfor
the storage and retrieval of type tTextfiles. These
procedures perform the sameencoding
'decoding
offile
content as their counterpartsimplemented in
the UNLXfile
serviceWildcard
listing
is
also performed via an implementation-specific procedure whichis
usedby
the clienteach
file matching
the wildcardcriteriaThe
Filing
selection mechanismof scopesis
not implementedby
5.
Implementation
Incompatibilities
A
welldefined
protocol,
such as theFiling
Protocol,
minimizes the opportunitiesfor
incompatibilities
within
implementations
of theprotocol.However,
implementation
ofonly
a portion ofthefull
protocolincreases
thepossibility
that theinteroperability
willbe
reduced.Section
4
describes
specific pointswherethe
implementations
discussed
were not compatiblebecause
there wasonly
a small intersectionin
the subsets of the protocol chosen
for
implementation.
The
resulting
disparity
in
implementationstrategiespoints outtheneed
for
asingle subset whichis
supported acrossallimplementations.
Maximum
compatibility between
implementations
of a subset protocolis
based
on awell-specified set ofprocedures and attributes which
form
arequiredbasis for
allimplementations
tosupport.This definition
must
precisely
specify
the actions performedby
each of the procedures and thehandling
of thedefined
attributes withineach ofthoseprocedures.
A
richer set offunctions
may be
implemented as incrementallevels
of supportbeyond
thedefined base
level
This
sectiondiscusses
thepotential areas ofincompatibility
and selects specific solutions that are used tobuild
thespecification ofthe subset protocolin
Section
6
Alternatives
are selectedbased
on theneedfor
file
transferbetween
heterogeneous
systems.5.1
Areas
ofincompatibility
The descriptions
of the variousFiling
Protocol
implementationsin
Section4
indicate many
areas ofincompatibility
between
theimplementations
The
causes of theincompatability
witnessedin
theseimplementationscan
be div ided into
twocategories:non-supportof
Filing
constructsby
the nativeoperating sy
stem5.1.1<