using the web for document versioning an implementation report for deltav n.
Download
Skip this Video
Download Presentation
Using the Web for Document Versioning: An Implementation Report for DeltaV

Loading in 2 Seconds...

play fullscreen
1 / 21

Using the Web for Document Versioning: An Implementation Report for DeltaV - PowerPoint PPT Presentation


  • 60 Views
  • Uploaded on

Using the Web for Document Versioning: An Implementation Report for DeltaV. James J. Hunt, Jürgen Reuter. Department of Computer Science Universität Karlsruhe. Task. Starting Point: client/server versioning system client/server communication via proprietary protocol over Java-RMI Task:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Using the Web for Document Versioning: An Implementation Report for DeltaV' - rowan-holden


Download Now An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
using the web for document versioning an implementation report for deltav
Using the Web forDocument Versioning:An Implementation Reportfor DeltaV

James J. Hunt, Jürgen Reuter

Department of Computer Science

Universität Karlsruhe

slide2
Task
  • Starting Point:
    • client/server versioning system
    • client/server communication via proprietary protocol over Java-RMI
  • Task:
    • replace Java-RMI with DeltaV standard
slide3

DeltaV Protocol

  • Protocol Design Goals:
    • support most common versioning models
    • provide versioning for Web and DAV clients in standardized fashion
    • ensure backwards compatibility to versioning-unaware Web and DAV clients
  • Protocol Implementation:
    • as extension of DAV, which itself extends HTTP
scope
Scope
  • implement early 04.5 draft of DeltaV
  • focus on version control
  • do not consider configuration management
  • focus on client-managed workspaces
implementation details
Implementation Details
  • coded in Java
  • code size:
    • core HTTP server: 16720 lines
    • attributed file system: 5357 lines
    • DAV implementation: >8500 lines
    • DeltaV implementation: >10000 lines
deltav vs rce common ground
DeltaV vs. RCE:Common Ground
  • use checkin/checkout model
  • organize revisions as ancestral graph
  • require unique initial revision
  • provide storage space for meta data
slide10

Working Resources vs. Templatesin a checkin/checkout model

  • DeltaV Working Resource:
    • server-side modifiable copy of existing version
    • holds working resource properties
  • RCE Template:
    • placeholder for new revision in archive; modifiable copy of previous revision in user's file system space
    • holds pre-initialized revision attributes
slide12

Version Properties vs. Attributes

  • Trivial mapping:
    • DAV:Author <-> REV_AUTHOR
    • DAV:Comment <-> REV_DESCRIPTION
  • Needs date format conversion:
    • DAV:creationdate <-> REV_DATE_IN
    • DAV:getlastmodified <-> REV_TIMESTAMP
version properties vs attributes version tree navigation
Version Properties vs. Attributes:Version Tree Navigation
  • DAV:successor-set property:
    • no designated line of development
    • includes revisions only, use DAV:working-resource-id-set to get working resources
  • RCE's REV_NEXT, REV_BRANCHES attribute:
    • tracks current line of development with REV_NEXT
    • includes revisions and templates
version properties vs attributes
Version Properties vs. Attributes
  • Problem:
    • no DeltaV equivalent for RCE's ARCH_USERS, ARCH_COMMENT_LEADER attributes
  • Solution:
    • use user-defined resource properties
  • Drawback:
    • client-specific use, interoperability problems when incompatible clients share same server
xml confusion
XML Confusion
  • DAV, DeltaV:
    • make heavy use of XML
    • use XML namespaces
    • specify DTD syntax informally
    • do not consider namespaces in DTD
    • do not support XML validation
xml confusion1
XML Confusion
  • problems:
    • unclear how to specify namespaces in DTD
    • namespaces do not seem to be supported by validating parser
    • many people tend to disregard XML validation
    • limited expressiveness of DTD
  • prospect:
    • maybe XML schemata are more appropriate
conclusion
Conclusion
  • applicability of DeltaV on RCE proven
  • provided feedback for development of DeltaV
  • issues left (mostly DAV issues)
  • DeltaV ongoing effort
  • various implementations underway (e.g. Apache)
  • ultimate test still pending: run our client/server against someone else's server/client
slide18

Duplicate Use of XML Elements

  • DAV:
    • <!ELEMENT set (prop) >
  • DeltaV:
    • <!ELEMENT set (label-name)>
slide19

Limited Expressiveness

<!ELEMENT auto-checkout ANY>

ANY value: A sequence of elements with at most

one DAV:unlocked-update element and at most

one DAV:locked-update element.

<!ELEMENT unlocked-update EMPTY>

<!ELEMENT locked-update EMPTY>

limited expressiveness
Limited Expressiveness

<!ELEMENT auto-checkout

(unlocked-update | locked-update)* >

<!ELEMENT unlocked-update EMPTY>

<!ELEMENT locked-update EMPTY>

marshalling
Marshalling

PROPFIND /foo.java HTTP/1.1

Content-Length: 0

HTTP/1.1 207 Multi-Status

Content-Type: text/xml

Content-Length: 1418

DAV: 1,2

<?xml version="1.0"?>

<A:multistatus xmlns:A="DAV:">

<A:response>

<A:href>http://Rom.ira.uka.de:4711/foo.java</A:href>

<A:propstat>

<A:prop xmlns:B="RCE:">

<A:auto-version>F</A:auto-version>

<A:working-resource-id-set />

<B:access-list>reuter(RWX),jjh(RW)</B:access-list>

...

<A:revision-set>

<A:href>http://Rom.ira.uka.de:4711/xkr1.1</A:href>

<A:href>http://Rom.ira.uka.de:4711/xkr1.2</A:href>

</A:revision-set>

</A:prop>

<A:status>HTTP/1.0 200 OK</A:status>

</A:propstat>

</A:response>

</A:multistatus>