Oracle® Fusion Middleware Oracle WebCenter Portal開発者ガイド 11g リリース1 (11.1.1.7.0) B72084-02 |
|
前 |
次 |
この章では、設計時にWebCenter Portal: Frameworkアプリケーションにインスタント・メッセージおよびプレゼンス(IMP)サービスを統合する方法について説明します。
インスタント・メッセージおよびプレゼンスの管理および組込みの詳細は、次を参照してください。
『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』のインスタント・メッセージおよびプレゼンス・サービスの管理に関する項
『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』のインスタント・メッセージおよびプレゼンス・サービスの使用に関する項
この章には次の項が含まれます:
IMPサービスを使用すると、他の認証済アプリケーション・ユーザーのプレゼンス・ステータス(オンライン、オフライン、ビジーまたは退席中)を監視できるようになります。これは、インスタント・メッセージやメールなどの対話オプションへの簡単なアクセスを提供します。さらに、自社のプレゼンスが使用できない場合(出張中など)は、サード・パーティのネットワーク・プレゼンス・サービス(Yahoo!メッセンジャーなど)に接続することもできます。
WebCenter Portalのサービスが、同一IDのユーザー名を保持しているときには、そのサービスをIMPサービス(ディスカッション、ドキュメント、メールなど)と統合できます。
この項では、IMPの機能と要件の概要を説明します。次のサブセクションが含まれます:
図34-1は、オンラインにいるユーザーを示す「プレゼンス」アイコンを示しています。
たとえばドキュメント・ライブラリのドキュメントの作成者としてユーザーが示されていれば、このアイコンをクリックすることでポップアップ・メニューを起動できます(図34-2)。
このポップアップ・メニューには、次のアクションが含まれています。
プロファイルの表示: 選択したユーザーのプロファイル・ページが表示されます。このページには、メールIDや連絡先電話番号などの情報が含まれています。
メールの送信: メール・クライアント・セットの作成ウィンドウが開きます。これは、WebCenter Portalのメール・サービスまたはローカルのメール・クライアントのどちらかになります。
資格証明の変更: これは、外部アプリケーションを使用するかわりの手段になります。現在のユーザーに対してのみ表示されます。
インスタント・メッセージの送信: コンピュータで実行中のインスタント・メッセージ・クライアント(Microsoft Communicator)を開きます。
連絡先名の横にあるアイコンは、各連絡先のプレゼンス状態を示します。
プレゼンス・ステータス・オプションのスクリーン・ショットやその説明など、実行時のIMPサービスの詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal: Spacesユーザーズ・ガイド』を参照してください。
この項では、IMPサービスをアプリケーションに追加するために必要な手順について説明します。次のサブセクションが含まれます:
プレゼンス・サーバーを適切にインストールして実行した後で、そのサーバーへの接続を追加する必要があります。この項では方法について説明します。次のサブセクションが含まれます:
IMPサービスには、プレゼンス・サーバー(Microsoft LCS、Microsoft OCSまたはMicrosoft Lync)へのインスタント・メッセージおよびプレゼンス接続が必要になります。
独自の認証を処理するアプリケーションとWebCenter Portalのサービスが相互作用するときには、そのアプリケーションと外部アプリケーション定義を関連付けて、資格証明プロビジョニングに備えることができます。外部アプリケーションは必須です。
注意: Oracle JDeveloperで設計時にバックエンド・サーバーへの接続を設定できますが、デプロイ後の環境でEnterprise Manager Fusion Middleware Controlを使用して、後から接続を追加、削除または変更できます。詳細は、『Oracle Fusion Middleware Oracle WebCenter Portal管理者ガイド』を参照してください。 |
im.address.resolver.class
は、ユーザー名をIMアドレスにマップし、IMアドレスをユーザー名にマップするために使用するリゾルバの実装を処理します。この実装は、次に示す場所と順序でIMアドレスを検索します。
ユーザー・プリファレンス - ユーザーがプレゼンス・サービスの「プリファレンス」ページで自分のIMアドレスを入力しておくと、そのユーザーのIMアドレスはユーザーのプリファレンスで見つかります。
ユーザー資格証明 - 外部アプリケーションが構成されている場合は、アカウント・フィールドにユーザーのIMアドレスが示されます。
ユーザー・プロファイル - ユーザーがプリファレンスを指定していないときに、WebCenter Portalが外部アプリケーションからIMアドレスをフェッチできない場合、WebCenter PortalはLDAP(つまり、ユーザーのプロファイル)からIMアドレスを読み取ります。デフォルトのLDAPプロパティの読取り先は、BUSINESS_EMAIL
属性です。ユーザーはこのデフォルトをim.address.profile.attribute
で変更できます。
独自のリゾルバ実装を使用するには、IMPAddressResolver
クラスを開いて、2つのメソッドresolveAddress
とresolveUsername
を実装します。
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に関する項 |
LCSプレゼンス・サーバーへの接続を設定するには:
Oracle JDeveloperで、インスタント・メッセージおよびプレゼンス・サービスを利用するアプリケーションを開きます。
アプリケーション・ナビゲータの「アプリケーション・リソース」で、「接続」を右クリックし、リストから新しい接続「インスタント・メッセージおよびプレゼンス」を選択します。
「インスタント・メッセージおよびプレゼンス接続の作成」ダイアログ・ボックスで、接続の作成先として「アプリケーション・リソース」を選択します。
「アプリケーション・リソース」の接続はそのアプリケーションでのみ使用可能ですが、「IDE接続」の接続は作成したすべてのアプリケーションで使用可能です。他のアプリケーション内の接続を使用する予定の場合は、再作成する必要を回避するためにIDE接続を選択します。
「名前」ページで、「接続名」に接続の一意の名前を入力します。
他の接続が同じ名前を持つことはできません。
「接続タイプ」リストから、Microsoft Live Communication Server 2005を選択します。
図34-3に示すように、これをデフォルト接続として使用するには、「デフォルト接続として設定」チェック・ボックスを選択します。
「次へ」をクリックします。
「一般」ページ(図34-4)で、Microsoft LSCインスタンスの情報を入力します。
例:
Url
はhttp://host:port/RTC
です。ここで、RTCはサーバー側モジュールがデプロイされた仮想ディレクトリ名です。(詳細は、Microsoft Live Communications Server 2005のドキュメントを参照してください。)
Domain
プロパティは、後方互換性のために維持されます。これは空白のままにしてください。
Connection Timeout
プロパティはオプションです。これは、接続の作成時にサービスがサーバーからの応答を待機する時間(秒単位)を表します。プレゼンス・サーバーが指定の時間内に応答しない場合、接続は中断され、エラーが報告されます。
PoolName
には、Microsoft Communications Serverコンポーネントがデプロイされているプールの名前を入力します。(詳細は、Microsoft Live Communications Serverのドキュメントを参照してください。)
同じページで、プレゼンス・サーバーの認証メカニズム(ユーザー名とパスワード)を利用するように、「外部アプリケーション」を選択します。
LCS接続には、外部アプリケーションが必須です。そのアプリケーションでは、プレゼンス・サーバー・ユーザーをアプリケーション・ユーザーにマップして、エンド・ユーザーが情報を要求するたびにユーザー名とパスワードを入力する必要がなくなるようにします。IMPサービス用の外部アプリケーションの構成の詳細は、第34.2.3項「IMPサービスのセキュリティの設定」を参照してください。
「接続のテスト」をクリックして、接続が正常であることを確認します。
「次へ」をクリックして接続を作成します。
「追加プロパティ」ページ(図34-5)で、必要に応じてパラメータを追加できます。
「終了」をクリックします。
新しいIMおよびプレゼンス接続は、「アプリケーション・リソース」→「接続」の下に表示されます。
Microsoft OCSまたはMicrosoft Lyncプレゼンス・サーバーへの接続を設定するには:
Oracle JDeveloperで、インスタント・メッセージおよびプレゼンス・サービスを利用するFrameworkアプリケーションを開きます。
アプリケーション・ナビゲータの「アプリケーション・リソース」で、「接続」を右クリックし、リストから新しい接続「インスタント・メッセージおよびプレゼンス」を選択します。
「インスタント・メッセージおよびプレゼンス接続の作成」ダイアログ・ボックスで、接続の作成先として「アプリケーション・リソース」を選択します。
「アプリケーション・リソース」の接続はそのアプリケーションでのみ使用可能ですが、「IDE接続」の接続は作成したすべてのアプリケーションで使用可能です。他のアプリケーション内の接続を使用する予定の場合は、再作成する必要を回避するためにIDE接続を選択します。
「名前」ページで、「接続名」に接続の一意の名前を入力します。
他の接続が同じ名前を持つことはできません。
「接続タイプ」リストから、Microsoft Office Communications Server 2007を選択します。
注意: Microsoft Lyncの接続は、Microsoft Office Communications Server 2010の接続タイプを使用します。 |
「デフォルト接続として設定」チェック・ボックスを選択します。
サービスでは、図34-6に示すように、1つの接続がデフォルト接続としてマークされる必要があります。
図34-6 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順1
「次へ」をクリックします。
「一般」ページ(図34-7)で、Microsoft OCSまたはMicrosoft Lyncインスタンスのパラメータを入力します。
図34-7 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順2
例:
URL
は使用しているMicrosoft OCSまたはLyncインスタンスの場所です。これはhttp://host:port/RTC
で、RTCはサーバー側モジュールがデプロイされている仮想ディレクトリ名です。(詳細は、Microsoft社のドキュメントを参照してください。)
Domain
プロパティは、後方互換性のために維持されます。これは空白のままにしてください。
Connection Timeout
プロパティはオプションです。これは、接続の作成時にサービスがサーバーからの応答を待機する時間(秒単位)を表します。プレゼンス・サーバーが指定の時間内に応答しない場合、接続は中断され、エラーが報告されます。
User Domain
は、Microsoft OCSまたはLyncのActive Directoryドメインです。このパラメータは必須です。
Poolname
には、Microsoft Communications Serverコンポーネントがデプロイされているプールの名前を入力します。このパラメータは必須です。(詳細は、Microsoft社のドキュメントを参照してください。)
同じページで、プレゼンス・サーバーの認証メカニズム(ユーザー名とパスワード)を利用するように、「外部アプリケーション」を選択します。
Microsoft OCS接続およびMicrosoft Lync接続には、外部アプリケーションが必須です。そのアプリケーションでは、プレゼンス・サーバー・ユーザーをアプリケーション・ユーザーにマップして、エンド・ユーザーが情報を要求するたびにユーザー名とパスワードを入力する必要がなくなるようにします。IMPサービス用の外部アプリケーションの構成の詳細は、第34.2.3項「IMPサービスのセキュリティの設定」を参照してください。
「接続のテスト」をクリックして、接続が正常であることを確認します。
「次へ」をクリックします。
「追加プロパティ」ページ(図34-5)で、必要に応じてパラメータを追加できます。
図34-8 Microsoft OCSまたはMicrosoft LyncのIMP接続の作成、手順3
「終了」をクリックします。
新しいIMおよびプレゼンス接続は、「アプリケーション・リソース」→「接続」の下に表示されます。
この項では、アプリケーションへのIMPサービスの基本的な組込みについて説明します。次のサブセクションが含まれます:
IMPサービスには、タスク・フローはありません。
IMPサービスをFrameworkアプリケーションに追加するには:
第3章「開発環境の準備」の手順に従い、カスタマイズ可能なページをアプリケーションで作成します。
IMPサービスを追加するページを開きます。
プレゼンス・サーバーに接続するようにアプリケーションが構成されていることを確認します。第34.2.1項「IMPサービスの接続の設定」を参照してください。
コンポーネント・パットで、「プレゼンス」コンポーネントをドラッグして、「プレゼンス」アイコンを追加するページにドロップします(図34-9)。
「プレゼンス」アイコンは、ディスカッション・トピックの作成者、メールの送信者/受信者、ドキュメントの所有者など、ユーザーを表示するあらゆる場所に使用できます。
結果のダイアログ・ボックスで、インスタント・メッセージおよびプレゼンス接続にリンクされたバックエンド・サーバーに存在する、ユーザーのユーザー名を入力します。
プレゼンス・コンポーネントは、いくつでもアプリケーション・ページに追加できます。
プレゼンス・コンポーネントのオプション・パラメータの詳細は、第34.3.2項「IMPビューのカスタマイズ」を参照してください。
「終了」をクリックします。
コンポーネント・パレットから、プレゼンス・データをドラッグして、ページの末尾(つまり、<af:document>
タグの前)にドロップします。
このコンポーネントに属性はありません。
プレゼンス・データ・コンポーネントは、ページ上のすべてのプレゼンス・コンポーネントのステータス情報(オンライン、オフライン、ビジーなど)を提供します。これにより、ページ全体のユーザーに対応するすべてのプレゼンス情報が一貫したステータス情報を示していることが検証されます。このコンポーネントを使用しないと、すべてのユーザーがオンラインとして表示されます。
プレゼンス・データ・コンポーネントは、バックエンド・サーバーへのコールを行うため、最高のパフォーマンスを実現するには、このコンポーネントがページの最後のタグになるようにします。このタグがアプリケーション内のすべてのページに追加されないようにするために、プレゼンス・データが最後(つまり、</af:form>
タグの直前)のコンポーネントとして含まれるページ・テンプレートの使用を検討してください。
注意: 実行時に、コンポーネント(フォーラム、メール、ドキュメントなど)の追加が可能なページを作成できます。多くのコンポーネントにプレゼンス・タグが含まれていますが、プレゼンス・データ・タグをユーザーがページに追加する手段はありません。カスタム・ページにプレゼンスを表示するには、基になるテンプレートに手動でプレゼンス・データ・タグを追加する必要があります。 |
接続を作成するときに、IDE接続に「外部アプリケーション」を選択した場合は、リソース・パレットまたはコンポーネント・パレットから「外部アプリケーション - パスワードの変更」タスク・フローをドラッグして、アプリケーションにドロップします。
このタスク・フローにより、エンド・ユーザーは、適切なユーザー名とパスワードを外部アプリケーションに設定できます。
プロジェクトを保存し、ページをブラウザで実行して、プレゼンス・コンポーネントを確認します。
図34-10は、実行時のプレゼンス・コンポーネントとユーザーMonty Montasaurus111の表示名を示しています。
IMPサービスには、ユーザー・アイデンティティが必要になります。WebCenter Portal - Frameworkアプリケーション・テンプレートを使用してアプリケーションを作成すると、デフォルトでADFセキュリティが構成されます。ADFセキュリティの構成の詳細は、第68.3項「ADFセキュリティの構成」を参照してください。
資格証明は、外部アプリケーション(パブリック資格証明)から読み取られ、プレゼンス・サーバーへのログオンに使用されます。ADFセキュリティを適用していない場合や、外部アプリケーションが構成されていない場合、ユーザーは実行時に認証できず、コンテンツが表示されません。
注意: プレゼンス・サーバーとFrameworkアプリケーションは、同じアイデンティティ・ストアを指す必要があります。このアイデンティティ・ストアは、 |
プレゼンス・サーバーにアクセスするため、IMPサービスは専用のユーザー・アカウントで外部アプリケーションを使用できます。
Microsoft LCS、OCSおよびLyncは、外部アプリケーション接続をサポートしています。セキュリティ保護されたアプリケーションの場合、ユーザーはプレゼンス・ステータスを取得します。「資格証明の変更」オプションは、外部アプリケーションを使用するかわりの手段として機能します。ログイン済のユーザーは、自分の「プレゼンス」ポップアップ・メニューをクリックして、「資格証明の変更」を選択できます。セキュリティは、信頼できるプライベート・ネットワークに設定する必要があります。
認証に外部アプリケーションを使用するには:
インスタント・メッセージおよびプレゼンス接続の作成ウィザードの「一般」ページで、「外部アプリケーション」の横にある「+」アイコンをクリックします。
これにより、外部アプリケーションの登録ウイザードが起動されます。このアプリケーションは、プレゼンス・サーバーのユーザーをアプリケーション・ユーザーにマップするため、エンド・ユーザーはユーザー名とパスワードを毎回入力する必要がなくなります。
注意: 外部アプリケーションの資格証明プロビジョニングは、IMP接続に組み込まれています。外部アプリケーション - パスワードの変更タスク・フローをページにドロップする必要はありません。 |
「名前」ページで、次の操作を行います。
「アプリケーション名」に、アプリケーションを識別する一意の名前を入力します。この名前は、Frameworkアプリケーション内、および他の接続間で一意である必要があります。このフィールドは後から変更できないことに注意してください。
「表示名」に、資格証明プロビジョニング画面でエンド・ユーザーに表示されるアプリケーション名を入力します。
「次へ」をクリックします。
「一般」ページでは、次のプロパティをデフォルト値のままにしておきます。
ログインURL
ユーザー名/IDフィールド名
パスワード・フィールド名
「認証メソッド」リストから、「POST」を選択します。これにより、フォーム本体内でログイン資格証明が送信されます。IMPサービス用の外部アプリケーションには、この認証方式が必要になります。
「次へ」をクリックします。
「追加フィールド」ページでは、次の操作を実行します。
「フィールドの追加」をクリックし、「アカウント」という名前のフィールドを追加します。図34-11に示すように、「ユーザーに表示」チェック・ボックスが選択されていることを確認します。
注意: IMPサービス用の外部アプリケーションには、この追加フィールドが必要になります。これは、ユーザーに表示する必要があります。 |
外部アプリケーション・サービスでは、様々な資格証明を接続に関連付けることができます。
共有資格証明が指定されていると、認証済の各ユーザーは、外部アプリケーションへのアクセスに同じ資格証明(つまり、ここに定義できるユーザー名とパスワード)を使用するようになります。すべてのログイン済ユーザーに対して、1つのプレゼンス・セッションが作成されます。パブリック・ユーザーは、これにアクセスできません。
パブリック資格証明の場合、Frameworkアプリケーションを認証することなく、すべての認証されていない(パブリックの)ユーザーに対する特定のプレゼンスIDからのプレゼンスを表示できます。アプリケーションがセキュアでない場合や、ユーザーがログインしていない場合は、パブリック資格証明が使用されます。すべてのパブリック・ユーザーに対して1つのプレゼンス・セッションが作成されます。
プライベート資格証明の場合、各ユーザーは個人のIDで認証する必要があります(つまり、各アプリケーション・ユーザーは、自分の資格証明を指定する必要があるということです)。ユーザーごとに、1つのプレゼンス・セッションが作成されます。
外部アプリケーションにプライベート資格証明を使用させる場合は「終了」をクリックし、共有またはパブリック資格証明を設定する場合は「次へ」をクリックします。
共有資格証明のみの場合: 「共有資格証明」ページで、「共有資格証明の指定」が選択されていることを確認して、共有ユーザー資格証明とIDを入力します。
パブリック資格証明のみの場合: 「パブリック資格証明」ページで、「パブリック資格証明の指定」が選択されていることを確認して、パブリックで使用するためのユーザー資格証明とIDを入力します。
「終了」をクリックして、外部アプリケーションを登録します。
IMP接続ウィザードで、IMP用に新しく作成した外部アプリケーション接続が選択されていることを確認します。
外部アプリケーションの使用の詳細は、第68.13項「外部アプリケーションの使用」を参照してください。
この項では、IMPサービスに使用できるオプションの機能について説明します。次のサブセクションが含まれます:
WebCenter Portalのプレゼンスが使用できない場合(たとえば、自社でJabber/XMPPプレゼンス・サーバーを使用している場合や、アイデンティティ管理システム全体に各ユーザーが分散されたフェデレーテッド・プレゼンス・サーバーがある場合)は、サード・パーティのネットワーク・プレゼンス・サービスに接続できます。
デフォルトのWebCenter Portalは、ネットワーク・プレゼンスについてYahoo!メッセンジャーをサポートしています。ただし、ネットワーク・プレゼンス・モデルを拡張して、その他のプロバイダ(ICQなど)を含めることもできます。
この項には次のサブセクションが含まれます:
WebCenter Portal Frameworkでは、エンド・ユーザーがIMプリファレンスをYahoo!メッセンジャー・プレゼンスに設定できます。ポータルの開発者は、rtcPresenceHandler
Beanを利用することで、この機能を有効にします。
Yahoo!メッセンジャー・プレゼンスをFrameworkアプリケーションに組み込むには、次の手順を実行します。
JPSXページの「ソース」タブで、ユーザーがYahoo!メッセンジャーの資格証明を入力するためのユーザー・インタフェース(「Display Name」入力ボックスおよび「IM Address」入力ボックスと、「Save IM Preferences」ボタン)を追加します。
例34-2に、ユーザーが表示名(Display Name)とIMアドレス(IM Address)を入力するための2つのaf:inputText
コンポーネントと、ユーザーがプリファレンスを保存するためのaf:commandButton
コンポーネントを示します。
このELを使用してinputText
値を設定することで、プリファレンスBeanのdisplayName
とimAddress
を設定します。値を保存するためにユーザーがボタンをクリックすると、プリファレンスを保存する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>
JPSXページを実行して、ユーザーがYahoo!メッセンジャーの資格証明を入力できることを確認します(図34-12)。
そのユーザーのプレゼンス・タグが、オンライン(図34-13)またはオフライン(図34-14)のいずれかのYahooプレゼンスを示します。
図34-15に、ディスカッション・フォーラム・タスク・フローが組み込まれたサンプル・ページを示します。このページには、Yahoo!メッセンジャーのプレゼンスとWebCenter Portalのプレゼンスが一緒に表示されています。
図34-15 WebCenter PortalのプレゼンスとYahoo!メッセンジャーのプレゼンスを含むサンプル・ページ
別のネットワーク・プレゼンス・プロバイダを使用する場合は、そのサービス用の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
アプリケーションをパッケージ化して、これをカスタム共有ライブラリ(たとえば、WebCenter Portal: Spacesのライブラリ)としてデプロイする方法の詳細は、第55章「JDeveloperを使用したSpacesアプリケーションの拡張」を参照してください。
user@example.com
としてIMアドレスが指定されたプレゼンス・タグがある場合は常に、構成されたURLは「プレゼンス」アイコンとしてユーザー・インタフェース上に表示されます。
<rtc:presence username="user1@example.com" resolveAddress="false"/>
表34-1は、プレゼンス・コンポーネントによってサポートされている属性を示しています。username
属性のみが必須であり、その他の属性はすべてオプションです。これらの属性は、プロパティ・インスペクタで更新できます。
表34-1 プレゼンス・コンポーネントの説明
属性 | 説明 |
---|---|
|
アプリケーション・ページに追加するプレゼンス情報を持つユーザー。この属性は必須です。 |
|
コンポーネントの表示方法。次の値のいずれかを指定します。
|
|
デフォルトでは、プレゼンス・コンポーネントはユーザー名を表示します。
|
|
アイコンの場所。有効な値は |
|
このコンポーネントがエンド・ユーザーに対して豊富な対話機能を提供するかどうかを定義するブール値。この属性が |
|
ページ上のコンポーネントの一意の識別子。識別子はHTMLで許容されている構文のサブセットに従う必要があります。
|
|
小型の12x12アイコン・セット( |
|
このコンポーネントをレンダリングするかどうかを定義するブール値。デフォルト値は |
|
コンポーネント・インスタンスをBeanに格納するためのEL参照。バッキングBeanからコンポーネントにプログラムでアクセスする場合や、コンポーネントの作成をバッキングBeanに移動する場合は、これを使用します。 |
|
このコンポーネントで使用するCSSスタイル。CSSリリース2.0以上に準拠するスタイルを手動で入力するか、このノードを開いてスタイル要素を指定します。これは、基本的なスタイルの変更用です。 |
|
このコンポーネントで使用するCSSスタイル・クラス。 |
|
指定された ただし、指定された |
この項では、IMPサービスで発生する一般的な問題と解決方法について説明します。
問題
「プレゼンス」アイコンが、Frameworkアプリケーションに表示されません。
解決方法
IMP接続がアプリケーション内に存在し、その接続がアクティブとして設定されていることを確認してください。
問題
ユーザーのプレゼンス・ステータスの変更が、Frameworkアプリケーションに表示されません。
解決方法
ログイン済ユーザーのセッションごとに、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です。