(57)【特許請求の範囲】
【請求項１】
少なくとも他のコンピュータと通信するための通信手段と、
ユーザの入力操作を受け付け、入力操作に応じたイベントを発生するためのユーザ入力手段と、
自己のコンピュータで発生した前記イベントまたは前記通信手段を通じた他のコンピュータからの前記イベントを判別するとともに、当該イベントを受け取るアプリケーションを判別し、判別されたアプリケーションにイベントを伝達するイベント判別振り分け手段と、
前記イベント判別振り分け手段によりイベントが伝達されたアプリケーションの実行結果を表示画面に表示するための表示手段と、
前記表示画面の表示内容を制御する表示画面制御手段と、
他のコンピュータと共有する画面表示中に表示するウインドウの、表示または非表示を制御する表示・非表示制御手段と、
前記アプリケーションの実行結果により画面表示情報を更新するときに、前記表示・非表示制御手段の制御に基づいて、他のコンピュータに渡す共有する画面の表示情報を計算する共有画面計算手段と、
前記ユーザ入力手段での入力操作に応じて発生するイベントを前記通信手段を通じて他のコンピュータに渡す機能と、前記ユーザ入力手段でのユーザ入力操作に応じて発生するイベントまたは前記通信手段を通じた他のコンピュータからのイベントを前記イベント判別振り分け手段に渡す機能と、前記共有画面計算手段で計算された前記共有する画面の表示情報を前記通信手段を通じて他のコンピュータに渡す機能と、前記通信手段を通じて他のコンピュータから到来する前記共有する画面の表示情報を前記表示画面制御手段に渡す機能とを備える共有化手段と、
画面の変更が発生したときに、表示する共有画面の表示情報の再計算を実行するか、しないかを判別する再計算実行判別手段と、
を備えることを特徴とする共同作業支援システム。
【請求項２】
ネットワークを介して接続された他のコンピュータと共有の表示画面を表示すると共に、その画面表示を通じて行なう共同作業を支援するコンピュータを用いた共同作業支援方法であって、
ユーザ入力手段を通じたユーザの入力操作を受け付け、前記入力操作に応じたイベントを発生するイベント発生工程と、
自己のコンピュータで発生した前記イベントまたは少なくとも他のコンピュータと通信するための通信手段を通じた前記他のコンピュータからの前記イベントを判別するとともに、当該イベントを受け取るアプリケーションを判別し、判別されたアプリケーションにイベントを伝達するイベント判別振り分け工程と、
前記イベント判別振り分け工程によりイベントが伝達されたアプリケーションの実行結果を表示画面に表示するための表示工程と、
前記表示画面の表示内容を制御する表示画面制御工程と、
他のコンピュータと共有する画面表示中に表示するウインドウの、表示または非表示を制御する表示・非表示制御工程と、
前記アプリケーションの実行結果により画面表示情報を更新するときに、前記表示・非表示制御工程での制御に基づいて、他のコンピュータに渡す共有する画面の表示情報を計算する共有画面計算工程と、
前記ユーザ入力手段での入力操作に応じて発生するイベントを、前記通信手段を通じて他のコンピュータに渡す機能と、前記ユーザ入力手段でのユーザ入力操作に応じて発生するイベントまたは前記通信手段を通じた他のコンピュータからのイベントを前記イベント判別振り分け手段に渡す機能と、前記共有画面計算手段で計算された前記共有する画面の表示情報を前記通信手段を通じて他のコンピュータに渡す機能と、前記通信手段を通じて他のコンピュータから到来する前記共有する画面の表示情報を前記表示画面制御手段に渡す機能とを実行する共有化工程と、
画面の変更が発生したときに、表示する共有画面の表示情報の再計算を実行するか、しないかを判別する再計算実行判別工程と、
を備えることを特徴とする共同作業支援方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、複数のユーザのそれぞれが有するコンピュータの画面に、複数のユーザ間で、共通の画面を表示し、その画面表示を通じて行なう共同作業を支援する共同作業支援システムおよび共同作業支援方法に関する。
【０００２】
【従来の技術】
従来より会議を行うときに、コンピュータネットワークを介して、各会議参加者が所有するコンピュータの表示画面に、共有データを共有ウインドウとして表示して、会議参加者間でリアルタイムなメッセージ交換を行うえるシステムが知られている。
【０００３】
この種のシステムの例としては、例えば、ゼロックス社のパロ・アルト研究所によるＣｏｌａｂ  Ｓｙｓｔｅｍ（M.Stefik，D.G.Bobrow，G.Foster，S.Lanning ，and D.Tatar Xerox Palo Alto ，Research Center ”ＷＹＳＩＷＩＳ  Ｒｅｖｉｓｅｄ：Ｅａｒｌｙ  Ｅｘｐｅｒｉｅｎｃｅｓ  ｗｉｔｈ  Ｍｕｌｔｉｕｓｅｒ  Ｉｎｔｅｒｆａｃｅｓ”，ＡＣＭ Transaction on Office Information Systems, Vol.5,No.2,April 1987,Pages 147-167 参照）や、日本電気株式会社のＭＥＲＭＡＩＤ（特開平３−５８６５８号参照）などが知られている。
【０００４】
この種のシステムでは、例えば遠隔地で複数人で打合せを行う場合、打合せを行う人が使っているワークステーションなどのコンピュータのアドレスを指定して、打合せを行うグループを形成し、複数人での使用を前提に作られた打合せに必要なアプリケーションプログラムを各人のコンピュータで起動する。そして、アプリケーションプログラム間でデータの交換を行い、各人のコンピュータに表示されているアプリケーションの画面表示を全く同じものにし、かつ、その共有ウインドウ内で行われた操作の結果、変化する表示も同じにする。その結果、複数のコンピュータのそれぞれで、各作業者が操作を行っても、１つのアプリケーション（例えば、ホワイトボードツール）を共有して議論を進めることが可能となる。
【０００５】
このように、複数人での使用を前提に作成したアプリケーション単位で、画面への表示と、マウス、キーボードなどの入力操作手段を通じての複数人の操作を共有し、ネットワークを介して、コミュニケーションを複数人で行うシステムを、この明細書では、画面共有システムと呼ぶこととする。
【０００６】
これに対して、前記のようにアプリケーション単位で、画面への表示と、マウス、キーボード等による入力操作を行うのではなく、複数のアプリケーションが表示されているウインドウシステムの画面表示と、ウインドウシステムを介して行われるマウス、キーボード等による操作を共有して、コミュニケーションを複数人で行うシステムも知られている。
【０００７】
この種のシステムとしては、例えば、日本電信電話株式会社のＴｅａｍＷｏｒｋｓｔａｔｉｏｎ（Ishii,Hiroshi.”ＴｅａｍＷｏｒｋｓｔａｔｉｏｎ：  Ｔｏｗａｒｄｓ  ａ  Ｓｅａｍｌｅｓｓ  Ｓｈａｒｅｄ  Ｗｏｒｋｓｐａｃｅ”  ＣＳＣＷ  ９０  Proceedings ，October 1990，pp.13-26や特開平３−１１９４７６号参照）や、Ｔｉｍｂｕｋｔｕ、Ｌｏｏｋ＠Ｍｅ（Look@Me Release Notes 、Farallon Computing, Inc.）、さらには複数ワークステーションでの共同作業システム（例えば特開平３−２７３４４３号参照）などが知られている。この明細書では、この仕組みのシステムをアプリケーション共有システムと呼ぶ。
【０００８】
前述した画面共有システムと、アプリケーション共有システムとを、図を用いてさらに説明する。
【０００９】
図１５は、画面共有システムを説明するための図である。すなわち、このシステムにおいては、各コンピュータＡ，Ｂに、複数人での使用を前提に作られた必要なアプリケーションプログラムＭを搭載し、これらアプリケーションプログラムＭの間は、通信ネットワークＮにより接続する。各コンピュータＡ，Ｂは、それぞれマウスやキーボードなどのユーザ入力手段Ｃａ，Ｃｂと、表示装置Ｖａ，Ｖｂとが接続される。
【００１０】
この画面共有システムにおいては、コンピュータＡのユーザ入力手段Ｃａからの入力イベントは、そのコンピュータＡのアプリケーションＭで処理されて、その処理結果が表示装置Ｖａに表示されるとともに、通信ネットワークＮを通じてコンピュータＢのアプリケーションＭに転送されて、処理され、その処理結果がコンピュータＢの表示装置Ｖｂに表示される。
【００１１】
この結果、コンピュータＡおよびＢの表示画面には、アプリケーションＭによる同一内容のウインドウが表示される。つまり、ユーザ入力手段Ｃａ，Ｃｂの入力イベントのそれぞれが、コンピュータＡおよびＢに共通に反映される。したがって、コンピュータＡ，Ｂの所有者は、その共有ウインドウを通じて、各ユーザ入力手段Ｃａ，Ｃｂを用いながらの共同作業が行える。
【００１２】
次に、図１６は、アプリケーション共有システムを説明するための図である。すなわち、このシステムにおいては、複数のコンピュータで共有して利用するウインドウを管理するアプリケーションを含む複数個のアプリケーションＭは、いずれかのユーザの１台のコンピュータが備える。このアプリケーションＭは、複数人での使用を前提に作られた特殊なものではなく、通常、各個のコンピュータで使用される汎用アプリケーションが使用できる。
【００１３】
そして、このアプリケーション共有システムでは、この汎用アプリケーションには変更を加えずに、各コンピュータには共有化装置（共有化モジュール）を設け、この共有化装置の間を通信ネットワークＮにより接続する。
【００１４】
このシステムにおいては、アプリケーションＭは、汎用アプリケーションであるので、ユーザ入力手段は１個しか対応しないが、共有化装置で複数のコンピュータＡ，Ｂのユーザ入力手段Ｃａ，Ｃｂの操作入力を、アプリケーションＭに対して単一のユーザ入力手段の操作であるかのように制御する。そして、すべてのユーザ入力手段Ｃａ，Ｃｂによる入力イベントを、コンピュータＡのアプリケーションＭが処理し、その処理結果を、コンピュータＡの表示装置Ｖａだけでなく、コンピュータＢの表示装置Ｖｂにも表示する。
【００１５】
こうして、このアプリケーション共有システムでは、複数のコンピュータＡ，Ｂ間で、複数個のアプリケーションＭを共有するようになり、表示画面Ｖａ，Ｖｂには、アプリケーションＭによるウインドウ画面が共通に表示される。
【００１６】
【発明が解決しようとする課題】
しかしながら、上述した画面共有システムでは、前述もしたように、複数人での使用を前提に作られた特殊なアプリケーションを用いなければならない。すなわち、複数人で共有するための特殊なアプリケーションで書いたものでなければ、複数人で共有することができないという問題があった。
【００１７】
また、アプリケーション単位で画面を共有しているため、マウスカーソルが画面から外れた場合、マウスカーソルを共有することができなくなる。このため、複数のアプリケーションを使って、複数人で議論する場合に、複数のアプリケーションの複数のウインドウ間にまたがった情報をもとに議論や説明をしずらいという問題があった。さらに、同一のアプリケーションにおいても、異なった情報を開く場合には異なったウインドウとして表示されることがあり、この場合でも複数のアプリケーションウインドウ間にまたがって情報が存在する。
【００１８】
これに対して、アプリケーション共有システムによれば、汎用のアプリケーションが使用でき、しかも、１台のコンピュータのアプリケーション（ウインドウを管理するアプリケーションを含む）が、複数のコンピュータのユーザ入力手段および表示画面の情報を管理するので、マウスカーソルの管理も容易であり、複数のアプリケーションウインドウにまたがった情報間の関係を使って議論ができる。
【００１９】
しかしながら、このアプリケーション共有システムでは、全ての開いているウインドウの情報が皆に見えてしまい、他人には見られたくない情報を個人的に開いてみるということができないという問題がある。上述の画面共有システムも、同様に、会議参加者等は、全員同じ画面を見ることになり、各参加者毎に、異なった画面を見ることはできなかった。しかし、会議中や打ち合わせ時には、特定の人には見せたいが、他の人には見せたくない状況が存在する。
【００２０】
この発明は、上記の問題点にかんがみ、共有システムにおいて、表示するウインドウと、表示しないウインドウの選択を可能にすることを目的としている。
【００２１】
【課題を解決するための手段】
上記課題を解決するために、請求項１の発明においては、
少なくとも他のコンピュータと通信するための通信手段と、
ユーザの入力操作を受け付け、入力操作に応じたイベントを発生するためのユーザ入力手段と、
自己のコンピュータで発生した前記イベントまたは前記通信手段を通じた他のコンピュータからの前記イベントを判別するとともに、当該イベントを受け取るアプリケーションを判別し、判別されたアプリケーションにイベントを伝達するイベント判別振り分け手段と、
前記イベント判別振り分け手段によりイベントが伝達されたアプリケーションの実行結果を表示画面に表示するための表示手段と、
前記表示画面の表示内容を制御する表示画面制御手段と、
他のコンピュータと共有する画面表示中に表示するウインドウの、表示または非表示を制御する表示・非表示制御手段と、
前記アプリケーションの実行結果により画面表示情報を更新するときに、前記表示・非表示制御手段の制御に基づいて、他のコンピュータに渡す共有する画面の表示情報を計算する共有画面計算手段と、
前記ユーザ入力手段での入力操作に応じて発生するイベントを前記通信手段を通じて他のコンピュータに渡す機能と、前記ユーザ入力手段でのユーザ入力操作に応じて発生するイベントまたは前記通信手段を通じた他のコンピュータからのイベントを前記イベント判別振り分け手段に渡す機能と、前記共有画面計算手段で計算された前記共有する画面の表示情報を前記通信手段を通じて他のコンピュータに渡す機能と、前記通信手段を通じて他のコンピュータから到来する前記共有する画面の表示情報を前記表示画面制御手段に渡す機能とを備える共有化手段と、
画面の変更が発生したときに、表示する共有画面の表示情報の再計算を実行するか、しないかを判別する再計算実行判別手段と、
を備えることを特徴とする共同作業支援システムを提供する。
【００２３】
【作用】
上述の構成の請求項１の発明においては、ユーザ入力手段を通じて入力操作がなされ、イベントが発生すると、自己のコンピュータにアプリケーションがある場合には、そのイベントが共有化手段およびイベント判別振り分け手段を通じて当該アプリケーションに渡され、そのイベントに応じたアプリケーション処理が実行される。
【００２４】
また、自己のコンピュータにアプリケーションがなければ、共有化手段および通信手段を通じて、アプリケーションが搭載されているコンピュータにネットワークを通じて送られ、そのコンピュータの共有化手段およびイベント判別振り分け手段を通じて当該アプリケーションに渡され、そのイベントに応じたアプリケーション処理が実行される。
【００２５】
アプリケーションの実行結果により、画面表示情報を更新するときには、表示・非表示制御手段のウインドウ毎の表示・非表示の制御に応じて、他のコンピュータに渡す共有する画面の表示情報が、共有画面計算手段で計算される。すなわち、表示されるウインドウと表示されないウインドウがあるときに、それに応じた画面表示情報が他のコンピュータに渡す共有画面の表示情報として生成される。そして、生成された共有画面の表示情報が、共有化手段および通信手段を通じて、他のコンピュータに送られる。
【００２６】
以上により、請求項１の発明によれば、ウインドウ毎に、表示する、表示しないの選択が可能になり、会議中や打ち合わせ時に、ウインドウ毎に、他の人には見せない状況を作ることが可能になる。
【００２８】
【発明の実施の形態】
以下、図を参照しながら、この発明による共同作業支援システムの実施の形態について説明する。
【００２９】
図２は、この実施の形態の共同作業支援システムを、いわゆる在席会議として利用した場合の構成と、利用中の画面のイメージの例を表した図である。この場合、ネットワーク１を介して接続された複数の、この例では４台のパーソナルコンピュータ２Ａ，２Ｂ，２Ｃ，２Ｄによりシステムが構成され、共同作業の作業者としての会議参加者Ａ，参加者Ｂ，参加者Ｃ，参加者Ｄが、それぞれ自分用のパーソナルコンピュータ２Ａ，２Ｂ，２Ｃ，２Ｄを自分の席で操作して、共同作業としての会議を行うものである。
【００３０】
この実施の形態のシステムは、基本的には、前述したアプリケーション共有システムと同様の構成を有するが、特に、各パーソナルコンピュータ２Ａ〜２Ｄのディスプレイ３の画面に表示される共有の画面表示情報中の各ウインドウ毎に、各会議参加者について表示するか非表示にするかを管理することができるようにしている。
【００３１】
すなわち、例えば、４人の会議参加者Ａ〜Ｄで共有する、ウインドウを管理するアプリケーションを含む複数個のアプリケーションは、４台のパーソナルコンピュータ２Ａ〜２Ｄのいずれか、例えばコンピュータ２Ａに搭載されている。そして、各会議参加者が共有する表示画面の情報は、ウインドウを管理するアプリケーションが搭載されているパーソナルコンピュータで生成されて、他のパーソナルコンピュータにネットワーク１を通じて送られて、そのディスプレイ３にそれぞれ表示される。
【００３２】
そして、各会議参加者Ａ，Ｂ，Ｃ，Ｄが、自席において、自分用のパーソナルコンピュータ２Ａ，２Ｂ，２Ｃ，２Ｄを通じて会議のための書き込み等の入力操作を、マウスやキーボード等の操作入力手段４を用いて行うと、その操作入力の情報は、ネットワーク１を通じて、あるいは、当該コンピュータ内の、その操作入力がなされたウインドウを管理するアプリケーションで受け付けられ、操作入力に応じた処理が実行される。
【００３３】
そして、そのアプリケーションによる実行処理の結果が、対応する表示ウインドウに反映される。この場合、後述するように、ウインドウを管理するアプリケーションが搭載されているコンピュータで、各ウインドウ毎に、各会議参加者のそれぞれで表示するか非表示にするか管理しており、この管理情報を元にして、前記コンピュータで、各会議参加者が他の会議参加者と共有する表示画面でいずれのウインドウを表示するかを決定して、各会議参加者について、前記の共有する画面表示情報を生成する。そして、この画面表示情報は、各会議参加者毎に生成されて、前記アプリケーションを有しない他の会議参加者のコンピュータにネットワーク１を通じて送られる。
【００３４】
こうして、複数のパーソナルコンピュータ２Ａ，２Ｂ，２Ｃ，２Ｄでは、ネットワーク１を介してデータの交換を行い、その各ディスプレイ３には、会議参加者Ａ〜Ｄが共有する画面が、いわゆるマルチウインドウ表示の状態の表示されるが、まったく同じ内容の共通の画面が表示されるわけではなく、会議参加者ごとにウインドウの表示・非表示が制御されて表示されるものである。
【００３５】
図２の例においては、例えば会議参加者Ａのパーソナルコンピュータ２Ａが備えるアプリケーションを４人の会議参加者Ａ〜Ｄで共有して会議を行っている状態であり、パーソナルコンピュータ２Ａで、会議参加者Ｂにはすべてのウインドウを表示するが、他の会議参加者ＣおよびＤには、一部のウインドウＷｉは表示しないように制御している場合である。
【００３６】
［第１の実施の形態］
以上のような処理を行うため、各パーソナルコンピュータ２Ａ，２Ｂ，２Ｃ，２Ｄは、図１に示すような各種の処理機能部を、それぞれ備える。なお、図１の各処理機能ブロックは、実際には各パーソナルコンピュータのソフトウエアで実現されるものである。
【００３７】
すなわち、図１は、パーソナルコンピュータ２Ａ，２Ｂ，２Ｃ，２Ｄの内の一つ、例えばパーソナルコンピュータ２Ａの処理機能のブロック図を示しており、他のパーソナルコンピュータも全く同様の処理機能を備えるものである。
【００３８】
この実施の形態では、パーソナルコンピュータは、その処理機能部として、図１に示すように、通信部１１、ユーザ入力部１２、イベント判別振り分け部１３、表示画面制御部１４、表示部１５、共有化部１６、共有画面計算部１７、表示・非表示制御部１８、再計算部１９、再計算実行判別手段２０、ユーザ情報管理部２１を備えている。また、パーソナルコンピュータは、ウインドウを管理するアプリケーションを含む複数個のアプリケーション（プログラム）を搭載している。
【００３９】
通信部１１は、ネットワーク１を通じて、他のパーソナルコンピュータ２Ｂ〜２Ｄとの間で、ユーザ操作入力データや画面表示情報などを、相互に通信するためのものである。この通信部１１は、イーサネットにつながっていても、電話回線で構成されたネットワークにつながっていても、コンピュータ内部のバスにつながっていても構わない。また、他のコンピュータとＲＳ２３２Ｃなどのシリアルポートや、パラレルポート、赤外線などで接続されていても構わない。
【００４０】
ユーザ入力部１２は、図２に示したキーボードやマウス、タブレットなどパーソナルコンピュータに対する操作入力手段４からのユーザ入力データを取り込み、マウスイベントやキーボードイベントなどのイベント情報を出力する処理部である。マウスイベントは、マウスの左ボタンが押された、右ボタンが離された、左ボタンを押したままマウスが移動された、マウスが移動した、ことにより発生するイベントである。また、キーボードイベントは、キーボードの、例えば「ｓ」というキーが押されたなどにより発生するイベントである。
【００４１】
イベント判別振り分け部１３は、ユーザ入力部１２や通信部１１から入力されたマウスイベントやキーボードイベントなどによるイベント情報を、どのアプリケーションソフトに伝達するかを決める処理部である。ユーザ入力部１２や通信部１１から入力されたイベント情報は、共有化部１６を通じてこのイベント判別振り分け部１３に入力される。
【００４２】
アプリケーションは、このイベント判別振り分け部１３から伝達されたユーザ入力に応じて発生したイベント情報について演算処理を実行し、その演算結果を表示画面制御部１４に送るようにする。
【００４３】
表示画面制御部１４は、入力イベント情報に応じて行われたアプリケーションの演算結果を表示するために、表示部１５を制御して、アプリケーションに対応づけられたウインドウの内容や、デスクトップ上のウインドウの位置などを制御する。そして、表示画面制御部１４は、表示画面内容が更新されたときに、共有画面計算部１７に画面更新信号を送る。
【００４４】
表示部１５は、表示画面制御部１４の制御を受けて、ユーザにパーソナルコンピュータの計算結果を見せるためのものであり、デスクトップ（表示画面）上にウインドウがあり、ウインドウの中にアプリケーションソフトの演算結果が表示される。
【００４５】
共有化部１６は、図１６に示した共有化装置に相当する処理部であり、ユーザ入力部１２からのイベント情報を受けて、そのイベントが発生するウインドウを管理するアプリケーションが自己のパーソナルコンピュータにないときには、通信部１１を通じて、そのイベント情報を前記アプリケーションを備えるパーソナルコンピュータに転送するようにする。また、ユーザ入力部１２からのイベント情報を処理するアプリケーションが、自己のパーソナルコンピュータにあるときには、そのイベント情報を、イベント判別振り分け部１３に供給するようにする。このため、共有化部１６は、複数人の会議参加者が共有するアプリケーションが存在するパーソナルコンピュータがいずれであるかを認識しており、また、そのコンピュータのネットワーク１上のアドレスを有している。
【００４６】
共有化部１６は、また、他のコンピュータと画面表示を共有するために、後述するように、共有画面計算部１７においてユーザ毎に計算された共有画面の表示情報を各ユーザが使っているコンピュータに配信する情報に変換して、通信部１１に伝達する機能を備える。このため、共有化部１６は、各会議参加者の識別子（ユーザ識別子）と、対応するパーソナルコンピュータのネットワーク１のアドレスとの対応テーブルを備えている。
【００４７】
共有化部１６は、さらに、ネットワーク１および通信部１１を通じて、他のパーソナルコンピュータから伝達されてきた情報を判別し、それが画面表示情報ならば、表示画面制御部１４に伝達し、それがマウスイベントやキーボードイベントなどのイベント情報の場合は、イベント判別振り分け部１３に伝達する機能を備えている。
【００４８】
共有画面計算部１７は、表示画面制御部１４から画面更新信号が到来し、かつ、再計算実行判別部２０に、共有画面の画面イメージを再計算するか否かを問い合わせ、実行するという判定が出た場合にのみ以下の処理を行って、他の会議参加者が共有するそれぞれの画面イメージを更新するための処理を実行する。
【００４９】
すなわち、共有画面計算部１７は、表示画面制御部１４で演算された画面表示情報を元に、表示・非表示制御部１８に非表示のウインドウ情報を問い合わせる。そして、その問い合わせに応じて到来する表示・非表示制御部１８の指示により、会議参加者のコンピュータのそれぞれが、他のコンピュータと共有するための画面を計算する。そして、共有画面計算部１７は、計算した各会議参加者ごとの共有画面の表示情報を共有化部１６に送る。
【００５０】
表示・非表示制御部１８は、共有画面計算部１７の問い合わせに基づき、ユーザ情報管理部２１に問い合わせを行って、各ユーザ毎に、表示しないウインドウを決めると共に、表示画面制御部１４に問い合わせを行い、表示しないウインドウの位置と大きさを求め、求めた表示しないウインドウの位置と大きさを共有画面計算部１７に返す。
【００５１】
さらに、表示・非表示制御部１８は、再計算部１９に、非表示ウインドウの位置と大きさの情報を送って再計算要求をし、この要求に応じて再計算部１９から送られてくるウインドウを非表示にした場合のそのウインドウが存在していた部分の画面表示のビットマップ情報を受け取り、それを共有画面計算部１７に送る。
【００５２】
再計算部１９は、表示・非表示制御部１８の再計算要求に基づき、表示・非表示制御部８から与えられた非表示ウインドウの位置と大きさの情報を用いて、表示画面制御部１４から情報を入手し、非表示にするウインドウが存在しない場合の当該ウインドウ領域の画面情報を計算する。
【００５３】
再計算実行判別部２０は、ユーザからの指示に基づいて共有画面の画面イメージを計算するか否かを判定する処理部である。この再計算実行判別部２０は、ユーザ指示により新しいアプリケーションを立ち上げたときに、それを非表示にするべき会議参加者に対して、実際に非表示にするまでの間、その会議参加者にウインドウが見えてしまって、秘密にすることができない問題を解決するためのものである。このため、再計算実行判別部２０は、新たなウインドウが既に立上がっており、しかも、そのウインドウに対する、各会議参加者毎の表示または非表示が設定されていて、再計算する環境が整っているか否かを判別し、整っていれば、実行可能を共有画面計算部１７に返すようにする。
【００５４】
ユーザ情報管理部２１は、各ユーザ毎に表示するウインドウと、非表示にするウインドウの情報を管理する装置である。
【００５５】
図３は、ユーザ情報管理部２１が持つユーザ毎およびウインドウ毎の表示・非表示の管理テーブルＴＢＬのデータ構成図であり、ウインドウＩＤは、共有画面に表示されているウインドウの識別子である。図３に示すように、各参加者毎に各ウインドウの表示と、非表示とが設定されており、このテーブルＴＢＬを参照することにより、各参加者毎に各ウインドウを表示するか、非表示にするかがわかるようになっている。
【００５６】
次に、以上説明した図１の各機能ブロックのうちの主要な各部の処理動作を、それぞれフローチャート用いて、さらに説明する。
【００５７】
図４は、共有画面計算部１７の処理の概略を示すフローチャートである。まず、表示画面制御部１４からの画面更新信号の到来を待ち（ステップＳ１）、画面更新信号が到来した場合には、再計算実行判別部２０に、共有画面の画面イメージを再計算の実行を開始できるか否かを問い合わせる（ステップＳ２）。そして、再計算実行判別部２０からの問い合わせの結果を判別し（ステップＳ３）、再計算実行判別部２０から実行可能という判定結果が返って来なかった場合には、ステップＳ１に戻り、表示画面制御部１４からの画面更新信号の到来を待つ。
【００５８】
一方、再計算実行判別部２０から実行可能という判定結果が返って来た場合には、表示・非表示制御部１８に非表示情報を問い合わせる（ステップＳ４）。そして、表示・非表示制御部１８からの返事を待ち（ステップＳ５）、返事が戻ってきたら、その返事に含まれる座標値と、ビットマップ情報とにより、各会議参加者毎の共有画面の画面イメージを置き換える（ステップＳ６）。そして、でき上がった共有画面の画面イメージに、この画面イメージを会議参加者の識別子（ユーザ識別子）を付けて共有化部１６に送る（ステップＳ７）。その後、ステップＳ１に戻り、以上の処理を繰り返す。
【００５９】
図５は、表示・非表示制御部１８の処理の概略を示すフローチャートである。この実施の形態では、非表示にするウインドウの表示領域を埋めるビットマップ情報の作成方法として再計算方法を採用している。
【００６０】
表示・非表示制御部１８は、共有画面計算部１７からの問い合わせ要求が到来したか否か判別し（ステップＳ１１）、問い合わせ要求が来たときには、ユーザ情報管理部２１に、会議参加者毎の非表示ウインドウの問い合わせを行う（ステップＳ１２）。そして、ユーザ情報管理部２１から送られてくる非表示ウインドウのウインドウＩＤを、各会議参加者毎に記憶する（ステップＳ１３）。
【００６１】
次に、再計算部１９に、各会議参加者毎の表示しないウインドウのウインドウＩＤを送り、その結果として再計算部１９から送られてくる、そのウインドウを表示しない場合に、そのウインドウがあった位置のビットマップ情報と、そのビットマップ情報を張り付ける位置の情報を受け取る（ステップＳ１４）。
【００６２】
次に、各会議参加者毎に、ビットマップ情報とビットマップ情報を貼り付ける位置情報をまとめ、共有画面計算部１７に送る（ステップＳ１５）。その後、ステップＳ１１に戻り、以上の処理を順次に繰り返す。
【００６３】
図６は、再計算部１９の処理の概略を示すフローチャートである。
【００６４】
まず、表示・非表示制御部１８からの再計算要求があるか否か判断し、再計算要求が到来するまで待つ（ステップＳ２１）。再計算要求が到来すると、その要求に含まれる非表示ウインドウの位置と大きさの情報を用いて、非表示ウインドウの位置と大きさを特定する（ステップＳ２２）。
【００６５】
次に、表示画面制御部１４から情報を入手し、非表示の領域と交わった領域を表示領域として持つアプリケーションの表示イメージを再計算する（ステップＳ２３）。そして、計算した表示イメージのビットマップ情報と、これを貼り付ける位置の情報とを、表示・非表示制御部１４に送る（ステップＳ２４）。その後、ステップＳ２１に戻り、以上の処理を繰り返す。
【００６６】
次に、図７は、再計算実行判別部２０の処理の概略を示すフローチャートである。
【００６７】
まず、共有画面計算部１７からの問い合わせがあるか判別し、問い合わせがあるまで待つ（ステップＳ３１）。そして、前述したように、共有画面の再計算を開始する環境が整っているか否かの状態を調べる（ステップＳ３２）。そして、状態判別（ステップＳ３３）の結果、共有画面の再計算が実行可能な状態であれば、共有画面計算部１７に実行可能を送り（ステップＳ３４）、共有画面の再計算を実行する環境がまだ整っていなければ、共有画面計算部１７に実行不可を送る（ステップＳ３５）。その後、ステップＳ３１に戻り、以上の処理を繰り返す。
【００６８】
図８は、共有化部１６の処理の概略を示すフローチャートである。
まず、通信部１１からネットワーク１を通じての入力情報があるか否かが判別される（ステップＳ４０）。通信部１１からの入力情報がないと判別されたときには、共有画面計算部１７からの入力があるか否か判別される（ステップＳ４１）。そして、ここでも入力がないと判別されたときには、ユーザ入力部１２を通じたユーザ入力があるか否か判別され（ステップＳ４２）、ユーザ入力もないと判別されると、ステップＳ４０に戻り、通信部１１からの入力の有無の判別から処理を繰り返す。
【００６９】
ステップＳ４０で、通信部１１からの入力情報があったと判別されたときには、それが他のパーソナルコンピュータの使用者のユーザ入力に基づくイベント情報であるか、共有するアプリケーションを備えるパーソナルコンピュータからの共有画面の表示情報であるかを判別する（ステップＳ４３）。
【００７０】
そして、イベント情報であれば、その送られてきたイベント情報をイベント判別振り分け部１３に送り（ステップＳ４４）、その後、ステップＳ４０に戻る。また、通信部１１からの入力情報が、共有画面の表示情報であると判別されたときには、その送られてきた共有画面の表示情報を、表示画面制御部１４に伝達し、表示部１５の画面に表示させるようにする（ステップＳ４５）。その後、ステップＳ４０に戻る。
【００７１】
また、ステップＳ４１で共有画面計算部１７からの更新された共有画面の表示情報の入力があったと判別されたときには、その入力情報に含まれるユーザ識別子から、該当するユーザのパーソナルコンピュータのネットワーク１上のアドレスを調べ、通信部１１を通じて該当ユーザのパーソナルコンピュータに、その共有画面の表示情報を送る（ステップＳ４６）。その後、ステップＳ４０に戻り、以上の処理を繰り返す。
【００７２】
また、ステップＳ４２で、ユーザ入力部１２からのユーザ入力があったと判別したときには、入力されたイベントが対象としているアプリケーションを特定し（ステップＳ４７）、それが自分のコンピュータ上で動作しているアプリケーションである場合には、そのイベント情報をイベント判別振り分け部１３に送る（ステップＳ４８）。また、対象アプリケーションが、他のパーソナルコンピュータ上で動作しているアプリケーションである場合には、該当するパーソナルコンピュータのネットワーク１上のアドレスを付けて通信部１１に送る。その後、ステップＳ４０に戻り、以上の処理を繰り返す。
【００７３】
以上の構成の共同作業支援システムにおける共有画面の表示例について、図９〜図１１を参照して説明する。この例では、共有するアプリケーションを搭載するパーソナルコンピュータが参加者Ａのパーソナルコンピュータ２Ａであり、そのユーザ情報管理部の２１の表示・非表示管理テーブルＴＢＬが、図３に示すように設定されている場合とする。
【００７４】
今、いずれかの会議参加者の入力指示により、ウインドウＷ１（ウインドウＩＤ＝１），Ｗ２（ウインドウＩＤ＝２）の２つのウインドウが開かれたとすると、これら２つのウインドウＷ１（ウインドウＩＤ＝１），Ｗ２（ウインドウＩＤ＝２）については、すべての会議参加者Ａ〜Ｄで「表示」に設定されているので、共有画面としては、図９に示す２つのウインドウＷ１およびＷ２の画面が、すべての会議参加者Ａ〜Ｄのパーソナルコンピュータ２Ａ〜２Ｄの画面に共通に表示される。
【００７５】
次に、この２つのウインドウＷ１に加えてウインドウＷ３（ウインドウＩＤ＝３）を開く指示が、いずれかの会議参加者からなされた場合には、その指示を受けた共有するアプリケーションを搭載するパーソナルコンピュータ２Ａの表示画面制御部１４は、自己のパーソナルコンピュータ２Ａの表示画面に、図１０に示すように、２つのウインドウＷ１，Ｗ２に加えて、３つ目のウインドウＷ３を表示する。
【００７６】
そして、このウインドウＷ３については、参加者Ｂは「表示」に設定されているので、参加者Ｂのパーソナルコンピュータ２Ｂには、図１０と同じ表示画面の情報が、共有画面の表示情報として共有化部１６および通信部１１を通じて、送られる。
【００７７】
しかし、参加者ＣおよびＤについては、ウインドウＷ３は「非表示」に設定されているので、前述したように、再計算部９で、図１０の画面表示においてウインドウＷ３が除かれた場合に、このウインドウＷ３の下にある画像のビットマップ情報が求められ、その位置および大きさの情報と共に、表示・非表示制御部を通じて共有画面計算部１７に供給される。そして、共有画面計算部１７では、このビットマップ情報と位置および大きさの情報を用いて、図９とまったく同じ画面の表示情報を生成し、それを共有画面の表示情報として、会議参加者Ｃ，Ｄのコンピュータ２Ｃおよび２Ｄに送る。
【００７８】
ウインドウＷ３が開かれた状態で、ウインドウＷ２やウインドウＷ１、さらには、ウインドウＷ３に対するユーザ入力があって、共有画面が更新される場合にも、まったく同様にして、会議参加者Ｃ，Ｄのコンピュータ２Ｃおよび２Ｄの画面では、ウインドウＷ３が非表示となる。
【００７９】
以上のようにして、会議参加者Ｃ，Ｄのコンピュータ２Ｃおよび２Ｄの画面では、ウインドウＷ３が非表示となり、ウインドウＷ３の内容を会議参加者Ｃ，Ｄに対しては、秘匿して、会議参加者Ａ，ＢでウインドウＷ３に表示されている内容についての議論をすることができる。しかも、この実施の形態の場合には、会議参加者Ｃ，Ｄには、ウインドウＷ３が他の参加者Ａ，Ｂに表示されていることも秘匿できる。
【００８０】
例えば、ウインドウＷ３の内容を隠す方法としては、図１１に示すように、ウインドウＷ３が表示される領域の画像内容として、黒など、一色を表示することで隠すようにすることも考えられるが、この方法であると、内容を秘匿しようとする会議参加者に、秘匿されるウインドウＷ３の存在は知られてしまうため、好ましくない。この点、上述の実施の形態の場合には、再計算部１９により、開かれたウインドウがあたかも存在しないように画面情報を再計算するので、秘匿されるウインドウＷ３の存在も秘匿できるものである。
【００８１】
［第２の実施の形態］
第１の実施の形態では、非表示のウインドウがあるときには、そのウインドウを非表示としたときに、そのウインドウにより隠れていた部分を再計算部１９で再計算して表示情報を形成するようにしたが、再計算には時間がかかり、ユーザ入力によるイベントが発生してから共有画面が更新するまでの待ち時間が長くなるおそれがある。
【００８２】
第２の実施の形態は、この点を改善したもので、図１２に、この第２の実施の形態の場合の、パーソナルコンピュータの処理機能のブロック図を示す。図１の第１の実施の形態の場合のパーソナルコンピュータの処理機能のブロック図とは、再計算部１９の代わりに、背景記憶部２２が設けられた点が異なる。
【００８３】
背景記憶部２２は、ウインドウが表示されている領域の、当該ウインドウを非表示にした場合にその領域に貼り付けるべきビットマップ情報を、各ウインドウ毎に記憶している。言い換えると、任意のウインドウをデイスクトップ上に表示しようとしたときに、その表示しようとしたウインドウにより隠される領域をウインドウを表示する前に切り出して、記憶しておく装置部である。
【００８４】
この背景記憶部２２は、記憶する情報は、表示画面制御部１４からの表示情報から切り出す。そして、表示・非表示制御部１８の問い合わせに基づき、この表示・非表示制御部１８から与えられた非表示ウインドウ情報より、記憶しているビットマップ情報を、この表示・非表示制御部１８に返す。
【００８５】
なお、記憶している背景情報から、表示・非表示制御部１８に返す情報を求める場合に、対象となっているウインドウが、他のウインドウとの重なり関係上、一番上にくるように操作し、そのときの背景情報を返すようにする。つまり、各ウインドウに対応づけて記憶している背景情報をそのまま返すのではなく、非表示と指定されているウインドウが、表示と指定されているウインドウの上に重なっている状態になるように、各ウインドウに対応づけられて記憶されている背景情報を入れ替えるようにする。
【００８６】
この第２の実施の形態の場合の表示・非表示制御部１８は、第１の実施の形態の場合と同様に、共有画面計算部１７の問い合わせに基づき、ユーザ情報管理部２１に問い合わせを行い、各ユーザ毎に、表示しないウインドウを決め、表示画面制御部１４に問い合わせを行い、表示しないウインドウの位置と大きさを求め、共有画面計算部１７に表示しないウインドウの位置と大きさおよびその領域のビットマップ情報を返すようにするが、この第２の実施の形態では、ウインドウが存在していた領域の画面表示のビットマップ情報は、背景記憶部１２から取得するようにする。
【００８７】
その他の各部の構成は、前述した第１の実施の形態の場合とまったく同様とされる。
【００８８】
図１３は、この第２の実施の形態の場合の表示・非表示制御部１８の処理の概略を示すフローチャートである。この第２の実施の形態では、前述したように、非表示ウインドウの表示領域を埋めるビットマップ情報の作成方法として背景記憶方法を採用している。
【００８９】
すなわち、表示・非表示制御部１８は、共有画面計算部１７からの問い合わせ要求が到来したか否か判別し（ステップＳ５１）、問い合わせ要求が来たときには、ユーザ情報管理部２１に、会議参加者毎の非表示ウインドウの問い合わせを行う（ステップＳ５２）。そして、ユーザ情報管理部２１から送られてくる非表示ウインドウのウインドウＩＤを、各会議参加者毎に記憶する（ステップＳ５３）。
【００９０】
次に、背景記憶部２２に、各会議参加者毎の表示しないウインドウＩＤを送り、その結果として背景記憶部２２から送られてくる、そのウインドウを表示しない場合に、そのウインドウがあった位置のビットマップ情報と、そのビットマップ情報を張り付ける位置の情報を受け取る（ステップＳ５４）。
【００９１】
次に、各会議参加者毎に、ビットマップ情報と、ビットマップ情報を貼り付ける位置情報をまとめ、共有画面計算部１７に送る（ステップＳ５５）。その後、ステップＳ５１に戻り、以上の処理を順次に繰り返す。
【００９２】
次に、図１４は、背景記憶部２２の処理の概略を示すフローチャートである。
まず、表示・非表示制御部１８からの問い合わせ要求があるか否か判断し（ステップＳ６１）、問い合わせ要求があると、次のステップＳ６２に進み、ビットマップ情報が要求されているウインドウＩＤを、要求情報から求める。
【００９３】
次に、ウインドウの重なりを記憶しているリストを調べ（ステップＳ６３）、対象としているウインドウの上に、「表示」と指定されているウインドウがあるか否か判別する（ステップＳ６４）。そして、対象としているウインドウの上に、「表示」と指定されているウインドウがあれば、要求されているウインドウよりも１つ上にある表示ウインドウと、記憶している背景情報のうち、重なっている部分のビットマップ情報を入れ替え、また、ウインドウの重なりを記憶しているリストの順番も入れ替える（ステップＳ６５）。
【００９４】
ステップＳ６４で、対象としているウインドウの上に、「表示」と指定されているウインドウがなければ、求めたビットマップ情報と、ビットマップを貼り付ける位置の情報を、表示・非表示制御部１８に送る。その後、ステップＳ６１に戻り、以上の処理を繰り返す。
【００９５】
この第２の実施の形態では、以上のようにして、非表示とするウインドウの領域に貼り付けるビットマップ情報は、背景記憶部２２に記憶された情報から高速に取得することができ、高速処理が可能になる。
【００９６】
［変形例］
上述した第１および第２の実施の形態は、１台のパーソナルコンピュータにおいて動作しているアプリケーションの出力結果である画面イメージを共有している場合である。つまり、１台のパーソナルコンピュータの画面イメージを複数台のパーソナルコンピュータで共有している。
【００９７】
したがって、会議に参加している参加者のうち、議論に必要な参加者の画面イメージを共有すればよいので、共有する参加者の画面イメージを必要に応じて交代することができる。つまり、ある時は、参加者Ａのパーソナルコンピュータ２Ａのアプリケーションによる画面イメージを全参加者が共有し、異なる時点では参加者Ｂのパーソナルコンピュータ２Ｂのアプリケーションによる画面イメージを全参加者が共有するようにすることが可能である。
【００９８】
ただし、上述の第１および第２の実施の形態の場合では、参加者Ａと参加者Ｂのそれぞれが起動可能なアプリケーションを、同時に共有して全参加者が共有してみることはできない。
【００９９】
しかし、複数のパーソナルコンピュータで起動されたアプリケーションの演算結果を結合して、仮想的なデイスクトップ画面を作り、各アプリケーションへのイベント入力は、対応するアプリケーションが起動されているパーソナルコンピュータに配信し、そのイベントによる演算結果をもとに、仮想的なデイスクトップ画面を再計算するようにすることもできる。この場合、共有化部１６は、複数のパーソナルコンピュータで分散して起動されているアプリケーションへのイベント伝達や、アプリケーションの演算結果である画面イメージの整合などを行える機能を備えるものである。
【０１００】
なお、ユーザ毎にも非表示できるようにした例について述べたが、ウインドウ単位でのみ非表示にするようにしてもよい。
【０１０１】
【発明の効果】
以上述べたように、請求項１の発明によれば、アプリケーション共有システムを用いた共同作業支援システムにおいて、画面を共有して打ち合わせを行っているときに、見せたくないウインドウを相手から隠しながら会議を行うことができる。したがって、会議の流れを把握しながら、自分用の参照資料等を見ることがことができる。
【０１０５】
また、請求項１の発明によれば、新しいアプリケーションを立ち上げて、非表示にするまでの間、相手にウインドウが見えてしまい、秘密にすることができない問題を解決できる。すなわち、新しいアプリケーションを立ち上げて、非表示にするまでの間、画面の更新を取りやめることにより、相手に非表示にしたウインドウを立ち上げたことを気づかれない。
【図面の簡単な説明】
【図１】この発明の共同作業支援システムの第１の実施の形態の要部の機能ブロック図を示す図である。
【図２】この発明による共同作業支援システムを在席会議で利用した場合の実施の形態の構成の例を示す図である。
【図３】この発明による共同作業支援システムの実施の形態におけるユーザ情報管理部が持つユーザ毎の表示・非表示の管理テーブルのデータ構造の例を示す図である。
【図４】この発明による共同作業支援システムの実施の形態における共有画面計算部の処理の概略を示すフローチャートを示す図である。
【図５】この発明による共同作業支援システムの実施の形態における表示・非表示制御部の処理の概略を示すフローチャートを示す図である。
【図６】この発明による共同作業支援システムの実施の形態における再計算部の処理の概略を示すフローチャートを示す図である。
【図７】この発明による共同作業支援システムの実施の形態における再計算実行判別部の処理の概略を示すフローチャートを示す図である。
【図８】この発明による共同作業支援システムの実施の形態における共有化部の処理の概略を示すフローチャートを示す図である。
【図９】この発明の共同作業支援システムの実施の形態における共有画面の表示例を示す図である。
【図１０】この発明の共同作業支援システムの実施の形態における共有画面の表示例を示す図である。
【図１１】この発明の共同作業支援システムの実施の形態における共有画面の表示例との比較例を示す図である。
【図１２】この発明の共同作業支援システムの第２の実施の形態の要部の機能ブロック図を示す図である。
【図１３】第２の実施の形態における表示・非表示制御部の処理の概略を示すフローチャートを示す図である。
【図１４】第２の実施の形態における背景記憶部の処理の概略を示すフローチャートを示す図である。
【図１５】画面共有システムを説明するための図である。
【図１６】アプリケーション共有システムを説明するための図である。
【符号の説明】
１  ネットワーク
１１  通信部
１２  ユーザ入力部
１３  イベント判別振り分け部
１４  表示画面制御部
１５  表示部
１６  共有化部
１７  共有画面計算部
１８  表示・非表示制御部
１９  再計算部
２０  再計算実行判別部
２１  ユーザ情報管理部
２２  背景記憶部
【図１】
0003753207.tif 000002
【図２】
0003753207.tif 000003
【図３】
0003753207.tif 000004
【図４】
0003753207.tif 000005
【図５】
0003753207.tif 000006
【図６】
0003753207.tif 000007
【図７】
0003753207.tif 000008
【図８】
0003753207.tif 000009
【図９】
0003753207.tif 000010
【図１０】
0003753207.tif 000011
【図１１】
0003753207.tif 000012
【図１２】
0003753207.tif 000013
【図１３】
0003753207.tif 000014
【図１４】
0003753207.tif 000015
【図１５】
0003753207.tif 000016
【図１６】
0003753207.tif 000017