ポートレット開発ガイド

     前  次    新しいウィンドウで目次を開く   
ここから内容

ポートレット タイプ

ポートレットの実装計画の一環として、WebLogic Portal で利用できる各種ポートレットを確認し、実行するタスクに適したポートレットを判断することをお勧めします。たとえば、Java コントロールとのインタフェースを取り、Struts ベースのインフラストラクチャを使用し、豊富なナビゲーション要素を提供する方法を探している場合、Java ページ フローまたは Struts ポートレットを実装します。単純なポートレットが必要な場合、または既存の JSP ページをポートレットに変換する場合は、JSP ポートレットの使用を検討します。複数のポータル ベンダ間でのポータビリティを重視する独立ソフトウェア会社などの企業では、可能な限り JSR 168 準拠の Java ポートレットを選択する必要があります。ポータルでポートレットの非同期表示を実装する場合、この章で説明するほとんどのポートレット タイプを使用できます。

この章では、判断プロセスにおいて役立つよう、各種ポートレット タイプを明確に区別します。この章の内容は以下のとおりです。

 


JSP (Java Server Page) および HTML ポートレット

JSP ポートレットおよび HTML ポートレットは、コンテンツとして JSP ファイルまたは HTML ファイルを参照します。これらのポートレットは簡単に実装およびデプロイでき、基本的な機能を速やかに提供できます。ただしこれらのポートレットは、ビジネス ロジックとプレゼンテーション層を強制的に分離しません。アプリケーションの規模が大きくなると、Web アプリケーションを更新してコードの共有を行うときにポートレットの管理が困難になることがあります。JSP ポートレットは、高度なポートレット ナビゲーションには適していません。

ページ フロー ポートレットの一部として JSP ページを使用する場合、リクエストが WebLogic Portal スコープ要件に準拠していることを確認する必要があります。JSP ポートレットおよびページ フロー スコープの詳細については、『ポータル開発ガイド』を参照してください。

JSP ポートレットの構築手順については、「JSP ポートレットと HTML ポートレット」を参照してください。

 


Java ポートレット (JSR 168)

JSR 168 (Java ポートレット) は、ポートレットとポータル間のポータビリティを確立するための Java 仕様です。仕様の主な目標の 1 つは、ポータル ベンダおよびポートレット ベンダが使用できる標準 Java API セットを定義することにあります。API は、プレゼンテーション、集約、セキュリティ、およびポートレットのライフサイクルといった領域を網羅します。

Java ポートレットは、Java クラスで指定します。このタイプのポートレットは、プラットフォーム間のポータビリティに対応していて、ポータル サーバ固有の JSP タグを必要としません。動作はサーブレットに似ています。WebLogic Portal を使用して生成される Java ポートレットは、JSR 168 をサポートする他のベンダのアプリケーション サーバ コンテナで幅広く使用できます。

Java ポートレットの構築手順については、「Java ポートレット」を参照してください。

 


Java ページ フロー ポートレット

Java ページ フロー ポートレットは、Apache Beehive ページ フローを使用してコンテンツを取得します。このポートレット タイプは、ユーザ インタフェース コードをナビゲーション コントロールや他のビジネス ロジックから分離して、単純または高度なポートレット ナビゲーションを実装できるようにします。

ポートレット アプリケーション開発で推奨されるページ フロー フレームワークは、Struts アプリケーション フレームワークの上に構築されます。Struts フレームワークは、堅牢でナビゲーション可能な Web アプリケーションを速やかに作成するために幅広く使用されている、一般的で信頼性の高い標準です。ページ フロー フレームワークは、重要なデータ バインド機能を Struts 標準に追加します。ポータル フレームワークは、ページ フロー ポートレットにスコープ機能を提供し、複数のページ フローを 1 つのポータルでサポートできるようにします。Java コントロールおよび Web サービスなどの他のリソースも使用できます。

Java ページ フロー ポートレットは、より高度な機能が必要な環境に適しています。単一ビューの静的なポートレットには適していません。

Java ページ フロー ポートレットの構築手順については、「Java ページ フロー ポートレット」を参照してください。

 


Struts ポートレット

Struts ポートレットは、Struts フレームワークに基づいています。Struts フレームワークは、MVC (Model-View-Controller) アーキテクチャの実装です。MVC アーキテクチャは、アプリケーション ロジックの各種コンポーネントおよびロールを分離するモデルを提供します。この開発フレームワークによって、長期にわたり管理しやすいポートレットを作成できます。

通常、ネイティブの Struts 開発を行う場合は、各アクションに関連する複数のファイル、フォーム Bean、および Struts コンフィグレーション ファイルの管理および同期が必要です。これらのファイルの編集を支援するツールを使用しても、開発者は基本となる構造、オブジェクト、およびコンフィグレーションの詳細を調整する必要があります。ページ フローの実装は、より簡単な単一ファイルのプログラミング モデルを提供します。これにより開発者は、重要なコードに集中したり、全体的なアプリケーション フローの視覚的な表現を確認したり、ページ、アクション、およびフォーム Bean 間でナビゲーションを行うことができます。

新規のポータル アプリケーションを開発する場合、ページ フロー実装を使用することをお勧めします。既存の Struts アプリケーションを集約する場合は、Struts ポートレットの使用をお勧めします。

Struts ポートレットの構築手順については、「Struts ポートレット」を参照してください。

 


JSF (Java Server Faces) ポートレット

JSF (Java Server Faces) 仕様 (JSR 127) は、サーバ上で実行されてクライアントで表示および使用される Java アプリケーションの開発と保守を簡略化する、ユーザ インタフェース フレームワークを定義します。

Java Community Process Web サイトで入手できる JSF 仕様によると、JSF には以下の特徴があります。

JSF のコア アーキテクチャは特定のプロトコルおよびマークアップから独立しています。ただし JSF は、サーブレットおよび JSP (JavaServer Pages) ベースのアプリケーションをサポートする Java アプリケーション サーバと HTTP を介して通信する、HTML クライアントのアプリケーションを構築する際の一般的な問題の多くを解決することも目的としています。これらのアプリケーションは通常フォームベースで、ユーザがタスクを実行するために対話する 1 つ以上の HTML ページから構成されます。JSF は、これらのアプリケーションで発生する問題に以下のように対処します。

JSF ポートレットの構築手順については、「JSF ポートレット」を参照してください。

 


ブラウザ (URL) ポートレット

ブラウザ ポートレットは、外部 URL からの HTML コンテンツを表示します。ポータル プロジェクト内に含まれるデータの表示だけに限定されている他のポートレットのタイプとは違って、ブラウザ ポートレットは、ポータル プロジェクトの外部にある URL コンテンツを表示することができます。

ブラウザ ポートレットの利点は、Workshop for WebLogic ワークベンチまたは WebLogic Portal Administration Console のいずれで実装する際にも開発タスクが不要であるということです。ただし、WebLogic Portal ではこのタイプのポートレット用のコンテンツを開発するメカニズムが提供されていない点に注意してください。ポートレットの定義には、表示する外部 URL のみが含まれます。たとえば、外部コンテンツの URL を動的に変更するメカニズムは存在しません。また、ポートレット プリファレンスやポートレット モードなどもサポートされません。ブラウザ ポートレットは、リモート コンテンツとのユーザの対話を通じて URL を追跡しません。ページ更新によってポートレット定義で指定した URL のコンテンツが表示されます。

WebLogic Portal は、IFRAME を使用してブラウザ ポートレットを実装します。より高度な開発手法を使用してデフォルトの実装メカニズムをオーバーライドできます。これらの手法については、将来的に dev2dev の記事で詳しく説明します。

ブラウザ ポートレットのコンテンツはポータルから完全に接続解除されます。組み込みアプリケーションは、ポートレットのナビゲーション状態を管理する必要があります。

ブラウザ ポートレットの構築手順については、「ブラウザ ポートレット」を参照してください。

 


リモート ポートレット

WebLogic Portal は、WSRP (Web Services for Remote Portlets) 標準をサポートしています。WSRP は、OASIS 標準機関により承認されています。この標準に準拠するように記述されたポートレットには、WSDL ポートレットの記述が含まれます。このポートレットをプロデューサ アプリケーション内でホストして、コンシューマ アプリケーションで表示できます。また、WebLogic Portal Administration Console はローカル ポータルで WSRP プロデューサ アプリケーションへのアクセスを提供します。

WebLogic Portal は WSRP リモート プロデューサまたはコンシューマとして機能します。コンシューマとして機能する場合、WebLogic Portal のリモート (プロキシ) ポートレットは WSRP 準拠となります。これらのポートレットは、WSRP 準拠のプロデューサから収集したコンテンツを表示します。これにより、ポートレット コンテンツとしてコンテンツや構造を独自に作成することなく、外部ソースを使用できます。

リモート ポートレットの設定は、結合されたポートレット環境を作成する際の基本的なタスクです。リモート ポートレットの作成タスクは、『連合ポータル ガイド』で詳しく説明されています。

 


ポートレット タイプの概要

表 3-1 には、各ポートレット タイプの特徴をまとめています。これによって、各タイプの長所および短所をすばやく把握できます。

表 3-1 ポートレット タイプの概要
タイプ
長所
短所
JSP/HTML
実装およびデプロイが簡単。
基本的な機能をシンプルに提供する。
ビジネス ロジックおよびプレゼンテーション層を強制的に分離しない。
高度なポートレット ナビゲーションには適していない。
Java (JSR 168)
プラットフォーム間のポータビリティに対応。
ポータル サーバ固有の JSP タグが不要。
動作はサーブレットに似ている。
他の一部のポートレット タイプで使用できる高度なポートレット機能がない。
J2EE プログラミング モデルの深い理解が要求される。
Java ページ フロー
ユーザ インタフェース コードをナビゲーション コントロールおよび他のビジネス ロジックから分離可能。
簡易および高度なポートレット ナビゲーションを実装できる。
Java コントロール、Web サービス、およびビジネス プロセスをすばやく活用できる。
Struts に基づいて高度なアプリケーションを構築する視覚的な環境を提供。
実装が複雑。
静的、または単純な単一ビュー ポートレットでは高度なページ フロー機能は不要。
JSF
ページ内イベントを独自に処理できるページのコンポーネントベースの開発が可能。
ユーザ インタフェース コードをナビゲーション コントロールおよび他のビジネス ロジックから分離する作業を簡略化。
簡易および高度なポートレット ナビゲーションを実装できる。
Java コントロール、Web サービス、およびビジネス プロセスをすばやく活用できる。
JSF アプリケーションへのポストバックはすべて POST を使用することが前提となる。GET メソッドはサポートされない。
ブラウザ
ポータル プロジェクトの外部にある URL のコンテンツをポートレットで表示可能にする。
迅速な実装を可能にする「開発不要の」ポートレットを提供。
フォーマットを詳細に制御できない。
コンテンツ パスやエラー パスなど、他のポートレット タイプの一部の機能を利用できない。
ポートレット間通信がサポートされない。
Struts
Java サーブレット、JavaBeans、ResourceBundles、XML などの標準的なテクノロジに基づいた柔軟な制御層を提供。
複雑なアプリケーションの作成および保守のためのより構造的な手法を提供。
既存のアプリケーションのインポートに便利。
Beehive に基づくページ フロー ポートレットほど堅牢ではない。新規開発の場合、ページ フロー ポートレットのほうが適切。
リモート
ポータル内でアプリケーションを機能的かつ操作的に分離可能。
ポートレット コンテンツとして外部ソースを利用可能。
環境によってはパフォーマンスが改善する。
実装が複雑。
一部のアプリケーションの機能において堅牢性が失われる場合がある。たとえば、一部の JavaScript が正しく実行しない場合がある。
環境によってはパフォーマンスが悪化する。リモート ポートレットのパフォーマンスの詳細については、「リモート ポートレット」を参照。


  ページの先頭       前  次