implementing webdav using j2ee tm and open source technologies

29
Session #2482 Implementing WebDAV Using J2EE TM and Open Source Technologies Juergen Pill Team Leader Software AG Remy Maucherat Software Engineer Sun Microsystems

Upload: jonas-burke

Post on 30-Dec-2015

31 views

Category:

Documents


1 download

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 Presentation

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