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 #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

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

Session #248227

Session #248228

Session #2482


Top Related