第12章

ポートレットアプリケーションについて

この章では、exteNd Directorポートレットアプリケーションの概要について説明します。この章の節は次のとおりです。

For more informationexteNd Directorプロジェクト全般についての詳細は、exteNd Directorアプリケーションの開発 プロジェクトを操作するに関する章を参照してください。

 
Top of page

ポートレットアプリケーションとは

Java Portlet 1.0は、複数か最低でも1つのポートレット、Webアプリケーション展開記述子(web.xml)、およびポートレット展開記述子(portlet.xml)からなるWebアプリケーションとして、ポートレットアプリケーションを定義します。exteNd Directorによって、次のことを可能にするポートレット展開記述子が追加できます。

For more information詳細については、ポートレットアプリケーション展開記述子を参照してください。

 
Top of section

ポートレットアプリケーションがポータルアプリケーションと通信する方法

ポートレットアプリケーションは、ポータルアプリケーションと連動して動作する必要があります。 ポータルアプリケーションには、次のようにしてポートレットアプリケーションと通信するポータルサービスが組み込まれています。

  1. ポータルサービスが、ポートレットの存在するポートレットアプリケーションへポートレット要求を送信する。

  2. ポートレットは、アクションを処理してダイナミックコンテンツを生成することによって応答する。

  3. ポータルサービスは、ポートレットがポータルページ上に生成したコンテンツを表示する。

    注記:   exteNd Directorは、 「パーソナル」ページ、「共有」ページ、および「コンテナ」ページという複数の種類のポータルページをサポートしています。 詳細については、のポータルページの操作に関する章を参照してください。

ポートレットアプリケーションは、ポータルアプリケーションに対して外部的にも内部的にも実行ができます。ポートレットアプリケーションでexteNd Directorポータルを操作する方法で説明されているように、exteNd Directorは両方の手法をサポートしています。

 
Top of section

パッケージ化要件

ポートレットアプリケーションは、Webアプリケーションアーカイブ(WARs)としてパッケージ化されます。 ポートレットアプリケーションに、Enterprise Java Beans (EJBs)などWARファイルにパッケージ化できない追加のリソースが必要な場合、ポートレットアプリケーションは、EARファイルに収められたそのリソースとともにパッケージ化されます。

 
Top of section

ディレクトリ構造

ポートレットアプリケーション展開記述子で説明されているように、ポートレットアプリケーションはJ2EE Webアプリケーションと同じディレクトリ構造を使用しますが、WEB-INF内に展開記述子を追加する必要があります。

ポートレットクラスとリソースは、WEB-INF/classesの中に、またはWEB-INF/libの中のJARに存在するか、あるいはリソースセットクラスローダで定義された場所(ポートレットアプリケーションのresource.xmlの<libPath>要素で指定)に存在する必要があります。

exteNd Directorでは、ポートレットクラスと展開記述子をexteNd Directorポータルアプリケーションまたはポートレットアプリケーションのリソースセットにローカルに追加して、開発やテストサイクルの間に更新版のダイナミックロードが可能となります。

For more information詳細については、ポートレットのダイナミックロードのサポートを参照してください。

 
Top of page

ポートレットのダイナミックロードのサポート

ポートレットがexteNd Directorポータルアプリケーションのリソースセットに格納されていれば、exteNd Directorは、ポートレットのダイナミックロードをサポートします。 この機能を有効にすると、exteNd Directorは展開されたWARではなくディスクからポートレット変更をダイナミックにロードして、変更された内容を実行時に反映させます。 その結果、プロジェクト全体を再展開することなく修正をテストできるため、ダイナミックロードによって開発は効率的になります。

ダイナミックロードは、exteNd Directorプロジェクトウィザードを使用して新しいポータルアプリケーションEARかWARを作成した際に、デフォルトでExpress Portalプロジェクトで有効になります。

exteNd Directorページフロー設計ツールでページフロー(ポートレットの一種)を作成するか、exteNd Directorポートレットウィザードでポートレットを作成すると、ダイナミックロードはポートレットに対してシームレスに実装されます。 これらのツールは、ポートレットフラグメント展開記述子を自動的に作成し、ポータルアプリケーションのリソースセットの中の適切な場所に、関連するポートレットクラスとともに格納します。

For more informationリソースセットについての詳細は、exteNd Directorアプリケーションのリソースセットの使用に関する章を参照してください。

For more informationポートレット記述子のダイナミックロードについての詳細は、exteNd Director ポートレットフラグメント展開記述子を参照してください。

 
Top of page

ポートレットアプリケーションでexteNd Directorポータルを操作する方法

ポートレットアプリケーションWARは、アプリケーションサーバ上のexteNd Directorポータルに対して外部的にも内部的にも実行ができます。

 
Top of section

exteNd Directorポータルでポートレットアプリケーションを外部的に実行する

ポートレットアプリケーションは、次の場合にはポータルアプリケーションに対して外部的に動作すると考えられます。

For more information詳細については、プロジェクトの共有ライブラリ設定の変更に関する節を参照してください。

 
Top of section

exteNd Directorポータルでポートレットアプリケーションを内部的に実行する

ポートレットアプリケーションは、ポートレットとポートレット展開記述子がポータルWARの中に存在する場合(ポータルWARがEARにパッケージ化されているか独自の自己完結アプリケーションとしてパッケージ化されている)、ポータルに対して内部的に動作すると考えられます。

exteNd Directorでは、ポータルは同一のコンテキスト内のポートレットコンテナと直接通信するため、この手法は性能面でわずかながら効果的となります。

 
Top of page

ポートレットアプリケーションの設定

ポートレットアプリケーションを設定する際は、次の重要な事項を決定する必要があります。

決定

実装

カスタムポートレットを作成して、exteNd Directorポータルアプリケーションで内部的に実行するか。

exteNd Director設計ツールを使用してポートレットを作成し、exteNd Directorポータルアプリケーションに内部的にパッケージ化します。

  • ページフロー設計ツールを使用すると、ページフローと呼ばれる特殊なポートレットをJavaコーディングせずに作成することができます。 Pageflow and Form Guideを参照してください。

  • ポートレットウィザードを使用すると、exteNd DirectorのJava Portlet 1.0拡張機能を利用するJava Portlet 1.0互換ポートレットが作成できます。

これらのツールを使用すると、開発サイクルの間、ポートレットクラスとポートレット展開記述子をダイナミックにロードできます。 ダイナミックロードを使用すると、アプリケーション全体を再展開する必要なしにポートレットの修正をテストできます。

For more information詳細については、ポートレットアプリケーションがexteNd Directorポータルアプリケーション内でローカルに動作するように設定するを参照してください。

exteNd Directorポータルアプリケーションで、既存のJava Portlet 1.0互換ポートレットWARを他のソースから実行するか。

既存のJava Portlet 1.0互換ポートレットアプリケーションは、exteNd Directorポータルアプリケーションに対して外部的に実行できます。

exteNd Directorポートレットアプリケーションウィザードを使用して、既存のポートレットWARがexteNd Directorポータルアプリケーションに対して外部的に実行できるように設定します。

For more information詳細については、exteNd Directorポータルでポートレットアプリケーションを外部的に実行するよう設定するを参照してください。

 
Top of section

exteNd Directorポータルでポートレットアプリケーションを外部的に実行するよう設定する

Procedure ポートレットアプリケーションがスタンドアロンWARとして展開されたとき、外部的に実行するように設定するには、次のようにします。

  1. プロジェクト設定の変更手順の説明に従って、全共有ライブラリ設定を使用するようにアプリケーションサーバを設定します。

  2. exteNd Directorプロジェクトの作成の説明に従って、exteNd DirectorポータルアプリケーションEARプロジェクトまたはWARプロジェクトを作成します。

  3. プロジェクト設定の変更手順の説明に従って、共有ライブラリを使用するようにexteNd Directorポータルアプリケーションプロジェクトを設定します。

  4. exteNd Directorポータルアプリケーションプロジェクトをアプリケーションサーバに展開します。

  5. ポートレットアプリケーションプロジェクトの設定の説明に従って、1つまたは複数のポートレットアプリケーションがexteNd Directorポータルで動作するように設定します。

  6. ポートレットアプリケーションをEARにパッケージ化する場合は、プロジェクトの追加手順に従ってください。

    注記:   Java Portlet 1.0互換ポートレットアプリケーションは、スタンドアロンWARとして展開することもできます。

  7. ポートレットアプリケーションWARまたはEARをアプリケーションサーバに展開します。

Procedure ポートレットアプリケーションがポータルWAR内に展開されたとき、外部的に実行するように設定するには、次のようにします。

  1. exteNd Directorプロジェクトの作成の説明に従って、exteNd DirectorポータルアプリケーションEARプロジェクトを作成します。

  2. exteNd Director開発環境でポータルアプリケーションEARプロジェクトを開いたまま、[ファイル]>[新規]>[プロジェクト]を選択します。

    [新規プロジェクト]ダイアログボックスが表示されます。

  3. [ポートレットアプリケーション]を選択して、[OK]をクリックします。

    [現在のプロジェクトに追加する]ダイアログボックスが表示され、現在開いているEARプロジェクトにポートレットアプリケーションを追加するかどうかを確認します。

  4. [はい]を選択して[次へ]をクリックします。

    pgAddToProject

    [既存のWebアプリケーションWARの選択]ダイアログボックスが表示されます。

  5. この例のように、ポートレットアプリケーションWARへのパスを入力します。

    pgSelectExistingWAR

  6. [完了]をクリックします。

    ポートレットアプリケーションWARは、exteNd Directorポータルで動作するように設定され、EARプロジェクトに追加されます。

  7. ポータルアプリケーションEARをアプリケーションサーバに展開します。

 
Top of section

ポートレットアプリケーションがexteNd Directorポータルアプリケーション内でローカルに動作するように設定する

Procedure exteNd Directorポータルアプリケーション内でポートレットアプリケーションをローカルに実行するには、次のようにします。

  1. exteNd Directorプロジェクトの作成の説明に従って、exteNd Directorプロジェクトウィザードを使用してexteNd DirectorWARプロジェクトまたはEARプロジェクトを作成します。

    注記:   ウィザードによって、ポータル、ポータルランタイム生成物、およびリソースセットが作成されます。 ポートレットアプリケーション展開記述子で説明されているように、ポートレットランタイム生成物には、ポートレット展開記述子のportlet.xmlnovell-portlet.xmlが含まれます。

  2. exteNd DirectorポータルアプリケーションWARまたはEARを開いた状態で、次のexteNd Director設計ツールのいずれかを使用してJava Portlet 1.0互換ポートレットを作成します。

    1. ページフローモデラー

    2. ポートレットウィザード

    注記:   これらのツールはいずれも、各ポートレット用のポートレットフラグメント展開記述子とともに、新しいポートレットをポータルアプリケーションのリソースセットに自動的に追加します。 各フラグメント記述子は、関連するポートレット用のJava Portlet 1.0およびexteNd Director 設定情報の両方を保存します。portlet.xmlとnovell-portlet.xmlの更新は不要です。

  3. プロジェクトの再構築と再展開

 
Top of page

ポートレットアプリケーション展開記述子

exteNd Directorは、ポートレットアプリケーションに対する次の展開記述子をサポートしています。

展開記述子

記述子ファイルのファイル名

コメント

Webアプリケーション展開記述子

web.xml

すべてのWARに必要

For more informationWebアプリケーション展開記述子を参照してください。

Java Portlet 1,0で定義された標準ポートレット展開記述子

portlet.xml

すべてのポートレットアプリケーションWARに必要

For more information標準ポートレット展開記述子を参照してください。

標準ポートレット展開記述子へのexteNd Director拡張機能

novell-portlet.xml

オプション

  • 標準初期設定へexteNd Director追加拡張機能の追加が可能に

  • 初期設定と設定の拡張セットの定義が可能に

  • exteNd Directorポータルで動作するポートレットアプリケーションから使用

  • portlet.xmlの拡張

For more informationexteNd Directorポートレット展開記述子を参照してください。

exteNd Directorポートレットフラグメント展開記述子

ポートレット名.xml

オプション

  • portlet.xmlとnovell-portlet.xmlの仕様を結合

  • 展開中にポートレットのダイナミックロードが可能に

  • exteNd Directorポータルで動作するポートレットアプリケーション内でのみ使用可能

  • ポートレットアプリケーションにリソースセットが含まれることが必要

    注記:   ポートレットアプリケーションウィザードは、既存のポートレットアプリケーションにリソースセットを自動で追加します。

  • 他社のポートレットを起動するポートレットアプリケーションでは使用不可

For more informationexteNd Director ポートレットフラグメント展開記述子を参照してください。

注記:   exteNd Directorプロジェクトウィザードを使用してexteNd DirectorWARプロジェクトやEARプロジェクトを作成する場合、protlet.xmlとnovell-portlet.xmlは自動的にプロジェクトに含まれます。 ポートレットの開発に関する章を参照してください。

 
Top of section

使用する展開記述子を決定する

次の表は、ポートレットアプリケーションにどのポートレット展開記述子を組み込むかを決定するためのガイドラインです。

展開記述子

すべてのポートレットアプリケーションに組み込む

ポートレットをダイナミックにロードするために組み込む

exteNd Director追加初期設定を指定するために組み込む

ポートレットウィザードでポートレットを作成する場合に組み込む

exteNd Directorポータルでのみ動作する

exteNd Directorリソースセットが必要

web.xml

goldBullet






portlet.xml

goldBullet






novell-portlet.xml



goldBullet


goldBullet


ポートレット名.xml


goldBullet

goldBullet

goldBullet

goldBullet

goldBullet

 
Top of section

Webアプリケーション展開記述子

これまでに説明したように、Webアプリケーション展開記述子web.xmlはWARの標準設定を含み、アプリケーションWARの/WEB-INFディレクトリに格納されています。 この記述子は、サーブレット、JSPページ、HTMLページ、Javaクラス、および静的ドキュメントを含むすべての標準Webリソースを指定します。

web.xmlは拡張できないため、ポートレットリソースは、標準ポートレット展開記述子で説明されているように、別のファイルで指定する必要があります。 ただし、次のポートレットアプリケーションプロパティはweb.xml展開記述子で設定できます。

web.xmlで指定するポートレットアプリケーションプロパティ

タグ

ポートレットアプリケーション記述子

<description>

ポートレットアプリケーション名

<display>

ポートレットアプリケーションセキュリティ役割マッピング

<security-role>

 
Top of section

標準ポートレット展開記述子

標準ポートレット展開記述子portlet.xmlは、すべてのポートレットアプリケーションの/WEB-INFディレクトリの中に格納されていることが必要です。 この記述子は、アプリケーション内のすべてのポートレットに対する設定および展開情報を指定します。

For more information標準ポートレット展開記述子についての詳細は、Java Portlet 1.0の仕様を参照してください。 次の場所でスキーマを見ることもできます。

  extend5 install directory\Common\Resources\SchemaCatalog\portlet-app_1_0.xsd

 
Top of section

exteNd Directorポートレット展開記述子

exteNd Directorポータルでポートレットアプリケーションを実行する場合は、オプションでexteNd Directorポートレット展開記述子novell-portlet.xmlをポートレットアプリケーションに含めることができます。 novell-portlet.xmlの仕組みで説明されているように、このオプション記述子は、exteNd Directorポータルによって解釈される設定や追加初期設定を提供し、portlet.xmlを拡張します。

novell-portlet.xmlには、次の種類の情報が含まれています。

novell-portlet.xmlは、portlet.xmlとweb.xmlとともに、ポートレットアプリケーションの/WEB-INFディレクトリの中に格納します。

portlet.xmlでは、すべてのポートレット定義の記述子をアプリケーションに含める必要がありますが、novell-portlet.xmlではそのような制約はありません。 追加設定が必要なポートレット定義のみを含めますが、portlet.xmlで定義されていないポートレットを含めることはできません。

novell-portlet.xmlの仕組み

novell-portlet.xmlスキーマを高レベルで図示します。

novell portlet xml schema

For more information次の場所でnovell-portlet.xmlスキーマが参照できます。

  extend5 install directory\Common\Resources\SchemaCatalog\novell-portlet.xsd

次の表は、アプリケーションの任意のポートレットに対するnovell-portlet.xmlで定義できる要素を示します。

要素

説明

enable-title-bar

ポートレットを表示する際にタイトルバーを付加するかしないかを指定する設定。次のように指定します。

  • 1=有効

  • 0=無効

注記:   supported-optionsで定義したオプションをポートレットウィンドウに表示させたい場合は、この設定を有効化する必要があります。

<portlet name="TextMessagePortlet">
...
  <enable-title-bar>1</enable-title-bar>
...

supported-options

ポータルで定義したオプションのどれをポートレットでサポートするかを指定する設定。

ポータルによって定義されたオプションはすべて、ポータルアプリケーションリソースセットのportal-optionディレクトリに記述されています。

注記:   ポートレットウィンドウにオプションを表示させたい場合は、enable-title-barを設定する必要があります。

For more informationさらに詳しい情報については、のポータルオプションの操作に関する章を参照してください。

<portlet name="TextMessagePortlet">
...
  <supported-option>edit</supported-option>
  <supported-option>help</supported-option>
...

style

ポートレットのスタイルを指定する設定オプション。 1つポートレットにつき1つのスタイル要素が指定できますが、デバイス固有のXSLスタイルシートを指す複数のユーザエージェントをそれぞれのスタイルに組み込む必要があります。

<portlet name="BookmarkPortlet">
...
  <style>
    <name>BookmarkPortletDefault</name>
    <display-name>Default Bookmark Portlet Style</display-name>
    <user-agent>
      <device-name>Generic_HTML</device-name>
      <file-name>$RESOURCE_SET$/portal-style/BookmarkPortlet.xsl</file-name>
    </user-agent>
  </style>
...

preview-image

ポートレットのプレビュー用のイメージを提供する設定オプション

<preview-image>$RESOURCE_URL$/images/PortletPreview.gif</preview-image>

portlet-preferences


portlet.xmlに定義された標準初期設定に対して、設定に関する選択の拡張を可能にする初期設定

<portlet name="TextMessagePortlet">
...
  <\x83 |\x81 [\x83 g\x83 \x8c \x83 b\x83 g\x8f \x89 \x8a \xfa \x90 \xdd \x92 \xe8 >
    <preference name="min-timeout">
      <data-type>Integer</data-type>
      <required>true</required>
      <multi-valued>false</multi-valued>
    </preference>
    <preference name="max-timeout">
      <data-type>Integer</data-type>
      <required>true</required>
      <multi-valued>false</multi-valued>
    </preference>
    <preference name="scrollbar">
      <data-type>Boolean</data-type>
    </preference>
  </portlet-preferences>
...

synchronous

ポートレットを同期で実行するか非同期で実行するかを指定する初期設定

  • 0=非同期

  • 1=同期

デフォルトは非同期(マルチスレッド)実行です。

For more information詳細については、同期対非同期処理に関する節を参照してください。

<portlet name="TextMessagePortlet">
...
  <synchronous>1</synchronous>
...

requires-authentication

認証されたユーザが、ポートレットの実行を要求されるかされないかを指定する設定

  • 0=認証不要

  • 1=認証要

<portlet name="TextMessagePortlet">
...
  <requires-authentication>0</requires-authentication>
...

auto-register

ポートレットを展開時に自動的に登録するかしないかを示す初期設定

  • enabled="false"の場合は、 自動的に登録しない

  • enabled="true"の場合は、 自動的に登録する

以下のポートレットに対しては、auto-registerの有効化をお勧めします。

  • システムポートレット、およびアプリケーションの永久パーツであるポートレット登録

  • 管理者の操作なしに即座にユーザに利用可能となることが要求されるポートレット

たとえば、未設定のバックエンドメールサーバと通信する場合など、ポートレットが実行時にどのように使用されるか分からないときには、auto-registerの無効をお勧めします。

注記:   自動的に登録されたポートレットを削除すると、ポータルはサーバの再起動時にそのポートレットを登録します。

<portlet name="TextMessagePortlet">
...
  <auto-register enabled="true">
    <registration-id>AdminTextMessagePortlet</registration-id>
    <category>General Portlets</category>
    <restrict-list>true</restrict-list>
    <restrict-execute>true</restrict-execute>
  </auto-register>
...

注記:   この例では、AdminTextMessagePortletと呼ばれるTextMessagePortletのインスタンスが、展開時に自動的に登録されGeneral Portletsカテゴリに追加されます。 リスト権限と実行権限は、ポータル管理者のみに制限されます。

max-timeout

ポートレットがコンテンツを返すのをポータルが最大何ミリ秒待つかを指定する設定 ポートレットコンテナはこの値を使用することも無視することもできます。

  • >= 0: タイムアウト設定はなく、要求タイムアウトが優先

  • >0: タイムアウトするまで待つミリ秒数

<portlet name="TextMessagePortlet">
...
  <max-timeout>-1</max-timeout>
...

hidden-from-user

ポータル管理者でない認証ユーザに対してポートレットを選択リスト内に表示するかしないかを指定する設定

  • true=ポータル管理者を除くすべてのユーザから非表示

  • false=認証されたすべてのユーザに表示

<portlet name="TextMessagePortlet">
...
  <hidden-from-user>true</hidden-from-user>
...

 
Top of section

exteNd Director ポートレットフラグメント展開記述子

exteNd Directorポートレットフラグメント展開記述子は、開発サイクルでポートレットのダイナミックロードを可能にします。 ポートレットのダイナミックロードのサポートに説明されているように、ダイナミックロードによって、アプリケーション全体を再展開することなく、ポートレットを更新したり、変更をテストしたりすることが可能になります。

重要:   ポートレットフラグメント展開記述子は、ポートレットアプリケーションがリソースセットを含み、exteNd Directorポータルで動作する場合にのみ使用できます。

ポートレットフラグメント展開記述子は、ポートレットアプリケーション内のリソースセットのportal-portletディレクトリに格納されるXML記述子です。 記述子はそれぞれ、単一のポートレットの初期設定と設定を記述しています。ダイナミックにロードする各ポートレットに対して、1つのポートレット展開記述子を組み込むことが必要です。 ポートレットフラグメント記述子ファイルの名前は、次の規則に従って、記述するポートレットクラスの名前と一致させる必要があります。

  name of portlet class.xml

たとえば、ポートレットクラスTextMessagePortletに対するポートレットフラグメント展開記述子は、TextMessagePortlet.xmlと命名します。

ポートレット展開記述子のコンテンツ

ポートレットフラグメント展開記述子は、特定のポートレットに対するportlet.xmlとnovell-portlet.xmlを組み合わせたものを意味します。 この記述子は、次のような関連するポートレットの設定情報を1箇所に集約します。

For more informationポートレットフラグメント展開記述子スキーマの構造を詳しく見るには、以下を参照してください。

  extend5 install directory\Common\Resources\SchemaCatalog\portlet-fragment.xsd

ポートレットフラグメント展開記述子の自動生成

exteNd Directorページフローモデラーとポートレットウィザードは、作成するページやポートレットそれぞれに対するポートレットフラグメント展開記述子を自動的に生成します。 記述子ファイルはリソースセットの中の適切な場所に自動的に格納され、ダイナミックロードが可能になります。

For more information詳細については、 カスタムポートレットの開発に関する章を参照してください。




Copyright © 2004 Novell, Inc. All rights reserved. Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC. All rights reserved.  more ...