implementing webdav using j2ee tm and open source technologies
DESCRIPTION
Implementing WebDAV Using J2EE TM and Open Source Technologies. Juergen Pill Team Leader Software AG. Remy Maucherat Software Engineer Sun Microsystems. Speakers Qualifications. Author of the WebDAV implementation “Jakarta Slide” and maintainer - PowerPoint PPT PresentationTRANSCRIPT
Session #2482
Implementing WebDAV Using J2EETM and Open Source Technologies
Juergen PillTeam Leader Software AG
Remy MaucheratSoftware EngineerSun 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 #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
DeltaV11 methods
DASLSEARCH
ACLACL,REPORT
...
Middle
Session #24826
WebDAV Architecture
• WebDAV has no Versioning
• Support for versioning-unaware clients (auto versioning)
• Homepage: http://webdav.org/deltav
• 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
DeltaV11 methods
DASLSEARCH
ACLACL,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
DeltaV11 methods
DASLSEARCH
ACLACL,REPORT
...
Middle
Session #24828
Delta-V Overview
Middle
Core-Versioning PackageVersion-Control FeatureVERSION-CONTROL, REPORT
Basic-Server-Workspace Package
Checkout-In-Place FeatureCHECKIN, CHECKOUT, UNCHECKOUT
Version-History Feature<no extra methods>
Workspace FeatureMKWORKSPACE
Basic-Client-Workspace Package
Working-Resource FeatureCHECKIN, CHECKOUT (on VRs)
Label FeatureLABEL
Update FeatureUPDATE
Advanced Features
Merge FeatureMERGE
Baseline FeatureBASELINE-CONTROL
Version-Controlled-Collection Feature<no extra methods>
Activity FeatureMKACTIVITY
Session #24829
Delta-V Versioning Schema
Middle
S1
S1
S1
/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 #248210
Delta-V Versioning Schema
Middle
1 1.1
2
3
1.2
1.3
1.43
Linear With Branches
1.2.1.1
1.2.1.2
branch
merge
Session #248211
Delta-V Explicit Versioning
Middle
S1
S1
VHR
VCR
VR
check-in
S1
S1
VHR
VCR
VR
check-out
S1
S2
VHR
VCR
VR
check-in
S1
S2
VHR
VCR
VR
check-out
CH
EC
CK
OU
T CH
EC
CK
IN
PUT
S2
Session #248212
Two styles of autoversioning
PUT / PROPPATCH
CHECKOUT PUT / PROPPATCH CHECKIN
LOCK LOCK CHECKOUT UNLOCK CHECKIN UNLOCK
Delta-V Auto Versioning
Middle
S1
S1
VHR
VCR
VR
check-in
S1
S2
VHR
VCR
VR
check-in
PUT / UNLOCK
S2
Session #248213
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 #248214
Delta-V Workspaces
Middle
Global Workspace
Juergen's WorkspaceRemy's Workspace
S1
S1
VHR
VCR
VR
check-in
/mycoll/files/a.xml
S1
VCR
/mycoll/ws/remy/a.xml
S1 VCR
/mycoll/ws/juergen/a.xml
Session #248215
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 #248216
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 #248217
Presentation Agenda
Beginning
• What is WebDAV– WebDAV Architecture– Delta-V– DASL
• The Jakarta Slide project
• Live demo
Session #248218
Slide: Components
Middle
WebDAV Client API
WebDAV Server
TestSuite
WebDAV APIResource APIJSR 147, 170
WebDAV servletCM KernelStore implementation
RFC 2518PerformanceMulti UserI18NACLDelta-VDASL
WebDAV Access
Command lineGuiAdministration
Session #248219
Goals for a J2EE™ CMS
• WebDAV support
• Native Java API
• Flexible architecture
• Federation
• Standards based
Session #248220
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)
• 2.0.0 target release: 3Q 2002 (preview 2Q)
• Web: http://jakarta.apache.org/slide
Session #248221
Slide 2.0 Architecture
WebDAV Servlet Java Application
Slide API
Security Lock Content
JDBC Filesystem
JTA
Tamino J2EE™
Helpers
Stores
Session #248222
Slide 2.0 Architecture
Java API
Slide API
JTA JSTL Taglib
Struts Taglib JNDI
ClientServlet/JSP
Data Stores
Session #248223
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 #248224
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: http://www.jcp.org/jsr/detail/170.jsp
Session #248225
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 #248226
Presentation Agenda
Beginning
• What is WebDAV
• The Jakarta Slide project
• Live demo– Delta-V with Tamino WebDAV Server– J2EE CMS in action