この章では、分散オーサリングおよびバージョニング(DAV)の概念と、mod_oradavモジュールを使用したOraDAVの構成方法について説明します。mod_oradavモジュールにより、OraDAVを使用してWebブラウザやWebDAVクライアントからファイルの内容にアクセスできます。
注意: 特に他に記載のないかぎり、このドキュメントに収められている情報は、Oracle HTTP ServerがOracle WebLogic ServerおよびOracle Fusion Middleware Controlにインストールされている場合に適用できます。このドキュメントの対象読者は、『Oracle Fusion Middlewareコンセプト・ガイド』および『Oracle Fusion Middleware管理者ガイド』の説明に従ってOracle Fusion Middlewareの主要概念を十分に理解しておく必要があります。 スタンドアロン・モードでのOracle HTTP Serverのインストールについては、『Oracle Fusion Middleware Oracle Web Tierインストレーション・ガイド』のOracle WebLogic Serverを使用せずに行うOracle Web Tierのインストールに関する項を参照してください。 |
この章の内容は、次のとおりです。
mod_oradavモジュールは、WebDAV仕様のApache実装の拡張版です。mod_oradavモジュールは、C言語で記述されたOCIアプリケーションであり、Oracle HTTP Serverに統合されています。WebDAVクライアントは、mod_oradavモジュールによりファイルに接続し、内容の読取りと書込み、およびドキュメントの問合せとロックを実行できます。
この項の内容は、次のとおりです。
WebDAVは、分散オーサリングおよびバージョニングをサポートするHTTPのプロトコル拡張機能です。WebDAVを使用すると、インターネットは透過的な読取りおよび書込み手段となり、その内容をチェックアウトおよび編集し、URLアドレスにチェックインできます。
WebDAVにより、Webサイト作成者間でのコラボレーションが可能になります。また、WebDAVは、任意の(Webサイトに限定されない)コンテンツ階層への汎用読取り/書込みアクセス・プロトコルとしても機能します。WebDAVを使用すると、コンテンツをインターネット・サービス・プロバイダ(ISP)から提供されたURLに保存できます。コンテンツには各種デバイスからアクセスでき、必要に応じて変更可能です。
OraDAVとは、Oracle Fusion Middlewareユーザーがmod_oradavモジュールを介して使用できる機能セットを指します。OraDAVには次の固有の用語があります。
OraDAV: Oracle HTTP Serverサーバーのコード。ファイルベースのDAVアクセスをサポートします。Apache DAVのディレクティブは、OraDAVで使用できます。
関連項目: DAVのディレクティブの詳細は、次のURLにあるGreg Stein( |
OraDAV API: OraDAVドライバで使用されるストアド・プロシージャ・コール。インターネット経由で次のWebDAV機能に対するサポートを提供します。
ドキュメントの読取りと書込み
ドキュメントのロックおよびロック解除
情報の階層管理(作成、移入、削除など)
ドキュメントに関連するプロパティの取得
プロパティと特定のドキュメントとの関連付け
OraDAVドライバ: OraDAVドライバAPIのストアド・プロシージャ実装。Oracleで実行してリポジトリを管理します。
OraDAVの主なユーザーは、Oracle HTTP ServerのWeb管理者とコンテンツ編集者です。エンド・ユーザーは、WebブラウザまたはWebDAVクライアント・ツールを通じて、OraDAVと間接的に対話するのみです。OraDAVを操作するには、次のことに習熟している必要があります。
Web管理者は、Oracle HTTP Serverの起動および停止方法と、Oracle HTTP Serverを構成してURLトラフィックをOraDAVドライバに転送する方法を理解している必要があります。
コンテンツ編集者は、サーバーに接続してファイルをアップロードおよび取得する方法を理解している必要があります。
OraDAVを含むmod_oradavモジュールは、Oracle HTTP Serverアーキテクチャの一部です。図9-1は、単純なアーキテクチャを示しています。
図9-1は、WebフォルダなどのWebDAVクライアントが、Oracle HTTP ServerにHTTPリクエストを渡すところを示しています。リクエストがファイル・システムに格納されているコンテンツに対するものである場合、mod_oradavモジュールでアクセスが処理されます。リクエストがOracle Portalに格納されているコンテンツに対するものである場合、OraDAV APIでアクセスが処理されます。
OraDAV APIの機能は、ファイル・システムにmod_oradavモジュールを実行する場合と同じです。OraDAV APIでは、次のHTTPメソッドがサポートされます。
COPY: Webサイト・フォルダ内のファイルをコピーします。
DELETE: Webサイト・フォルダ内のファイルを削除します。
MOVE: Webサイト・フォルダ内のファイルを移動します。
MKCOL: 新規ディレクトリを作成します。
GET: サーバーからファイルを取得します。このメソッドは、Oracle Web Cacheではサポートされません。
PUT: サーバーにファイルを戻します。このメソッドは、Oracle Web Cacheではサポートされません。
HEAD: ファイルを取得せずにファイルのヘッダー・コンテンツを取得します。
LOCK: ファイルのチェックアウト時にそのファイルをロックします。このメソッドは、Oracle Web Cacheではサポートされません。
UNLOCK: チェックイン後にファイルのロックを解除します。このメソッドは、Oracle Web Cacheではサポートされません。
PROPFIND: ファイルに定義されているプロパティを取得します。
PROPPATCH: ファイルのプロパティを設定します。
OraDAV APIでは、共有ロックと排他ロック、基本的なDAVプロパティの取得、サーバー定義のプロパティまたはクライアント定義のプロパティの定義と取得がサポートされます。COPY、MOVE、DELETEなど、集合ベースの演算全体を、OraDAVドライバの単一コールで実行できます。
OraDAVの使用には、次のアクティビティを任意に組み合せることができます。
ブラウズ: WebDAVを使用してファイル・サーバーの内容にアクセスする読取り専用アクティビティ。その使用方法モデルは、典型的な読取り専用Webサイトと同じです。
DAVOraReadOnlyディレクティブにより、WebDAVクライアントがWebDAVを読取り専用モードで使用する必要があるかどうかを指定します。値Offは、WebDAVクライアントを通常どおり動作させることを指定します。値Onは、WebDAVの使用時にWebDAVクライアントが書込み操作を実行することを抑止します。WebブラウザおよびWebDAVクライアントによる読取り専用アクティビティは許可されます。デフォルトはOffです。
再構築: コンテンツの削除、移動およびコピー。通常、再構築が行われることはほとんどなく、実行するのはWebDAVのコンテンツへの書込みアクセス権を持つ限定されたユーザーです。
再構築に伴う制限と複雑さは、ファイル・ディレクトリを再構築する場合と同じです。このディレクトリ階層を所有し、管理するユーザーが1人の場合もあります。ディレクトリが共有されている場合、再構築を実行するクライアントには、WebDAVの排他ロックによって階層への単独アクセス権が付与されます。
編集: 階層内の単一のリソースまたは小規模なサブセットの変更。適切に設計されたWebDAVクライアントは、リソースの共有ロックまたは排他ロックを使用して、これらのアクティビティを調整します。
プロパティ管理: プロパティと属性(作成者など)をドキュメントに関連付け、簡単な参照や分類ができるようにする操作。WebDAVクライアントは、PROPPATCHディレクティブを使用してドキュメントにプロパティを割り当て、PROPFINDディレクティブを使用してプロパティを取得します。
PROPFINDメソッドを使用すると、DAVが使用可能なディレクトリ内のすべてのファイルをリストできます。セキュリティ上の理由で、ファイル・リストを一般の読取りアクセスから保護することをお薦めします。
PROPFINDをユーザー・グループ、一連のドメインまたは一連のホストに制限し、内容を変更するメソッドをごく少数の作成者のみに制限する方法もあります。たとえば、会社の従業員にサーバー上のファイルの参照を許可し、ファイル変更は少数のユーザーにのみ許可するということが可能です。匿名(非認証)のユーザーは、参照も変更もできません。
最後に、Webサーバーを汎用の読取り専用ファイル・リポジトリにする場合は、単にPROPFINDを制限から外します。これにより、すべてのユーザーがディレクトリを任意に参照し、ファイルをフェッチできます。
mod_oradavモジュールを構成するには、Fusion Middleware Controlの「サーバーの詳細構成」ページを使用します。
この項の内容は、次のとおりです。
Oracle Fusion Middlewareのインストール時に、ディレクティブと呼ばれるOraDAVの必須パラメータはすべてデフォルト値に設定されます。デフォルト値が要件を満たしていない場合は、必須パラメータの値を変更し、オプションのパラメータの値を指定できます。mod_oradav.conf
ファイルに含まれるOraDAVパラメータは、DAVおよびDAVParamで始まります。
注意: パラメータを構成するには、Fusion Middleware Controlを使用します。 |
DAV
パラメータは、URLの位置でDAVが使用可能であることを示します。DAV
キーワードの後に、次のいずれかの値を指定します。
On
- この値は、mod_oradavがコンテンツにローカル・ファイル・システムを使用することを示します。
Oracle
- この値は、mod_oradavがすべてのコンテンツにOraDAVを使用することを示します。
DAVParamパラメータは、名前/値ペアの指定に使用します。必須のペアは、Oracle HTTP ServerからOracle Databaseに接続できるようにするペアです。これには、名前のOraService、OraUserおよびOraPasswordまたはOraAltPasswordが含まれます。
各OraDAVドライバでは、DAVParamメカニズムを使用して、ドライバ固有の設定を作成できます。すべてのDAVParamの名前/値ペアは、OraDAVドライバに渡されます。OraDAVパラメータのみでなく、DavMinTimeout
などの追加のDAVパラメータを指定するかどうかも考慮する必要があります。
例9-1に、ローカル・システム上のファイルへのアクセスを構成する構文を示します。次の例では、Webサーバーのドキュメント・ディレクトリのサブディレクトリdav_portalと階層内のdav_portalのすべてのサブディレクトリを、DAVが使用可能なディレクトリとして指定します。dav_portalディレクトリまたはそのサブディレクトリには、シンボリック・リンクを定義しないでください。
ルートの場所にあるコンテナのマッピング時に考慮する必要のある推奨事項は、次のとおりです。
ルート自体をマップしないでください。たとえば、mod_oradav.conf
ファイルに<Location / >
を指定しないでください。
あるコンテナを階層内で別のコンテナのサブ要素としてマップしないでください。たとえば、<Location /project1>
と<Location /project1/project2>
というコンテナは指定しないでください。<Location /project1>
と<Location /project2>
は指定できます。
Fusion Middleware Controlの「サーバーの詳細構成」ページで、mod_oradav.conf
ファイルの<Location>
コンテナ・ディレクティブ内にパラメータを入力できます。<Location>
コンテナ・ディレクティブは、DAV対応のURLを指定します。DAV
キーワードの後に、パラメータOn
を指定します。これにより、mod_davに対してコンテンツにローカル・ファイル・システムを使用するように指示します。
次の例では、Webサーバーのドキュメント・ディレクトリ(デフォルトではhtdocs
)のサブディレクトリmyfiles
と階層内のmyfiles
のすべてのサブディレクトリを、DAVが使用可能なディレクトリとして指定します。myfiles
ディレクトリまたはそのサブディレクトリには、シンボリック・リンクを定義しないでください。
<Location /myfiles> DAV On </Location>
mod_oradev.conf
ファイルを次の場所に作成します。
<oracle_instance>/config/OHS/ohs1/moduleconf/mod_oradav.conf
次に記述するエントリをmod_oradevファイルに挿入します。
LoadModule oradav_module "${ORACLE_HOME}/ohs/modules/mod_oradav.so"
#<Location /dav/lsn> #DAV oracle #DAVDepthInfinity Off #DavParam ORACONTAINERNAME LSNDAV #DavParam ORALockExpirationPad 0 #DavParam ORAException RAISE #DavParam ORATraceLevel 0 #DavParam OraTraceEvents "request" #DavParam ORASERVICE psgprod #DavParam ORACONNECTSN db-host #DAVParam ORAUser lsn #DAVParam ORAPassword psg_lsn #DAVParam ORAPackageName ordsys.dav_api_driver #DAVParam OraWebCacheReadOnly On #</Location>
ファイルを保存し、4.1.4項「Oracle HTTP Serverの再起動」の説明に従ってOracle HTTP Serverを再起動します。mod_oradev.conf
ファイルを編集する際のオプションは、Fusion Middleware Controlの「サーバーの詳細構成」ページに表示されます。
WebDAVでは読取りおよび書込み機能が有効になるため、インターネット・ユーザーはWebサイトやOracleリポジトリへの書込みを実行できます。この場合、ユーザーがWebサーバー・システム上で実行できる不適切なファイル(トロイの木馬など)を置けないようにすることが重要です。WebDAV構成および認証が適切に設定されていない場合、ファイル・システムから不適切なファイルが実行される可能性があります。しかし、Oracle HTTP Serverを新しくインストールすると、mod_oradavはデフォルトで無効になり、システムは最初から保護されます。
Oracle HTTP Serverでサポートされている、標準のBasicまたはDigest認証および認可メカニズムを適用してください。通常、これは、提供されるmod_oradav.conf
ファイル内のデフォルトの場所(dav_publicなど)に適用します。これにより、システムをリモート記憶域として使用できるユーザーが限定され、権限のないユーザーによりディスクがいっぱいにされることがなくなります。
また、Webサイトの作成者には、常にOracle HTTP Serverの認証および認可を適用する必要があります。また、Web作成者が適切に認証および認可された後にJSPファイルまたは他の実行可能ファイルを編集し、実行方法を調べられるように、実行コンテキストと編集コンテキストも提供する必要があります。そのためには、実行コンテキストに関連付けられたディレクトリの別名を作成し、別名を作成した場所でDAVを使用できるようにします。
この項では、各種操作のパフォーマンスの最適化に役立つ情報について説明します。この項の内容は、次のとおりです。
ディスク・キャッシュによるパフォーマンスの改善度は、中型から大型のファイル(約50KB以上)の場合に最大となります。ファイルが小さい場合、パフォーマンスの改善度は小さくなり、非常に小さいファイルの場合は、ディスク・キャッシュを使用する方がディスク・キャッシュを使用しない場合よりもパフォーマンスが低下することがあります。たとえば、ファイル・サイズがわずか24バイトのmyfile.datファイルがリクエストされた場合、そのファイルをサーバーからローカル・システムにコピーする所要時間は、サーバーにアクセスしてファイルの変更の有無をチェックする場合に比べてはるかに短くなります。ディスク・キャッシュを使用しない場合、ファイルの変更の有無がサーバーでチェックされることはなく、常にファイルがコピーされます。
次のOraDAVのパラメータを設定して、OraDAV操作用にディスク・キャッシュを制御できます。
ORACacheDirectory
を指定すると、OraDAV操作用のディスク・キャッシュが有効になります。また、ORACacheTotalSize
値も指定する必要があります。ORACacheMaxResourceSize
およびORACachePrunePercent
パラメータの値も指定できます。ORACacheDirectory
を指定しないと、OraDAV操作用のディスク・キャッシュは有効にならず、他のディスク・キャッシュ関連のパラメータは関係しません。
Oracle Web Cacheは、Webサーバー・システム上のデータに対するクライアントの読取り専用操作など、ほとんどのWebアクティビティのパフォーマンスを高めます。Oracle Web Cacheは、読取りおよび書込み機能用に設計されているOraDAV操作(GET、PUT、LOCKおよびUNLOCK)をキャッシュしません。WebDAVクライアントをOracle HTTP Serverに直接接続すればパフォーマンスを改善できます。
WebDAVクライアントに対してOracle Web Cacheをバイパスするには、httpd.conf
ファイル内で設定されているOracle HTTPリスニング・ポートにリクエストを直接送信できます。この場合、WebDAVクライアントは直接Oracle HTTP Serverに接続するため、Oracle Web Cacheを使用した場合よりもパフォーマンスがよくなります。
関連項目: 『Oracle Fusion Middleware Oracle Web Cache管理者ガイド』 |
DAVOraNLSLangClient
ディレクティブは、ローカル・ファイル・システムへのアクセスに対するグローバリゼーション・サポートを提供します。このディレクティブでは、ファイル・システム内のファイル名を、NLS_LANG設定を使用して変換する必要があるかどうかを指定します。値Off
は、変換が不要であることを指定します。値On
は、ファイル・システム用のキャラクタ・セットにより、クライアント・リクエストで使用される可能性のあるすべての文字の変換に対応することを指定します。デフォルトはOff
です。
ローカル・ファイル・システムにアクセスする場合は、ファイル・システム用のキャラクタ・セットを、クライアント・リクエストに埋め込まれたURL用のキャラクタ・セットと同じにするか、あるいは互換性のあるキャラクタ・セットにする必要があります。ファイル・システム用のキャラクタ・セットは、クライアント・リクエストに使用される可能性のあるすべての文字に変換できる必要があります。NLS_LANGパラメータ値は、クライアントとOraDAVサーバーのキャラクタ・セットを表す必要があります。また、パラメータDAVOraUseNLSLang
に値On
を指定する必要があります。
たとえば、図9-2に示すように、ファイルにShiftJIS文字が使用され、dav_publicにあるファイル・システムがオペレーティング・システムではJAPANESE_JAPAN.JA16SJISキャラクタ・セットで表されているシステム上で、Webフォルダを使用している場合を考えます。
次の手順を実行する必要があります。
NLS_LANG値をJAPANESE_JAPAN.JA16SJISに設定します。
mod_oradav.confファイルに次の行を含めます。
<Location /dav_public> DAV On DAVOraNLSLangClient On </Location>
注意: Microsoft Internet ExplorerをOraDAVおよびマルチバイト・キャラクタ・セットと併用する場合は、「インターネット オプション」の「詳細設定」タブでインターネット・オプション「常にUTF-8としてURLを送信する(再起動が必要)」を無効にする必要があります。デフォルトでは、このオプションは選択されています。このオプションの選択を解除するという要件は、データベースへのアクセスとファイル・システムへのアクセスの両方に適用されます。 |
ORACLE_HOME/ohs/cas/templates/default/moduleconf/mod_oradav.conf
ファイルがファイル記憶域を使用するように構成されている場合、ファイルはデフォルトで次の場所に置かれます。
ORACLE_INSTANCE/config/OHS/component_name
/moduleconf
Oracle Fusion Middleware Backup and Recovery Serviceでは、このデフォルトの場所がバックアップされます。ファイルの格納場所を変更した場合、Oracle Fusion Middleware Backup and Recovery Serviceでファイルをバックアップするには、新しい場所を登録する必要があります。