uPortal とは、北米の方で、大学ポータルとして実績が多いポータルアプリケーション構築のためのフレームワークです。大学での利用実績が多いことから、ログイン関係の機能が実用レベルで最初から取り入れられています。

Information Information
覚書環境:
  • JDK 5.0
  • Tomcat 5.5.9
  • HSQLDB 1.7
  • ant 1.6.2
  • uPortal 2.5.1 (pluto 1.0.1)

[参考] + uPortal Home Pagelinkext + uPortal Wikilinkext + Beginners Guide to uPortallinkext (PDF)

uPortal 覚書

言葉の定義

チャネル(channel)
単一のデータソースへの通信路のこと。uPortal はこのチャネルを通じて、ポータルコンテンツの提供元から出力データを受け取ります。
Portlet Definition ID
Portlet にふられる一意なIDのこと。uPortal は、Portlet コンテナとして Pluto を使っているため、Pluto の規約に沿った ID が振られる。
[portlet-context-name].[portlet-name]

uPortal のインストール方法

前提

 次の環境が入っていること(ただし、必ずしもこの製品でなければならないというわけではない)

  • JDK1.4 or JDK5.0
  • ant 1.6.2
  • Tomcat 5.0.19 以上 or Tomcat 5.5 以上
  • HSQLDB 1.7 以上

ソースコードをダウンロードする

 uPortal のサイトからソースコードをダウンロードします。

build.properties を編集する

 次に、uPortal をダウンロードしたフォルダ({uPortal}とよぶ)に移動して、build.properties を編集します。何を編集するかというと、21行目あたりにある

server.home=C:/_workspace/uPortal/server/jakarta-tomcat-5.5.9

 を、Tomcat がインストールされているディレクトリ({TOMCAT_HOME}と呼ぶ)に合わせて変更します。もし、Tomcat 5.5 系を使っている場合は、35行目あたりにある

webapp.contextFile=uPortal.xml

をコメントアウトし、48行目あたりにある

webapp.contextFile=uPortal55.xml

のコメントをはずします。

(JDK1.4 の場合のみ)JAXP をインストールする

 uPortal は JAXP 1.3 を使うので、インストールします。

  • {uPortal}/lib/jaxp フォルダにある .jar ファイルを {JDK1.4}/lib/endorsed ディレクトリにコピーします
  • {uPortal}/lib/jaxp フォルダにある .jar ファイルを {TOMCAT_HOME}/common/endorsed ディレクトリにコピーします

データベースドライバをインストールする

 {uPortal}/hsqldb.jar を、{TOMCAT_HOME}/common/lib にコピーします。

uPortal の初期化を行う

 最初に、HSQLDB を起動します。{uPortal}/lib ディレクトリに移動して次のコマンドを実行します。

java -cp ./hsqldb.jar org.hsqldb.Server -port 8887 -database uPortalDb
Tips
ポート番号とデータベース名は好きなものに変更することができます。ただし、変更した場合は、{uPortal}/properties/rdbm.properties の設定を変更した後、再デプロイを行う必要があります。。 HSQLDB 以外のデータベースを使う場合も、{uPortal}/properties/rdbm.properties ファイルを変更して、再デプロイを行います。

 データベースが起動したら、ant タスクの initportal を実行します。{uPortal} ディレクトリに移動して次のコマンドを実行します。

ant initportal

 いろいろなものがコンパイルされて、初期化されます。TOMCAT へのデプロイまで終わっているはずです。

Tomcat を起動する

 データベースが起動し、初期化が完了したら、Tomcat を起動します。{TOMCAT_HOME}/bin/startup.bat を起動します。

 エラー無く起動したら、 http://localhost:8080/uPortal にアクセスします。画面が表示されれば成功です。

uPortal   の初期画面

uPortal の機能

セキュリティ

 管理者は、個別やグループ単位でロールを定義することができます。このロールは、ユーザがどのカテゴリに対する閲覧権限を持つかや、どのチャネルが使用可能か、どの機能が使用可能でどのデータが閲覧可能かなどを定義します。

Tips
セキュリティ実装は、プラグインによって提供されます。そのため、独自で認証機能をつくり、uPortal に組み込むことができます。

リポジトリ

 ユーザプロファイルも、権限も、チャネルも、データも、すべてリポジトリで管理されます。リポジトリで管理されるオブジェクトは、次のようなプロパティを持ちます。

  1. 型(Type) : component、document、link、channel、その他
  2. トピック(Topic) : このオブジェクトがどのカテゴリに属するのか
  3. 説明(Description)
  4. フォーマット(Format)
  5. 格納場所(Location) : このオブジェクトがどこに格納されているか
  6. ロール(Roles)
  7. 発行元(Publisher)
  8. リリースノート(Release notes)
Tips
永続化の仕組みは規定されていません。ODB でもよいし、RDB でもよいし、もちろん XML でもかまいません。

ユーザプロファイル

 ユーザプロファイルは、次のようなプロパティを持つことが決められています。

  1. UserID
  2. プロファイル(Profile)
  3. プロパティ(Subscription property)

リソース

 リソースは、階層構造をもつカテゴリに分類されます。複数のカテゴリを持つことができます。ひとつのカテゴリには、親のカテゴリがあり、カテゴリは階層構造を持ちます。

 リソースは、リポジトリで管理されます。

パーソナライゼーション(個別化)

 ユーザは、ロールに応じたカスタマイズができます。必要なアプリケーションだけを選択して、画面に表示することができます。

発行 / 購読型

 Portal コンテンツは、発行 / 購読型のスタイルをとります。Porta コンテンツをブラウザから登録することで、発行可能となります。このコンテンツが利用可能なロールをもつユーザは、必要に応じて、コンテンツの購読を行います。これにより自分だけのポータルができあがるのです。

覚書

ユーザ情報は、UP_PERSON_DIR テーブルに格納される

 

Tips
ユーザパスワードは MD5 で暗号化されて格納されます。

 ユーザの新規登録は、ant のタスクを使います。

ant md5passwd -Dusername=<<ユーザ名>>

ポータルの実装

 uPortal はポータル実装に Pluto を使っています。Pluto は、Servlet コンテキストのクロスコンテキストが有効でないと機能しません。

Notice
Servlet コンテナのクロスコンテキスト(cross Context)を有効にしましょう。

uPortal に Portal アプリケーションを組み込む

 ant のタスクをつかいます。{uPortal} ディレクトリに移動して、

ant deployPortletApp -DportletApp=<<myPortlet.war>>

でデプロイ可能です。

Tips
uPortal は、同じアプリケーションサーバ上にある Web アプリケーションを監視していて、それが Portlet アプリケーションかどうかを判断しています。ポータルアプリケーションであると判断されると uPortal はアプリケーションに次のような Portlet Definition ID を付与します。
[portlet-context-name].[portlet-name]
 この Portlet Definition ID は、Portlet を購読(Subscribe)するときに必要になります。