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

Loading in 2 Seconds...

  share
play fullscreen
1 / 21
meriel

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

58 Views
Download Presentation
Using the Web for Document Versioning: An Implementation Report for DeltaV
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

  1. Using the Web forDocument Versioning:An Implementation Reportfor DeltaV James J. Hunt, Jürgen Reuter Department of Computer Science Universität Karlsruhe

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

  3. 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

  4. DeltaV Protocol

  5. Starting Point

  6. Goal

  7. Scope • implement early 04.5 draft of DeltaV • focus on version control • do not consider configuration management • focus on client-managed workspaces

  8. 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

  9. DeltaV vs. RCE:Common Ground • use checkin/checkout model • organize revisions as ancestral graph • require unique initial revision • provide storage space for meta data

  10. 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

  11. Version GraphDeltaV vs. RCE

  12. 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

  13. 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

  14. 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

  15. 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

  16. 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

  17. 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

  18. Duplicate Use of XML Elements • DAV: • <!ELEMENT set (prop) > • DeltaV: • <!ELEMENT set (label-name)>

  19. 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>

  20. Limited Expressiveness <!ELEMENT auto-checkout (unlocked-update | locked-update)* > <!ELEMENT unlocked-update EMPTY> <!ELEMENT locked-update EMPTY>

  21. 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>