J2EEでポータル構築(1)
Jetspeedで学ぶポータル構築

五十嵐由
2003/11/11


 一昨年来、EIP(Enterprise Information Portal)という言葉が注目されています。多くのベンダがポータル構築のための製品をリリースしたことや、EIPが多くのビジネス誌で取り上げられたこともあり、今年はEIPの導入を本格的に検討したり、実際に導入する企業が増えました。

 また、JCP(Java Community Process)で仕様策定が進められてきた「Portlet API」(JSR168)の仕様がいよいよリリースされます(現在は、Final Approval Ballotの状態)。

 このような要因でビジネス的、また技術的にEIPを取り巻く環境が非常に盛り上がりを見せています。そこで、この連載ではJakarta Projectが提供するポータルフレームワーク「Jetspeed」を用いポータルサービスの構築方法について解説します。

注:JSR168を取り入れた製品は各社年末から順次リリースするようです。例えば、SunはSun ONE Portal Server6.2からサポートするようです。

ポータルサービスに必要な機能

 企業がポータルサービスを導入する際に期待する「業務の効率化」、その「業務の効率化」を実現するために必要なポータルサービスの要素として次のものが挙げられるでしょう。

さまざまなコンテンツへの容易なアクセス
複数サイトへのシングルサインオンや加えてそれらサイトの情報検索を行えることで必要な情報に対して簡単にアクセスできること。

ナレッジマネジメント
企業内の有効な情報を1つの入り口(ポータル)から入手することができる事、また有効な情報はおのおのが情報をアップデートすることで、企業内に情報発信できること。

複数システムの結合
複数のアプリケーションがポータルと連携することによって作業を簡略化できること。例えば、社内で決められた交通費の精算アプリケーションとインターネットで提供されている交通費料金計算サービスがポータル画面に表示されているだけで、精算業務の効率を上げることができる。

 これらのポータルサービスに必要な要素の中でも、既存システムとの連携は、連携させるだけで簡単に業務効率を上げることができ、最も効果を上げやすいといえます。開発においても、アプリケーション側に連携するための新たなプログラミングを施す必要がなく、ROI(投資対効果)を重視する企業にとって非常に有効といえます。

 このような要素を満たすためには、次の技術的機能が必要になります。

コンテンツの集約
ネットワーク上に点在するコンテンツおよびアプリケーションを一つの画面に表示する機能

パーソナライズ&セキュリティ
ポータルページを各ユーザごとにカスタマイズでき、また各コンテンツへのアクセス制限を管理する機能

アプリケーションの連携
HTTPやWebサービス、独自プロトコルを用いたアプリケーションへのコネクタ機能

シングルサインオン
ポータルに一度ログインするだけで、ほかのアプリケーションにログインすることなくアクセスできる機能

 今回紹介するJetspeedは、上記の中の(1)コンテンツの集約、(2)パーソナライズ&セキュリティの機能を提供するポータルフレームワークです。しかし、残念ながら(3)のアプリケーションの連携(バックエンドアプリケーションへのコネクタ機能)や(4)シングルサインオン機能は提供していません(よって、本連載ではこれらの機能については触れません)。後述するようにJetspeedの基盤技術がJavaのため、各アプリケーションベンダから提供されているモジュールも数多く、それらを用いることでアプリケーションの連携を行ったり、シングルサインオンを実現することが可能でしょう。

Jetspeedはポータルフレームワーク

 JetspeedはJakarta Projectが提供するポータルフレームワークです。前述したように、ポータル製品は多くのベンダからリリースされていますが、それらは高機能で非常に高価です。それに対し、Jetspeedは無償で利用できるオープンソースです。簡易な企業情報ポータルサービスを実現したい場合や学習で使用したい場合に有効に利用できるでしょう。では、Jetspeedが提供する機能について説明しましょう。

Jetspeedが提供する機能

(1)コンテンツの集約

 Jetspeedは、Java、XMLといった業界標準の要素技術を利用しているフレームワークであるため、さまざまなネットワークリソース(アプリケーション、データベースなど)への容易なアクセスを可能とします。そのためJetspeedは、複数リソースからの情報を簡単に取得可能なセントラルハブとして機能します。また、JetspeedはWebブラウザやWAP-PHONEなどのさまざまなデバイスに対してサービスを提供することが可能です。Jetspeedがサポートするコンテンツにはさまざまなものがあります。(詳細は本連載の第2回で紹介します)。例えば、XMLやRSS、それにHTML、加えてSMTPからのコンテンツをセントラルハブであるJetspeedが吸収し、XSLなどを用いてコントロールした後、ユーザーへポータル画面として提供することが可能です。さらにJetspeedは、テンプレート機能としてCocoon、Webmacro、Velocityといったコンテンツ発行用フレームワークをサポートしており、これらを用いることでより容易にコンテンツの整形を行うことも可能になっています。

Cocoon
Cocoonは、Apacheプロジェクトが提供するXMLを技術の中心としたパブリッシングシステム。CocoonはXML、XSLを使用して自動的にHTMLをはじめとするさまざまなフォーマットを生成する仕組みを提供する。

Webmacro
WebmacroはJavaをベースにしたテンプレートエンジンで、AltaVistaをはじめとするさまざまなサイトで使用されている。

Velocity
Velocityは、Jakartaプロジェクトが提供するJavaをベースにしたテンプレートエンジン。これを用いて画面を形成するにはVTL(Velocity Template Language)を使用する。ループや条件設定、オブジェクトの参照など一通りの命令記述が用意されている(VelocityとWebmacroの違いはhttp://www.ingrid.org/jajakarta/velocity/velocity-1.1/docs-ja/differences.htmlを参照)。

(2)パーソナライズ&セキュリティ

 Jetspeedはパーソナライズ機能を持ち、ユーザーごとのポータルページを提供します。それらのページは各ユーザーがログインした後に、自分の表示したいポートレットを選択することで、独自のポータルページを作成できます。ユーザーは各ポートレットの配置位置や表示サイズを指定することが可能です。また、ページにはタブが存在し複数ページを一度にブラウザ上に表示することも可能です。

 これらのページへのログイン認証メカニズムもJetspeedが提供します。ページへのログイン認証や加えて各コンテンツのアクセス制限(ユーザーごと、グループ、ロール)を管理する機能も提供します。

注:ページの形成やセキュリティについては、連載の第2回で重点的に解説します。

Jetspeedの提供形態

 Jetspeedは、Jakartaプロジェクトから提供されているWebアプリケーションフレームワーク「Turbine」上で動作するJ2EE Webアプリケーションと関連するライブラリ(Jar)なので、J2EE準拠のWebコンテナ上であればどこでも動作します。

注:本連載ではWebコンテナとしてTomcatを使用します。

 JakartaプロジェクトでWebアプリケーションフレームワークといえばStrutsが有名ですが、Turbineも同様のWebアプリケーションフレームワークになります。Strutsとの違いは、前述したCocoon、Webmacro、Velocityといったコンテンツ発行用フレームワークをサポートしていることです。

 さて、ここまでポータルサービスおよびJetspeedの概要について説明してきました。皆さんもポータルサービスを実現するための技術要件と、その際にJetspeedが有効なソフトウェアであることがお分かりいただけたでしょう。ここからはJetspeedを用いたポータルサービスの構築実践に話を進めます。

1/2

 INDEX

第1回 Jetspeedで学ぶポータル構築
Page1
ポータルサービスに必要な機能
Jetspeedはポータルフレームワーク
  Page2
Jetspeedのインストール

Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間