(57)【要約】    【課題】複数の計算機で実行する、異なるアプリケーションウィンドウの画像を、同時に１つの共有ディスプレイに表示する場合に、その画像を表示するウィンドウの表示位置や重なり具合を、ネットワークに接続している計算機から簡単に調整可能とすることが課題である。    【解決手段】共有ディスプレイ上の共有画面を表示するウィンドウの識別子、位置、サイズ、および、重なりを表現する表示構成情報を他の計算機に提供する手順と、その表示構成情報から共有ディスプレイ上のウィンドウ構成を縮小して描画する手順と、その縮小描画された表示構成への入力操作を、ウィンドウの操作要求として共有ディスプレイに送信する手順と、操作要求を受けて共有ディスプレイのウィンドウの表示構成を変更する手順により構成する。【選択図】  図１
2005149440.tif 000002
【特許請求の範囲】
【請求項１】
実行しているアプリケーションのウィンドウ（アプリケーションウィンドウ）をそれぞれ表示するディスプレイを有する複数の計算機と、該複数の計算機とネットワークで接続されて複数の計算機が実行しているアプリケーションのウィンドウ（アプリケーションウィンドウ）の内容を受信して表示する共有ディスプレイの複数のウィンドウ（リモートウィンドウ）表示を制御する共有計算機とよりなるシステムの共有ディスプレイに表示可能な画面制御方法であって、前記共有計算機は前記共有ディスプレイに表示している前記複数の計算機のアプリケーションウィンドウに関する情報と前記複数の計算機の情報とを保持するとともに、前記複数の計算機の一つは前記共有ディスプレイに表示されている複数のリモートウィンドウの共有ディスプレイ上の表示構成を制御可能としたことを特徴とする画面共有制御方法。
【請求項２】
請求項１の画面共有制御方法であって、前記共有計算機が前記共有ディスプレイに表示している前記複数の計算機のアプリケーションウィンドウに関する情報を、前記複数の計算機の一つに提供する手段を有することを特徴とする画面共有制御方法。
【請求項３】
請求項２の画面共有制御方法であって、前記複数の計算機の一つは、前記共有計算機から前記共有ディスプレイに表示している前記複数の計算機のアプリケーションウィンドウに関する情報を取得して、前記共有ディスプレイ上のリモートウィンドウの表示構成を表現する図を制御ウィンドウとして自己のディスプレイに描画すること、前記制御ウィンドウに対する計算機の利用者の入力操作を前記共有ディスプレイ上のリモートウィンドウに対する操作要求として解釈すること、前記操作要求を前記共有計算機に送信して前記共有計算機は前記操作要求を受信したときリモートウィンドウの表示構成を前記操作要求に対応して変更することを特徴とする画面共有制御方法。
【請求項４】
請求項２または３の画面共有制御方法において、前記共有ディスプレイに表示している前記複数の計算機のアプリケーションウィンドウに関する情報が各リモートウィンドウの共有ディスプレイ上の位置、幅、高さ、リモートウィンドウの重なり示す値、元々のアプリケーションウィンドウが存在している計算機を識別する値、および、その計算機上でアプリケーションウィンドウを識別する値を含む情報から構成されることを特徴とする画面共有制御方法。
【請求項５】
請求項３の画面共有制御方法であって、前記利用者の入力操作が前記共有ディスプレイ上に表示されているリモートウィンドウの位置と重なりを変更することを有することを特徴とする画面共有制御方法。
【請求項６】
請求項３ないし５のいずれかに記載された画面共有制御方法であって、前記共有ディスプレイ上のリモートウィンドウの表示構成を表現する図を制御ウィンドウとして自己のディスプレイに描画した計算機のリモートウィンドウの表示構成を表現する図を、リモートウィンドウを任意の縮尺で縮小した矩形とし、前記ディスプレイ全体の内容を縮小となるように矩形の描画位置を決定し、さらに、矩形の重なりがリモートウィンドウの重なりに対応するように矩形を描画することを特徴とする画面共有制御方法。
【請求項７】
実行しているアプリケーションのウィンドウ（アプリケーションウィンドウ）をそれぞれ表示するディスプレイを有する複数の計算機と、該複数の計算機とネットワークで接続されて複数の計算機が実行しているアプリケーションのウィンドウ（アプリケーションウィンドウ）の内容を受信して表示する共有ディスプレイの複数のウィンドウ（リモートウィンドウ）表示を制御する共有計算機とよりなるシステムの前記複数の計算機と前記共有計算機とが二つ以上のグループとなっているシステムであって、それぞれのグループの共有計算機がネットワークで接続され、且つ、それぞれのグループで前記共有計算機は前記共有ディスプレイに表示している前記複数の計算機のアプリケーションウィンドウに関する情報と前記複数の計算機の情報とを保持するとともに、前記複数の計算機の一つは前記共有ディスプレイに表示されている複数のリモートウィンドウの共有ディスプレイ上の表示構成を制御可能とするとともに、前記グループの一つの共有計算機と当該グループの前記複数の計算機の一つは前記各グループの共有ディスプレイに表示されている複数のリモートウィンドウの共有ディスプレイ上の表示構成を制御可能としたことを特徴とする画面共有制御方法。
【請求項８】
実行しているアプリケーションのウィンドウ（アプリケーションウィンドウ）をそれぞれ表示するディスプレイを有する複数の計算機と、該複数の計算機とネットワークで接続されて複数の計算機が実行しているアプリケーションのウィンドウ（アプリケーションウィンドウ）の内容を受信して表示する共有ディスプレイの複数のウィンドウ（リモートウィンドウ）表示を制御する共有計算機とよりなるシステムの共有ディスプレイに表示可能な画面制御方法であって、前記共有計算機は前記共有ディスプレイに表示している前記複数の計算機のアプリケーションウィンドウに関する情報と前記複数の計算機の情報とを保持するとともに、前記複数の計算機の一つは前記共有ディスプレイに表示されている複数のリモートウィンドウの共有ディスプレイ上の表示構成を制御可能とした画面共有制御方法を実行する計算機システムにより実現されたことを特徴とする電子会議システム。
【請求項９】
請求項８の電子会議システムであって、前記複数の計算機の一つは、前記共有計算機から前記共有ディスプレイに表示している前記複数の計算機のアプリケーションウィンドウに関する情報を取得して、前記共有ディスプレイ上のリモートウィンドウの表示構成を表現する図を制御ウィンドウとして自己のディスプレイに描画すること、前記制御ウィンドウに対する計算機の利用者の入力操作を前記共有ディスプレイ上のリモートウィンドウに対する操作要求として解釈すること、前記操作要求を前記共有計算機に送信して前記共有計算機は前記操作要求を受信したときリモートウィンドウの表示構成を前記操作要求に対応して変更する画面共有制御方法を実行する計算機システムにより実現されたことを特徴とする電子会議システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機で実行するアプリケーションのウィンドウ画面を、他の計算機のディスプレイに表示する方式に関する。特に、ウィンドウ画面の表示の制御方式に関する。
【背景技術】
【０００２】
複数の計算機をネットワークで接続して、会議での情報共有や共同作業を効率化する試みは多くなされている。これらは、一般に電子会議システムと呼ばれる。電子会議システムでは、会議の出席者が使用する計算機において、出席者が同じ画面を共有して、必要な情報を画面上で簡単に共有できる（特許文献１（第３−４頁、図１）等参照）。この例では、任意に指定したアプリケーションのウィンドウを画像に変換して、画面共有する相手に送っている。
【０００３】
また、画面全体や任意のアプリケーションのウィンドウを画像として共有するのではなく、専用のアプリケーションにより、出席者の端末に表示する情報の内容を出席者の間でリアルタイムに制御して、出席者が同じ情報を見ながら会議や作業を進行するよう仕向けるシステムもある（特許文献２（第２頁、図１）等参照）。
【０００４】
これらのシステムでは、出席者は全員が各自で操作可能な端末を持ち、それぞれの出席者は、その端末のディスプレイに何をどのように表示させるかを自由に決められる。例えば、マルチウィンドウ環境であれば、共有している画面を端末ディスプレイのどこに表示するか、どの共有画面を一番上に表示するかといったことを決められる。また、進行中の会議で共有されている画面表示とは同期せずに、出席者が閲覧したい情報を決めて見ることも可能になっている。
【０００５】
一方で、会議において、プロジェクタ等によって資料を大画面に投影し、会議の出席者で共有するといったことも一般的になっている。更に、プロジェクタがネットワークに対応し、それにより接続した計算機の画面を投影する機能を持つことにより、表示するファイルがある計算機との接続を簡単化し、使い勝手を向上したプロジェクタも存在している。
【０００６】
【特許文献１】特開２０００−９９２３３号公報
【０００７】
【特許文献２】特開２０００−２３６３２９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来の電子会議システムは、すべての出席者が計算機端末を持っていることが前提となっているため、端末を持たない出席者は情報共有に参加できない問題がある。
【０００９】
プロジェクタ等の共有ディスプレイに電子会議システムの端末を接続して画面を表示させれば、端末を持たない出席者も会議でのリアルタイムな共有情報を閲覧できる。しかし、共有ディスプレイに接続した端末を操作して、共有画面の表示を制御する操作者が必要になるという問題がある。会議の出席者がこれを行ってもよいが、この出席者は特別な役割を負うため、会議に集中できない、あるいは、会議の進行が妨げられるという問題がある。
【００１０】
特に、出席者の端末のアプリケーションウィンドウの画像を、複数同時に共有ディスプレイに表示する場合、その画像を表示するウィンドウの表示位置や重なり具合を、簡単に調整できる必要がある。共有ディスプレイの利用者が、持っている端末から簡単に、共有ディスプレイ上のウィンドウ位置を調整できるようにすることが課題である。
【００１１】
また、遠隔地にあってネットワークで接続している複数の共有ディスプレイが、同じ共有画面を表示する場合に、それらの共有ディスプレイ上のウィンドウ表示構成を、一度の操作で簡単に調整できるようにすることも課題である。
【課題を解決するための手段】
【００１２】
前記の課題を解決する手段は、利用者の計算機で実行するアプリケーションのウィンドウの内容を画像として取得して共有ディスプレイに送信すると、共有ディスプレイで受信した画像をリモートウィンドウとして表示する手順に加えて、共有ディスプレイが表示しているそれぞれのリモートウィンドウの識別子、位置、サイズ、および、重なりを表現する表示構成情報を利用者の計算機に送信する手順と、その表示構成情報から共有ディスプレイ上のリモートウィンドウの表示構成を縮小して描画する手順と、その縮小描画された表示構成への入力操作を、リモートウィンドウの操作要求として共有ディスプレイに送信する手順と、操作要求を受けて共有ディスプレイのリモートウィンドウの表示構成を変更する手順からなる。
【発明の効果】
【００１３】
本発明によれば、複数の計算機で実行する、異なるアプリケーションウィンドウの画像を、同時に１つの共有ディスプレイに表示する場合、その画像を表示するウィンドウの表示位置や重なり具合を、簡単に調整できる。共有ディスプレイの利用者は、持っている端末から簡単に、共有ディスプレイに表示されているリモートウィンドウの位置や重なりを調整できるようになる。
【００１４】
共有ディスプレイが大型のディスプレイであれば、共有ディスプレイを操作する計算機を持たない利用者も情報共有に参加可能となる。
【００１５】
更に、複数の共有ディスプレイに同じ共有画面を表示し、それらの共有ディスプレイ上のウィンドウ表示構成を、一度の操作で簡単に調整することも可能である。これにより、遠隔のサイト間で、簡単に画面共有を実現することができる。
【発明を実施するための最良の形態】
【００１６】
図面を用いて本発明の実施の形態を説明する。本実施の形態では、会議の出席者が持っている計算機で選択されたウィンドウの内容を、会議の出席者で共有している共有ディスプレイに１つのウィンドウ（リモートウィンドウと呼ぶ）として表示し、リモートウィンドウが共有ディスプレイに複数表示されているときに、それらのリモートウィンドウの位置や重なり具合を、出席者の計算機から制御する方法について説明する。以降、ウィンドウの内容をリモートウィンドウに表示することを、画面共有と呼ぶ。
【００１７】
（実施例１）
図１は、本発明の実施例１の概要を示す図である。１００は、共有ディスプレイである。共有ディスプレイ１００は、画像を表示する大型のディスプレイ１０１と、表示を制御する共有計算機１０２から構成する。共有ディスプレイ１００にはウィンドウ１０３および１０４が表示されている。ここではディスプレイを用いるとしたが、プロジェクタのような装置でも良い。また、計算機１０２は、ＣＰＵ、メモリおよび外部記憶を備えた一般的な計算機であるが、この例では、共有ディスプレイ１００の制御用に特化されているので、共有ディスプレイ１００に埋め込まれており、ネットワーク１３０以外の入力装置は持たない。ネットワークアダプタ１０５はネットワーク１３０への接続のためのアダプタ、ディスプレイアダプタは共有ディスプレイ１００への接続のためのアダプタである。
【００１８】
計算機１１０は一般的な計算機で、利用者がアプリケーションを実行している。１１１は、計算機１１０で実行されているアプリケーションのウィンドウをディスプレイ１１５に表示する。また、計算機１１０と共有ディスプレイ１００は、ネットワークアダプタ１１３を介してネットワーク１３０で接続している。計算機１２０も、計算機１１０と同様、一般的な計算機（他の計算機）で、利用者がアプリケーションを実行している。１２１は、計算機１２０で実行されているアプリケーションのウィンドウをディスプレイ１２５に表示する。また、計算機１２０と共有ディスプレイ１００は、ネットワークアダプタを介してネットワーク１３０で接続している。
【００１９】
ディスプレイ１０１が表示しているウィンドウ１０３および１０４は、計算機１１０および１２０が表示するウィンドウ１１１および１２１と同じ内容を表示するリモートウィンドウである。計算機１１０と１２０は、利用者が指定したウィンドウの内容を画像として取得し、その画像をネットワーク１３０を介して共有ディスプレイ１００に送信する手段および手順を持つ。また、計算機１０２は、ネットワーク１３０からウィンドウ画像を受信して、ディスプレイ１０１にリモートウィンドウとして表示する手段および手順を持っている。
【００２０】
計算機１１０のウィンドウ１１２は制御ウィンドウであり、ディスプレイ１０１のリモートウィンドウの表示を制御するアプリケーションを示す。このウィンドウ１１２は、ディスプレイ１０１が表示するリモートウィンドウの位置、および、重なり具合を、ウィンドウ１１２内に描画する矩形で示す。計算機１１０の利用者は、矩形の位置や重なりを変更する操作を通じて、ディスプレイ１０１のリモートウィンドウの位置、重なりを変更できる。
【００２１】
図１には、計算機１１０の構成も示している。計算機１１０はＣＰＵ、メモリ、外部記憶装置、ディスプレイアダプタ、ネットワークアダプタ、入力装置等から構成される。１１４および１２４は入力装置の一つであるキーボードを意識して表示されている。なお、実施例１では、計算機１０２は入力装置を持たないとしたが、持っても良い。
【００２２】
図２は、実施例１のソフトウェア構成を示した図である。まず、共有ディスプレイ１００の計算機１０２のソフトウェア構成について説明する。計算機１０２では、Ｗｅｂサーバプログラム２０３が実行している。Ｗｅｂサーバプログラム２０３は、ネットワーク１３０に接続する計算機からのＨＴＴＰリクエストを受け付けて、他の処理モジュール（プログラム）を起動する。
【００２３】
ウィンドウ画像受信プログラム２０１は、計算機１１０や１２０が送信するウィンドウの画像を受信し、ディスプレイ１０１に受信した画像を表示するよう、リモートウィンドウ制御プログラム２０２を呼び出す。
【００２４】
リモートウィンドウ制御プログラム２０２は、ウィンドウ画像受信プログラム２０１とＷｅｂサーバプログラム２０３から適宜呼び出されて、リモートウィンドウの描画、移動といった処理を実施する。また、ディスプレイ１０１に表示するリモートウィンドウについて、送信元の情報、リモートウィンドウの表示位置、サイズ、重なり順序を記録するリモートウィンドウテーブル４００、接続している計算機を記録するクライアントテーブル４１０を保持している。それぞれのテーブルの構造の一例を図４Ａ、図４Ｂに示す。
【００２５】
リモートウィンドウ制御プログラム２０２は、リモートウィンドウの位置情報が更新された場合に、その更新をネットワーク１３０に接続している計算機１１０，１２０に送信して通知する。
【００２６】
これらは、計算機１０２のメモリにロードされ、ＣＰＵで実行される。
【００２７】
次に、計算機１１０のソフトウェア構成について説明する。計算機１２０も同様である。計算機１１０は、複数のアプリケーションが同時に実行可能で、それぞれのアプリケーションがそれぞれのウィンドウにデータや作業内容を表示可能とする。
【００２８】
共有制御プログラム２１２は、画面共有するウィンドウの指定、画面共有の停止、および、接続する共有ディスプレイの指定といった手順を実装する。利用者は、共有制御プログラム２１２が提供するＵＩ（ユーザインタフェイス）を通じて、画面共有を設定できる。また、共有制御プログラム２１２は、画面共有するよう指定されたウィンドウを表す識別子を共有ウィンドウテーブル２１５に保持する。共有ウィンドウテーブル２１５の例を図４Ｃに示す。
【００２９】
画像生成プログラム２１１は、共有ウィンドウテーブル２１５に記録されているウィンドウの内容を画像として取得して、接続している共有ディスプレイ１００で実行するＷｅｂサーバプログラム２０３に送信する。
【００３０】
計算機１１０のウィンドウ制御プログラム２１３は、リモートウィンドウ制御用のＵＩを提供し、Ｗｅｂサーバプログラム２０３と通信してリモートウィンドウ制御の指示を送る、リモートウィンドウ制御プログラム２０２からリモートウィンドウに関する情報を取得する、といった処理を実施する。
【００３１】
これらは、計算機１１０のメモリにロードされ、ＣＰＵで実行される。
【００３２】
次に、ソフトウェアの動作について説明する。図３は、計算機１１０の共有制御プログラム２１２が画面共有するよう指定されたウィンドウの画像を取得して、共有ディスプレイ１００に送信し、共有ディスプレイ１００が対応するリモートウィンドウを描画するまでの処理フローである。以下、フローに従って説明する。
【００３３】
計算機１１０の利用者は、共有制御プログラム２１２のＵＩを通じて、接続する共有ディスプレイ１００を指定する。例えば、計算機１０２に設定されているホスト名や、ネットワークアドレスの指定による。
【００３４】
この指定を受けて共有制御プログラム２１２は、接続する旨を表現するＨＴＴＰリクエストをＷｅｂサーバプログラム２０３に送信する。Ｗｅｂサーバプログラム２０３は、接続要求リクエストをリモートウィンドウ制御プログラム２０２に渡し、制御プログラム２０２は接続要求元のアドレスをクライアントテーブル４１０に登録する。
【００３５】
次に、利用者は、共有制御プログラム２１２のＵＩにより、計算機１１０で実行中のアプリケーションが表示しているウィンドウから、画面共有するウィンドウを指定する。共有制御プログラム２１２は、画面共有するよう指定されたウィンドウの識別子を、共有ウィンドウテーブル２１５に登録する。
【００３６】
計算機１１０の画像生成プログラム２１１は、共有制御プログラム２１２の共有ウィンドウテーブル２１５に登録されているウィンドウ識別子を取得する（ステップ３０１）。更に、それらの識別子に対応するウィンドウの内容を画像として取得し（ステップ３０２）、接続している共有ディスプレイ１００に送信する（ステップ３０３）。この送信は、共有ディスプレイ１００の計算機１０２で実行するＷｅｂサーバプログラム２０３へのＨＴＴＰリクエスト形式とする。これは、画像送信の指示、計算機１１０のホスト名、画像取得したウィンドウのＩＤ、生成した画像自体を含む。画像生成プログラム２１１は、共有ウィンドウテーブル２１５に登録されている全ウィンドウについて、ステップ３０２ないし３０３の処理を実施する。また、画像生成プログラム２１１は、ステップ３０１ないしステップ３０３０の処理を所定の時間間隔で繰り返し、最新のウィンドウ画像を送信する。
【００３７】
共有ウィンドウテーブル２１５に格納されている識別子について、対応するウィンドウが存在しない場合、単純にテーブルからその識別子を削除する（処理フローには記載していない）。画面共有中のウィンドウの画面共有を止める場合は、共有ウィンドウテーブル２１５から対応する識別子を削除すればよい。この時に、対応するリモートウィンドウを廃棄する要求をＷｅｂサーバプログラム２０３に送信しても良い。
【００３８】
一方、制御計算機１０２のＷｅｂサーバプログラム２０３は、計算機１１０が送信したＨＴＴＰリクエストを受信する。サーバプログラム２０３は、このリクエストを受けてウィンドウ画像受信プログラム２０１を呼び出し、受信プログラム２０１はＨＴＴＰリクエストに含まれる画像、送信元、ウィンドウ識別子を取得する（ステップ３０４）。ウィンドウ画像受信プログラム２０１は、リモートウィンドウ制御プログラム２０２を呼び出し、受信した画像を表示するよう指示する。
【００３９】
リモートウィンドウ制御プログラム２０２は、リモートウィンドウテーブル４００を検索して、ＨＴＴＰリクエストに含まれる送信元ホスト名とウィンドウ識別子から、そのウィンドウに対応するリモートウィンドウが割り当てられているか検査する（ステップ３０５）。
【００４０】
もし、既にリモートウィンドウが割り当てられているならば、テーブル４００からウィンドウ画像を表示するためのウィンドウの識別子を取得し、それに受信した画像を描画（ステップ３０８）する。
【００４１】
もし、リモートウィンドウが割り当てられていないならば、リモートウィンドウを生成する。ウィンドウの表示位置は、任意に決めてよい。更に、図４Ａに示すリモートウィンドウテーブル４００に、ＨＴＴＰリクエストに含まれる送信元ホスト名、送信元ウィンドウ識別子、生成したウィンドウの識別子、その表示位置、サイズ、Ｚオーダーを記録する。Ｚオーダーは、ディスプレイ１０１に表示されているウィンドウの重なり具合を示す正の整数値である。ここでは、数値が小さいほうがディスプレイ１０１の前面に描画されるものとする（ステップ３０６）。
【００４２】
さらに、リモートウィンドウ制御プログラム２０２は、リモートウィンドウテーブル４００に記載されている送信元ホスト名、送信元でのウィンドウＩＤ、共有ディスプレイ上でのウィンドウの位置とサイズ、および、Ｚオーダーの情報を、図４Ｂに示すクライアントテーブル４１０に登録されている計算機のウィンドウ制御プログラム２１３に送信する（ステップ３０７）。テーブル４００の送信は、例えば、テーブルの内容のＸＭＬ表現に変換して送信する。そして、ステップ３０８でウィンドウに受信画像を表示する。
【００４３】
リモートウィンドウ制御プログラム２０２が、ステップ３０７で送信するデータの例を図５に示す。ｗｉｎｄｏｗタグに囲まれている部分が図４Ａに示すリモートウィンドウテーブル４００のそれぞれのリモートウィンドウに対応し、ｗｉｎｄｏｗタグ内の各要素がそれぞれの送信元ホスト名、送信元ウィンドウの識別子、ディスプレイ１０２上でのウィンドウの位置、大きさ、Ｚオーダーに対応している。図５では、図４Ａの二つのウィンドウのデータ例を具体的に示す。
【００４４】
以上の手順により、計算機１１０のウィンドウ１１１のリモートウィンドウ１０３が描画される。同様に、計算機１２０のウィンドウ１２１のリモートウィンドウ１０４も描画できる。
【００４５】
次に、計算機１１０のウィンドウ制御プログラム２１３が、図５のＸＭＬデータを受信して、リモートウィンドウに対応する矩形をウィンドウ１１２に描画する手順を説明する。図６Ａに、その処理フローを、図６Ｂにリモートウィンドウに対応して表示された矩形の例を示す。
【００４６】
まず、図５のＸＭＬドキュメントを内部テーブルに変換する（ステップ６０１）。テーブルは、リモートウィンドウテーブル４００とほぼ同じデータ構造で、表示ウィンドウＩＤを含まない構造である。以降、このテーブルを矩形テーブルと呼ぶ。このテーブルをＺオーダー値でソートして、一番手前に表示されているリモートウィンドウの行が、テーブルの一番目の行になるように並べ替える（ステップ６０２）。
【００４７】
次に、テーブル内のウィンドウ座標、ウィンドウサイズを縮小変換する。例えば、座標とウィンドウの幅、高さを８で割った値にテーブルを更新する（ステップ６０３）。最後に、ステップ６０３で得た数値に従って、Ｚオーダーの値の大きいウィンドウから順に、ウィンドウ１１２内に矩形を描画する（ステップ６０４）。つまり、ディスプレイ１０２上で最背面のウィンドウに対応する矩形から描画する。
【００４８】
図６Ｂに示すウィンドウ１１２は、ステップ６０１ないし６０４に従った描画の例である。ウィンドウ内に描画されている矩形の中の数値は、ディスプレイ１０２上のリモートウィンドウの重なりを示すＺオーダー値を示す。上記の処理は、Ｚオーダーが３、２、１の順で矩形を描画する。このＺオーダー自体は、実際には描画されない。
【００４９】
利用者は、このウィンドウ１１２内に表示されている矩形の重なり具合と位置を変える必要があるときは、以下に述べる操作により、ディスプレイ１０２上のリモートウィンドウの表示状態を変更できる。次に、この手順について説明する。
【００５０】
まず、利用者は、操作対象のリモートウィンドウに対応するウィンドウ１１２内の矩形にカーソルを合わせて、マウスでクリックする。これにより、ウィンドウ制御プログラム２１３がリモートウィンドウ操作を開始する。この処理を図７の処理フローに示す。
【００５１】
まず、ウィンドウ制御プログラム２１３は、前記の矩形テーブルを参照して、マウスがクリックされた位置に描画されている、一番前面にある矩形の情報を取得する（ステップ７０１）。そのような矩形がない場合（ステップ７０２）ウィンドウ操作を終了する。
【００５２】
矩形がある場合、マウスがクリックされた位置にウィンドウ操作メニュー（ポップアップメニュー）を表示する（ステップ７０３）。このときに、利用者が分かりやすいように、選択されたウィンドウをハイライト表示しても良い。メニューは、利用者が選択した矩形に対応するウィンドウを最前面に表示する、移動する、という項目を含む。利用者は、このメニューからウィンドウ操作を選択する。
【００５３】
利用者がメニューの「最前面に表示する」を選択した場合（ステップ７０４）、その矩形に対応するウィンドウを最前面に表示する旨のＨＴＴＰリクエストを、Ｗｅｂサーバプログラム２０３に送信する（ステップ７０６）。このリクエストには、矩形テーブルに記録されている送信元ホスト名、送信元ウィンドウＩＤを含める。
【００５４】
利用者が「移動する」を選択した場合（ステップ７０５）、利用者に新しいウィンドウ位置を決めさせる。例えば、選択された矩形を示す四角形をマウスの移動に合わせて描画して、利用者に新しい矩形の位置を決定させる。ウィンドウ制御プログラム２１３は、新しい矩形の位置座標を、ディスプレイ１０２の座標系に変換する（ステップ７０７）。例えば、ウィンドウの座標値、幅、高さを８倍する。ここで、８倍するのは、前述したステップ６０３で、座標とウィンドウの幅、高さを８で割った値でテーブルを更新したからである。最後に、ウィンドウ移動を指示するＨＴＴＰリクエストをＷｅｂサーバプログラム２０３に送信する。ＨＴＴＰリクエストは、操作対象とするウィンドウの送信元ホスト名、ＩＤ、および、新しいウィンドウ座標を含む。
【００５５】
図８に、リモートウィンドウの表示を制御する計算機１０２の処理のフローを示す。図８に示したフローは、最前面表示を要求された場合の処理であるが、ウィンドウ移動の場合も同様である。
【００５６】
まず、指示されたリモートウィンドウ制御処理を実施する（ステップ８０１）。この例では、ＨＴＴＰリクエストに含まれる送信元ホスト名とウィンドウＩＤに対応するウィンドウを、リモートウィンドウテーブル４００から検索して、表示ウィンドウＩＤに対応するウィンドウを最前面に表示する。ウィンドウ移動が要求されているならば、指定されたウィンドウをＨＴＴＰリクエストに含まれる座標に移動する。
【００５７】
次に、ディスプレイ１０２が表示している各ウィンドウについて、リモートウィンドウテーブル４００の情報を更新する。この例では、各ウィンドウのＺオーダー値を取得し、テーブル４００を更新する（ステップ８０２）。ウィンドウ移動の場合は、対象となったウィンドウのウィンドウ座標を更新すればよい。
【００５８】
更新後、リモートウィンドウテーブル４００の情報を、クライアントテーブル４１０に登録されているホストに送信する（ステップ８０３）。
【００５９】
以上により、共有ディスプレイに、複数の計算機で実行する別々のアプリケーションのウィンドウ画面を複数同時に表示させることができる。更に、共有ディスプレイ１００に接続する計算機から、自由に共有ディスプレイに表示されているそれぞれのリモートウィンドウの表示位置や重なり具合を制御可能となる。
【００６０】
これにより、共有ディスプレイ上に複数のリモートウィンドウを表示させ、適宜必要なウィンドウを前面に表示させる、あるいは、複数のウィンドウを並べて表示させるといったことが簡単にでき、情報共有の効率が高まる。
【００６１】
実施例１では、リモートウィンドウに対する操作を、重なり順序の変更と移動としたが、サイズ変更も可能である。これは、ウィンドウ制御プログラム２１３がリモートウィンドウに対応する矩形のサイズを変更する操作および処理手順と、要求サイズをＷｅｂサーバプログラム２０３に送信する手順とを持ち、リモートウィンドウ制御プログラム２０２がその要求サイズに合わせてリモートウィンドウのサイズを変更し、そのサイズに合わせてウィンドウ画像を描画する手順を搭載すればよい。
【００６２】
実施例１では、リモートウィンドウの状態が変わったときに、共有ディスプレイに接続している計算機のすべてにリモートウィンドウテーブル４００の内容を通知しているが、これはしなくても良い。例えば、ウィンドウ制御プログラム２１３が、必要に応じてリモートウィンドウ制御プログラム２０２に問い合わせるようにしても良い。この場合、クライアントテーブル４１０は不要になる。
【００６３】
また、実施例１では、共有ディスプレイ１００に接続するために、利用者にホスト名やアドレスの入力を要求しているが、自動的に共有ディスプレイを発見するようにすることも可能である。例えば、共有制御プログラム２１２がネットワーク１３０に共有ディスプレイを発見するためのブロードキャストを送信し、リモートウィンドウ制御プログラム２０２がそれに応えて、計算機１０２のネットワークアドレスを共有制御プログラム２１２に送信すれば、共有ディスプレイ１００への接続を簡単化できる。
【００６４】
また、実施例１では、画面共有の表示先を共有ディスプレイ１００としたが、計算機１２０のような通常の端末にも表示しても良い。この場合、例えば、計算機１２０が表示したいウィンドウの画像を転送するようにリモートウィンドウ制御プログラム２０２に要求する手順と、リモートウィンドウ制御プログラム２０２が要求されたウィンドウの画像を要求元に転送する手順を持てば良い。
【００６５】
（実施例２）
次に、本発明の実施例２について説明する。実施例２では、共有ディスプレイが複数あって、それぞれが同じ表示構成でリモートウィンドウを表示する。ここで表示構成が同じとは、リモートウィンドウの位置、サイズ、Ｚオーダー値が同じであることを示す。これは、複数のサイトで会議を実施し、その間で同じ画面を見ながら情報共有する場合に相当する。図９は、本発明の実施例２の構成を示す図である。図９は、実施例１の図１と図２とを統合して簡易化して表示するとともに、実施例１の図２に示すソフトウェアに着目した図となっている。
【００６６】
計算機１１０と共有ディスプレイ１００は、ネットワーク１３０に接続している。一方、計算機１２０と共有ディスプレイ９００は、ネットワーク９３０に接続している。これは、共有ディスプレイと計算機が、２つの異なるサイトにあることを示す。ネットワーク１３０とネットワーク９３０は、同じネットワークではないが、通信可能なようにネットワーク９２０で接続されている。各サイトのネットワーク１３０およびネットワーク９３０には、図１と同様に、それぞれの共有ディスプレイ１００および共有ディスプレイ９００を見ながら、会議に参加する人の計算機が接続される。
【００６７】
共有ディスプレイ１００の計算機１０２は、図２で説明したソフトウェアに加えて、新たな構成要素として、ディスプレイグループテーブル９１１と、画面共有サーバフラグ９１２を含む。これらは、実施例１のリモートウィンドウテーブル４００およびクライアントテーブル４１０と同様に、リモートウィンドウ制御プログラム２０２の管轄に含まれる。ソフトウェアのその他の機能は図２で説明したのと同じである。共有ディスプレイ９００のソフトウェア構成は、本発明の実施例１と同様である。
【００６８】
画面共有サーバフラグ９１２をセットされた共有ディスプレイ１００は、画面共有サーバとして動作し、サーバに接続する他の共有ディスプレイ９００を統括管理する。すべてのリモートウィンドウ操作に関する要求は、一旦画面共有サーバとして設定された共有ディスプレイ１００に転送され、サーバが各共有ディスプレイに再転送する。同じ、画面共有サーバを利用している共有ディスプレイ９００は、同じ表示構成でリモートウィンドウを表示する。
【００６９】
実施例２では、共有ディスプレイ１００と９００が、同じ表示構成のリモートウィンドウを表示し、ネットワークにつながっているいずれかの計算機のリモートウィンドウ制御で、両方の共有ディスプレイのリモートウィンドウを制御可能とする手順を示す。共有ディスプレイ１００がサーバになるとして説明する。
【００７０】
まず、データ構造について説明する。図９に示したディスプレイグループテーブル９１１は、サーバとして動作する共有ディスプレイ１００が、同じ表示構成でリモートウィンドウを表示する共有ディスプレイ９００のアドレスを保持するテーブルである。自身のアドレスは含まない。
【００７１】
実施例２では、共有制御プログラム２１２は、接続する共有ディスプレイ９００を指定する手順のほかに、接続している共有ディスプレイ１００を画面共有サーバとする手順（サーバ開始手順）、接続している共有ディスプレイの画面共有サーバを指定する手順（サーバ設定手順）を有する。
【００７２】
次に、共有ディスプレイ１００を画面共有サーバとして実行し、共有ディスプレイ９００を接続する手順について説明する。
【００７３】
計算機１１０の利用者は、共有制御プログラム２１２の共有ディスプレイ指定手順で、共有ディスプレイ１００に接続し、共有制御プログラム２１２のサーバ開始手順を呼び出す。共有制御プログラム２１２は、Ｗｅｂサーバプログラム２０３に画面共有サーバフラグ９１２をセットするようＨＴＴＰリクエストを送信する。これを受けて、計算機１０２のリモートウィンドウ制御プログラム２０２が、画面共有サーバフラグ９１２をセットする。この操作は、システム全体で一度だけ実施すればよい。
【００７４】
一方、計算機１２０の利用者は、共有ディスプレイ指定手順で、共有ディスプレイ９００に接続するように設定し、サーバ指定手順により、共有ディスプレイ９００が接続する画面共有サーバを共有ディスプレイ１００に設定する。共有ディスプレイ９００のリモートウィンドウ制御プログラム２０２は、この設定を受けて、共有ディスプレイ１００に接続する旨の要求を送信する。共有ディスプレイ１００のリモートウィンドウ制御プログラム２０２は、ディスプレイグループテーブル９１１に共有ディスプレイ９００を登録する。この設定手順は、各共有ディスプレイについて一度だけ実施すればよい。
【００７５】
次に、計算機１１０や計算機１２０の画像生成プログラム２１１からウィンドウ画像を受信したときの処理について、図１０を参照して説明する。
【００７６】
実施例１と同様に、ウィンドウ画像受信プログラム２０１が画像を受信（ステップ３０４）し、リモートウィンドウ制御プログラム２０２に画面表示を指示する。リモートウィンドウ制御プログラム２０２は、画面共有サーバフラグ９１２を検査して、サーバとして実行しているか検査する（ステップ１００１）。そうである場合、ディスプレイグループテーブル９１１に登録されている共有ディスプレイに、受信した画像情報を転送し（ステップ１００２）、ステップ３０５からのリモートウィンドウ描画を実施する。
【００７７】
サーバでない場合、画面共有サーバが設定されているか検査する（ステップ１００３）。設定されている場合、ウィンドウ画像受信プログラム２０１は受信した画像情報を、画面共有サーバとして設定されている共有ディスプレイ、この場合、共有ディスプレイ９００に再送信して（ステップ１００４）、終了する。この共有ディスプレイ上でのリモートウィンドウの描画は、サーバから画像が転送されてきたときに実施する。
【００７８】
サーバとして動作していない共有ディスプレイが、ステップ１００２でサーバが転送した画像を受信したときは、実施例１のステップ３０５から始まるリモートウィンドウ描画処理を実施する。計算機１１０と１２０の画像送信と、画面共有サーバの画像転送は、ＨＴＴＰリクエストに含めるコマンドを違えることで区別できる。
【００７９】
リモートウィンドウの重なり順序変更と移動についても、上記と同様の考え方で、すべての共有ディスプレイで同じリモートウィンドウの表示構成を実現することが可能である。具体的には、図８のステップ８０１の前に、自身がサーバであるかどうかを検査し、サーバならば指示をディスプレイグループテーブル９１１に登録されている共有ディスプレイに指示を転送した後、指示されたリモートウィンドウ制御を実施する。サーバでないなら、サーバに指示を転送する。Ｗｅｂサーバプログラム２０３から転送された指示を受信したときは、リモートウィンドウ制御を実施すればよい。
【００８０】
以上により、複数の共有ディスプレイで同じリモートウィンドウの表示構成を実現できる。以上によれば、共有ディスプレイに接続する計算機のすべてが、画面共有を実施している他の共有ディスプレイについて知る必要がないため、簡単にリモートウィンドウを複数の共有ディスプレイで共有できる。
【００８１】
（実施例３）
次に、本発明の実施例３について説明する。実施例２では、画面共有サーバとならない各共有ディスプレイにおいて、各共有ディスプレイへ接続する設定をしてから、画面共有サーバを設定しなければならなかった。実施例３では、サーバ以外の共有ディスプレイの設定を、直接実施する手順を提供する。
【００８２】
計算機１１０の共有制御プログラム２１２に、任意の共有ディスプレイの画面共有サーバの設定を実施する手順を設ける。この手順は、指定した任意の共有ディスプレイに、画面共有サーバ設定をするＨＴＴＰリクエストを送信する。このリクエストを受信した共有ディスプレイのリモートウィンドウ制御プログラムは、ＨＴＴＰリクエストに含まれる画面共有サーバプログラムをＷｅｂサーバプログラム２０３として設定する。
【００８３】
以上によれば、利用者のうちの１人だけが、画面共有を実施する共有ディスプレイについての設定を実施すれば、その他の参加者は１つの共有ディスプレイに接続するだけで、画面共有に参加できる。つまり、利用者すべてが画面共有に参加するために、関係するすべての共有ディスプレイの情報を知る必要はなく、そのための設定も不要となり、更に利便性が高まる。
【図面の簡単な説明】
【００８４】
【図１】本発明の実施例１の概要を示す図。
【図２】実施例１のソフトウェア構成を示した図。
【図３】計算機１１０の共有制御プログラム２１２が画面共有するよう指定されたウィンドウの画像を取得して、共有ディスプレイ１００に送信し、共有ディスプレイ１００が対応するリモートウィンドウを描画するまでの処理フローを示す図。
【図４Ａ】実施例1のリモートウィンドウテーブル４００のデータ構造の一例を示す図。
【図４Ｂ】実施例1のクライアントテーブル４１０のデータ構造の一例を示す図。
【図４Ｃ】実施例1の共有ウィンドウテーブル２１５のデータ構造の一例を示す図。
【図５】実施例1のリモートウィンドウ制御プログラム２０２が送信するデータの例を示す図。
【図６Ａ】図５のＸＭＬデータを受信して、リモートウィンドウに対応する矩形をウィンドウ１１２に描画する実施例1の手順の処理フローを説明する図。
【図６Ｂ】実施例1のリモートウィンドウに対応して表示された矩形の例を示す図。
【図７】実施例1のウィンドウ制御プログラム２１３が行なうリモートウィンドウ操作の処理フローを示す図。
【図８】実施例1のリモートウィンドウの表示を制御する処理のフローを示す図。
【図９】本発明の実施例２の構成を示す図。
【図１０】画像生成プログラム２１１からウィンドウ画像を受信したときの実施例２の処理フローを示す図。
【符号の説明】
【００８５】
１００…共有ディスプレイ装置、１０１…ディスプレイ、１０２…計算機、１０３，１０４…リモートウィンドウ、１０５…ネットワークアダプタ、１１０，１２０…計算機、１１１，１２１…アプリケーションのウィンドウ、１１２…リモートウィンドウ制御用のウィンドウ、１１３…ネットワークアダプタ、１３０…ネットワーク、２０１…ウィンドウ画像受信部、２０２…リモートウィンドウ制御プログラム、２０３…Ｗｅｂサーバ、２１１…画像生成部、２１２…共有制御プログラム、２１３…ウィンドウ制御プログラム、３０１ないし３０８…画面共有の処理ステップ、４００…リモートウィンドウテーブル、４１０…クライアントテーブル、５００…リモートウィンドウの情報を交換するためのＸＭＬの例、６０１ないし６０４…ウィンドウ制御プログラム２１３のＵＩを描画するための処理ステップ、７０１ないし７０８…ウィンドウ制御プログラム２１３のＵＩの処理ステップ、８０１ないし８０３…リモートウィンドウ制御プログラム２０２の処理ステップ、９００…共有ディスプレイ装置、９１１…ディスプレイグループテーブル、９１２…画面共有サーバフラグ、９３０…ネットワーク、１００１ないし１００４…リモートウィンドウ制御プログラム２１３の処理ステップ。
【図１】
2005149440.tif 000003
【図２】
2005149440.tif 000004
【図３】
2005149440.tif 000005
【図４Ａ】
2005149440.tif 000006
【図４Ｂ】
2005149440.tif 000007
【図４Ｃ】
2005149440.tif 000008
【図５】
2005149440.tif 000009
【図６Ａ】
2005149440.tif 000010
【図６Ｂ】
2005149440.tif 000011
【図７】
2005149440.tif 000012
【図８】
2005149440.tif 000013
【図９】
2005149440.tif 000014
【図１０】
2005149440.tif 000015