Oracle® Fusion Middleware Oracle WebCenter PortalおよびOracle JDeveloperでのポータルの開発 11gリリース1 (11.1.1.8.3) E49666-03 |
|
前 |
次 |
この章では、WebCenter Portal Frameworkアプリケーションのアーキテクチャ、コンポーネントおよび機能について概説します。
この章の内容は、次のとおりです。
WebCenter Portal Frameworkアプリケーションは、ナビゲーション、ページ、ページ・テンプレート、コンテンツなどのポータル機能を含む標準的なADF Webアプリケーションです。この章では、これらの機能について詳しく説明します。
JDeveloperでは、新しいWebCenter Portal Frameworkアプリケーションの作成が容易になります。ウィザードでは、詳細を説明し、必要なプロジェクト構造およびファイルを使用してワークスペースを作成します。このワークスペース内からポータルを開発、デプロイおよびテストします。
フレームワーク・アプリケーションを作成する基本的な手順と、生成されるプロジェクト構造については、第6章「WebCenter Portal Frameworkアプリケーションの作成」を参照してください。
Oracle WebCenter Portal Frameworkにより、多くのポータル固有の機能がADF Webアプリケーションに追加されます。WebCenter Portal Frameworkアプリケーション・テンプレートを使用して新しいアプリケーションを作成する場合には、これらの機能がデフォルトで備わっています。
この項では、理解しておく必要のあるポータルの主な機能について説明します。
Portal Frameworkアプリケーションで提供される基本機能は次のとおりです。
ページ階層: ページ階層では、ページ間に親子関係を持つツリー構造で編成します。この階層構造により、ページからサブページにセキュリティ設定を簡単に伝播または継承することが可能になります。第5.3.2項「ページ、ページ・テンプレートおよびポータルのページ階層の理解」を参照してください。
ナビゲーション・モデル: ナビゲーション・モデルは、ポータルに表示されるナビゲーション・ユーザー・インタフェースにバックエンド・データを提供します。ナビゲーション・モデルは、ページ、タスク・フロー、外部サイト、ポートレットおよび特定のコンテンツ・アイテムへのナビゲーションを制御する幅広いAPIを備え、柔軟性が非常に高くなっています。第5.3.4項「ナビゲーション・モデルおよびナビゲーション・レジストリの理解」を参照してください。
ナビゲーション・レジストリ: ナビゲーション・レジストリは、ユーザーがリソース・マネージャを使用して、実行時にナビゲーションに追加できる一連の要素を定義します。リソース・マネージャの詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalの管理』のPortal Frameworkアプリケーションのアセットの管理に関する項を参照してください。第10章「ナビゲーション・モデルの開発」も参照してください。
委任管理: 委任管理はユーザー・ロールに基づきポータル・リソースを保護するためのメカニズムを提供します。たとえば、1つのロール(マネージャなど)のユーザーにすべてのポータル機能へのアクセスを許可し、それ以外のロール(従業員など)のユーザーには特定の機能へのアクセスを拒否できます。ページ階層は、委任管理ではプライマリ・コンテナになります。JDeveloperとブラウザベースの両方の環境において、ページ階層に委任管理を適用すると、特定のセキュリティ割当てが階層を通じて自動的にページやサブ・ページに伝播されます。第74章「WebCenter Portal Frameworkアプリケーションの保護」を参照してください。
カスタマイズ: ユーザーは、ポートレットの追加や削除、スキンの変更、ポータルのレイアウトの再配置などにより、独自のポータル・ページをカスタマイズできます。第15章「ページの作成とリソースの追加」を参照してください。
ページ・テンプレート: ページ・テンプレートにより、ページ全体のレイアウトを定義してページに適用し、ポータル全体で一貫したレイアウトを作成できます。詳細は、第5.6項「ポータルのルック・アンド・フィールの開発」を参照してください。『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』のページ・テンプレートの使用に関する項も参照してください。
カタログおよびカタログ・レジストリ: カタログは、タスク・フロー、ポートレット、コンテンツ・アイテム、および実行時にアプリケーションに追加できるその他の要素の任意のコレクションです。第14章「リソース・カタログの開発」を参照してください。
カタログ・レジストリ: カタログ・レジストリは、リソース・カタログに含めることができる一連のアイテムを定義します。第14章「リソース・カタログの開発」を参照してください。
スキン: スキンは、ポータル内のルック・アンド・フィールを整合させるためにアプリケーション・コンポーネントの色、フォント、イメージ、および高さや幅など一部のディメンションの詳細を定義します。第13章「スキンの開発」を参照してください。
ポータル・プリファレンス: デフォルトのナビゲーション・モデル、ページ・テンプレート、その他のコンポーネントなどポータル向けのデフォルト・プリファレンスを変更できます。第5.7項「デフォルトのポータル・プリファレンスの変更」を参照してください。
JDeveloperツールには、ページ階層の作成および変更用エディタ、ナビゲーション・モデル、カタログおよびカタログ・レジストリ、ページ・テンプレート、ページ・スタイル、スキン、委任管理などがあります。さらに、ブラウザベースのツールが提供され、これによりエンド・ユーザーと管理者はこれらの機能の一部を実行できます。第5.10.2項「ブラウザベースのWebCenter Portal管理コンソール」も参照してください。
この項では、Oracle WebCenter Portal Frameworkアプリケーションの3つの関連項目である、ページ、ページ・テンプレートとページ・スタイル、およびページ階層について説明します。
ポータルは1ページ以上で構成されており、ページはポータルの構造や編成において重要な役割を果たします。通常、ページはタスク・フロー、ポートレット、コンテンツなどの1つ以上のエンティティのコンテナです。また一般に、ページにはナビゲーション・ツリー、タブ、ブレッドクラムなどのナビゲーション・インタフェースが含まれます。Portal Frameworkアプリケーションでは、oracle/webcenter/portalapp/pages
フォルダの下にあるポータル・プロジェクトに一連のデフォルト・ページが格納されています(図5-1を参照)。
注意: Portal Frameworkアプリケーションのファイルの編成の詳細は、第5.4項「WebCenter Portal Frameworkアプリケーション・ファイルの編成」を参照してください。 |
注意: ページ階層で使用されるページは、 |
ページ・テンプレートを使用すると、全ページにわたって共通にするビュー要素を指定できます。ページ・テンプレートとは、ADFレイアウト・コンポーネントやその他の要素を含むJSPXファイルのことです。一般に、ページ・テンプレートは、ヘッダー、フッターおよびコンテンツ領域によりページ・レイアウトを定義します。また、ページ・テンプレートでは、通常、ページのナビゲーションUIの配置とスタイルを指定します。たとえば、すべてのページに同じタブのセットを入れる場合や、各ページにツリー・ナビゲーション・パネルとブレッドクラムを表示する場合には、テンプレートにこれらのコンポーネントを追加できます。
ヒント: ページ・テンプレートは、それを使用するページによって参照されます。基礎となるページ・テンプレートを変更すると、そのテンプレートを参照するすべてのページで自動的に変更内容が継承されます。 |
ページ・テンプレート・フォルダは、図5-2に示されているように、oracle/webcenter/portalapp/pagetemplates
にあります。このフォルダには、すぐに使用できるデフォルトのページ・テンプレートが2つ格納されています。
ページ・スタイルは、実行時に作成するページに使用するJSPXページです。ページ・スタイルには、新規作成されたページのレイアウトが示され、ページでサポートされるコンテンツ・タイプも示される場合があります。
ユーザーがページ・スタイルを使用してページを作成する場合、レイアウトと初期コンテンツが、ページ・スタイルから新規作成されたページにコピーされます。ページ・テンプレートとは異なり、ページ・スタイルは参照ベースではありません。つまり、ページ・スタイルを変更しても、その変更は、スタイルを使用するページに継承されません。
ページ・スタイル・ファイルは、oracle/webcenter/portalapp/pageStyles
フォルダ内に格納されています。
ページ階層とは、一連の親子関係によってページを配置する論理的な構造で、ここではどのページでも1ページ以上のサブページを含むことができます。この階層モデルはポータルの構造全体の定義に使用できるだけでなく、子ページにその親に指定されているセキュリティ・ポリシーを継承させることもできます。各階層にセキュリティ・ポリシーを伝播するページの機能は、ページごとにセキュリティを設定する必要がないため、数十ページまたは数百ページもの非常に大型のポータルには特に便利です。新しいページを作成すると、それがページ階層内で格納された場所に基づいて、そのセキュリティ・ポリシーが自動的に設定されます。
ページ階層ファイルは、図5-3に示されているように、oracle/webcenter/portalapp/pagehierarchy
にあります。
注意: ページ階層ファイルは、ページ階層構造を定義するメタデータが含まれるXMLファイルです。これらのファイルを直接編集することはお薦めしません。次に説明するように、ページ階層エディタを使用して、ページ階層の作成や操作を行ってください。 |
基本的なページ階層モデルは、WebCenter Portal Frameworkアプリケーション・テンプレートで作成されたアプリケーションに含まれています。JDeveloperでページ階層エディタを使用してページ階層を変更できます。このエディタにアクセスするには:
図5-3に示すアプリケーション・ナビゲータで、ポータル・プロジェクトを開きます。
pagehierarchy
フォルダを右クリックします。
メニューから「ページ階層の編集」を選択します。
ヒント: ページ階層エディタは、ポータル・ページ・ファイル(JSPXファイル)を右クリックしてメニューから「ページ階層の編集」を選択するか、ページ階層ファイルを直接開いても起動できます。 |
ポータルにページを作成した後、エディタを使用してサイト構造を作成します。アプリケーション・ナビゲータのoracle/webcenter/portalapp
フォルダ内の任意の場所からページ階層エディタにページをドラッグ・アンド・ドロップして(一度に1ページまたは数ページ)、希望する階層に配置できます。
または、階層ペインの上に配置された「追加」ボタンを使用できます。このボタンをクリックすると、プロジェクト内からページを選択できるダイアログがポップアップ表示されます。このページは、図5-4に示されているように、現在エディタで選択されているページの子として追加されます。
エディタでは、ツリー表示内のページ・ノードをドラッグ・アンド・ドロップで簡単に再配置できます。階層が大きい場合には、階層内のページを右クリックして「親ページの変更」を選択し、「親ページの変更」ダイアログを使用すると便利です。このダイアログを使用すると、選択済ページの新しい親を個々のウィンドウから選択でき、大きすぎて一度に表示できない階層内をスクロールする必要がなくなります。
ヒント: ページ階層エディタのノードを右クリックし、「ページに移動」を選択して関連付けられているJSPX(ポータル・ページ)ファイルを開きます。 |
注意: ページ階層内に作成する新しい各レベルには、 |
図5-5に、最上位レベルのページ、「Benefits」(福利厚生)、「Careers」(キャリア)、「Payroll」(給与)および「Location」(場所)を含む単純な人事管理サイトの構造を示します。「Benefits」、「Careers」および「Location」の各ページには、複数の子ページがあります。
ポータルを実行すると、この階層は図5-6に示すように表示されます。この例では、ナビゲーション・バーが表示されるデフォルトのページ・テンプレートが使用されています。このバーは、ページでタブのようなリンクとしてレンダリングされます。このナビゲーションUIは、ページ・テンプレートに追加されたため、そのテンプレートを使用するすべてのページに同様に表示されるようになります。デフォルトのナビゲーション・コンポーネント以外に、ナビゲーション・ツリー、ブレッドクラム、ページ・テンプレートへのナビゲーションUIのその他のスタイルなどを追加できます。多くの場合、テンプレートには2つ以上のナビゲーション・コンポーネントが含まれます。
ページ・テンプレートの詳細は、第5.6項「ポータルのルック・アンド・フィールの開発」を参照してください。デフォルトのナビゲーション・モデルおよびナビゲーション・モデルとユーザー・インタフェースの作成の詳細は、第10章「ナビゲーション・モデルの開発」を参照してください。
ページ階層の詳細は、第74.6.2項「ページ階層の構築」を参照してください。
設計時に、ページ階層エディタでポータルのページにセキュリティを設定できます。前述のとおり、ページ階層ではページ間(親子)の構造的関係が定義されているため、子ページがその親のセキュリティ・ポリシーを継承できます。
注意: ADFページ・セキュリティ・モデルまたは階層構造のWebCenter Portalページ・セキュリティ・モデルで、ページを保護できます。ページのページ階層への追加は、ページが階層セキュリティ・モデルにより保護されることを意味します。第74.6項「ページ階層セキュリティ・エディタの使用」も参照してください。 |
図5-7に示すように、ページ階層エディタにはページに対するロールベースのセキュリティ・ポリシーを指定できる「セキュリティ」セクションがあります。このセキュリティ・インタフェースによって、ポリシーを継承するか委任するかを決定できます。継承を指定すると、そのページのセキュリティ・ポリシーがその親ページから継承されます。セキュリティを委任すると、そのポリシーが親のセキュリティより優先され、セキュリティを継承しているすべての子ページにそのポリシーが伝播されます。
ヒント: 小さな南京錠のアイコンが横に表示されているページは、継承されたセキュリティの設定が上書きされます。つまり、委任されたセキュリティが指定されているページを示す際にこのアイコンが表示されます。 |
たとえば、図5-7では、管理者はページへの完全なアクセス権を持つ一方で、認証されたユーザーはページの表示とパーソナライズのみが可能となるよう、「Payroll」ページが構成されています。匿名ユーザーは、このページにはまったくアクセスできません。第5.3.4項「ナビゲーション・モデルおよびナビゲーション・レジストリの理解」で、ページへのセキュリティ・ポリシーの設定方法に応じて、ナビゲーションUIの表示も影響を受けることについて説明します。この例では、「Payroll」ページを使用できるのが管理者と認証されたユーザーのみであるため、ナビゲーションUIは認証されたユーザーと管理者にのみ「Payroll」ページへのリンクを表示します。その他のすべてのユーザーには、「Payroll」リンクは表示されません。
ナビゲーション・モデルとページ階層を区別することは重要です。最初に、ページ階層では、ページ間の親子関係を指定します。以前に説明したように、ページは1つ以上の子ページを保有できます。次に、ページ階層では、階層を縦断して親ページから子ページ(サブ・ページ)に継承されるセキュリティ・ポリシーを考慮します。ページ階層のみがページ間の関係を指定することに注意してください。タスク・フロー、ポートレットおよび外部リンクなどの他のリソースをページ階層に含めることはできません。
ページ階層では、管理者が大量のページを備えたポータルのセキュリティを容易に制御できるセキュリティ継承モデルが提供されます。たとえば、100ページのポータルの場合、ページ階層のルートにセキュリティ・ポリシーを指定すると、100ページすべてがそのポリシーを継承します。次に、ルートの下のページの設定を変更する場合、変更した設定がそのページのすべてのサブページに伝播します。また、継承された設定を無視して、階層の任意の場所にある個々のページにセキュリティ設定を適用することもできます。
それに対して、ナビゲーション・モデルはナビゲーションの構造を定義し、ナビゲーション・データを記録し、アプリケーションのビュー・レイヤーにそのデータを提供します。ページ階層はページのみで構成されているのに対して、ナビゲーション・モデルはタスク・フロー、ページ、外部リンクなどの多様なリソースで構成できます。
ここで重要なのは、ナビゲーション・モデルが制御する要素(ページ、リンク、タスク・フローなど)に適用されるセキュリティ・ポリシーをナビゲーション・モデルが認識している点です。認証されたユーザーに特定のページを表示する権限がない場合、デフォルトでは、ナビゲーション・モデルはそのページへのナビゲーション・リンクをすべて非表示にします。ポータルで定義されたセキュリティを備えていないリソース(外部リンクなど)には、開発者が手動で表示を制御する必要があります。それを実行する1つの方法として、リソースの表示を制御する(表示/非表示)際に、ページまたはページ・テンプレートにEL式を追加する方法があります。詳細は、第10章「ナビゲーション・モデルの開発」を参照してください。
たとえば、ポータル・ページにナビゲーションUIが含まれる場合、そのUIはナビゲーション・モデルに、ユーザーがどのページまたはその他の要素にナビゲートできるか、ポータルの現在のナビゲーション状態は何かなどについて問い合せます。最初の質問では、UIが表示できるリンクを通知します。2番目の問合せでは、そのリンクの表示方法をUIに通知します。ナビゲーション・ビューがツリーの場合、モデルはUIに現在選択されているページなどを通知します。これにより、ツリーUIは、開いているフォルダ、選択されたページなどとして、そのページを正確に表すノードを表示できます。
JDeveloperでは、ナビゲーション・エディタを使用してナビゲーション・モデルを変更します。エディタを開くには、図5-8に示すように、navigations
フォルダでdefault-navigation-model.xml
ファイルをダブルクリックします。
navigation-registry.xml
ファイルは、ユーザーがナビゲーション・モデルを作成または編集する際にリソース・マネージャで使用します。レジストリは、作成または変更するモデルに含められるすべてのアイテムのスーパーセットを定義します。1つのアプリケーションに対して複数のナビゲーション・モデルを作成できますが、1つのアプリケーションが持つことのできるナビゲーション・レジストリ・ファイルは1つのみです。ナビゲーション・モデル、ナビゲーション・エディタおよびレジストリの詳細は、第10章「ナビゲーション・モデルの開発」を参照してください。
図5-9に示すように、デフォルトのナビゲーション・モデルには、「ページ階層」というノードが含まれています。デフォルトでは、このノードはpagehierarchyフォルダ内のデフォルトのページ階層ファイルpages.xml
を指します。このノードはナビゲーション・モデルにページ階層構造を参照するように指示し、ナビゲーションUIがレンダリングされるようにその構造をナビゲーションUIに伝えます。前述の図5-6に示されているように、デフォルトUIはページ階層をタブのようなリンクで表示します。このモデルが提供する情報により、各リンクにマウス・ポインタを置くとドロップダウン・メニューにサブページのリンクが表示されます。
ナビゲーション・モデルには数種類のナビゲーション要素を含めることができます。これまでの説明のとおり、モデルにはページ階層と単独ページの両方を含めることができます。また、外部Webページや特定のコンテンツへのリンクなど、その他の要素へのナビゲーションも作成できます。
詳細は、第10章「ナビゲーション・モデルの開発」を参照してください。
カタログでは、レイアウト・コンポーネント、タスク・フロー、ポートレット、ドキュメントなど、権限のあるユーザーが実行時に追加できる関連性のない他の要素グループの集まりを指定します。Oracle WebCenter Portalのコンポーザは、実行時にカタログを使用して、権限のあるユーザーがポータル・ページに追加できる要素を判別します。
Portal Frameworkアプリケーション・テンプレートには、デフォルトのリソース・カタログ(default-catalog.xml
)およびカタログ・レジストリ・ファイル(catalog-registry.xml
)が含まれています。これらのファイルは、oracle/webcenter/portalapp/catalogs
にあります。
ユーザーが実行時にコンポーザを使用してページを編集すると、デフォルトのカタログ・ファイルは、ページに追加できるすべてのアイテムを指定します。カタログ・レジストリ・ファイルは、ユーザーがリソース・カタログを作成または編集する際にリソース・マネージャで使用します。レジストリは、作成または変更するカタログに含められるすべてのアイテムのスーパーセットを定義します。
1つのアプリケーションに対して複数のカタログを作成できますが、1つのアプリケーションが持つことのできるカタログ・レジストリ・ファイルは1つのみです。詳細は、第14章「リソース・カタログの開発」を参照してください。
開発時に、リソース・カタログ・エディタを使用して既存のカタログを編集できます。このエディタを開くには、図5-11に示すように、アプリケーション・ナビゲータのcatalogs
フォルダ内にあるカタログ・ファイル(default-catalog.xml
など)を開きます。
新規カタログを作成するには、「ファイル」メニューから「新規」を選択します。「新規ギャラリ」ダイアログで、「すべてのテクノロジ」タブを選択し、さらに「Web層」ノードの下の「ポータル・フレームワーク」を選択します。次に、「リソース・カタログ」を選択して「OK」をクリックします。「アプリケーション・リソース・カタログの作成」ダイアログを使用して、新規カタログを作成します。
ヒント: リソース・カタログ・エディタを使用して、ナビゲーション・レジストリを編集することも可能です。 |
図5-12にリソース・カタログ・エディタを示します。
図5-13に実行時管理ツールのリソース・カタログ・エディタを示します。
たとえば、複数の部署のそれぞれに個別のカタログを作成できます。
ヒント: 個々のカタログ・エントリはユーザーのロールに基づいて表示/非表示にできます。 |
Portal Frameworkアプリケーション・ウィザードを実行すると、大量のプロジェクト・アーティファクトが構成され、プロジェクト・ディレクトリにインストールされます。JDeveloperは、アプリケーション・ナビゲータでプロジェクトの合理化されたビューを提供します。ポータル・プロジェクトは、ファイルシステムで直接確認することもできます。
この項では、Portal Frameworkアプリケーションの編成方法とその理由について説明します。
JDeveloperで新しいPortal Frameworkアプリケーションを作成すると、自動的に大量のファイルがプロジェクトに配置されます。JDeveloperの「アプリケーション・ナビゲータ」ビューに、編成されたこれらのファイルが表示されます。
アプリケーション・ナビゲータを見て最初に気付くのは、Frameworkアプリケーションが2つのプロジェクトで構成されている点です。1つ目は、(デフォルトで)Portalと呼ばれます(図5-14)。この名前は、アプリケーションの作成時やその後いつでも変更できます。プロジェクト内のファイルは、ほとんどが<application_root>/<project_root>/public_html/oracle/webcenter/portalapp
ディレクトリにあります。
2つ目のプロジェクトはPortalWebAssetsと呼ばれます。このプロジェクトには、HTMLファイルやイメージ・ファイルのような静的アプリケーション・リソースが含まれます。静的リソースを個々のプロジェクトに分離することによって、これらのリソースを専用サーバーにデプロイすることが可能となります。詳細は、第6.4項「PortalWebAssetsプロジェクトの理解」を参照してください。
図5-14 アプリケーション・ナビゲータのWebCenter Portal Frameworkアプリケーション
アプリケーション内に保存されているファイル間における次の違いを理解することは重要です。
注意: XMLファイルなどの一部のファイルは |
<application_root>/<project_root>/public_html/oracle/webcenter/portalapp
ディレクトリに格納されたファイルの特徴は次のとおりです。
メタデータ・サービス(MDS)リポジトリにデプロイされます。
ポータル・リソースとして登録でき、実行時にリソース・マネージャで管理できます。
通常、WebCenterの権限を使用して保護されます(ポータル・リソースの場合)。
<application_root>/<project_root>/public_html
の他の場所に格納されたファイルの特徴は次のとおりです。
アプリケーションWARファイルにデプロイされます。
ポータル・リソースとして登録できないため、リソース・マネージャで管理できません。
アーティファクトのネイティブの権限クラスで保護されます。
Portal Frameworkアプリケーションがこのように構造化されているため、自分のページを作成する際に十分な情報を得た上で決定できるということを理解することが重要です。場合によっては、特にJSPXページを使用して、oracle/webcenter/portalapp
でページを作成しないことがあります。それは、アプリケーションでのページの使用目的に応じて変わります。
プロジェクト・ファイルをファイル・システムに配置する最も簡単な方法は、アプリケーション・ナビゲータでファイルまたはフォルダを選択し、「編集」メニューから「パスのコピー」を選択します。この機能では、ファイルやフォルダへのパスがクリップボードに配置されるので、それをコマンド・シェルやファイル・ブラウザに貼り付けられます。
図5-15にサンプルPortal Frameworkアプリケーションのファイルシステムの編成を示します。プロジェクトのファイルの多くは、public_html
フォルダの下に編成されます。
図5-15 ファイルシステム上のWebCenter Portal Frameworkアプリケーションの例
見てわかるように、JDeveloperでは多少異なる、より合理化されたビューが提供されます。詳細は、次の第5.4.3項「JDeveloperでのポータル・プロジェクトの表示」を参照してください。
JDeveloperのプロジェクト・ビューでは、開発者が使用しそうなプロジェクト・ファイルが表示されます。これらのファイルには、ページ、ページ階層、ナビゲーション・モデル、ページ・テンプレート、カタログ、XML構成ファイル、Javaソース・ファイル、イメージなどがあります。
JDeveloperでは、ポータル・プロジェクトは図5-16に示すように、「アプリケーション・ソース」および「Webコンテンツ」の2つのフォルダに編成されます。
「アプリケーション・ソース」フォルダは、主に、ソース・コードおよびページ定義ファイルのリポジトリです。アプリケーションに対して記述するJavaクラスの他に、「アプリケーション・ソース」に含まれる内容は次のとおりです。
oracle.webcenter.portalapp: ページ、ページ・テンプレート、ページ・カタログ、ナビゲーションのXML定義ファイルが格納されています。ページ定義ファイルは、ADFバインディング、ページ・パラメータおよび権限の設定を指定します。たとえば、ページ定義ファイルはページの親および子ページがある場合、それらを指定します。また、ページで許可されている操作などの、セキュリティ・ポリシー情報も指定します。デフォルトのページ定義ファイルは、ポータルのページをページ階層に追加すると、自動的に作成されます。
portal: リソース・バンドル、ソース・コードおよびその他のJavaアーティファクトが含まれます。
META-INF: データ・バインディングとページ・テンプレート・メタデータを指定するファイルが格納されています。
「Webコンテンツ」フォルダには、ページ、ページ階層、ナビゲーション・モデルなどWebプロジェクトを構成するすべてのファイルが格納されています。これらは、Portal Frameworkアプリケーションを開発する際に積極的に作成および変更できるファイルです。
図5-17は、「Webコンテンツ」フォルダの基本的な構造を示しています。作成および変更するファイルの多くは、oracle/webcenter/portalapp
サブ・フォルダに格納されています。フォルダの内容(カタログ、ナビゲーション、ページ階層、ページ、スキンおよびページテンプレート)により、ポータルの基本的なコンポーネントが構成されます。これらのポータル・コンポーネントの詳細は、第5.4.1項「WebCenter Portal Frameworkアプリケーションの編成の理解」を参照してください。
ヒント: アプリケーション・ナビゲータでローカルのファイル・システムの階層を表示するには、「プロジェクト」パネルの「ナビゲータの表示オプション」アイコンをクリックして「ディレクトリでグループ化」を選択します。 |
PortalWebAssetsプロジェクトには、HTMLやイメージ・ファイルのような静的アプリケーション・リソースが含まれます。静的リソースを個々のプロジェクトに分離することによって、これらのリソースを専用サーバーにデプロイすることが可能となります。詳細は、第6.4項「PortalWebAssetsプロジェクトの理解」を参照してください。
デフォルトでは、複数のファイルがアプリケーション・ナビゲータのビューから除外されています。これらのファイルが除外されているのは、ファイルを編集する必要がほとんどないためです。ただし、そのようなファイル編集を行うユース・ケースがいくつかあるため、ファイルをJDeveloper UIに追加しなおせるようにしておく必要があります。
除外されたファイルを配置するには:
プロジェクト・フォルダを右クリックし、メニューから「プロジェクト・プロパティ」を選択します。
「プロジェクト・プロパティ」ダイアログで、「プロジェクトのソース・パス」ノードの「Webアプリケーション」を選択します。
図5-18に示すように、「除外」タブを選択します。
除外リストから要素を選択し、「削除」をクリックして除外リストから削除します。これで、目的の要素がアプリケーション・ナビゲータの該当するフォルダに自動的に追加されます。
例では、navigation-renderer.jspx
ファイルを使用して、ページ・テンプレートに即してリソースをレンダリングします。外部URLをページ内で表示する方法を変更する場合、まず除外リストからnavigation-renderer.jspx
を削除すると、アプリケーション・ナビゲータのpages
フォルダの下にこれが表示されるようになります。次に、そのページを開き、必要に応じて編集します。
ポータルのライフ・サイクルとは、開発からステージング、テストを経て本番サーバーまでのポータルを作成する過程のことです。このライフ・サイクルには、ソフトウェア開発者、コンテンツ・モデラー、コンテンツ・コントリビュータ、IT管理者、ポータル・サイト管理者などの多くの人々が関与します。ポータル・ライフ・サイクルの全ステージの管理の詳細は、第8章「WebCenter Portal Frameworkアプリケーションのライフ・サイクルの理解」を参照してください。
バナー、ナビゲーション、フッターなどコンテンツ領域周りの特定の表示要素を追加して、ルック・アンド・フィールを設計できます。ポータル構造に適したルック・アンド・フィールを決めると、その設定をページ・テンプレートとして保存して、ポータル作成時に使用できます。さらに、同じ設定をポータル内のページ全体で使用できます。ページ・テンプレートとページ・スタイルを使用すると、ポータル内のページがある程度統一できます。第11章「ページ・テンプレートの開発」を参照してください。
ポータルのカスタム・スキンも開発できます。スキンはCSS 3.0構文に基づくスタイルシートで、アプリケーション全体用に1箇所で指定されます。アプリケーションの各コンポーネントに対してスタイルシートを用意したり、各ページにスタイルシートを挿入するのではなく、アプリケーション全体に対して1つのスキンを作成できます。各コンポーネントで自動的に、スキンで記述されているスタイルが使用されます。スキンを使用すると、外観を変更するために、設計時にポータル・ページを変更する必要がなくなります。第13章「スキンの開発」を参照してください。
基本的なルック・アンド・フィールの設計は設計時にJDeveloperで作成できますが、管理者や適切なアクセス権限を持つユーザーはリソース・マネージャを使用して、アプリケーションがデプロイされた後もポータルのルック・アンド・フィールの開発を続行できます。たとえば、リソース・マネージャを使用して、ページの追加と削除、ナビゲーション・ユーザー・インタフェースの追加、ページ・テンプレート、スキンおよびページ・スタイルの変更などを実行できます。これらおよびその他のリソース・マネージャ機能の詳細は、第15章「ページの作成とリソースの追加」を参照してください。
Portal Frameworkアプリケーションには、ポータルの特定のデフォルト・コンポーネントを指定する一連のプリファレンスが用意されています。この項では、そのプリファレンスとデフォルト値の変更方法について説明します。
表5-1に、ポータルのプリファレンスとそのデフォルト構成ファイルを示します。
表5-1 デフォルト・プリファレンス
プリファレンス | デフォルト設定 |
---|---|
ナビゲーション・モデル |
|
リソース・カタログ |
|
ページ・テンプレート |
|
ナビゲーション・レンダラ |
|
スキン |
|
JDeveloperでデフォルトのプリファレンスを変更するには、直接adf-config.xml
ファイルを編集します。このファイルをJDeveloperで見つけるには、アプリケーション・ナビゲータの「アプリケーション・リソース」部分を開きます。次に、図5-19に示すように、「ディスクリプタ」フォルダおよびADF META-INFフォルダを開きます。
たとえば、デフォルトのナビゲーション・モデル・ファイルを変更するには、このプリファレンスの値を編集します。
<portal:preference id="oracle.webcenter.portalapp.navigation.model" desc="Default Navigation Model" value="/oracle/webcenter/portalapp/navigations/default-navigation-model.xml" resourceType="navigation" display="true" />
プリファレンスは、実行時にも、「管理」ページの「構成」タブで変更できます。このページから、ランタイム・アプリケーションのデフォルトのページ・テンプレート、スキン、リソース・カタログおよびナビゲーション・コンポーネントを構成できます。詳細は、Oracle Fusion Middleware Oracle WebCenter Portalの管理Portal Frameworkアプリケーションのデフォルトの構成に関する項を参照してください。
反復開発とは、開発プロセスを促進できる生産性の機能のことです。反復開発では、統合WebLogic ServerでPortal Frameworkアプリケーションを実行しながら、JDeveloperでこのアプリケーションに変更を加えて保存し、ブラウザの現在のページをリフレッシュするだけで、その変更の効果を確認できます。Frameworkアプリケーションでは、反復開発機能はデフォルトで有効になっています。Portal Frameworkアプリケーションでの反復開発機能の有効化については、第2.3.1項「Portal Frameworkアプリケーションでの反復開発の準備」を参照してください。第8.7項「反復開発の理解」も参照してください。
ラウンドトリップ開発とは、メンテナンスや拡張のため、デプロイされた実行時ポータルからJDeveloperにリソースを戻すことができる機能および技法です。JDeveloperでリソースを編集した後、リソース・マネージャを使用して、デプロイされたポータルにリソースをアップロードし直すことができます。WebCenter Portalのラウンドトリップ開発機能は、アプリケーション全体を再度デプロイすることなくポータル・リソースを変更する、簡単で便利な方法を提供します。
JDeveloperには、JDeveloperにおいてテスト目的で統合WebLogic ServerのPortal Frameworkアプリケーションを実行する方法がいくつか用意されています。
Oracle WebCenter Portal Frameworkには、多くの興味深い実行時機能が用意されています。実行時機能とは、ブラウザからアクセスできる機能のことです。
統合WebLogic Serverを開発環境(JDeveloperを介してポータルを実行)で使用する場合、デフォルトでは実行時(リソース・マネージャを使用)のポータルに対する変更は再デプロイメントの際に破棄されます。たとえば、リソース・マネージャを使用してページに対する資格の追加、レイアウトの変更、ナビゲーション・モデルの変更などを実行した場合、その変更はアプリケーションを次に再デプロイしたときに保持されません。リソース・マネージャの詳細は、第15章「ページの作成とリソースの追加」を参照してください。
注意: この項の情報は、開発環境で統合WebLogic Serverとともに実行するポータルに対してのみ適用されます。ポータルを本番環境にデプロイする際には、実行時の変更が破棄されることはありません。 |
注意: JDeveloper環境で作業する開発者の便宜を考慮して、カスタマイズはデフォルトでは保持されません。実行時にファイルを変更すると、新しいバージョンのファイルがMDS書込みディレクトリに書き込まれます。すると、この新規バージョンが、JDeveloper内で最優先バージョンとなります。その時点で、JDeveloperで設定を変更し、ブラウザをリフレッシュしても、変更は表示されません。したがって、JDeveloperで作業する際には、実行時のカスタマイズを保持しない方が便利で自然です。 |
デフォルトの動作を変更し、実行の間に実行時のカスタマイズを保持することは可能です。たとえば、特定のテスト用シナリオを有効にする際に、そのようにできます。アプリケーションのデプロイメント(実行)間にカスタマイズを保持できるようにするには:
「アプリケーション」メニューから、「アプリケーション・プロパティ」を選択します。
「アプリケーション・プロパティ」ダイアログで、「実行」ノードの下の「MDS」を選択します。
「ディレクトリ・コンテンツ」で、「アプリケーションの実行間でカスタマイズを維持」を選択し、デフォルト(各実行前にカスタマイズが破棄される)を無効にします。図5-22を参照してください。
WebCenter Portal Frameworkアプリケーションには、リソース、サービス、セキュリティおよびポータルの構成について作業できるWebCenter Portal管理コンソールが含まれています。WebCenter Portal管理コンソールは、URL (http
://<server
>:<port
>/<context_root
>/admin
)にあり、図5-23に示されています。
ヒント: WebCenter Portal管理コンソールのデフォルトのURLを変更するには、 |
「リソース」タブ(リソース・マネージャ)の詳細は、第5.10.4項「ブラウザベースのツールを使用したポータル・リソースの編集」および第15章「ページの作成とリソースの追加」を参照してください。セキュリティの詳細は、第74章「WebCenter Portal Frameworkアプリケーションの保護」を参照してください。
ロール・ベースのセキュリティ・ポリシーは、ビジターが表示および操作(作成、削除、更新など)できるページ、リソースおよびナビゲーション要素を制御します。設計時(JDeveloper)ページ・エディタでは、第5.3.3項「WebCenter Portal Frameworkページの保護」で説明するように、ページまたはページ階層でこれらのポリシーを設定できます。Oracle WebCenter Portal Frameworkでは、次の方法でこれらのセキュリティ・ポリシーを順守します。
ページ(およびタスク・フローなどその他の特定のリソース)は、表示する権限を持つユーザーのみに表示されます。同じ原理が、権限付与、作成、削除、更新、パーソナライズなど、ユーザーがページ上で実行できる操作に対して保持されます。
リソース(ページ、タスク・フローなど)へのナビゲーションは、認証ユーザーがそのページを使用できない場合、非表示になります。たとえば、「Payroll」ページへのアクセスが許可されていないユーザーの場合、そのページへのリンクはすべてのナビゲーション・ユーザー・インタフェースで表示されません。
リソース・カタログ内で使用できるリソースは、セキュリティ・ポリシーに応じて調整されます。タスク・フローなどの特定のリソースに対するアクセス権を持たないユーザーの場合、そのリソースはリソース・カタログに表示されません。
WebCenter Portal管理コンソールには、次のようなポータル固有の機能を実行時に使用可能にする「リソース」タブが表示されます。
ページ
ページ・テンプレート
ナビゲーション・モデル
リソース・カタログ
スキン
ページ・スタイル
コンテンツ・プレゼンタ表示テンプレート
マッシュアップ・スタイル
データ・コントロール
タスク・フロー
ポータル・ユーザーは、リソース・マネージャを使用して、リソースまたはアプリケーション全体を実行時環境からダウンロードし、JDeveloperで編集して、デプロイ済アプリケーションにアップロードして戻すこともできます。
リソース・マネージャの「ソースの編集」機能により、ランタイム・アプリケーションでリソースのソース・コードを編集できます。たとえば、ポータル・リソース(ページ・テンプレートなど)をアップロードすると、リソース・マネージャで直接それを編集できます。それには、リソースを選択して「編集」メニューから「ソースの編集」を選択します。図5-24に示すように、ソース編集ウィンドウが表示されます。
注意:
|
oracle/portalapp/pages/home.jspx
ファイルは、新しいPortal Frameworkアプリケーションのデフォルトのホーム・ページです。この項では、デフォルトのホーム・ページを別のページ、またはURL、ポートレット、タスク・フローなどのナビゲート可能なリソースに変更する方法を説明します。
デフォルトのPortal Frameworkアプリケーションには、index.html
ファイルがあり、これはポータル・プロジェクト・ディレクトリに格納されています。この索引ファイルには、次のリダイレクト文が記述されています。
<meta http-equiv="refresh" content="0;url=./faces/wcnav_defaultSelection" />
注意:
|
URL要素pages_home
は、ページ階層で指定された"home"ページを参照します。(一意のIDとなるように、接頭辞"pages_
"をフォルダ名に追加します。)図5-25に示すように、「ナビゲーション」ダイアログで「フォルダの内容の挿入」チェック・ボックスが選択されています。「フォルダの内容の挿入」オプションにより、指定されたフォルダ(この場合、"home
")がフォルダの内容に置換されます。したがって、この例では、ポータルはページ階層内の"home
"というフォルダを検索します。また、ページ階層はナビゲーション・モデルでは要素として指定されます。
デフォルトのポータル・ホーム・ページの指定方法を理解できるよう、ナビゲーション・モデルではデフォルトでpages
というデフォルト・ノードが作成されます。このノードのナビゲーション・パスは、図5-25に示すように、ページ階層ファイルのpages.xml
を指しています。
pages.xml
へのナビゲートの際、home
というノードが検索されます。そのノードのパスは、図5-26に示すように、/oracle/webcenter/portalapp/pages/home.jspx
です。
デフォルトのホーム・ページを変更するには、index.html
のリダイレクト文をナビゲーション・モデルで参照される別のリソースのプリティURLに変更します。たとえば、新しいホーム・ページを作成してそれを共通のユース・ケースにリダイレクトするとします。新しいホーム・ページを自分のホーム・ページに指定するには、index.htm
l
のリダイレクトを新しいページのプリティURLに変更します。(ページのリンク要素を作成するには、ナビゲーション・モデルで新しいページをドラッグします。)たとえば、ナビゲーション・モデルのリンクIDがTheHomePage
の場合には、次のようにします。
<meta http-equiv="refresh" content="0;url=./faces/wcnav_defaultSelection" />
ここで、.faces/wcnav_defaultSelection
はプリティURLであり、これはナビゲーション・モデルで定義したリンク要素を指します。
この例では、ブラウザでのポータルへのアクセスは次のURLを使用します。
http://myserver:myport/MyPortalApp-Portal-context-root
図5-28に示すように、このポータルでは新しいホーム・ページからのコンテンツが記載されたホーム・ページがレンダリングされています。
統合Weblogic Serverのインスタンスのデフォルト索引ページは、index.html
です。新しいポータル・プロジェクトには、Web Content
フォルダにデフォルトでこのファイルが含まれています。
デフォルト索引ファイルのindex.html
を別のファイルに変更する場合、2つの選択肢があります。このデフォルト索引ファイルを変更する1つの方法では、次のようにweb.xml
ファイルの<welcome-file-list>
要素を編集します。
<welcome-file-list> <welcome-file>/index.html</welcome-file> </welcome-file-list>
あるいは、「実行構成の編集」の「デフォルト」ダイアログ・ボックスを使用してデフォルトの索引ページを変更する方法もあります。このダイアログにアクセスするには、プロジェクトのプロパティ・ダイアログを開き、「実行/デバッグ/プロファイル」オプションを選択します。「編集」をクリックして、図5-29に示すように、デフォルトの索引ページを変更できる、「実行構成の編集」の「デフォルト」ダイアログを表示します。
ログインまたはログアウト後にターゲット・ページを指定するには、例5-1に示すように、ポータル・プロジェクトのWebContent/WEB-INF/faces-config.xml
構成ファイルで<navigation-rule>
要素を編集します。ターゲット・ページを別のナビゲーション・リソースのプリティURLまたはFacesページに変更できます。
例5-1 ログインおよびログアウトに対するターゲット・ページの指定
<navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>login_success</from-outcome> <to-view-id>/pages_home</to-view-id> <redirect/> </navigation-case> <navigation-case> <from-outcome>logout_success</from-outcome> <to-view-id>/pages_home</to-view-id> <redirect/> </navigation-case> </navigation-rule>
たとえば、ログアウト後のページにユーザーをリダイレクトするには、次の手順に従います。
ログアウト後のページを作成して、それにコンテンツを追加します。例:
/oracle/webcenter/portalapp/pages/postlogout.jspx
faces-config.xml
のナビゲーション・ルールを変更します。例:
<navigation-case> <from-outcome>logout_success</from-outcome> <to-view-id>/oracle/webcenter/portalapp/pages/postlogout.jspx</to-view-id> <redirect/> </navigation-case>
正常なログアウト後に、ユーザーは指定されたページにリダイレクトされます。
この項では、Portal Frameworkアプリケーションの開発に関係する基本的なタスクの一部を示します。
ソース・コントロール、共通データベースおよび共通コンテンツ・リポジトリを使用して、統合チーム開発環境を設定します。
WebCenter Portal Frameworkアプリケーション・テンプレートを使用して、Portal Frameworkアプリケーションを作成します。
ポータルを構成する最上位ページおよびサブ・ページの概要を作成して、ポータルの構造全体を設計します。
ポータルのセキュリティを考慮します。ユーザーにアクセスを許可するページを決定します。これらの決定に対応する適切なロールを作成します。
ポータル全体のルック・アンド・フィールについての検討を開始し、ページ・テンプレートで作業を開始します。
ポータルに含めるWebCenter Portalの機能を検討します。たとえば、Wiki、ブログ、アクティビティ・ストリームなどを追加するかどうかを検討します第4.1項「WebCenter Portalのツールとサービスの理解」を参照してください。
ポータル全体の構造に基づいてページを作成します。この時点ではページは空白ですが、ページを作成するとページ階層を作成できるようになります。
ページ階層エディタを使用して、ページ階層を作成します。
ナビゲーション・モデルを作成します。ユーザーがナビゲートできるリソースの種類を検討します。たとえば、ページ、外部URL、タスク・フロー、コンテンツ・フォルダなどについて検討します。
ナビゲーションUIをページ・テンプレートに追加します。Oracle WebCenter Portal Frameworkでは、ナビゲーションUIの複数のオプションが用意されています。最も一般的に使用されるオプションは、ページ・テンプレートで直接ELを使用するというものです。また、WebCenterにはナビゲーション・タスク・フローおよびナビゲーション用Java APIが用意されています。
ページ階層にセキュリティ・ポリシーを適用します。階層のルート・ノードにポリシーを適用して開始します。これらのポリシーは、階層内のすべてのページに継承されます。次に、個々のページまたは階層全体のサブブランチでセキュリティ設定を調整します。
ページ自体に対し、ポートレット、タスク・フロー、コンテンツ、その他の機能の追加および構成を行います。