ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebCenter PortalおよびOracle JDeveloperでのポータルの開発
11gリリース1 (11.1.1.8.3)
E49666-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

34 インスタント・メッセージおよびプレゼンスの統合

この章では、設計時にPortal Frameworkアプリケーションにインスタント・メッセージおよびプレゼンス(IMP)を統合する方法について説明します。

この章の内容は、次のとおりです。

インスタント・メッセージおよびプレゼンスの管理および組込みの詳細は、次を参照してください。

34.1 インスタント・メッセージおよびプレゼンスの概要

インスタント・メッセージおよびプレゼンス(IMP)を使用すると、ユーザーは他の認証済アプリケーション・ユーザーのプレゼンス・ステータス(オンライン、オフライン、ビジーまたは退席中)を監視できるようになります。これは、インスタント・メッセージやメールなどの対話オプションへの簡単なアクセスを提供します。さらに、自社のプレゼンスが使用できない場合(出張中など)は、サード・パーティのネットワーク・プレゼンス・サービス(Yahoo!メッセンジャーなど)に接続することもできます。

WebCenter Portalのツールとサービスが、同一IDのユーザー名を保持しているときには、IMP(ディスカッション、ドキュメント、メールなど)と統合できます。

この項では、IMPの機能と要件の概要を説明します。次のサブセクションが含まれます:

34.1.1 インスタント・メッセージおよびプレゼンスの理解

図34-1は、オンラインにいるユーザーを示す「プレゼンス」アイコンを示しています。

図34-1 「プレゼンス」アイコン(オンライン)

「プレゼンス」アイコン

たとえばドキュメント・ライブラリのドキュメントの作成者としてユーザーが示されていれば、このアイコンをクリックすることでポップアップ・メニューを起動できます(図34-2)。

図34-2 「プレゼンス」アイコンのポップアップ・メニュー

図34-2の説明が続きます
「図34-2 「プレゼンス」アイコンのポップアップ・メニュー」の説明

このポップアップ・メニューには、次のアクションが含まれています。

  • プロファイルの表示: 選択したユーザーのプロファイル・ページが表示されます。このページには、メールIDや連絡先電話番号などの情報が含まれています。

  • メールの送信: メール・クライアント・セットの作成ウィンドウが開きます。これは、WebCenter Portalのメールまたはローカルのメール・クライアントのどちらかになります。

  • 資格証明の変更: これは、外部アプリケーションを使用するかわりの手段になります。現在のユーザーに対してのみ表示されます。

  • インスタント・メッセージの送信: コンピュータで実行中のインスタント・メッセージ・クライアント(Microsoft Communicator)を開きます。

連絡先名の横にあるアイコンは、各連絡先のプレゼンス状態を示します。

スクリーン・ショットおよびプレゼンス・ステータス・オプションを含む実行時のIMPの詳細は、『Oracle Fusion Middleware Oracle WebCenter Portalの使用』の「インスタント・メッセージおよびプレゼンス・ビューアの使用」の章を参照してください。

34.1.2 インスタント・メッセージおよびプレゼンスの要件

IMPにはバックエンド・プレゼンス・サーバーが必要です。WebCenter Portalでは、Microsoft Office Live Communications Server (LCS) 2005、Microsoft Office Communications Server (OCS) 2007、およびMicrosoft Lync 2010の動作が保証されています。


注意:

Oracle Beehive Serverの接続は、このリリースではサポートされていません。


34.2 IMPの基本構成

この項では、IMPをアプリケーションに追加するために必要な手順について説明します。次のサブセクションが含まれます:

34.2.1 IMP用の接続の設定

プレゼンス・サーバーを適切にインストールして実行した後で、そのサーバーへの接続を追加する必要があります。この項では方法について説明します。次のサブセクションが含まれます:

34.2.1.1 インスタント・メッセージおよびプレゼンスの接続

インスタント・メッセージおよびプレゼンスには、プレゼンス・サーバー(Microsoft LCS、Microsoft OCSまたはMicrosoft Lync)へのインスタント・メッセージおよびプレゼンス接続が必要になります。

独自の認証を処理するアプリケーションとWebCenter Portalがやり取りするときには、そのアプリケーションと外部アプリケーション定義を関連付けて、資格証明プロビジョニングに備えることができます。外部アプリケーションは必須です。


注意:

Oracle JDeveloperで設計時にバックエンド・サーバーへの接続を設定できますが、デプロイ後の環境でFusion Middleware Controlを使用して、後から接続を追加、削除または変更できます。詳細は、Oracle Fusion Middleware Oracle WebCenter Portalの管理を参照してください。


34.2.1.1.1 ユーザー名のIMアドレスへのマッピング

im.address.resolver.classは、ユーザー名をIMアドレスにマップし、IMアドレスをユーザー名にマップするために使用するリゾルバの実装を処理します。この実装は、次に示す場所と順序でIMアドレスを検索します。

  1. ユーザー・プリファレンス - ユーザーが「プレゼンス・プリファレンス」ページで自分のIMアドレスを入力しておくと、そのユーザーのIMアドレスはユーザーのプリファレンスで見つかります。

  2. ユーザー資格証明 - 外部アプリケーションが構成されている場合は、アカウント・フィールドにユーザーのIMアドレスが示されます。

  3. ユーザー・プロファイル - ユーザーがプリファレンスを指定していないときに、WebCenter Portalが外部アプリケーションからIMアドレスをフェッチできない場合、WebCenter PortalはLDAP(つまり、ユーザーのプロファイル)からIMアドレスを読み取ります。デフォルトのLDAPプロパティの読取り先は、BUSINESS_EMAIL属性です。ユーザーはこのデフォルトをim.address.profile.attributeで変更できます。

独自のリゾルバ実装を使用するには、IMPAddressResolverクラスを開いて、2つのメソッドresolveAddressresolveUsernameを実装します。

  • resolveAddressメソッドでは、ユーザー名を受け取り、それに対応するIMアドレスを返します。

  • resolveUsernameメソッドでは、IMアドレスを受け取り、それに対応するユーザー名を返します。

新しいリゾルバ・クラスにプラグインするには、プロパティのim.address.resolver.classをデフォルトのoracle.webcenter.collab.rtc.IMPAddressResolverImplから使用しているリゾルバ実装に変更します。例34-1は、リゾルバがアドレスを構成するためにユーザー名にドメイン文字列@example.comを追加し、さらにユーザー名を構成するためにアドレスから同じドメイン文字列を削除するIMPAddressResolver実装例を示しています。

例34-1 リゾルバの実装

public class SampleAddressResolver extends IMPAddressResolver
{
  private String DOMAIN = "@example.com";
 
  public SampleAddressResolver()
  {
    super();
  }
 
  //Append DOMAIN to the username to construct the IM address
  public String resolveAddress(String username)
  {
    String imAddress = username;
    if(!imAddress.endsWith(DOMAIN))
    {
      imAddress = imAddress + DOMAIN;
    }
 
    return imAddress;
  }
 
  //Remove DOMAIN from the IM address to construct the username
  public String resolveUsername(String imAddress)
  {
    String username = imAddress;
    if(username.endsWith(DOMAIN))
    {
      int index = username.indexOf(DOMAIN);
      username = username.substring(0, index);
    }
   
    return username;
  }
}

関連項目:

『Oracle Fusion Middleware WebLogic Scripting Toolコマンド・リファレンス』のsetIMPServicePropertyに関する項


34.2.1.2 IMP用のMicrosoft LCS接続を設定する方法

LCSプレゼンス・サーバーへの接続を設定するには:

  1. Oracle JDeveloperで、インスタント・メッセージおよびプレゼンスを利用するアプリケーションを開きます。

  2. アプリケーション・ナビゲータの「アプリケーション・リソース」で、「接続」を右クリックし、リストから新しい接続「インスタント・メッセージおよびプレゼンス」を選択します。

  3. 「インスタント・メッセージおよびプレゼンス接続の作成」ダイアログ・ボックスで、接続の作成先として「アプリケーション・リソース」を選択します。

    「アプリケーション・リソース」の接続はそのアプリケーションでのみ使用可能ですが、「IDE接続」の接続は作成したすべてのアプリケーションで使用可能です。他のアプリケーション内の接続を使用する予定の場合は、再作成する必要を回避するためにIDE接続を選択します。

  4. 「名前」ページで、「接続名」に接続の一意の名前を入力します。

    他の接続が同じ名前を持つことはできません。

  5. 「接続タイプ」リストから、Microsoft Live Communication Server 2005を選択します。

  6. 図34-3に示すように、これをデフォルト接続として使用するには、「デフォルト接続として設定」チェック・ボックスを選択します。

    図34-3 LCSのインスタント・メッセージおよびプレゼンス接続の作成、手順1

    図34-3の説明が続きます
    「図34-3 LCSのインスタント・メッセージおよびプレゼンス接続の作成、手順1」の説明

  7. 「次へ」をクリックします。

  8. 「一般」ページ(図34-4)で、Microsoft LSCインスタンスの情報を入力します。

    図34-4 LCSのインスタント・メッセージおよびプレゼンス接続の作成、手順2

    図34-4の説明が続きます
    「図34-4 LCSのインスタント・メッセージおよびプレゼンス接続の作成、手順2」の説明

    例:

    • Urlhttp://host:port/RTCです。ここで、RTCはサーバー側モジュールがデプロイされた仮想ディレクトリ名です。(詳細は、Microsoft Live Communications Server 2005のドキュメントを参照してください。)

    • Domainプロパティは、後方互換性のために維持されます。これは空白のままにしてください。

    • Connection Timeoutプロパティはオプションです。これは、接続の作成時にWebCenter Portalがサーバーからの応答を待機する時間(秒単位)を表します。プレゼンス・サーバーが指定の時間内に応答しない場合、接続は中断され、エラーが報告されます。

    • PoolNameには、Microsoft Communications Serverコンポーネントがデプロイされているプールの名前を入力します。(詳細は、Microsoft Live Communications Serverのドキュメントを参照してください。)

  9. 同じページで、プレゼンス・サーバーの認証メカニズム(ユーザー名とパスワード)を利用するように、「外部アプリケーション」を選択します。

    LCS接続には、外部アプリケーションが必須です。そのアプリケーションでは、プレゼンス・サーバー・ユーザーをアプリケーション・ユーザーにマップして、エンド・ユーザーが情報を要求するたびにユーザー名とパスワードを入力する必要がなくなるようにします。IMP用の外部アプリケーションの構成の詳細は、第34.2.3項「IMPのセキュリティの設定」を参照してください。

  10. 「接続のテスト」をクリックして、接続が正常であることを確認します。

  11. 「次へ」をクリックして接続を作成します。

  12. 「追加プロパティ」ページ(図34-5)で、必要に応じてパラメータを追加できます。

    図34-5 LCSのインスタント・メッセージおよびプレゼンス接続の作成、手順3

    図34-5の説明が続きます
    「図34-5 LCSのインスタント・メッセージおよびプレゼンス接続の作成、手順3」の説明

  13. 「終了」をクリックします。

新しいIMおよびプレゼンス接続は、「アプリケーション・リソース」→「接続」の下に表示されます。

34.2.1.3 IMP用のMicrosoft OCS接続およびMicrosoft Lync接続を設定する方法

Microsoft OCSまたはMicrosoft Lyncプレゼンス・サーバーへの接続を設定するには:

  1. Oracle JDeveloperで、インスタント・メッセージおよびプレゼンスを利用するFrameworkアプリケーションを開きます。

  2. アプリケーション・ナビゲータの「アプリケーション・リソース」で、「接続」を右クリックし、リストから新しい接続「インスタント・メッセージおよびプレゼンス」を選択します。

  3. 「インスタント・メッセージおよびプレゼンス接続の作成」ダイアログ・ボックスで、接続の作成先として「アプリケーション・リソース」を選択します。

    「アプリケーション・リソース」の接続はそのアプリケーションでのみ使用可能ですが、「IDE接続」の接続は作成したすべてのアプリケーションで使用可能です。他のアプリケーション内の接続を使用する予定の場合は、再作成する必要を回避するためにIDE接続を選択します。

  4. 「名前」ページで、「接続名」に接続の一意の名前を入力します。

    他の接続が同じ名前を持つことはできません。

  5. 「接続タイプ」リストから、Microsoft Office Communications Server 2007を選択します。


    注意:

    Microsoft Lyncの接続は、Microsoft Office Communications Server 2010の接続タイプを使用します。


  6. 「デフォルト接続として設定」チェック・ボックスを選択します。

    図34-6に示すように、1つの接続がデフォルト接続としてマークされる必要があります。

    図34-6 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順1

    図34-6の説明が続きます
    「図34-6 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順1」の説明

  7. 「次へ」をクリックします。

  8. 「一般」ページ(図34-7)で、Microsoft OCSまたはMicrosoft Lyncインスタンスのパラメータを入力します。

    図34-7 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順2

    図34-7の説明が続きます
    「図34-7 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順2」の説明

    例:

    • URLは使用しているMicrosoft OCSまたはLyncインスタンスの場所です。これはhttp://host:port/RTCで、RTCはサーバー側モジュールがデプロイされている仮想ディレクトリ名です。(詳細は、Microsoft社のドキュメントを参照してください。)

    • Domainプロパティは、後方互換性のために維持されます。これは空白のままにしてください。

    • Connection Timeoutプロパティはオプションです。これは、接続の作成時にWebCenter Portalがサーバーからの応答を待機する時間(秒単位)を表します。プレゼンス・サーバーが指定の時間内に応答しない場合、接続は中断され、エラーが報告されます。

    • User Domainは、Microsoft OCSまたはLyncのActive Directoryドメインです。このパラメータは必須です。

    • Poolnameには、Microsoft Communications Serverコンポーネントがデプロイされているプールの名前を入力します。このパラメータは必須です。(詳細は、Microsoft社のドキュメントを参照してください。)

  9. 同じページで、プレゼンス・サーバーの認証メカニズム(ユーザー名とパスワード)を利用するように、「外部アプリケーション」を選択します。

    Microsoft OCS接続およびMicrosoft Lync接続には、外部アプリケーションが必須です。そのアプリケーションでは、プレゼンス・サーバー・ユーザーをアプリケーション・ユーザーにマップして、エンド・ユーザーが情報を要求するたびにユーザー名とパスワードを入力する必要がなくなるようにします。IMP用の外部アプリケーションの構成の詳細は、第34.2.3項「IMPのセキュリティの設定」を参照してください。

  10. 「接続のテスト」をクリックして、接続が正常であることを確認します。

  11. 「次へ」をクリックします。

  12. 「追加プロパティ」ページ(図34-5)で、必要に応じてパラメータを追加できます。

    図34-8 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順3

    図34-8の説明が続きます
    「図34-8 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順3」の説明

  13. 「終了」をクリックします。

新しいIMおよびプレゼンス接続は、「アプリケーション・リソース」→「接続」の下に表示されます。

34.2.2 IMP機能の設計時の追加

この項では、アプリケーションへのIMPの基本的な組込みについて説明します。次のサブセクションが含まれます:

34.2.2.1 IMPタスク・フロー

IMPには、タスク・フローはありません。

34.2.2.2 IMP機能をアプリケーションに追加する方法

IMPをFrameworkアプリケーションに追加するには:

  1. 第2章「開発環境の設定」の手順に従い、カスタマイズ可能なページをアプリケーションで作成します。

  2. IMPを追加するページを開きます。

  3. プレゼンス・サーバーに接続するようにアプリケーションが構成されていることを確認します。詳細は、第34.2.1項「IMP用の接続の設定」を参照してください。

  4. コンポーネント・パットで、「プレゼンス」コンポーネントをドラッグして、「プレゼンス」アイコンを追加するページにドロップします(図34-9)。

    図34-9 コンポーネント・パレット - IMPコンポーネント

    図34-9の説明が続きます
    「図34-9 コンポーネント・パレット - IMPコンポーネント」の説明

    「プレゼンス」アイコンは、ディスカッション・トピックの作成者、メールの送信者/受信者、ドキュメントの所有者など、ユーザーを表示するあらゆる場所に使用できます。

  5. 結果のダイアログ・ボックスで、インスタント・メッセージおよびプレゼンス接続にリンクされたバックエンド・サーバーに存在する、ユーザーのユーザー名を入力します。

    プレゼンス・コンポーネントは、いくつでもアプリケーション・ページに追加できます。

    プレゼンス・コンポーネントのオプション・パラメータの詳細は、第34.3.2項「IMPビューのカスタマイズ」を参照してください。

  6. 「終了」をクリックします。

  7. コンポーネント・パレットから、プレゼンス・データをドラッグして、ページの末尾(つまり、<af:document>タグの前)にドロップします。

    このコンポーネントに属性はありません。

    プレゼンス・データ・コンポーネントは、ページ上のすべてのプレゼンス・コンポーネントのステータス情報(オンライン、オフライン、ビジーなど)を提供します。これにより、ページ全体のユーザーに対応するすべてのプレゼンス情報が一貫したステータス情報を示していることが検証されます。このコンポーネントを使用しないと、すべてのユーザーがオンラインとして表示されます。

    プレゼンス・データ・コンポーネントは、バックエンド・サーバーへのコールを行うため、最高のパフォーマンスを実現するには、このコンポーネントがページの最後のタグになるようにします。このタグがアプリケーション内のすべてのページに追加されないようにするために、プレゼンス・データが最後(つまり、</af:form>タグの直前)のコンポーネントとして含まれるページ・テンプレートの使用を検討してください。


    注意:

    実行時に、コンポーネント(フォーラム、メール、ドキュメントなど)の追加が可能なページを作成できます。多くのコンポーネントにプレゼンス・タグが含まれていますが、プレゼンス・データ・タグをユーザーがページに追加する手段はありません。カスタム・ページにプレゼンスを表示するには、基になるテンプレートに手動でプレゼンス・データ・タグを追加する必要があります。


  8. 接続を作成するときに、IDE接続に「外部アプリケーション」を選択した場合は、リソース・パレットまたはコンポーネント・パレットから「外部アプリケーション - パスワードの変更」タスク・フローをドラッグして、アプリケーションにドロップします。

    このタスク・フローにより、エンド・ユーザーは、適切なユーザー名とパスワードを外部アプリケーションに設定できます。

  9. プロジェクトを保存し、ページをブラウザで実行して、プレゼンス・コンポーネントを確認します。

    図34-10は、実行時のプレゼンス・コンポーネントとユーザーMonty Montasaurus111の表示名を示しています。

    図34-10 WebCenter Portalの「プレゼンス」アイコン(オンライン)

    Monty Motasaurusオフラインのアイコン

34.2.3 IMPのセキュリティの設定

IMPにはユーザー・アイデンティティが必要です。WebCenter Portal - Frameworkアプリケーション・テンプレートを使用してアプリケーションを作成すると、デフォルトでADFセキュリティが構成されます。ADFセキュリティの構成の詳細は、第74.3項「ADFセキュリティの構成」を参照してください。

資格証明は、外部アプリケーション(パブリック資格証明)から読み取られ、プレゼンス・サーバーへのログオンに使用されます。ADFセキュリティを適用していない場合や、外部アプリケーションが構成されていない場合、ユーザーは実行時に認証できず、コンテンツが表示されません。


注意:

プレゼンス・サーバーとFrameworkアプリケーションは、同じアイデンティティ・ストアを指す必要があります。このアイデンティティ・ストアは、jazn-data.xmlによるファイルベースのものではなく、LDAPベースのものであることが必要です。


プレゼンス・サーバーにアクセスするため、IMPは専用のユーザー・アカウントで外部アプリケーションを使用できます。

Microsoft LCS、OCSおよびLyncは、外部アプリケーション接続をサポートしています。セキュリティ保護されたアプリケーションの場合、ユーザーはプレゼンス・ステータスを取得します。「資格証明の変更」オプションは、外部アプリケーションを使用するかわりの手段として機能します。ログイン済のユーザーは、自分の「プレゼンス」ポップアップ・メニューをクリックして、「資格証明の変更」を選択できます。セキュリティは、信頼できるプライベート・ネットワークに設定する必要があります。

認証に外部アプリケーションを使用するには:

  1. インスタント・メッセージおよびプレゼンス接続の作成ウィザードの「一般」ページで、「外部アプリケーション」の横にある「+」アイコンをクリックします。

    これにより、外部アプリケーションの登録ウイザードが起動されます。このアプリケーションは、プレゼンス・サーバーのユーザーをアプリケーション・ユーザーにマップするため、エンド・ユーザーはユーザー名とパスワードを毎回入力する必要がなくなります。


    注意:

    外部アプリケーションの資格証明プロビジョニングは、IMP接続に組み込まれています。外部アプリケーション - パスワードの変更タスク・フローをページにドロップする必要はありません。


  2. 「名前」ページで、次の操作を行います。

    • 「アプリケーション名」に、アプリケーションを識別する一意の名前を入力します。この名前は、Frameworkアプリケーション内、および他の接続間で一意である必要があります。このフィールドは後から変更できないことに注意してください。

    • 「表示名」に、資格証明プロビジョニング画面でエンド・ユーザーに表示されるアプリケーション名を入力します。

  3. 「次へ」をクリックします。

  4. 「一般」ページでは、次のプロパティをデフォルト値のままにしておきます。

    • ログインURL

    • ユーザー名/IDフィールド名

    • パスワード・フィールド名

  5. 「認証メソッド」リストから、「POST」を選択します。これにより、フォーム本体内でログイン資格証明が送信されます。IMP用の外部アプリケーションには、この認証方式が必要になります。

  6. 「次へ」をクリックします。

  7. 「追加フィールド」ページでは、次の操作を実行します。

    「フィールドの追加」をクリックし、「アカウント」という名前のフィールドを追加します。図34-11に示すように、「ユーザーに表示」チェック・ボックスが選択されていることを確認します。


    注意:

    IMP用の外部アプリケーションには、この追加フィールドが必要になります。これは、ユーザーに表示する必要があります。


    図34-11 Account追加フィールド

    図34-11の説明が続きます
    「図34-11 Account追加フィールド」の説明

  8. 外部アプリケーションでは、様々な資格証明を接続に関連付けることができます。

    • 共有資格証明が指定されていると、認証済の各ユーザーは、外部アプリケーションへのアクセスに同じ資格証明(つまり、ここに定義できるユーザー名とパスワード)を使用するようになります。すべてのログイン済ユーザーに対して、1つのプレゼンス・セッションが作成されます。パブリック・ユーザーは、これにアクセスできません。

    • パブリック資格証明の場合、Frameworkアプリケーションを認証することなく、すべての認証されていない(パブリックの)ユーザーに対する特定のプレゼンスIDからのプレゼンスを表示できます。アプリケーションがセキュアでない場合や、ユーザーがログインしていない場合は、パブリック資格証明が使用されます。すべてのパブリック・ユーザーに対して1つのプレゼンス・セッションが作成されます。

    • プライベート資格証明の場合、各ユーザーは個人のIDで認証する必要があります(つまり、各アプリケーション・ユーザーは、自分の資格証明を指定する必要があるということです)。ユーザーごとに、1つのプレゼンス・セッションが作成されます。

  9. 外部アプリケーションにプライベート資格証明を使用させる場合は「終了」をクリックし、共有またはパブリック資格証明を設定する場合は「次へ」をクリックします。

  10. 共有資格証明のみの場合: 「共有資格証明」ページで、「共有資格証明の指定」が選択されていることを確認して、共有ユーザー資格証明とIDを入力します。

  11. パブリック資格証明のみの場合: 「パブリック資格証明」ページで、「パブリック資格証明の指定」が選択されていることを確認して、パブリックで使用するためのユーザー資格証明とIDを入力します。

  12. 「終了」をクリックして、外部アプリケーションを登録します。

  13. IMP接続ウィザードで、IMP用に新しく作成した外部アプリケーション接続が選択されていることを確認します。

外部アプリケーションの使用の詳細は、第74.13項「外部アプリケーションの使用」を参照してください。

34.3 IMPの詳細情報

この項では、IMPで使用可能なオプション機能について説明します。次のサブセクションが含まれます:

34.3.1 ネットワーク・プレゼンスの有効化

WebCenter Portalのプレゼンスが使用できない場合(たとえば、自社でJabber/XMPPプレゼンス・サーバーを使用している場合や、アイデンティティ管理システム全体に各ユーザーが分散されたフェデレーテッド・プレゼンス・サーバーがある場合)は、サード・パーティのネットワーク・プレゼンス・サービスに接続できます。

デフォルトのWebCenter Portalは、ネットワーク・プレゼンスについてYahoo!メッセンジャーをサポートしています。ただし、ネットワーク・プレゼンス・モデルを拡張して、その他のプロバイダ(ICQなど)を含めることもできます。

この項には次のサブセクションが含まれます:

34.3.1.1 Yahoo!メッセンジャー・プレゼンスの設定

WebCenter Portal Frameworkでは、エンド・ユーザーがIMプリファレンスをYahoo!メッセンジャー・プレゼンスに設定できます。ポータルの開発者は、rtcPresenceHandler Beanを利用することで、この機能を有効にします。

Yahoo!メッセンジャー・プレゼンスをFrameworkアプリケーションに組み込むには、次の手順を実行します。

  1. JPSXページの「ソース」タブで、ユーザーがYahoo!メッセンジャーの資格証明を入力するためのユーザー・インタフェース(「Display Name」入力ボックスおよび「IM Address」入力ボックスと、「Save IM Preferences」ボタン)を追加します。

    例34-2に、ユーザーが表示名(Display Name)とIMアドレス(IM Address)を入力するための2つのaf:inputTextコンポーネントと、ユーザーがプリファレンスを保存するためのaf:commandButtonコンポーネントを示します。

    このELを使用してinputText値を設定することで、プリファレンスBeanのdisplayNameimAddressを設定します。値を保存するためにユーザーがボタンをクリックすると、プリファレンスを保存するBeanのメソッドが呼び出されます。

    例34-2 Yahoo!メッセンジャー・プレゼンス用のユーザー・インタフェース

          <af:inputText label="Display Name" 
    value="#{rtcPreferenceHandler.displayName}" id="it1"/>
          <af:inputText label="IM Address" 
    value="#{rtcPreferenceHandler.imAddress}" id="it2"/>
           <af:commandButton text="Save IM Preferences" id="cb1"
    actionListener="#{rtcPreferenceHandler.savePreferences}"/>
    

    例34-3はユーザー・インタフェースを含むページの全ソース・コードを示しています。

    例34-3 Yahooプレゼンスがあるページのソース・コード

    <?xml version='1.0' encoding='UTF-8'?>
    <jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1"
              xmlns:f="http://java.sun.com/jsf/core"
              xmlns:h="http://java.sun.com/jsf/html"
              xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
              xmlns:rtc="http://xmlns.oracle.com/webcenter/collab/rtc">
      <jsp:directive.page contentType="text/html;charset=UTF-8"/>
      <f:view>
        <af:document id="d1">
          <af:form id="f1" usesUpload="true">
            <af:panelStretchLayout id="psl1">
              <f:facet name="bottom"/>
              <f:facet name="center">
                <af:panelGroupLayout layout="scroll"
                                     xmlns:af="http://xmlns.oracle.com/adf/faces/rich"
                                     id="pgl1">
                  <rtc:presence username="#{rtcPreferenceHandler.imAddress}" displayName="#{rtcPreferenceHandler.displayName}" id="p1"/>
                  <rtc:presenceData id="pd1"/>
                  <af:inputText label="Display Name" value="#{rtcPreferenceHandler.displayName}" id="it1"/>
                  <af:inputText label="IM Address" value="#{rtcPreferenceHandler.imAddress}" id="it2"/>
                  <af:commandButton text="Save IM Preferences" id="cb1"
                                    actionListener="#{rtcPreferenceHandler.savePreferences}"/>
                                    
                </af:panelGroupLayout>
              </f:facet>
              <f:facet name="start">
                <af:spacer width="10" height="10" id="s1"/>
              </f:facet>
              <f:facet name="end">
                <af:spacer width="10" height="10" id="s2"/>
              </f:facet>
              <f:facet name="top"/>
            </af:panelStretchLayout>
          </af:form>
        </af:document>
      </f:view>
    </jsp:root>
    
  2. JPSXページを実行して、ユーザーがYahoo!メッセンジャーの資格証明を入力できることを確認します(図34-12)。

    図34-12 Yahoo!メッセンジャーの資格証明を入力するためのユーザー・インタフェース

    図34-12の説明が続きます
    「図34-12 Yahoo!メッセンジャーの資格証明を入力するためのユーザー・インタフェース」の説明

    そのユーザーのプレゼンス・タグが、オンライン(図34-13)またはオフライン(図34-14)のいずれかのYahooプレゼンスを示します。

    図34-13 Yahooの「プレゼンス」アイコン(オンライン)

    図34-13の説明が続きます
    「図34-13 Yahooの「プレゼンス」アイコン(オンライン)」の説明

    図34-14 Yahooの「プレゼンス」アイコン(オフライン)

    図34-14の説明が続きます
    「図34-14 Yahooの「プレゼンス」アイコン(オフライン)」の説明

    図34-15に、ディスカッション・フォーラム・タスク・フローが組み込まれたサンプル・ページを示します。このページには、Yahoo!メッセンジャーのプレゼンスとWebCenter Portalのプレゼンスが一緒に表示されています。

    図34-15 WebCenter PortalのプレゼンスとYahoo!メッセンジャーのプレゼンスを含むサンプル・ページ

    図34-15の説明が続きます
    「図34-15 WebCenter PortalのプレゼンスとYahoo!メッセンジャーのプレゼンスを含むサンプル・ページ」の説明

34.3.1.2 その他のネットワーク・プレゼンス・プロバイダの設定

別のネットワーク・プレゼンス・プロバイダを使用する場合は、そのサービス用のPresenceNetworkAgent実装クラスと、その実装クラスをjarファイルにリストするimp-pna.configファイルを含むアプリケーションをデプロイする必要があります。

たとえば、SamplePNAという新しいプレゼンス・ネットワーク・エージェントについて考えてみます。Project1.SamplePNAクラス・ファイルとimp-pna.configファイルの2つのファイルを作成する必要があります。

  • Project1.SamplePNA.java: このクラスは、oracle.webcenter.collab.rtc.PresenceNetworkAgentを実装します。これは、次の3つのメソッドを実装する必要があります。

    • isSupported(PNAContext context): このメソッドでは、プレゼンスがリクエストされたユーザーをPNAがサポートしている場合にtrueを返す必要があります。提供されるPNAContextオブジェクトには、ユーザー情報を格納します。たとえば、ドメインがexample.comのIMアドレスをすべてサポートするPNAは、PNAContextオブジェクトからimAddressを取得して、ドメインexample.comをチェックできます。

    • getURL(PNAContext context): このメソッドでは、ユーザーの「プレゼンス」アイコンに到達する完全修飾URLを返す必要があります。これも同様に、PNAContextオブジェクトからユーザー情報を取得します。

    • getChatURI(PNAContext context): このメソッドは、チャット・クライアントを起動するブラウザ互換のURIを返します(たとえば、sip:user@example.com)。

    例34-3は、このSamplePNAクラス・ファイルを示しています。

    例34-4 SamplePNAクラス・ファイル

    public class SamplePNA implements PresenceNetworkAgent
    {
    private String DOMAIN = "@example.com";
     
    public SamplePNA()
    {
    super();
    }
     
    //Returns true if the imAddress ends with DOMAIN
    public Boolean isSupported(PNAContext context)
    {
    String imAddress = context.getIMAddress();
    if(imAddress.endsWith(DOMAIN))
    {
    return true;
    }
     
    return false;
    }
     
    //Returns the URL to the icon representing the current status of a user
    public String getURL(PNAContext context)
    {
    String imAddress = context.getIMAddress();
    Strung url = "http://www.example.com?address=" + imAddress;
    return url;
    }
     
    //Returns the browser compatible chat uri to invoke the thick client
    public String getChatURI(PNAContext context)
    {
    String imAddress = context.getIMAddress();
    String chatURI = "sip:" + imAddress;
    return chatURI;
    }
    }
    
  • META-INF/imp-pna.config: このファイルには、使用可能なPNAAgentクラスをリストします。この場合は、次の行のみが含まれます。

    Project1.SamplePNA
    

user@example.comとしてIMアドレスが指定されたプレゼンス・タグがある場合は常に、構成されたURLは「プレゼンス」アイコンとしてユーザー・インタフェース上に表示されます。

<rtc:presence username="user1@example.com" resolveAddress="false"/>

34.3.2 IMPビューのカスタマイズ

表34-1は、プレゼンス・コンポーネントによってサポートされている属性を示しています。username属性のみが必須であり、その他の属性はすべてオプションです。これらの属性は、プロパティ・インスペクタで更新できます。

表34-1 プレゼンス・コンポーネントの説明

属性 説明

username

アプリケーション・ページに追加するプレゼンス情報を持つユーザー。この属性は必須です。

display

コンポーネントの表示方法。次の値のいずれかを指定します。

  • icon: 「プレゼンス」アイコンのみを表示して、名前はレンダリングしません。

  • name: ユーザー名を表示しますが、「プレゼンス」アイコンは表示しません。

  • both (デフォルト): アイコンとユーザー名の両方を表示します。

displayName

デフォルトでは、プレゼンス・コンポーネントはユーザー名を表示します。

service-config.xml内のフラグget.display.name.from.user.profiletrueに設定されており、かつ、このdisplayName属性が指定されていない場合、プレゼンス・コンポーネントは、ユーザー・プロファイルからユーザーの表示名の検索を試行します。

iconPosition

アイコンの場所。有効な値はbeginendです。デフォルト値は、beginです。

controlsEnabled

このコンポーネントがエンド・ユーザーに対して豊富な対話機能を提供するかどうかを定義するブール値。この属性がfalseに設定されている場合は、プレゼンス・コンポーネントをクリックしても何も起きません。

id

ページ上のコンポーネントの一意の識別子。識別子はHTMLで許容されている構文のサブセットに従う必要があります。

  • 長さがゼロの文字列にすることはできません。

  • 最初の文字はASCII文字(A-Z、a-z)またはアンダースコア(_)である必要があります。

  • 後続の文字は、ASCII文字または数字(A-Z、a-z、0-9)、アンダースコア(_)またはダッシュ(-)である必要があります。

smallIcon

小型の12x12アイコン・セット(true)を使用するか、デフォルトの16x16アイコン・セット(false)を使用するかを定義するブール値。デフォルト値はfalseです。

rendered

このコンポーネントをレンダリングするかどうかを定義するブール値。デフォルト値はtrueです。

binding

コンポーネント・インスタンスをBeanに格納するためのEL参照。バッキングBeanからコンポーネントにプログラムでアクセスする場合や、コンポーネントの作成をバッキングBeanに移動する場合は、これを使用します。

inlineStyle

このコンポーネントで使用するCSSスタイル。CSSリリース2.0以上に準拠するスタイルを手動で入力するか、このノードを開いてスタイル要素を指定します。これは、基本的なスタイルの変更用です。

styleClass

このコンポーネントで使用するCSSスタイル・クラス。

resolveToAddress

指定されたusernameをIMアドレスに解決するかどうかを定義するブール値。デフォルト値はtrueです。

ただし、指定されたusernameがIMアドレスの場合は、この値をfalseに設定して、IMPがusernameをIMアドレスとして使用するようにします。


34.3.3 IMPのトラブルシューティング

この項では、IMPで発生する一般的な問題と解決方法について説明します。

問題

「プレゼンス」アイコンが、Frameworkアプリケーションに表示されません。

解決方法

IMP接続がアプリケーション内に存在し、その接続がアクティブとして設定されていることを確認してください。

問題

ユーザーのプレゼンス・ステータスの変更が、Frameworkアプリケーションに表示されません。

解決方法

ログイン済ユーザーのセッションごとに、IMPはプレゼンス・サーバーからプレゼンス情報をフェッチして、その情報をプレゼンス・キャッシュに格納します。プレゼンスのリクエストに対して、IMPはキャッシュの有効期限が切れるまでキャッシュのデータを返します。デフォルトのキャッシュ有効期間は60秒です。

更新されたプレゼンス・ステータスを表示するには、キャッシュの有効期限が切れて、最新のプレゼンス・ステータスが取得されるまで待機してください。

また、rtc.cache.time構成プロパティを必要な値(秒単位)に設定することで、キャッシュ有効期限を変更できます。30秒としてサンプル値を示す強調表示されたエントリを含めるようにadf-config.xmlを更新します。例34-5は例を示しています。

例34-5 adf-config.xml内のrtc.cache.timeの有効期限値の設定

<adf-collaboration-config xmlns="http://xmlns.oracle.com/webcenter/collab/config">
<service-config serviceId="oracle.webcenter.collab.rtc">
<property name="rtc.cache.time" value="30"/></service-config>
</adf-collaboration-config>

問題

いくつかのオプション(「インスタント・メッセージの送信」など)が、FrameworkアプリケーションのIMPのポップアップ・メニューで使用できません。

解決方法

IMPが、Frameworkアプリケーションで構成されていることを確認してください。また、各種ポップアップ・メニュー・オプションについて、次の設定も確認してください。

  • 「プロファイルの表示」オプションが使用できない場合: アプリケーションがセキュリティ保護されていることを確認してください。

  • 「インスタント・メッセージの送信」オプションが使用できない場合: IMPがアプリケーション内で構成されていることを確認してください。

問題

Frameworkアプリケーションからメッセージを送信できません。「インスタント・メッセージの送信」オプションをクリックすると、エラーが返されます。

解決方法

プレゼンス・サーバーでSIPクライアントがサポートされていることと、認証されたユーザーとしてログオンしていることを確認してください。サポート対象のSIPクライアントは、Microsoft Communicatorです。