これまでOracle Application Server Portal(OracleAS Portal)をご使用の場合、自分のポータルのコンポーネントをWebCenterアプリケーションで利用する方法を理解する上で、この付録が役に立ちます。OracleAS PortalからOracle WebCenter Suiteへは直接移行できませんが、ポータルのコンポーネントの多くは、Oracle WebCenter Frameworkで作成されたWebCenterアプリケーションで公開し、再利用できます。
OracleAS Portalの最も基本的な2つの構築要素は次のとおりです。
アイテムは、ページ内のアイテム・リージョンにあるコンテンツの個々の要素(テキスト、ハイパーリンク、イメージなど)です。適切な権限レベルを持つユーザーが、アイテムをページに追加できます。アイテムのコンテンツとメタデータは、Oracle Application Server Metadata RepositoryのOracleAS Portalスキーマ内に格納されます。アイテムは、アイテム・リージョンに定義されたレイアウト、スタイルおよび属性表示に従って、ページ上にレンダリングされます。
アイテムはコンテンツ・リポジトリに格納されているため、Java Content Repository(JCR)データ・コントロールを使用して取得できます。OracleAS Portalコンテンツ・リポジトリ用のデフォルト・アダプタは、Oracle WebCenter Frameworkに用意されています。詳細は、A.1.2項「アイテムの再利用」を参照してください。
ポートレットは、ポータル・ページの基本的な構築要素です。OracleAS Portalには、プログラムによってポートレットを構築し、任意の種類のWebコンテンツを組み込むための方法も複数用意されています。ポートレットは、Java、JSP、Javaサーブレット、PL/SQL、Perl、ASPなどの様々なテクノロジを使用して実装できます。Portal Developer Kit(PDK)は、OracleAs Portalで提供される規格に基づいた(JSR 168)ポートレット開発オプションに対応しています。Portlet Builderを使用しても独自のポートレットを作成できます。
Oracle WebCenter Frameworkでは、それぞれのプロデューサ(プロバイダともいう)をアプリケーションに登録することにより、ポートレットを使用可能にできます。詳細は、A.1.1項「ポートレットの再利用」を参照してください。
これらの構成要素はそれぞれ、WebCenterアプリケーションでの再利用が可能です。
注意: Oracle WebCenter Frameworkには、現在のところページ・テンプレート機能はありません。ただし、JSPは、そのコンテンツを新規作成したページにコピーし、貼り付けることで再利用できます。 |
WebCenterアプリケーションでのポートレットの再利用に必要なのは、他のプロデューサの場合と同様に、プロデューサ(OracleAS Portalではプロバイダと呼ばれることもある)の登録のみです。WebCenterアプリケーションでのポートレットの使用の詳細は、4.3項「ポートレットの消費」を参照してください。この後の項では、ポートレットの動作がOracleAS Portalと異なる部分について説明します。
デフォルトでは、ポートレットはIFrame内に配置されます。ポートレットをIFrame内に配置すると、ページ上でポートレットが自動的に配置されるようになります。IFrame内では、指定したwindow.location
設定で、期待どおりの結果が得られないことがあります。ポートレットをどのような場合にIFrame内に配置できるかについては、4.3.3.6項「iframesタグおよびformタグ」を参照してください。
Oracle WebCenter Frameworkでは、イベントはサポートされていません。イベントを使用するPDK-Javaポートレットがあり、それらをOracle WebCenter Framework環境にデプロイすると、イベントは無視されます。
Oracle WebCenter Frameworkでは、モバイル・ポートレットはサポートされていません。PDK-Javaモバイル・ポートレットがあっても、それらはOracle WebCenter Framework環境では機能しません。
Oracle WebCenter Frameworkでは、ポートレットでクロムは提供されません。クロムは、ポートレットを使用するアプリケーションが提供します。この動作はWSRP規則に準拠していますが、PDK-Javaでポートレット用のクロムが提供されたOracleAS Portalからの変更点です。したがって、PDK-Javaポートレットのヘッダーは、Oracle WebCenter Framework環境ではフィルタリングによって除去されます。
このフィルタリング・プロセスの一部として、Oracle WebCenter FrameworkではPDK-Javaポートレットのタイトル領域を解析して、そのタイトルを保持し、必要なポートレット・モード・リンクを追加します。フィルタリングのアルゴリズムは、次のとおりです。
ポートレットに複数の表がある場合、タイトル領域は最初の表とみなされます。ポートレットに表が1つしかない場合は、タイトル領域はその表の最初の行とみなされます。
タイトル領域の最初のテキストはタイトルとみなされます。ポートレットに表がないか、タイトルが認識できない場合、タイトルはadfp:portlet
コンポーネントから取得されます。
フラグメント_mode=
parameter
を含むリンクは、ポートレット・モード・リンクとみなされます。これらのリンクは、Oracle WebCenter Frameworkによってポートレット・メニューに移動します。
ポートレット・クロムのヘッダー・セクションの解釈を回避し、元のPDK-Javaヘッダーを再利用する場合は、adfp:portlet
タグのdisplayHeader
属性をfalse
に、ページ定義のeXtensible Markup Language(XML)の関連ポートレット・バインディングでretainPortletHeader
をtrue
に設定します。ページ定義ポートレット・バインディングでretainPortletHeader=true
に設定すると、ポートレット・レスポンスでポートレット・ヘッダーが保持されます。adf:portlet
タグでdisplayHeader=false
に設定すると、アプリケーションのポートレット・クロム用のヘッダーが抑止され、通常はヘッダーに表示されるアイコンやリンクが非表示になります。
ポートレットの作成者やユーザーがOracleAS Portal内のポートレットに適用したポートレットのカスタマイズとパーソナライズは、WebCenterアプリケーションには引き継がれません。WebCenterアプリケーションでは、OracleAS Portalポートレットは新規のインスタンスとして処理されます。したがって、以前のパーソナライズおよびカスタマイズは使用できません。
OracleAS Portalのターゲット・コンシューマを念頭に置いて構築されたポートレットは、ランタイム環境について無効な想定をする傾向があります。たとえば、ポートレットでは、OracleAS Portalリソース(イメージやJavascript関数など)の存在を想定します。Oracle WebCenter Frameworkでは、これらのリソースは使用できません。そのため、ポートレットで必要なリソースをプロデューサにバンドルして、ポートレットが確実にOracle WebCenter Framework環境で正しく実行されるようにします。
OracleAS Portalでの使用のために設計されたポートレットについてのもう1つの一般的な問題は、OracleAS Portal URL書式とOracleAS Portalパラメータの存在を想定するポートレットです。Oracle ADFアプリケーションのページURLは、OracleAS Portalのものとは異なります。したがって、ポートレット開発者は、ページURLについて推測できないので、適切なApplication Programming Interface(API)を使用して、Oracle WebCenter Framework環境での実行のためにPDK-Javaポートレットを準備する必要があります。
パートナ・アプリケーションはサポートされていません。外部アプリケーションはサポートされていますが、NULLログインURLを送信します。ログインURLでラップされたリンク(Oracle Single Sign-Onを介したリンク)は機能しません。
フェデレーテッド・ポータル・アダプタ(FPA)を使用すると、PL/SQLポートレット、ポートレット・ビルダー・ポートレットおよびOracleAS PortalページがWebCenterアプリケーションで見られるようになります。FPAにより使用可能なページの場合、それらがOracleAS Portalでポートレットとして公開されている必要があります。これらのFPAポートレットは、WebCenterアプリケーションでのみ読み取られます。ユーザーは、それらのコンテンツを見ることはできますが、対話することはできません。
ポータルにFPAを実装すると、OracleAS PortalポートレットがPDK-Java Webプロデューサ・プロトコルを介して公開され、それらをPDK-Javaプロデューサとして登録できます。プロデューサをWebCenterアプリケーションに登録すると、ポートレットがコンポーネント・パレットに表示され、他のポートレットと同様に、それらをページにドラッグ・アンド・ドロップできます。FPAがなければ、WebCenterアプリケーションからこれらのプロデューサにはアクセスできません。
FPAプロデューサをOracle WebCenter Frameworkに登録する手順は、次のとおりです。
『Oracle Application Server Portal構成ガイド』の情報に基づいて、OracleAS Portalインスタンス用のFPAを実装します。
FPAを介して公開するOracleAS Portalインスタンス内のページの場合、それらをポートレットとして公開します。
保護されたポートレットの場合は、OracleAS Portalインスタンス内のHMACを構成します。この手順は、『Oracle Application Server Portal構成ガイド』で説明されています。WebCenterアプリケーションの場合、送信ポータルは常に次の場所にあります。
http://www.oracle.com/adapter/portal
Oracle JDeveloperで、FPA URLおよびサービスIDを使用して、プロデューサをPDK-Javaプロデューサとして登録します。
これでプロデューサがコンポーネント・パレットに表示され、そのポートレットをページにドラッグ・アンド・ドロップできます。
FPAを介して公開されるポートレットは、WebCenterアプリケーション内からカスタマイズまたはパーソナライズできないため、「処理」メニューに「カスタマイズ」と「パーソナライズ」が表示されないようにする必要があります。adfp:portlet
タグのisCustomizeModeAvailable
およびisPersonalizeModeAvailable
属性をfalse
に設定することで、これらの項目を「処理」メニューから削除できます。詳細は、4.3.3.2項「adfp:portletタグのアクション属性」を参照してください。
WebCenterアプリケーションのユーザーが、FPAを介して公開されているポートレットやページに対して適切な権限を持っていて、OracleAS Portalインスタンスのユーザーにマップされることを確認します。WebCenterアプリケーション上の人のユーザー名は、OracleAS Portal上の同じ人のユーザー名にマップされます。たとえば、JSMITHは、WebCenterアプリケーションとOracleAS Portalの両方の同じ人物を表します。
ここで、ページを実行します。
Oracle Application Serverリリース2(10.1.2)以前で設計しデプロイしたプロデューサがある場合、次の2つの方法のいずれかでそれを再利用できます。
Oracle Application Serverリリース2(10.1.2.0.2)の中間層で実行中のプロデューサから、ポートレットを使用できます。この場合、プロデューサのコードはリリース2(10.1.2.0.2)上で実行されますが、プロデューサを使用するアプリケーションはリリース3(10.1.3.2)上で実行されます。
プロデューサ・アプリケーションをEARファイルとしてWebCenter Suite上に再デプロイし、他のWebCenterアプリケーション内でそのポートレットを使用できます。この場合、プロデューサのコードと使用側のアプリケーションは、どちらもリリース3(10.1.3.2)上で実行されています。
いずれの場合も、プロデューサのポートレットを正しく動作させるにはいくつかの追加の手順が必要です。OracleAS Portal用に構築されたポートレットでは、ページ・アセンブリ・サーブレット上に特定のボイラープレート・イメージが表示されることが予想され、それらのイメージがない場合、ポートレットは壊れます。これらのイメージは、デフォルトでは、Oracle Application Serverリリース2(10.1.2.0.2)内の中間層サーブレットに含まれていましたが、Oracle WebCenter Frameworkの場合、ポートレットがイメージを見つけられることを手動で確認する必要があります。
WebCenter Suiteでは、OracleAS Portalインスタンスのページ上で実行中のポートレットを使用するために、次のいずれかを実行します。
Oracle Technology NetworkからOracleAS Portalイメージzipファイルを取得し、ADFPサーブレット内で解凍します。
リソース・サーブレットを次のように正しく構成します。
例A-1に示すように、初期化パラメータをWebサーブレットに追加します。
例A-1 Webサーブレット初期化パラメータ
<servlet> <servlet-name>SOAPServlet</servlet-name> <display-name>SOAPServlet</display-name> <description>Extended Portal SOAP Server</description> <servlet-class>oracle.webdb.provider.v2.adapter.SOAPServlet</servlet-class> ... <init-param> <param-name>resourceServletMapping</param-name> <param-value>/pdkresource</param-value> </init-param> </servlet>
例A-2に示すように、リソース・サーブレットのサーブレット定義を追加します。
例A-3に示すように、リソース・サーブレットのサーブレット・マッピングを追加します。
これで、このPDK-Javaプロデューサを他のPDK-Javaプロデューサと同様に登録できます。PDK-Javaプロデューサの登録の詳細は、4.3.1.2項「PDK-Javaポートレット・プロデューサの登録」を参照してください。
PDK-JavaプロデューサをOracleAS Portalから取得し、WebCenter Suiteに再デプロイする場合、リソース・サーブレットを次のように有効にする必要があります。
例A-4に示すように、初期化パラメータをWebサーブレットに追加します。
例A-4 Webサーブレット初期化パラメータ
<servlet> <servlet-name>SOAPServlet</servlet-name> <display-name>SOAPServlet</display-name> <description>Extended Portal SOAP Server</description> <servlet-class>oracle.webdb.provider.v2.adapter.SOAPServlet</servlet-class> ... <init-param> <param-name>resourceServletMapping</param-name> <param-value>/pdkresource</param-value> </init-param> </servlet>
例A-5に示すように、リソース・サーブレットのサーブレット定義を追加します。
例A-6に示すように、リソース・サーブレットのサーブレット・マッピングを追加します。
これで、このPDK-Javaプロデューサを他のPDK-Javaプロデューサと同様に登録できます。PDK-Javaプロデューサの登録の詳細は、4.3.1.2項「PDK-Javaポートレット・プロデューサの登録」を参照してください。
OracleAS Portalのアイテムに相当するものがOracle WebCenter Frameworkにはありません。そのため、アイテムの作成、維持および公開は、Oracle WebCenter Frameworkではサポートされていません。Oracle WebCenter Frameworkでいくつかのアイテムの動作をレプリケートするには、次のいずれかを実行します。
JCRデータ・コントロールを使用して、OracleAS Portalからコンテンツを組み込みます。OracleAS Portalは、Oracle WebCenter Frameworkが最初からOracle JDeveloperのデータ・コントロール・ウィザードでサポートしているコンテンツ・リポジトリの1つです。OracleAS Portalからのコンテンツの統合の詳細は、第5章「コンテンツの統合」を参照してください。
アイテムのようなコンテンツをOracle Content Databaseに格納し、標準のOracle ADFコンポーネント(adf:tree
など)を使用して公開します。詳細は、第5章「コンテンツの統合」を参照してください。