(57)【要約】【課題】アプリケーション共有に関する技術の欠点に対処して、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のための方法、システム、およびコンピュータ・プログラム製品を提供すること。【解決手段】第１の実施形態では、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のためのデータ処理システムは、動的ウィジェット・ブラウザに通信でリンクされた動的ウィジェット・サーバを含むことができる。動的ウィジェット・ブラウザは、動的ウィジェット・サーバによって起動されたアプリケーションのための動的ビューに対応する動的ウィジェットにピア接続された１つまたは複数のリモート動的ウィジェットを含むユーザ・インタフェースの描画を可能にするプログラム・コードを含むことができる。【選択図】図１
2007102793.tif 000002
【特許請求の範囲】
【請求項１】
動的ウィジェット・ブラウザに通信でリンクされた動的ビュー・サーバを含む、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のためのデータ処理システムであって、
前記動的ウィジェット・ブラウザが、前記動的ビュー・サーバによって起動されたアプリケーションのための動的ビューに対応する動的ウィジェットにピア接続された１つまたは複数のリモート動的ウィジェットを含むユーザ・インタフェースの描画を可能にするプログラム・コードを含む、データ処理システム。
【請求項２】
前記動的ビュー・サーバが、前記対応する動的ウィジェットを前記動的ビューに組み込むように構成されたアプリケーション・ビルダを含む、請求項１に記載のデータ処理システム。
【請求項３】
前記動的ビュー・サーバが、前記動的ウィジェット・ブラウザによって提供された要求に応答して起動された各アプリケーションごとに通信セッションを確立するように構成されたセッション・マネージャを含む、請求項１に記載のデータ処理システム。
【請求項４】
使用可能なアプリケーションおよび対応する動的ビューを含むレジストリと、
前記レジストリを閲覧する要求をリスン可能にし、前記レジストリにリストアップされたアプリケーションを起動可能にするリスナ・ロジックと
をさらに含む、請求項１に記載のデータ処理システム。
【請求項５】
前記対応する動的ウィジェットの各々が動的ウィジェット・ライブラリに配置されると共に、標準ウィジェット・ツールキット（ＳＷＴ）ウィジェットの拡張を含む、請求項１に記載のデータ処理システム。
【請求項６】
前記拡張が、
リモート・ピア・ウィジェットを生成するようにプログラムされたinitメソッドと、
リスナ・オブジェクトを生成し、それを前記生成されたリモート・ピア・ウィジェットに結合するようにプログラムされたadd_listenerメソッドと
を含む、請求項５に記載のデータ処理システム。
【請求項７】
前記動的ウィジェット・ライブラリが、リスナ・テーブルと、クローン・ファクトリと、同期エンジンとを含む、請求項５に記載のデータ処理システム。
【請求項８】
ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のための方法であって、
共有可能なアプリケーションのアプリケーション・ユーザ・インタフェースを移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットと移動不可能なグラフィカル・ユーザ・インタフェース・ウィジェットに分離するステップと、
前記アプリケーションのための同期された動的ビューに組み込むために、前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットのリモート・ピア・インスタンスをクライアント・ホストに配布するステップと、
前記リモート・ピア・インスタンスをサーバ・ホスト内の前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットの対応するインスタンスと同期させるステップと
を含む方法。
【請求項９】
各クライアント・ホストに配布するために、複数の共有可能なアプリケーションおよび対応するビューを登録するステップと、
前記共有可能なアプリケーションのうちの選択されたアプリケーションの起動を求める要求をリスンするステップと
をさらに含む、請求項８に記載の方法。
【請求項１０】
前記アプリケーションのための同期された動的ビューに組み込むために、前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットのリモート・ピア・インスタンスをクライアント・ホストに配布する前記ステップが、
前記クライアント・ホスト内の前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットの前記リモート・ピア・インスタンスを生成するステップと、
前記リモート・ピア・インスタンスで発生したイベントを前記対応するインスタンスに送るために、リスナ・オブジェクトを前記各リモート・ピア・インスタンスに結合するステップと
を含む、請求項８に記載の方法。
【請求項１１】
前記リモート・ピア・インスタンスを、サーバ・ホスト内の前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットの対応するインスタンスと同期させる前記ステップが、
前記リモート・ピア・インスタンスから受信したイベントをリスンするステップと、
メソッド呼出しを、前記対応するインスタンスから前記リモート・ピア・インスタンスに転送するステップと
を含む、請求項８に記載の方法。
【請求項１２】
ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のための、プログラムであって、該プログラムがコンピュータに、
共有可能なアプリケーションのためのアプリケーション・ユーザ・インタフェースを移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットと移動不可能なグラフィカル・ユーザ・インタフェース・ウィジェットに分離する機能と、
前記アプリケーションのための同期された動的ビューに組み込むために、前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットのリモート・ピア・インスタンスをクライアント・ホストに配布する機能と、
前記リモート・ピア・インスタンスをサーバ・ホスト内の前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットの対応するインスタンスと同期させる機能と、
をコンピュータに実現させるプログラム。
【請求項１３】
クライアント・ホストに配布するために、複数の共有可能なアプリケーションおよび対応するビューを登録する機能と、
前記共有可能なアプリケーションのうちの選択されたアプリケーションの起動を求める要求を受けとる機能と
をさらに含む、請求項１２に記載のプログラム。
【請求項１４】
前記アプリケーションのための同期された動的ビューに組み込むために、前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットのリモート・ピア・インスタンスをクライアント・ホストに配布する機能が、
前記クライアント・ホスト内の前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットの前記リモート・ピア・インスタンスを生成する機能と、
前記リモート・ピア・インスタンスで発生したイベントを前記対応するインスタンスに送るために、リスナ・オブジェクトを前記リモート・ピア・インスタンスの各々に結合する機能と
を含む、請求項１２に記載のプログラム。
【請求項１５】
前記リモート・ピア・インスタンスを、サーバ・ホスト内の前記移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットの対応するインスタンスと同期させる機能が、
前記リモート・ピア・インスタンスから受信したイベントを受けとる機能と、
メソッド呼出しを前記対応するインスタンスから前記リモート・ピア・インスタンスに転送する機能と
を含む、請求項１２に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は共同コンピューティングの分野に関し、より詳細には共同環境におけるユーザ・インタフェース共有に関する。
【背景技術】
【０００２】
インターネットの急速な発展により、通信および共同作業の高度な方式がもたらされた。インターネットをバックボーンとして使用することで、世界中の人々が、これまで従来の電話通信やビデオ会議では不可能であった方法でサイバー空間に集合して、アイデア、文書、および画像を共有することができる。インターネットを介した共同作業を容易にするために、インターネットという単一のデータ通信媒体を介して音声、ビデオ、およびデータを有効に配布するための多数の技術およびプロトコルが集成されてきた。これらの技術には、インスタント・メッセージング、インターネット電話、アプリケーション共有などがある。
【０００３】
従来のアプリケーション共有では、アプリケーション・ホストは、ホスト内で動作中のアプリケーションの画像を、コンピュータ通信ネットワークに分散された１つまたは複数のアプリケーション・ビューアに配布することができる。これらの画像は、共有アプリケーションの動作に関して描画された画面だけでなく、マウス・ポインタの動きなどのビジュアル表示を含むこともできる。しかし、一般には、画像は、ホスト・システムで動作中のアプリケーションに関する実際の表示の、離散的な「スナップショット」だけを含むことができる。このように、各ビューアは単に共有アプリケーションの動作の一部についてのシャドウ・レンダリング（shadow rendering）だけを表示するが、アプリケーション・ビューアにはアプリケーションの共有に関する状況を表示することもできる。
【０００４】
画素ベースのアプリケーション共有技術を用いると、アプリケーションの表示を表す一連の画像を取り込むことが可能になる。各画像はコンピュータ通信ネットワークを介して送信することができ、それらは、描画されたときに、そのホスト環境におけるアプリケーションの表示を複製したイリュージョン（illusion）を提供することができる。それにもかかわらず、この方法でアプリケーション共有をサポートするために使用される基本的な技術は、全体のアプリケーション・ユーザ・インタフェースまたは完全なデスクトップ・ユーザ・インタフェースを共有しなければならないという点で、多くの制限を含む。例えば、仮想ネットワーク・コンピューティング（ＶＮＣ）などの画素ベースのソリューションは、ユーザ・インタフェースの一部だけを共有する機能を提供する。ＶＮＣでは、画面領域の各画素が取り込まれ、リモート・ステーションに送信される。しかし、ＶＮＣは、共有されるユーザ・インタフェースに対する粗い制御しか提供しないが、ユーザ・インタフェースのサービス提供（gratuity）は画面領域であり、それによって、いくつかの本質的な制限がもたらされる。
【０００５】
より詳細には、画素ベースの画面共有は、より広いネットワーク帯域幅を必要とする。例えば、５０×３０のボタンを表すデータのサイズは、ほぼ１Ｋバイトになる。さらに、画素ベースの画面共有では、共有されるユーザ・インタフェースの内容を理解して高度な動作の要件を満たすこと、例えば、共有されるユーザ・インタフェースのレイアウトを再構成してリモート・ステーションのフォーム・ファクタに適合させること、または情報を送信する前にユーザ・インタフェースからいくつかの個人情報を削除することなどは非常に難しい。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
したがって、装置のフォーム・ファクタが多様であり、ネットワーク機能が大幅に異なり、また人々が個人のプライバシに関心がある異機種混合環境においてアプリケーションを共有することは、従来の画素ベースのアプリケーション共有技術にとっての大きな課題である。
【課題を解決するための手段】
【０００７】
本発明の諸実施形態は、アプリケーション共有に関する技術の欠点に対処し、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のための、新規で非自明な方法、システム、およびコンピュータ・プログラム製品を提供する。第１の実施形態においては、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のためのデータ処理システムは、動的ウィジェット・ブラウザに通信でリンクされた動的ウィジェット・サーバを含むことができる。動的ウィジェット・ブラウザは、動的ウィジェット・サーバによって起動されたアプリケーションのための動的ビューに対応する動的ウィジェットにピア接続された１つまたは複数のリモート動的ウィジェットを含むユーザ・インタフェースの描画を可能にするプログラム・コードを含むことができる。
【０００８】
本発明の他の実施形態では、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のための方法は、共有可能なアプリケーションのアプリケーション・ユーザ・インタフェースを移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットと移動不可能なグラフィカル・ユーザ・インタフェース・ウィジェットに分離するステップと、そのアプリケーションのための同期された動的ビューに組み込むために、移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットのリモート・ピア・インスタンスをクライアント・ホストに配布するステップと、そのリモート・ピア・インスタンスをサーバ・ホスト内の移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットの対応するインスタンスと同期させるステップとを含むことができる。
【０００９】
本発明の追加の態様については、その一部を以下の説明の中に記載する。したがって、追加の態様の一部は以下の説明から明らかになるはずであり、またその一部は本発明を実施することによって理解できるはずである。本発明の諸態様は、添付の特許請求の範囲の中に詳細に指摘した諸要素、およびその組合せによって実現し達成することができるものである。前述の一般的な説明および以下の詳細な説明のどちらもが、例示および説明のためのものに過ぎず、特許請求の範囲に記載の本発明を制限するものではないことに留意されたい。
【００１０】
本明細書に組み込まれ、その一部を構成する添付の図面は、本発明の実施形態を例示し、詳細な説明と共に本発明の原理を説明するためのものである。本明細書に例示した諸実施形態は、現在好ましい実施形態を示すものであるが、本発明が図示の構成および手段そのものに限定されるものではないことを理解されたい。
【発明を実施するための最良の形態】
【００１１】
本発明の諸実施形態は、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のための方法、システム、およびコンピュータ・プログラム製品を提供する。本発明の一実施形態によれば、共有可能なアプリケーションのためのアプリケーション・ユーザ・インタフェースは、移動可能なグラフィカル・ユーザ・インタフェース・ウィジェット・ユニットと移動不可能なグラフィカル・ユーザ・インタフェース・ウィジェット・ユニットに分離することができる。アプリケーションが様々なサーバ・ホストに分散されている場合には、移動可能なグラフィカル・ユーザ・インタフェース・ウィジェット・ユニットの各々をアプリケーションの様々な部分に対応させることができる。
【００１２】
各移動可能なグラフィカル・ユーザ・インタフェース・ウィジェット・ユニットは、アプリケーションのためのクライアント・ユーザ・インタフェースに組み込むために様々なクライアント・ホストに分散させることができる。クライアント・ホストのうちの様々なクライアント・ホストに分散された移動可能なグラフィカル・ユーザ・インタフェース・ウィジェットの各インスタンスの状態は、アプリケーションの状態と同期させることができる。このようにして、アプリケーションが単一のサーバ・ホストに存在するか、あるいはアプリケーションの一部が様々なサーバ・ホストに分散されているかに関係なく、アプリケーションのためのユーザ・インタフェースを共有することができる。
【００１３】
ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有を容易にするために、分散ビュー・サーバは、クライアント・ホストがサーバ・ホスト上のアプリケーションのための移動可能なユーザ・インタフェース・ウィジェットを見つけることを可能にし、エンド・ユーザが分散描画のために移動可能なユーザ・インタフェース・ウィジェットを操作することを可能にするフレームワークを提供することができる。分散動的標準ウィジェット・ライブラリを含めて各アプリケーションに標準グラフィックＡＰＩ（アプリケーション・プログラミング・インタフェース）を提供することもできるが、各ＡＰＩは分散方式で実装されることになる。その結果、このライブラリに基づいて構築されたアプリケーションは、様々なリモート・ホストの内部に一部または全体のユーザ・インタフェースを表示するオプション、およびリモート・ホストからの各イベントを受信するオプションを選択することができる。例えば、動的標準ウィジェット・ライブラリは、当技術分野で知られた標準ウィジェット・ツールキット（ＳＷＴ）のＡＰＩを実装することができ、またＳＷＴの挙動を拡張することもできる。この拡張により、リモート・クライアント・ホストにおけるＳＷＴウィジェットの分散描画が可能になると共に、サーバ・ホストにおける分散ＳＷＴウィジェットのためのリモート・ホストからのユーザ・インタフェース・イベントの受信が可能になり、その結果、ユーザ・インタフェースにおけるユーザの入力が取得され、ソース・ユーザ・インタフェースとその分散コピーの間の同期が維持される。
【００１４】
さらに説明を続けると、図１は、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のために構成されたデータ処理システムの概略図である。データ処理システムは、コンピュータ通信ネットワーク１３０を介して１つまたは複数のクライアント・ホスト１１０に結合されたサーバ・ホスト１２０を含むことができる。クライアント・ホストは、１つのコンピュータ装置内に存在することも、複数のコンピュータ装置に渡って存在することもできる（説明を簡単にするために、ただ１つのクライアント・ホスト１１０だけが示されている）。各クライアント・ホスト１１０は、クライアント・ホスト１１０への配布に使用できるアプリケーションおよび対応するビューを閲覧すると共に、選択されたアプリケーションの選択されたビューの内部にユーザ・インタフェース・ウィジェットを提供するように構成された動的ウィジェット・ブラウザ１６５を含むことができる。
【００１５】
サーバ・ホスト１２０は、１つまたは複数のアプリケーション１４０を含むことができる。アプリケーション１４０は、クライアント・ホスト１１０のうちのリモート・ホストへの配布に使用可能なアプリケーションと動的アプリケーション・ビューのリストを含むことができるレジストリ１７０に結合することができる。アプリケーション１４０はさらに、動的ビュー・サーバ１５０に結合することができる。動的ビュー・サーバ１５０は、ユーザおよびポリシ・ロジック１６０Ａ、リスナ・ロジック１６０Ｂ、セッション・ロジック１６０Ｃ、ならびにアプリケーション・ビルダ・ロジック１６０Ｄを含むことができる。最後に、動的ウィジェット・サーバ１５０は、動的ウィジェット・ライブラリ１９０の１つまたは複数の動的ウィジェットに基づいてコンテナ１８５内に１つまたは複数の動的ビュー１７５を生成するように構成された動的ワークベンチ・ファクトリ１８０に結合することができる。特に、動的ウィジェット・ブラウザ１６５は、分散ユーザ・インタフェースを介してユーザ入力を取得することができ、また分散ユーザ・インタフェースに対するあらゆる変更を検出することができる。ユーザ入力および変更イベントは、同期の目的で動的ビュー・サーバ１５０に提供することができる。
【００１６】
動作に際して、アプリケーション１４０を、レジストリ１７０に格納するためのアプリケーションおよび関連する動的ビューの識別を指定する動的ビュー・サーバ１５０に登録することができる。アプリケーション１４０が動的ビュー・サーバ１５０に登録された後で、リスナ・ロジック１６０Ｂはクライアント・ホスト１１０からの要求を受信することができる。要求には、使用可能なアプリケーション１４０および対応する動的ビューを識別するための発見要求、アプリケーション１４０のうちの選択されたアプリケーションを起動または停止するためのアプリケーション制御要求、ならびに多様な用途に適合させるために選択された動的ビューをコピー、移動、マルチキャスト、およびブロードキャストするための動的ビュー制御要求を含めることができる。例えば、会議の場合には、ユーザは動的ビューをあるグループの人々にブロードキャストすることができる。
【００１７】
エンド・ユーザは、動的ウィジェット・ブラウザ１６５を使用して、動的ビュー・サーバ１５０と対話することができる。エンド・ユーザ対話の一部として、動的ビュー・サーバ１５０は、ユーザおよびポリシ・ロジック１６０Ａを使用して、クライアント・ホスト１１０の要求を検証することができる。エンド・ユーザが使用可能な対話には、レジストリ１７０にリストアップされた使用可能なアプリケーション１４０および対応する動的ビューを閲覧することを含めることができる。対話にはさらに、アプリケーション１４０のうちの選択されたアプリケーションを起動すること、およびアプリケーション１４０のうちの選択されたアプリケーションのためのユーザ・インタフェースの一部が動的ウィジェット・ブラウザ１６５に描画されるように要求することを含めることができる。動的ウィジェット・ブラウザ１６５内で起動された各アプリケーション１４０に対して、セッション管理ロジック１６０Ｃは、対応するセッションを生成することができる。
【００１８】
対応するセッションが生成された後で、動的ウィジェット・ブラウザ１６５は、分散された動的ビューを描画することに関する機能および特性を動的ビュー・サーバ１５０に報告することができる。この機能および特性は、アプリケーション・ビルダ・ロジック１６０Ｄによる動的ビュー構成のために使用することができる。対応するセッションはさらに、動的ウィジェット・ブラウザ１６５の動的状態、例えば、ウィジェット・ブラウザ１６５内に示されたアクティブな分散動的ビューのリストを維持することができる。動的状態は、予期せぬネットワーク例外の場合に、動的ウィジェット・ブラウザ１６５内部のコンテンツを復元するために分散ビュー・サーバ１５０によって使用することができる。
【００１９】
特に、アプリケーション・ビルダ・ロジック１６０Ｄは、クライアント・ホスト１１０から受信した各ユーザ・インタフェース要求ごとに、その要求に対するユーザ・インタフェース・レイアウトを生成することができる。詳細には、アプリケーション・ビルダ・ロジック１６０Ｄは、動的ワークベンチ・ファクトリ１８０を呼び出して、応答のためのバックグラウンド・コンテナ１８５を生成することができる。アプリケーション・ビルダ・ロジック１６０Ｄはさらに、コンテナ１８５のための１つまたは複数の動的ビュー１７５を生成することができる。アプリケーション・ビルダ・ロジック１６０Ｄが動的ビュー１７５を構成するとき、アプリケーション・ビルダ・ロジック１６０Ｄは、ユーザおよびポリシ・ロジック１６０Ａを調べて、ソース・ビューから、例えば電子メール・アドレスや携帯電話番号などの個人情報を含む選択されたウィジェットを削除することができる。アプリケーション・ビルダ・ロジック１６０Ｄはさらに、ターゲット分散ビュー・ブラウザ１６５の特性に適合させるためにソース・ビューのレイアウトを再構成することもできる。例えば、ソース・ビューのサイズが分散ビュー・ブラウザ１６５のウィンドウの物理サイズよりはるかに大きい場合は、アプリケーション・ビルダ・ロジック１６０Ｄはソース・ビューをいくつかのページに分割することができる。最後に、ユーザ・インタフェース・レイアウトを、動的ウィジェット・ライブラリ１９０を介してクライアント・ホスト１１０に転送することができる。動的ウィジェット・ブラウザ１６５は順に、ユーザ・インタフェース・レイアウトを受信し、描画用のローカル・ウィジェット・ライブラリ１４５を呼び出すことができる。次に、ローカル・ウィジェット・ライブラリ１４５は、ネイティブ・ユーザ・インタフェースＡＰＩ１５５を呼び出して、クライアント・ホスト１１０にユーザ・インタフェース・レイアウトを提供することができる。
【００２０】
共有ビュー内の各ユーザ・インタフェース・ウィジェットの配布および同期を容易にするために、基本のユーザ・インタフェース・ツールキットを拡張して、リモートに配置され描画されたウィジェットとのピア接続を可能にすることもできる。例えば、図２に示したように、動的ＳＷＴライブラリ内に定義されたＳＷＴウィジェット２１０を拡張して、init(..)メソッド２５０およびadd_listener(..)メソッド２６０を含めることができる。init(..)メソッド２５０は、ローカル・ウィジェット２９０に結合されたリモート・ピア・ウィジェット２２０の生成を可能にするプログラム・コードを含むことができる。init(...)メソッド２５０は、アプリケーションがＳＷＴウィジェット２１０の新しいインスタンスを生成しようとするときに呼び出すことができる。init(...)メソッド２５０は、それに応答して分散ビュー・ブラウザに通知を送信することができる。その結果として、分散ビュー・ブラウザはリモート・ピア・ウィジェット２２０のインスタンスを生成する。
【００２１】
次に、add_listener(..)メソッド２６０は、リモート・ピア・リスナ２３０Ｂを生成し、そのリモート・ピア・リスナ２３０Ｂをリモート・ピア・ウィジェット２２０に追加することを可能にするプログラム・コードを含むことができる。アプリケーションは、add_listener(...)メソッド２６０を使用して、イベント・リスナ２３０Ａをウィジェット・インスタンス２１０に追加することができる。次に、add_listener(...)メソッドは、分散ビュー・ブラウザ内にピア・リスナ２３０Ｂを生成することができる。次に、ピア・リスナ２３０Ｂは、リモート・ピア・ウィジェット２２０のadd_listener(...)メソッド２６０Ｂを呼び出すことによって、それ自体をリモート・ピア・ウィジェット２２０に登録することができる。
【００２２】
動作に際して、ＳＷＴウィジェット２１０のパブリック・メソッド２４０Ａに対する呼出しは、リモート・ピア・ウィジェット２２０の対応するメソッド２４０Ｂに転送することができる。さらに、ローカル・ウィジェット２９０で生じたイベントは、ウィジェット２１０のリスナ２３０とピア・リスナ２３０Ｂの間の通信を介してウィジェット２１０に送ることができる。複数のユーザをサポートするために、リスナ・テーブル２７０Ａ、クローン・ファクトリ２７０Ｂ、および同期エンジン２７０Ｃを、ＳＷＴウィジェット２１０の生成に使用される動的ＳＷＴライブラリ２７０に含めることができる。最後に、リモートＳＷＴライブラリとローカルＳＷＴライブラリの間の通信を容易にするために、マッチする動的ＳＷＴセッション２８０Ａおよび２８０Ｂを確立することができる。
【００２３】
より詳細な説明において、図３は、図２のアーキテクチャにおけるユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のためのプロセスを示すイベント図である。図３に示したように、クライアントは、動的ビュー・サーバに要求３１０を転送してアプリケーションを起動することができる。次に、動的ビュー・サーバは、アプリケーションのためのユーザ・セッションを生成３２０することができる。続いて、生成されたユーザ・セッションは、アプリケーション・ビルダに要求３３０を転送して、ビューを生成することができる。その後、アプリケーション・ビルダは、ウィジェット・ワークベンチを生成３４０すると共に、アプリケーション・ビルダは、１つまたは複数の動的ビューを繰り返し３５０生成３６０することができる。次に、生成された各動的ビューは、ローカル・ウィジェットを生成３８０し、初期化３７０することができる。次いで、生成され初期化されたローカル・ウィジェットは、リモート・ピア・ウィジェットを生成３９０することができる。最後に、ワークベンチは、イベント処理のためのビューをオープンする４００ことができる。
【００２４】
本発明の諸実施形態は、すべてがハードウェアの実施形態、すべてがソフトウェアの実施形態、またはハードウェアとソフトウェアの両方の要素を含む実施形態の形をとることができる。好ましい実施形態では、本発明はソフトウェアの形で実装されている。このソフトウェアには、ファームウェア、常駐ソフトウェア、マイクロコードなどが含まれるが、これらに限られるものではない。さらに本発明は、コンピュータまたは任意の命令実行システムによって使用される、またはそれらと共に使用されるプログラム・コードを提供する、コンピュータで使用可能な、またはコンピュータ可読の媒体からアクセス可能なコンピュータ・プログラム製品の形をとることもできる。
【００２５】
本明細書の目的では、コンピュータで使用可能な媒体、またはコンピュータ可読の媒体は、命令実行システム、装置、もしくはデバイスによって使用される、またはそれらと共に使用されるプログラムを、収容、格納、通信、伝播、または伝送することができる任意の装置であってよい。媒体は、電子的、磁気的、光学的、電磁的、赤外、または半導体システム（もしくは装置もしくはデバイス）、あるいは伝播媒体であってもよい。コンピュータ可読媒体の例には、半導体または固体メモリ、磁気テープ、リムーバブル・コンピュータ・ディスケット、ＲＡＭ（ランダム・アクセス・メモリ）、ＲＯＭ（読出し専用メモリ）、硬質磁気ディスク、光ディスクなどがある。光ディスクの現行の例には、ＣＤ−ＲＯＭ（読出し専用のコンパクト・ディスク）、ＣＤ−ＲＷ（読み書き可能なコンパクト・ディスク）、ＤＶＤなどがある。
【００２６】
プログラム・コードの格納または実行、あるいはその両方に適したデータ処理システムは、システム・バスを介してメモリ素子に直接または間接に結合された、少なくとも１つのプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行の間に使用されるローカル・メモリ、大容量記憶装置、および実行時に大容量記憶装置からコードを取り出さなければならない回数を削減するために、少なくともプログラム・コードの一部を一時的に記憶するキャッシュ・メモリを含むことができる。入／出力またはＩ／Ｏ装置（これらに限られるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなど）は、直接、または中間のＩ／Ｏコントローラを介してシステムに結合することができる。ネットワーク・アダプタをシステムに結合して、データ処理システムが、中間にあるプライベート・ネットワークまたはパブリック・ネットワークを介して、他のデータ処理システムまたはリモート・プリンタまたは記憶装置に結合できるようにすることもできる。モデム、ケーブル・モデム、およびイーサネット・カードは、現在使用可能な種類のネットワーク・アダプタの一例に過ぎない。
【図面の簡単な説明】
【００２７】
【図１】ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のために構成されたデータ処理システムを示す概略図である。
【図２】ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有をサポートするように構成された分散ユーザ・インタフェース・アーキテクチャの構成図である。
【図３】図２のアーキテクチャにおける、ユーザ・インタフェース・ウィジェット・ユニット・ベースのアプリケーション共有のための処理を示すイベント図である。
【符号の説明】
【００２８】
１１０  クライアント・ホスト
１２０  サーバ・ホスト
１３０  コンピュータ通信ネットワーク
１４０  アプリケーション
１４５  ローカル・ウィジェット・ライブラリ
１５０  動的ビュー・サーバ、動的ウィジェット・サーバ、分散ビュー・サーバ
１５５  ネイティブ・ユーザ・インタフェースＡＰＩ
１６０Ａ  ポリシ・ロジック
１６０Ｂ  リスナ・ロジック
１６０Ｃ  セッション・ロジック、セッション管理ロジック
１６０Ｄ  アプリケーション・ビルダ・ロジック
１６５  動的ウィジェット・ブラウザ、ウィジェット・ブラウザ、分散ビュー・ブラウザ
１７０  レジストリ
１７５  動的ビュー
１８０  動的ワークベンチ・ファクトリ
１８５  コンテナ、バックグラウンド・コンテナ
１９０  動的ウィジェット・ライブラリ
２１０  ＳＷＴウィジェット、ウィジェット・インスタンス、ウィジェット
２２０  リモート・ピア・ウィジェット
２３０  リスナ
２３０Ａ  イベント・リスナ
２３０Ｂ  リモート・ピア・リスナ、ピア・リスナ
２４０Ａ  パブリック・メソッド
２４０Ｂ  メソッド
２５０  init(..)メソッド
２６０  add_listener(..)メソッド
２６０Ｂ  add_listener(...)メソッド
２７０  動的ＳＷＴライブラリ
２７０Ａ  リスナ・テーブル
２７０Ｂ  クローン・ファクトリ
２８０Ａ  ＳＷＴセッション
２８０Ｂ  ＳＷＴセッション
２７０Ｃ  同期エンジン
２９０  ローカル・ウィジェット
【図１】
2007102793.tif 000003
【図２】
2007102793.tif 000004
【図３】
2007102793.tif 000005