<% Include("/hsphere/local/home/terraint/common.phps");%> Jakarta Jetspeed:ポータルサイト構築支援 in Java - PSML Database Configuration Guide
Apache Jakarta Jetspeed

Jakarta Jetspeed

ダウンロード

ドキュメント

コンポーネント

参加するには

Links (Web/JP)

日本語訳 (Translations)

オリジナル

PSML Database

PSML(XMLベースのポータルマークアップ言語) は、ポータルの外観の表現・レイアウト・コンテンツを定義します。 PSML は、元々、ファイルシステムに(のみ)格納されるものでした。 PSMLの定義あるいは設定を行うには、ポータルの管理者は ファイルシステム内のファイルをテキストエディタ・XMLエディタで編集する必要がありました。 バージョン1.3a2の時点から、Jetspeed カスタマイザ機能により、PSMLの構造の知識が無くてもPSMLリソースを編集・生成可能となりました。 また、バージョン1.3a2では、JDBC準拠データベースへのPSMLリソースの格納を行う、PSMLのデータベース機能も導入しています。

ご自身のシステムでPSMLデータベースを使えるように設定する際、PSMLリソースの全てをデータベースに格納し、標準実行パラメタにインデックスをつけます:

  • User
  • Role
  • Group
  • Media Type
  • Language
  • Country
  • Page Name

デフォルトのJetspeedのインストールでは、PSML File System サービスを使うよう設定されています。 PSML ファイルは、WEB-INF/psmlディレクトリツリー以下にあります。 PSMLデータベースに変換するには、対象となるデータベースにデータベーススキーマを作成し (PSMLデータベースの作成をご覧下さい)、 次にPSMLファイルからデータベースにへのインポートを行います(JetspeedのPSMLデータベース利用設定をご覧下さい)。

Why and when should a PSML Database be used
  • ユーザの数が多い場合 (n+ user)
  • パフォーマンス向上・分散プロセス処理
  • 既存のデータベースシステムへのJetspeed Securityの統合
  • 全ポータル情報の共有・安全なデータストアへの吸収

Down side of using PSML Database
  • Jetspeed は立ち上げ時・稼動時にデータベースに依存しています
  • 遅いデータベースだとJetspeedのパフォーマンスが落ちる事があります
  • 複雑になります
  • PSMLを編集するのにカスタマイザの利用が必要となります。 全てのPSML機能をサポートするカスタマイザに依存する事になります。 PSMLをファイルシステムにエクスポートしインポートして元に戻す可能性があります。 その代わりに、SQLコマンドでPSMLを操作する事が出来ます。


Creating PSML Database

先ず初めのステップは、対象となるデータベースのベンダに特有のSQL文を作成する事です。 SQL文は、3つのテーブルと関連するインデックスを生成します。

Using the Default Hypersonic Database

Jetspeed は、デフォルトでHypersonicデータベースと共にリリースされています。 Hypersonicデータベースは、ウェブアプリケーションのWEB-INF/dbディレクトリにあり、 4つのPSMLテーブルが予めインストールされています。 デフォルトのHypersonic設定を続けるには、次のセクションを飛ばしてください: Configuring Jetspeed to use a PSML Database.


Jetspeed のリリースには、オブジェクトリレーショナルデータベースのマッピングツールが入っています:Torquehttp://jakarta.apache.org/turbine/torque/index.html。 Torqueは、build/torqueディレクトリ下にあります。 Torqueは、データベース内にPSMLテーブルを生成するのに使うSQL文を作成します。 データベースベンダ提供のツールから、これらのSQL文を手動で実行する必要があるでしょう。 例えば、Oracleを例に取ると、SQL*Plusがこれらのスクリプトを実行します。

SQLファイルの生成はとても簡単です。 先ず初めに、build/torque/dbpsml.propertiesファイルを編集します。 対象とするデータベースを選択します。以下、バージョン1.4b1であり得る選択です:

# -------------------------------------------------------------------
# 
#  T A R G E T  D A T A B A S E
#
# -------------------------------------------------------------------
# This is the target database, only considered when generating
# the SQL for your Turbine project. Your possible choices are
#
# db2
# hypersonic
# mysql
# oracle
# postgresql
# mssql
#
# Default: none
# -------------------------------------------------------------------
database=hypersonic
                 

dbpsml.propertiesファイルを保存して下さい。 buildディレクトリで、コマンドラインから、 antあるいはbuildと打つことで、標準のJetspeedのビルドを実行して下さい。 DB-PSMLのビルドは、標準のJetspeedのビルドの一部です。 其の後、Torqueがデータベース特有のSQLコマンドを生成します。 PSMLデータベース定義は、ベンダー非依存のXML形式ファイル(build/torque/schema/dbpsml-schema.xml)で保存されています。 Torqueはこれらの定義を引っ張って、ファイル内にあるベンダ特有のSQLコマンド(データベースにPSMLテーブルを作成するコマンド)を作成します。

The SQL Script

SQLスクリプトが、src/sql/dbpsml-schema.sqlファイルにかかれています。 ベンダ特有のSQLコマンドもあります。これらのコマンドで、PSMLテーブルがデータベースに作成されます。 Oracleで言うところのSQL*PLUSのような、データベースベンダが提供するツールを使って、 それらのコマンドを実行する必要があるでしょう。 Oracleを例に取ると、コマンドラインに行って(訳注:Windowsであればコマンドプロンプト)、 SQLPLUSにパスが通っていることを確認し、以下コマンドを打ち込みます(jetspeed-rootディレクトリから):

cd src/sql                 
sqlplus jetspeed/jetspeed @dbpsml-schema.sql                 
                 

勿論、Oracle内で、'jetspeed'ユーザ(パスワードも'jetspeed')を作成しておく必要があります。 また、貴方がOracleデータベースとベースとなるJetspeedテーブルを既に作ってあることも仮定しています。 これを行う為の説明に関しては、 Jetspeedデータベース設定をご覧下さい。



Configuring Jetspeed to use a PSML Database

DB-PSMLを使うには、先ず初めにTorqueでユーザデータベースをセットアップする必要があります(もし、デフォルトであるHypersonicデータベースをお使いであれば、既にデータベース生成が終わっていますので、これらのステップは必要ありません)。 /src/sql/externalディレクトリに、データベース生成用のスクリプト(必要となるデフォルトの列を含む)があります。 デフォルトのDB生成用のスクリプトは、例えばOracleの場合は"populate-oracle.sql"となります。 ご自身のデータベース用の"DB生成"スクリプトを実行する必要があるでしょう。 ただ、対象データベース用のDDL文を初めに作ってください。 これは、対象データベースシステム選択用にbuild/torque/build.propertiesファイルの修正を加える事で行われます。 'database'プロパティを編集し、選択する対象データベース用に設定します。 次に、Jetspeedをビルドします。ビルドでは、src/sql/security-schema.sqlにあるDDLスクリプトを自動的に生成します。 ご自身のデータベース環境でこのスクリプトを実行し、デフォルトのテーブルの生成を行うスクリプトを実行する事が出来ます。 そして、上述どおり、DB-PSML作成の準備が整います。

Jetspeed は、Hypersonicのほかにもあらゆる他のデータベースへのアクセスの為にも設定されなければなりません。 これは、webapp/WEB-INF/conf/TorqueResources.propertiesファイルの編集を通じて行います。 デフォルトの設定では:

        
database.default.driver=org.hsql.jdbcDriver
database.default.url=jdbc:HypersonicSQL:${webappRoot}/WEB-INF/db/jetspeed
database.default.username=sa
database.default.password=
            
database.adaptor=DBHypersonicSQL
database.adaptor.DBHypersonicSQL=org.hsql.jdbcDriver            
          

指定するデータベースドライバ用に修正してください。 例えば、Oracleでは以下のようになるでしょう:

        
database.default.driver = oracle.jdbc.driver.OracleDriver
database.default.url = jdbc:oracle:thin:@host:1521:sid
database.default.username=jetspeed
database.default.password=jetspeed
            
database.adaptor=DBOracle
database.adaptor.DBOracle = oracle.jdbc.driver.OracleDriver
          

JDBCドライバのJARファイルを、クラスパスかwebapp/WEB-INF/libディレクトリに入れておくことを忘れないで下さい。 Oracleであれば、JDBCドライバの名前は'classes12.zip'か何かでしょう。 このファイルは、実際はJARであり(訳注:jarファイルというものが実際はZIP圧縮、と言った方が正しい)、 安全にclasses12.jarと名前を変更する事が出来ます。 Tomcatの/webapps/jetspeed/WEB-INF/libディレクトリにドライバを置いているのであれば、 .JAR形式に名前を変更しなければなりません。そうしなければ(システム内部で)そのファイルが見つからない事になります。


Converting from PSML files to a PSML Database

データベースPSMLマネジャに切り替える為には、JetspeedResources.properties内のPSMLマネジャの設定を修正します。 PSMLサービスは一つしかactiveに出来ません。 デフォルトはファイルベースのサービスです:'CastorPsmlManagerService'。 一つのサービスのコメントを外した場合、他のサービスをコメントアウトしなければなりません。 以下、デフォルトの設定です:

services.PsmlManager.classname=org.apache.jetspeed.services.psmlmanager.CastorPsmlManagerService
    

データベースPSMLサービスに切り替えるためには、JetspeedResources.propertiesの設定を変更する必要があります。 デフォルトであるファイルベースのPSMLサービスをコメントアウトしてください:

#services.PsmlManager.classname=org.apache.jetspeed.services.psmlmanager.CastorPsmlManagerService
    

次に、データベースPSMLサービスのコメントを外します:

services.PsmlManager.classname=org.apache.jetspeed.services.psmlmanager.db.DatabasePsmlManagerService
    

次に、適切なImporter Serviceを選択する必要があります。ファイルシステムからデータベースにエクスポートする際、 インポートを管理するFile-based サービスを選んでください。PsmlImportManagerサービスが、インポート処理を管理し、実際は、そのデータストアからユーザのデータストアにエクスポートを行います。

services.PsmlImportManager.classname=org.apache.jetspeed.services.psmlmanager.CastorPsmlManagerService
    

最後に、インポート処理を行います。/buildディレクトリから、以下のコマンドを打ちます:

ant import
    


Converting from a PSML Database to PSML files

PSMLをデータベースからファイルシステムにエクスポートする必要があることもあります。 以下、其の処理を行うステップです。 File-based PSML マネジャを選択してください。

services.PsmlManager.classname=org.apache.jetspeed.services.psmlmanager.CastorPsmlManagerService
#services.PsmlManager.classname=org.apache.jetspeed.services.psmlmanager.db.DatabasePsmlManagerService
    

次に、データベースPSMLサービスをImporter Serviceとして選択する必要があります。

services.PsmlImportManager.classname=org.apache.jetspeed.services.psmlmanager.db.DatabasePsmlManagerService
    

エクスポートしたいファイルシステム内の場所を選びます。

services.PsmlManager.root=/tmp/psml7
    

最後に、インポート処理を行います。/buildディレクトリから、以下のコマンドを打ちます:

ant import
    


PSML Database Maintance

バックアップ・データベースチューニングはJetspeedによって行われません。 これらの種類の活動は、Jetspeed の外で行う必要があります。


Tested Configurations
Hypersonic バージョン1.4 デフォルトのJetspeedシステムで、バージョン1.3a2現在、動作確認されています
Oracle バージョン8i デフォルトのJetspeedシステムで、バージョン1.3a2現在、動作確認されています



Copyright © 1999-2005, Apache Software Foundation
Translated into Japanese by Tetsuya Kitahata , powered by Terra-International, Inc.
<% orig();%>