- From: Yaron Goland <yarong@microsoft.com>
- Date: Wed, 27 Aug 1997 11:03:23 -0700
- To: "'Dylan Barrell'" <dbarrell@bb.opentext.com>, "'Judith Slein'" <slein@wrc.xerox.com>, w3c-dist-auth@w3.org
I can find nothing in the charter which states that WebDAV's goal is to provide a way to create everything HTTP/1.1 can dish up. Yaron > -----Original Message----- > From: Dylan Barrell [SMTP:dbarrell@bb.opentext.com] > Sent: Wednesday, August 27, 1997 9:14 AM > To: 'Judith Slein'; w3c-dist-auth@w3.org; Yaron Goland > Subject: RE: New Requirements Draft > > Yaron, > > How do you justify the opinion that it is out of scope for this group? > > WebDAV is supposed to define the standard for distrubuted authoring of > sites whos content is to be served by an HTTP1.1 compliant server. > HTTP 1.1 provides a standard mechanism for serving-up variants so > defining a standard for distributed authoring of these variants seems > to fit quite well within the charter of this group. > > Cheers > Dylan > > ---------- > From: Yaron Goland[SMTP:yarong@microsoft.com] > Sent: Dienstag, 26. August 1997 19:32 > To: 'Judith Slein'; w3c-dist-auth@w3.org > Subject: RE: New Requirements Draft > > I strongly object to 5.11.2, with or without a warning that we can not > find a satisfactory solution. > > There is consensus that we wish to be able to lock multiple resources > simultaneously, it just isn't clear if we can write up a satisfactory > standard to meet this requirement. > > However there is not consensus on dealing with variants. Many folks, > myself included, believe that this is out of scope for the group and > should not be a goal. > > Yaron > > > -----Original Message----- > > From: Judith Slein [SMTP:slein@wrc.xerox.com] > > Sent: Friday, August 22, 1997 1:09 PM > > To: w3c-dist-auth@w3.org > > Subject: New Requirements Draft > > > > I've undertaken to provide another requirements draft by August 29. > > Here is > > what I intend to submit, barring objections from the group. > > > > Here are the changes from the previous draft: > > > > 1. Since we hope that this draft will be the basis of last call, I > > have > > taken out the open issues list. > > > > 2. I have taken out the requirements for query on properties (5.1.1) > > and > > query on links (5.2.1). > > > > 3. The requirement for multi-resource locking (5.3.1.2) remains > > unchanged, > > but we all understand that it may be impossible to find a > satisfactory > > implementation, in which case WEBDAV will not satisfy this > > requirement. If > > the group would like, I can state this explicitly in 5.3.1.2. > > > > 4. The character sets / language tagging requirement has been > revised > > so > > that it simply references the IETF character set policy (5.11.1). > > > > 5. I have added a requirement for support of language variants > > (5.11.2). As > > with 3 above, the assumption is that we may be unable to find a > > satisfactory > > implementation for this requirement. As with 3, I could state this > > explicitly. > > > > --Judy > > > > > ===================================================================== > > > > WEBDAV Working Group J.A. Slein > > INTERNET-DRAFT Xerox > Corporation > > <draft-ietf-webdav-requirements-02.txt> F. Vitali > > University of Bologna > > > > E.J. Whitehead, Jr. > > U.C. Irvine > > D.G. Durand > > Boston University > > August 29, 1997 > > > > Expires February 28, 1998 > > > > Requirements for Distributed Authoring and Versioning > > on the World Wide Web > > > > > > Status of this Memo > > > > This document is an Internet draft. Internet drafts are working > > documents of the Internet Engineering Task Force (IETF), its areas > and > > its working groups. Note that other groups may also distribute > working > > information as Internet drafts. > > > > Internet Drafts are draft documents valid for a maximum of six > months > > and can be updated, replaced or obsoleted by other documents at any > > time. It is inappropriate to use Internet drafts as reference > material > > or to cite them as other than as "work in progress". > > > > To learn the current status of any Internet draft please check the > > "lid-abstracts.txt" listing contained in the Internet drafts shadow > > directories on ftp.is.co.za (Africa), nic.nordu.net (Europe), > > munnari.oz.au (Pacific Rim), ds.internic.net (US East coast) or > > ftp.isi.edu (US West coast). Further information about the IETF can > be > > found at URL: http://www.ietf.org/ > > > > Distribution of this document is unlimited. Please send comments to > > the > > WWW Distributed Authoring and Versioning (WebDAV) mailing list, > > <w3c-dist-auth@w3.org>, which may be joined by sending a message > with > > subject "subscribe" to <w3c-dist-auth-request@w3.org>. Discussions > are > > archived at URL: > > http://www.w3.org/pub/WWW/Archives/Public/w3c-dist-auth/. > > > > Abstract > > > > Current World Wide Web (WWW or Web) standards provide simple support > > > for applications which allow remote editing of typed data. In > > practice, > > the existing capabilities of the WWW have proven inadequate to > support > > > > efficient, scalable remote editing free of overwriting conflicts. > > This document presents a list of features in the form of > requirements > > which, if implemented, would improve the efficiency of common remote > > > editing operations, provide a locking mechanism to prevent overwrite > > > conflicts, improve link management support between non-HTML > > data types, provide a simple attribute-value metadata facility, > > provide > > for the creation and reading of container data types, and integrate > > versioning into the WWW. > > > > 1. Introduction > > > > This document describes functionality which, if incorporated in an > > extension to the existing HTTP proposed standard [HTTP], would allow > > tools > > for remote loading, editing and saving (publishing) of various media > > > types on the WWW to interoperate with any compliant Web server. As > > much > > as possible, this functionality is described without suggesting a > > proposed implementation, since there are many ways to perform the > > functionality within the WWW framework. It is also possible that a > > single mechanism could simultaneously satisfy several requirements. > > > > This document is intended to reflect the consensus of the WWW > > Distributed Authoring and Versioning working group (WebDAV) as to > the > > functionality that needs to be standardized to support distributed > > authoring and versioning on the Web. > > > > 2. Rationale > > > > Current Web standards contain functionality which enables the > editing > > of > > Web content at a remote location, without direct access to the > storage > > > > media via an operating system. This capability is exploited by > several > > > > existing HTML distributed authoring tools, and by a growing number > of > > mainstream applications (e.g., word processors) which allow users to > > > write (publish) their work to an HTTP server. To date, experience > from > > > > the HTML authoring tools has shown they are unable to meet their > > users' > > needs using the facilities of Web standards. The consequence of > > this is either postponed introduction of distributed authoring > > capability, or the addition of nonstandard extensions to the HTTP > > protocol or other Web standards. These extensions, developed in > > isolation, are not interoperable. > > > > Other authoring applications have wanted to access document > > repositories > > or version control systems through Web gateways, and have been > > similarly > > frustrated. Where this access is available at all, it is through > > nonstandard extensions to HTTP or other standards that force clients > > to > > use a different interface for each vendor's service. > > > > This document describes requirements for a set of standard > extensions > > to HTTP that would allow distributed Web authoring tools to provide > > the functionality their users need by means of the same standard > > syntax across all compliant servers. The broad categories of > > functionality that need to be standardized are: > > > > Properties > > Links > > Locking > > Reservations > > Retrieval of Unprocessed Source > > Partial Write > > Name Space Manipulation > > Collections > > Versioning > > Security > > Internationalization > > > > 3. Terminology > > > > Where there is overlap, usage is intended to be consistent with that > > in > > the HTTP 1.1 specification [HTTP]. > > > > Client > > A program which issues HTTP requests and accepts responses. > > > > Collection > > A collection is a resource that contains other resources, > > either directly or by reference. > > > > Distributed Authoring Tool > > A program which can retrieve a source entity via HTTP, allow > > editing of this entity, and then save/publish this entity > > to a server using HTTP. > > > > Entity > > The information transferred in a request or response. > > > > Hierarchical Collection > > A hierarchical organization of resources. A hierarchical > > collection is a resource that contains other resources, > > including collections, either directly or by reference. > > > > Link > > A typed connection between two or more resources. > > > > Lock > > A mechanism for preventing anyone other than the owner of the > > lock from accessing a resource. > > > > Member of Version Graph > > A resource that is a node in a version graph, and so is derived > > from the resources that precede it in the graph, and is the > > basis of those that succeed it. > > > > Property > > Named descriptive information about a resource. > > > > Reservation > > A declaration that one intends to edit a resource. > > > > Resource > > A network data object or service that can be identified by > > a URI. > > > > Server > > A program which receives and responds to HTTP requests. > > > > User Agent > > The client that initiates a request. > > > > Version Graph > > A directed acyclic graph with resources as its nodes, where > > each node is derived from its predecessor(s). > > > > Write Lock > > A lock that prevents anyone except its owner from modifying > > the resource it applies to. > > > > > > 4. General Principles > > > > This section describes a set of general principles that the WebDAV > > extensions should follow. These principles cut across categories of > > functionality. > > > > 4.1. User Agent Interoperability > > > > All WebDAV clients should be able to work with any WebDAV-compliant > > HTTP > > server. It is acceptable for some client/server combinations to > > provide > > special features that are not universally available, but the > protocol > > should be sufficient that a basic level of functionality will be > > universal. > > > > 4.2. Client Simplicity > > > > The WebDAV extensions should be designed to allow client > > implementations > > to be simple. > > > > 4.3. Legacy Client Support > > > > It should be possible to implement a WebDAV-compliant server in such > a > > way that it can interoperate with non-WebDAV clients. Such a server > > would be able to understand any valid HTTP 1.1 request from an > > ordinary > > Web client without WebDAV extensions, and to provide a valid HTTP > 1.1 > > response that does not require the client to understand the > > extensions. > > > > 4.4. Data Format Compatibility > > > > WebDAV-compliant servers should be able to work with existing > > resources > > and URIs [URL]. Special additional information should not become a > > mandatory part of document formats. > > > > 4.5. Replicated, Distributed Systems > > > > Distribution and replication are at the heart of the Internet. All > > WebDAV extensions should be designed to allow for distribution and > > replication. Version trees should be able to be split across > multiple > > servers. Collections may have members on different servers. > > Resources > > may have properties on different servers. Any resources may be > cached > > or replicated for mobile computing or other reasons. Consequently, > > the > > WebDAV extensions must be able to operate in a distributed, > replicated > > environment. > > > > 4.6 Parsimony in Client-Server Interactions > > > > The WebDAV extensions should keep to a minimum the number of > > interactions between the client and the server needed to perform > > common > > functions. For example, publishing a document to the Web will often > > mean > > publishing content together with related properties. A client may > > often > > need to find out what version graph a particular resource belongs > to, > > or to find out which resource in a version graph is the published > one. > > The extensions should make it possible to do these things > efficiently. > > > > 4.7. Changes to HTTP > > > > WebDAV adds a number of new types of objects to the Web: properties, > > > collections, version graphs, etc. Existing HTTP methods such as > > DELETE and PUT will have to operate in well-defined ways in this > > expanded environment. WebDAV should explicitly address not only new > > methods, headers, and MIME types, but also any required changes to > the > > existing HTTP methods and headers. > > > > 4.8. Alternate Transport Mechanisms > > > > It may be desirable to transport WebDAV requests and responses by > > other > > mechanisms, particularly EMail, in addition to HTTP. The WebDAV > > protocol > > specification should not preclude a future body from developing an > > interoperability specification for disconnected operation via EMail. > > > > 5. Requirements > > > > In the requirement descriptions below, the requirement will be > stated, > > followed by its rationale. > > > > 5.1. Properties > > > > 5.1.1. Functional Requirements > > > > It must be possible to create, modify, read and delete arbitrary > > properties on resources of any media type. > > > > 5.1.2. Rationale > > > > Properties describe resources of any media type. They may > > include bibliographic information such as author, title, publisher, > > and subject, constraints on usage, PICS ratings, etc. These > > properties have many uses, such as supporting searches on property > > values, enforcing copyrights, and the creation of catalog entries as > > > placeholders for objects which are not available in electronic form, > > or > > which will be available later. > > > > 5.2. Links > > > > 5.2.1. Functional Requirements > > > > It must be possible to create, modify, read and delete typed > > links between resources of any media type. > > > > 5.2.2. Rationale > > > > One type of link between resources is the hypertext link, which is > > browsable using a hypertext style point-and-click user interface. > > Links, > > whether they are browsable hypertext links, or simply a means of > > capturing a connection between resources, have many purposes. Links > > > can support pushbutton printing of a multi-resource document in a > > prescribed order, jumping to the access control page for a resource, > > > and quick browsing of related information, such as a table of > > contents, > > an index, a glossary, a bibliographic record, help pages, etc. While > > > link support is provided by the HTML "LINK" element, this is limited > > > only to HTML resources [HTML]. Similar support is needed for bitmap > > image > > types, and other non-HTML media types. > > > > 5.3. Locking > > > > 5.3.1. General Principles > > > > 5.3.1.1. Independence of locks. It must be possible to lock a > resource > > without re-reading the resource, and without committing to editing > the > > > > resource. > > > > 5.3.1.2. Multi-Resource Locking. It must be possible to take out a > > lock on multiple resources residing on the same server in a single > > action, > > and this locking operation must be atomic across these resources. > > > > 5.3.2. Functional Requirements > > > > 5.3.2.1. Write Locks. It must be possible to restrict modification > of > > a resource to a specific person. > > > > 5.3.2.2. Lock Query. It must be possible to find out whether a given > > > resource has any active locks, and if so, who holds those locks. > > > > 5.3.2.3. Unlock. It must be possible to remove a lock. > > > > 5.3.3. Rationale > > > > At present, the Web provides limited support for preventing two or > > more > > people from overwriting each other's modifications when they save to > a > > > > given URI. Furthermore, there is no way to discover whether someone > > else > > is currently making modifications to a resource. This is known as > the > > "lost update problem," or the "overwrite problem." Since there can > be > > significant cost associated with discovering and repairing lost > > modifications, preventing this problem is crucial for supporting > > distributed authoring. A write lock ensures that only one person may > > > modify a resource, preventing overwrites. Furthermore, locking > support > > > > is a key component of many versioning schemes, a desirable > capability > > for distributed authoring. > > > > An author may wish to lock an entire web of resources even though he > > > is editing just a single resource, to keep the other resources from > > changing. In this way, an author can ensure that if a local > hypertext > > web is consistent in his distributed authoring tool, it will then be > > > consistent when he writes it to the server. Because of this, it > should > > > > be possible to take out a lock without also causing transmission of > > the > > contents of a resource. > > > > It is often necessary to guarantee that a lock or unlock operation > > occurs at the same time across multiple resources, a feature which > is > > supported by the multiple-resource locking requirement. This is > useful > > > > for preventing a collision between two people trying to establish > > locks > > on the same set of resources, since with multi-resource locking, one > > of > > the two people will get a lock. If this same multiple-resource > locking > > > > scenario was repeated by using atomic lock operations iterated > across > > the resources, the result would be a splitting of the locks between > > the > > two people, based on resource ordering and race conditions. > > > > 5.4. Reservations > > > > 5.4.1. Functional Requirements > > > > 5.4.1.1. Reserve. It must be possible for a principal to register > with > > > > the server an intent to edit a given resource, so that other > > principals > > can discover who intends to edit the resource. > > > > 5.4.1.2. Reservation Query. It must be possible to find out whether > > a given resource has any active reservations, and if so, who > currently > > > > holds reservations. > > > > 5.4.1.3. Release Reservation. It must be possible to release the > > reservation. > > > > 5.4.2. Rationale > > > > Experience from configuration management systems has shown that > people > > > > need to know when they are about to enter a parallel editing > > situation. > > Once notified, they either decide not to edit in parallel with the > > other authors, or they use out-of-band communication (face-to-face, > > telephone, etc.) to coordinate their editing to minimize the > > difficulty > > of merging their results. Reservations are separate from locking, > > since > > a write lock does not necessarily imply a resource will be edited, > and > > > > a reservation does not carry with it any access restrictions. This > > capability supports versioning, since a check-out typically involves > > > taking out a write lock, making a reservation, and getting the > > resource > > to be edited. > > > > 5.5. Retrieval of Unprocessed Source for Editing > > > > 5.5.1. Functional Requirement > > > > The source of any given resource must be retrievable. > > > > 5.5.2. Rationale > > > > There are many cases where the source stored on a server does > > not correspond to the actual entity transmitted in response to an > HTTP > > > > GET. Current known cases are server side include directives, and > > Standard Generalized Markup Language (SGML) source which is > > converted on the fly to HyperText Markup Language (HTML) [HTML] > output > > > > entities. There are many possible cases, such as automatic > conversion > > of bitmap images into several variant bitmap media types (e.g. GIF, > > JPEG), and automatic conversion of an application's native media > type > > into HTML. As an example of this last case, a word processor could > > store its native media type on a server which automatically converts > > > it to HTML. A GET of this resource would retrieve the HTML. > Retrieving > > > > the source would retrieve the word processor native format. > > > > 5.6. Partial Write. > > > > 5.6.1. Functional Requirement > > > > After editing a resource, it must be possible to write only the > > changes > > to the resource, rather than retransmitting the entire resource. > > > > 5.6.2. Rationale > > > > During distributed editing which occurs over wide geographic > > separations > > and/or over low bandwidth connections, it is extremely inefficient > > and frustrating to rewrite a large resource after minor changes, > such > > as a one-character spelling correction. Support is needed for > > transmitting "insert" (e.g., add this sentence in the middle of a > > document) and "delete" (e.g. remove this paragraph from the middle > of > > a document) style updates. Support for partial resource updates will > > > make small edits more efficient, and allow distributed authoring > tools > > > > to scale up for editing large documents. > > > > 5.7. Name Space Manipulation > > > > 5.7.1. Copy > > > > 5.7.1.1. Functional Requirements > > > > It must be possible to duplicate a resource without a client > loading, > > then resaving the resource. After the copy operation, the content of > > > the destination resource must be octet for octet identical to the > > content of the source resource. A modification to either resource > must > > > > not cause a modification to the other. > > > > 5.7.1.2. Rationale > > > > There are many reasons why a resource might need to be duplicated, > > such > > as changing ownership, preparing for major modifications, or making > > a backup. Due to network costs associated with loading and saving a > > resource, it is far preferable to have a server perform a resource > > copy > > than a client. If a copied resource records which resource it is a > > copy > > of, then it would be possible for a cache to avoid loading the > copied > > resource if it already locally stores the original. > > > > 5.7.2. Move/Rename > > > > 5.7.2.1. Functional Requirements > > > > It must be possible to change the location of a resource without > > a client loading, then resaving the resource under a different name. > > > After the move operation, the content of the resource at its new > > location must be octet for octet identical to the content of the > prior > > > > resource. It must no longer be possible to access the resource at > its > > original location. > > > > 5.7.2.2. Rationale > > > > It is often necessary to change the name of a resource, for example > > due > > to adoption of a new naming convention, or if a typing error was > made > > entering the name originally. Due to network costs, it is > undesirable > > to perform this operation by loading, then resaving the resource, > > followed by a delete of the old resource. Similarly, a single rename > > > operation is more efficient than a copy followed by a delete > > operation. > > Note that moving a resource is considered the same function as > > renaming > > a resource. > > > > 5.8. Collections > > > > A collection is a resource that is a container for other resources, > > including other collections. A resource may belong to a collection > > either directly or by reference. If a resource belongs to a > > collection directly, name space operations like copy, move, and > > delete applied to the collection also apply to the resource. If a > > resource belongs to a collection by reference, name space operations > > applied to the collection affect only the reference, not the > resource > > itself. > > > > 5.8.1. Functional Requirements > > > > 5.8.1.1. List Collection. A listing of all resources in a specific > > collection must be accessible. > > > > 5.8.1.2. Make Collection. It must be possible to create a new > > collection. > > > > 5.8.1.3. Add to Collection. It must be possible to add a resource > to > > a > > collection directly or by reference. > > > > 5.8.1.4. Remove from Collection. It must be possible to remove a > > resource from a collection. > > > > 5.8.2. Rationale > > > > In [URL] it states that, "some URL schemes (such as the ftp, http, > and > > > > file schemes) contain names that can be considered hierarchical." > > Especially for HTTP servers which directly map all or part of their > > URL > > name space into a filesystem, it is very useful to get a listing of > > all > > resources located at a particular hierarchy level. This > functionality > > supports "Save As..." dialog boxes, which provide a listing of the > > entities at a current hierarchy level, and allow navigation through > > the hierarchy. It also supports the creation of graphical > > visualizations > > (typically as a network) of the hypertext structure among the > entities > > > > at a hierarchy level, or set of levels. It also supports a tree > > visualization of the entities and their hierarchy levels. > > > > In addition, document management systems may want to make their > > documents accessible through the Web. They typically allow the > > organization of documents into collections, and so also want their > > users > > to be able to view the collection hierarchy through the Web. > > > > There are many instances where there is not a strong correlation > > between > > a URL hierarchy level and the notion of a collection. One example is > a > > > > server in which the URL hierarchy level maps to a computational > > process > > which performs some resolution on the name. In this case, the > contents > > > > of the URL hierarchy level can vary depending on the input to the > > computation, and the number of resources accessible via the > > computation > > can be very large. It does not make sense to implement a directory > > feature for such a name space. However, the utility of listing the > > contents of those URL hierarchy levels which do correspond to > > collections, such as the large number of HTTP servers which map > their > > name space to a filesystem, argue for the inclusion of this > > capability, > > despite not being meaningful in all cases. If listing the contents > of > > a URL hierarchy level does not makes sense for a particular URL, > then > > a "405 Method Not Allowed" status code could be issued. > > > > The ability to create collections to hold related resources supports > > > management of a name space by packaging its members into small, > > related > > clusters. The utility of this capability is demonstrated by the > broad > > implementation of directories in recent operating systems. The > ability > > > > to create a collection also supports the creation of "Save As..." > > dialog boxes with "New Level/Folder/Directory" capability, common in > > > many applications. > > > > 5.9. Versioning > > > > 5.9.1. Background and General Principles > > > > 5.9.1.1. Stability of versions. Most versioning systems are intended > > to > > provide an accurate record of the history of evolution of a > document. > > This accuracy is ensured by the fact that a version eventually > becomes > > > > "frozen" and immutable. Once a version is frozen, further changes > will > > > > create new versions rather than modifying the original. In order for > > > caching and persistent references to be properly maintained, a > client > > must be able to determine that a version has been frozen. Any > > successful > > attempt to retrieve a frozen version of a resource will always > > retrieve > > exactly the same content, or return an error if that version (or the > > > resource itself) is no longer available. > > > > 5.9.1.2. Operations for Creating New Versions > > > > Version management systems vary greatly in the operations they > > require, > > the order of the operations, and how they are combined into atomic > > functions. In the most complete cases, the logical operations > > involved > > are: > > o Reserve existing version > > o Lock existing version > > o Retrieve existing version > > o Request or suggest identifier for new version > > o Write new version > > o Release lock > > o Release reservation > > With the exception of requesting a new version identifier, all of > > these > > operations have applications outside of versioning and are either > > already part of HTTP or are discussed in earlier sections of these > > requirements. Typically, versioning systems combine reservation, > > locking, and retrieval -- or some subset of these -- into an atomic > > checkout function. They combine writing, releasing the lock, and > > releasing the reservation -- or some subset of these -- into an > atomic > > > > checkin function. The new version identifier may be assigned either > > at > > checkout or at checkin. > > > > The WebDAV extensions must find some balance between allowing > > versioning > > servers to adopt whatever policies they wish with regard to these > > operations and enforcing enough uniformity to keep client > > implementations simple. > > > > 5.9.1.3. The Versioning Model > > > > Each version typically stands in a "derived from" relationship to > its > > predecessor(s). It is possible to derive several different versions > > > from a single version (branching), and to derive a single version > from > > > > several versions (merging). Consequently, the collection of related > > versions forms a directed acyclic graph. In the following > discussion, > > this graph will be called a "version graph". Each node of this > graph > > is a "version" or "member of the version graph". The arcs of the > > graph > > capture the "derived from" relationships. > > > > It is also possible for a single resource to participate in multiple > > version graphs. > > > > The WebDAV extensions should support this versioning model, though > > particular servers may restrict it in various ways. > > > > 5.9.1.4. Versioning Policies. Many writers, including Feiler [CM] > and > > Haake and Hicks [VSE], have discussed the notion of versioning > styles > > (referred to here as versioning policies, to reflect the nature of > > client/server interaction) as one way to think about the different > > policies that versioning systems implement. Versioning policies > > include > > decisions on the shape of version histories (linear or branched), > the > > granularity of change tracking, locking requirements made by a > server, > > > > etc. The protocol should clearly identify the policies that it > > dictates > > and the policies that are left up to versioning system implementors > or > > administrators. > > > > 5.9.1.5. It is possible to version resources of any media type. > > > > 5.9.2. Functional Requirements > > > > 5.9.2.1. Referring to a version graph. There must be a way to refer > to > > a version graph as a whole. > > > > Some queries and operations apply, not to any one member of a > > version graph, but to the version graph as a whole. For example, a > > client may request that an entire graph be moved, or may ask for a > > version history. In these cases, a way to refer to the whole version > > > graph is required. > > > > 5.9.2.2. Referring to a specific member of a version graph. There > must > > be a way to refer to each member of a version graph. This means that > > > each member of the graph is itself a resource. > > > > Each member of a version graph must be a resource if it is to be > > possible for a hypertext link to refer to specific version of a > page, > > or for a client to request a specific version of a document for > > editing. > > > > 5.9.2.3. A client must be able to determine whether a resource is a > > version graph, or whether a resource is itself a member of a version > > > graph. > > > > A resource may be a simple, non-versioned resource, or it may be a > > version graph, or it may be a member of a version graph. A client > > needs > > to be able to tell which sort of resource it is accessing. > > > > 5.9.2.4. There must be a way to refer to a server-defined default > > member of a version graph. > > > > The server should return a default version of a resource for > requests > > that ask for the default version, as well as for requests where no > > specific version information is provided. This is one of the > simplest > > ways to guarantee non-versioning client compatibility. This does not > > > rule out the possibility of a server returning an error when no > > sensible > > default exists. > > > > It may also be desirable to be able to refer to other special > members > > of a version graph. For example, there may be a current version for > > editing that is different from the default version. For a graph > with > > several branches, it may be useful to be able to request the tip > > version > > of any branch. > > > > 5.9.2.5. It must be possible, given a reference to a member of a > > version > > graph, to find out which version graph(s) that resource belongs to. > > > > This makes it possible to understand the versioning context of the > > resource. It makes it possible to retrieve a version history for the > > > graphs to which it belongs, and to browse the version graph. It also > > > supports some comparison operations: It makes it possible to > determine > > > > whether two references designate members of the same version graph. > > > > 5.9.2.6. Navigation of a version graph. Given a reference to a > member > > > > of a version graph, it must be possible to discover and access the > > following related members of the version graph. > > o root member of the graph > > o predecessor member(s) > > o successor member(s) > > o default member of the graph > > > > It must be possible in some way for a versioning client to access > > versions related to a resource currently being examined. > > > > 5.9.2.7. Version Topology. There must be a way to retrieve the > > complete > > version topology for a version graph, including information about > all > > members of the version graph. The format for this information must > be > > standardized so that the basic information can be used by all > clients. > > > > Other specialized formats should be accommodated, for servers and > > clients that require information that cannot be included in the > > standard topology. > > > > 5.9.2.8. A client must be able to propose a version identifier to be > > > used for a new member of a version graph. The server may refuse to > use > > > > the client's suggested version identifier. The server should tell > the > > client what version identifier it has assigned to the new member of > > the > > version graph. > > > > 5.9.2.9. A version identifier must be unique across a version graph. > > > > 5.9.2.10. A client must be able to supply version-specific > properties > > to > > be associated with a new member of a version graph. (See Section 5.1 > > > "Properties" above.) At a minimum, it must be possible to associate > > comments with the new member, explaining what changes were made. > > > > 5.9.2.11. A client must be able to query the server for information > > about a version tree, including which versions are locked, which are > > > reserved for editing, and by whom (Session Tracking). > > > > 5.9.3. Rationale > > > > Versioning in the context of the world-wide web offers a variety of > > benefits: > > > > It provides infrastructure for efficient and controlled management > of > > large evolving web sites. Modern configuration management systems > are > > built on some form of repository that can track the revision history > > of > > individual resources, and provide the higher-level tools to manage > > those saved versions. Basic versioning capabilities are required to > > support such systems. > > > > It allows parallel development and update of single resources. Since > > > versioning systems register change by creating new objects, they > > enable simultaneous write access by allowing the creation of variant > > versions. Many also provide merge support to ease the reverse > > operation. > > > > It provides a framework for coordinating changes to resources. While > > > specifics vary, most systems provide some method of controlling or > > tracking access to enable collaborative resource development. > > > > It allows browsing through past and alternative versions of a > > resource. > > Frequently the modification and authorship history of a resource is > > critical information in itself. > > > > It provides stable names that can support externally stored links > for > > annotation and link-server support. Both annotation and link servers > > > frequently need to store stable references to portions of resources > > that are not under their direct control. By providing stable states > of > > > > resources, version control systems allow not only stable pointers > into > > > > those resources, but also well-defined methods to determine the > > relationships of those states of a resource. > > > > It allows explicit semantic representation of single resources with > > multiple states. A versioning system directly represents the fact > that > > > > a resource has an explicit history, and a persistent identity across > > > the various states it has had during the course of that history. > > > > 5.10. Security > > > > 5.10.1. Authentication. The WebDAV specification should state how > the > > WebDAV extensions interoperate with existing authentication schemes, > > > and should make recommendations for using those schemes. > > > > 5.10.2. Access Control. Access control requirements are specified > > in a separate access control draft [AC]. > > > > 5.10.3. Interoperability with Security Protocols. The WebDAV > > specification should provide a minimal list of security protocols > > which any compliant server / client should support. These protocols > > should insure the authenticity of messages and the privacy and > > integrity of messages in transit. > > > > 5.11. Internationalization > > > > 5.11.1. Character Sets and Languages > > > > Since Web distributed authoring occurs in a multi-lingual > > environment, information intended for user comprehension must > > conform to the IETF Character Set Policy [CHAR]. This policy > > addresses character sets and encodings, and language tagging. > > > > 5.11.2. Language Variants > > > > The HTTP working group is addressing problems of content negotiation > > and retrieval of variants of a resource. In an authoring > environment, > > authors must also be able to send variants to the server, and to > > describe the relationships between variants and their parent > resource. > > In addition, it must be possible to write and retrieve variants of > > property labels, property descriptions, and property values. > > > > 5.11.3. Rationale > > > > In the international environment of the Internet, it is important > > to insure that any information intended for user comprehension can > be > > displayed in a writing system and language agreeable to both the > > client and the server. The information encompassed by this > requirement > > > > includes not only the content of resources, but also such things as > > display names and descriptions of properties, property values, and > > status messages. > > > > 6. Acknowledgements > > > > Our understanding of these issues has emerged as the result of much > > thoughtful discussion, email, and assistance by many people, who > > deserve recognition for their effort. > > > > Terry Allen, tallen@sonic.net > > Alan Babich, FileNet, babich@filenet.com > > Dylan Barrell, Open Text, dbarrell@opentext.ch > > Barbara Bazemore, PC DOCS, barbarab@pcdocs.com > > Martin Cagan, Continuus Software, Marty_Cagan@continuus.com > > Steve Carter, Novell, srcarter@novell.com > > Dan Connolly, World Wide Web Consortium, connolly@w3.org > > Jim Cunningham, Netscape, jfc@netscape.com > > Ron Daniel Jr., Los Alamos National Laboratory, rdaniel@lanl.gov > > Mark Day, Lotus, Mark_Day@lotus.com > > Martin J. Duerst, mduerst@ifi.unizh.ch > > Asad Faizi, Netscape, asad@netscape.com > > Ron Fein, Microsoft, ronfe@microsoft.com > > David Fiander, Mortice Kern Systems, davidf@mks.com > > Roy Fielding, U.C. Irvine, fielding@ics.uci.edu > > Mark Fisher, Thomson Consumer Electronics, FisherM@indy.tce.com > > Yaron Y. Goland, Microsoft, yarong@microsoft.com > > Phill Hallam-Baker, MIT, hallam@ai.mit.edu > > Dennis Hamilton, Xerox PARC, hamilton@parc.xerox.com > > Andre van der Hoek, University of Colorado, Boulder, > > andre@cs.colorado.edu > > Del Jensen, Novell, dcjensen@novell.com > > Gail Kaiser, Columbia University, kaiser@cs.columbia.edu > > Rohit Khare, World Wide Web Consortium, khare@w3.org > > Ora Lassila, Nokia Research Center, ora.lassila@research.nokia.com > > Ben Laurie, A.L. Digital, ben@algroup.co.uk > > Mike Little, Bellcore, little@bellcore.com > > Dave Long, America Online, dave@sb.aol.com > > Larry Masinter, Xerox PARC, masinter@parc.xerox.com > > Murray Maloney, SoftQuad, murray@sq.com > > Jim Miller, World Wide Web Consortium, jmiller@w3.org > > Howard S. Modell, Boeing, howard.s.modell@boeing.com > > Keith Moore, University of Tennessee, Knoxville, moore@cs.utk.edu > > Henrik Frystyk Nielsen, World Wide Web Consortium, frystyk@w3.org > > Jon Radoff, NovaLink, jradoff@novalink.com > > Alan Robertson, alanr@bell-labs.com > > Henry Sanders, Microsoft, > > Andrew Schulert, Microsoft, andyschu@microsoft.com > > Christopher Seiwald, Perforce Software, seiwald@perforce.com > > Einar Stefferud, stef@nma.com > > Richard Taylor, U.C. Irvine, taylor@ics.uci.edu > > Robert Thau, MIT, rst@ai.mit.edu > > Sankar Virdhagriswaran, sv@hunchuen.crystaliz.com > > Dan Whelan, FileNet, dan@FILENET.COM > > Gregory J. Woodhouse, gjw@wnetc.com > > > > 7. References > > > > [AC] J. Radoff, "Requirements for Access Control within > > Distributed Authoring and Versioning Environments on the World > > Wide Web". > > > > [CHAR] H.T. Alvestrand, "IETF Policy on Character Sets and > Languages", > > > > June 1997, working draft, draft-alvestrand-charset-policy-00.txt. > > > > [CM] P. Feiler, "Configuration Management Models in Commercial > > Environments", Software Engineering Institute Technical Report > > CMU/SEI-91-TR-7, > > > <http://www.sei.cmu.edu/products/publications/91.reports/91.tr.007.htm > > l> > > > > [HTML] T. Berners-Lee, D. Connolly, "HyperText Markup Language > > Specification - 2.0", RFC 1866, MIT/LCS, November 1995. > > > > [HTTP] R. Fielding, J. Gettys, J. C. Mogul, H. Frystyk, and > > T. Berners-Lee, "Hypertext Transfer Protocol -- HTTP/1.1", RFC 2068, > > U.C. Irvine, DEC, MIT/LCS, January 1997. > > > > [ISO 10646] ISO/IEC 10646-1:1993. "International Standard -- > > Information Technology -- Universal Multiple-Octet Coded Character > > Set (UCS) -- Part 1: Architecture and Basic Multilingual Plane." > > > > [URL] T. Berners-Lee, L. Masinter, M. McCahill. "Uniform Resource > > Locators (URL)", RFC 1738, CERN, Xerox PARC, University of > Minnesota, > > December 1994. > > > > [VSE] A. Haake, D. Hicks, "VerSE: Towards Hypertext Versioning > > Styles", > > Proc. Hypertext'96, The Seventh ACM Conference on Hypertext, 1996, > > pages 224-234. > > > > 8. Authors' Addresses > > > > Judith Slein > > Xerox Corporation > > 800 Phillips Road 128-29E > > Webster, NY 14580 > > > > EMail: slein@wrc.xerox.com > > > > Fabio Vitali > > Department of Computer Science > > University of Bologna > > ITALY > > > > EMail: fabio@cs.unibo.it > > > > E. James Whitehead, Jr. > > Department of Information and Computer Science > > University of California > > Irvine, CA 92697-3425 > > > > Fax: 714-824-4056 > > EMail: ejw@ics.uci.edu > > > > David G. Durand > > Department of Computer Science > > Boston University > > Boston, MA > > > > EMail: dgd@cs.bu.edu > > > > Expires February 28, 1998 > > Name: Judith A. Slein > > E-Mail: slein@wrc.xerox.com > > Internal Phone: 8*222-5169 > > External Phone: (716) 422-5169 > > Fax: (716) 265-7133 > > MailStop: 105-50C > >
Received on Wednesday, 27 August 1997 15:21:24 UTC