ietf-822
[Top] [All Lists]

Grist for the XXX mill...

1991-09-27 20:36:44
------- Forwarded Message

From: Cristian (C.M.)Constantinof <CHRISC(_at_)bnr(_dot_)ca>
To: mhsig(_at_)ics(_dot_)uci(_dot_)edu
Cc: Warwick (W.S.)Ford <WFORD(_at_)bnr(_dot_)ca>
Subject: Body part type for document transfer
Date: 27 Sep 91 19:42:00 EDT

Attached is the definition of the new File Transfer body part that will be
included in the 1992 Recommendations as an externally defined body part.

Its usage brings the benefit of a set of common parameters, possibly machine
processable, for all files, while still making the actual file structure
transparent to the user.

The parameter that identifies the actual file type is ContentsTypeParameter
which, for files produced by word processors, spreadsheets, etc., would
have the value DocumentType. This is an object identifier followed by optional
parameters. The software vendors would, therefore, have to register only
object identifiers in order identify their files, without having to disclose
the internal structure of the file.

I would recommend the usage of this body part definition for various document
types as required by EMA since:
 1) It meets all EMA requirements
 2) Complies with OIW X.400 SIG Agreements to use externally defined body parts
 3) Does not impose restrictions on software vendors
 4) Provides helpful information to users.

For more information, Warwick Ford, the CCITT editor for this body part, could
give a presentation during our December SIG meeting.

Cheers, Chris

ATTACHMENT - FILE TRANSFER BODY PART DEFINITION

File transfer body part

A file transfer body part represents an information object used to
convey the contents, and optionally the attributes, of a stored file.
The file transfer body part is based on the file model defined in ISO
8571-2 (FTAM).  It has parameters and data components.

    FileTransferBodyPart ::= SEQUENCE {
        parameters    FileTransferParameters,
        data    FileTransferData }

    FileTransferParameters ::= SEQUENCE {
        related-stored-file    [0]  RelatedStoredFile OPTIONAL,
        contents-type    [1]  ContentsTypeParameter
              DEFAULT {iso standard 8571 document-type (5)
                unstructured-binary (3)},
        environment    [2]  EnvironmentParameter OPTIONAL,
        compression    [3]  CompressionParameter OPTIONAL,
        file-attributes    [4]  FileAttributes     OPTIONAL,
        extensions    [5]  ExtensionsField    DEFAULT {}  }

    FileTransferData ::= SEQUENCE OF EXTERNAL
        -- This conveys a sequence of data values representing file contents;
        -- The rules for generating this sequence are implied by the value of
        -- the contents-type parameter


x.1  Related Stored File Parameter

This parameter indicates to the recipient any intended relationship
between the file in this body part and any file(s) held by the
recipient.  Stored files may be identified either by pathname or by
reference to previous MHS messages sent.  Explicit relationships with
stored files that may be indicated include:

    -  unspecified;
    -  a new file may be created using the contents in this body part;
    -  the contents of an existing file may be replaced by the
contents in this body part;
    -  an existing file may be extended using the contents of this
body part.

The syntax for this parameter is:

    RelatedStoredFile  ::=  SET OF SEQUENCE {
        file-identifier        FileIdentifier,
        relationship            Relationship DEFAULT
unspecified }
    FileIdentifier ::=  CHOICE {
        pathname-and-version      [0]  PathnameandVersion
        cross-reference        [1]  CrossReference }



    PathnameandVersion ::= SEQUENCE {
        pathname            [0]  SEQUENCE OF GraphicString,
            -- Aligned with ISO 8571-2
        file-version            [1]  GraphicString OPTIONAL

    CrossReference ::=  SEQUENCE {
        application-cross-reference [0]  OCTET STRING,
        message-reference    [1]  MessageReference OPTIONAL,
        body-part-reference    [2]  INTEGER OPTIONAL }

    MessageReference ::= SET {
        user                [0]  ORName,
          -- Defined in 8.5.5 of Rec. X.411
        user-relative-identifier    [1]  PrintableString }

    Relationship ::= CHOICE {
        explicit-relationship    [0]  ExplicitRelationship,
        descriptive-relationship    [1]  GraphicString }

    ExplicitRelationship ::= ENUMERATED   {
        unspecified (0),
        new-file (1),
        replacement (2),
        extension (3)  }

The pathname option is intended for use in a manner consistent with ISO
8571, as amended by Amendment 1.  It is a sequence of elements, each of
which represents a name component.  When more than one element is
encoded, the first element shall be the file name and the remaining
elements shall be concatenated to represent the file name prefix.

    NOTE ~ ISO 8571 Amendment 1 renamed the "filename" attribute in
ISO 8571 to the "pathname" attribute.

A message reference has the following components:

a)  User:  Identifies the user who originated the referenced message.
One of the user's OR names.

b)  User-relative-identifier:  Unambiguously identifies a message,
distinguishing it from all other messages that the user who is
identified by the User component originates.  A Printable String of from
zero to a prescribed number of characters.  A length of zero is
discouraged.

A body part reference uniquely identifies a body part within a message.
It is for use when referencing a message with a content type which
includes body part references.

x.2  Contents Type Parameter

The contents type parameter indicates the abstract data types of the
contents of the file and the structuring information which is necessary
if the complete file structure and semantics are to be maintained during
the transfer of the file.

The value is either a document-type name (possibly with parameters in a
single value of any type) or a pair of abstract syntax name and
constraint set name.  Each of these names are values of the type OBJECT
IDENTIFIER.

    ContentsTypeParameter ::= CHOICE {
        document-type        [0] DocumentType,
             constraint-set-and-abstract-syntax
                [1] ConstraintSetandAbstractSyntax }

    DocumentType ::= SEQUENCE  {
                  document-type-name         OBJECT IDENTIFIER,
                  parameter                 [0]  ANY OPTIONAL }
              --  The actual types to be used for values of the parameter field
        --  are defined in the named document type.

    ConstraintSetandAbstrSyntax ::= SEQUENCE  {
                  constraint-set-name     OBJECT IDENTIFIER,
                  abstract-syntax-name    OBJECT IDENTIFIER }

The concepts of document-type and constraint set are described fully in
ISO 8571-2.  It is anticipated that the document types which will be
most commonly used in this body part are:

    -  unstructured text file (FTAM-1)
    -  unstructured binary file (FTAM-3)
    -  sequential binary file (FTAM-4)

x.3  Environment Parameter

The environment parameter describes the environment (e.g., machine,
operating system, and application) from which the file originated.  It
has the following syntax:

    EnvironmentParameter ::= SEQUENCE {
        application-reference [0] GeneralIdentifier OPTIONAL,
        machine    [1] GeneralIdentifier OPTIONAL,
        operating-system    [2] OBJECT IDENTIFIER OPTIONAL,
        user-visible-string    [3] SEQUENCE OF GraphicString OPTIONAL
                    }

    GeneralIdentifier ::= CHOICE {
        registered-identifier    [0] OBJECT IDENTIFIER,
        descriptive-identifier    [1] SEQUENCE  OF GraphicString }

The application-reference field is intended to be used for identifiying
application programs and versions.  The machine field is intended to be
used for executable code modules to indicate hardware platforms.  The
operating-system field is intended to be used to identify the operating
system of the processor from which the file originated.


x.4  Compression Parameter

The compression parameter describes the compression type if the file is
transferred in a compressed mode.

    CompressionParameter ::=  SEQUENCE {
        compression-algorithm-id        [0]  OBJECT IDENTIFIER,
        compression-algorithm-param    [1]  ANY DEFINED BY
                           compression-algorithm-id }


x.5  File Attributes Parameter

The file attributes parameter conveys values of any of a set of optional
file attributes.  When the recipient is to create a new file, these
values may be used in establishing the initial file attributes.

NOTE:    Transfer of an attribute value to a recipient should be
interpreted as a request only; no particular  recipient behaviour
is guaranteed as a result.

The following attributes are technically aligned with  ISO 8571 (FTAM):

    pathname
    permitted actions
    storage account
    date and time of creation
    date and time of last modification
    date and time of last read access
    identity of creator
    identity of last modifier
    identify of last reader
    object size
    future object size
    legal qualifications
    private use
    attribute-extensions

The syntax for the file attributes parameter is as follows:

    File Attributes ::= SEQUENCE {
    pathname    PathnameAttribute OPTIONAL,
    permitted-actions    [1]  PermittedActionsAttribute OPTIONAL,
    storage-account    [3]  GraphicString OPTIONAL,
    date-and-time-of-creation
        [4]  GeneralizedTime  OPTIONAL,
    date-and-time-of-last-modification
        [5]  GeneralizedTime  OPTIONAL,
    date-and-time-of-last-read-access
        [6]  GeneralizedTime  OPTIONAL,
    identity-of-creator    [8]  GraphicString  OPTIONAL,
    identity-of-last-modifier
        [9]  GraphicString  OPTIONAL,
    identity-of-last-reader    [10]  GraphicString  OPTIONAL,
    object-size     [13]  INTEGER OPTONAL,
    future-object-size    [14]  INTEGER OPTIONAL,
    legal-qualifications    [16]  GraphicString OPTIONAL,
    private-use    [17]  EXTERNAL OPTIONAL
    attribute-extensions [22]  AttributeExtensions OPTIONAL }

x.5.1  Pathname Attribute

The pathname attribute provides a file name.  Its syntax is as follows:

    PathnameAttribute ::=  CHOICE {
        incomplete-pathname    [0]  Pathname,
        complete-pathname    [APPLICATION 23] Pathname }

    Pathname ::= SEQUENCE OF GraphicString

x.5.2  Permitted Actions Attribute

The permitted actions attribute indicates  the set of actions that can
be performed on the file.

    PermittedActionsAttribute ::= BIT STRING  -- Actions available {
                read        (0),
                insert        (1),
                replace     (2),
                extend     (3),
                erase        (4)    }

x.5.3  Storage Account Attribute

The storage account attribute identifies the accountable authority
responsible for accumulated file storage charges.

x.5.4  Date and Time Attributes

The date and time of creation attribute indicates when the file was
created.  The value of the attribute  is of type GeneralizedTime.

The date and time of last modification attribute indicates when the
contents of the file were last modified.  The value of the attribute is
of type GeneralizedTime.

The date and time of last read access attribute indicates when the
contents of the file were last read.  The value of the attribute is of
type GeneralizedTime.

x.5.5  Identity Attributes

The identity of creator, identity of last modifier, and identity of last
reader attributes are of type GraphicString.

The identity of last modifier attribute is altered by the filestore
whenever the file has been opened for modification or extension and is
closed, (including closure following a connection failure).  For a newly
created file, the value is equal to the value of the identity of creator
attribute.

The identity of last reader attribute is altered by the filestore
whenever the file has been opened for reading and is closed (including
closure following a connection failure).  For a newly created file, the
value is equal to the value of the identity of creator attribute.

x.5.6  Object Size Attributes

The object size attribute is altered by the filestore whenever the file
is closed after having been opened for modification and extension
(including closure following a connection failure).  The attribute is
set to the nominal size in octets of the complete file when the file is
closed.  The value of the attribute is an integer.  For a newly created
file, the value is set to zero.

The future object size attribute indicates the nominal size in octets to
which the file may grow as a result of modification and extension.  The
value of the attribute is an integer.

x.5.7  Legal Qualifications Attribute

The legal qualifications attribute conveys information about the legal
status of the file and its use.  The value of the attribute is of type
GraphicString.

x.5.8  Private Use Attribute

The meaning of the private use attribute is not defined.  The value of
the attribute can take any form.

x.5.9  Attribute Extensions

The attribute extensions attribute allows for the inclusion of
additional attributes in a manner consistent with Amendment 1 of ISO
8571.  The syntax is as follows:

    AttributeExtensions ::= SEQUENCE OF AttributeExtensionSet

    AttributeExtensionSet ::= SEQUENCE {
        extension-set-id        [0]  ExtensionSetId,
        extension-set-attributes     [1]  SEQUENCE OF ExtensionAttribute}

    ExtensionAttribute ::= SEQUENCE {
        extension-attribute-id    ExtensionAttributeId,
        extension-attribute    ANY DEFINED BY extension-attribute-id
                        }

    ExtensionSetId ::= OBJECT IDENTIFIER

    ExtensionAttributeId ::= OBJECT IDENTIFIER


x.6  Extensions Parameter

The extensions parameter conveys information accommodated by no other
parameter of the file transfer body part.  The syntax and usage of this
field is the same as that for the IPM content type extensions field as
specified in 7.2.17.

x.7  File Transfer Body Part Data

The data component of the body part contains the file contents being
transferred.

The syntax for representation of these contents is implied by the
contents-type parameter.  When this parameter specifies a document type,
the corresponding document type definition describes how to construct a
sequence of presentation data values to convey the contents, and
identifies the necessary abstract syntax(es).  When the contents-type
parameter specifies a constraint set and abstract syntax, the contents
comprise a sequence of one or more data values from the identified
abstract syntax.

The encoding is to be based on the transfer syntax specified as part of
the document type definition, if any, or on the ASN.1 basic encoding
rules otherwise.

------- End of Forwarded Message

<Prev in Thread] Current Thread [Next in Thread>