JP2007503624A - 表示データ・マッピングの方法、システム、およびプログラム - Google Patents

表示データ・マッピングの方法、システム、およびプログラム Download PDF

Info

Publication number
JP2007503624A
JP2007503624A JP2006532965A JP2006532965A JP2007503624A JP 2007503624 A JP2007503624 A JP 2007503624A JP 2006532965 A JP2006532965 A JP 2006532965A JP 2006532965 A JP2006532965 A JP 2006532965A JP 2007503624 A JP2007503624 A JP 2007503624A
Authority
JP
Japan
Prior art keywords
node
window
data
pixel
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2006532965A
Other languages
English (en)
Other versions
JP4398466B2 (ja
JP2007503624A5 (ja
Inventor
クライトン、ジョセフ、エム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007503624A publication Critical patent/JP2007503624A/ja
Publication of JP2007503624A5 publication Critical patent/JP2007503624A5/ja
Application granted granted Critical
Publication of JP4398466B2 publication Critical patent/JP4398466B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/545Gui

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Digital Computer Display Output (AREA)
  • User Interface Of Digital Computer (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

【課題】 表示データ・マッピングの方法、システム、およびプログラムを提供することにある。
【解決手段】 少なくとも1つのウィンドウ(64A〜64H)を含む表示域(60)に関する表示データが共用フォーマットにマッピングされる方法が提供される。表示域内の各ウィンドウに関する属性情報が決定され、各ウィンドウごとに作成された固有のノード(66A〜66H)に保管される(S2)。属性情報を使用してノード階層(62)が生成される(S3)。ノード内の属性情報を使用して、表示データが共用フォーマットにマッピングされる(S7)。その後、マッピングされた表示データは、1つまたは複数の他のシステムと共用することができる。
【選択図】 図3

Description

本発明は、一般に、表示データをマッピングすることに関し、詳細には、1つまたは複数のフォーマットから1つの共用フォーマットに表示データをマッピングすることに関する。
個人間のコラボレーションは多くの形を呈し、対面、電話、および電子メールは最もユビキタスなものの一部である。技術が進歩するにつれて、個人は、ビデオ、音声、ホワイトボード・マークアップ、チャット、ならびにコンピュータ・アプリケーションを共用することにより、さらにコラボレーションしようと努めてきた。このような共用を可能にする2つの一般的なコラボレーション・ソフトウェア・プログラム(software product)は、Lotus SAMETIME(商標)およびMicrosoft NETMEETING(商標)である。多くの現行コラボレーション・ソフトウェア・プログラムの問題の1つは、そのプラットフォーム依存関係である。たとえば、Microsoft NETMEETING(商標)は、Microsoft WINDOWS(商標)オペレーティング・システムのあるバージョンを使用するシステム上でのみ機能する。異なるプラットフォームは異なる方法で表示データを管理する。これは、プラットフォーム間で使用できるコラボレーション・プログラム(collaborationproduct)の作成に対する重大な障害を提起する。
たとえば、表示データは、表示内の各ピクセルに関するピクセル・データを含む。ピクセル・データは、ピクセルの位置、ピクセルのカラー、およびピクセルの深さに関する情報を含む。ピクセル・データ内のカラー情報を表すために様々なフォーマットが使用される。その結果として、プラットフォーム間の表示データの共用を実現するために、ピクセル・データを共用フォーマットに変換することができる。しかし、いくつかの要因により、多くの実現例はピクセル・データを共用フォーマットに効率よく変換することができない。1つの要因は、変換すべき表示域内の各ピクセルを「所有」するウィンドウを決定する必要があることである。ウィンドウは、ピクセルに関するピクセル・データを提供するときにそのピクセルを所有する。
典型的なウィンドウ表示環境では、ウィンドウは階層関係を有することができる。たとえば、その表示スペース内に1つまたは複数の子ウィンドウを含む親ウィンドウを作成することができる。子ウィンドウもそれ自体の1つまたは複数の子ウィンドウを有することができる。各ウィンドウは任意の祖先ウィンドウ(ancestor window)(すなわち、親ウィンドウ、祖父母ウィンドウ(grandparent window)など)の表示スペースの一部分を占有する。兄弟ウィンドウは、同じ親ウィンドウを共用するかまたは親ウィンドウを一切持たない(すなわち、デスクトップ上に表示される)。兄弟ウィンドウにはスタック順序が割り当てられる。スタック順序は、兄弟ウィンドウが描画される順序を決定し、その結果、2つの兄弟ウィンドウに関する表示域がオーバラップするときにどちらの兄弟ウィンドウが「上に」あるかを決定する。ウィンドウのサイズ、スタック順序、および数は頻繁にユーザによって変更される。たとえば、親ウィンドウは、表示域全体を占めるように「最大化」される可能性がある。さらに、ユーザは、部分的に兄弟ウィンドウの後ろにあるウィンドウを選択することができ、その結果、選択されたウィンドウは兄弟ウィンドウの上に示される。
たとえば、X Window Systemでは、各ウィンドウごとに異なる方法でピクセル・データをフォーマットすることができるので、このシステムではピクセル所有権を決定することは重要なことである。X Window Systemは、表示を変更するためのコマンドを含む処理を「Xクライアント」(アプリケーション)が実行するクライアント/サーバ・ウィンドウ・システムである。これらのコマンドは、表示変更を実現する(すなわち、ユーザに画像を「供する」)「Xサーバ」に提供される。Xサーバはその表示を備えたコンピュータ上に常駐し、Xクライアントは、その表示を備えたコンピュータを含むコンピュータ・ネットワーク内の任意のコンピュータ上に常駐することができる。
典型的な表示フォーマットは、「深さ」、すなわち、各ピクセルに関するピクセル・データに使用されるビット数と、「ビジュアル(visual)」、すなわち、ピクセル・データをどのように解釈するかによって変化する。深さは、ウィンドウ内のピクセルについて一度に表示できるカラーの数を決定する。たとえば、8ビットの深さを有するピクセル・データは、最高256(28)色のカラーを同時に表示できるようにする。一般に、ビジュアルは、カラー値を含むものとしてピクセル・データを解釈すべきか、またはカラー値を含むカラー・テーブル(複数も可)に対する1つまたは複数の指標を含むものとしてピクセル・データを解釈すべきかを決定する。X Window System環境には6通りの標準タイプのビジュアルが存在し、TrueColorピクセル・データはピクセル・データ内にエンコードされた赤/緑/青(RGB)カラー値を含み、StaticColorおよびStaticGrayピクセル・データは不変のカラー値を含むカラー・テーブルに対する指標を含み、DirectColorピクセル・データは3つの個別の変更可能カラー・テーブル内のRGBカラー値をルックアップするための3つの個別の指標値を含み、GrayScaleおよびPseudoColorピクセル・データはカラー値を含む変更可能カラー・テーブルに対する指標を有する。最後の3通りのビジュアルにより、1つまたは複数のカラー・テーブル内の値を変更することができ、それにより、特定の値について表示される実際のカラーを可変のものにすることができる。24ビットのTrueColorフォーマットは、表示データに一般に使用されるフォーマットである。このフォーマットでは、各カラー(すなわち、赤、緑、および青)に関する実際の値は24ビットの値のうちの固有の8ビット部分によって表される。多くのシステムおよびアプリケーションはこのフォーマットをサポートするように構成されている。たとえば、サン・マイクロシステムズ社によって開発されたJAVA(商標)プログラミング言語は、24ビットのTrueColorフォーマットをサポートするものであり、多数のシステムおよびプラットフォーム上に実現されている。
表示の一領域が変更された時期を決定することは、表示データを効率よく変換することを妨げるもう1つの要因である。たとえば、Xサーバは、アプリケーションにユーザ開始イベントを通知するための表示ベースのイベント・ストリームおよび照会メカニズムを提供し、それにより、アプリケーションがユーザと対話できるようにする。アプリケーションは、どのイベントに関する通知を所望するかを指定し、そのイベントに基づいて適切なアクションを実行することができる。一般的なイベントとしては、ウィンドウの作成/破壊、ウィンドウのサイズ変更、ウィンドウのスタック順序の変更などを含む。しかし、Xサーバは、表示の一領域が変更された時期をシグナル通知するイベントを提供しない。その結果として、他のシステムと表示域を共用するためには、表示域全体に関する表示データを絶えずコピーしモニターしなければならない。
X Window System内で表示データを共用することを含むアプリケーション共用を実現するために、いくつかの手法が提供されている。たとえば、個別のビューア・プログラムを実行することができる。この手法は、AT&T Laboratoriesによって提供された仮想ネットワーク・コンピューティング(VNC:Virtual Network Computing)ソリューションで使用される。代わって、複数のXクライアントとXサーバとの間の通信を多重化することができる。この手法は、ブラウン大学によって開発されたXMXソリューションで使用される。しかし、これらの手法はいずれも、アプリケーションを共用するために、Xサーバ内でアプリケーションを始動することを必要とする。これは、アプリケーションが起動される前にそのアプリケーションを共用するかまたはリモート側でそのアプリケーションにアクセスしたいという要求をユーザが認識する必要があることを意味する。この制限は、アプリケーションを容易に再始動できないときに生産性を低下させる可能性がある。アプリケーション共用のためのもう1つの手法は、Xサーバに機能拡張を追加することである。しかし、拡張機能を使用することは、この手法を容易に実現できるプラットフォームの数を著しく制限する。各ピクセルをカテゴリ化しマッピングすることは、共用表示域内の様々なウィンドウが異なる表示フォーマットを使用して表示データを表す可能性があるときに、外部機能(すなわち、プロキシなし、標準のX11プロトコル)を使用して表示データを共用しようと努めるX Windowベースの共用手法に関するもう1つのパフォーマンス上の問題である。種々の表示フォーマットの使用に対処しようと試みる外部手法は、ウィンドウの階層関係を利用する、ピクセル・データをマッピングするための効率の良いソリューションを提供することができない。
その結果、複数のウィンドウが存在し、表示データを表すために2つ以上の表示フォーマットが使用される表示域に関する表示データを効率よくマッピングするための方法が必要である。
本発明は、表示データ・マッピングの方法、システム、およびプログラムを提供する。マッピングされる表示域に関連する様々なウィンドウおよびそのそれぞれの属性情報を表すノード階層が生成される。表示域に関する表示データが入手され、ノード階層を使用して効率よくマッピングされる。マッピングされた表示データは、たとえば、複数のシステムのユーザ間のコラボレーションを実現するために使用することができる。たとえば、X Windowアプリケーションは、そのアプリケーションが実行される場所またはXサーバ・ソフトウェアを変更する必要なしに共用することができる。さらに、本発明により、システムは種々のタイプのシステム(すなわち、X WindowおよびMicrosoft WINDOWS(商標))と表示データを共用することができる。
本発明の第1の態様は、少なくとも1つのウィンドウを含む表示域に関する表示データをマッピングする方法を提供し、この方法は、各ウィンドウごとにノードを作成するステップであって、各ノードが階層関係データを含むステップと、階層関係データに基づいてノード階層を生成するステップと、ノード階層を使用して第1のフォーマットから共用フォーマットに表示データをマッピングするステップとを有する。
本発明の第2の態様は、少なくとも1つのウィンドウを含む共用表示域に関する表示データを共用するためのシステムを提供し、このシステムは、各ウィンドウごとにノードを作成するための手段と、各ノードを含むノード階層を管理するための手段と、ノード階層を使用して表示データを共用フォーマットにマッピングするための手段と、マッピングされた表示データを宛先コンピュータと共用するための手段とを有する。
本発明の第3の態様は、少なくとも1つのウィンドウを含む共用表示域に関する表示データをマッピングするためのシステムを提供し、このシステムは、各ウィンドウごとにノードを作成するための手段と、各ノードを含むノード階層を管理するための手段と、ノード階層を使用して表示データを共用フォーマットにマッピングするための手段とを有する。
本発明の第4の態様は、少なくとも1つのウィンドウを含む表示域に関する表示データをマッピングするためにそこに実施されたコンピュータ可読プログラム・コードを有するコンピュータ使用可能媒体を有するコンピュータ・プログラムを提供し、このプログラムは、各ウィンドウごとにノードを作成するように構成されたプログラム・コードであって、そのノードが属性情報を含むプログラム・コードと、各ノードを含むノード階層を管理するように構成されたプログラム・コードと、ノード階層を使用して表示データを共用フォーマットにマッピングするように構成されたプログラム・コードとを有する。
本発明の第5の態様は、方法を実行するための命令がそこに保管されたコンピュータ可読記憶媒体を提供し、この方法は、各ウィンドウごとにノードを作成するステップであって、各ノードが階層関係データを含むステップと、階層関係データに基づいてノード階層を生成するステップと、ノード階層を使用して第1のフォーマットから共用フォーマットに表示データをマッピングするステップとを有する。
本発明の例示的な諸態様は、本明細書に記載された問題および論じていない他の問題であって当業者によって発見可能な問題を解決するように設計されている。
本発明の上記その他の特徴は、添付図面に併せて取り上げた本発明の様々な態様に関する以下の詳細な説明から、より容易に理解されるであろう。
本発明の図面は一定の縮尺ではないことは留意されることである。図面は、本発明の典型的な諸態様のみを描写するためのものであり、したがって、本発明の範囲を制限するものと見なしてはならない。図面では、同様の番号は図面間で同様の要素を表している。
本発明は、表示データ・マッピングの方法、システム、およびプログラムを提供する。マッピングされる表示域に関連する様々なウィンドウおよびそのそれぞれの属性情報を表すノード階層が生成される。表示域に関する表示データが入手され、ノード階層を使用して効率よくマッピングされる。マッピングされた表示データは、たとえば、コラボレーション・システムの一部として複数のシステムのユーザ間で表示データを共用できるようにするために使用することができる。以下の説明ではコラボレーション・システムの一部として実現された本発明を記載しているが、そのコラボレーション・システムは本発明を実現できる様々なシステムの例証に過ぎないことは言うまでもない。
便宜上のためにのみ、以下の説明は、I.環境、II.コラボレーション・システムの概要、およびIII.マッピング方法という見出しによって示される3つの項を含む。
I.環境
図1は、例示的な表示域60を示している。表示域60は、現在知られているかまたは今後開発される任意の方法を使用して定義することができる。たとえば、表示域60は、アプリケーションによるか、1つまたは複数のウィンドウによって定義された領域によるか、ディスプレイ(すなわち、モニターの画面区域)の表示域の一部分または全部を有する領域によるか、ディスプレイの複数の排反領域(disjoint area)によるか、またはこれらの組合せにより定義することができる。
表示域60内のウィンドウ64A〜64Hは、互いに関連する可能性もあれば、互いに一切関係を持たない可能性もある。たとえば、各ウィンドウ64A〜64Hは、固有のアプリケーションに関するデータを表示することができ、したがって、任意の他のウィンドウ64A〜64Hとの関係を一切持つことができない。代わって、ウィンドウ64A〜64Hのうちの一部または全部は互いに階層関係を持つこともできる。ウィンドウ階層では、一方のウィンドウの表示域に限定されたウィンドウは、もう一方の「親ウィンドウ」の「子ウィンドウ」である。ウィンドウ階層は任意の数のレベルを有することができ、その結果、「孫ウィンドウ」は「祖父母ウィンドウ」を有し、「曾孫ウィンドウ(great-grandchild window)」は「曾祖父母ウィンドウ(great-grandparent window)」を有することになる。同じ親ウィンドウを共用するかまたは親ウィンドウを一切持たない(すなわち、デスクトップ上に表示される)ウィンドウは「兄弟ウィンドウ」である。ウィンドウ64A〜64H間の関係はアプリケーションの視点から論じられることは言うまでもない。その結果、ウィンドウをレンダリングする際にオペレーティング・システムによって行われる可能性のある階層に対する任意の変更または修正については、この考察では扱わない。たとえば、X Window Systemでは、ウィンドウ・マネージャは、ウィンドウのサイズ変更、移動などを可能にするウィンドウ・マネージャ装飾を提供して、最上位アプリケーション・ウィンドウの親変更(reparent)を行うことができる。
説明のため、他のウィンドウ64A〜64H内に完全に表示される任意のウィンドウ64A〜64Hはそのウィンドウの子または孫であると想定する。その結果、ウィンドウ64B〜64Dはウィンドウ64Aの子ウィンドウであり、ウィンドウ64E〜64Gはウィンドウ64Bの子ウィンドウであってウィンドウ64Aの孫であり、ウィンドウ64Hはウィンドウ64Dの子ウィンドウであってウィンドウ64Aの孫である。その結果として、ウィンドウ64A、ウィンドウ64B〜64D、ウィンドウ64E〜64G、およびウィンドウ64Hは、4組の別個の兄弟ウィンドウを構成する。ウィンドウ64A〜64H間では多数の他の関係が可能であり、本発明の教示はこのような他の関係に等しく適用されることは言うまでもない。
ウィンドウ64A〜64Hのオーバラップ領域がどのように表示されるかを決定するために、ウィンドウ64A〜64Hにスタック順序が割り当てられる。スタック順序は、ウィンドウの階層関係によって部分的に決定される。たとえば、子ウィンドウは親ウィンドウの上に表示される。その結果として、ウィンドウ64B〜64Dはいずれも、それらの親ウィンドウ64Aの上に表示される。1組の兄弟ウィンドウ内では、スタック順序は、ウィンドウが作成された順序、ユーザによって選択された順序、更新された順序などの順序によってさらに決定される。図示の通り、その1組の兄弟ウィンドウ64B〜64D内では、ウィンドウ64Bは、ウィンドウ64Dの上に表示されるウィンドウ64Cの上に表示される。その結果として、ウィンドウ64Bはその1組の兄弟ウィンドウに関するスタック順序の最上位にあり、次にウィンドウ64Cが続き、さらにウィンドウ64Dが続く。同様に、1組の兄弟ウィンドウ64E〜64G内では、ウィンドウ64Eはスタック順序の最上位にあり、次にウィンドウ64Fが続き、さらにウィンドウ64Gが続く。
II.コラボレーション・システムの概要
前に論じた通り、表示データのマッピングは一般に、表示データを共用できるようにコラボレーション・システムの一部として実現される。図2は、複数のコンピュータ12、16を使用してコラボレーションするための例示的なシステム10のブロック図を示している。システム10は、ソース・ディスプレイ14を有するソース・コンピュータ12と、宛先ディスプレイ18を有する宛先コンピュータ16とを含む。2つのコンピュータ12、16についてのみ図示し論じるが、本発明の教示は任意の数のコンピュータを使用して実現されたコラボレーション・システムに適用されることは言うまでもない。概して、ユーザ20は、ソース・ディスプレイ14を含む1つまたは複数の入出力装置を使用してソース・コンピュータ12と対話する。ソース・コンピュータ12は、ソース・ディスプレイ14上のウィンドウ22A〜22D内に1つまたは複数のアプリケーションに関するデータを表示するウィンドウベースの表示システムを含むことができる。さらに、ソース・コンピュータ12あるいは宛先コンピュータ16またはその両方は、ソース・ディスプレイ14に関する表示データを宛先ディスプレイ18と共用するための1つまたは複数のシステムを含む。
ソース・ディスプレイ14は表示域23を含む。共用表示域25は、たとえば、ソース・コンピュータ12上で実行されるアプリケーションにより、ソース・ディスプレイ14上に表示される1つまたは複数のウィンドウ22A〜22D、あるいはソース・ディスプレイ14の表示域25の一部分または全部を有する領域、またはこれらの組合せを含み、任意の方法を使用して表示域23内に定義することができる。この例では、共用表示域25は、ウィンドウ22A〜22Cを有する表示域23の一部分として定義される。共用表示域25は、宛先表示域125として宛先ディスプレイ18上に表示するために宛先コンピュータ16と共用される。ウィンドウ22Dは宛先コンピュータ16と共用されない。ユーザ24は、ウィンドウ122A〜122Cとして宛先ディスプレイ18上で宛先表示域125を見ることができる。また、ユーザ24は、その後、宛先表示域125内に表示される共用表示域25に関する表示データを変更するために宛先コンピュータ16と対話できるようにすることができる。
図3は、システム10のより詳細なブロック図を示している。ソース・コンピュータ12は、中央演算処理装置(CPU)30と、メモリ32と、入出力(I/O)インターフェース34と、バス36と、任意選択のデータベース38とを含むものとして示されている。宛先コンピュータ16は、ソース・コンピュータ12と通信状態にあるものとして示されている。ソース・コンピュータ12と宛先コンピュータ16との通信は、このような目的のために現在知られているかまたは今後開発される任意のもの、たとえば、1つまたは複数の直接ハードワイヤード接続(たとえば、シリアル・ポート)または有線伝送方法あるいは無線伝送方法またはその両方の任意の組合せを使用できるクライアント/サーバ(またはサーバ/サーバ)環境においてアドレス可能接続を介するものにすることができる。クライアント/サーバ環境では、サーバおよびクライアントは、インターネット、広域ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、仮想プライベート・ネットワーク(VPN)、またはその他のプライベート・ネットワークを介して接続することができる。サーバおよびクライアントは、トークンリング、イーサネット、WiFi、またはその他の従来の通信規格などの従来のネットワーク接続を使用することができる。クライアントがインターネットを介してサーバと通信する場合、従来のTCP/IPソケットベースのプロトコルにより接続を提供することができるであろう。この事例では、クライアントは、サーバへの接続を確立するためにインターネット・サービス・プロバイダを使用することになるであろう。
ソース・コンピュータ12および宛先コンピュータ16は、標準のオペレーティング・システム・ソフトウェアを使用する任意の汎用または特定用途システムを有することができ、そのソフトウェアは、特定のハードウェアの動作を駆動するように設計され、他のシステム・コンポーネントおよび入出力コントローラと互換性のあるものである。CPU30は、単一処理装置または並列動作が可能な複数処理装置を有する場合もあれば、1つまたは複数の位置で、たとえば、クライアントおよびサーバ上で、1つまたは複数の処理装置間に分散される場合もある。メモリ32は、磁気媒体、光メディア、ランダム・アクセス・メモリ(RAM)、読取り専用メモリ(ROM)、データ・キャッシュ、データ・オブジェクトなどを含む、任意の既知のタイプのデータ・ストレージあるいは伝送媒体またはその両方を有することができる。その上、CPU30と同様に、メモリ32は、1つまたは複数のタイプのデータ・ストレージを有する単一物理位置に存在する場合もあれば、様々な形の複数の物理システム間に分散される場合もある。
図示の通り、ユーザ20、ソース・ディスプレイ14、および宛先コンピュータ16は、入出力インターフェース34を介してソース・コンピュータ12と対話する。入出力インターフェース34は、たとえば、入出力ポート(シリアル、パラレル、イーサネット、キーボード、マウスなど)、ユニバーサル・シリアル・バス(USB)ポート、拡張バス、インテグレーテッド・ドライブ・エレクトロニクス(IDE)、ネットワーク・システム、モデム、スピーカ、モニター(陰極線管(CRT)、液晶ディスプレイ(LCD)など)、ハンドヘルド・デバイス、キーボード、マウス、音声認識システム、音声出力システム、スキャナ、プリンタ、ファクシミリ、ページャ、ストレージ・デバイスなどを含む、ユーザ20、ソース・ディスプレイ14、あるいは宛先コンピュータ16、またはこれらの組合せと情報を交換するための任意のシステムを有することができる。バス36は、ソース・コンピュータ12内のそれぞれのコンポーネント間の通信リンクを提供し、同様に、電気、光、無線などを含む、任意の既知のタイプの伝送リンクを有することができる。加えて、図示されていないが、キャッシュ・メモリ、通信システム、システム・ソフトウェアなどの追加のコンポーネントもソース・コンピュータ12に組み込むことができる。
データベース38は、本明細書に記載した通り、本発明を実行するために必要な情報のための記憶域を提供することができる。このため、データベース38は、磁気ディスク・ドライブまたは光ディスク・ドライブなどの1つまたは複数のストレージ・デバイスを含むことができる。さらに、データベース38は、たとえば、LAN、WAN、またはストレージ・エリア・ネットワーク(SAN)(図示せず)により分散されたデータを含むことができる。また、データベース38は、1つまたは複数のストレージ・デバイスを含むものとして当業者が解釈できるように構成することもできる。宛先コンピュータ16はソース・コンピュータ12に併せて図示し論じた様々なハードウェア・コンポーネントも含むことは言うまでもない。これらのコンポーネントについては、簡潔にするために個別に描写または考察されていない。
コラボレーション・システム10の様々な機能を実現するために、ソース・コンピュータ12は、コンピュータ・プログラム・コードとしてメモリ32に保管されたコラボレーション・プログラム40Aを含み、宛先コンピュータ16は、コンピュータ・プログラム・コードとして保管されたコラボレーション・プログラム40Bを含む。コラボレーション・プログラム40Aは、マッピング・システム41と共用システム54とを含む。以下に詳述するように、マッピング・システム41は共用表示域25(図2)に関する表示データを第1のフォーマットから共用フォーマットにマッピングする。共用システム54は、その後、宛先コンピュータ16上のコラボレーション・プログラム40Bに提供される共用表示データとして、マッピングされた表示データを保管する。マッピング・システム41は共用表示データを更新することができ、共用システム54は、定期的に、要求あり次第、またはその何らかの組合せで、共用表示データを共用することができる。
コラボレーション・プログラム40Bは、宛先ディスプレイ18上の宛先表示域125(図2)内に共用表示データを表示するように構成された表示システム56を含む。共用表示データを表示する場合、表示システム56は、共用表示データのうちのいずれかが変更されているかどうかを決定し、宛先表示域125のうちの変更された部分を更新することができる。この決定は、たとえば、表示データをセクション単位に分割し、一度に1つのセクションを比較することにより行うことができる。共用システム54は、共用表示データが宛先コンピュータ16によって使用される頻度をモニターし、モニター対象の頻度に基づいてマッピング・システム41が表示データをマッピングする速度を調整することができる。このケースでは、最大期間を設定することができ、その最大期間を超えると新たにマッピングされた表示データによって共用表示データがリフレッシュされる。また、コラボレーション・プログラム40Bは、ユーザ24が宛先コンピュータ16を使用して共用表示域25に関する表示データを変更できるようにするリモート・システム58も含む。ユーザ24による変更を実現するために、リモート・システム58は、宛先コンピュータ16で生成された入力装置イベント(たとえば、キーボード、マウスなど)を収集し、これらのイベントをソース・コンピュータ12上の共用システム54に転送する。ソース・コンピュータ12に位置する入力装置によって生成された場合と同様にイベントが処理されるように、共用システム54はイベントをソース・コンピュータ12のイベント・ストリームに入れる。
マッピング・システム41は、共用表示域25(図2)に関する表示データを、共用システム54によって使用される共用表示データにマッピングする。特に、マッピング・システム41は、表示域25内の各ピクセルについて表示データに含まれるピクセル・データを、第1のフォーマットから共用フォーマットにマッピングする。マッピング・システム41は、定義システム42と、ノード・システム44と、マネージャ・システム46と、モニター・システム48と、検索システム50と、変換システム52とを含む。これらのシステムの動作については、本発明のマッピング方法に関連して以下に説明する。
コラボレーション・システム10に含まれる機能性を追加/削減できることは言うまでもない。たとえば、リモート・システム58により、ユーザ24は、コラボレーション・システム10の任意選択の特徴である宛先コンピュータ16を使用して共用表示域25に関する表示データを変更することができる。さらに、ユーザ20あるいはユーザ24またはその両方は、システム間で実現されるコラボレーションの範囲を選択できるようにすることができる。コラボレーションなし、共用表示のみ、共用表示およびオーディオ、リモート・コントロールなどが行われることを指定するために、キーストローク・シーケンスを使用することができる。さらに、ディスプレイ(ソース・ディスプレイ14あるいは宛先ディスプレイ18またはその両方)内のマウス・ポインタの位置は、共用システム54あるいはリモート・システム58またはその両方を使用して、ソース・コンピュータ12と宛先コンピュータ16との間で共用することができる。
III.マッピング方法
本発明は、表示域に関する表示データを共用フォーマットにマッピングする。一実施形態では、表示データは、表示域内の各ピクセルに関するピクセル・データを含む。ピクセル・データは、ピクセルの位置、ピクセルのカラー、およびピクセルの深さに関する情報を含む。ピクセル・データは第1のフォーマットから共用フォーマットにマッピングされる。本発明の方法については図3および図4に関連して論じるが、これらの図はそれぞれ、例示的なマッピング・システム41と、本発明の一実施形態によりマッピングを実行する際に使用される方法ステップの概要を示している。ステップS1(図4)では、マッピングすべき表示域25(図2)が定義システム42(図3)によって定義される。
ステップS2(図4)では、ノード・システム44(図3)によって表示域25に関連するノードが各ウィンドウごとに作成される。一実施形態では、ソース・ディスプレイ14上に表示された各ウィンドウ(すなわち、図2のウィンドウ22A〜22D)ごとにノードが作成される。すべてのウィンドウを含むことにより、共用されないウィンドウ(すなわち、ウィンドウ22D)の位置をモニターして、それがその後、共用域内に移動するかまたは共用ウィンドウにオーバラップするかを決定することができる。しかし、ウィンドウ(たとえば、ソース・ディスプレイ14の特定の領域内のすべてのウィンドウまたは共用されると指定されたすべてのウィンドウ)の一部分についてのみノードを作成できることは言うまでもない。図6は、ノード66A〜66Hを含む、図1の表示域60に関するノード階層62の概略表現を描写している。各ノード66A〜66Hは、それに対応するウィンドウ64A〜64H(図1)に関する属性情報を含むデータの集合である。「属性情報」は、階層関係データ(すなわち、親ウィンドウあるいは子ウィンドウ(複数も可)またはその両方に関するデータ)ならびに対応するウィンドウのサイズ、位置、あるいは形状またはこれらの組合せを含む。加えて、ウィンドウに関するピクセル・データのフォーマットに関するデータが属性情報として保管される。この例示的な実施形態では、フォーマット・データは、図6に示す通り、ピクセル・データに関する深さおよびビジュアルを含む。さらに、指標付きピクセル値を使用して、ウィンドウに対応するノードに関する属性情報としてカラー・マップを作成し保管することができる。多くの場合、あるアプリケーション内のウィンドウは単一カラー・マップを共用する。その結果として、1つのカラー・マップを共用するウィンドウに対応するすべてのノードによって、そのカラー・マップを作成し共用することができる。動的ビジュアル・タイプの場合、カラー・マップは、カラー・マップ・インスタンスが変更されたことを示すウィンドウ・イベントの発生に基づいてあるいはカラー・マップ内のいずれかの値が変更されたかどうかを判定するために定期的にまたはその両方で、更新する必要がある可能性がある。たとえば、動的カラー・マップの場合、表示域を再マッピングするたびにカラー・マップ内の値を再読取りすることができる。それより多くの情報または少ない情報を属性情報として保管できることは言うまでもない。たとえば、スタック順序データ、クリッピング情報(すなわち、その親の内部に見えるウィンドウの量)、あるいはボーダ・サイズ、またはこれらの組合せを各ウィンドウごとに含めることができる。
図4のステップS3では、マネージャ・システム46(図3)により各ノード66A〜66Hの属性情報の一部として保管された階層関係データあるいはスタック順序データまたはその両方を使用してノード階層62(図6)が生成される。図7は、ノード階層62の例示的な一実施形態を示し、そのノード階層の各ノード66A〜66Hは、対応するウィンドウ64A〜64H(図1)に関する属性情報ならびに階層構造を実現するための親ノード、前の兄弟ノード、次の兄弟ノード、および子ノードへのポインタを含む。当技術分野で周知の通り、ポインタの使用は、ノードの再配列、挿入、および削除を含む、ノード階層62の効率の良いナビゲーションおよび管理を可能にする。データを管理するためのポインタの使用および設定は当技術分野で周知のものであり、したがって、本明細書ではこれ以上詳述しない。使用するポインタの追加または削減が可能であるとともにポインタの有無にかかわらずデータを管理する任意の代替方法も使用できることは言うまでもない。
ノード66A〜66Hは最初は、階層関係データに基づいてノード階層62内に置かれる。図1、図6、および図7をまとめて参照すると、ウィンドウ64Aは親ウィンドウを持っていないので、その対応するノードであるノード66Aはノード階層62の最上位に置かれる。ウィンドウ64Aの子ウィンドウ64B〜64Dに関するノード66B〜66Dはノード66Aより1つ下のレベルに置かれ、ウィンドウ64Bの子ウィンドウ64E〜64Gに関するノード66E〜66Gはノード66Bより1つ下のレベルに置かれ、ウィンドウ64Dの子ウィンドウ64Hに関するノード66Hはノード66Dより1つ下のレベルに置かれる。この実施形態では、1組の兄弟ノード(すなわち、1組の兄弟ウィンドウに関する1組のノード)はさらに、その1組の兄弟ウィンドウに関するスタック順序データに応じてノード階層62内に置かれる。その1組の兄弟ノードは、スタック順序内の最上位ノードが最初に置かれ、残りのノードが降順に続くように構成される。その結果として、ウィンドウ64B〜64Dの場合、ノード66Bが最初に置かれ、次にノード66Cが続き、さらにノード66Dが続く。同様に、ウィンドウ64E〜64Gの場合、ノード66Eが最初に置かれ、次にノード66Fが続き、さらにノード66Gが続く。
作成されると、ノード階層62および個々のノード66A〜66H内の属性情報は直ちに時代遅れになる可能性がある。その結果として、ステップS4およびS5が図4に含まれる。ステップS4では、様々なウィンドウ・イベント・タイプがモニター・システム48(図3)によってモニターされる。ステップS5では、モニター対象のウィンドウ・イベント・タイプの1つの発生に基づいて、マネージャ・システム46(図3)によりノード階層が更新される。たとえば、図1を参照すると、ユーザはウィンドウ64Hを選択することができ、それにより、その親ウィンドウ64Dを1組の兄弟64B〜64D内のスタック順序の前面に移動する。さらに、1つまたは複数のウィンドウの作成、破壊、移動、サイズ変更などを行うことができる。一般に、これらのアクションのうちの1つまたは複数が行われると、ウィンドウ表示システムはウィンドウ・イベントを生成する。その結果として、これらのイベントの発生は非同期式にモニターすることができ、モニター対象のウィンドウ・イベントの発生に基づいてノード階層62あるいは1つまたは複数のノード66A〜66H内の属性情報またはその両方を更新することができる。
図4のステップS6およびS7は、ステップS4およびS5と並列に行われるものとして示されている。ステップS6では、検索システム50(図2)によって表示データが入手される。ステップS7では、変換システム52(図2)によりノード階層を使用して表示データが共用フォーマットにマッピングされる。各組のステップS4〜S5およびS6〜S7は、表示データのマッピングがもはや不要であるとそれぞれステップS8およびS9で判定されるまで繰り返される。並列に示されているが、ステップS4〜S5およびS6〜S7は、並列、直列、または何らかの組合せとして実現することができる。
ステップS6ならびに図1、図6、および図7をまとめて参照すると、ノード階層62の使用により、1つまたは複数の子ウィンドウ、孫ウィンドウなどをマッピングする際に、祖先ウィンドウに関して入手した表示データを使用することができる。表示データを入手するために、最上位ウィンドウ(すなわち、図1のウィンドウ64A)によって定義された表示域に関する表示データが表示メモリからコピーされる。各ウィンドウはその親ウィンドウの表示域内に位置するので、子ウィンドウ、孫ウィンドウなど(すなわち、ウィンドウ64B〜64H)の一部または全部に関する表示データも入手することができる。
X Window Systemで実現されると、祖先ノードおよび各介入祖先ノード(intervening ancestor node)と共通の深さを共用するノード(複数も可)に関する表示データは、祖先ノードに関する表示データを獲得する単一操作で入手することができる。たとえば、図6は、8ビットのPseudoColor(PC)ピクセル・データを有するノード66A、66B、66Eと、24ビットのPCピクセル・データを有するノード66C、66Hと、24ビットのTrueColor(TC)ピクセル・データを有するノード66D、66Gと、8ビットのTCピクセル・データを有するノード66Fとを示している。ピクセル・データの深さが同じである限り、複数のノードに関する表示データは、使用するビジュアルにかかわらず、1回の操作で入手することができる。その結果、ノード66Aに関する表示データが入手されると、ノード66B、66E、および66Fに関する表示データも入手される。その祖先ノード66A、66BがPCピクセル・データを使用する間にノード66FがTCピクセル・データを使用する場合でも、ノード66Fに関する表示データを入手することができる。
しかし、X Window Systemでは、ウィンドウまたは介入祖先ウィンドウが祖先ウィンドウとは異なる深さを使用する場合、そのウィンドウに関する表示データは、その祖先ウィンドウに関する表示データが検索されるときに未定義である。このケースでは、すべてのノード66A〜66Hに関する表示データを入手するために、複数の操作が必要になる。たとえば、ノード66Gは24ビットを有するピクセル・データを使用する。その結果として、そのピクセル・データを入手するために、個別の操作が必要になる。同様に、ノード66C、66Dも24ビットを有するピクセル・データを使用する。ノード66C、66Dはいずれももう一方のノードの祖先ではないので、ノード66C、66Dのそれぞれは、その表示データを入手するために追加の操作を必要とする。しかし、ノード66Dに関する表示データが入手されると、ノード66Hも同じ深さを使用するので、ノード66Hに関する表示データも入手される。
表示データが入手されると、ステップS7(図4)は、表示データ内のピクセル・データをその現行フォーマットから共用フォーマットにマッピングする。図5は、マッピング・ステップの例示的な一実施形態を示し、ステップS7Aは各ピクセルに対応するノードを決定し、ステップS7Bはそのノードを使用してそのピクセルに関するピクセル・データの現行フォーマットを決定し、ステップS7Cはその現行フォーマットのピクセル・データから共用フォーマットのピクセル・データを生成する。ステップS7Dは、表示データ内の各ピクセルごとにこれらのステップを繰り返す。ノード66A〜66Hを備えたノード階層62(図6および図7)を生成し、対応するウィンドウ64A〜64Hに関する属性情報を各ノード66A〜66Hに保管すると、正しいノードをステップS7Aで効率よく突き止めることができる。適切なノードを突き止めるために、ノード階層62は接頭部順にトラバースされる。すなわち、あるピクセルを含む第1のノードであって、それに関するピクセルがその子ノード、孫ノードなどのいずれにも入っていないノードは、そのピクセルに関するピクセル・データをマッピングする際に使用するために正しいノードである。
図1のピクセル68は、ステップS6およびS7(図4)の例示的な一例を提供する。ピクセル68は各ウィンドウ64A〜64Hによって定義された領域内にあるが、現在、ウィンドウ64Eがピクセル68を所有している。したがって、ピクセル68に関するピクセル・データをあるフォーマットから共用フォーマットにマッピングするには、ノード66E内の属性情報を使用することが必要である。ノード66Eがピクセル68に対応すると判定するために、階層の最上位にあるノードが最初に調べられる。ノード66A内の属性情報を使用して、ピクセル68がウィンドウ64Aの領域内にあるかどうかを判定する。そうであるので、ノード66Aの第1の子であるノード66Bが次に調べられる。ピクセル68はウィンドウ64Bの領域内にあるので、ノード66Bの第1の子であるノード66Eが調べられる。次に、ピクセル68がウィンドウ64Eの領域内にあり、ノード66Eはいかなる子も持っていないと判定される。したがって、ノード66Eはピクセル68に関連するノードである。
ピクセル・データとその対応するノードが使用可能であるので、そのノードの属性情報を使用してピクセル・データの現行フォーマットが決定され(図5のステップS7B)、共用フォーマットのピクセル・データが生成される(図5のステップS7C)。一実施形態では、ノード内の深さ、ビジュアル、あるいはカラー・マップ、またはこれらの組合せの情報を使用して、ピクセル・データを共用フォーマットにマッピングする。共用フォーマットは、たとえば、他のアプリケーションあるいはシステムまたはその両方によって容易に変換できる24ビットのTrueColorフォーマットを有することができる。このケースでは、ピクセル・データがそのデータ自体にRGB値を含む場合、データのマッピングは、各RGB値が8ビットで表されるようにピクセル・データをシフトすることを含むことができる。指標付けを使用するピクセル・データの場合、そのピクセル・データを使用してカラー・マップ内のRGB値をルックアップすることができ、その後、RGB値は各値が8ビットを有するようにシフトされる。
適切なノードを突き止める際の速度をさらに高めるために、表示域を複数のセクションに分割することができる。たとえば、図1は、2次元グリッドに分割された表示域60を示し、各セクション70A〜70Cの幅および長さは設定されたピクセル数になっている。一実施形態では、各セクション70A〜70Cは、2の累乗であるサイズを有する正方形のピクセル・ブロックであり、たとえば、幅が24ピクセルで長さが24ピクセルである。各セクション70A〜70Cには、ディスプレイ内のピクセルと同様のアドレス(すなわち、x,y座標)を割り当てることができる。2の累乗である長さおよび幅を使用すると、ピクセル位置を表す値を右シフトすることにより、ピクセルが位置するセクションのアドレスを迅速に決定することができる。しかし、セクション70A〜70Cについて任意のサイズまたは形状を使用できることは言うまでもない。
図1および図6〜8をまとめて参照すると、ノード階層62およびセクション70A〜70Cを使用する場合、各セクション70A〜70Cについてノード・リスト76A〜76Cを作成することができる。各ノード・リスト76A〜76Cは、セクション70A〜70C内で現在見えている各ウィンドウに関するノードを含む。一実施形態では、各アレイ・エレメント72A〜72Cが固有のセクション70A〜70Cに関連付けられている2次元アレイ74が作成される。各アレイ・エレメント72A〜72Cは、そのセクション70A〜70Cに関するノード・リスト76A〜76Cを有する。各ノード・リスト76A〜76Cは、そのエレメント72A〜72Cに関するセクション70A〜70C内の少なくとも1つのピクセルを所有する各ノードを含む。たとえば、エレメント72Aに関するノード・リスト76Aは、セクション70A内に見える各ノードを含む。各ノード・リスト76A〜76Cは、そのセクション70A〜70C内の最上位ウィンドウに対応するノードがノード・リスト76A〜76Cの先頭に位置し、残りのノードが降順に位置するように順序付けられる。代わって、そのセクション70A〜70C内の最多数のピクセルを現在所有するウィンドウに対応するノードは、各ノード・リスト76A〜76Cの先頭に位置することができる。
ノード・リスト76A〜76Cについて追加のデータ保守が必要になるが、それは、所与のピクセルについて適切なノードを決定するためにサーチしなければならないノードの平均数を削減するものである。たとえば、セクション70Bは表示域60の1つのセクションである。ウィンドウ64B、64C、64E、および64Gは、セクション70内の表示域の少なくとも一部分を所有する。その結果として、アレイ・エレメント72Bは、ノード66B、66C、66E、および66Gを含むノード・リスト76Bを有する。上記で論じた通り、ノード・リスト76Bは、スタック順序の先頭にあるノードが最初に突き止められるように順序付けられる。このケースでは、ノード66Eが第1のノードになり、次にノード66G、ノード66Bが続き、さらにノード66Cが続く。ピクセル68に対応するノードを突き止めるために、ピクセル68がセクション70B内に位置すると判定される。エレメント72Bに関するノード・リスト76Bを使用すると、単一ノードのみを調べた後、ノード66Eが適切なノードであると判定される。
セクション70A〜70Cおよびノード・リスト76A〜76Cを使用すると、ウィンドウごとではなく、セクションごとに表示データを容易に入手することができる。セクションごとに入手されると、各ノード66A〜66Hの属性情報は、最上位祖先ノードを識別するデータをさらに含むことができる。最上位祖先ノードは、単一操作を使用してそのノードに対応するウィンドウに関する表示データを入手できる、最遠祖先ウィンドウに対応する。上記で論じた通り、X Windowでは、あるウィンドウに関する表示データがその親ウィンドウとは異なる深さを使用して保管されると、各ウィンドウに関する表示データを入出するために2回の操作が必要になる。その結果、ノード66Aはノード66A、66B、66E、66Fに関する最上位祖先ノードになり、ノード66C、66D、66Gはそれ自体をその最上位祖先ノードとして持つことになり、ノード66Hはノード66Dをその最上位祖先ノードとして持つことになるであろう。最上位祖先ノードを含むことにより、ノード階層62の恩恵をセクションごとに容易に活用することができる。たとえば、セクション70Aに関する表示データを入手する場合、ノード・リスト76Aが調べられる。ノード66Eは第1のノードであり、ノード66Aという最上位祖先を有する。その結果として、セクション70A内にあるウィンドウ64Aの一部分に関する表示データが入手される。入手された表示データは、ウィンドウ64E、64F、および64Bに関する表示データをマッピングするために使用される。ウィンドウ64Cに関する表示データを検索するために第2の操作が必要になり、ウィンドウ64Hに関する表示データを検索するために第3の操作が必要になるが、それは、これらのウィンドウがウィンドウ64Aとは異なる深さを使用するからである。
表示データのマッピングの効率は、各アレイ・エレメント72A〜72Cに関する第2の2次元アレイ78Aを含めることにより、さらに高めることができる。アレイ78Aは対応するセクション70A内に位置する各ピクセルに関するアレイ・エレメント80を含む。各アレイ・エレメント80は、そのピクセルを所有するウィンドウに対応するノードを識別するIDを含む。共用されないウィンドウがセクション70A〜70C内に表示されると、アレイ78A内のエレメント80のうち、そのウィンドウによって所有されるピクセルに対応するエレメント80には、無効のマークを付けることができる。アレイ78Aの使用により、共用表示域内の任意のピクセルに関する対応ノードを単一操作で見つけられることが保証される。
セクション70A〜70Cに関するノード・リスト76A〜76Cあるいはアレイ78Aまたはこれらの組合せは、ノード・リスト76A〜76Cあるいはアレイ78Aまたはこれらの組合せのうちの1つまたは複数を達成するモニター対象のウィンドウ・イベントの発生が検出されたときに、ノード階層62とともに更新することができる。一実施形態では、モニター対象のウィンドウ・イベントは、共用表示データの更新が再始動されるまでキューに入れられ、その時点でノード階層62、ノード・リスト76A〜76C、およびアレイ78Aは、必要であれば、キューに入れられたすべてのウィンドウ・イベントに基づいて更新される。ノード・リスト76A〜76Cおよびアレイ78Aは、現在知られているかまたは今後開発される任意の方法を使用して実現することができる。たとえば、各ノード・リスト76A〜76Cは、メモリに保管された対応するノードへのポインタのリンク・リストを有することができ、各アレイ78Aは、当技術分野で周知の通り、各ピクセルについてメモリに保管された対応するノードへのポインタを含むエレメントを有する2次元アレイを有することができる。
この考察はマッピングすべき表示域内の各ウィンドウについて作成されたノードに限られているが、マッピングすべき表示域内に位置するかどうかにかかわらず、ディスプレイ内のすべてのウィンドウについてノードを作成し管理できることは言うまでもない。さらに、この方法はピクセル・データに関連して記載されているが、本発明の教示は任意のタイプの表示データに適用されることは言うまでもない。さらに、任意のウィンドウに含まれないディスプレイの一部分に関する表示データを入手するために、ディスプレイのデスクトップ(すなわち、背景)についてノードを作成できることは言うまでもない。
本発明は、表示データのマッピングが所望される汎用コンピュータ/サーバ・システムに適用可能である。本発明がハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せで実現可能であることは認識されるであろう。ハードウェアとソフトウェアの典型的な組合せは、ロードされ実行されたときに、本明細書に記載したそれぞれの方法を実行するようにソース・コンピュータ12(図2)あるいは宛先コンピュータ16またはその両方を制御するコンピュータ・プログラムを備えた汎用コンピュータ・システムにすることができるであろう。代わって、本発明の機能上のタスクのうちの1つまたは複数を実行するための特殊ハードウェアを含む特定用途コンピュータを使用できるであろう。
本発明はコンピュータ・プログラムに組み込むこともでき、そのコンピュータ・プログラムは本明細書に記載した方法の実現を可能にするそれぞれの特徴をすべて有し、コンピュータ・システムにロードされたときにこれらの方法を実行することができる。これに関連して、コンピュータ・プログラム、ソフトウェア・プログラム、プログラム、またはソフトウェアは、直接または(a)他の言語、コード、または表記への変換、または(b)異なる物質的形式による複製のいずれか一方または両方の後、情報処理機能を有するシステムに特定の機能を実行させるための1組の命令を任意の言語、コード、または表記で表した任意の表現を意味する。
様々な方法が特定の順序で発生するものとして記載されているが、複数の独立ステップを同時にまたは本明細書に記載したものとは異なる順序で実行できることは言うまでもない。さらに、様々なシステムが様々な機能を実現するものとして描写され論じられているが、本明細書に記載した様々な機能を実現するために使用できるシステムの削減あるいは追加またはその両方が可能であることは言うまでもない。
本発明の様々な態様の上記の説明は、例示および説明のために提示されたものである。これは、網羅的なものではなく、開示されている正確な形式に本発明を限定するためのものでもなく、明らかに、多くの変更および変形が可能である。当業者にとって明白である可能性がある変更および変形は、特許請求の範囲によって定義された本発明の範囲内に含まれるものである。
例示的な共用表示を示す図である。 複数のコンピュータ間でコラボレーションするための例示的なシステムのブロック図である。 図2のシステムのより詳細なブロック図である。 本発明の一実施形態による方法を示す図である。 図4のマッピング・ステップの一実施形態を示す図である。 図1の共用表示に基づくノード階層の概略表現である。 図6の例示的なノード階層の代替概略表現である。 複数のノード・リストおよび2次元アレイの一実施形態の概略表現である。

Claims (13)

  1. 少なくとも1つのウィンドウ(64A〜64H)を含む表示域(60)に関する表示データをマッピングする方法において、前記方法が、
    各ウィンドウごとにノード(66A〜66H)を作成するステップ(S2)であって、各ノードが階層関係データを含むステップと、
    前記階層関係データに基づいてノード階層(62)を生成するステップ(S3)と、
    前記ノード階層を使用して第1のフォーマットから共用フォーマットに前記表示データをマッピングするステップ(S7)と、
    を有する方法。
  2. ウィンドウ・イベントの発生をモニターするステップ(S4)と、
    前記ウィンドウ・イベントの前記発生に基づいて前記ノード階層(62)を更新するステップ(S5)と、
    をさらに有する、請求項1に記載の方法。
  3. 前記ウィンドウ・イベントの前記発生に基づいて前記階層関係データを更新するステップをさらに有する、請求項2に記載の方法。
  4. 1組の兄弟ウィンドウ(64B〜64D)に関する1組の兄弟ノード(66B〜66D)が、前記兄弟ウィンドウのスタック順序に基づいて前記ノード階層(62)内に位置する、請求項1に記載の方法。
  5. 前記表示域(60)を複数のセクション(70A〜70C)に分割するステップと、
    前記ノード階層(62)を使用して各セクションに関するノード・リスト(76A〜76C)を作成するステップであって、前記セクションの少なくとも一部分に表示される各ウィンドウに関する前記ノードが前記ノード・リストに含まれるステップと、
    をさらに有する、請求項1に記載の方法。
  6. 各セクションに関するエレメント(72A〜72C)を有するアレイ(74)を作成するステップであって、各エレメントが対応するセクションに関する前記ノード・リストを含むステップをさらに有する、請求項5に記載の方法。
  7. ウィンドウ・イベントの発生をモニターするステップ(S4)と、
    前記ウィンドウ・イベントの前記発生に基づいて前記ノード・リストのうちの少なくとも1つを更新するステップ(S5)と、
    をさらに有する、請求項5に記載の方法。
  8. 単一操作で第1のピクセル深さを有する複数のウィンドウに関する表示データを入手するステップ(S6)をさらに有する、請求項1に記載の方法。
  9. 第2のピクセル深さを有する少なくとも1つのウィンドウについて前記入手ステップ(S6)および前記マッピング・ステップ(S7)を繰り返すステップをさらに有する、請求項8に記載の方法。
  10. 前記マッピング・ステップ(S7)が、
    前記表示データ内の各ピクセルに対応する前記ノードを決定するステップ(S7A)と、
    前記ノードを使用して各ピクセルに関するピクセル・データの第1のフォーマットを決定するステップ(S7B)と、
    前記第1のフォーマットの前記ピクセル・データから各ピクセルについて前記共用フォーマットのピクセル・データを生成するステップ(S7C)と、
    を含む、請求項1に記載の方法。
  11. 前記マッピングされた表示データを宛先コンピュータ(16)と共用するステップをさらに有する、請求項1に記載の方法。
  12. 前記方法が、前記方法の実現を可能にするコンピュータ可読プログラム・コードを有するコンピュータ・プログラムで実施されることを特徴とする、請求項1に記載の方法。
  13. 前記方法が、コンピュータ可読記憶媒体に保管された命令で実施されることを特徴とする、請求項1に記載の方法。
JP2006532965A 2003-05-07 2004-05-07 表示データ・マッピングの方法、システム、およびプログラム Expired - Fee Related JP4398466B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/249,781 US7260784B2 (en) 2003-05-07 2003-05-07 Display data mapping method, system, and program product
PCT/US2004/014767 WO2004100644A2 (en) 2003-05-07 2004-05-07 Display data mapping method, system, and program product

Publications (3)

Publication Number Publication Date
JP2007503624A true JP2007503624A (ja) 2007-02-22
JP2007503624A5 JP2007503624A5 (ja) 2009-08-06
JP4398466B2 JP4398466B2 (ja) 2010-01-13

Family

ID=33449387

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006532965A Expired - Fee Related JP4398466B2 (ja) 2003-05-07 2004-05-07 表示データ・マッピングの方法、システム、およびプログラム

Country Status (9)

Country Link
US (1) US7260784B2 (ja)
EP (1) EP1623408A4 (ja)
JP (1) JP4398466B2 (ja)
KR (1) KR100818976B1 (ja)
CN (1) CN100394473C (ja)
BR (1) BRPI0410112B1 (ja)
CA (1) CA2523478C (ja)
TW (1) TWI291113B (ja)
WO (1) WO2004100644A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507056A (ja) * 2007-11-21 2011-03-03 マイクロソフト コーポレーション レイアウトマネージャ

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7948448B2 (en) * 2004-04-01 2011-05-24 Polyvision Corporation Portable presentation system and methods for use therewith
US7483880B2 (en) * 2004-09-30 2009-01-27 Microsoft Corporation User interface for database display
JP4900889B2 (ja) * 2005-01-21 2012-03-21 キヤノン株式会社 情報処理装置及びその制御方法とプログラム
DE102005017313A1 (de) * 2005-04-14 2006-10-19 Volkswagen Ag Verfahren zur Darstellung von Informationen in einem Verkehrsmittel und Kombiinstrument für ein Kraftfahrzeug
US20080086700A1 (en) * 2006-10-06 2008-04-10 Rodriguez Robert A Systems and Methods for Isolating On-Screen Textual Data
CN101202036B (zh) * 2006-12-11 2013-04-03 上海奇码数字信息有限公司 图像处理中的地址映射方法及采用该方法的图像处理装置
US8984446B1 (en) * 2007-03-13 2015-03-17 Adobe Systems Incorporated Sharing display spaces
US8166165B1 (en) 2007-03-13 2012-04-24 Adobe Systems Incorporated Securing event flow in a user interface hierarchy
JP4342578B2 (ja) * 2007-07-24 2009-10-14 株式会社エヌ・ティ・ティ・ドコモ 情報処理装置およびプログラム
US8750490B2 (en) * 2007-08-22 2014-06-10 Citrix Systems, Inc. Systems and methods for establishing a communication session among end-points
US9137377B2 (en) 2007-08-22 2015-09-15 Citrix Systems, Inc. Systems and methods for at least partially releasing an appliance from a private branch exchange
US8315362B2 (en) * 2007-08-22 2012-11-20 Citrix Systems, Inc. Systems and methods for voicemail avoidance
US8397168B2 (en) 2008-04-05 2013-03-12 Social Communications Company Interfacing with a spatial virtual communication environment
US8407605B2 (en) * 2009-04-03 2013-03-26 Social Communications Company Application sharing
US8938743B2 (en) * 2007-12-21 2015-01-20 Citrix Systems, Inc. Methods and systems for providing, to a first application executed by a first operating system, an interface for communicating with at least one application executed by a second operating system
US8612614B2 (en) * 2008-07-17 2013-12-17 Citrix Systems, Inc. Method and system for establishing a dedicated session for a member of a common frame buffer group
US8115778B2 (en) * 2008-09-26 2012-02-14 Nvidia Corporation System and method for selecting a pixel output format
TWI420384B (zh) * 2009-05-15 2013-12-21 Chi Mei Comm Systems Inc 電子裝置及調整該電子裝置顯示畫面位置的方法
US8356256B2 (en) * 2009-06-17 2013-01-15 Brigham Young University Presentation scratch spaces
US20110119454A1 (en) * 2009-11-17 2011-05-19 Hsiang-Tsung Kung Display system for simultaneous displaying of windows generated by multiple window systems belonging to the same computer platform
TWI467481B (zh) * 2010-05-31 2015-01-01 Ibm 層級式程式源碼管理方法、系統及電腦程式產品
CN102447814B (zh) * 2010-09-30 2015-11-25 无锡中星微电子有限公司 间接颜色图像的存储方法和装置、图像显示方法和装置
US20120304077A1 (en) 2011-05-23 2012-11-29 International Business Machines Corporation Accessing window pixel data for application sharing
US8750911B2 (en) * 2011-09-23 2014-06-10 Jianchong Yang Content source, content sink, and method for natively managing and delivering active content from one or more content sources to one or more content sinks wirelessly
US9208601B2 (en) 2012-06-10 2015-12-08 Apple Inc. Computing plausible road surfaces in 3D from 2D geometry
US9207094B2 (en) * 2012-06-10 2015-12-08 Apple Inc. Road height generation for a road network
KR101509869B1 (ko) * 2012-12-31 2015-04-07 현대자동차주식회사 디스플레이 연동 시스템 및 방법
CN105637472B (zh) * 2013-10-11 2019-03-19 华为技术有限公司 具有广义屏幕描述的屏幕内容共享系统的框架
US9830056B1 (en) * 2014-01-22 2017-11-28 Google Llc Indicating relationships between windows on a computing device
US10585548B2 (en) 2015-03-03 2020-03-10 Soroco Private Limited Software robots for programmatically controlling computer programs to perform tasks
US9786071B2 (en) * 2015-03-25 2017-10-10 International Business Machines Corporation Geometric shape hierarchy determination to provide visualization context
US10264213B1 (en) 2016-12-15 2019-04-16 Steelcase Inc. Content amplification system and method
TWI636450B (zh) * 2017-01-09 2018-09-21 禾聯碩股份有限公司 映射系統及其映射方法
CN110213265B (zh) * 2019-05-29 2021-05-28 腾讯科技(深圳)有限公司 图像获取方法、装置、服务器及存储介质

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5008853A (en) * 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US5596702A (en) * 1993-04-16 1997-01-21 International Business Machines Corporation Method and system for dynamically sharing user interface displays among a plurality of application program
US5844553A (en) * 1993-08-30 1998-12-01 Hewlett-Packard Company Mechanism to control and use window events among applications in concurrent computing
US5877762A (en) * 1995-02-27 1999-03-02 Apple Computer, Inc. System and method for capturing images of screens which display multiple windows
US5874960A (en) * 1995-07-05 1999-02-23 Microsoft Corporation Method and system for sharing applications between computer systems
US6911987B1 (en) * 1995-07-05 2005-06-28 Microsoft Corporation Method and system for transmitting data for a shared application
US6204847B1 (en) * 1995-07-17 2001-03-20 Daniel W. Wright Shared virtual desktop collaborative application system
US6151020A (en) * 1997-10-24 2000-11-21 Compaq Computer Corporation Real time bit map capture and sharing for collaborative tools
US6119104A (en) * 1997-11-24 2000-09-12 Keycorp Composite banking desktop system
US6389437B2 (en) * 1998-01-07 2002-05-14 Ion Systems, Inc. System for converting scrolling display to non-scrolling columnar display
US6151622A (en) * 1998-02-02 2000-11-21 International Business Machines Corp. Method and system for portably enabling view synchronization over the world-wide web using frame hierarchies
US20020138624A1 (en) * 2001-03-21 2002-09-26 Mitsubishi Electric Information Technology Center America, Inc. (Ita) Collaborative web browsing
JP4980520B2 (ja) * 2001-05-28 2012-07-18 谷電機工業株式会社 情報配信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011507056A (ja) * 2007-11-21 2011-03-03 マイクロソフト コーポレーション レイアウトマネージャ

Also Published As

Publication number Publication date
EP1623408A4 (en) 2009-12-02
WO2004100644A2 (en) 2004-11-25
TWI291113B (en) 2007-12-11
US7260784B2 (en) 2007-08-21
WO2004100644A3 (en) 2005-03-24
BRPI0410112A (pt) 2006-05-09
TW200513908A (en) 2005-04-16
CN100394473C (zh) 2008-06-11
EP1623408A2 (en) 2006-02-08
CN1784714A (zh) 2006-06-07
KR100818976B1 (ko) 2008-04-04
KR20060009834A (ko) 2006-02-01
JP4398466B2 (ja) 2010-01-13
US20040239701A1 (en) 2004-12-02
BRPI0410112B1 (pt) 2017-01-17
CA2523478C (en) 2012-01-17
CA2523478A1 (en) 2004-11-25

Similar Documents

Publication Publication Date Title
JP4398466B2 (ja) 表示データ・マッピングの方法、システム、およびプログラム
CN101652742B (zh) 非合成桌面中的基于窗口呈现框架的应用程序的远程发送
JP4864443B2 (ja) ツリービューベースエディタでのインラインプロパティ編集のシステムおよび方法
US6847384B1 (en) Translating objects between software applications which employ different data formats
US8711148B2 (en) Method and system for generating and displaying an interactive dynamic selective view of multiply connected objects
US8612486B2 (en) Configuration management visualization
US9467344B2 (en) Mechanism to display graphical IT infrastructure using configurable smart navigation
EP0647909A1 (en) Information catalog system with object-dependent functionality
US6748379B2 (en) Graphical representation of disorganized database records in an IMS database
WO1999008170A2 (en) Method of generating a 3-d representation of a hierarchical data structure
JP2006107491A (ja) ユーザカスタマイゼーションに基づくグラフィカルプレゼンテーションの維持
TW201203084A (en) Temporary formatting and charting of selected data
WO2008157600A1 (en) Multi-dimensional merge
EP1447758A2 (en) Context-based display technique
US5731814A (en) Method and apparatus for identifying an object selected on a computer output display
US6202083B1 (en) Method for updating wallpaper for computer display
US6943793B2 (en) Method and apparatus for displaying resource information
JP2006338099A (ja) 階層構造表示装置、階層構造表示方法、階層構造表示システム、クライアント端末、階層構造表示サーバ、並びに、階層構造表示プログラムおよび記録媒体
JPH1145197A (ja) 階層構造提示装置及び階層構造提示方法
CN114036313B (zh) 一种族谱展示方法、装置及电子设备
CN115330920A (zh) 用于动态显示的永久性粒子轨迹的渲染
CN115330919A (zh) 用于动态显示的持久粒子轨迹的渲染
US20150082235A1 (en) Difference-oriented user interface creation
JPH07129355A (ja) 画面表示装置および方法
JP2004272609A (ja) 画像処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070416

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090619

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20090619

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20090626

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090825

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090908

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20091013

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091022

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121030

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131030

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees