この章では、ポートレットの機能、特性、テクノロジおよびツールについて説明し、ニーズに最も適したポートレット構築テクノロジを決定できるようにします。この章の内容は、次のとおりです。
表15-1「ポートレット構築テクノロジの比較マトリックス」では、Oracle WebCenter Frameworkで使用できるテクノロジとツールについて要約しています。このマトリックスでは、OmniPortlet、Webクリッピング・ポートレット、および規格に基づいた(JSR 168)ポートレットやPDK-Javaポートレットを含むプログラム的なポートレットなど、このマニュアルで詳細に取り上げるツールやテクノロジについて説明しています。さらに、Oracle Portlet Factoryも含まれています。
注意: これらはポートレットを構築するための主なツールですが、その他のツールやテクノロジもあります。たとえば、Oracle Reports、OracleBI Discoverer、JSFポートレット・ブリッジなどです。これらのツールについては、このガイドでは説明しません。 |
この章の他の項では、表15-1に示した特性の詳細を説明します。この表で機能と特性すべてに簡単に目を通した後、後続の項で詳細情報を参照してください。
表15-1 ポートレット構築テクノロジの比較マトリックス
Webクリッピング | OmniPortlet | Oracle Portlet Factory | 規格に基づいたまたはPDK-Javaのプログラム的ポートレット |
---|---|---|---|
ブラウザからアクセス可能な単純なウィザード・ベースのツール。他のWebサイトのWebコンテンツをWebCenterアプリケーション内に取得して表示する際に役立ちます。 |
ブラウザからアクセス可能なウィザード・ベースのツール。広範なデータソースからデータを取得して表示する際に役立ちます。 |
SAPなどのエンタープライズ・アプリケーションと対話するカスタム・ポートレットおよびコンポジット・ポートレットを開発、デプロイおよびメンテナンスするためのポートレット作成環境。 |
PDK-Javaでは、WebCenterアプリケーションおよびOracleAs Portalで使用するポートレット作成用に、Oracle固有のアプリケーション・プログラミング・インタフェース(API)を提供しています。 規格に基づいたポートレットは、他のベンダーのポータルでも動作します。Oracle WebCenter Frameworkでは、WSRP標準とJSR-168標準の両方をサポートします。 |
専門知識は不要。 |
サポートされる1つ以上のデータソース、およびポートレットとページ・パラメータの概念に関する基本的な理解。 |
J2EEポートレットのライフ・サイクル、およびJava言語を知る必要のない基本コーディングの知識に関する基本的な理解。このツールの対象読者はビジネス開発者です。 |
Java、サーブレット、JSPの知識。 |
(詳細は、15.3項「必要な専門知識」を参照) |
|||
ネットワーク上でHTTPまたはHTTPSを介してアクセス可能なすべてのWebサイト。 |
CSV、XML、Webサービス、SAP、SQL、Webサイト、JCA。 |
Webサービス、SQL、PeopleSoft、JDEおよびSAP。 |
制限なし。 |
PDK-Javaプロデューサ |
PDK-Javaプロデューサ |
WSRPおよびPDK-Javaプロデューサ |
PDK-JavaではPDK-Javaプロデューサを使用します。 規格に基づいたポートレットではWSRPプロデューサを使用します。 |
有効期限ベースのキャッシュ、有効化ベースのキャッシュ(パーソナライズ時に自動的に無効化)。 |
有効期限ベースのキャッシュ、有効化ベースのキャッシュ(パーソナライズ時に自動的に無効化)。 |
キャッシュ・コントロール・ビルダーにより、モデル内のアクションに関連した指定期間の出力のキャッシュが可能になります。 |
有効期限ベースのキャッシュ、有効化ベースのキャッシュ、無効化ベースのキャッシュ、Edge Side Includes。 注意: JSR 168では有効化ベースのキャッシュをサポートしません。WSRP 1.0ではサポートします。純粋なWSRPポートレットを使用する場合は、有効化ベースのキャッシュもサポートされます。WSPRで(Oracle WebCenter Frameworkで行われるのと同様に)JSRポートレットをホスティングする場合、有効化ベースのキャッシュはサポートされません。 |
ブラウザ - ウィザード。 |
ブラウザ - ウィザード。 |
Portlet Factoryツール(ビルダーおよびモデル) |
Oracle JDeveloper - Javaポートレット・ウィザード(または他のJava開発環境)。 |
実行時のデザインタイム。 |
開発後に追加します。 |
||
適用外。 |
柔軟性が高い。HTMLレイアウトを使用します。 |
柔軟。ポートレット・コードは、ビルダー・ウィザードでの選択に基づいて生成されます。開発者は、生成されたコードを表示できますが、それと対話する必要はありません。 |
柔軟性が高い。 |
あり。これが本来の機能です。 |
あり。Webページ・データソースを使用します。 |
なし。 これは、既存のエンタープライズ・アプリケーション(SAPなど)からデータ、コンテンツおよびプロセスを集約し、それらをカスタム・ポートレットとしてデプロイするためのツールです。 |
あり。 PDK-Javaの場合、 規格に基づいたポートレットの場合、 |
あり |
なし。ただし、インライン・レンダリングは、パブリック・ポートレット・パラメータを使用して実現できます。 |
複数ページのポートレットの場合は、あり。 |
あり。 PDK-Javaの場合、プライベート・ポートレット・パラメータを使用します。 規格に基づいたポートレットには、 |
なし |
あり。2Dチャートと3Dチャート。 |
チャートおよびグラフ作成用Greenpoint WebChartsビルダーのすぐに使用可能なデモ・バージョン。 |
あり。BI Beanを使用します。 |
あり |
あり |
|
あり 注意: 規格に基づいたポートレットでは、WSRP 2.0のナビゲーション・パラメータ機能をOracle WebCenter FrameworkのJSR 168への拡張機能とともに使用することで、パブリック・パラメータがサポートされます。 |
なし |
なし |
なし。ただし、変数と呼ばれる要素が、Portlet Factoryポートレットのファミリ内ではパラメータとほとんど同じように機能します。 |
あり |
なし。ただし、ユーザー・インタフェース(UI)を介して公開されないセキュリティ・マネージャの適用が可能です。 |
なし。ただし、UIを介して公開されないセキュリティ・マネージャの適用が可能です。 |
なし |
あり。 PDK-Javaの場合、セキュリティ・マネージャを使用します。 規格に基づいたポートレットの場合、サーブレット・セキュリティ・モデルは、 |
適用外。 |
あり |
あり |
あり |
適用外。 |
なし |
あり |
プログラム的には、あり。 |
外部アプリケーション統合がサポートされます。 |
Basic認証は、データソースに認証が必要な場合にサポートされます。 |
外部アプリケーション統合がサポートされます。 |
PDK-Javaポートレットの場合、外部アプリケーション統合がサポートされます。LDAP統合は、ポートレットがLDAPサーバーと同じファイアウォールの内側で実行される場合にサポートされます。 規格に基づいたポートレットの場合、特にサポートされていませんが、カスタム・ユーザー属性を使用すれば、外部アプリケーション・サポートが実現可能です。LDAP統合がサポートされます。 |
この項では、各ポートレット構築テクノロジをその用途の特性(ウィザード・ベースまたはプログラムなど)の観点から説明します。
Webクリッピングは、単純なウィザード・ベースのツールで、他のWebサイトのWebコンテンツをWebCenberアプリケーション内に取得して表示する際に役立ちます。Webクリッピングには、専門知識は必要ありません。
Webクリッピングを使用して構築できるポートレットの例
Webクリッピングを使用して構築できるポートレットの例は、次のとおりです。
株式チャート・ポートレット
Webメール・ポートレット
既存のWebサイトの動的コンテンツを含むニュース・ポートレット
OmniPortletは、広範なデータソースの情報を様々な形式で表示するための簡便なウィザード・ベースのツールです。OmniPortletは、ブラウザで完全に稼働します。OmniPortletをページ上にドロップし、「定義」リンクをクリックして、データソースと表示形式を選択します。次のような広範なデータソースから選択します。
スプレッドシート
SQL
XML
Webサービス
Webページ
OmniPortletには、追加の開発ツールの使用や高度な専門知識は必要ありません。それでも、OmniPortletは、再利用可能で高性能のポートレットの構築に使用できます。
OmniPortletを使用して構築できるポートレットの例
OmniPortletを使用して構築できるポートレットの例は、次のとおりです。
RSSニュース・フィード・ポートレット
販売チャート・ポートレット
SAP BAPIベース・ポートレット
Oracle Portlet Factoryは、ビジネス開発者が、既存のエンタープライズ・アプリケーション(SAPアプリケーションなど)のデータ、コンテンツおよびプロセスを集約するポートレットを構築する際に役立ちます。
開発者は、ビルダーと呼ばれる、適応性が高く、再利用可能な一連のソフトウェア・コンポーネントをまとめることにより、ポートレットを迅速に構築します。これらのビルダーは、データベースの問合せ、アプリケーション内でのビジネス・プロセスの実行、あるいは出力UIのレンダリングなど、特定のアプリケーション機能を実行します。開発者は、スプレッドシート・モデルが式を組み合せることによって作成されるのと同様に、ビルダーを組み合せてモデルを作成します。モデルは、実行時に実行され、ポートレット・アプリケーションを構成する低レベルのアーチファクトすべてはもちろんのこと、JSP、JavaクラスおよびXML文書などのアプリケーション・コードを動的に生成します。ビジネス開発者は、生成されたアプリケーション・コードを表示できますが、それを処理する必要はありません。
Oracle PDK-JavaとJSR 168の両方のポートレット・タイプがサポートされています。
Oracle Portlet Factoryを使用して構築できるポートレットの例
Oracle Portlet Factoryを使用して構築できるポートレットの例は、次のとおりです。
SAPフォーム・ポートレット
SAP複数ページ・ポートレット
SAPトランザクション・ポートレット
ウィザード・ベースのポートレット構築ツールではニーズが満たされない場合は、Javaを使用してプログラムでポートレットを構築できます。2003年に、JavaポートレットAPIがJava Community Processによって標準化されました。Java Specification Request(JSR)168標準に準拠して構築されたポートレットは、異なるポータル・プラットフォーム間で相互運用できます。Java Portletウィザードは、WebCenter Suiteを介して使用できるツールで、Javaポートレットの構築に役立ちます。
注意: Javaでポートレットを構築する場合は、ポートレットの機能を完全に制御できます。たとえば、外観や動作方法を制御できます。 |
Javaを使用して構築できるポートレットの例
Javaを使用して構築できるポートレットの例は、次のとおりです。
ディスカッション・フォーラム・ポートレット
電子メール・ポートレット
ポートレット構築ツールでは、ポートレットの開発技能を必要としない場合も、高度な専門知識があることを前提としている場合もあります。この項では、ポートレット構築ツールを、それぞれのツールを効果的に使用するために必要な知識レベルの観点から説明します。
Webクリッピングには、専門知識は必要ありません。ただし、クリップしたWebページのコンテンツをパラメータ化する場合は、パブリック・ポートレット・パラメータおよびページ・パラメータを理解している必要があります。
OmniPortletでは、ポートレット内で利用するデータソースに関する基本的な知識が必要です。表15-2では、OmniPortletで使用できるデータソースのタイプと、各タイプを処理するために必要な情報の種類について説明しています。
データソース | 必要な情報 |
---|---|
スプレッドシート |
ポートレットに表示するデータが含まれたスプレッドシートを指すURL。 |
SQL |
データソースへの接続情報およびデータベースからデータを取得するSQL問合せ。 |
XML |
XMLソースの位置、必要に応じてXSLフィルタおよびXMLスキーマのアドレス。 |
Webサービス |
Web Services Description Language(WSDL)URL、Webサービスのメソッド、および必要に応じてXSLフィルタのURLとXMLスキーマのURL。 |
Webページ |
Webページ・データソースは、Webクリッピングと同じ環境で使用されます。したがって、専門知識は不要です。 |
J2EE Connector Architecture |
OmniPortletウィザードの「タイプ」ページには表示されませんが、J2EE Connector Architecture(JCA)1.0アダプタも使用できます。JCAでは、ERPシステム(Oracle Financials、SAP、PeopleSoftなど)に保持されている企業データを格納および取得するためのメカニズムが提供されます。 |
アプリケーションでポートレットを使用できるようにするには、まずポートレットをデプロイし、ポートレットをデプロイしたプロデューサを登録します。図15-1に示すように、ポートレットは、次の2つのプロデューサ・タイプを介してデプロイできます。
PDK-Javaプロデューサ
WSRPプロデューサ
WSRP内では、バージョン1.0および2.0がサポートされます。
PDK-Javaポートレットは、J2EEアプリケーション・サーバーにデプロイされます。このサーバーは多くの場合リモートで、HTTPを介したSimple Object Access Protocol(SOAP)を使用してコンシューマと通信します。JSR 168ポートレットは、WSRPプロデューサにデプロイされます。WSRPプロデューサもリモートで、WSRP(Web Services for Remote Portlets)を介してコンシューマと通信します。
PDK-Javaプロデューサは、デプロイ、定義およびアプリケーションとの通信に関し、XML、SOAP、HTTPまたはJ2EEなどのオープン標準を使用します。図15-2は、OracleAS PortalがPDK-Javaプロデューサからポートレットを組み込み、PDK-JavaプロデューサがHTTPを介してSOAPを使用し、WebCenterアプリケーションと通信する様子を示しています。
ポートレットを開発し、PDK-Javaを介して公開することには、次のような利点があります。
ポートレットをリモートでデプロイします。
既存のWebアプリケーション・コードを利用してポートレットを作成します。
宣言によってプロデューサを指定できます。
標準のJavaテクノロジ(サーブレットやJSPなど)を使用してポートレットを開発できます。
開発したポートレットをPDK-Javaプロデューサを使用して公開するには、まずポートレットを管理し、SOAPを使用してOracle WebCenter Frameworkと通信するプロデューサを作成する必要があります。PDK-Javaプロデューサを使用してポートレットを公開する方法の詳細は、18.5項「Oracle JDeveloperを使用したJPS準拠のポートレットの構築」を参照してください。
Oracle WebCenter Suiteでは、Web Services for Remote Portlets(WSRP)リリース1.0および2.0をサポートします。WSRP 2.0サポートは、WSRP 2.0の予備(試作)バージョンに対応するものです。この新しい標準では、ポートレット間の通信、およびポートレット・カスタマイズのエクスポートまたはインポートをサポートします。
WSRP 2.0を使用するには、Oracle固有の拡張機能を使用する必要があります。たとえば、WSRP 2.0プロデューサで作成したポートレットは、この新しいリリースで提供される利点を利用するために、Oracleのコンテナ(OC4J)にデプロイする必要があります。これは、標準のポートレットAPI(JSR 286など)がまだWSRP 2.0通信プロトコルのレベルに発展していないためです。
プロデューサ登録ウィザードは、WSRP 1.0および2.0の両方のプロデューサを登録するための入口です。ウィザードでは、WSRP 1.0または2.0のいずれが動作しているのかを自動的に認識します。
構造上、WSRPプロデューサは、PDK-Javaプロデューサに非常によく似ています。WSRPは、WebCenterアプリケーション・サーバーとポートレット・コンテナ間の通信プロトコルです。ユーザーを対象とした視覚的なWebサービスを、中間Webアプリケーションにプラグ・アンド・プレイできるようにするWebサービスの標準です。
その標準性により、特定の言語(JSR 168、.NET、Perlなど)をベースとする標準対応のコンテナと任意のWSRPポータル間の相互運用が可能です。このため、WSRP対応のコンテナにデプロイされたポートレットは、その言語に関係なく、この標準をサポートするあらゆるアプリケーション上にレンダリングできます。
標準のポートレット(JSR 168、.NET、Perlなど)をWebCenterアプリケーションで使用できるようにするには、それらを1つのポートレット・アプリケーションにパッケージ化し、WSRPコンテナにデプロイする必要があります。WSRPの詳細は、次のURLにあるOracle Technology NetworkのWSRPおよびJSR 168標準のページを参照してください。
http://www.oracle.com/technology/products/ias/portal/standards.html
ポートレットをWSRPコンテナにパッケージ化する方法については、18.9項「アプリケーション・サーバーへのポートレットのデプロイ」を参照してください。次のURLにあるOracleAS Portal Verification Serviceを使用して、WSRPプロデューサをオンラインでテストすることもできます。
http://portalstandards.oracle.com/portal/page/portal/OracleHostedWSRPPortal/Welcome
図15-3は、ポートレット・プロデューサの基本的なアーキテクチャを示しています。
ユーザーがWebブラウザでページを表示するとき、リクエストの流れは次のようになります。
ユーザーは、Webブラウザのアドレス・フィールドにURLを入力することで、Webブラウザからページをリクエストします。
ブラウザは、HTTPを介してリクエストをアプリケーションに送信します。
アプリケーションは、リクエストされたページで表示されているポートレットを提供するポートレット・プロデューサと通信します。
プロデューサは、ポートレットがHTMLコードまたはXMLコード形式のポートレット・コンテンツを生成するように、それぞれのポートレットに対して必要なコールを実行します。
プロデューサは、ポートレットのコンテンツを適切なプロトコルを使用してアプリケーションに戻します。
JSR 168ポートレットは、WSRP 1.0または2.0プロトコルを使用して通信するWSRPプロデューサによって初期化されます。
PDK-Javaポートレットは、HTTPを介しSOAPを使用して通信するPDK-Javaプロデューサによって初期化されます。
注意: ポートレットおよびプロデューサのアーキテクチャの詳細は、Portal Center(http://www.oracle.com/technology/products/ias/portal/index.html )にある「Portlet Development」のページを参照してください。 |
Webクリッピング、OmniPortlet、Oracle Portlet FactoryポートレットおよびJavaポートレットは、WSRPまたはPDK-Javaプロデューサのいずれかを介して、Oracle WebCenter Frameworkと通信します。これらのプロデューサをOracle WebCenter Frameworkに登録しなければ、プロデューサが作成するポートレットをWebCenterアプリケーションで使用できません。
WebクリッピングおよびOmniPortletの最新バージョンは、事前に構成されたOracle Containers for J2EE(OC4J)を介して入手できます。詳細は、3.2項「Preconfigured OC4Jの使用」を参照してください。
ポートレット・キャッシュは、ユーザー・リクエストに対して迅速にレスポンスするための鍵です。ポートレットは、Java Object Cacheを使用して、有効化ベースおよび有効期限ベースのキャッシュを実装します。無効化ベースのキャッシュは、Webクリッピング・ポートレットおよびOmniPortletを実行するPDK-Javaプロデューサに対応するWeb Cacheによって引き続き実装されます。
キャッシュ・ルールは、ポートレットのコンテナ・レベルで指定でき、ポートレット独自のロジックでエンコードするか、JSR 168ポートレットの場合は、ポートレット・ウィザードを介して設定することができます。ルールが指定されているとすると、キャッシュがポートレット・コードに含まれていない場合は、コンテナ・レベルのキャッシュが引き継ぎます。
アプリケーション・レベルでは、Oracle WebCenter Frameworkにより、アプリケーション・レベルのキャッシュ・ルールの設定に対するJavaキャッシュの使用がサポートされます。
キャッシュを使用せずに、WebクリッピングおよびOmniPortletで様々なデータソースにアクセスすると、時間がかかる場合があります。アプリケーション・レベルでキャッシュを有効にする場合、Javaキャッシュにポートレット・コンテンツのコピーを保持するように指示します。以前にキャッシュされたデータがリクエストされると、データソースとの通信やそのコンテンツの再生に時間がかかりません。かわりに、以前にキャッシュされたポートレット・コンテンツが戻されます。
ポートレットが使用すべきキャッシュのタイプの判断では、ポートレットのコンテンツが重視されます。次に例を示します。
有効期限ベースのキャッシュ: ポートレット・コンテンツが静的である場合、またはコンテンツの表示が最新であることが重要でない場合は、有効期限ベースのキャッシュの使用を検討します。有効期限ベースのキャッシュを使用する場合は、キャッシュ期間を指定する必要があります。
有効化ベースのキャッシュ: 頻繁な変更または予測不可能な変更がある動的コンテンツを含むポートレットの場合は、有効化ベースのキャッシュの使用を検討します。ポートレットは、コンテンツをキャッシュ・キーに関連付け、そのキーの値をコンテンツとともに戻します。ポートレット・コンテンツがリクエストされると、ポートレットは、キャッシュ・キーに基づいて、現在のコンテンツが有効かどうかを判断します。ポートレット・コンテンツが有効な場合は、キャッシュされたコンテンツを使用できる(つまり、コンテンツが有効である)ことを示すレスポンスを戻します。有効でない場合は、新しいポートレット・コンテンツを生成し、そのコンテンツの新しいキャッシュ・キーとともに戻します。
無効化ベースのキャッシュ: 無効化ベースのキャッシュは、最も複雑ですが、最も柔軟性のあるキャッシュ形式です。有効期限ベースのキャッシュの効率性と、キャッシュ・コンテンツを無効化する機能が必要な場合は、無効化ベースのキャッシュの使用を検討します。
無効化ベースのキャッシュの他に、Webクリッピング・ポートレットおよびOmniPortletには有効期限ベースのキャッシュも指定できます。さらに、これらのポートレットは、パーソナライズ時には自動的にリフレッシュされます。
この項では、様々なタイプのポートレットを構築するために使用できる開発ツールについて説明します。
Javaポートレットの構築には任意のJava開発環境を使用できますが、プロフェッショナルなIDEであるOracle JDeveloperを使用することをお薦めします。他のIDEも検討できますが、Oracle JDeveloperにはJavaポートレット・ウィザードが含まれているため、Javaポートレットの開発作業を最小限にできます。
Javaポートレット・ウィザードでは、JSR168とPDK-Javaの両方のポートレットに対する開始用のスケルトンおよびファイル構造が生成されます。スケルトンに追加する必要があるのは、独自のビジネス・ロジックのみです。Oracle JDeveloperでは、アプリケーションをパッケージ化してJ2EEコンテナ(OC4Jなど)にデプロイすることもできます。ポートレット・プロデューサのテストにも使用できます。Oracle WebCenter Frameworkで提供されている構成済のOC4Jを、開発Javaポートレットのランタイム環境として使用することをお薦めします。詳細は、第3章「開発環境の準備」を参照してください。
Oracle WebCenter Frameworkでは、次のタイプのポートレット作成をサポートします(図15-4)。
開発後に追加
実行時のデザインタイム
開発後に追加するポートレット作成は、通常ポートレット開発者の仕事で、実行時のデザインタイムのポートレット作成は、アプリケーション開発者の担当です。
OmniPortletとWebクリッピングはどちらも、実行時のデザインタイムのポートレット作成スタイルを提供します。ポートレットを使用するアプリケーションにポートレット・プロデューサを登録し、ポートレットをアプリケーション・ページに追加し、アプリケーションを実行してから、ページ上で配置済のポートレットを定義します。
Oracle Portlet Factoryでは、開発後に追加のポートレット作成スタイルを提供します。開発者はPortlet FactoryのUIを使用して、ビルダー(ボタン、ループ、アクションなど)をモデル内に配置します。コードは自動的に生成されます。開発者は、生成されたコードを表示できますが、それと対話する必要はまったくありません。Oracle Portlet Factoryの開発順序は、モデルを作成し、それをプロデューサにデプロイし、ポートレットを使用するアプリケーションにプロデューサを登録してから、ポートレットをアプリケーション・ページに追加します。
通常のプログラム的なポートレットでは、開発後に追加のポートレット作成スタイルを提供します。Oracle WebCenter Frameworkを介して、Oracle PDK-JavaポートレットとJSR 168ポートレットの作成に役立つ2つのウィザードを使用できます。ウィザードでは、ポートレット作成に必要な基本ファイルが生成されます。開発者はポートレット・ロジックをハンドコーディングします。プログラム的なポートレットの開発順序は、ポートレットを作成し、それをプロデューサにデプロイし、ポートレットを使用するアプリケーションにプロデューサを登録してから、ポートレットをアプリケーション・ページに追加します。
注意: 拡張コーディングにより、実行時のデザインタイムのJavaポートレットを作成できます。たとえば、WebクリッピングおよびOmniPortletは、ともにJavaポートレットです。 |
この項では、ポートレット構築ツールをユーザー・インタフェースの制御の観点から説明します。
OmniPortletでは、スクロール・ニュース、表、チャートなど、いくつかの異なるビルトイン・レイアウトを使用できます。また、このビルトインのHTMLレイアウトを使用して、HTMLおよびJavaScriptを使用するポートレットのルック・アンド・フィールをパーソナライズすることもできます。
注意: ポートレットでJavaScriptを使用する場合、開発者はJavaScript識別子が修飾されていることを確認する必要があります。つまり、識別子はポートレット・インスタンスごとに一意であり、ページ上のJavaScriptと競合しないことが要求されます。 |
この項では、ポートレット構築ツールを、他のソースからコンテンツを組み込む機能の観点から説明します。
リモートWebサイトのコンテンツをソースの場所で表示されているとおりに表示するポートレットの場合、使用する最適のツールはWebクリッピングです。Webクリッピングでは、ソースHTMLページの変更をある程度許容できます。クリップされた表がソース・ページ内のある場所から別の場所に移動した場合、Webクリッピング・エンジンは、内部の「ファジー・マッチ」アルゴリズムを使用してその表を再度検出できます。Webクリッピングで構築されたポートレットでは、リモートWebサイトへのセッションも管理できます。また、Webクリッピングでは、ユーザーによるHTMLフォーム値のパーソナライズがサポートされています。
リモートWebサイトのデータは使用するがレイアウトは使用しないポートレットの場合、OmniPortletが最適です。OmniPortletを使用して、データを取得、処理し(書式設定、フィルタ処理など)、表、チャートまたはニュース形式でポートレットに表示します。OmniPortletは、WebページのデータをそのWebページ・データソースを使用して抽出する強力なツールです。
ユーザーは、リンクまたはフォームのボタンなど、ポートレット内のアクティブ要素を使用してリモートURLにナビゲートできます。ニュース・ポートレットでは、たとえば、ユーザーはハイパーリンクをクリックして、興味のあるニュースの詳細情報があるニュース・サイトにナビゲートできます。たとえば、ユーザーはニュース・ポートレットでニュース・サマリーのリンクをクリックし、アプリケーション・ページを離れ、そのニュース・サイトに移動します。
リクエストされたコンテンツを同じポートレット・コンテナ内にレンダリングすることで、ユーザーをアプリケーション・ページのコンテキスト内に留まらせることが必要な場合があります。たとえば、ユーザーがニュース・ポートレットでニュース・サマリーのリンクをクリックすると、ポートレットは詳細なニュース記事でリフレッシュされます。
コンテンツのインラインでのレンダリングの目的は、このコンテキストの持続です。
Webクリッピング・ポートレットでは、インライン・コンテンツのレンダリングを実現するためにURLリライティングがサポートされています。その結果、ソースWebサイトを起点とするリンクを処理し、そのリンクをリライトすることで、目的の機能を実現できます。
次のオプションがあります。
ポートレット内のURLをリライトしないように選択します。この場合、リンクをクリックすると、ユーザーはWebCenterアプリケーションを離れ、クリッピングを提供しているWebサイトに移動します。リンクを使用して認証の必要な場所へ移動した場合、ユーザーはリンク・ターゲットが表示される前に、ログイン情報を入力する必要があります。
Webクリッピング・プロバイダを外部アプリケーションに登録して、クリッピングに認証が必要な場合には、ポートレット内のすべてのURLがログイン・サーバーを指すようにリライトすることをWebクリッピングに指示できます。この場合、ナビゲーションによりユーザーがWebCenterアプリケーションを離れる一方で、ログイン・サーバーを使用してブラウザを外部アプリケーションに接続します。
ポートレット内のすべてのURLが元のページを指すようにポートレット内のすべてのURLをリライトすること(インライン・レンダリング)を選択します。この場合、Webクリッピング・ポートレット内でのブラウズはすべてWebCenter内に留まります。外部アプリケーションにWebクリッピング・プロバイダを登録すると、Webクリッピング・プロバイダはその外部アプリケーションにログインします。この場合、Webクリッピング・プロバイダを介したWebCenter内のナビゲーションが、この外部アプリケーションで認証されます。
Oracle Portlet Factoryでは、同じポートレット・コンテナ内(つまり、インライン)の複数ページ・ポートレットのレンダリングをサポートしています。追加のポートレット・ページへのリンクは、物理的ではなく論理的です。つまり、リンクは物理アドレスではなく、論理的な場所にマップされます。これにより、ポートレットが移動するインスタンスで優れたリンクの整合性が実現します。
Javaポートレット内のリンクとボタンは完全に制御できるため、インライン・レンダリング機能を簡単に実装できます。インライン・レンダリングを実現するには、ページのURLにプライベート・ポートレット・パラメータを追加する必要があります。
ポートレット内でStrutsを使用する場合、コンテンツは、PDK-Struts統合フレームワークによって常に同じポートレット・コンテナにレンダリングされます。ただし、新しいWebCenterアプリケーションにはADF Facesナビゲーションを使用することをお薦めします。
ポートレットが複数のJSPで構成される場合(サーベイ内またはウィザード内の複数のステップなど)、ポートレットでは特別なパラメータを使用して、コンテンツのレンダリングに使用するJSPを実行時に指定できます。
この項では、ポートレット構築ツールをチャート作成機能の観点から説明します。
OmniPortletでは、棒面グラフ、線グラフ、円グラフのチャート・タイプをサポートしています。チャートは動的に生成されるイメージで、ハイパーリンクを含めることができます。
Oracle Portlet Factoryには、Greenpoint Web Chartビルダーのデモ版が含まれています。このビルダーを使用すれば、高度なチャートやグラフを作成できます。フル・ライセンスは、Greenpoint社から取得できます。
http://www.webcharts3d.com/
通常、ポートレットの状態は不透明(プライベート)です。ただし、Oracle WebCenter Frameworkでは、ポートレットはパブリック入力(パラメータ)について説明できるため、値はポートレットを使用するアプリケーションによって、そのアプリケーションの他の構成要素と調整されます。
入力には、パブリック・ポートレットのパラメータとプライベート・ポートレットのパラメータが含まれます。これらのパラメータは次のように説明できます。
パブリック・ポートレット・パラメータ: パブリック・ポートレット・パラメータは、ポートレットに値を渡すのに使用します。パブリック・パラメータは、特定のページまたはユーザーに固有のポートレット・コンテンツのレンダリングに役立ちます。ポートレット・パラメータは、コンポーネント開発者によって作成され、ユーザー・インタフェースを介してアプリケーション開発者に公開されます。アプリケーション開発者は、ポートレットをページに追加した後、パブリック・ポートレット・パラメータに値を割り当てることで、ポートレットに表示される情報をそのページ固有のものにできます。
割り当てられた値は、固有の値(定数など)、システム値(ユーザー名など)、ページ・パラメータのいずれかです。ポートレットは実行時に、指定されたソースから値を受信します。
プライベート・ポートレット・パラメータ: プライベート・ポートレット・パラメータを使用すると、ポートレットに内部ナビゲーションを実装できます。パラメータは、ページがリクエストされるたびにポートレットに渡されます。プライベート・ポートレット・パラメータは、同じポートレット・インスタンス内で排他的に渡すことができます。プライベート・ポートレット・パラメータを使用するために、フル・ページをリフレッシュする必要はありません。
注意: 「リフレッシュ」アクションは、ポートレットの「処理」メニューに含めることができます(isNormalModeAvailable )。「リフレッシュ」アクションは、フル・ページ・リフレッシュを起動することなく、ポートレットをリフレッシュします。このアクションのプログラムによる設定の詳細は、4.3.3項「adfp:portletタグの属性値の設定」を参照してください。 |
パブリック・ポートレット・パラメータがサポートされているポートレットを使用すると、アプリケーション開発者は、ポートレット・インスタンスごとにデータ入力を調整できます。コンポーネント開発者はポートレット・ロジックに専念でき、アプリケーション開発者はアプリケーション・ページとそのポートレット間の相互作用に対処できます。
この章で説明したポートレット構築テクノロジ(OmniPortlet、Webクリッピング、Oracle Portlet Factoryおよびプログラム的なポートレット)のすべてが、パブリック・ポートレット・パラメータをサポートしています。OmniPortletとWebクリッピングでは、ウィザード・インタフェースによる完全なサポートを提供します。Oracle Portlet Factoryでは、RequestInputs
APIによりパブリック・ポートレット・パラメータをサポートしています。RequestInputs
オブジェクトをWebAppAccess
オブジェクトから取得できます。プログラム的なポートレットに対しては、プログラムまたはJavaポートレット・ウィザードによりパブリック・ポートレット・パラメータのサポートを追加できます。
この項では、ポートレット構築ツールをプライベート・パラメータのサポートの観点から説明します。
OmniPortletポートレットおよびWebクリッピング・ポートレットを使用して、コンポーネント開発者はプライベート・ポートレット・パラメータにアクセスできません。
この項では、ポートレット構築ツールを認証機能のサポートの観点から説明します。
WebクリッピングおよびOmniPortletで構築されたポートレットの非表示または表示を、セキュリティ・マネージャを使用して動的に切り替えます。WebクリッピングおよびOmniPortletでは、セキュリティ・マネージャはユーザー・インタフェースを介して公開されませんが、XMLプロバイダの定義ファイルを介して編集のために使用できるようになります。
PDK-Javaポートレットでは、Javaポートレットに対するセキュリティ・マネージャがいくつか提供されています。次に例を示します。
グループ・セキュリティ・マネージャ: グループ・セキュリティ・マネージャは、グループ・メンバーシップに基づいてポートレットへのアクセスを制御します。たとえば、指定したグループのメンバーであるユーザーにはポートレットを表示しますが、メンバーでないユーザーには表示しません。
認証レベル・セキュリティ・マネージャ: 認証レベル・セキュリティ・マネージャは、認証レベルに基づいてポートレットへのアクセスを制御します。たとえば、認証されたユーザーにはポートレットを表示しますが、パブリック・ユーザーには表示しません。
JSR 168ポートレットでは、標準のサーブレット・メカニズムがサポートされています。
この項では、ポートレット構築ツールを他の言語に対するサポートの観点から説明します。
Webクリッピング、OmniPortletおよびJavaポートレットでは、エンド・ユーザーが選択した言語でテキスト情報が表示されます。Oracle Portlet Factoryでは、次の2つのビルダーを介して、ローカライズされたコンテンツをサポートします。
ローカライズされたリソース
インポートされたページ
この項では、ポートレット構築ツールを外部アプリケーションに対する認証の観点から説明します。
Webクリッピングの外部アプリケーション・フレームワークとの統合では、外部Webサイトへのパスワードの保存を完全に自動化するメカニズムが提供されます。必要な操作は、Webクリッピング・プロデューサの登録時に外部アプリケーションIDを入力するのみです。
OmniPortletでは、データソースがパスワードで保護されている場合、接続情報を保存できます。データソースへのアクセスに対する接続情報は、すべてのユーザーで共有するか、またはユーザーごとに保存できます。OmniPortletでは、データベース接続情報に加え、HTTP Basic認証に使用するユーザー名とパスワードのペアも格納できます。資格証明は、保護されたメタデータ・サービス・リポジトリに保存されます。
外部アプリケーションへのアクセスは、PDK-Java APIと対話するJavaクラス・ビルダーを介してサポートされています。そして次に、APIは外部アプリケーションと通信します。外部アプリケーションへの最初のログインの後、ユーザーのログイン資格証明は資格証明ストアに保存され、その後はそこから取得されます。