クライアントの協調動作

すべての WebDAV クライアントは三つのどれかに分類されます— スタンドアロン・アプリケーション、ファイルエクスプローラ拡張、そして ファイルシステムの実装です。これらの分類はおおざっぱに言ってユーザに 対して提供できる WebDAV の機能の種類を決めます。 表 B.1. 「よく利用される WebDAV クライアント」 はその分類と、WebDAV が利用可能な ソフトウェアの共通部品の簡単な説明です。これらのソフトウェアが提供する機能の 詳細と一般的な分類についてはその後の節で見ることができます。

表 B.1. よく利用される WebDAV クライアント

ソフトウェア分類説明
Adobe Photoshopスタンドアロン WebDAV アプリケーション画像編集ソフトで、WebDAV URL を直接開いたり書き込んだりすることができます。
Cadaverスタンドアロン WebDAV アプリケーションコマンドライン WebDAV クライアントで、ファイル転送、ツリー、排他操作をサポートしています。
DAV Explorerスタンドアロン WebDAV アプリケーションWebDAV 共有を閲覧するための GUI ツールです。
davfs2WebDAV のファイルシステム実装Linux ファイルシステムドライバで、WebDAV 共有をマウントできます。
GNOME Nautilusファイルエクスプローラの WebDAV 拡張WebDAV 共有上のツリー操作を可能にする GUI のファイルエクスプローラです。
KDE Konquerorファイルエクスプローラの WebDAV 拡張WebDAV 共有上のツリー操作を可能にする GUI のファイルエクスプローラです。
Mac OS XWebDAV のファイルシステム実装WebDAV 共有をオペレーティングシステムに、ローカルにマウントする機能を組み込みでサポートしています。
Macromedia Dreamweaverスタンドアロン WebDAV アプリケーションWebDAV URL に対して直接の読み書き可能な Web ページ作成ツール。
Microsoft Officeスタンドアロン WebDAV アプリケーションオフィスの生産性を高めるさまざまなコンポーネントからなる製品 で、WebDAV URL に対して直接読み書きすることが可能です。
Microsoft Webfoldersファイルエクスプローラの WebDAV 拡張WebDAV 共有上のツリー操作を可能にする GUI のファイルエクスプローラ・プラグラムす。
Novell NetDriveWebDAV ファイルシステムの実装Windows のドライブ識別文字をマウントされたリモート WebDAV 共有に 割り当てるための、ドライブマッピング・プログラムです。
SRT WebDriveWebDAV ファイルシステムの実装機能の一部として、Windows のドライブ識別文字を マウントされたリモート WebDAV 共有に割り当てることも可能な、ファイル転送ソフトウェアです。

スタンドアロン WebDAV アプリケーション

WebDAV アプリケーションは WebDAV サーバと通信可能な WebDAV プロトコル の機能を組み込んだプログラムのことです。このような形での WebDAV を サポートしている最も有名なプログラムのいくつかを紹介します。

Microsoft Office, Dreamweaver, Photoshop

Windows 上では Microsoft Office のような、WebDAV のクライアント機能を 統合した有名なアプリケーションがいくつかあります。 [51] Adobe の Photoshop と Macromedia の Dreamweaver 。 両方とも直接 URL を開いたり保存したりすることができますが ファイルを編集するさい WebDAV の排他制御を頻繁に利用する傾向が あります。

Mac OS X 上にも同じようなたくさんのプログラムが存在しますが、 それらのプログラム上では直接 WebDAV がサポートされているようには見えません。じっさい Mac OS X 上では、File->Openダイアログは パスや URL の入力がまったく許されてはいません。これらのプログラムの Macintosh バージョンでは WebDAV の機能はわざと実装されていない ように見えますが、それは OS X 自身がすでに WebDAV 用のすばらしい 低レベルファイルシステムを提供しているからです。

Cadaver, DAV Explorer

Cadaver は生の Unix コマンドラインプログラムで、WebDAV 共有を 閲覧したり変更したりすることのできるものです。Subversion クライアントと同様、 neon HTTP ライブラリが必要になります— しかしびっくりする必要はありません。 neon と cadaver は同じ作者によって書かれています。Cadaver はフリーソフトウェア (GPL ライセンス)で、http://www.webdav.org/cadaver/から取得できます。

cadaver を使うのは、ちょうどコマンドラインの FTP プログラムを使うような感じ なので、基本的な WebDAV 機能をデバッグするのにとても役立ちます。困った時には ファイルをアップロードしたりダウンロードしたりするのに使うことができますし、 プロパティーを調べたり、ファイルのコピー、移動、ロック、アンロックも やってのけます:

$ cadaver http://host/repos
dav:/repos/> ls
Listing collection `/repos/': succeeded.
Coll: > foobar                                 0  May 10 16:19
      > playwright.el                       2864  May  4 16:18
      > proofbypoem.txt                     1461  May  5 15:09
      > westcoast.jpg                      66737  May  5 15:09

dav:/repos/> put README
Uploading README to `/repos/README':
Progress: [=============================>] 100.0% of 357 bytes succeeded.

dav:/repos/> get proofbypoem.txt
Downloading `/repos/proofbypoem.txt' to proofbypoem.txt:
Progress: [=============================>] 100.0% of 1461 bytes succeeded.

DAV Explorer はもう一つのスタンドアロン WebDAV クライアントであり Java で書かれていますfree Apache-like license のもとで、 http://www.ics.uci.edu/‾webdav/から取得可能です。 DAV Explorer は cadaver でできるすべてのことができますが、より可搬性に すぐれ、ユーザに優しい GUI アプリケーションです。またこれは WebDAV アクセス制御プロトコル(RFC 3744) をサポートした最初のクライアントの 一つでもあります。

もちろん DAV Explorer の ACL サポートはこの場合やくには立ちません。mod_dav_svn がサポートしていないからです。Cadaver と DAV Explorer がどちらも制限された DeltaV コマンドをサポートしていても、あまり役には立たちません。 MKACTIVITY要求が許されていないからです。しかし、とにかく それは関係のないことです; ここで仮定しているのはこれらのクライアントの すべては自動バージョン化されたリポジトリを操作できるということです。

ファイルエクスプローラの WebDAV 拡張

いくつかの有名なファイルエクスプローラ GUI プログラムは WebDAV 拡張を サポートしていて、ユーザに、DAV 共有領域を、単にあたかもローカルコンピュータ 上にある別のディレクトリのように見せたり、その共有領域のアイテムに対する 基本的なツリー編集操作を可能にするものです。 たとえば Windows Explorer では、ひとつの「ネットワークプレース」と して WebDAV サーバを閲覧できます。ユーザはファイルをデスクトップ上で移動 したり、名称変更、コピー、削除などの処理を通常のやりかたで操作できます。 しかしそれはファイルエクスプローラの機能でしかないので、通常のアプリケーション には DAV 共有領域は見えません。すべての DAV 操作は、エクスプローラのインターフェース を通じて実行しなくてはなりません。

Microsoft Webfolders

Microsoft は WebDAV 仕様の元来の支援者の一つであり、Windows 98 で最初の クライアントを出荷し始めました。これは「Webfolders」と言う 名前で知られています。このクライアントはまた Windows NT4 と 2000 でも 出荷されました。

もともとの Webfolder クライアントはエクスプローラの拡張であり、これは ファイルシステムを閲覧する際の主要な GUI プログラムでした。これはとても うまく動作しています。Windows 98 では 「マイコンピュータ」 の中に Webfolder がない場合には明示的にインストールする必要がありました。 Windows 2000 では単に新しい 「ネットワークプレース」を追加 し、URL を入力すれば WebDAV 共有が閲覧用にポップアップします。

Windows XP のリリースで、Microsoft は Webfolder の新しい実装を出荷し 始めましたが、これは 「WebDAV mini-redirector」という名前で 知られています。新しい実装はファイルシステムレベルのクライアントであり WebDAV 共有をドライブ文字をつけてマウントできるようにしたものです。 残念なことにこの実装はかなりバグがあります。クライアントは通常 http URL (http://host/repos) を UNC 共有記法 (¥¥host¥repos)に変換しようとします; また Windows ドメイン認証を使ってHTTP 基本認証要求に応答しますが、このとき ユーザ名には HOST¥usernameが利用されます。 このような協調動作の問題は深刻なもので、多くのユーザに対する不満を 解消するための数えきれないくらいのドキュメントがネット上に存在して います。Apache の WebDAV モジュールを最初に設計した Greg Stein で すら Apache サーバに対して XP Webfolder を利用することを推奨 していません。

最初の 「エクスプローラ機能のみの」 Webfolder の実装は XP でもなくなってはいませんが、埋もれてしまっています。以下のような 方法を使っていまでも探すことはできます:

  1. 'ネットワークプレース' を選択します。

  2. 新しいネットワークプレースを追加します。

  3. プロンプトが出たらリポジトリの URL を入力しますが URL には ポート番号を含めます。例えば http://host/reposは、かわりに http://host:80/reposと指定します。

  4. 認証要求に正しく答えます。

この問題の回避策として他にもさまざまなうわさがありますが、Windows XP の すべてのバージョンとパッチレベルでうまく動作するものはなさそうです。 私たちのテストでは今示したアルゴリズムがどのシステムでも常にうまくいく ように思えます。WebDAV コミュニティーの一般的に合意されていることは、 新しい Webfolders の実装のかわりに古いものを使うべきであることと、 Windows XP 上で本当のファイルシステムレベルのクライアントが必要な場合 にはWebDrive や NetDrive のようなサードパーティー製のプログラムを使うこと です。

Nautilus, Konqueror

Nautilus は GNOME デスクトップの公式なファイルマネージャ/ブラウザ で(http://www.gnome.org)、Konqueror は KDE デスクトップの ファイルマネージ/ブラウザです(http://www.kde.org)。どちらの アプリケーションもエクスプローラレベルでの組み込み WebDAV クライアントで、 自動バージョン化されたリポジトリに対してもうまく動作します。

GNOME の Nautilus の場合、ファイルメニューOpen locationを 選択し、URL を入力します。これでリポジトリは他のファイルシステムと同じように 見えるはずです。

KDE の Konqueror の場合は、ロケーションバーに URL を入力するさいに webdav://スキーマを使う必要があります。http:// の形の URL を入力すると、Konquerorは通常のウェブブラウザのように動作します。 たぶん mod_dav_svn によって生成される一般的な HTML のディレクトリ一覧が表示される ことでしょう。 http://host/reposのかわりに webdav://host/reposを入力すると、Konqueror は WebDAV クライアントとなり、ファイルシステムとしてリポジトリを表示するようになります。

WebDAV ファイルシステムの実装

WebDAV ファイルシステムの実装は おそらく WebDAV クライアントの最もすぐれた ものの一つです。それは低レベルの ファイルシステム、典型的にはオペレーティングシステムのカーネル内部 に実装されます。これが意味することは、DAV 共有は他のネットワークファイル システムと同じように、たとえば Unix なら NFS や、Windows ならドライブ文字を つけた SMB 共有のような形でマウントすることができるということです。 結果として、この手のクライアントはすべてのプログラムに対して完全に 読み書き透過な WebDAV アクセスを提供できることになります。アプリケーションは 実際には WebDAV 要求が発生していることに気づきもしないでしょう。

WebDrive, NetDrive

WebDrive も NetDrive も非常にすばらしい商用製品であり、WebDAV 共有を ドライブ文字に対応することができます。これらの製品を使って接続を失敗 させることはどうしてもできませんでした。これを書いている時点で WebDrive はSouth River Technologies (http://www.southrivertech.com) から購入可能です。NetDrive は Netware に付属しており、それ自体は無料です。 「netdrive.exe」 のサイトをウェブで検索すると出てきます。 (奇妙な話にだと思うのはあなただけではありません。以下の Novell のウェプサイトを 見てください: http://www.novell.com/coolsolutions/qna/999.html)

Mac OS X

Apple 社の OS X オペレーティングシステムには ファイルシステムレベルで統合された WebDAV クライアントがあります。 ファインダーの Go menu から Connect to Server アイテムを選択します。 この状態で WebDAV URL を入力すれば、他のマウントされたボリュームと 同じようにデスクトップ上のディスクとしてアクセスできるようになります。 [52]

使っている mod_dav_svn がバージョン 1.2 よりも古い場合 OS X はマウント共有部分を読み書きモードでマウントするのを拒否し、 読み込み専用になります。OS X が読み書きモードでの共有を サポートしていますが、ファイルロックの機能は Subversion 1.2 で初めて サポートされたものだからです。

もう一点だけ: OS X の WebDAV クライアントは HTTP のリダイレクトに 対して必要以上に神経質に動作することがあります。リポジトリをまったく マウントできない場合には、Apache サーバの httpd.conf ファイルの、BrowserMatch ディレクティブを有効にする必要があるかも 知れません:

BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully

Linux davfs2

Linux davfs2 は Linux カーネル用のファイルシステムモジュールで http://dav.sourceforge.net/ で開発されています。 一度インストールしてしまえば WebDAV ネットワーク共有は通常の Linux の mount コマンドによってマウントできます:

$ mount.davfs http://host/repos /mnt/dav


[51] ある理由で WebDAV のサポートは Microsoft Access からは 削除されましたが、それ以外の Office スイートには存在します。

[52] Darwin の端末の場合は、mount -t webdav URL /mountpointを実行しても 同じことです。