Session #2482 Implementing WebDAV Using J2EE TM and Open Source Technologies Juergen Pill Team Leader Software AG Remy Maucherat Software Engineer Sun Microsystems
Session #24822 Speakers Qualifications Author of the WebDAV implementation “Jakarta Slide” and maintainer Project leader of Software AG’s “Tamino WebDAV Server” Member of JSR147 and JSR 170 Expert Group Actively contributing to Jakarta-Slide (committer) Actively contributing to Jakarta-Tomcat (committer) Experience on the subject of databases and repositories for more than 15 years Beginning
Session #24823 WebDAV Mission Beginning “The World is A Folder”
Session #24824 Presentation Agenda Beginning What is WebDAV –WebDAV Architecture –Delta-V –DASL The Jakarta Slide project Live demo
Session #24825 WebDAV Architecture HTTP (HyperText Transfer Protocol) GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE WebDAV (Distributed Authoring Protocol) PROPFIND, PROPPATCH, LOCK, UNLOCK, MKCOL, COPY, MOVE DeltaV 11 methods DASL SEARCH ACL ACL,REPORT... Middle
Session #24826 WebDAV Architecture WebDAV has no Versioning Support for versioning-unaware clients (auto versioning) Homepage: Approved as a standard just recently HTTP (HyperText Transfer Protocol) GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE WebDAV (Distributed Authoring Protocol) PROPFIND, PROPPATCH, LOCK, UNLOCK, MKCOL, COPY, MOVE DeltaV 11 methods DASL SEARCH ACL ACL,REPORT... Middle
Session #24827 WebDAV Architecture Query protocol for data and query languages Standard Query language for properties and content Additional Query languages (e.g. X-Query) HTTP (HyperText Transfer Protocol) GET, HEAD, POST, OPTIONS, PUT, DELETE, TRACE WebDAV (Distributed Authoring Protocol) PROPFIND, PROPPATCH, LOCK, UNLOCK, MKCOL, COPY, MOVE DeltaV 11 methods DASL SEARCH ACL ACL,REPORT... Middle
Session #24828 Delta-V Overview Middle Core-Versioning Package Version-Control Feature VERSION-CONTROL, REPORT Basic-Server-Workspace Package Checkout-In-Place Feature CHECKIN, CHECKOUT, UNCHECKOUT Version-History Feature Workspace Feature MKWORKSPACE Basic-Client-Workspace Package Working-Resource Feature CHECKIN, CHECKOUT (on VRs) Label Feature LABEL Update Feature UPDATE Advanced Features Merge Feature MERGE Baseline Feature BASELINE-CONTROL Version-Controlled-Collection Feature Activity Feature MKACTIVITY
Session #24829 Delta-V Versioning Schema Middle S1 S1S1 S1S1 /files/a.xml history/1/1.0 /history/1/files/a.xml VHR VCR VR version-history check-in version-set root-version VERSION-CONTROL
Session # Delta-V Versioning Schema Middle LinearWith Branches branch merge
Session # Delta-V Explicit Versioning Middle S1S1 S1S1 VHR VCR VR check-in S1S1 S1S1 VHR VCR VR check-out S1S1 S2S2 VHR VCR VR check-in S1S1 S2S2 VHR VCR VR check-out CHECCKOUT CHECCKIN PUT S2S2
Session # Two styles of autoversioning PUT / PROPPATCH CHECKOUT PUT / PROPPATCH CHECKIN LOCK LOCK CHECKOUT UNLOCK CHECKIN UNLOCK Delta-V Auto Versioning Middle S1S1 S1S1 VHR VCR VR check-in S1S1 S2S2 VHR VCR VR check-in PUT / UNLOCK S2S2
Session # Delta-V Workspaces Middle User change seperation and isolation Workspaces can hold versioned or unversioned data Server workspaces –separate namespace for each workspace: /mycoll/ws/pn /mycoll/ws/wam Client workspaces –no server namespace –server maintains "working resource" for each checkout
Session # Delta-V Workspaces Middle Global Workspace Juergen's WorkspaceRemy's Workspace S1S1 S1S1 VHR VCR VR check-in /mycoll/files/a.xml S1S1 VCR /mycoll/ws/remy/a.xml S1S1 VCR /mycoll/ws/juergen/a.xml
Session # Delta-V More features Middle Label –Human readable string, named version –Simple form of configuration management Update –Position a VCR on a specified VR Report –Extensible mechanism to obtain information about resources (usefull for WebDAV in general !!)
Session # Delta-V Advanced features Middle Merge –Combines branches within a VHR –Combines two workspaces Baseline –Represents a Freeze/Snapshot of resources –Is itself versioned Activity –Logical change (spans multiple versions in multiple histories) Versioned Controlled Collection
Session # Presentation Agenda Beginning What is WebDAV –WebDAV Architecture –Delta-V –DASL The Jakarta Slide project Live demo
Session # Slide: Components Middle WebDAV Client API WebDAV Server TestSuite WebDAV API Resource API JSR 147, 170 WebDAV servlet CM Kernel Store implementation RFC 2518 Performance Multi User I18N ACL Delta-V DASL WebDAV Access Command line Gui Administration
Session # Goals for a J2EE™ CMS WebDAV support Native Java API Flexible architecture Federation Standards based
Session # Apache Slide 2.0 Proof of concept for a J2EE™ CMS WebDAV centric project Slide provides: –Java Repository API –WebDAV server (level 2, DASL, Delta V, ACP) –WebDAV client –Other alternative APIs (taglibs,...) Open-source (Apache license) target release: 3Q 2002 (preview 2Q) Web:
Session # Slide 2.0 Architecture WebDAV Servlet Java Application Slide API SecurityLockContent JDBCFilesystem JTA Tamino J2EE™ Helpers Stores
Session # Slide 2.0 Architecture Java API Slide API JTA JSTL TaglibStruts Taglib JNDI Client Servlet/JSP Data Stores
Session # Architectural Problems The Java repository API is “proprietary” No support for messaging at the moment WebDAV depends on the “proprietary” repository API Still some work left in J2EE™ integration –JCA support ? –Security Manager awareness –JMS
Session # JSR 170 – Content Repository for Java™ technology API Granular R/W access Versioning Hard and Soft structured content Event monitoring (JMS) Full-text seach and filtering Access control Locking and Concurrency Web:
Session # Slide.next and JSR 170 JSR 170 API features are very similar to the Slide API features JSR 170 adds missing functionality Major Slide contributors participating in JSR 170 Expert Group JSR 170 target completion date is June 2003 Slide.next MAY implement JSR 170 Would make the project more modular
Session # Presentation Agenda Beginning What is WebDAV The Jakarta Slide project Live demo –Delta-V with Tamino WebDAV Server –J2EE CMS in action
Session #248227
Session #248228
Session #2482