はじめに

はじめに

Jetspeed2 は、Apache Software Foundation から提供されているオープンソースのポータルサーバーですが、このポータルサーバーとは何でしょうか?また、なぜ、そのようなものが必要なのでしょうか?まず、ポータルサーバーが何かということを考えると、いろいろな散在する情報を一カ所にまとめ、その情報を提供・管理できるサーバーと言えるのではないでしょうか。そして、その情報を必要とする人がそこに集まってくることになると思います。今日では、各社からポータルサーバーといわれるものがいろいろと提供されています。また、その機能をサービスとして、提供しているところもあります。たとえば、Yahoo などが企業ポータルとしての機能 を提供しています。

次に、なぜそのようなものが必要なのかを考えてみましょう。たとえば、あなたの仕事で情報が散在していると感じたことはないでしょうか?ある情報はあるファイルシステム上のファイルに保存されていたり、またある別の情報は、どこかのWeb上にあったりと・・・。こうなると、必要な情報は、管理している人だけしかわからず、情報を得るためにはいちいち、担当者に確認しないと得ることはできません。これでは、面倒ではです。ですので、ある一カ所に情報をまとめることで、わからない情報があったときには、そこにいけば手に入るというのが理想的です。そうしておけば、たとえば、新人が来たときでも、とりあえず、そこのURLを教えてあげれば、いろいろと情報を得ることができ、情報の共有といった点からも効率的に行うことができるでしょう。つまり、その情報がまとまってある場所への入り口(ポータル)と言えるのではないでしょうか。

Jetspeed とは

Jetspeed は、Java ベースの企業情報ポータル (EIP: Enterprise Information Portal) の実装です。企業情報ポータルとは、企業内の様々なシステム上に保存されている情報を一元管理することで、ユーザーの画面 (たとえば、ブラウザ上) にまとめて表示したり、そこから情報検索を実行することができるシステムです。EIP を導入することによって、企業システムを横断的に統合され、今まで散在していた情報にすばやくアクセスすることができるので、社員個々の業務の効率化や、意志決定権を持つ経営層から部門や現場レベルでの情報共有が可能になります。Jetspeed は、企業情報ポータルを機能をオープンソースで提供し、各情報の表示・処理はポートレットで実行されます。

ポートレットは、ポータルサーバー上で様々なサービスやアプリケーションを処理する構成要素です。いろいろな企業からポータルサーバーがリリースされていますが、各社でその仕様は統一されていませんでした。その状況を改善するために定義されたのが JSR 168 になります。この標準に準拠していれば、ポータルサーバーに依存することなく、提供されたポートレットを配備・実行することができます。

Jetspeed は、現在、バージョン 1.6 と 2.0 M3 (2005/05/29 時点) の2種類がリリースされています。バージョン 1.x 系は、ポータルサーバーとして利用するための機能は一通り実装され、その実装自体は Turbine ベースで作成されています。そのため、機能を拡張しようとした場合には、Turbine のイベント処理モデルの制約も受けることになります。配備できるポートレットについては、基本的には、独自のポートレットを使用することになります。ここで、「基本的に」といったのは、最近では、JSR 168 のポートレットを利用するために、Fusion という機能が追加されたためです。Fusion は、Jetspeed 2 の JSR 168 のポートレットを実行するための機能を取り出して、Jetspeed 1 で利用できるようにしたものです。Fusion 機能を利用したい場合は、ビルドするときにプロパティで Fusion を利用するかどうか指定する必要があるため、その機能が付加されているバイナリを利用する必要があります。Fusion により、Jetspeed 1 でも、JSR 168 のポートレットが利用できるようになりましたが、現在では、Jetspeed の開発者は、Jetspeed 2 の開発に焦点を合わせています。そのため、今後、積極的に Jetspeed 1 にたいして、機能拡張される可能性は低いと言えるでしょう。

バージョン 2.0 系は、標準に準拠したポートレットを配備することができるポータルサーバーであり、Turbine などに依存することなく、1から実装し直されています。各機能については、コンポーネント化されているため、機能を拡張したり、独自のコンポーネントを作成して導入したい場合などが容易にできます。コンポーネントの管理は、Spring を利用しています。ですので、より細かいコンポーネントの管理をしたい場合は、Spring の知識が必要になってくるでしょう。このように機能をコンポーネント化されたことにより、Fusion のようなものも実現できるようになったと言えます。

JSR 168 準拠のポートレットの処理するために、Jetspeed 2 では、Pluto を利用しています。Pluto は、JSR 168 の Java ポートレットの仕様に関するリファレンス実装です。Pluto は、今日では、様々なオープンソースのポータルサーバーで利用されています。

Jetspeed 2 で格納されているデータは、ほとんどがデータベースを用いて管理されています。標準では、HSQL を利用しています(Jetspeed の開発者は MySQL を用いて開発を行っていると思います。HSQL で開発するのは一手間あるので、私も MySQL を用いています)。データベースへのアクセス自体は、もちろん SQL を直接記述することはなく、OJB を用いています(補足1)。ですので、データベースへのデータの流れを知りたい場合は、OJB に関する知識が必要になるでしょう。

補足1

なぜ、Hibernate などを使わずに OJB を使うのでしょうか?それは、OJB は Apache ライセンスで提供されているためです。Apache では、LGPL などを利用できないそうです。私は法律家ではないので、これくらいにしておきます・・・

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です