Jetspeed-2を構成するコンポーネントのガイド

Jetspeed 2 のアーキテクチャは Martin Fowler によって以下のように定義されたコンポーネントアーキテクチャに基づいて構築されています。

	コンポーネントという言葉は、変更なしに、コンポーネントの作者の管理から外れた
	アプリケーションとして使われることを意図したソフトウェア群を意味しています。
	「変更なしに」という言葉は、ユーザがコンポーネントの作者によって許された方法でコンポーネントを拡張し、
	その動作を変化させることはあるかもしれないけれども、アプリケーションを使う場合に、
	コンポーネントのソースコードを変えることなくアプリケーションを使うことを意味します。
			

Jetspeed 2 はプログラミングのデザインパターンと構造上のモデルとして、依存性注入を使います。これは、公開されているインターフェースを通して抽象化のレベルを構築するためであり、そしてコンポーネントの実装における依存性をなくすためです。この構造はコンポーネントがそれ自身とリンクしたり、お互いにリンクする構造でなく、コンポーネントと結合します。依存性注入はオブジェクトの作成やオブジェクトのリンクの機能をオブジェクト自身から削除し、ファクトリへ移したパターンです。それゆえ、依存性注入は明らかにオブジェクトの作成とリンクの制御を反転させており、Inversion of Controls(制御の反転,IOC) の形であると考えることができます。

Jetspeed 2 とコンポーネントフレームワーク

Jetspeed 2 はデフォルトのコンポーネントフレームワークとして Spring フレームワーク を利用しています。しかし、Jetspeed 2 はコンポーネントフレームワークを例えば Pico のような代替可能なコンポーネントフレームワークに容易に置き換えることが可能な構造をしています。

Jetspeed 2 のコンポーネントフレームワークの組み立ては JetspeedServlet 内に実装されています。



JetspeedServlet は起動時のロードのためにポータルアプリケーションの web.xml で設定されます。initializeComponentManager メソッドは与えられたコンポーネントフレームワークの Assembly をロードします。initializeComponentManager のデフォルトの実装はコンポーネントフレームワークとして spring フレームワーク をサポートします。そして spring エンジンを初期化するために WEB-INF/assembly 以下の xml ファイルを解釈します。JetspeedEngine は適切なコンポーネントマネージャを使って構成されます。

  engine = new JetspeedEngine(properties, applicationRoot, config,
      initializeComponentManager(config, applicationRoot, properties));
		

他のコンポーネントフレームワークをサポートするためには、開発者は initializeComponentManager の実装をオーバーライドしなくてはいけません。

Jetspeed 2 の中核をなすコンポーネント

Jetspeed 2 機能 - アーチファクト ID: jetspeed-capability
コンポーネント名説明
CapabilitiesCapabilities コンポーネントはクライアントを、サポートされる MIME タイプやメディアタイプにマップします。このコンポーネントは CapabilityMap を生成します。CapabilityMap はポータルエンジンを通して、対象となるクライアント用にポータルコンテンツを表示するために利用されます。


Jetspeed 2 コンポーネットマネージャ - アーチファクト ID: jetspeed-cm
コンポーネント名説明
ComponentManagerComponentManager は、使用するコンポーネントフレームワークのトップに位置する抽象的な標準レイヤーを提供します。Jetspeed 2 のデフォルトの ComponentManager の実装は SpringComponentManager です。より詳しい情報は ComponentManager の文書 を参照してください。


Jetspeed 2 配備ツール - アーチファクト ID: jetspeed-deploy-tools
コンポーネント名説明
JetspeedDeployJetspeedDeploy は Jetspeed 2 に配備される前にポートレットアプリケーションの準備をします。より詳しい情報は JetspeedDeploy の文書 を参照してください。
DeploymentManagerDeploymentManager は配備される新しいポータル資産 (ポートレットやデコレータ) を待機します。Jetspeed 2 において、どのように配備が行われるかの概要はここ にあります。


Jetspeed 2 ポータル - アーチファクト ID: jetspeed-portal
コンポーネント名説明
PipelinePipeline は Jetspeed 2 のリクエストで最小単位の動作である Valve を統合します。


Jetspeed 2 プリファレンス - アーチファクト ID: jetspeed-prefs
コンポーネント名説明
PreferencesProviderPreferencesProviderは Jetspeed 2 の java.util.Preferences API の実装です。


Jetspeed-2 RDBMS - アーチファクト ID: jetspeed-rdbms
コンポーネント名説明
ConnectionRepositoryEntryConnectionRepositoryEntry は Jetspeed 2 の java.util.Preferences API の実装です。
InitablePersistenceBrokerDaoSupportInitablePersistenceBrokerDaoSupport は Jetspeed 2 においてデータアクセスと永続性のサポートを提供します。


Jetspeed-2 セキュリティ - アーチファクト ID: jetspeed-security
コンポーネント名説明
DefaultLoginModule

RdbmsPolicy

Jetspeed 2 における JAAS サービス のデフォルトの実装。Jetspeed 2 はポータルエンジンにセキュリティの機能を公開するための標準のセキュリティフレームワークとして JAAS を利用します。JAAS サービスは Jetspeed 2 のセキュリティ SPI を通して特定の実装が提供されるために Jetspeed 2 の粗い単位のサービスを利用します。
UserManager

RoleManager

GroupManager

PermissionManager
Jetspeed 2 のセキュリティ管理 API を公開する粗い単位のセキュリティコンポーネント
UserSecurityHandler

CredentialHandler

GroupSecurityHandler

RoleSecurityHandler

SecurityMappingHandler
特定の実装を Jetspeed 2 のセキュリティエンジンに公開する細かい単位のセキュリティ SPI コンポーネント。この仕組みは高レベルのセキュリティサービスに影響することなく、複数のセキュリティ実装をサポートするために柔軟なフレームワークを提供します。


Jetspeed-2 検索 - アーチファクト ID: jetspeed-search
コンポーネント名説明
SearchEngineSearchEngineApache Lucene サーチエンジンとの統合を行います。
HandlerFactoryHandlerFactorySearchEngine に対してドキュメントハンドラを公開します。


Jetspeed-2 統計 - アーチファクト ID: jetspeed-statistics
コンポーネント名説明
PortalStatisticsPortalStatistics はデータのコレクションとデータの検索のための Jetspeed 2 のデータコレクション API です。
BatchedStatisticsBatchedStatistics は与えられた期間の統計データのバッチコレクションに対する処理を行います。
AggregateStatistics

StatisticsQueryCriteria
AggregateStatistics は、StatisticsQueryCriteria が提供する特定のイベントと検索基準に対する集約ポータルデータを提供するために、PortalStatistics コンポーネントとやりとりを行います。