[Guide to Jetspeed-2 Component Architecture] Jetspeed-2を構成するコンポーネントのガイド

The Jetspeed-2 architecture is build on a component architecture where as defined by Martin Fowler:

    By the term component, I mean a glob of software that's intended to be used, 
    without change, by application that is out of the control of the writers of 
    the component. By 'without change' I mean that the using application doesn't 
    change the source code of the components, although they may alter the component's 
    behavior by extending it in ways allowed by the component writers.

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

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

Jetspeed-2 uses dependency injection as a programming design pattern and architectural model to establish a level of abstraction via a public interface, and to remove dependency on the components' implementation. The architecture unites the components rather than the components linking themselves or being linked together. Dependency injection is a pattern in which responsibility for object creation and object linking is removed from the objects themselves and transferred to a factory. Dependency injection therefore is obviously inverting the control for object creation and linking, and can be seen to be a form of Inversion of Controls(IoC).

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

[Jetspeed-2 and Component Frameworks] Jetspeed 2 とコンポーネントフレームワーク

Jetspeed-2 leverages the Spring Framework as its default component framework. However, Jetspeed-2 provides an architecture in which the component framework can easily be replaced by alternative component frameworks such as Pico.

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

Jetspeed-2 component framework assembly is configured and implemented in JetspeedServlet:



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



The JetspeedServlet is configured in the portal application web.xml to load at startup. The initializeComponentManager method loads the assembly for the given component framework. The default implementation of initializeComponentManager supports the spring framework as a component framework and assembles the xml files located under WEB-INF/assembly to initialize the spring engine. The JetspeedEngine is then constructed with the proper component manager.

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

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

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

In order to support another component framework, developers should override the initializeComponentManager implementation.

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

[Jetspeed-2 Core Components] Jetspeed 2 の中核をなすコンポーネント

Jetspeed-2 Capabilities - Artifact Id: jetspeed-capability
Component NameDescription
CapabilitiesThe Capabilities components maps clients to supported mime types and media types. It creates a CapabilityMap that is used through the portal engine to render the portal content for the targetted client.


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


Jetspeed-2 Component Manager - Artifact Id: jetspeed-cm
Component NameDescription
ComponentManagerThe ComponentManager provides a generic layer of abstraction on top of the component framework being used. The default ComponentManager implementation in Jetspeed-2 is the SpringComponentManager. More information can be found in the ComponentManager documentation.


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


Jetspeed-2 Deploy Tools - Artifact Id: jetspeed-deploy-tools
Component NameDescription
JetspeedDeployJetspeedDeploy prepares portlet applications prior to being deployed in Jetspeed-2. More information can be found in the JetspeedDeploy documentation.
DeploymentManagerThe DeploymentManager listens for new portal assets (portlets, decorators) to be deployed. An overview of how deployment works in Jetspeed-2 can be found here.


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


Jetspeed-2 Portal - Artifact Id: jetspeed-portal
Component NameDescription
PipelineThe Pipeline orchestrates the Valve that are performing atomic operation on a Jetspeed-2 request.


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


Jetspeed-2 Preferences - Artifact Id: jetspeed-prefs
Component NameDescription
PreferencesProviderThe PreferencesProvider exposes Jetspeed-2 implementation of the java.util.Preferences API.


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


Jetspeed-2 RDBMS - Artifact Id: jetspeed-rdbms
Component NameDescription
ConnectionRepositoryEntryThe ConnectionRepositoryEntry exposes Jetspeed-2 implementation of the java.util.Preferences API.
InitablePersistenceBrokerDaoSupportInitablePersistenceBrokerDaoSupport provides data access and persistence support for Jetspeed-2.


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


Jetspeed-2 Security - Artifact Id: jetspeed-security
Component NameDescription
DefaultLoginModule

RdbmsPolicy

Jetspeed-2 default implementation for JAAS services. Jetspeed-2 leverages JAAS as a generic security standard framework to expose security functionality to the portal engine. The JAAS services leverage Jetspeed-2 coarsed grained services for which specific implementations are provided through Jetpseed-2 security SPI.
UserManager

RoleManager

GroupManager

PermissionManager
Coarsed grained security components exposing Jetspeed-2 security management APIs.
UserSecurityHandler

CredentialHandler

GroupSecurityHandler

RoleSecurityHandler

SecurityMappingHandler
Fined grained Jetspeed-2 security SPI components exposing a specific implementation to the Jetspeed-2 security engine. This mechanism provides a flexible framework for supporting multiple security implementation without having to impact the higher level security services.


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 Search - Artifact Id: jetspeed-search
Component NameDescription
SearchEngineSearchEngine provides the integration with the Apache Lucene search engine.
HandlerFactoryThe HandlerFactory exposes the documents handlers to the SearchEngine.


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


Jetspeed-2 Statistics - Artifact Id: jetspeed-statistics
Component NameDescription
PortalStatisticsPortalStatistics exposes the Jetspeed-2 data collection API for data collection and data retrieval.
BatchedStatisticsBatchedStatistics is responsible for the batch collection of statistics data given a time to flush period.
AggregateStatistics

StatisticsQueryCriteria
AggregateStatistics interacts with the PortalStatistics component to provide aggregate portal data for a specific event and search criteria provided by StatisticsQueryCriteria.
Jetspeed-2 統計 - アーチファクト ID: jetspeed-statistics
コンポーネント名説明
PortalStatisticsPortalStatistics はデータのコレクションとデータの検索のための Jetspeed 2 のデータコレクション API です。
BatchedStatisticsBatchedStatistics は与えられた期間の統計データのバッチコレクションに対する処理を行います。
AggregateStatistics

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