next up previous contents
Next: Replication Up: Directories Previous: Directory Attributes


Link Attributes

Prospero directories contain links to the objects that are included in the directory. The following information is maintained for each link.

This is the single component of the object's path relative to the current directory. Its attribute-type is SEQUENCE.

Short description of link

The type of a link can be either normal [L] or union [U]. In the case of a normal link, an entry for the link is visible when the directory is listed. In the case of a union link, which can only be made to another directory, the links from the target directory appear as part of the directory from which the union link originates when the originating directory is listed. If multiple objects have the same name, the order in which the union links appear determines which object is visible.gif

Target of link: For links in a directory that don't point to objects, could be SYMBOLIC or EXTERNAL. For a forwarding pointer it is FP. Links to objects will have a target field indicating the cached value of the object's BASE-TYPE attribute. When stored on a vlink structure, it may have exactly one of the following forms: OBJECT, FILE, DIRECTORY, DIRECTORY+FILE. There is no guarantee that the type of the target has not changed. Thus, this field is the cached value of the object's base type. For union links, this field is always DIRECTORY or DIRECTORY+FILE. See section gif for a further discussion of this.

By default, a hidden link is not displayed when a directory is listed. It is, however, returned by the directory server, and is traversed if the actual name is specified in a pathname. An Externally-Hidden link is a hidden link that will be displayed if the current virtual system is the same as the owning virtual system for the directory containing the link. The user may override the hidden option, causing hidden links to be listed. Note that it is also possible to hide a link by specifying its protection as non-listable. Such links will only be returned by the directory server when the actual name of the link has been specified.

Multiple filters allowed. The filter attribute is a pointer to a program that can be used to filter the contents of directories to which links are made. data is the set of optional arguments passed to the filter program. In addition to the linked directory and arguments, the filter has access to all other information available from the current directory.

Filters come in several types. By default, a filter is a directory filter, and is applied when searching directories. A hierarchy filter is similar to a directory filter. The difference is that a directory filter is applied to a single directory, while a hierarchy filter is applied to the entire hierarchy (including subdirectories) reached through a link. Directory and hierarchy filters come in two types. The default is post-expansion. The filter is applied after all union links have been expanded. A pre-expansion filter is applied before union links are expanded. An object filter is applied when accessing an object other than a directory, and might be used, for example, to cause some operation to be performed on the object before it is accessed. Note, however, that all types of filters are associated with links.

Filters are applied to a directory in the order of pre-or post expansion, decreasing depth of the links to which they are attached (for hierarchy filters), and finally in the order that the filters are specified on the traversed links.

Attributes (optional). Application attributes to be associated with the link. This allows a user or application to add (or override) attributes to the linked object (which might be owned by someone else, and thus not modifiable).

The name of the host on which the object can be found.

The type of the hostname. In particular, whether the hostname is an Internet address, a domain style name, or a name in some other naming system.

Note that a symbolic link is a link where the destination host is a virtual system, and the destination object name is a name relative to that virtual system.

Host-specific object name. The name of the object relative to the destination system.

The type of HSONAME. Different types of names include numerical file IDs, names relative to the root of the local file system, etc. Right now, only pathnames are implemented, and their type is ASCII.

By specifying a version number in a directory link, the link is made to a specific version of the object, and changes to the object will not be visible through the link.

Access control info (optional). Allows restrictions on who can read or modify individual directory entries. These are really attributes, though they are in fact retrieved and modified with LIST-ACL and EDIT-ACL, and do not appear on the normal attribute listings.

Destination expiration date and time. Its implied type is a single-element SEQUENCE, in ASN-TIME format.gif This entry indicates how long the information in the link should be considered valid. When an object is accessed through a link, the destination expiration date should be set to the current time plus the destination time-to-live.

Note that expired directory entries do not disappear. Typically they remain valid. The expiration means that there is no longer a guarantee that the object originally referenced can still be found.

ID. When a new object is created, a unique object identifier may be assigned. This identifier can be included in links, and used to further verify that the named object is the one that is actually desired. It allows one to reference objects after their expiration dates with the guarantee that if these identifiers match, it is the same object. In the prototype, the object identifier is a random number of type REMOTE. Other types of object identifiers will be defined after more work is done by an IETF working group.

Valid-till (optional). If a link is a cached value, then this field indicates how long the entry should be considered valid. For example, a symbolic link may have a corresponding cached hard link. Until its expiration a cache entry may be used instead of searching based on the symbolic link. If this field is 0, then the link is not a cached entry.

Last-update (optional). This is the time the link was last updated. Its expected use is for resolving conflicting updates in replicated directories.

next up previous contents
Next: Replication Up: Directories Previous: Directory Attributes

Padma Indraganti
Thu Jun 20 13:02:20 PDT 1996