この章では、ポートレットの機能、特性、テクノロジおよびツールについて説明し、ニーズに最も適したポートレット構築テクノロジを決定できるようにします。この章の内容は、次のとおりです。
注意: この項では、WSRPプロデューサについて説明します。OracleAS PortalではJSPポートレットの構築はサポートされていますが、WSRP対応のポートレットの使用はまだサポートされていません。このため、現時点ではホスティングされたOracleAS Portal Verification Service(http://portalstandards.oracle.com )またはダウンロード可能なOracleAS Portalの開発者プレビューに対してのみJSPポートレットをテストできます。開発者プレビューもホスティングされたOracleAS Portal Verification Serviceも、開発のためにのみ提供されています。本番システムでは使用しないでください。 |
表2-1 「ポートレット構築テクノロジの比較マトリックス」では、横軸上にOracleAS Portalで使用できるテクノロジとツールを示し、縦軸上でそれぞれの機能と特性を要約しています。このマトリックスには、このガイドで詳細に説明するOmniPortlet、Webクリッピング、Javaポートレット(PDK-Java)および標準などのツールやテクノロジが掲載されています。ポートレット・ビルダーについては付録で説明し、PL/SQLポートレット(PDK-PL/SQL)については、このマトリックスでのみ説明します。
注意: これらはポートレットを構築するための主なツールですが、その他のツールやテクノロジもあります。たとえば、Oracle ReportsやOracle Discovererなどです。これらのツールについては、このガイドでは説明しません。 |
この章の他の項では、表2-1にリストした特性の詳細を説明します。この表で機能と特性すべてに簡単に目を通した後、後続の項で詳細情報を参照してください。
表2-1 ポートレット構築テクノロジの比較マトリックス
Webクリッピング | OmniPortlet | PDK-Java | 標準 | ポートレット・ビルダー | PDK-PL/SQL |
---|---|---|---|---|---|
|
|||||
単純なウィザード・ベースのツール。他のWebサイトのWebコンテンツをポータル内に取得して表示する際に役立ちます。 |
ブラウザからアクセス可能なウィザード・ベースのツール。広範囲なデータソースからデータを取得して表示できます。 |
OracleAS Portal専用に構築されたポートレットのAPI。 |
ブラウザからアクセス可能なウィザード・ベースのツール。データベース中心の単純なアプリケーションまたはポートレットに最適です。 |
OracleAS Portal専用に構築されたポートレットのAPI。 |
|
|
|||||
専門知識は不要。 |
サポートされる1つ以上のデータソース、およびポートレット、ページ・パラメータ、イベントの概念に関する基本的な理解。 |
Java、サーブレット、JSPの知識。 |
Java、サーブレット、JSPの知識。 |
リレーショナル・データベース概念の基本的な理解。必要に応じてSQL、PL/SQL。 |
SQL、PL/SQL、PL/SQL Webツールキット。 |
サポートされるデータソース(詳細は、2.3項「必要な専門知識」を参照) |
|||||
ネットワーク上でHTTPまたはHTTPSを介してアクセス可能なすべてのWebサイト。 |
CSV、XML、Webサービス、SAP、SQL、Webサイト、JCA。 |
制限なし。 |
制限なし。 |
SQL(ローカルDBまたはDBリンクを介したリモートDB)。 |
SQL(ローカルDBまたはDBリンクを介したリモートDB)。 |
|
|||||
Webプロバイダ |
Webプロバイダ |
Webプロバイダ |
WSRP |
データベース・プロバイダ |
データベース・プロバイダ |
|
|||||
有効期限ベースのキャッシュ、無効化ベースのキャッシュ(パーソナライズ時に自動的に無効化)。 |
有効期限ベースのキャッシュ、無効化ベースのキャッシュ(パーソナライズ時に自動的に無効化)。 |
有効期限ベースのキャッシュ、有効化ベースのキャッシュ、無効化ベースのキャッシュ、ESI。 |
有効化ベースのキャッシュ、有効期限ベースのキャッシュ。 |
有効期限ベースのキャッシュ。 |
有効期限ベースのキャッシュ、有効化ベースのキャッシュ、無効化ベースのキャッシュ。 |
|
|||||
ブラウザ - ウィザード。 |
ブラウザ - ウィザード。 |
Oracle JDeveloper - Javaポートレット・ウィザード(または、ウィザードを使用しない他のJava開発環境)。 |
Oracle JDeveloper - Javaポートレット・ウィザード(または、ウィザードを使用しない他のJava開発環境)。 |
ブラウザ - 必要に応じてPL/SQL開発環境。 |
PL/SQL開発環境。 |
|
|||||
その場で開発。 |
ポートレットはその場で構築しません。ポートレットのページへの追加、デフォルトの編集およびパーソナライズを行います。 |
ポートレットはその場で構築しません。ポートレットのページへの追加、デフォルトの編集およびパーソナライズを行います。 |
開発後に追加、およびその場で開発。 |
ポートレットはその場で構築しません。ポートレットのページへの追加、デフォルトの編集およびパーソナライズを行います。 |
|
|
|||||
適用外。 |
柔軟性が高い。HTMLレイアウトを使用します。 |
柔軟性が高い。 |
柔軟性が高い。 |
制限あり。 |
柔軟性が高い。 |
|
|||||
あり。これが本来の機能です。 |
あり。Webデータソースを使用します。 |
あり。java.netパッケージを使用します。 |
あり。java.netパッケージを使用します。 |
なし。 |
あり。UTIL_HTTPパッケージを使用します。 |
|
|||||
あり。(Webクリッピング9.0.4.0.2以上でサポート。) |
URLリライティングはサポートされませんが、パブリック・ポートレット・パラメータとイベントを使用することで実現できます。 |
プライベート・ポートレット・パラメータを使用します。 |
サーブレットおよびJSPを組み込みます(PortletContext.getRequestDispatcher()メソッドを使用)。 |
レポートおよびチャートのページ区切りがインラインでレンダリングされます。 |
プライベート・ポートレット・パラメータを使用します。 |
|
|||||
適用外。 |
あり。2Dチャートと3Dチャート。 |
BI Beanを使用します。 |
BI Beanを使用します。 |
HTMLチャート。 |
プログラムによるHTMLチャート。 |
|
|||||
あり。(Webクリッピング9.0.4.0.2以上でサポート。) |
あり。 |
あり。 |
なし。 |
あり。 |
あり。 |
|
|||||
適用外。 |
適用外。 |
あり。 |
あり。 |
なし。 |
あり。 |
|
|||||
あり。 |
あり。 |
あり。 |
ポートレットのプライベート・イベント(アクション)。 |
なし。 |
なし。 |
ユーザー権限に基づいてポートレットの表示/非表示を切り替える機能 |
|||||
なし。ただし、UIを介して公開されないセキュリティ・マネージャの適用が可能です。 |
なし。ただし、UIを介して公開されないセキュリティ・マネージャの適用が可能です。 |
あり。セキュリティ・マネージャを使用します。 |
あり。サーブレット・セキュリティ・モデルは、PortletRequest.isUserInRole()やPortletRequest.getUserPrincipal()などのメソッドを使用してサポートされます。 |
あり。 |
あり。セキュリティAPIを使用します。 |
|
|||||
適用外。 |
あり。 |
あり。 |
あり。 |
なし。 |
あり。 |
|
|||||
適用外。 |
なし。 |
プログラムによるサポート。 |
プログラムによるサポート。 |
あり。 |
プログラムによるサポート。 |
|
|||||
Webクリッピング9.0.4.0.2以上では、外部アプリケーションの統合がサポートされます。 |
Basic認証は、データソースに認証が必要な場合にサポートされます。 |
外部アプリケーション統合がサポートされます。LDAP統合は、ポートレットがLDAPサーバーと同じファイアウォールの内側で実行される場合にサポートされます。 |
なし(カスタム・ユーザー属性を介して実行可能です)。LDAP統合がサポートされます。 |
なし(OracleAS Portalリポジトリ内で実行されるため、SSO統合は必要ありません)。 |
SSOは、mod_ossoを使用することで有効になります。 |
この項では、各ポートレット構築テクノロジをその用途の特性(ウィザード・ベースまたはプログラムなど)の観点から説明します。
Webクリッピングは、単純なウィザード・ベースのツールで、他のWebサイトのWebコンテンツをポータル内に取得して表示する際に役立ちます。Webクリッピングでは、専門知識は不要です。
Webクリッピングを使用して構築できるポートレットの例
Webクリッピングを使用して、次のポートレットを構築できます。
株式チャート・ポートレット
パーソナライズされた天気ポートレット
Webメール・ポートレット
広範囲なデータソースからデータを取得して表示するために、簡単に使用できるウィザード・ベースのツールを探している場合は、OmniPortletを検討してください。OmniPortletは、ブラウザで完全に稼働します。実行する必要があるのは、ポータル・ページにOmniPortletをドロップし、使用可能なデータソースのリストから、次に示すようなデータソースを選択する操作のみです。
スプレッドシート
SQL
XML
Webサービス
Webページ
OmniPortletでは、追加の開発ツールを使用したり高度な専門知識がなくても、再利用可能で高性能なポートレットを構築できます。
OmniPortletで作成できるポートレットの例
OmniPortletを使用して、次のポートレットを作成できます。
RSSニュース・フィード・ポートレット
販売チャート・ポートレット
SAP Business Suiteポートレット
ウィザード・ベースのポートレット構築ツールではニーズを満たさない場合は、Javaを使用してプログラムでポートレットを構築できます。2003年に、JavaポートレットAPIがJava Community Processによって標準化されました。Java Specification Request(JSR)168標準に準拠して構築されたポートレットは、異なるポータル・プラットフォーム間で相互運用できます。Oracle JDeveloperプラグインの1つであるJavaポートレット・ウィザードは、Javaポートレットを開始する際に役立ちます。
注意: Javaでポートレットを構築する場合は、ポートレットの機能を完全に制御できます。たとえば、外観や動作方法を制御できます。 |
Javaを使用して構築できるポートレットの例
Javaで次のポートレットを構築できます。
ディスカッション・フォーラム・ポートレット
電子メール・ポートレット
ポートレット・ビルダーは、データ駆動ポートレットを作成するためのウィザード・ベースのツールで、データはOracleデータベースに存在します。インタラクティブなフォームを構築して、データベース・レコードを挿入、更新および削除できます。柔軟性のあるレポートおよびHTML棒グラフを作成して、データベースの情報を表示できます。また、ポートレット・ビルダーでは、動的リンクを使用して、データ駆動ポートレット間でパラメータを渡したり、ナビゲートすることもできます。
ポートレット・ビルダーを使用して構築できるポートレットの例
ポートレット・ビルダーを使用して、次のポートレットを構築できます。
データ入力ポートレット
パートナの動的リスト・ポートレット
販売結果ポートレット
Javaポートレットと同様に、PL/SQLポートレットは、組込みのポートレットではニーズを満たすことができないWebアプリケーションを構築するために、柔軟なアプローチを提供します。たとえば、アプリケーションで特別なビジネス・ルールやロジックを実装する必要がある場合、またはカスタム設計された認証要件を満たす場合などです。PL/SQLポートレットは、通常、SQLおよびPL/SQLを使用してデータ集約型の操作を実行する必要がある場合に使用されます。OracleAS Portalには、プログラムによるプロバイダ登録、オブジェクト・レベルの権限管理、ユーザー・インタフェース制御、多言語サポートなど、豊富なPL/SQL APIが用意されています。
たとえば、情報プロバイダはカスタム・ポートレットを作成し、OracleAS Portalを介してアプリケーションをユーザーに表示できます。開発者は、OracleAS Portal Developer Kit(PDK)の仕様に従って独自のポートレットを構築し、プロバイダをOracleAS Portalに登録します。OracleAS PDKを使用すると、ニーズに適したポートレットを開発できます。
PL/SQLを使用して構築できるポートレットの例
PL/SQLを使用して、次のポートレットを構築できます。
コンテンツ・アップロード・ポートレット
サイト・マップ・ポートレット
高度なデータ入力およびレポート・ポートレット
ポートレット構築ツールでは、ポートレットの開発技能を必要としない場合も、高度な専門知識があることを前提としている場合もあります。この項では、ポートレット構築ツールを、それぞれのツールを効果的に使用するために必要な知識レベルの観点から説明します。
Webクリッピングは、専門知識を必要としないツールです。ただし、クリップしたWebページのコンテンツをパラメータ化する場合は、パブリック・ポートレット・パラメータおよびページ・パラメータを理解している必要があります。
OmniPortletでは、ポートレット内で利用するデータソースに関する基本的な知識が必要です。
データソース | データソースについて必要な知識 |
---|---|
スプレッドシート | ポートレットに表示するデータが含まれたスプレッドシートを指すURL。 |
SQL | データソースへの接続情報およびデータベースからデータを取得するSQL問合せ。 |
XML | XMLソースの位置、必要に応じてXSLフィルタおよびXMLスキーマのアドレス。 |
Webサービス | 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など)に保持されている企業データを格納および取得するためのメカニズムが提供されます。 |
Javaポートレットを構築するには、少なくともJ2EEのサブセットに関する知識が必要です。HTML、JavaサーブレットおよびXMLに関する知識が必須ですが、JSPの経験も役立ちます。実行するタスクによって、Javaに関するその他の知識が必要になる場合もあります。Javaポートレットを使用すると、(Java言語でサポートされている)すべてのデータソースにアクセスできます。
ポートレット・ビルダーを使用する場合は、リレーショナル・データベースの概念をよく理解している必要があります。実現する内容によって、SQLおよびPL/SQLの知識が必要になる場合もあります。ポートレット・ビルダーを使用すると、データベース・リンクを使用して、ローカルの(Oracle Application Server Infrastructure)データベースまたはリモート・データベースからデータを消費できます。
図2-1に示すとおり、ポートレットは、Webプロバイダ、WSRPプロデューサおよびデータベース・プロバイダの3つのプロバイダ・タイプを介してOracleAS Portalにデプロイできます。Webプロバイダは、J2EEアプリケーション・サーバーにデプロイされます。このサーバーは多くの場合リモートで、HTTPを介したSimple Object Access Protocol(SOAP)を使用してOracleAS Portalと通信します。OracleAS Portalの開発者プレビューでは、OASIS標準の1つであるWeb Services for Remote Portlets(WSRP)がサポートされます。データベース・プロバイダは、PL/SQLで実装され、OracleAS PortalがインストールされているOracleデータベースにデプロイされます。
Webプロバイダは、最も一般的に使用され、柔軟なタイプのプロバイダです。Webプロバイダは、OracleAS Portalと同じアプリケーション・サーバー、リモート・アプリケーション・サーバーまたはネットワーク上の任意の場所に存在できます(図2-2)。Webプロバイダは、事実上、どのWebテクノロジを使用しても実装できます。ただし、Oracle Application Server Portal Developer Kitでは、Webプロバイダの構築タスクを簡略化するJavaフレームワークが提供されます。
Webプロバイダは、デプロイ、定義およびOracleAS Portalとの通信に関し、XML、SOAP、HTTPまたはJ2EEなどのオープン標準を使用します。また、Webプロバイダは、J2EEコンテナへのデプロイが可能なため、OracleAS Portalリポジトリ・データベースに余分な負荷がかかりません。
ポートレットを開発しWebプロバイダとして公開すると、様々な利点があります。次のタスクを実行できます。
ポートレットをリモートでデプロイします。
既存のWebアプリケーション・コードを利用してポートレットを作成します。
宣言によってプロバイダを指定できます。
各データベース・プロバイダから提供されているのより多くの機能を利用できます。
標準のJavaテクノロジ(サーブレットやJSPなど)を使用してWebプロバイダのポートレットを開発できます。
Webプロバイダを使用してポートレットを公開するには、ポートレットを管理し、SOAPを使用してOracleAS Portalと通信できるプロバイダを作成する必要があります。Webプロバイダを使用してポートレットを公開する方法の詳細は、6.4項「Oracle JDeveloperを使用したJPS準拠のポートレットの構築」を参照してください。
Web Services for Remote Portlets(WSRP)。ユーザーを対象とした視覚的なWebサービスを、ポータルまたは他の中間Webアプリケーションにプラグ・アンド・プレイできるようにするWebサービスの標準です。その標準性により、特定の言語(JSR 168、.NET、Perlなど)をベースとする標準対応のコンテナと任意のWSRPポータル間の相互運用が可能です。このため、WSRP対応のコンテナにデプロイされたポートレットは、その言語に関係なく、この標準をサポートするあらゆるポータル上にレンダリングできる。アーキテクチャの視点からみると、WSRPプロデューサは、Webプロバイダによく似ています。WSRPポータル・アーキテクチャの詳細は、「WSRPとJPSの関連」を参照してください。
1つ以上のPL/SQLポートレットを所有するデータベース・プロバイダを作成することもできます。データベース・プロバイダとそのPL/SQLポートレットは、Oracle Application Server Metadata Repositoryデータベースに存在し、PL/SQLパッケージとして実装されます。リモート・サーバー上のデータベース・プロバイダにアクセスする場合は、連携されたPortalアダプタを使用できます(図2-3)。詳細は、Portal Centerにある記事「Understanding the Federated Portal Adapter」(http://www.oracle.com/technology/products/ias/portal/portlet_development_10gr2.html
)を参照してください。
データベース・プロバイダは、PL/SQLを使用してデータ集約型の操作を実行する必要がある場合は理想的です。OracleAS Portalのユーザー・インタフェース、またはPDKで提供されるPL/SQL APIを使用してフォームまたはチャートを構築している場合がその例です。
データベース・プロバイダを使用してポートレットを公開する方法の詳細は、8.13項「プログラムを使用したプロバイダの登録」を参照してください。
図2-4は、ポートレット・プロバイダの基本的なアーキテクチャを示しています。
ユーザーがWebブラウザでポータル・ページを表示するとき、リクエストの流れは次のようになります。
ユーザーは、Webブラウザのアドレス・フィールドにURLを入力することで、Webブラウザからポータル・ページをリクエストします。
Oracle Application Serverの中間層に存在するParallel Page Engine(PPE)は、ポータル・ページのレイアウト、ポートレットおよびプロバイダの各情報(ページ・メタデータとも呼ばれます)をOracleAS Portalリポジトリから取得します。
注意: PPEは、リクエストされたポータル・ページをページ・メタデータに基づいて構築する役割を果します。 |
PPEは、ポートレット・コンテンツのすべてのプロバイダを問い合せます。
プロバイダは、ポートレットがHTMLコードまたはXMLコード形式のポートレット・コンテンツを生成するように、それぞれのポートレットに対して必要なコールを実行します。
プロバイダは、ポートレット・コンテンツをPPEに戻します。
PPEはポータル・ページを組み立て、Oracle Application ServerはこのページをWebブラウザに戻します。
注意: ポートレットおよびプロバイダのアーキテクチャについては、Portal Center(http://portalcenter.oracle.com )にある「Portlet Development」のページを参照してください。 |
Webクリッピング、OmniPortletおよびJavaポートレットは、Webプロバイダを介してOracleAS Portalと通信します。OracleAS Portalをインストールすると、WebクリッピングおよびOmniPortletを使用する準備が整います。つまり、これらのプロバイダは、OracleAS Portalに最初から登録されています。Javaポートレットのプロバイダは、明示的に登録する必要があります。
注意: WebクリッピングおよびOmniPortletの開発は、急速に進んでいます。これらのポートレットの最新バージョンは、OTNからダウンロードできます。これらのツールをダウンロードして使用する場合は、OC4Jにデプロイし、WebプロバイダとしてOracleAS Portalに登録する必要があります。詳細は、OTNの「Documentation」(http://www.oracle.com/technology/products/ias/portal/documentation.html)で入手できる『Oracle Application Server Portal構成ガイド』を参照してください。 |
ポートレット・ビルダーで構築されたデータ駆動ポートレットは、データベース・プロバイダを介してOracleAS Portalと通信します。ポートレット・ビルダーのプロバイダは自動的に登録されるため、OracleAS Portalに明示的に登録する必要はありません。
PL/SQLポートレットは、データベース・プロバイダを介してOracleAS Portalと通信します。データベース・プロバイダを明示的に登録する必要があります。
OracleAS Portalには、プロバイダ登録ウィザードが用意されています。このウィザードには、ナビゲータの「プロバイダ」タブからアクセスできます。登録画面には次のセクションがあります。
プロバイダ情報: プロバイダ名、タイムアウトの詳細、実装スタイルが含まれています。
ユーザー/セッション情報: プロバイダにセッション情報を転送する方法が含まれています。
データベース・プロバイダ: 実装の所有者や名前などデータベース・プロバイダ固有の情報が含まれています。
Webプロバイダ: プロバイダのURL、プロバイダに転送されたユーザーIDおよびプロキシ情報などWebプロバイダ固有の情報が含まれています。
WSRPプロデューサ: WSDL URL、プロデューサにより提供されるセッション処理情報など、WSRPプロデューサ固有の情報が含まれています。
セッション処理に影響を与えるセクションは、「ユーザー/セッション情報」セクションとウィザードのWebプロバイダ登録ページの「Cookieドメイン」チェック・ボックスです。同じCookieドメインを使用することの詳細は、Portal Center(http://www.oracle.com/technology/products/ias/portal/portlet_development_10gr2.html
)の「Portlet Development」ページにある記事、「Sharing Session Cookies Not Allowed in PDK-Java Release 2」を参照してください。
ユーザー/セッション情報
「ユーザー/セッション情報」セクションでは、開発者がプロバイダにOracleAS Portalから受信させるセッション関連情報に応じて、2つのオプションのうちいずれかを選択できます。2つのオプションは次のとおりです。
パブリック: このオプションを選択すると、ユーザーの名前が「パブリック」に設定されます。プロバイダは、セッションIDやユーザーのログイン時刻などのセッション関連情報を受信しなくなります。このオプションは、プロバイダ登録API(8.13項「プログラムを使用したプロバイダの登録」を参照)のLOGIN_FREQUENCY_PUBLICと等価です。
ユーザー: このオプションを選択すると、OracleAS Portalユーザーの名前がプロバイダに送信されます。このセクションには次の2つのオプションがあります。
ログイン頻度: ここでは、プロバイダにセッション情報を送る頻度、つまりユーザーがログインする必要のある頻度を決定する3つのオプション(常時、ユーザー・セッションごとに1回、なし)から、いずれかを選択できます。
Portalユーザー固有のセッション情報が必要です。: プロバイダ・コールでセッション情報を送信するかどうかを指定できます。
キャッシュは、ポータルのパフォーマンスを向上させるための重要な役割を果します。OracleAS Portalでは、ページ、ポートレット、スタイル、ページ・メタデータのキャッシュなど、様々なレベルのキャッシュがサポートされています。ポートレットのキャッシュは、正確な情報をタイムリな方法でユーザーに配信するために重要です。OracleAS Portalで使用できるすべてのポートレット構築テクノロジで、キャッシュはサポートされています。
OracleAS Portalでは、ユーザーによるページおよびポートレットのパーソナライズがサポートされているため、ページの表示はユーザーによって異なることがあります。OracleAS Portalのキャッシュは、ユーザーごとに異なるコンテンツを使用できるように設計されています。したがって、ポートレットなどのポータル・オブジェクトは、ユーザー・レベルとシステム・レベルの2つのレベルでキャッシュできます。この2つのレベルのキャッシュについて説明します。
ユーザー・レベルのキャッシュは、特定のユーザーを対象とします。格納されたキャッシュ・エントリは、そのユーザー固有のものであり、他のユーザーはアクセスできません。ユーザー・レベルのキャッシュに適したものとして、電子メールまたは株式チッカー・ポートレットなど、パーソナライズがサポートされたポートレットがあります。
システム・レベルのキャッシュでは、複数のユーザーが1つのキャッシュ・エントリを共有できます。したがって、すべてのユーザーのオブジェクトのコピーをキャッシュする必要はありません。システム・レベルのキャッシュに適したコンテンツの例として、パーソナライズが不可能な新規ポートレットまたはカスタム構築されたナビゲーション・ポートレットがあります。
キャッシュを使用せずに、Webクリッピング、OmniPortletおよびポートレット・ビルダーで様々なデータソースにアクセスすると、時間がかかる場合があります。キャッシュを有効にする場合は、OracleAS PortalまたはOracleAS Web Cacheに対して、ポートレット・コンテンツのコピーを保持するように指示します。ポートレットがリクエストされ、そのコンテンツが以前にキャッシュされている場合、ポートレットは、データソースへの問合せとそのコンテンツの再生成に時間を費やす必要がありません。以前にキャッシュされたポートレット・コンテンツが単に戻されます。キャッシュには次のタイプがあります。
有効期限ベースのキャッシュ: ポートレット・コンテンツが静的である場合、またはコンテンツの表示が最新であることが重要でない場合は、有効期限ベースのキャッシュを使用できます。有効期限ベースのキャッシュを使用する場合は、キャッシュ期間を指定する必要があります。
有効化ベースのキャッシュ: 有効化ベースのキャッシュは、頻繁な変更または予測不可能な変更がある動的コンテンツを含むポートレットに使用できます。ポートレットは、コンテンツをキャッシュ・キーに関連付け、そのキーの値をコンテンツとともに戻します。ポートレット・コンテンツがリクエストされると、ポートレットは、キャッシュ・キーに基づいて、現在のコンテンツが有効かどうかを判断します。ポートレット・コンテンツが有効な場合は、キャッシュされたコンテンツを使用できる(つまり、コンテンツが有効である)ことを示すレスポンスを戻します。有効でない場合は、新しいポートレット・コンテンツを生成し、そのコンテンツの新しいキャッシュ・キーとともに戻します。
無効化ベースのキャッシュ: 無効化ベースのキャッシュは、最も複雑ですが、最も柔軟性のあるキャッシュ形式です。このキャッシュは、有効期限ベースのキャッシュの効率性と、キャッシュ・コンテンツを任意の時点で無効化する機能を組み合せたものです。OracleAS Web Cache内のオブジェクトは、明示的に無効化されるまで有効とみなされます。
Webクリッピング、OmniPortletおよびポートレット・ビルダーで構築されたポートレットには、ポートレットがキャッシュされる期間を指定できます(有効期限ベースのキャッシュ)。さらに、WebクリッピングおよびOmniPortletで構築されたポートレットは、エンド・ユーザーがポートレットをパーソナライズすると、自動的にリフレッシュされます。
この項では、ポートレット構築に使用できる開発ツールの種類について説明します。たとえば、OmniPortletはブラウザ・ベースのウィザードで構築され、JavaポートレットはOracle JDeveloperなどのツールで構築されます。
OmniPortlet、Webクリッピングおよびポートレット・ビルダーでは、ブラウザ・ベースのウィザードを開発ツールとして使用します。
Javaポートレットを構築する場合、唯一の要件はPDK-Javaです。ただし、プロフェッショナルな統合開発環境(IDE)であるOracle JDeveloperを使用することをお薦めします。他のIDEも検討できますが、PDKには、Javaポートレット・ウィザードを組み込むOracle JDeveloperプラグインが含まれているため、Javaポートレットの開発作業を最小限にできます。
Javaポートレット・ウィザードでは、JSR168とPDK-Javaの両方のポートレットに対する開始用のスケルトンおよびファイル構造が生成されます。スケルトンに追加する必要があるのは、独自のビジネス・ロジックのみです。また、JDeveloperを使用してアプリケーションをパッケージ化し、OracleAS Containers for J2EE(OC4J)などのJ2EEコンテナにデプロイできます。ポートレット・プロバイダのテストにも使用できます。デプロイする予定のプラットフォームのバージョンと一致する場合は、開発用Javaポートレット・ランタイム環境としてOracle JDeveloperに付属している、統合されたスタンドアロンOC4Jを使用できます。
PL/SQLポートレットの開発時に、OracleAS PortalのPL/SQL APIをコールすることで、OracleAS PortalにアクセスするPL/SQLプログラム・ユニットを作成できます。このアクセスを可能にするには、OracleAS Portalがインストールされているデータベースと同じデータベースにプロバイダのスキーマを作成して、プロバイダおよびポートレットPL/SQLパッケージを格納します。このプロバイダのスキーマには、OracleAS PortalのPL/SQL APIに対する実行権限が付与されている必要があります。
データベース・プロバイダおよびPL/SQLポートレットの開発を容易にするために、PL/SQLジェネレータを使用できます。PL/SQLジェネレータは、データベース・プロバイダとそのPL/SQLポートレットに関するインストール可能なPL/SQLコードを作成する、ホスティング対象のユーティリティです。PL/SQLジェネレータは、プロバイダおよびポートレットの定義をXMLファイル形式で受信するWebアプリケーションです。プロバイダおよびポートレットで使用するXMLタグの構文は、PDK-JavaでWebプロバイダを定義するために使用するXMLタグのサブセットです。PL/SQLジェネレータは、SQL*Plusから実行できるSQLスクリプトを出力します。このスクリプトには、プロバイダ・パッケージおよびポートレット・パッケージをインストールするためのSQLコマンドが含まれています。ホスティング対象のPL/SQLジェネレータは、OTNの「Oracle Application Server Portal Developer Kit」ページ(http://www.oracle.com/technology/products/ias/portal/pdk.html
)で入手できます。
OracleAS Portalでは、図2-5に示すとおり、2種類のポートレット作成スタイルがサポートされています。
この図では、「開発後に追加する」ポートレットの作成は、通常、ポートレット開発者のタスクで、「その場で開発する」ポートレットの作成は、ページ設計者の責任であることを示しています。
OmniPortletおよびWebクリッピングでは、ポートレットの作成に同じアプローチを提供します。最初に、ポータル・ページにポートレットを追加し、次に、そのページのポートレットをその場で定義します。
Javaポートレットでは、その場での開発が提供されない傾向にあります。Javaポートレットには、デフォルトの編集およびパーソナライズを簡単に追加できます。
注意: 広範囲のコーディングによって、その場で開発するJavaポートレットを作成できます。たとえば、WebクリッピングおよびOmniPortletは、ともにJavaポートレットです。 |
ポートレット・ビルダーでは、最初にポートレットを定義します。以前に定義されたポートレットをポートレット・リポジトリで使用できるため、それらのポートレットをページに追加できます。ただし、単純なポートレットの場合は、OmniPortletおよびWebクリッピングと同様に、ポートレット・ビルダーでもその場での開発が提供されます。
注意: ポートレット・ビルダーのその場での開発テクノロジで構築されたポートレットは、ナビゲータを使用して構築されたポートレットに比べいくつか制限があります。 |
Javaポートレットと同様に、PL/SQLポートレットでは通常、「開発後に追加する」作成方法に従います。PL/SQLポートレットをその場で開発するには、広範囲のコーディングが必要です。たとえば、ポートレット・ビルダーで提供されているその場で開発する単純なポートレットは、PL/SQLで作成されています。
この項では、ポートレット構築ツールをユーザー・インタフェースの制御の観点から説明します。
OmniPortletでは、スクロール・ニュース、表、チャートなど、いくつかの異なるビルトイン・レイアウトを使用できます。また、このビルトインのHTMLレイアウトを使用して、HTMLおよびJavaScriptを使用するポートレットのルック・アンド・フィールをパーソナライズすることもできます。
この項では、ポートレット構築ツールを、他のソースからコンテンツを組み込む機能の観点から説明します。
リモートWebサイトのコンテンツを、ソースの位置で表示されているとおりに表示するポートレットを作成する必要がある場合、使用する最適なツールはWebクリッピングです。Webクリッピングでは、ソースHTMLページの変更をある程度許容できます。クリップされた表がソース・ページ内のある場所から別の場所に移動した場合、Webクリッピング・エンジンは、内部の「ファジー・マッチ」アルゴリズムを使用してその表を再度検出できます。Webクリッピングで構築されたポートレットでは、リモートWebサイトへのセッションも管理できます。また、Webクリッピングでは、エンド・ユーザーによるHTMLフォーム値のパーソナライズがサポートされています。
別の使用例は、リモートWebサイトでの表示方法ではなく、データのみに関心がある場合です。取得したデータは処理し(書式設定、フィルタ処理など)、表、チャートまたはニュース形式でポートレットに表示します。この目的には、OmniPortletが最適な選択です。OmniPortletは、WebページのデータをそのWebデータソースを使用して抽出する強力なツールです。
Javaポートレットでは、他のJavaアプリケーションと同様に、下位レベルのJavaネットワークAPIを常に利用して、リモートWebサイトからコンテンツを取得し、処理できます。不必要な開発作業を避けるために、WebクリッピングまたはOmniPortletが実用的な選択肢でないことを必ず確認してから、Javaを選択してください。
PL/SQLポートレットでは、UTL_HTTPパッケージのプロシージャとファンクションを使用して、インターネット上のデータにアクセスするためにWebサービスと通信できます。このパッケージは、SQLおよびPL/SQLからHTTPコールアウトを実行します。また、このパッケージは、HTTPSとも呼ばれるSecure Sockets Layerプロトコル(SSL)上のHTTPを、直接またはHTTPプロキシを介してサポートします。他のインターネット関連のデータ・アクセス・プロトコル(ファイル転送プロトコル(FTP)やGopherなど)も、これらのプロトコルをサポートしているHTTPプロキシ・サーバーを使用することでサポートされます。
ユーザーは、リンクまたはフォームのボタンなど、ポートレット内のアクティブ要素を使用してリモートURLにナビゲートできます。たとえば、ニュース・ポートレットでは、ハイパーリンクをクリックして、関心のあるニュースの詳細情報が表示されているニュース・サイトにナビゲートできます。この場合、ユーザーはポータル・ページを離れます。つまり、ブラウザ内のポータル・ページはニュース・サイトに置き換わります。
ただし、リクエストされたコンテンツを同じポートレット・コンテナ内にレンダリングすることで、ユーザーをポータル・ページのコンテキスト内に留まらせることが必要な場合があります。たとえば、このニュース・ポートレットでは、同じポートレットの境界内のポータル・ページ上に、詳細なニュースを表示する必要があります。
Webクリッピングでは、この機能を実現するためにURLリライティングがサポートされています。URLリライティングでは、ソースWebサイトを起点とするリンクを処理し、そのリンクを変更(リライト)することで、目的の機能を実現できます。
次の3つのオプションから選択できます。
ポートレット内のURLをリライトしないように選択できます。この場合、リンクをクリックすると、ユーザーはPortalを離れ、クリッピングを提供しているWebサイトに移動します。「外部アプリケーション」でWebクリッピング・プロバイダを登録する場合、ユーザーはWebサイトをナビゲートする前にログイン情報の入力が必要なことがあります。
「外部アプリケーション」にWebクリッピング・プロバイダを登録してクリッピングで認証を必須にする場合には、ポートレット内のすべてのURLをリライトして「サーバーにログイン」を指すようにWebクリッピングに指示できます。この場合、ナビゲーションを行うと、ユーザーがOracleAS Portalを離れる一方で、「サーバーにログイン」が使用されてブラウザに「外部アプリケーション」へのログイン画面が表示されます。
インライン・レンダリングを選択すると、ポートレット内のすべてのURLがポータル・ページを指すようにリライトされ、Webクリッピング・ポートレット内でのブラウズはすべてOracleAS Portal内に留まります。「外部アプリケーション」にWebクリッピング・プロバイダを登録すると、Webクリッピング・プロバイダはその外部アプリケーションにログインさせられます。この場合、Webクリッピング・プロバイダを介したPortal内のナビゲーションが、この外部アプリケーションによって認証されます。
OmniPortletでは、URLリライティングは直接提供されませんが、パブリック・ポートレット・パラメータとイベントを使用することで、インライン・レンダリング機能を実現できます。イベントは、OmniPortletが存在しているポータル・ページにマップする必要があります。
Javaポートレット内のリンクとボタンは完全に制御できるため、インライン・レンダリング機能を簡単に実装できます。ページのURLにプライベート・ポートレット・パラメータを追加する必要があります。
ポートレット内でStrutsを使用する場合、コンテンツは、PDK-Struts統合フレームワークによって常に同じポートレット・コンテナにレンダリングされます。
ポートレットが複数のJSPで構成される場合(サーベイ内またはウィザード内の複数のステップなど)、ポートレットでは特別なパラメータを使用して、コンテンツのレンダリングに使用するJSPを実行時に指定できます。
ポートレット・ビルダーで構築されたポートレットでは、固有のインライン・レンダリングはサポートされていません。ただし、SQLベースのレポートおよびチャート内にリンクを構築し、リンクが特定のポータル・ページを指すようにできます。必要に応じて、パラメータをポータル・ページに渡し、ポートレット・パラメータにマップすることもできます。
この項では、ポートレット構築ツールをチャート作成機能の観点から説明します。
OmniPortletでは、棒、折れ線および円の3種類のチャートがサポートされています。OmniPortletのチャートは、動的に生成されるイメージで、必要に応じてイベント対応のハイパーリンクが含まれます。
Javaポートレットでは、Oracle Business Intelligence(BI)Beanを使用して、さらに高度なチャート・ポートレットをプログラムで作成できます。
注意: Oracle ReportsおよびOracle Discovererのポートレットでは、専門的なグラフを作成するためにBI Beanが使用されます。 |
OracleAS Portalには、ページ・パラメータ、パブリック・ポートレット・パラメータおよびプライベート・ポートレット・パラメータの3種類があります。これらのパラメータは次のように説明できます。
ページ・パラメータ: ページ・パラメータは、ページに値を渡すために使用します。ページ・パラメータを使用すると、ページがコールされた場所およびページを表示しているユーザーに応じて、ページに表示される情報を変更できます。また、ページ設計者は、ページ・パラメータを使用して複数のポートレットに同じ値を渡すことでページ上のポートレットを同期化できます。このように、ポートレットとページ・パラメータを組み合せることで、ページ上のポートレットを再利用および調整できる機能が提供されます。この機能がないと、異なるパラメータ値を使用するために、ポートレットを個別にコーディングすることが必要になります。
パブリック・ポートレット・パラメータ: パブリック・ポートレット・パラメータは、ポートレットに値を渡すのに使用します。ポートレット・パラメータを使用すると、ポートレットに表示される情報を、特定のページまたは特定のユーザーに対して固有にできます。ポートレット・パラメータは、ポートレット開発者によって作成され、ユーザー・インタフェースを介してページ設計者に公開されます。ページ設計者は、ポートレットをページに追加した後、パブリック・ポートレット・パラメータに値を割り当てることで、ポートレットに表示される情報をそのページ固有にできます。
ページ設計者は、特定の値(定数)、システム変数(ポータル・ユーザー名など)またはページ・パラメータを指定することで、パブリック・ポートレット・パラメータに値を割り当てることができます。ポートレットは実行時に、指定されたソースから値を受信します。このように、ページ設計者は、パラメータのソースを完全に制御し、開発者は、ポートレットに送信したデータの使用方法を完全に制御できます。
プライベート・ポートレット・パラメータ: プライベート・ポートレット・パラメータを使用すると、ポートレットに内部ナビゲーションを実装できます。ページがリクエストされるたびに、ポートレットにパラメータを渡すことができます。プライベート・ポートレット・パラメータは、同じポートレット・インスタンス内で排他的に渡すことができます。
プライベート・ポートレット・パラメータを使用するために、フル・ページをリフレッシュする必要はありません。ポータル・ページ全体をリフレッシュせずにポートレットのみをリフレッシュするリンクを、ポートレット内に作成できます。これにより、影響を受けるポートレットのコンテンツのみが更新され、ページ内のそれ以外の部分は更新されません。これをプログラム的に設定する方法の詳細は、「ページの部分的なリフレッシュ」を参照してください。
パブリック・ポートレット・パラメータがサポートされているポートレットを使用すると、ページ設計者は、ポートレット・インスタンスごとにポートレットのデータ入力を調整できます。この場合、ポートレット開発者は、ポートレット・ロジックに集中でき、ページ設計者は、ポートレットを簡単に再利用してページとポートレット間の相互作用を処理できます。
この章で説明した5つのポートレット構築テクノロジ(OmniPortlet、Webクリッピング、Javaポートレット、ポートレット・ビルダーおよびPL/SQLポートレット)のすべてが、パブリック・ポートレット・パラメータをサポートしています。OmniPortlet、Webクリッピングおよびポートレット・ビルダーでは、ウィザード・インタフェースを介して完全なサポートが提供されます。Javaポートレットに対しては、プログラムまたはJavaポートレット・ウィザードを使用してパブリック・ポートレット・パラメータのサポートを追加できます。PL/SQLポートレットでは、プログラムでのみパブリック・パラメータがサポートされます。
注意: JSR 168標準では、パブリック・ポートレット・パラメータの概念は提供されません。Javaポートレットでパブリック・ポートレット・パラメータを利用する場合は、PDK-Javaを使用する必要があります。 |
この項では、ポートレット構築ツールをプライベート・パラメータのサポートの観点から説明します。
イベントとは、ポータル・ページを表示するように定義したユーザー・アクションです。ユーザー・アクションには、ポートレット内のリンクまたはボタンに対するクリックが含まれます。ページ設計者は、ページ上のポートレットでイベントが発生したときに実行する内容を指定します。イベントの発生時、ページ設計者は、現在のページを再表示したり、必要に応じてそのページのパラメータに値を渡して、ユーザーを別のポータル・ページにナビゲートすることもできます。
この項では、ポートレット構築ツールを認証機能のサポートの観点から説明します。
WebクリッピングおよびOmniPortletを使用してポータル・ページ上に構築されたポートレットは、セキュリティ・マネージャを使用して表示/非表示を動的に切り替えることができます。WebクリッピングおよびOmniPortletでは、セキュリティ・マネージャはユーザー・インタフェースを介して公開されませんが、XMLプロバイダの定義ファイルを編集することで適用できます。
PDKでは、Javaポートレットに対するセキュリティ・マネージャがいくつか提供されています。次に例を2つ示します。
グループ・セキュリティ・マネージャ: グループ・セキュリティ・マネージャを使用すると、特定のグループのメンバーであるユーザーにポートレットは表示されますが、メンバーでないユーザーには表示されません。
認証レベル・セキュリティ・マネージャ: 認証レベル・セキュリティ・マネージャを使用すると、ユーザーの認証レベルに基づいてポートレットへのアクセスを制御できます。たとえば、ポートレットを、パブリック・ユーザーに対して非表示にし、認証されたユーザーに対して表示します。
JSR 168ポートレットでは、標準のサーブレット・メカニズムがサポートされています。
この項では、ポートレット構築ツールを外部アプリケーションに対する認証の観点から説明します。
Webクリッピングの外部アプリケーション・フレームワークとの統合では、外部Webサイトへのパスワードの保存を完全に自動化するメカニズムが提供されます。実行する必要があるのは、プロバイダ登録時に外部アプリケーションIDをWebクリッピング・プロバイダに関連付ける操作のみです。
OmniPortletでは、データソースがパスワードで保護されている場合、接続情報を保存できます。データソースへのアクセスに対する接続情報は、すべてのユーザーで共有するか、またはユーザーごとに保存できます。OmniPortletでは、データベース接続情報に加え、HTTP Basic認証に使用するユーザー名とパスワードのペアも格納できます。接続情報は、OracleデータベースにあるOmniPortletの保護データ・リポジトリに格納されます。
Javaポートレットは、Oracle Internet DirectoryなどのLDAPサーバーに加え、外部アプリケーション・フレームワークともプログラムで統合できます。
Oracle HTTP Server上の認証モジュールであるmod_ossoを使用して、シングル・サインオンを可能にするPL/SQLポートレットを構築できます。mod_ossoは、パートナ・アプリケーションを統合するために初期のリリースで使用されていたSingle Sign-On SDKの単純な代替モジュールです。mod_ossoを使用すると、Single Sign-On Serverへの単一のパートナ・アプリケーションとして機能することで、認証処理が簡素化されます。
PL/SQLポートレットは、外部アプリケーション・フレームワークとプログラムで統合できます。