BEA ホーム | 製品 | デベロッパ・センタ | support | askBEA
 ドキュメントのダウンロード   サイト マップ   用語集 
検索

開発者ガイド

 前 次 目次 索引 PDFで表示  

パーソナライゼーションおよび対話管理のセットアップ

WebLogic Portal には、堅牢な認証機能とパーソナライゼーション機能が用意されており、それを利用することで、管理者は、どのようなコンテンツを訪問者が操作できるか、そしてその情報が特定の訪問者にどう表示されるかを決定することができます。また、訪問者が自ら WebLogic Portal のパーソナライゼーション機能を利用して、自分専用のコンテンツを選択したり、独自のルック アンド フィール(見た目と使い心地)を作成することもできます。Advisor、ルール フレームワーク、コンテンツ セレクタなどのツールを用いて、そうした認可とパーソナライゼーションを実現するリソースを作成することが、ポータル開発プロセスの主要な要素になります。

この章では、以下の内容について説明します。

 


Advisor を用いたポータル アプリケーションのパーソナライズ

WebLogic Portal Advisor は、パーソナライズされたコンテンツ、ユーザのセグメント化、および基礎となるルール エンジンといったパーソナライゼーション サービスを利用するための、使いやすく柔軟性に富んだアクセス ポイントです。Advisor は、一連のルールとユーザ プロファイル情報に基づいて、パーソナライズされたアプリケーションにコンテンツを配信します。 また、ドキュメント管理システムから任意のタイプのコンテンツを取得し、JSP 内に表示することができます。

Advisor は、システム内のサービスとコンポーネントをすべて連携させ、パーソナライズされたコンテンツを配信します。Advisor コンポーネントとしては、WebLogic Portal の以下の中核的パーソナライゼーション サービスにアクセスする JSP タグ ライブラリと Advisor EJB(ステートレス セッション Bean)があります。

このタグ ライブラリとセッション Bean には、これらのサービスにアクセスしたり、パーソナライゼーション アクションの実行順序を決定したり、パーソナライズされたコンテンツをアプリケーションに返すためのパーソナライゼーション ロジックが組み込まれています。 また、独自の Advisor プラグインを作成し、独自に作成した JSP タグを使ってそれらにアクセスすることも可能です。

このアーキテクチャによって、JSP 開発者は Advisor JSP タグを使ってパーソナライゼーション サービスを利用できるようになります。 さらに Java 開発者は、Advisor Bean の公開インタフェースを通じて、基礎となる WebLogic Portal のパーソナライゼーション機能にアクセスすることができます。詳細については、『WebLogic Portal Javadoc API マニュアル 』を参照してください。

Advisorの使い方は以下の 2 通りあります。

Advisor JSP タグを用いて、パーソナライズされたポータル アプリケーションを作成する

Advisorには、パーソナライズされたアプリケーションを開発者が作成するのに役立つ JSP タグが 3 つ用意されています。表12-1 ではそれらについて説明します。これらのタグを用いれば、JSP から Advisor セッション Bean を利用することができ、開発者は Java ソース コードを書かなくても、パーソナライズされたデータを取得するページを作成できるようになります。

表12-1 Advisor JSP タグ

タグ

解説

<pz:div>

ユーザから提供されるコンテンツの有効/無効を、分類ルールの実行結果に基づいて切り替える。分類ルールの結果が true の場合にはコンテンツが有効になり、false の場合にはコンテンツが無効になる。
**システムでは、<pz:div> の開始タグと終了タグで囲まれたコンテンツを JSP コード内に挿入することで、コンテンツを有効にする。このコンテンツには、HTML タグ、他の JSP タグ、スクリプトレットなど、有効なあらゆる JSP コンテンツを組み込むことができる。分類ルールが false を返す場合には、システムは <pz:div> の開始タグと終了タグで囲まれたコンテンツを無視する。

<pz:contentQuery>

コンテンツ管理システム内のコンテンツを、コンテンツ属性に基づいて検索する。このタグは、開発者がさまざまな方法で扱える Content オブジェクトの配列を返す。

<pz:contentSelector>

コンテンツ セレクタ ルールの分類部にユーザが一致すれば、推奨コンテンツを返す。ユーザが条件に一致すると、パーソナライゼーション エンジンはルールに定義されているコンテンツ クエリを実行し、得られたコンテンツを JSP ページに返す。


 

パーソナライズされたアプリケーションを作成する手段としては、JSP タグを用いるだけでなく、Advisor Bean を直接扱うこともできます。Advisor Bean の使い方の詳細については、 Advisor セッション Bean を用いて、パーソナライズされたアプリケーションを作成するを参照してください。

<pz:div> JSP タグでユーザを分類する

<pz:div> タグは、ユーザから提供されるコンテンツの有効/無効を、分類ルールの実行結果に基づいて切り替えます。分類ルールの結果が true の場合にはコンテンツが有効になり、false の場合にはコンテンツが無効になります。

注意: ルールは、E-Business Control Center で作成します。E-Business Control Center を利用すれば、ユーザは独自の分類ルールを作成することができます。 ユーザがルールの概念を知る機会はないため、E-Business Control Center では、分類ルールは「顧客セグメント」と呼ばれます。

リスト 12-1 では、<pz:div> タグを用いて PremierCustomer という分類ルールを実行する方法を示すとともに、主要顧客へのお知らせを HTML ページの出力に表示します。

コード リスト 12-1 <pz:dev> による分類ルールの実行

<%@ taglib URI="pz.tld" prefix="pz" %>
.
.
.
<pz:div
rule="PremierCustomer">
<p>Please check out our new Premier Customer bonus program…</p>
</pz:div>

<pz:contentQuery> JSP タグを用いてコンテンツを選択する

<pz:contentQuery> タグを用いれば、コンテンツ管理システム内のコンテンツを、コンテンツ属性に基づいて検索することができます。このタグは、開発者がさまざまな方法で扱える Content オブジェクトの配列を返します。

リスト 12-2 に示すのは、コンテンツ管理システムに対してクエリを実行して、author 属性が「Hemingway」であるコンテンツをすべて検索したあと、見つかった Document のタイトルを表示する方法の例です。

コード リスト 12-2 CMS に対してクエリを実行して指定のコンテンツを見つける方法

<%@ page import="com.bea.p13n.content.ContentHelper"%> 
<%@ taglib URI="pz.tld" prefix="pz" %>
.
.
.
<pz:contentQuery id="docs" contentHome="<%=ContentHelper.DEF_DOCUMENT_MANAGER_HOME %>" query="author = 'Hemingway'" />
<ul>
<es:forEachInArray array="<%=docs%>" id="aDoc"
type="com.bea.p13n.content.Content">
<li>The document title is: <cm:printProperty id="aDoc"
name="Title" encode="html" />
</es:forEachInArray>
</ul>

<pz:contentSelector> JSP タグを用いてコンテンツをユーザに合わせる

<pz:contentSelector> タグは、コンテンツ セレクタ ルールの分類部にユーザが一致すれば、推奨コンテンツを返します。ルールの条件にユーザが一致すると、 Advisor はそのルールに定義されているクエリを実行して、コンテンツを検索します。

リスト 12-3 に示す例では、主要顧客向けのコンテンツを Advisor に要求したあと、その結果としてドキュメント (Document) のタイトルを表示します。

コード リスト 12-3 Advisor に特定顧客向けのコンテンツを要求する方法

<%@ page import="com.bea.p13n.content.ContentHelper" %>
<%@ taglib URI="cm.tld" prefix="cm" %>
<%@ taglib URI="pz.tld" prefix="pz" %>
<%@ taglib URI="es.tld" prefix="es" %>
.
.
.
<pz:contentSelector id="docs"
rule="PremierCustomerSpotlight"
contentHome="<%=ContentHelper.DEF_DOCUMENT_MANAGER_HOME %>" />
<ul>
<es:forEachInArray array="<%=docs%>" id="aDoc"
type="com.bea.p13n.content.Content">
<li>The document title is: <cm:printProperty id="aDoc"
name="Title" encode="html" />
</es:forEachInArray>
</ul>

Advisor セッション Bean を用いて、パーソナライズされたアプリケーションを作成する

Java 開発者は、一連の API を通じて Advisor Bean を直接操作して、パーソナライズされたアプリケーションを作成することができます。この方法は、JSP タグを用いて Advisor Bean を呼び出す方法の代わりとなるものです。

注意: このセッション Bean を用いてパーソナライズされたアプリケーションを作成する方法の詳細については、『WebLogic Portal Javadoc』を参照してください。

以下の手順は、アプリケーションで推奨コンテンツを Advisor から得る際に行われるプロセスの概要を示します。

  1. Advisor セッション Bean のインスタンスをルックアップします。

  2. AdvisorFactory の static メソッド createAdviceRequest を用いて AdviceRequest オブジェクトを作成します。

    注意: このメソッドには、リクエストを表現する URI を渡す必要があります。 Advisor では、その URI の接頭辞を用いて、どのアドバイズレットを呼び出すかを決定します。

  3. AdviceRequest オブジェクトの必須属性と省略可能な属性を設定します。

  4. Advisor の getAdvice メソッドを呼び出します。

    Advisor は最適なアドバイズレットを呼び出して、コンテンツに関するアドバイスを行います。そのアドバイズレットが推奨コンテンツを決定すると、その結果生成される Advice オブジェクトを Advisor がアプリケーションに返します。

    Advisor では、アドバイズレット レジストリを用いて、呼び出すべきアドバイズレットを選択します。

  5. パーソナライズされたアプリケーションは、Advice オブジェクトから推奨 コンテンツを取り出して、アプリケーションで使用します。

パーソナライズされたアプリケーションから Advisor にアドバイスを要求すると、Advisor Bean は、そのリクエストを処理できる登録済みアドバイズレットにそのリクエストを委託します。 Advisor では、その URI 接頭辞を用いて、アドバイス リクエストを受信する登録済みアドバイズレットを決定します。選ばれたアドバイズレットはアドバイスを行い、Advice オブジェクトを Advisor に返します。 この設計では、アドバイスに関するロジックがすべてアドバイズレットにカプセル化されているので、開発者は、より特化した目的に合うカスタム アドバイズレットを作成することができます。

属性オブジェクトはリクエストのパラメータの役目を果たします。 属性オブジェクトは AdviceRequest オブジェクトに対して設定することができ、属性の名前を表す String オブジェクトに関連付けられます。

システムには、Classifier、ContentQuery、および ContentSelector の 3 つのアドバイズレットが用意されています。 用意されているアドバイズレットに設定しなければならない属性の名前は、AdviceRequestConstants インタフェースに static String として定義されています。

アドバイス リクエストをアドバイズレットにマップする方法を決定するのに Advisor で用いられるロジックを表12-2 に示します。


 

表12-2 アドバイス リクエストからアドバイズレットへのマッピング

URI 接頭辞

対応するアドバイズレット

classifier

E-Business Control Center の顧客セグメント ツールを用いて作成されたルールを基に、ルールベース推論エンジンを用いてユーザを分類する。

contentselector

contentquery

指定されたコンテンツ管理システム上で、コンテンツ属性検索を実行する。


 

以下の各節では、Advisor に直接アクセスして、JSP タグに用意されているのと同じ機能を実現する方法を示します。

Advisor セッション Bean を用いてユーザを分類する

分類に関する要求が JSP タグで対応できる範囲を越えている場合や、分類をサーブレットで用いる場合には、Advisor EJB を直接使用します。

Advisor に分類を要求するには、以下の手順に従います(API の詳細については、『Javadoc API マニュアル』を参照してください)。

注意: 特に断らないかぎり、ここで用いられるクラスはすべて、com.bea.p13n.advisor パッケージに入っています。

  1. Advisor セッション Bean のインスタンスをルックアップし作成します。EJB Advisor ホーム インタフェースに定義されている EJB_REF_NAME 定数を、Advisor EJB ホームの JNDI 名として使ってもかまいません。

  2. AdvisorFactory の static メソッド createAdviceRequest を用いて AdviceRequest オブジェクトを作成します。 この場合には、URI 引数は “classifier://” にします。

  3. AdviceRequest オブジェクトの必須属性を設定します (AdviceRequestConstants を参照)。 それらの属性は以下のとおりです。

  4. 新たに作成した AdviceRequest を指定して、Advisor の getAdvice メソッ ドを呼び出します。

  5. Advisor から Advice のインスタンスが返されます。getResult メソッドを呼び出して、分類オブジェクトを取得します。分類オブジェクトが返された場合には、 その分類は true とみなされます。戻り値が null の場合には、その分類は false とみなされます。

注意: AdviceRequest の省略可能パラメータ RULES_RULENAME_TO_FIRE を省略した場合には、そのユーザに関して複数の分類が返されることがあります。

Advisor セッション Bean を用いてコンテンツ管理システムにクエリを発行する

コンテンツ選択に関する要求が JSP タグで対応できる範囲を越えている場合や、コンテンツ選択をサーブレットで用いる場合には、開発者は Advisor EJB を直接使用することができます。

Advisor にコンテンツを要求するには、以下の手順に従います(API の詳細については、『Javadoc API マニュアル』を参照してください)。

注意: 特に断らないかぎり、ここで用いられるクラスはすべて、 com.bea.p13n.advisor パッケージに入っています。

  1. Advisor セッション Bean のインスタンスをルックアップし作成します。EJB Advisor ホーム インタフェースに定義されている EJB_REF_NAME 定数を、Advisor EJB ホームの JNDI 名として使ってもかまいません。

  2. AdvisorFactory の static メソッド createAdviceRequest を用いて AdviceRequest オブジェクトを作成します。 この場合には、URI 引数は “contentquery://” にします。

  3. AdviceRequest オブジェクトの必須属性を設定します (AdviceRequestConstants を参照)。 それらの属性は以下のとおりです。

  4. 新たに作成した AdviceRequest を指定して、Advisor の getAdvise メソッ ドを呼び出します。

  5. Advisor から Advice のインスタンスが返されます。getResult メソッドを呼び出して、コンテンツ クエリの結果を表す Content オブジェクトの配列を取得します。

Advisor セッション Bean を用いてコンテンツをユーザに合わせる

コンテンツ選択に関する要求が JSP タグで対応できる範囲を越えている場合や、コンテンツ選択をサーブレットで用いる場合には、開発者は Advisor EJB を直接使用することができます。

Advisor にコンテンツを要求するには、以下の手順に従います(API の詳細については、『Javadoc API マニュアル』を参照してください)。

注意: 特に断らないかぎり、ここで用いられるクラスはすべて、 com.bea.p13n.advisor パッケージに入っています。

  1. Advisor セッション Bean のインスタンスをルックアップし作成します。EJB Advisor ホーム インタフェースに定義されている EJB_REF_NAME 定数を、Advisor EJB ホームの JNDI 名として使ってもかまいません。

  2. AdvisorFactory の static メソッド createAdviceRequest を用いて AdviceRequest オブジェクトを作成します。 この場合には、URI 引数は “contentselector://” にします。

  3. AdviceRequest オブジェクトの必須属性を設定します (AdviceRequestConstants を参照)。 それらの属性は以下のとおりです。

  4. 新たに作成した AdviceRequest を指定して、Advisor の getAdvise メソッ ドを呼び出します。

  5. Advisor から Advice のインスタンスが返されます。getResult メソッドを呼び 出して、推奨コンテンツを表す Content オブジェクトの配列を取得します。

 


ルール フレームワークの取り扱い

ルール管理は、ビジネス ルールを表現するための柔軟かつ強力なメカニズムを規定することで、パーソナライゼーション プロセスの主要な部分となります。これらのルールに組み込まれているビジネス ロジックのおかげで、それぞれのエンド ユーザ タイプ向けのパーソナライズされたコンテンツを確実に配信することが可能になります。

ルール フレームワークのさまざまなコンポーネントのコンフィグレーションは、rules.properties という外部コンフィグレーション ファイルを用いて行います。 このファイルは、どの WebLogic Portal アプリケーションでも、そのルート ディレクトリ内の p13n_util.jar ファイル(com/bea/p13n/rules ディレクトリ内)に入っています。この節では、このファイルで設定できる各コンフィグレーション プロパティについて説明します。

rules.properties ファイルへの変更は、そのファイルを持つアプリケーションからのみ参照されます。すなわち、このコンフィグレーション ファイルのスコープはそのアプリケーションに限定されています。これによって、ルール フレームワークのコンフィグレーションをアプリケーションごとに変えることが可能になります。

ルール式を検証する

ルール エンジンにすべてのルール式(条件とアクションの両方)をちょうど 1 回だけ検証させたい場合には、rules.engine.expression.validation を true に設定します。開発時やテスト時には、リスト 12-4 に示すようにこのプロパティを true に設定して、新たに加えた式を検証することができます。

コード リスト 12-4 rules.engine.expression.validation プロパティの設定

##
# ルール エンジンによる式の検証:
#
# このプロパティが true に設定されている場合、
# ルール エンジンは、式が最初に実行されるときに
# それらを検証する。
##
rules.engine.expression.validation=true

ルール エンジンによるエラーの処理と報告

ルール エンジンの実行中にユーザに通知される例外のタイプは、rules.engine.throw.expression.exceptions プロパティと rules.engine.ignorable.exceptions プロパティによって決まります。

これらのパラメータの設定例をリスト 12-5 に示します。

コード リスト 12-5 ルール エンジンによるパターン式実行時のエラー処理

##
# ルール エンジンによるパターン式実行時のエラー処理:
#
# rules.engine.throw.expression.exceptions
#
# このプロパティが true に設定されている場合には、
# パターン式実行例外が送出される。それ以外の場合には、
# パターン式例外が発生するとパターン条件が偽(false)と
# 評価される。
#
# デフォルトは true。
#
# rules.engine.ignorable.exceptions (クラス名のリスト)
#
# 上記のプロパティが true に設定されていると、
# 列挙されたクラス以外のタイプの式例外および
# 組み込み例外が送出される。クラス タイプが何も
# 指定されていなければ、すべての式例外が送出される。
#
# デフォルトは、すべての例外クラス タイプ。
##
rules.engine.throw.expression.exceptions=true
rules.engine.ignorable.exceptions=java.lang.NullPointerException

 


コンテンツ セレクタを用いたパーソナライゼーション

コンテンツ セレクタは、コンテンツ管理システムからドキュメントを取得するためのメカニズムとして WebLogic Portal に用意されているものの 1 つです。 コンテンツ セレクタを使用すれば、ドキュメントが WebLogic Portal で取得される際の条件を指定することで、ポータルやポートレットをパーソナライズすることができます。たとえば、 日付の範囲、ユーザのステータス、ユーザの電子メール アドレスなどの情報を指定することで、コンテンツ管理システム内のデータを表示するポートレットをパーソナライズすることができます。コンテンツ セレクタなら、選択条件に合うドキュメントだけを取得することになるでしょう。

注意: コンテンツ セレクタを扱うには、その前に顧客セグメントを作成しておく必要があります。セグメントの作成は管理作業であり、『管理者ガイド』で説明されています。詳細については、「顧客セグメントの作成」 (http://edocs.beasys.co.jp/e-docs/wlp/docs70/admin/usrgrp.htm#1184110) を参照してください。

E-Business Control Center を用いて、コンテンツ セレクタを起動する条件を定義するとともに、コンテンツ セレクタでドキュメントの検索と取得に使用されるクエリを定義します。そのあと、コンテンツ セレクタ JSP タグとその他の一連の JSP タグを用いて、コンテンツ セレクタで絞り込まれたコンテンツを取得し表示します。

E-Business Control Center を用いて、コンテンツ セレクタを起動する条件と、クエリ条件を定義するには、以下の手順に従います。

  1. E-Business Control Center を開き、[プレゼンテーション] タブを表示させます。

  2. エクスプローラの左ペインの [コンテンツ セレクタ] アイコンをクリックします。

    エクスプローラの右ペインに、既存のコンテンツ セレクタがすべて表示されます。

  3. [新規作成] を選択して [新規作成] メニューを表示し、[コンテンツ セレクタ] を選択します。

    図12-1 E-Business Control Center の [新規作成] メニューで [コンテンツ セレクタ] を選択


     

    コンテンツ セレクタ エディタが表示されます。

    図12-2 コンテンツ セレクタ エディタ


     

  4. [Selection rule] ペインのどこかをダブルクリックして、 以下のような [Selection Rule] エディタを開きます。

    図12-3 [Selection Rule] エディタ


     

  5. コンテンツ セレクタ起動条件の横にあるチェックボックスをクリックします。条件を選択するたびに、それぞれに関係するアクションが [アクション] ペインに追加されます。

    図12-4 条件選択時の [Selection Rule] エディタ


     

  6. [アクション] ペインで、以下を行います。

    1. 条件の適用方法を決定します。デフォルト値は [すべて] で、これは、すべての条件が満たされる場合にのみコンテンツ セレクタが起動されるという意味です。[すべて] というリンクをクリックして、値を [いずれか] に切り替えます。これは、 少なくとも 1 つの条件が満たされればコンテンツ セレクタが起動されるという意味です。

    2. 次に、条件リスト内の下線付きのテキストをクリックして、条件ごとに値を設定します。たとえば、[訪問者が定義済みの顧客セグメントに属している] という条件を選択した場合には、[訪問者が顧客セグメント [顧客セグメント] に属している] という条件が [アクション ] ペインに表示されます。[顧客セグメント] をクリックして、[顧客セグメントの選択] ダイアログ ボックスを表示させます。

      図12-5 [顧客セグメントの選択] ダイアログ ボックス


       

    3. 訪問者の所属先となる顧客セグメントを選択し、[追加 ] をクリックして [選択済みセグメント] リストに移動します。必要なセグメントをすべて追加したら、 [OK] をクリックします。

    4. 選択した条件ごとに、手順 b を繰り返します。

    5. 選択したすべての条件の値が設定されたら、[OK] をクリックします。

      [Selection Rule ] ダイアログ ボックスが閉じます。

  7. E-Business Control Center で、[ファイル] メニューを開き、[名前を付けて保存] を選択します。

    [名前を付けて保存] ダイアログ ボックスが表示されます。

    図12-6 [名前を付けて保存] ダイアログ ボックス


     

  8. コンテンツ セレクタの名前を [名前] に入力し、[保存] をクリックします。

    新しいコンテンツ セレクタが、エクスプローラの [コンテンツ セレクタ] リストに表示されます。

  9. [ツール] メニューを開き、[同期] を選択します。

これで、新しいコンテンツ セレクタがいつでも使用できるようになりました。

与えられた JSP でコンテンツ セレクタ機能を使用するには、コンテンツ セレクタ JSP タグと一連の関連タグを呼び出す必要があります。詳細については、コンテンツ セレクタ タグおよび関連する JSP タグの使い方を参照してください。

 


編集 JSP を用いたポートレットのパーソナライズ

訪問者は、必要なパーソナライゼーション属性や好みの設定を編集 JSP に記述することで、ポートレットをパーソナライズすることができます。編集 JSP とは、パーソナライゼーション データを収集し、それを用いて、要求されたデータをパーソナライズした形で表示する JSP のことです。

編集 JSP を用いて訪問者側からポートレットをパーソナライズできるようにするには、以下の 2 つのステップを実行します。

ステップ 1: 編集 JSP を作成する

他の JSP を作成するのと同じようにして、編集 JSP(Webflow が必要な場合には複数の JSP)を作成します。その名前は自由に付けることができ、ルック アンド フィールは、適切でさえあれば、どのようなものでもかまいません。この JSP の重要な機能は、パーソナライズされたコンテンツを訪問者側から入力したり検索できるようにする機能です。

たとえば、

これでわかるように、訪問者パーソナライゼーションの要件を満たしているかぎり、編集 JSP に組み込むべき内容にはほとんど制限はありません。

ステップ 2: ポートレットの編集を有効にする

次に、訪問者側でポートレットを編集してパーソナライゼーション情報を追加できるようにする必要があります。それには、以下の手順に従います。

  1. E-Business Control Center を起動します。E-Business Control Center の起動方法については、『管理者ガイド』の「E-Business Control Center の起動」 (http://edocs.beasys.co.jp/e-docs/wlp/docs70/admin/admintro.htm#1185814) を参照してください。

  2. エクスプローラ ウィンドウで、 ウィンドウ下部の [プレゼンテーション] タブをクリックしたあと、[ポートレット] アイコンをクリックします。

  3. エクスプローラのポートレット リストから、編集を有効にしたいポートレットをダブルクリックします。

    ポートレット エディタが表示されます。

  4. 図 12-7 に示すように、[編集を有効にする] を選択します。

    図12-7 [編集を有効にする] チェックボックスが選択されているポートレット エディタ


     

  5. このチェックボックスを選択することで、その下の編集ボックスも有効になることに注意してください。このボックスには、作成した編集 JSP の相対 URL を指定します。

ポートレット エディタの使い方の詳細については、『管理者ガイド』の「ポートレットの特性の変更」 (http://edocs.beasys.co.jp/e-docs/wlp/docs70/admin/frmwork.htm#1199768) を参照してください。

 


プレースホルダを用いたポータルまたはポートレットのパーソナライズ

プレースホルダは、表示可能なコンテンツを定義する特定の条件が満たされたときにコンテンツが表示される、ポータルまたはポートレット内の領域を表す手段です。プレースホルダは、任意の数のクエリが組み込まれた名前付きエンティティです。プレースホルダ タグが含まれた JSP を訪問者が要求すると、プレースホルダは(通常、設定されたルールや顧客プロパティに基づいて)単一のクエリを選択して実行し、ブラウザでのクエリ結果の表示に必要になる HTML を生成します。

この節では、以下のトピックを扱います。

プレースホルダの使い方

プレースホルダは、主にキャンペーンで使用され、訪問者の行動から訪問者が興味を持っていると判断される催しや商品などの情報に訪問者の注意を向けさせる働きをします。たとえば、オンラインのスポーツ用品店が、ある訪問者が特定のメーカーのルアー(釣りの擬似餌)を多数購入したことに気づいたとしましょう。あるルールが存在し、そこには、訪問者がそのメーカーの商品を一定額以上購入したときに、利用可能な割引についての情報をポータルに表示するよう指示してあります。その訪問者には、そのコンテンツのプレースホルダに指定された領域に、その情報が表示されることになります。また、別の訪問者が、キャンプ用具に興味を示しています(その訪問者が上記スポーツ用品店のカタログの「キャンプ」ページにアクセスした回数から判断される)。キャンプ好きの訪問者には、ルアーの割引ではなくキャンプ用具についての情報が、プレースホルダに指定された領域に表示されることになります。

上記の例は、情報を特定の訪問者向けにパーソナライズするための広告プレースホルダの使い方を示しています。同様に、広告以外のプレースホルダでも、同じレベルのパーソナライゼーションを提供することができます。たとえば、ある医師が製薬会社の Web サイトで薬品の調査を行っていて、その医師には特定の薬品群を調べる傾向があるとしましょう。その会社のポータルでは、その医師の行動を追跡して、医師がまだ調査していない関連薬品についての情報またはリンクをプレースホルダに表示することができます。

プレースホルダの作成は、JSP タグを使用し、E-Business Control Center でプレースホルダ クエリを定義することで行います。この節では、ポータルおよびポートレットのコンテンツをパーソナライズするためのプレースホルダを、これらの機能を用いてセットアップする方法を説明します。

プレースホルダ JSP タグ: <ph:placeholder>

プレースホルダ タグ <ph:placeholder> は、JSP 上にある、名前付きの位置です。 このタグは、JSP へのプレースホルダを識別し、E-Business Control Center で設定された動作を記述するものです。E-Business Control Center を用いてプレースホルダの動作をセットアップする方法については、プレースホルダ ファイルを作成する を参照してください。

注意: 以下の表の「必須」列では、属性が必須と省略可能のどちらであるかを「はい」または「いいえ」で示します。「R/C」列では、「C」は属性がコンパイル (Compile) 時表現であることを、「R」は属性が要求 (Request) 時表現とコンパイル時表現のいずれかであることを示します。

<ph:placeholder> タグ(表12-3)はプレースホルダを実装し、そのプレースホルダは、JSP ページ上のある位置での動作を記述します。

複数のプレースホルダ タグが同じプレースホルダを参照していてもかまいません。 プレースホルダ タグの各インスタンスは、それぞれのプレースホルダ定義を個別に呼び出します。 プレースホルダ定義で複数のクエリが指定されている場合には、たとえプレースホルダ タグの各インスタンスの定義が同じでも、インスタンスごとに異なる広告を表示することができます。

広告プレースホルダを含んだ JSP へのリクエストを WebLogic Portal が受信すると、プレースホルダ タグは AdService(ビジネス ロジックを呼び出して、表示すべき広告を決定するセッション EJB)に問い合わせます。

表12-3 <ph:placeholder>

タグ属性

必須

データ型

解説

R/C

name


はい


String


プレースホルダ定義を参照する文字列。

R

height

いいえ

int

ブラウザでのドキュメント表示に必要な HTML を生成する際にプレースホルダで使用される高さをピクセル単位で指定する。

プレースホルダでこの値が用いられるのは、表示サイズに合ったコンテンツ タイプの場合と、与えられたドキュメントのサイズが他の属性によってまだ定義されていない場合だけである。

この値を指定せず、他の属性が定義されていない場合には、ドキュメントの高さはブラウザの動作によって決まる。

R

width

いいえ

int

ブラウザでのドキュメント表示に必要な HTML を生成する際にプレースホルダで使用される幅をピクセル単位で指定する。

プレースホルダでこの値が用いられるのは、表示サイズに合ったコンテンツ タイプの場合と、与えられたドキュメントのサイズが他の属性によってまだ定義されていない場合だけである。

この値を指定せず、他の属性が定義されていない場合には、ドキュメントの幅はブラウザの動作によって決まる。

R


 

この例では、MainPageBanner プレースホルダで指定された広告を表示します。

<%@ taglib uri="ph.tld" prefix="ph" %>
. . .
<ph:placeholder name="/placeholders/MainPageBanner.pla"/>

プレースホルダを実装する

プレースホルダを実装するには、以下の手順に従います。

  1. プレースホルダの挿入先となる JSP テンプレート ファイルを開きます。JSP は個々のアプリケーションのポートレット フォルダ下のアプリケーション フォルダ内に入っています。たとえば、以下の場所です。
    <BEA_HOME>¥weblogic700¥samples¥portal¥<PORTAL_DOMAIN>¥beaApps¥
    <PORTAL_APP>¥<PORTAL_APP>¥portlets¥campaigns

  2. 以下のコードを JSP に追加することで、タグ ライブラリをインポートします。
    <%@ taglib uri="ph.tld" prefix="ph" %>

  3. プレースホルダの設定先となる JSP 要素の中に <ph:placeholder> を追加します。リスト 12-6 に示すように、プレースホルダ タグ内に必ずプレースホルダ名を指定してください。

コード リスト 12-6 <ph:placeholder> タグ

<table class="homebackground" width="100%" height="100%"
border="0" cellspacing="0" cellpadding="0">

<tr>
<td align="center">
<ph:placeholder name="PrimaryCampaign"/>
</td>
</tr>

</table>

プレースホルダ ファイルを作成する

サイトの JSP に記述されているプレースホルダに合致するプレースホルダ ファイルを定義するには、E-Business Control Center を用います。以下の手順では、E-Business Control Center でプレースホルダ ファイルを作成する方法と、そのプレースホルダ内にデフォルト(キャンペーン以外)のクエリをセットアップする方法を示します。

注意: この手順を開始する前に、コンテンツ管理システム内のドキュメントの属性を定義しておく必要があります。

プレースホルダ ファイルを作成するには、以下の手順に従います。

  1. WebLogic Server を起動し、 E-Business Control Center を開きます。

  2. 作業対象となるアプリケーションを開きます。

  3. [ファイル—>新規作成—>プレゼンテーション—>プレースホルダ] を選択します。 図 12-8 に示すように、新しいプレースホルダ ファイルが [エディタ] ウィンドウに開きます。

    図12-8 プレースホルダ エディタ


     


     

  4. [概要] 領域にプレースホルダの説明を入力します。

  5. [新規作成] をクリックして、デフォルト クエリの定義に取りかかります。デフォルト クエリが 1 つも含まれていなければ、プレースホルダ ファイルは不完全とみなされます(ただし、それでもプレースホルダ ファイルを保存することはできます)。

    注意: アクセスしようとしているコンテンツはサーバ上に格納されているため、[接続セットアップ] ウィンドウが表示されます。[表示名] フィールドに表示される既存の接続を選択し、ユーザ名とパスワードを入力します。プレースホルダを扱う際には、ログインする必要があるのは、セッションごとに 1 回だけです。

    このステップを繰り返すことで、デフォルト クエリを複数作成することができます。

    デフォルト広告用の広告クエリを作成しない場合には、プレースホルダは、キャンペーン クエリで生成された広告しか表示しません。アクティブなキャンペーンが存在しない場合や、アクティブなキャンペーンのシナリオに、特定顧客向けの広告をトリガする広告アクションが含まれていない場合には、プレースホルダは顧客にとっては空のままです。

  6. デフォルト クエリの優先順位を変更するには、そのクエリの [表示の優先順位] 列をクリックし、優先順位を選択します(図 12-8 を参照)。

    当該クエリがプレースホルダ内の他のすべてのクエリと比べて、実行される可能性がどの程度あるかは、[表示の優先順位] によって決まります。

  7. キャンペーン広告クエリも含まれている場合に、広告プレースホルダでデフォルト クエリが使用されないようにするには、[キャンペーンで出す広告を適用する場合には、デフォルト広告を表示しない] オプションを選択します。

    プレースホルダにデフォルト広告クエリとキャンペーン広告クエリの中から選択させる場合には、 [キャンペーンで出す広告と一緒に、デフォルト広告もローテーションに入れておく] オプションを選択します。 これを選択すると、キャンペーンの一環として指定された広告がプレースホルダで表示される可能性は潜在的に少なくなります。

  8. プレースホルダに名前を付けて保存します。使用するプレースホルダ名は、既存の名前にするか、これから JSP に記載する名前にしてください。

    プレースホルダのリストに、新しいファイルが表示されます。

 

ページの先頭 前 次