S- TOKEN-PLEASE TOKEN-GIVE
8. The Application Layer
8.3.3. File Transfer, Access, and Management
Working with files in a distributed system (consisting of a number of individual systems connected together by a network) presents a challenge. Each system has its own filestore which may be different from the filestores of other participating systems (i.e., different filestore structure and different file formats). The ISO 8571 series of standards for File Transfer, Access, and Management (FTAM) provide useful services for addressing this problem.
FTAM provides file service uniformity by having each real filestore represented by a virtual filestore. The latter serves as a generic model for the former. Although the real file stores are system dependent and potentially different, the virtual file stores all adhere to the same format and protocol. FTAM furnishes the specification for virtual filestores. The mapping between a virtual filestore and its corresponding real filestore is beyond the scope of FTAM; it is the responsibility of the system which own the real filestore.
FTAM provides the necessary services for applications to establish associations with remote file system to: transfer files, access and manipulate file contents (read and write records), manage files (create, delete, copy, move, etc.), and manipulate file attributes (name, access permissions, dates, etc.).
Figure 8.89 illustrates FTAM’s role in a typical configuration, where a local application accesses the filestore of a remote system. FTAM provides an association between an initiator and a responder which make the FTAM services accessible to the local and remote systems.
For its virtual filestores, FTAM uses a model which resembles the UNIX file system model. It views the whole file system as a tree-like hierarchical structure, where the tree nodes represent directories and the leaves represent actual files or references (similar to symbolic links in UNIX) to other nodes. Each of these is represented by an FTAM object (i.e., file object, directory object, and reference object).
A file itself consists of attributes and contents. The file attributes denote its various properties, such as name, creation date, and size. FTAM classifies attributes into four groups; these are summarized in Figure 8.89. The file contents is comprised of a set of named Data Units (DUs). DUs are combined in a hierarchical manner to build larger structures called File Access Data Units (FADUs). Figure 8.Error!
Bookmark not defined. illustrates this for a simple file structure consisting of four DUs organized as five FADUs.
Figure 8.88 FTAM structure.
Remote System Local Application FTAM Initiator Lower ISO Layers Lower ISO Layers FTAM Association FTAM Responder Virtual Filestore Real Filestore
Figure 8.89 File attribute groups.
Group Attributes Description
Kernel File Name File Structure File Mode
Basic properties required by all files.
Storage File Size Creator ID User ID Read Date Write Date
Attribute Change Date File Locks
Properties pertaining to the physical file storage.
Security Access permission Encryption
Properties which regulate access to the file. Private user-defined Properties beyond the scope of FTAM.
Figure 8.90 Sample FTAM file structure.
FADU DU DU DU DU FADU FADU FADU FADU
FTAM services are defined using service primitives, which operate on FADUs, DUs, and file attributes, as well as managing the initiation and termination of FTAM associations. FTAM defines many primitives, a sample of which is provided in Figure 8.11. FTAM uses ACSE for its operation.
Figure 8.11 Sample FTAM service primitives.
Primitive Types Purpose
F-INITIALIZE request, indicate response, confirm
Used by an initiator-responder pair to establish an association.
F-TERMINATE request, indicate response, confirm
Used by the initiator-responder pair to terminate their association.
F-U-ABORT request, indicate Used by an initiator-responder pair to report errors.
F-P-ABORT indicate Used by the service provider to report errors. F-CREATE request, indicate
response, confirm
Used for creating a remote file. F-DELETE request, indicate
response, confirm
Used for deleting a remote file. F-SELECT request, indicate
response, confirm
Used for choosing a remote file to work with. F-DESELECT request, indicate
response, confirm
Used for releasing control over a selected remote file.
F-COPY request, indicate response, confirm
Used for making a copy of a remote file. The copy will remain on the remote system.
F-MOVE request, indicate response, confirm
Used for moving a remote file within its filestore. F-OPEN request, indicate
response, confirm
Used for opening a remote file so that operations can be applied to its contents.
F-CLOSE request, indicate response, confirm
Used for closing an open remote file. F-LOCATE request, indicate
response, confirm
Used for locating an FADU of an open remote file. F-ERASE request, indicate
response, confirm
Used for erasing an FADU of an open remote file. F-READ request, indicate Commences the reading of an open remote file or
part thereof.
F-WRITE request, indicate Commences the writing of an open remote file or part thereof.
F-DATA request, indicate Used for transferring an open remote file or part thereof.
F-DATA-END request, indicate Finalizes one or more data transfer with F-DATA. F-TRANSFER-END request, indicate
response, confirm
Finalizes an F-READ or F-WRITE operation in progress.
F-GROUP-primitive request, indicate response, confirm
A set of primitives used for collectively working on groups of files (e.g., F-GROUP-DELETE).
FTAM service primitives are organized into four regimes. The regimes denote successive stages in an FTAM association which progressively narrow down the scope of the primitives. Figure 8.12. outlines the FTAM regimes and how they are
related to FTAM service primitives. Each regime comes into effect from the previous regime by certain primitives (denoted by the Begin column), and returns to the previous regime by another set of primitives (denoted by the End column). The Do
column denotes the primitives that can occur while a regime is in effect.
Figure 8.12 FTAM regimes.
Regime Begin Do End Purpose
Application Association F-INITIALIZE F-GROUP- primitive F-TERMINATE F-U-ABORT F-P-ABORT
This is the top-level regime and exists for the duration of FTAM association. Object Selection F-CREATE F-SELECT F-COPY F-MOVE F-DELETE F-DESELECT
Effective while the scope of association is a single file.
File Open F-OPEN F-LOCATE F-ERASE
F-CLOSE Effective while a file is open for manipulation. Data Transfer F-READ F-WRITE F-DATA F-DATA-END F-CANCEL F-TRANSFER-END
Effective while a read or write operation is in progress.
FTAM services are also organized into related groups so that their selection can be negotiated when an association is being established. This grouping is done at two levels. The first level organizes the services into functional units (similar to functional units for earlier OSI layers). The second level organizes the functional units into service classes. FTAM defines five service classes:
• The file transfer class supports association management and the transfer of files between an application and a remote file system.
• The file management class supports association management and the remote management of files (e.g., creation, deletion, attribute manipulation) from an application.
• The file access class supports association management and the remote manipulation of file contents from an application.
• The file transfer and management class is the combination of services from the first two classes.
• The unrestricted class support user-selected functional units in an arbitrary fashion.
The ISO 8571 series of standards which describe all aspects of FTAM consist of a number of parts, four of which were touched upon in this section:
ISO 8571 .1 FTAM General Introduction ISO 8571 .2 FTAM Virtual Filestore ISO 8571 .3 FTAM File Service Definition
ISO 8571 .4 File Protocol Specification
8.4.
Other Standards
A number of application layer standards have been discussed so far in this chapter. Many more exist, including the following:
• The CCITT X.700 series of recommendations (and their corresponding ISO series) for System Management describe standards for coordinating resource utilization in networked information systems.
• The CCITT X.500 series of recommendations (and their corresponding ISO series) for Electronic Directory define standards for providing a global directory service with entries for network users as well as network components.
• The ISO 10026 standard for Distributed Transaction Processing is aimed at providing standard capabilities for distributed applications to simultaneously perform transactions on multiple systems.
• The ISO 8831 and ISO 8832 standards for Job Transfer Manipulation address remote job submission in distributed systems.
8.5.
Further Reading
General descriptions of the application layer and related protocols can be found in Tanenbaum (1989), Black (1989), Stamper (1991), and Stallings (1994). Chilton (1989), Plattner et al (1991), and Radicati (1992) are two highly readable introductions to MHS and X.400.