1 / 82

分散オーサリング/バージョニング プロトコル

分散オーサリング/バージョニング プロトコル. WebDAV. TUNEBiZ.Net 早川 仁 hayakawa@tunebiz.net cz8cb01@linux.or.jp. はじめに. UNIX は米国およびその他の国における米国 X/Open, Inc. の登録商標です。 Linux は Linus Torvalds 氏の米国およびその他の国における登録商標あるいは商標です。 X Window System は X Consortium, Inc. の商標です。 その他、記載されている会社名、製品名は各社の登録商標または商標です。

casper
Download Presentation

分散オーサリング/バージョニング プロトコル

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 分散オーサリング/バージョニング プロトコル WebDAV TUNEBiZ.Net早川 仁hayakawa@tunebiz.netcz8cb01@linux.or.jp

  2. はじめに • UNIX は米国およびその他の国における米国X/Open, Inc.の登録商標です。 • Linux はLinus Torvalds 氏の米国およびその他の国における登録商標あるいは商標です。 • X Window System は X Consortium, Inc.の商標です。 • その他、記載されている会社名、製品名は各社の登録商標または商標です。 • 本資料の著作権は早川 仁に帰属します。

  3. WebDAVとは? • Web-based Distributed Authoring and Versioning • 略してWebDAV • 時にはDAVとも呼ばれる • RFC2518(HTTP Extensions for Distributed Authoring -- WEBDAV)

  4. WebDAVの目標 • 分散オーサリングを実現するためにHTTPを拡張 • Webを書き込み可能なメディアにする • HTMLやイメージファイルだけではなく、あらゆる種類のファイルを対象 • コラボレーションツールとしての利用も考慮

  5. Acrobat5におけるコラボレーションの例 • DAVサーバ上のPDFファイルを開いて注釈を追加

  6. WebDAVの例 HTTPの例 WebDAVサーバ(Webサーバ) Webサーバ WebDAVプロトコル HTTPプロトコル WebDAVクライアント Webブラウザ WebDAV概要(1/4)-プロトコル • WebDAVはプロトコル • サーバとクライアント間の通信の取り決め • 特定のアプリケーションの名前ではない

  7. WebDAV HTTP WebDAV概要(2/4)-HTTPの拡張 • WebDAVはHTTP/1.1の拡張 • HTTP/1.1にメソッドを追加 • HTTPの特徴をそのまま引き継ぐ • 認証と暗号化 • プロキシ/ファイアウォール • 世界中からアクセス可能

  8. WebDAV概要(3/4)-追加されたメソッド • HTTP/1.1(RFC2616) • OPTIONS/GET/HEAD/POST • TRACE/CONNECT • DELETE/PUT • WebDAV(RFC2518) • COPY/MOVE/MKCOL • PROPFIND/PROPPATCH • LOCK/UNLOCK

  9. XMLデータ XMLデータ XMLデータ WebDAVサーバ WebDAV概要(4/4)-XML • 通信データフォーマットにXMLを使用 • パーサの利用により、OS・言語に依存しない • 未知の要素は単純に無視される クライアント サーバ Libxmlexpat XML::Parser XMLパーサ Perl C言語

  10. HTTPの通信 • HTTP通信例 GET / HTTP/1.1 Accept: */* Accept-Language: ja Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; NetCaptor 6.5.0B4) Host: 192.168.10.5 Connection:Keep-Alive 送信 HTTP/1.1 200 OK Date: Wed, 16 May 2001 10:53:37 GMT Server: Apache/1.3.14 (Unix) (Red-Hat/Linux) mod_ssl/2.7.1 OpenSSL/0.9.5a DAV/1.0.2 PHP/4.0.1pl2 mod_perl/1.24 Last-Modified: Wed, 18 Oct 2000 22:31:33 GMT Accept-Ranges: bytes Content-Length: 2890 Content-Type: text/html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD> <TITLE>Test Page for the Apache Web Server on Red Hat Linux</TITLE> </HEAD> <!-- Background white, links blue (unvisited), navy (visited), red (active) --> 受信 HTML

  11. WebDAVの通信 • WebDAV通信例 PROPFIND /DAV/Readme.txt HTTP/1.1 Accept-Language: ja,en-us;q=0.2 Content-Type: text/xml Content-Length: 380 Depth: 1 User-Agent: Microsoft Data Access Internet Publishing Provider DAV 1.1 Host: 192.168.10.5 送信 HTTP/1.1 207 Multi-Status Date: Wed, 16 May 2001 10:25:31 GMT Server: Apache/1.3.14 (Unix) (Red-Hat/Linux) mod_ssl/2.7.1 OpenSSL/0.9.5a DAV/1.0.2 PHP/4.0.1pl2 mod_perl/1.24 MS-Author-Via: DAV Keep-Alive: timeout=15, max=99 Content-Type: text/xml; charset="utf-8” <?xml version="1.0" encoding="utf-8"?> <D:multistatus xmlns:D="DAV:"> <D:response xmlns:lp0="DAV:" xmlns:lp1="http://apache.org/dav/props/"> <D:href>/DAV/Readme.txt</D:href> <D:propstat><D:prop> <lp0:creationdate>2001-05-02T06:35:45Z</lp0:creationdate> <lp0:getcontentlength>3199</lp0:getcontentlength> <lp0:getlastmodified>Wed, 02 May 2001 06:35:45 GMT</lp0:getlastmodified> 受信 XML

  12. WebDAVが提供する機能 • リソースとコレクションの管理 • プロパティ管理 • 上書きの保護

  13. リソース管理(1/6)-リソースとは • Resorce = 資源 • コレクション内にあるファイルなど  リソース 

  14. リソース管理(2/6)-取得と登録 • リソースの登録、コピー、移動、削除が可能 取得(GET) 登録(PUT) Server Server GET Client Client PUT

  15. リソース管理(3/6)-移動と削除 • リソースの移動と削除 移動(MOVE)(コピー(COPY)も同様) 削除(DELETE) Server Server Client MOVE Client DELETE

  16. DAV foo bar コレクション リソース リソース管理(4/6)-コレクションとは • ファイルシステムにおけるディレクトリ http://foo.example.com/DAV/foo/bar/baz.pdf

  17. リソース管理(5/6)-コレクションの作成 • コレクションの作成と削除 作成(MKCOL) 削除(DELETE) Server Server foo foo foo foo bar bar baz baz Client Client MKCOL DELETE 階層構造の場合、親コレクションから順番に作成する必要がある 削除するコレクションの子コレクションとリソースも同時に削除される

  18. Server DAV DAV リソース管理(6/6)-階層管理 • WebDAVはコレクション単位で処理可能 • コレクション内の全ファイルの移動やプロパティ取得など Client

  19. リソース管理-HTTPのリソース管理 • HTTPは個別のリソースのみを対象 Server Client

  20. 更新日時 2001年6月1日 18:00:00 Date サイズ Subject Test mail Mon, 14 May 2001 03:04:05 +0900 223,309 プロパティ管理(1/5)-プロパティとは • プロパティ = 属性 • 名前と値の組の総称 名前 値 c:\home\WebDAV\rfc2518.txt 場所 テキストファイル 名前 値 foo@foo.example.com From E-mail

  21. プロパティ管理(2/5)-各種のプロパティ • テキストファイルの場合 • サイズ、日付、形式(Text/TeX/HTML) • E-mailの場合 • To, From, Subject, Message-ID • 共同作業用ファイルの場合 • 作成者名、最終編集者、最終更新日時 • 検索エンジンへのキーワード

  22. プロパティ管理(3/5)-プロパティの種類 • Live Property • サーバが管理している • 基本的にクライアントからは変更できない • 最終アクセス日時、ファイルサイズ • Dead Property • クライアントが管理している • サーバは値を登録するだけで内容は関知しない • ファイルへのコメント • ロックを保持している人の連絡先など

  23. プロパティ管理(4/5)-プロパティの取得 • プロパティの取得 プロパティの取得 プロパティの設定 Server Server XML形式プロパティ一覧 XML形式のコメントなど PROPFIND PROPPATCH Client Client

  24. プロパティ管理(5/5)-Dead Propertyの扱い • サーバ • 値の内容は考慮しない • 単に値を登録/返すだけ • PROPPATCH時には登録する • PROPFIND時には値を返す • クライアント • 書式や値のチェックなど全ての責任を負う • PROPFIND時には対応する値のみ扱う • 非対応のプロパティは単に無視

  25. 上書きの保護(1/8)-コリジョンとは • 作業のコリジョン Aさん Bさん Aさん Bさん 1) あるリソースを 同時に編集 2) 先に書き込んだ「Aさん」の内容を 後に書き込んだ「Bさん」の内容で上書き

  26. 上書きの保護(2/8)-ロックによるコリジョンへの対策上書きの保護(2/8)-ロックによるコリジョンへの対策 • ロックを行い、LockTokenを取得 LOCK LockToken LOCKメソッドにより LockToken を取得

  27. 上書きの保護(3/8)-書き込み • ロックされたリソースへの書き込み 上書き不可能 LockToken ロックされているリソースに書き込む時には、LockTokenが必要

  28. 上書きの保護(4/8)-読み込み • ロックと読み込み 読み込み時には、ロックの有無は考慮されない。GET/COPY/PROPFINDの処理はロックの有無に左右されない

  29. 上書きの保護(5/8)-ロックの種類 • Exclusive LockとShared Lock LOCK LOCK LockToken(ロックの有無に関係なくロックごとに常に一意の値) Exclusive Lock一時点でロックは1つ Shared Lock複数のロックを設定可能

  30. 上書きの保護(6/8)-ロックの成否 • ロックの成否マトリックス SharedLock Exclusive Lock ロックの状態 なし ○ ○ × Shared Lock ○ Exclusive Lock × × ○:ロックに成功×:ロックに失敗

  31. PROPFIND LOCK LockInfo ロック所有者連絡先タイムアウト時間など ロック情報 LockToken ロックの有無やロック所有者の連絡先などの情報を取得できる ロック時にLockInfoプロパティを指定 上書きの保護(7/8)-Shared Lockの用途 • Shared Lock の用途

  32. 上書きの保護(8/8)-アンロック • ロックの解放(アンロック) UNLOCK UNLOCK LockToken LockTokenが必要 ロックの解放時には、ロック時のLockTokenが必要Exclusive Lock/Shared Lock 共に、処理は同じ

  33. Access Control(Access Control Protocol Sub-group) WebDAV規格 HTTP/1.1 (RFC2616) PUT/DELETEのみ WebDAV (RFC2518) (INTERNET-DRAFT) Versioning(Delta-V Working Group) Searching(DASL Working Group)

  34. WebDAVのCompliance Classes • COPY/MOVE • DELETE • MKCOL • PROPFIND/PROPPATCH • LOCK/UNLOCK Class1 Class2 Class2がClass1を包含しているのはたまたま仮にClass3ができた場合、Class1や2を含むとは限らない

  35. WebDAVクライアント Firewall Firewall WebDAVサーバ WebDAVの利点(1/4)-特定Portのみ使用 • HTTP/1.1を拡張 • Port80(SSLの場合443)のみ使用 • Port80しか開けなくても良い(サーバ側) • FirewallでHTTP(Port80)しかアクセスできないようになっていても使用できる(クライアント側) DSTPort80 DSTPort80

  36. WebDAVの利点(2/4)-セキュア • HTTPでの通信と同じ考えでセキュリティを強化できる • Port forwarding • SSL/TLS • IPSec • PPTP/L2F/L2TP

  37. アプリケーション層 トランスポート層 インターネット層 ネットワークインターフェース層(物理層) TCP/IPプロトコルスタック • TCP/IPプロトコルスタック telnet/http/一般アプリケーション TCP/UDP/SSL/TLS IP/ICMP Ethernet/TokenRing/ATMなど ある層をセキュアにすると、それより上の層はセキュア →専用線、L2TP、SSL/TLS、port forwarding

  38. WebDAVの利点(3/4)-OS/言語非依存 • サーバやクライアントのOS・言語に依存しない • サーバ: Linux(Apache), Windows(IIS5), Java(Jigsaw) • クライアント:Windows(WebFolder), Linux(DAVExplorer), Mac(Goliath), Java(SkunkDAV) • ライブラリ:Perl(HTTP::DAV),Java(Slide), C(neon/Linux),C++(DAVLib/Linux&Mac) 一覧は WebDAV Implementations を参照 (http://www.ics.uci.edu/pub/ietf/webdav/)

  39. WebDAVの利点-XML • XML形式でのデータ交換 • OSや言語、アプリケーションに依存しない • 拡張性の高さ • 未知の要素は無視される コメント 無視

  40. Server Server Client Client WebDAVの利点(4/4)-効率的 • コピーや移動はサーバ内で完結 • 無駄なファイル転送が発生しない SMB/CIFS(SAMBA) WebDAV

  41. WebDAVの利点-まとめ • Webアクセスと同等の簡単さ(HTTP) • 拡張性(XML) • ファイル転送の効率(COPY/MOVE)

  42. Linux Macintosh Windows WebDAVの適用例(1/4)-現在 • ファイルサーバ • クライアントOSを問わない WebDAVサーバ(IIS5/Apache/Jigsaw)

  43. WebDAVの適用例(2/4)-現在 • 簡単で安全なファイル転送 • FTPやSSHの代替 • インターネット越しのFTP,SAMBAは不安 • SFTP/SCPは敷居が高い • WebDAVをサポートするISPも出てきた • Spoke Technologies, Inc.(http://www.spoke.net/)

  44. www.spoke.netへのDAVアクセス-参照 • 勝手にDAVアクセスしてみた

  45. www.spoke.netへのDAVアクセスー更新 • (当然ながら)更新には認証が必要

  46. インターネット 同期 WebDAVでアクセス Global ステージングサーバ 本番サーバ LAN DMZ Firewall クライアント WebDAVの適用例(3/4)-現在 • Webサイトのステージングサーバとのファイル送受信 • リソースの格納場所 = Webの場所URI: http://www.example.com/foo/bar/hoge.html • FTPなどの場合、ディレクトリ構造とURIとのマッピングを考慮する必要がある

  47. WebDAVの適用例(4/4)-現在 • コラボレーションツール • 分散オーサリング

  48. WebDAVを利用できるアプリケーション • サーバ • mod_dav(Apache) • IIS5 • Jigsaw • クライアント • IE5/Windows2000/Office2000/WindowsXP • Acrobat5 • SkunkDAV 一覧はWebDAV Implementations を参照 (http://www.ics.uci.edu/pub/ietf/webdav/)

  49. 設定/使用例 • Windows2000(クライアント) • mod_dav • Acrobat5 • Nautilus • SkunkDAV

  50. Windows2000からの利用(1/3) • マイネットワークを開く

More Related