Versioning and Variant Authoring Requirements - PowerPoint PPT Presentation

About This Presentation
Title:

Versioning and Variant Authoring Requirements

Description:

In order for caching and persistent references to be ... Activating a Resource for Content Negotiation (New) Activating a resource for content negotiation. ... – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 22
Provided by: jimwhi
Learn more at: https://ics.uci.edu
Category:

less

Transcript and Presenter's Notes

Title: Versioning and Variant Authoring Requirements


1
Versioning and Variant Authoring Requirements
  • From RFC 2291 and some new ones

2
Revisions are Frozen
  • 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.

3
Variation across systems
  • Version management systems vary greatly in the
    operations they require, the order of the
    operations, and how they are combined into atomic
    functions.

4
Variation across systems
  • In the most complete cases, the logical
    operations involved are
  • Reserve existing version
  • Lock existing version
  • Retrieve existing version
  • Request or suggest identifier for new version
  • Write new version
  • Release lock
  • Release reservation

5
Design Balance
  • 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.

6
Version Graphs (1)
  • 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),
  • To derive a single version from several versions
    (merging).
  • The collection of related versions forms a
    directed acyclic graph.

7
Resource in Graphs
  • It is also possible for a single resource to
    participate in multiple version graphs.
  • It is possible to version resources of any media
    type.

8
Model and Policy
  • The WebDAV extensions should support this
    versioning model, though particular servers may
    restrict it in various ways.
  • The protocol should clearly identify the
    policies that it dictates and the policies that
    are left up to versioning system implementors or
    administrators.

9
Version Graph (1)
  • Referring to a version graph.
  • There must be a way to refer to a version graph
    as a whole.
  • Referring to a specific member of a version
    graph.
  • There must be a way to refer to each member of a
    version graph.
  • Each member of the graph is itself a resource.

10
Version Graph (2)
  • 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.
  • There must be a way to refer to a server-defined
    default member of a version graph.

11
Version Graph (3)
  • 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.

12
Version Graph (New)
  • Version Graphs Can Span Servers
  • To support versioning in an Internet context, a
    version graph must be capable of expressing
    versioning which spans multiple server.

13
Graph Navigation
  • 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.
  • root member of the graph
  • predecessor member(s)
  • successor member(s)
  • default member of the graph

14
Retrieve Version Topology
  • 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.

15
Version Identifiers
  • 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.
  • A version identifier must be unique across a
    version graph.

16
Properties (Comments)
  • A client must be able to supply version-specific
    properties to be associated with a new member of
    a version graph.
  • At a minimum, it must be possible to associate
    comments with the new member, explaining what
    changes were made.

17
Session Tracking
  • 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

18
Variant Authoring
  • It must be possible to send variants to the
    server, describing the relationships between the
    variants and their parent resource.

19
Specify Negotiation (New)
  • A client must be able to specify how a negotiated
    resource performs its negotiation.
  • Example, if there are several language variants
    of a resource, how does a remote author inform a
    server that future content negotiated requests to
    resource A, requesting language L, will result in
    the retrieval of resource B (which is resource A
    in language L)?

20
Axes of Variation (New)
  • Standard Axes of Variation.
  • If authoring of variants is to be supported,
    standard axes of variation must be defined (and
    some discovery mechanism for detecting additional
    axes must be available).
  • At minimum, the base set supported by HTTP/1.1
    content negotiation should be supported, these
    being language, charset, media type, and content
    coding.

21
Activating a Resource for Content Negotiation
(New)
  • Activating a resource for content negotiation.
  • Since most resources do not support negotiation,
    there must be some way to turn this capability on
    (and off).
  • Alternately, this could be formulated as having
    resources which always perform (or do not
    perform) content negotiation, and hence a means
    must be provided to create resources which always
    performs content negotiation.
Write a Comment
User Comments (0)
About PowerShow.com