RETS Change Proposal 28: Omnibus Metadata Update
Author: Metadata Workgroup
Organization:
Telephone:
Address:
Email:
Status: Proposal
Date: 01/27/2003
Proposal Version: 1.0
1. Synopsis
This proposal augments the RETS metadata mechanism in several ways in order to improve the effectiveness of metadata updates and reduce the burden on clients when updating metadata.
2. Rationale
Experience to date has shown that the current metadata management scheme sometimes results in problems in deployment situations. These include failures of clients to operate because of metadata changes, and an inability of servers to make minor metadata changes because of client lags. These proposals are intended to address this difficulty.

It has also been noted that several of the length restrictions on metadata values are too small and no longer needed in the current computing environment.

3. Proposal
3.1 Specification Changes

Several changes are proposed to metadata tables and metadata management specifications.

3.1.1 Version Management

Currently, RETS specifies the use of version numbers for version management. Version numbers are required to increase when any element changes, with ripples through the hierarchy. The version numbering mechanism is specified with a <major>.<minor>.<release> convention, but the convention is not binding.

It is proposed that version numbering as a control mechanism be deprecated, and that metadata advertising and acceptance be based instead on the modification timestamp for the metadata. Section 4.7.3 will be modified to include MetatdataTimestamp and MinMetadataTimestamp values; these are to be compared with the Date attribute of the System metadata to determine whether the client has an acceptable version of metadata.

Section 4.7.3 of the specification will be further amended to indicate that a client MAY retrieve the newer metadata version from the host if it finds that its stored version is earlier than the MinMetadataTimestamp. If the client chooses not to obey this advisory, then query results are not guaranteed to be correct and may result in errors or incorrect information being supplied to the client.

Section 4.4 will be amended to include an optional parameter, SavedMetadataTimestamp. The value is strictly advisory for the server; the server MAY use this to adapt to a metadata version earlier than its advertised MinMetadataTimestamp, but is not required to do so. It may also use the information for logging or any other purpose.

3.1.2 Metadata Comparisons

In order to facilitate metadata comparisons, a known-invariant field, named MetadataEntryID, is to be added to every metadata row in every table except System, Resource and Class. This field, a 32-character string, is to be maintained by the server and can be used by the client to indicate that a particular row has the same logical meaning despite changes in its fields. For example, the invariant field may be used to detect changes in the SystemName in the Table metadata.

It is not the intent of the specification to force servers to create a new logical data item. If one of the metadata fields already serves this purpose, its value can be duplicated in the MetadataEntryID field. The client MUST treat this field as opaque, and not try to interpret its contents.

3.1.3 Length changes

In general, the objective is to avoid having the standard impose arbitrary limits on human-readable fields.

TableFieldOldNewRationale
METADATA-CLASSVisibleName3264Old length was inadequate for a prose description.
Description64128Old length was inadequate for a prose description.
METADATA-TABLEShortName2464Old length was inadequate for a prose description.
LongName32256The field should be able to contain arbitrary text.
METADATA-OBJECTMIMEType2464Old length was inadequate for some MIME type designations.
VisibleName3264Old length was inadequate for some prose descriptions.
Description64256The field should be able to contain arbitrary text.
METADATA-LOOKUP_TYPELongValue32128The field should be able to contain arbitrary text.
METADATA-SEARCH_HELPValue1281024The field should be able to contain arbitrary text, including examples.
METADATA-UPDATE_HELPValue1281024The field should be able to contain arbitrary text, including examples.

4. Development Impact
This proposal includes changes that are mandatory and may have development impact, particularly on servers. The requirement to create an invariant field for metadata may not be consistent with metadata management procedures in some server environments.
5. Compatibility
This change proposal includes several changes that may result in incompatibility. Clients that implement this change may be unable to operate with an unchanged server because of the lack of the mandatory MetadataEntryID field. Servers that implement these changes may be incompatible with clients that do not because of metadata version management issues, and because the new server may take advantage of the longer field lengths available with this change proposal.
6. Proof/Need of Concept Examples
None.