第10章

ワイヤレスアプリケーションの開発

この章では、ワイヤレスデバイスをサポートするexteNd Directorポータルアプリケーションを作成する方法について説明します。この章の節は次のとおりです。

 
Top of page

ワイヤレスアプリケーションの設定について

exteNd Directorでは、モバイルコミュニティに使用されるPDAや携帯電話など、絶えず発展するさまざまなデバイスに、アプリケーションを簡単に拡張できます。 XML出力を作成する任意のポートレットでexteNd Directorのワイヤレス機能を使用し、ワイヤレスデバイスに適した出力を生成することができます。 ポートレットクラスを実装する際に、表示のサイズや種類に従ってポートレット出力を変更する必要はありません。

ワイヤレスデバイス用のアプリケーションを実現する方法は、2つの手順、すなわち デバイス固有レンダリングおよびデバイス固有ページネーションからなります。手順は連携して機能することが意図されていますが、どちらも個別に使用できます。たとえば、検索エンジンはデバイス固有ページネーションを使用して、PCやワイヤレスデバイスのWebブラウザについてページ当たりの指定ヒット数を表すことができます。

 
Top of section

デバイス固有レンダリング

exteNd Directorアプリケーションの任意のXMLポートレットをワイヤレス対応に指定できるため、ポータルアグリゲータによってワイヤレスクライアントデバイスを自動的に識別し、ポートレットのXML出力をWML、cHTML、またはWeb Clippingなどのデバイス固有形式で表示できます。

ポータルは、ポータルのリソースセットに保存されているさまざまなデバイスのプロファイルリストを使用します。リストの更新は、新しいデバイスや形式の発売時にNovellWebサイトからダウンロードできます。

1ページに収まる小さなアプリケーションコンテンツは、適切なデバイス固有形式で表示することの他に、何も必要でない場合があります。つまり、長さ拡大によるページ幅の減少は、許容される場合と許容されない場合があります。垂直方向のスクロール(スクロールする場合)はどれだけ1ページに許容可能か、判断することが必要です。

 
Top of section

デバイス固有ページネーション

ポートレットコンテンツは、大きすぎて1ページに収まらないこともあります。 exteNd Directorアプリケーションの任意のXMLポートレットを「デバイス固有ページネーション」に指定すると、ポートレットのXML出力を小さなブロックに分割し、コンテンツ表や前ボタン次ボタンなど、ナビゲーション用の項目を追加することができます。

開発環境に搭載されたグラフィックエディタを使用してサンプルのポートレットコンテンツファイルをドラッグし、レイアウトとナビゲーションの両方を形成する「データ定義」にドロップできます。作業中に、データ定義により生成された出力を即座にプレビューできます。

ランタイム時に「デバイストランスコード」エンジンは、データ定義をポータルの出力に適用してからポータルアグリゲータに送ります。

 
Top of section

サンプルポートレット

exteNd Directorソフトウェアには、デバイス固有レンダリングを使用するStockQuotePortletというサンプルのワイヤレス対応ポートレットが含まれています。 このポートレットを使用して、アプリケーションをワイヤレス対応にする方法について学習することができます。

 
Top of page

ワイヤレス対応ポートレットの作成

ポートレットウィザードを使用してワイヤレス対応ポートレットを作成すると、操作の大部分を自動的に処理できます。

Procedure 次のようにして、新しいワイヤレスポートレットを作成します。

  1. ポートレットウィザードの使用に関する節の説明にしたがって、ポートレットウィザードを起動します。

    transcode component

  2. コンテンツタイプでXMLWMLを選択します。

  3. デバイスがポートレットのデータ定義をすでにトランスコードしている場合は、ここでそのデータ定義を指定します。その他の場合は、[完了]をクリックして、デバイストランスコードデータ定義の作成に移ります。

 
Top of page

既存ポートレットのワイヤレス対応

既存ポートレットをワイヤレス対応にするには、次の手順で説明されているとおり、複数のファイルの変更または作成、あるいはその両方を行う必要があります。

Procedure ポートレットソースファイルを変更する

  1. ポートレットソースファイルを編集します。

  2. 次に示すように、doView()メソッドで、MIMEタイプをMIME_TYPE_XMLに設定します。

      response.setContentType(com.novell.afw.portlet.api.EbiPortletConstants.MIME_TYPE_XML);
    

    注記:   トランスコードをサポートするワイヤレスポートレットを作成する場合は、MIMEタイプをMIME_TYPE_DEVICE_PROFILINGに設定する必要があります。

Procedure ポートレット記述子の変更

  1. ポートレット記述子を開きます。

  2. トランスコードをサポートする場合は、スタイルセクションで「データ定義」ファイルのファイル名を記入します。データ定義ファイルは、この時点で存在する必要はありません。

      <style>
       <name>MyPortletDefault</name> 
       <display-name>MyPortlet Default Style</display-name>
       <user-agent>
        <device-name>Generic_HTML</device-name>
        <file-name>
         $RESOURCE_SET$/portal-style/MyPortlet_HTML.xsl
        </file-name>
       </user-agent>
       <user-agent>
        <device-name>Generic_WML</device-name>
        <file-name>
         $RESOURCE_SET$/portal-style/MyPortlet_WML.xsl
        </file-name>
       </user-agent>
       <data-definition>
        $RESOURCE_SET$/portal-data-definition/PhoneList
       </data-definition>
          </style>
    
  3. スタイル設定で、選択されたスタイルを検査します。 ポートレットに対してポートレットスタイルがすでに作成されている場合は、ポータルスタイル記述子を変更するへ進みます。 まだ作成されていない場合は、次のいずれかを実行します。

  4. セクションに、[Wireless]カテゴリを追加します。

      <auto-register enabled="true">
        <category>Wireless</category>
      </auto-register>
    

    カテゴリは、DACのPortlet Managementセクションで設定することもできます。

  5. この時点で新しいポータルスタイル記述子の作成を選択すると、ポータルスタイル記述子ウィザードが起動します。

    transcode new portal style

  6. 記述子に名前を付け、ポータルスタイル記述子を変更するに進みます。

Procedure ポータルスタイル記述子を変更する

  1. 記述子を開き、[ユーザエージェント]タブをクリックします。

    transcode PhoneListStyle

  2. Generic_WMLというユーザエージェントがまだない場合は、[追加]ボタンをクリックします。

  3. ユーザエージェントは、デバイスプロファイルをXSLスタイルシートにマップすることにより、特定のユーザ環境にポータルスタイルが表示される方法を指定します。

    [Device Name](<device-name>)を[Generic_WML]に設定します。デバイス名は、ユーザ環境を定義するデバイスプロファイルの名前です。

    [Data Definition](<dp-file-name>)をXSLスタイルシートに設定します。

    注記:   ポータルスタイル記述子GUIのData Definitionカラムを、デバイストランスコードデータ定義と混同しないでください。

    ポートレットのスタイルシートがない場合は、portal-styleディレクトリにあるGeneric_WML.xslなどの一般スタイルシートを使用します。

      <user-agent>
          <device-name>Generic_WML</device-name>
          <dp-file-name>Generic_WML.xsl</dp-file-name>
      </user-agent>
    

    For more information    デバイスプロファイルの詳細については、デバイスプロファイルエディタの使用を参照してください。

 
Top of page

ワイヤレスレイアウトマネージャの使用

ワイヤレスレイアウトマネージャによって、[ワイヤレスプロファイル]の定義が可能になります。 Webブラウザを使用して、利用可能なワイヤレス対応ポートレットを選択し、表示する順序を設定します。 リストには、カテゴリWirelessを持つポートレットが含まれています。

Procedure ワイヤレスプロファイルを定義する

  1. ポータルパーソナライザを開いて[ポータルワイヤレスレイアウト]セクションまでスクロールし、[ワイヤレスレイアウトの編集]をクリックします。

    transcode profile0010

    ワイヤレスレイアウトマネージャはブラウザ内で開きます。

  2. ワイヤレスレイアウトマネージャで、使用できるポートレットを選択し、[ポートレットの追加]をクリックします。

    transcode layout

  3. 動作中のワイヤレスポートレットを見るには、[ポートレットの保存]をクリックし、[MyPortal]に進んで、[MyWirelessProfile]をクリックします。

 
Top of page

デバイスプロファイルエディタの使用

exteNd Directorは、デバイスプロファイルの作成や編集を行うグラフィックエディタを開発環境で提供します。

Procedure デバイスプロファイルエディタを起動する

Procedure デバイスプロファイルエディタを使用する

 
Top of page

デバイストランスコードデータ定義の作成

 
Top of section

トランスコードデータ定義について

トランスコードデータ定義は、出力データの分割方法やナビゲーション項目の追加方法の指定に使用できるポートレット出力の特定のタグを識別するXMLファイルです。 参照ファイルの作成で説明されているとおり、最初の手順は、ポートレット出力の代表的なサンプルをキャプチャすることです。

出力サンプルを得たら、カラムと行のあるテーブルとして考えます。 次の手順は、行セパレータのタグを識別することです。行セパレータを定義したら、出力データを次のオブジェクトにマップできます。

オブジェクト

説明

Listブロック

すべての行を含むビュー

Contentブロック

1行のみ含むビュー

Element

カラム

Link

リストブロックをコンテンツブロックに接続します

 
Top of section

参照ファイルの作成

参照ファイルを作成するには、実際のXMLポートレット出力のサンプルをファイルにキャプチャする必要があります。 次のように実行すれば、任意のXMLベースポートレットをXMLをコンソールに印刷できます。

  // Create the XML Document
  Document newDoc = EboXmlHelper.getNewDocument();
  
  // Add elements to the document
  ...
  
  // Print the document to the console
  com.sssw.fw.util.EboXmlHelper.printDOMTree(newDoc);

実際のデータ定義ファイルと競合しない名前を使用して、portal-data-definitionフォルダにテキストファイルを保存します。 たとえば、PhoneListポートレットのXML出力は次のとおりです。必要に応じて、この出力をコピーし、PhoneListReference.xmlというテキストファイルに貼り付けることができます。

  <?xml version="1.0"?>
  <phonelist compInstance="a63974dcac7e4f28bd2c49ab7b1921d2"
  compid="PhoneList" post-url="http://localhost/Director/Portal/main
  /comp/PhoneList">
   <results querystring="c">
    <employee>
     <first-name>Samuel</first-name>
     <last-name>Craddock</last-name>
     <phone-number>(617) 343-6505</phone-number>
     <email>scraddock@silverdemo.com</email>
    </employee>
    <employee>
     <first-name>John</first-name>
     <last-name>Chester</last-name>
     <phone-number>(617) 343-6506</phone-number>
     <email>jchester@silverdemo.com</email>
    </employee>
    <employee>
     <first-name>Lynn</first-name>
     <last-name>Campbell</last-name>
     <phone-number>(617) 343-6507</phone-number>
     <email>lcampbell@silverdemo.com</email>
    </employee>
   </results>
  </phonelist>

 
Top of section

データ定義ファイルの作成

exteNd Directorは、トランスコードデータ定義ファイルを作成するウィザードを含んでいます。

  1. 開発環境で、メニューから[ファイル]>[新規]、[ポータル]タブの順に選択します。

  2. [トランスコード定義(ワイヤレス)]を選択して、[OK]をクリックします。

    transcode wizard0010

  3. トランスコード定義ファイルに名前を付け、ファイルを追加するリソースセットを指定して(必要な場合)、[次へ]をクリックします。

    transcode wizard0020

  4. 参照ファイルを選択します。ウィザードは自動的にファイルを開き、XMLタグ構造を表示します。

    transcode wizard0030

  5. 行セパレータを選択します。 サンプルポートレット参照ファイル(PhoneListReference.xml)を使用している場合は、[Employee]を選択します。

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

 
Top of section

データ定義ファイルの編集

この節では、サンプルポートレットデータ定義ファイルPhoneList.xmlおよび参照ファイル(PhoneListReference.xml)を使用して、手順を説明します。

Procedure 参照ファイルを開く

  1. データ定義エディタで、[定義]タブを選択します。参照ペインと定義ペインという2つのペインがあります。

  2. 参照ドキュメントを開きます(まだ開いていない場合)。参照ペインを右クリックし、[参照ファイルを開く]を選択します。

    transcode definition0010

    注記:   サンプルポートレット参照ファイルのファイル名は、PhoneListReference.xmlです。

    参照ペインは、ツリービューを使用してデータの構造を表示します。ビューのブランチは、プラス(+)をクリックすると拡大し、マイナス(-)をクリックすると閉じます。

Procedure 行セパレータを定義する

行セパレータをすでに定義している場合(データ定義ファイルの作成で説明されているとおり)、この手順は省略します。

Procedure ブロックを作成する

  1. 定義ペインの項目を選択します。

  2. ブロックの追加]を右クリックして選択します。

    transcode definition0030

    注記:   サンプルポートレット参照ファイルを使用している場合は、次の2つのブロックを作成します。[employeeList]というListブロックおよび[employeeDetails]というContentブロック。

  3. 新しいブロックに名前を付け、タイプを[List]または[Content]に設定します。

  4. [Style]を指定して、このブロックのデフォルトスタイルのみ上書きできます。

    注記:   ブロック名の右にある小さな三角形(transcode arrow right)をクリックして、カーソルを他のオブジェクトに移動させた場合にもブロックを開いたままにします。三角形の色が変わり、回転して下方向を指し(transcode arrow down)、ブロックが開いたままロックされていることを示します。デフォルトでは、カーソルを他の場所に移動すると、エディタはオブジェクトを閉じます(オブジェクト名のみ表示します)。

Procedure 要素を作成する

  1. 参照ペインで要素を選択し、定義ペインのブロックにドラッグします。

    transcode definition0050

    注記:   サンプルポートレット参照ファイルを使用している場合は、次の要素を追加します。employeeListにfirstName、lastNameemployeeDetailsにfirstName、phoneNumber、email

  2. 新しい要素に名前を付けます。

  3. [タイプ]フィールドでは、ユーザ定義情報をスタイルシートにパスできます。

  4. [XPath expr]フィールドは、XMLドキュメントの部分を特定するXpathの式です(XMP Path言語)。このフィールドを使用して、要素をリマップできます。

    For more information    XPathの詳細については、言語仕様(http://www.w3.org/TR/xpath)を参照してください。

Procedure リンクを作成する

  1. 定義ペインの項目を選択します。

  2. リンクの追加]を右クリックして選択します。

    transcode definition0090

    注記:   サンプルポートレット参照ファイルを使用している場合は、次のとおりに設定します。From blockをemployeeListFrom elementをfirstNameTo blockをemployeeDetails

  3. [From block]属性をListブロックに設定します。

  4. [From element ]属性をListブロックの要素に設定します。

  5. [To block]属性をContentブロックに設定します。

 
Top of section

データ定義のテスト

Test Viewでは、作成したトランスコード定義により生成された出力を表示できます。

Procedure テストビューを設定する

  1. データ定義エディタで、[テスト定義]タブを選択します。設定、ナビゲーション、結果という3つのペインがあります。

  2. 設定ペインで、ドロップダウンリストから使用できるユーザエージェントを1つ選択します。リストは、登録されたポータルのデバイスタイプをすべて含んでいます。

    transcode setup0000

    注記:   サンプルポートレットデータ定義を使用している場合は、[User-agent]を[Generic_WML]に設定します。

  3. ドロップダウンリストから、使用できるスタイルを1つ選択します。リストは、選択されたユーザエージェントをサポートするスタイルをすべて含んでいます。

    transcode setup0010

    注記:   サンプルポートレットデータ定義を使用している場合は、[Style]を[PhoneListStyle.xml]に設定します。

Procedure テストを実行する

  1. 選択を行ったら、[開始]をクリックします。

    transcode result0000

  2. ナビゲーションペインを検査します。ビューのブランチは、プラス(+)をクリックすると拡大し、マイナス(-)をクリックすると閉じます。

  3. 項目をクリックして、結果ペインのトランスコードエンジン出力を見ます。

    ヒント:   表示されたデータのグラフィックビューを行うには、ワイヤレスプロファイル をセットアップして(ワイヤレスレイアウトマネージャの使用で説明されているとおり)、 PhoneListポートレットをプロファイルに追加します。



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