Using the Web for Document Versioning: An Implementation Report for DeltaV
-
Upload
rowan-holden -
Category
Documents
-
view
25 -
download
0
description
Transcript of Using the Web for Document Versioning: An Implementation Report for DeltaV
![Page 1: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/1.jpg)
Using the Web forDocument Versioning:
An Implementation Reportfor DeltaV
James J. Hunt, Jürgen Reuter
Department of Computer ScienceUniversität Karlsruhe
![Page 2: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/2.jpg)
Task
Starting Point: client/server versioning system client/server communication via proprietary
protocol over Java-RMI
Task: replace Java-RMI with DeltaV standard
![Page 3: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/3.jpg)
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
![Page 4: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/4.jpg)
DeltaV Protocol
DeltaV
DAV
HTTP XML
![Page 5: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/5.jpg)
Starting Point
RCE
VRCE
RCErepository
RCEserver
RMI
server client
file systemworking files
user
archives
![Page 6: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/6.jpg)
Goal
RCE
VRCE
DeltaVrepository
Webserver
DeltaVprotocol
server client
file systemworking files
user
file system
working resources
archives
DeltaV- >RCE
RCE- >DeltaV
attributedfile system
![Page 7: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/7.jpg)
Scope
implement early 04.5 draft of DeltaV focus on version control do not consider configuration
management focus on client-managed workspaces
![Page 8: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/8.jpg)
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
![Page 9: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/9.jpg)
DeltaV vs. RCE:Common Ground
use checkin/checkout model organize revisions as ancestral graph require unique initial revision provide storage space for meta data
![Page 10: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/10.jpg)
Working Resources vs. Templates
in 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
![Page 11: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/11.jpg)
Version GraphDeltaV vs. RCE
1.1
1.2
1.3
1.4
1.5
1.6
1.1.1.1
1.1.1.21.2.1.1
1.2.1.2
1.2.1.3
1.5.1.1 1.5.2.1
1.2.1.3
1.3
trunk
merge
Legend:
template
revision
sucessor relation
branch 1.2.1
branch 1.1.1
branch
branch
rev01
rev02
rev04
rev08
rev09
wr02
rev03
rev06rev05
rev07
wr01
rev10 wr03
wr02
rev08
merge
Legend:
working resource
revision
sucessor relation
branch
branch
working resourceof a revision
initial revision
![Page 12: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/12.jpg)
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
![Page 13: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/13.jpg)
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
![Page 14: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/14.jpg)
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
![Page 15: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/15.jpg)
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
![Page 16: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/16.jpg)
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
![Page 17: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/17.jpg)
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
![Page 18: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/18.jpg)
Duplicate Use of XML Elements
DAV: <!ELEMENT set (prop) >
DeltaV: <!ELEMENT set (label-name)>
![Page 19: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/19.jpg)
Limited Expressiveness
<!ELEMENT auto-checkout ANY>
ANY value: A sequence of elements with at mostone DAV:unlocked-update element and at mostone DAV:locked-update element.
<!ELEMENT unlocked-update EMPTY>
<!ELEMENT locked-update EMPTY>
![Page 20: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/20.jpg)
Limited Expressiveness
<!ELEMENT auto-checkout (unlocked-update | locked-update)* >
<!ELEMENT unlocked-update EMPTY>
<!ELEMENT locked-update EMPTY>
![Page 21: Using the Web for Document Versioning: An Implementation Report for DeltaV](https://reader030.fdocuments.in/reader030/viewer/2022032709/56812f4a550346895d94dab2/html5/thumbnails/21.jpg)
MarshallingPROPFIND /foo.java HTTP/1.1Content-Length: 0
HTTP/1.1 207 Multi-StatusContent-Type: text/xmlContent-Length: 1418DAV: 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>