WebDAV und subversion. Weg von der Web-Einbahnstrasse



Ähnliche Dokumente
Versionsmanagement. Dipl.-Chem. Rainer Orth Technische Fakultät.

<Cocoon Day="2003-Nov-18" /> Cocoon & WebDAV. Guido Casper. Competence Center Open Source S&N AG

Software Engineering in der Praxis

GSI WebDAV Service. Dennis Klein,

Versionskontrollsysteme. Uwe Berger & Markus Dahms <bralug@bralug.de>

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS Lehrstuhl i9, Prof. Dr. T.

FS cs108 Programmierpraktikum Subversion. Lukas Beck Cedric Geissmann Alexander Stiemer

Einführung in Subversion

Mercurial. or how I learned to stop worrying and love the merge. Ted Naleid IAIK

Versionsverwaltung für die KU Betriebssysteme. Eine Einführung

Praktikum Ingenieurinformatik (PI)

Software-Engineering Grundlagen des Software-Engineering 7.3 Sourcecode-Verwaltung mit Versionsmanagement-Systemen Einführung in Subversion (SVN)

Sourcecodeverwaltung

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

WebDAV Eine sichere und globale Dateiablage. Peter Niederlag RRZN-Sicherheitstage 19. November 2007

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

WinCVS Version 1.3. Voraussetzung. Frank Grimm Mario Rasser

Werkzeuge für das Softwarekonfigurationsmanagement

Versionsverwaltung mit Mercurial für Einsteiger

Crashkurs Subversion / Trac / Provisioning. Jan Zieschang, , Berlin

Moodle aktuell halten mit Git

Einführung in Subversion. Tutorium SWP

Von SVN zu Git. Daniel Willmann cbna

Apache Subversion (SVN)

Web Grundlagen zum Spidering

Die Projek*ools. Files, Git, Tickets & Time

Kurzanleitung zu. von Daniel Jettka

Versionskontrolle mit Subversion

Einfu hrung in Subversion mit TortoiseSVN

Informationen zum neuen Studmail häufige Fragen

IT-Projekt-Management

Git - Fast Version Control System

Aus unserer Projekt- und Schulungserfahrung Oracle TechNet

Collaboration Management. Software Collaboration Management mit Trac FrOSCon 24./25. Juni 2006

SUB-ID- VERWALTUNG MIT GPP SETUP-GUIDE FÜR PUBLISHER

Dreamweaver 8 Einführung

OSEK-OS. Oliver Botschkowski. PG AutoLab Seminarwochenende Oktober AutoLab

Wiederholung: Beginn

Proseminar Unix-Tools CVS Daniel Weber & Zhen Zhang Betreuer: Volker Baier

Man liest sich: POP3/IMAP

RESTful Web. Representational State Transfer

CAS genesisworld.exchange connect Abgleich von Adressen und Terminen

<Insert Picture Here> Ohne Fenster-zur-Welt SSO mit ios-apps und Oracle Access Manager

Dokumentation. Black- und Whitelists. Absenderadressen auf eine Blacklist oder eine Whitelist setzen. Zugriff per Webbrowser

Architektur eines Managementsystems für wissenschaftliche Daten

8. Dokumentenverwaltung mit CVS eine Einführung

Versionskontrollsysteme

Subversion. Einstieg in die. Versionskontrolle

Anbindung des Onyx Editors an das Lernmanagementsystem OLAT Anwendungsdokumentation

B E N U T Z E R D O K U M E N TA T I O N ( A L E P H I N O

1CONFIGURATION MANAGEMENT

Versionsverwaltung mit SVN

Software Configuration Management (SCM)

Inhaltsverzeichnis. Open-Xchange Authentication & Sessionhandling

GEZIELT MEHR SICHERHEIT MIT 4I ACCESS SERVER & 4I CONNECT CLIENT

Subversion. von Stefan Arndt, Christian Autermann und Dustin Demuth. 5. November 2009

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Verteilte Versionskontrolle mit GIT Dortmund Ansgar Brauner - GreenPocket GmbH - Köln

Versionsverwaltung für r Visual Studio.NET mit Subversion

Neues aus dem 52 North WPS Projekt. Benjamin Proß, FOSSGIS,

IBM Software Demos Tivoli Provisioning Manager for OS Deployment

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

Versionsverwaltung von Softwareartefakten. 21. Oktober 2014

NetMan Desktop Manager Vorbereitung und Konfiguration des Terminalservers

Anleitung zum Prüfen von WebDAV

Step by Step Webserver unter Windows Server von Christian Bartl

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Versionierung und Bugtracking mit Git(Hub)

Handbuch für Redakteure

KeePass Anleitung. 1.0Allgemeine Informationen zu Keepass. KeePass unter Windows7

SAP NetWeaver Gateway. 2013

Der beste Plan für Office 365 Archivierung.

Inhaltsverzeichnis. 1 Einleitung. Literatur. 1.1 CVS (Concurrent Version System) [Pru03, Zee02, Ced05]

Webalizer HOWTO. Stand:

Wie benutzt man TortoiseSVN

Office im Überblick

GATE General Architecture for Text Engineering. Alexander Hein & Erik Dießler (VL Text Analytics )

SIMP 1.01 Protokollspezifikation (Mindestanforderung)

Das Festkomitee hat die Abi-Seite neu konzipiert, die nun auf einem (gemieteten) Share Point Server

XINDICE. The Apache XML Project Name: J acqueline Langhorst blackyuriko@hotmail.de

Einrichten einer mehrsprachigen Webseite mit Joomla (3.3.6)

Netbeans 6.1 mit SVN Server unter Debian etch mit Windows Clients

Neue Funktionen im GUI für PC-DMIS V3.x 4.x Seite 1 von 8

XMPP: Extensible Messaging and Presence Protocol

Website freiburg-bahai.de

HERZLICH WILLKOMMEN SHAREPOINT DEEP DIVE FOR ADMINS IOZ AG 2

Systemvoraussetzungen:

Benutzerhandbuch - Elterliche Kontrolle

EIDAMO Webshop-Lösung - White Paper

Installationshinweise für OpenOffice Portable auf einem Wechseldatenträger Stand: 27. März 2003 LS Stuttgart, Kaufmännische ZPG

ECO-Manager - Funktionsbeschreibung

Softwareproduktlinien Teil 4: Versionsverwaltungs- und Buildsysteme

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

git & git-flow Jens Sandmann Warpzone Münster e.v. Jens Sandmann (WZ) git & git-flow / 31

Anleitung zum Prüfen von WebDAV

Step by Step Benutzerverwaltung unter Novell. von Christian Bartl

HowTo: Einrichtung & Management von APs mittels des DWC-1000

Engel.sys llll. Clever Daten sichern. Datensicherungen erstellen und auf dem Engel.sys FTP-Server speichern

DataSpace 2.0 Die sichere Kommunikations-Plattform für Unternehmen und Organisationen. Your Data. Your Control

Transkript:

WebDAV und subversion Weg von der Web-Einbahnstrasse

Agenda WebDAV Uebersicht WebDAV Beispiele und Einsatzgebiete DeltaV Uebersicht Subversion

WebDAV Uebersicht

Was ist WebDAV? Web-based Distributed Authoring and Versioning Erweiterung von HTTP (neue Methods) seit 1996 in Entwicklung WebDAV Working Group mit vielen (zu vielen :-) guten Ideen heute mehrere Sub-Workinggroups keine Versionierung!! (WebDA :-)

Warum WebDAV? weg von FTP und proprietären Extensions (Frontpage) Wiederverwendung von Know-How, Infrastruktur, etc. rund um HTTP Unabhängig vom Inhalt (Format, etc.)

The Big Picture DeltaV Versioning CHECKIN, CHECKOUT DASL Searching & Locating SEARCH ACL Links... WebDAV LOCK, UNLOCK, PROPFIND, PROPPATCH, COPY, MOVE, MKCOL HTTP GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE

WebDAV - RFC 2518 seit Februar 1999 HTTP Extensions kooperative Verwaltung von Web Resourcen Properties Collections Locking Namespace Management

HTTP Extensions Uebernahme aller HTTP 1.1 Methoden (z.t. mit zusätzlicher Semantik) HEAD, GET mit wenig Modifikationen OPTIONS wird wichtig PUT, DELETE wirklich verwendet zusätzliche Status Codes (207 Multistatus) XML Encoding neben HTTP headers

Web Resourcen LOCK UNLOCK COPY MOVE DELETE MKCOL Properties (name, value) pairs Body (primary state) PROPFIND PROPPATCH GET PUT - affected by LOCK

Properties name/value Pairs live properties - durch Server kontrolliert (Content-Lenght, modification date, etc.) dead properties - durch Client kontrolliert (author, keywords, etc) PROPFIND, PROPPATCH durchgehendes XML Encoding

PROPFIND PROPFIND /x HTTP/1.1 Host: www.foo.bar Depth: 1 Content-Type: text/xml; charset= utf-8 Content-Length: xxxx <?xml version= 1.0 encoding= utf-8?> <D:propfind xmnls:d= DAV: > <D:allprop/> </D:propfind>

PROPFIND - Response HTTP/1.1 207 Multi-Status Content-Type: text/xml; charset= utf-8 Content-Length: xxxx <?xml version= 1.0 encoding= utf-8?> <D:multistatus xmlns:d= DAV: > <D:response> <D:href>http://www.foo.bar/x</D:href> <D:propstat> <D:prop> <D:creationdate> 1999-12-01T17:42:21...

Collections Gruppierung von Resourcen Mapping auf URL MKCOL Method für neue Collections GET, HEAD, POST sehr frei definiert COPY, MOVE, DELETE funktionieren rekursiv

Locking nur Write Locks betrifft Resourcen, d.h. Content und Properties Exclusive oder Shared Locks nicht verbindungs-orientiert Lock Tokens Lock discovery

HTTP Methods für Locking LOCK und UNLOCK arbeiten meist rekursiv Depth: HTTP Header für Limitierung Timeout: HTTP Header für Zeitbeschränkung beeinflusst fast alle Zugriffe, jedoch nicht GET!

Namespace Management COPY, MOVE (und PUT, DELETE) logisches Mapping auf URLs COPY, MOVE arbeiten rekursiv neuer 'Destination:' HTTP-Header neuer 'Overwrite:' HTTP-Header

WebDAV Beispiele

WebDAV im Einsatz bereits recht verbreitet, aber nicht gut sichtbar Vorreiter Microsoft (Office, IE und IIS) 'Web Folders' sind WebDAV Resourcen Adobe Acrobat 5 Annotations nutzt WebDAV Dreamweaver, GoLive etc. sind WebDAV Clients KDE, Gnome, OpenOffice

Typisches Szenario

WebDAV Server Zope, PyDAV, mod_dav für Apache in Apache 2.0 in Standard-Distribution DavLockDB /var/log/davlocks <Location /dav> Dav On Options None AllowOverride None </Location>

WebDAV Clients KDE (webdav:// URLs) OpenOffice (http:// oder vnd.sun.star.webdav://) cadaver als reiner WebDAV Client neon Library DAVExplorer

Auf bewährtem aufbauen... Apache als gut skalierender Server Authentisierung 'geerbt' SSL natürlich auch <Location /dav> Dav On SSLRequireSSL AuthType Basic... <LimitExcept GET HEAD> Require valid-user </LimitExcept> </Location>

WebDAV - Vorteile für Benutzer Metadaten (Properties) über Dokumente mit DASL (DAV Searching & Locating) wird's wirklich interessant intelligentere Directory-Listings Standard um Content zu speichern move/copy Content Schutz vor versehentlichem Ueberschreiben

WebDAV - Vorteile für Administrator einheitliche Mechanismen für Zugriffsschutz keine Probleme mit Firewalls (kein FTP!) Proxies möglich flexibler Namespace, nicht zwingend gleich der Verzeichnisstruktur

DeltaV Uebersicht

DeltaV - RFC 3253 das 'V' von WebDAV :-) noch relativ neu (erst im März 2002 verabschiedet) 11 (!) neue HTTP Methods einige Server vorhanden, noch wenige Clients nicht nur auf Authoring beschränkt, sondern auch Software- Entwicklung noch wenige Implementierungen

DeltaV Datenmodell und Begriffe Version-Controlled Resource (VCR): DAV Resource mit Versionierung Version History Resource (VH): Speicherung aller Versionen einer VCR Version Resource (VH oder Version): eine bestimmte (read-only) Version einer VCR

Datenmodell Abstract version history of foo.html Representation of foo.html in DeltaV version history resource version-controlled resource v1 v2 DAV:version-set /his/73/ver/1 /his/73/ver/2 /his/73/ver/3 DAV:root-version /his/73/ver/1 /his/73/vhr DAV:checked-out /his/73/ver/3 DAV:version-history /his/73/vhr body of version v3 /foo.html v3 v1 v2 v3 /his/73/ver/1 /his/73/ver/2 /his/73/ver/3 version resources

Datenmodell - Key Messages Version History ist zentrale Struktur VH hat kein URL-Mapping VH hat Pointer (URL's) auf alle read-only Versionen Version-Controlled Resource ist Handle für VH (hat URL- Mapping) mehrere VCR für die gleiche VH möglich (verschiedene Benutzer, verschiedene 'Views')

Basis-Methoden für eine 'Brot und Butter' Versionierung VERSION-CONTROL CHECKOUT, CHECKIN, UNCHECKOUT REPORT

VERSION-CONTROL Methode für bereits bestehende oder leere Web-Resource (versionable resource) kreiert eine neue Version History kreiert eine neue (Initial-)Version konvertiert Web-Resource zu VCR

Typisches Szenario GET/PROPFIND lokale Kopie der Resource edit, edit, edit CHECKOUT -> Location: Header (URL) vorbereiten für neue Version kann auch vor edit geschehen PUT/PROPPATCH CHECKIN schreiben neue Version

Erweitertes Versioning LABEL Methode 'Tagging' von Versionen mit lesbaren Namen UPDATE Methode bestimmt aktuelle Default-Version einer VCR Autoversioning bei jedem PUT bei jedem LOCK/GET/PUT/UNLOCK Zyklus)

Workspaces individueller Arbeitsplatz - wie der Name sagt :-) client-side Workspace durch GET/PROPFIND populiert lokal bearbeitet CHECKOUT/PUT/CHECKIN Zyklus working resource in Location: Header der CHECKOUT Response

Server-Side Workspaces Workspace auf dem DAV-Server mit URL-Mapping (z.b. /users/joe/ws1/...) MKWORKSPACE Methode VCR's mit VERSION-CONTROL in den Workspace 'kopieren' neue Resourcen mit PUT/MKCOL

Activities MKACTIVITY Methode Gruppierung von mehreren CHECKOUT/CHECKINs zu einem logischen Change Changeset, Branch bei MERGE verwendbar

subversion

Was ist subversion? Werkzeug zur Software-Versionierung à la CVS Karl Fogel, Jim Blandy, et.al. von collab.net gesponsort seit Mai 2000 in Entwicklung kurz vor Alpha (feature complete) Version 1.0 noch 2002

Warum subversion? 'echtes' rename, move, copy atomare Commits robuste Netzwerk-Schicht (WebDAV DeltaV) Branches/Tags in konstanter Zeit saubere Text/Binary Handhabung Konzept für User und Zugriffsrechte

The Big Picture

subversion für CVS Benutzer sehr ähnliches Command Line Interface 'svn' statt 'cvs' der ganze Baum wird versioniert nicht mehr 'Version 5 von foo.c', sondern 'foo.c so wie es in Version 5 war' Basis-Version lokal gespeichert neue Kommandi: status, move, copy, mkdir snvadmin Kommando

Szenario - Kreieren eines Repositories svnadmin create /tmp/repo1 svn checkout file:///tmp/repo2 -d repo cd repo touch hello.c svn add hello.c svn mkdir docs svn commit -m 'comment'

subversion - Hauptunterschiede zu CVS keine File-Versionierung kein 'Herumhacken' im Repository :-( oder :-) Kopieren und Linken von Nodes Speicherung der alten Versionen als Diffs (neueste als Voll- Text) Diff-Algorithmus für Binary Files

Node Linking 17 18 19... D foo bar D foo bar D D file.c D file.c F F

Branches und Tags subversion kennt keine Branches und Tags rein 'menschliches' Konzept Repository meist aufgeteilt in trunk branches tags Branches und Tags durch Kopieren svn switch

WebDAV usage WebDAV DeltaV als Netzwerk Protokoll (heute) nur eingeschränkte DeltaV Funktionalität CHECKIN/CHECKOUT nur auf Versionen (nicht auf VCR) nur mit subversion Client sinnvoll nutzbar 'richtiges' DeltaV als High-Priority nach V 1.0

Zukunft von subversion löst einige Probleme von CVS hat grosses Erweiterungs-Potential saubere Architektur (Netzwerk, Client API) Bindings für Java, Ruby, Python, etc. GUI Clients könnte evtl. CVS wirklich ablösen

Q & A Danke für die Aufmerksamkeit!