implementing webdav using j2ee tm and open source technologies
Post on 30-Dec-2015
37 Views
Preview:
DESCRIPTION
TRANSCRIPT
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
top related