|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
IBM WebSphere Application Server V6.1ポートレット・コンテナーの活用: 第1部. ポートレット・コンテナーの紹介 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Birga Rick, Portlet Runtime Technical Lead, IBM レベル:中級 原文の掲載:2006年 7月5日
はじめにJSR 168 Portlet APIは、ポートレット開発の標準として幅広く認知され、採用されています。JSR 168 Portlet APIをサポートするポートレット・コンテナーは、Plutoなどのオープン・ソース・プロジェクトやWebSphere Portalなどの企業向け製品で、長い間利用されてきました。JSR 168ポートレット・コンテナーはWebSphere Application Server V6.1における不可欠の要素であり、WebSphere PortalおよびWebSphere Application Server (以降Application Serverと表記します)の双方に共通するコンポーネントです。WebSphere Portalはポートレット・コンテナーを活用し、その機能を拡張しています。IBMはポートレット・コンテナーをアプリケーション・サーバーに提供することにより、Webアプリケーション用のサーバー・ユーザー・インターフェース(UI)のポートレット・プログラミング・モデルを推進しています。プログラマーは、任意のApplication Server環境を使用してポートレットを容易に作成できます。これらのポートレットは、WebSphere Portalで再利用可能です。 この記事では、Application ServerのJSR 168ポートレット・コンテナーについて紹介します。まず、コンテナーの機能の概要を示し、次に、最初のポートレットのインストールとアクセス方法を説明します。最後に、Application Serverでのポートレット・コンテナーの基盤の1つである、URLアドレス可能度(URL Addressability)と呼ばれる機能について解説します。また、これらの機能がWebSphere Portalの同様の機能とどのように対応するのかも明らかにします。 この連載記事はさまざまな読者を想定して書かれています。たとえば、Application Serverでポートレット・コンテナーを開発プラットフォームとして使用する予定で、開発用にWebSphere Portalのことをまだ知らない(または必要としない)開発者およびアーキテクトの方などです。また、すでにWebSphere Portalのスキルがあり、コンテナーをアプリケーション・サーバーに組み込むことによって、ポートレット開発がどのように容易になるかを理解したい開発者およびアーキテクトの方も対象としています。
Application Serverポートレット・コンテナーを使用すべき場合Application Serverの新しいポートレット・コンテナーにより、次に示す2つのポートレット・コンテナーを使い分けることができます。
このため、Application Server上で開発したポートレットは、WebSphere Portal上で動作します。この逆は必ずしも真ではなく、Application Serverのポートレット・コンテナーでサポートされていないWebSphere Portalの機能を使用して作成したポートレットは、Application Server上では動作しません。ただし、シームレスに機能を低下させる方法でコードを記述することはできます。 ポートレットはユーザーが直接操作するアプリケーションなので、プラットフォームで提供される機能にアプリケーションの要件が適合する場合は、Application Serverのポートレット・コンテナーを使用することが最適です。Application Serverでは、ユーザーとの接点となるコンポーネントをページ上で1つだけ表示し、多機能の集約を必要としなければ、ほとんどの場合、この方法が用いられます。一方、拡張されたプログラミング・モデルによる多機能の集約が必要な場合は、WebSphere Portalのポートレット・コンテナーを使用します。
サンプル・ポートレットについて世界時計(World Clock)のサンプル・ポートレットをダウンロードし(US)、記事を読み進める際の参考にすることができます。サンプルの詳細については、記事『Converting the WorldClock portlet from the IBM Portlet API to the JSR 168 portlet API』を参照してください(「リソース」参照)。
ポートレット・コンテナーの機能のまとめこのセクションでは、JSR 168ポートレット・コンテナーによって提供される機能を、3つの主なトピックであるアドレス可能度、管理性、および拡張性(より良いアクセシビリティーのため)に分類してまとめます。表1に、これらの説明と関連情報が記載されている連載記事の番号を示します。 表1: ポートレット・コンテナーの主な機能
これで、ポートレット・コンテナーの機能を把握できたので、ポートレット・アプリケーションのインストール方法に進みましょう。
ポートレットのインストールJSR 168 Javaポートレット仕様は、ポートレット・アプリケーション・デプロイメント・パッケージをWebアプリケーションの1つの拡張として定義しています。これはWeb ARchive (WAR)ファイルとしてパッケージ化されているため、ユーザーの観点からは、ポートレットのインストールはサーブレットのインストールと同じことになります。 ポートレットは、管理コンソールまたはwsadminというスクリプト・インターフェースを使用してインストールできます。次のセクションで、world clockポートレットを例に取り、この2つの方法を説明します。 WebSphere管理コンソールの使用
ポートレットをデプロイするときの考慮事項 ポートレット・アプリケーションのWARファイルをデプロイするときは、次の点を考慮する必要があります。
スクリプト・インターフェース(wsadmin)の使用 もう1つの方法として、スクリプト・インターフェースのwsadminを使用してポートレットをインストールできます。
ポートレット・コンテナーとWebSphere Portalの比較 WebSphere Portalでは、WebSphere Portal管理インターフェースまたはXMLAccessというスクリプト・インターフェースを使用して、同様の方法でポートレットをインストールできます。 管理インターフェースは、ポータルのさまざまなエリアに応じて、いくつかのセクションに分割されています。ポートレット・エリアを使用すると、ポートレットのあらゆるアスペクトを管理できます。これには、ポートレットのインストールに使用するManage WebModulesポートレットも含まれます。この機能を使用するには、WebSphere Portalで、「管理」->「ポートレット」->「Webモジュールの管理」を開きます。Application Serverとは異なり、ポータルの管理インターフェースはWARファイルのみ受け入れます。EARファイルは受け入れません。 また、スクリプト・インターフェースのXMLAccessを使用しても、ポートレットをWebSphere Portalにインストールできます。詳細については、「リソース」に掲載した「WebSphere Portal Information Center」を参照してください。XMLAccessを使用すると、デプロイ済みのEARファイルおよびWARファイルをインストールできます。 表2: ポートレットのインストール方法の違い
ポートレットをインストールした後は、ブラウザーを使用してポートレットにアクセスします。この方法は、ポートレットのインストールで非常に単純なURLを使用した例としてすでに説明しました。次のセクションでは、ポートレットのアドレス指定(addressing)について詳しく説明します。編集モードなど、ポートレットの特殊な機能についても取り上げます。
ポートレットへのアクセスとアドレス指定JSR 168 Javaポートレット仕様では、サーブレット仕様にたいへんよく似た、対応するデプロイメント記述子を使用してJava APIが定義されています。サーブレット仕様では、URLマッピングとコンテキスト・ルートを使用してブラウザーからサーブレットにアクセスする方法が定義されています。これによって、ユーザーはサーブレットを表示することができます。 一方、ポートレットは集約された形式で実行され、応答またはビュー全体を消費しないように設計されています。つまり、ポートレットは常に他のポートレットと同じページを共有しています。これが、JSR 168 Javaポートレット仕様にポートレットへの直接アクセス(URLを使用する方法など)が含まれていない理由の1つです。その代わりとして、アクセスはポータル・アプリケーションとその集約フレームワークに任せられます。 Application Serverは、リソースへの簡単かつ直接のアクセスを提供し、迅速な開発を可能にする開発者プラットフォームです。ブラウザー内で直接ポートレットのアドレスを指定する新しい機能が導入されました。この機能をURLアドレス可能度と呼びます。 URLアドレス可能度は、JSR 168 Javaポートレット仕様で定義されたポートレットの概念を拡張し、ポートレットのURLマッピングという概念を追加します。 URLアドレス可能度がどのように機能するのかを詳しく調べるために、上記の例を考えてみましょう。ブラウザーのアドレス・バーに次の行を入力することにより、world clockポートレットにアクセスできます。
これは、ホスト名、ポート、コンテキスト・ルート、およびパスを持つ標準的なURLです。ポートレットはWARファイルにパッケージ化されているため、他のサーブレットのWARファイルと同様のコンテキスト・ルート(この場合は/worldclock)を使用してデプロイしました。URLのパスは、ポートレット・デプロイメント記述子(portlet.xmlファイル)で定義されたポートレット名をベースとしています。この例では、ポートレット名はStdWorldClockです。リスト6に、対応するportlet.xmlの一部を示します。 リスト6. portlet.xmlの一部
これがどのように機能するのかを具体的な例で確認したので、システムにインストールされた各ポートレットにアクセスできる汎用パターンを見ることにします。 次のURLパターンは、ポートレットを表示モードでレンダリングする最も基本的なURLアドレス可能度の定義です。 http://<ホスト>:<ポート>/<コンテキスト・ルート>/<ポートレット名>
WebSphere Portalとの比較 現在、ポートレットのアドレス指定は、WebSphere PortalとApplication Serverの間で大きく異なっています。 WebSphere Portalでは、URLを介してポートレットに直接アクセスすることはできません。最初に、ポートレットをページ上に配置する必要があります。デプロイメント後、ページ・カスタマイザーを使用して、既存のページまたは新規作成したページにポートレットを配置しなければなりません。これにより、Portlet State APIなどのプログラマチックな方法を介して、ポートレットに直接アクセスできるようになります。 Application Serverでは、URLアドレス可能度を使用することで、より簡単にポートレットのアドレスを指定できます。ポートレットは、インストールの直後から利用できます。その反面、集約機能は不足しています。WebSphere Portalでは、ページ・レイアウトの動的変更、詳細なアクセス制御、ルールに基づく集約など、より多くの集約機能をポートレットに適用できます。 表3: ポートレットのアドレス指定の違い
ポートレットのアドレス指定の基本がわかったので、URLアドレス可能度の詳細を見ることにしましょう。異なるポートレット・モードまたはウィンドウ状態でポートレットを呼び出す方法、およびこの状況で、ポートレットのプリファレンスがどこに保存されているのかを説明します。
URLアドレス可能度についてURLアドレス可能度は、既存のHTTPおよびサーブレット機能へのポートレット機能のマッピングと考えられます。ウィンドウ識別子、アクション・フラグ、ポートレット・モード、ウィンドウ状態、およびレンダリング・パラメーターはURLパターンを介して定義されます。ポートレットのプリファレンスは、ブラウザーのCookieにマッピングされます。このセクションでは、この2つを詳細に説明します。 まず、URLアドレス可能度のすべての機能セットを取り上げます。これは、汎用URLパターンです。
ここでは、読者がすでに基本的なアドレス指定(パターンの最初の部分)に習熟しているものとして説明します。
前のセクションでは、表示モードでworld clockポートレットにアクセスする方法を見てきました。 上記で説明した構文に沿ったURLを使用して、編集モードでアクセスしたポートレットを図3に示します。 http://localhost:9080/worldclock/StdWorldClock/window/ver=1.0/mode=edit図3. 編集モードのworld clockポートレット 編集モードでは、ポートレットのプリファレンスを使用してポートレットをパーソナライズすることができます。URLアドレス可能度は、ウィンドウ識別子に基づくスコープを持つCookieにポートレットのプリファレンスを格納するため、Cookieをサポートする任意のHTTPクライアントを使用してプリファレンスを保存できます。プリファレンスCookieの詳細については、「WebSphere Application Server Information Center」を参照してください(「リソース」参照)。 ユーザーが表示モードに戻ると、world clockポートレットは図4のようになります。 図4. ポートレットのプリファレンスを使用した表示モードのworld clockポートレット
まとめ連載の第1部では、Application Serverでのポートレット・コンテナーの概要を簡単に紹介しました。ポートレット・コンテナーで利用できる機能セットをまとめ、各機能がどの記事に記載されているかを示しました。また、ポートレットをインストールする2つの方法と、Application Server内のポートレットにアクセスする方法を説明しました。さらに、WebSphere Portalで同様のタスクを実行する方法にも触れました。最後に、URLアドレス可能度について詳しく解説しました。Application ServerでURLアドレス可能度を使用すると、URLを介してポートレットのアドレス指定ができます。URLアドレス可能度のデモンストレーションによって、たいへん簡単な方法でポートレットをレンダリングおよび開発できることがおわかりいただけたと思います。 第2部では、Application ServerでのJSR 168ポートレット・コンテナーの高度な機能について解説します。複数のポートレットを1つのページ上に集約する方法、過去にデプロイされたポートレットに関する情報を取得する方法、ポートレットのデフォルトの動作を変更する方法などを取り上げます。
ダウンロード
リソース
筆者について(原文のまま)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||