以下、本発明の好適な実施形態を、添付図面を参照しながら詳細に説明する。なお、以下に説明する実施形態は飽くまでも本発明の適用例に過ぎず、本発明は以下に説明する実施形態に限定されるものではない。
先ず、本発明の第1の実施形態について説明する。図1は、本発明の第1の実施形態に係る画面共有システムの全体的な構成を示す図である。図1において、サーバ装置110は、画面共有システムの中核を成し、外部装置であるクライアント装置120と共有する画像データの領域の決定、及び、クライアント装置120と共有する画像データの生成、送信を行うサーバ装置である。また、サーバ装置110は、複数種類のアプリケーションを同時に実行し、それらのアプリケーションが提供するウィンドウ112、113を画面111に表示する機能を備える。なお、以下の説明では、サーバ装置110のユーザが画面111上で指定した、クライアント装置120と共有する画像データの領域を共有画像データと称し、当該共有画像データを含む画面111上の領域を共有領域と称す。
なお、サーバ装置110は、以下に説明するサーバ装置110としての機能を実現するための画面共有サーバプログラムを記憶している。サーバ装置110は、自身の画面111上に表示している画像データの一部又は全部から共有画像データを取得し、ネットワーク101を介してクライアント装置120に対して送信する。ここでは、ウィンドウ112を含む領域114内の画像データを共有画像データとし、領域114を共有領域とする。
クライアント装置120は、共有画像データの受信及び表示を行う。クライアント装置120は、以下に説明するクライアント装置120としての機能を実現するための画面共有クライアントプログラムを記憶している。また、クライアント装置120は、ネットワーク101を介してサーバ装置110から共有画像データを受信する受信機能を備えるとともに、受信した共有画像データ122を自身の画面121に表示する表示機能を備える。
なお、サーバ装置110とクライアント装置120との数はそれぞれ1台に限定されず、いくつでもよい。1台のサーバ装置110が複数台のクライアント装置120に対して共有画像データを送信することも可能であり、1台のクライアント装置120が複数台のサーバ装置110から共有画像データを受信することも可能である。また、サーバ装置110の機能とクライアント装置120の機能とを1台の装置に同時に備え、サーバ装置110の機能とクライアント装置120の機能とを同時に実行しても構わない。
図2は、第1の実施形態におけるサーバ装置110の構成を示す図である。なお、第1の実施形態におけるサーバ装置110は、パーソナルコンピュータ等の汎用的な情報処理装置で構成されている。またクライアント装置120も、サーバ装置110と同等の情報処理装置で構築されている。
図2において、201は、サーバ装置110全体の制御を司る制御部であり、CPU等で構成される。202は、ブートプログラムやBIOS、各種アプリケーション、画面共有サーバプログラム、データファイル等が記憶される記憶部であり、ROM、RAM、HDD等の記憶媒体から構成される。203は、ビデオメモリを内蔵し、制御部201の制御に応じて描画処理や表示用のビデオ信号の生成処理を行い、接続されるモニタにビデオメモリの内容を表示させる表示部である。204は、標準入力装置として機能するキーボード、ポインティングデバイス制御機能を有する入力部である。入力部204は、接続されるキーボードやマウス等の入力装置からの操作命令を受信して、その操作命令に応じて各種処理を実行する。205は、ネットワーク101を介してデータを送受信するネットワークI/F部であり、例えばネットワークカードで構成される。
206は、表示部203から画像データを取得し、共有画像データを生成する表示画像取得部である。表示画像取得部206により生成された共有画像データは、ネットワークI/F部205を介してクライアント装置120に対して送信される。207は、ネットワークI/F部205を介して受信した遠隔操作命令を解析する遠隔操作命令解析部である。遠隔操作命令解析部207は、遠隔操作命令を入力部204が処理する操作命令へ変換し、入力部204にて実行させる。入力部204は、遠隔操作命令とキーボード、ポインティングデバイスからの操作命令とを区別せずに実行し、遠隔操作を実現する。
なお、表示画像取得部206及び遠隔操作命令解析部207は、サーバ装置110における主要な構成要素のため独立して構成しているが、制御部201等の別の構成要素に含まれていても構わない。
図3は、サーバ装置110上においてクライアント装置120の非表示範囲を強調表示する例を説明するための図である。図3(a)は非表示範囲を強調表示する前の状態を示しており、図3(b)は非表示範囲を強調表示した後の状態を示している。なお、共有領域114を示す破線は説明用に記入したものであり、実際の画面には表示されない。なお、上記非表示領域については後述する。
サーバ装置110とクライアント装置120とがネットワーク101で接続された状態において、サーバ装置110のユーザが共有領域114を指定することにより、画面共有が開始される。図3(a)に示すように、画面共有を開始した直後の状態においては、サーバ装置110の画面114上における共有領域114内の共有画像データと同じ共有画像データ122がクライアント装置120の画面121上に表示される。これにより、サーバ装置110のユーザとクライアント装置120のユーザとは、同じ共有画像データを見ながら遠隔会議を行うことができる状態となる。
その後、サーバ装置110は、ユーザによりマウス等の入力装置が操作されたことを
強調表示開始イベントとして検知すると、クライアント装置120が現在表示している共有画像データ122の表示状態をクライアント装置120に対して問い合わせる。図3(a)に示す状態では、クライアント装置120において共有領域114内の共有画像データがそのまま表示されている。そのため、クライアント装置120は、表示状態として、共有領域114内の共有画像データの全てが表示されていることをサーバ装置110に対して通知する。サーバ装置110は、クライアント装置120から通知された表示状態に基づいて、サーバ装置110の画面111上の表示領域のうち、クライアント装置120の画面121上では共有画像データ122が非表示となっている領域に該当する領域を判定する。以下では、サーバ装置110の画面111上の表示領域のうち、クライアント装置120の画面121上では共有画像データ122が非表示となっている領域に該当する領域を、非共有領域と称す。
そしてサーバ装置110は、図3(b)に示すように、判定した非共有領域を網掛け表示315して強調表示を行う。サーバ装置110のユーザは、強調表示を確認することにより、共有領域114内の共有画像データの全てがクライアント装置120の画面121上で表示されていることが分かる。これにより、サーバ装置110のユーザとクライアント装置120のユーザとは互いに同じ画像データを見ながら議論することができる。また、サーバ装置110のユーザは、クライアント装置120のユーザに対して他に見せたい資料がある場合、網掛け表示315がない共有領域114内に当該資料の画像データを配置すればよいことを容易に把握することができる。
次に、図4を参照しながら、第1の実施形態におけるサーバ装置110の処理について詳細に説明する。図4は、第1の実施形態における非共有領域を強調表示する際のサーバ装置110の処理を示すフローチャートである。
先ず、サーバ装置110及びクライアント装置120がネットワーク101で接続された状態において、ユーザの操作によりサーバ装置110上で共有領域114が指定されると、ステップS401において、サーバ装置110は画面共有を開始する。ステップS402において、サーバ装置110は、強調表示開始イベントとしてキーボード、マウス等が操作されるイベントを取得する。
ステップS403において、サーバ装置110は、クライアント装置120に対して現在の表示状態を問い合わせる。サーバ装置110は、共有画像データの表示領域を示す座標を表示状態としてクライアント装置120から取得する。ステップS404において、サーバ装置110は、クライアント装置120から受信した表示状態に基づいて、共有領域114より外側の領域が非共有領域であると判定する。ステップS405において、サーバ装置110は、判定した非共有領域を網掛け表示315して強調表示を行う。なお、ステップS403は、第1の取得手段の処理例である。ステップS404は、第1の判定手段の処理例である。ステップS405は、表示制御手段の処理例である。
ステップS406において、サーバ装置110は、共有領域114を示す座標を取得する。ステップS407において、サーバ装置110は、共有領域114を示す座標と、クライアント装置120から取得した共有画像データ122の表示領域を示す座標とを比較し、差異がないか否かを判定する。共有領域114を表す座標とクライアント装置120の画面121上で表示される共有画像データを表す座標とに差異がある場合、処理はステップS421に移行する。一方、それらに差異がない場合、処理はステップS408に移行する。即ち、図3に示すように、共有領域114を示す座標とクライアント装置120の画面121上で表示される共有画像データの表示領域を示す座標とに差異がない場合、処理はステップS408に移行する。
ステップS408において、サーバ装置110は、キーボード、マウス等の操作終了から10秒経過したことを強調表示終了イベントとして取得する。ステップS409において、サーバ装置110は網掛け表示315を非表示とし、画面111を通常表示に戻す。ステップS410において、サーバ装置110は画面共有を継続するか否かを判定する。画面共有を継続する場合、処理はステップS402に移行し、サーバ装置110は次の強調表示開始イベントを待つ。一方、画面共有を終了する場合、処理はステップS411に移行し、サーバ装置110は画面共有を終了する。
なお、ステップS402にて取得される強調表示開始イベントはキーボード、マウス操作に限らず、サーバ装置110に対する他の操作、又は、クライアント装置120からの遠隔操作でも構わない。また、サーバ装置110はユーザの発言をマイク等で取得し、強調表示開始イベントとして扱ってもよい。これにより、同じ画面を見ているかどうかを確認しながら会話を進めることが可能となり、確認している資料が違うために話の通じない会議が行われることを割けることができるようになる。さらに、定期的に又は常に強調表示開始イベントを自動生成させ、強調表示開始の判定を容易にしてもよい。
次に、共有領域114を示す座標とクライアント装置120の画面121上における共有画像データの表示領域を示す座標とに差異がある場合について説明する。このように共有領域114を示す座標とクライアント装置120の画面121上における共有画像データの表示領域を示す座標とに差異が生じる状況としては、例えば、クライアント装置120のユーザが画面121上の表示内容を変化させ、共有画像データ122の一部が表示されなくなる状況が考えられる。
以下、図5を参照しながら、画面共有を開始した後、クライアント装置120側において共有画像データ122を表示するウィンドウ521の全画面表示を解除した場合について説明する。図5(a)は、ウィンドウ521の全画面表示を解除した状態を示している。全画面表示を解除したウィンドウ521は、共有画像データ122全体を表示するだけの面積がないため、共有画像データ122の一部を表示しており、はみ出た分はスクロールバーを表示させている。実際にクライアント装置120側で表示されている共有画像データ122の一部をサーバ装置110側に表示すると、領域511内の表示となる。なお、図3と同様に、破線114及び511は実際には画面111には表示されない。
サーバ装置110は、ユーザによりマウス等の入力装置が操作されたことを強調表示開始イベントとして検知すると、クライアント装置120に対して現在の表示状態を問い合わせる。クライアント装置120は、ウィンドウ521が表示している共有画像データ122の表示領域を示す座標を表示状態としてサーバ装置110に対して送信する。それととともに、サーバ装置110は、共有画像データ122を全て表示するにはウィンドウ521のサイズが小さいという理由をサーバ装置110に対して送信する。サーバ装置110は、クライアント装置120から受信した表示状態に基づいて非共有領域を判定し、図5(b)に示すように、当該非共有領域を網掛け表示512にして強調表示を行う。サーバ装置110のユーザは、この強調表示を確認することにより、当該非共有領域以外の領域511内の共有画像データしかクライアント装置120のユーザが見えていないことが分かる。なお、上記のようにサーバ装置110が共有画像データ122を全て表示するにはウィンドウ521のサイズが小さいという理由をクライアント装置120から取得する処理は、第2の取得手段の処理例である。
また、サーバ装置110は、クライアント装置120の状況をより詳しく表示させることもできる。即ち、サーバ装置110は、共有領域114を示す座標と領域511を示す座標とに基づいて、共有領域114内の共有画像データのうち、クライアント装置120の画面121上で表示されていない画像データに該当する領域を判定する。そしてサーバ装置110は、当該領域に対して網掛け表示512とは異なるパターンの網掛け表示513を行う。さらに、サーバ装置110は、図5(c)に示すように、クライアント装置120から取得した共有画像データ122の全体が表示し切れない理由を説明文514として網掛け表示513の上に表示させる。これにより、サーバ装置110のユーザは、クライアント装置120の状況が詳しく把握できるため、クライアント装置120側で共有画像データ122の全体を表示してもらうために必要な対応は何かを容易に把握することができる。必要であれば、サーバ装置110は、網掛け表示513及び説明文514の内容をクライアント装置120に送信し、サーバ装置110とクライアント装置120とで表示内容を同期させることもできる。
次に、図4を参照しながら、図5に示した手順について詳細に説明する。ここでは、サーバ装置110は、ステップS401〜S402で画面共有開始及び強調表示開始イベント取得を行った後、ステップS403において、クライアント装置120に対して表示状態を問い合わせる。図5に示すように、クライアント装置120は、共有画像データ122の表示領域を示す座標を表示状態としてサーバ装置120に対して送信する。それとともに、クライアント装置120は、共有画像データ122の全てを表示し切れない理由としてウィンドウ521が小さいという理由をサーバ装置120に対して送信する。ステップS404において、サーバ装置110は、クライアント装置120から受信した表示状態に基づいて、領域511より外側の領域が非共有領域であると判定する。ステップS405において、サーバ装置110は、非共有領域を網掛け表示512にする。
ステップS406において、サーバ装置110は共有領域114を示す座標を取得する。ステップS407において、サーバ装置110は、共有領域114を示す座標と、クライアント装置120の画面121上における共有画像データ122の表示領域を示す座標とを比較し、それらに差異がないか否かを判定する。ここでは、共有領域114を示す座標と、クライアント装置120の画面121上における共有画像データ122の表示領域を示す座標とに差異があることを前提としているため、処理はステップS407からステップS421に移行する。このように、共有領域114のうち、クライアント装置120において共有画像データ122が表示されていない領域に該当する領域を、以下では非表示領域と称す。このように非表示領域を判定する処理は、第2の判定手段の処理例である。
ステップS421において、サーバ装置110は、非表示領域について詳細情報を表示するか否かを判定する。詳細情報を表示する場合、処理はステップS422に移行する。一方、詳細情報を表示しない場合、処理はステップS408に移行する。ここでは、網掛け表示513及び説明文514が詳細情報である。ステップS422において、サーバ装置110は、非表示領域を網掛け表示513して強調表示を行う。ステップS423において、サーバ装置110は、クライアント装置120が共有画像データ122の全てを表示し切れない理由を表示する。ここでは、共有画像データ122の全てを表示し切れない理由として、ウィンドウ521が小さすぎることが表示される。ステップS408以降の処理は、上述した通りである。
次に、図6を参照しながら、画面共有を開始した後、クライアント装置120側において共有画像データ122を表示するウィンドウ521を最小化した場合について説明する。図6(a)は、ウィンドウ521を最小化した状態を示している。従って、クライアント装置120の画面121には、共有画像データ122が全く表示されていない。そのため、サーバ装置110が非共有領域を強調表示すると、図6(b)に示すように、画面111の全面に網掛け表示611がなされた状態となる。図6(c)は、網掛け表示611とは異なるパターンの網掛け表示612を非表示領域(ここでは、非表示領域と共有領域114とは同一)に対して行うとともに、共有画像データ122の全てが表示されていない理由を表示した状態を示している。ここでは、共有画像データ122の全てを表示し切れていない理由として、ウィンドウ521が最小化されていることが表示される。これにより、サーバ装置110のユーザは、クライアント装置120のユーザが共有領域114内の共有画像データを全く見ていないことを把握することができる。また、サーバ装置110のユーザは、クライアント装置120のユーザが共有領域114の画像データを見てもらうためには、ウィンドウ521の最小化を元に戻せばよいことを把握することができる。なお、図6において、画面111上の破線は実際には表示されない。
次に、図7を参照しながら、画面共有を開始した後、クライアント装置120側において共有画像データ122を表示するウィンドウ521が他のウィンドウ721に一部隠れた場合について説明する。図7(a)は、ウィンドウ521が他のウィンドウ721に隠れた状態を示している。これにより、クライアント装置120では共有画像データ122の一部が表示されなくなっているので、サーバ装置110の画面111上で非共有領域を強調表示すると、図7(b)に示すように、クライアント装置120における実際の共有画像データ122の表示領域以外の領域に該当する領域に網掛け表示712がなされた状態となる。図7(c)は、共有領域114のうち、他のウィンドウ721によって隠れた領域に該当する領域(非表示領域)に対して、網掛け表示712とは異なるパターンの網掛け表示713を行った状態を示している。また、図7(c)では、クライアント装置120において共有画像データ122を全て表示し切れていない理由(説明文)714を表示した状態も示している。ここでは、クライアント装置120において共有画像データ122の全てを表示し切れていない理由として、ウィンドウ521が他のウィンドウ721によって隠れた状態となっていることが表示される。なお、図7において、画面111上の破線は実際には表示されない。
次に、図8を参照しながら、画面共有を開始した後、クライアント装置120側において画面121内で共有画像データ122を拡大表示した場合について説明する。図8(a)は、共有画像データ122を拡大表示した状態を示している。これにより、クライアント装置120の画面121では共有画像データ122の一部しか表示されなくなる。そのため、非共有領域を強調表示すると、図8(b)に示すように、クライアント装置120における実際の共有画像データ122の表示領域以外の領域に該当する領域に網掛け表示912がなされた状態となる。図8(c)は、共有領域114のうち、拡大表示によって表示されなくなった領域に該当する領域に対して、網掛け表示912とは異なるパターンの網掛け表示913を行った状態を示している。また、図8(c)では、クライアント装置120において共有画像データ122の全てを表示し切れない理由(説明文)914を表示した状態も示している。ここでは、クライアント装置120において共有画像データ122が拡大表示されていることが表示される。なお、図8において、画面111上の破線は実際には表示されない。
以上のように、本実施形態によれば、クライアント装置120側の操作制限を緩和するととともに、サーバ装置110のユーザは、クライアント操作120のユーザが現在見えている共有画像データ122の領域を把握することができる。従って、クライアント装置120のユーザが、会議中に他の資料の確認等をしており、共有画像データ122の一部が見えていない状況でも、サーバ装置110のユーザがそのことに気が付かずに議論を進める事態を避けることができる。
次に、本発明の第2の実施形態について説明する。第2の実施形態に係る画面共有システムは、1台のサーバ装置110に対して複数台のクライアント装置920、930、940が接続されている。
先ず、図9を参照しながら、クライアント装置920、930、940毎に異なる範囲を表示させる場合について説明する。図9(a)は、各クライアント装置920、930、940における表示範囲が指定された状態を示している。サーバ装置110は画面111全体を共有領域に指定しており、クライアント装置920、930、940は夫々、サーバ装置110において指定された共有領域のうちの領域911、912、913内の共有画像データを表示している。なお、破線911、912、913は実際には画面111に表示されない。
第1の実施形態と同様に、サーバ装置110がユーザによりマウス等の入力装置が操作されたことを強調表示開始イベントとして検知すると、サーバ装置110は各クライアント装置920、930、940に対して現在の表示状態を問い合わせる。一方、各クライアント装置920、930、940は、自身が表示している共有画像データの領域911、912、913を示す座標をサーバ装置110に対して送信する。サーバ装置110は、受信した表示状態に基づいて、サーバ装置110の画面111上における表示領域のうち、クライアント装置920、930、940の画面921、931、941上で共有画像データが非表示となっている領域に該当する領域(非共有領域)を夫々判定する。そしてサーバ装置110は、各非共有領域を合成し、合成後の非共有領域に対して強調表示を行う。
図9(b)は、サーバ装置110の画面111上において非共有領域を強調表示した状態を示している。即ち、図9(b)は、サーバ装置110の画面111上において、クライアント装置920、930、940全てで見えていない領域914が強調表示されている状態を示している。これに対し、図9(c)は、各クライアント装置920、930、940の何れかで見えていない領域915が強調表示されている状態を示している。なお、図9(b)に示す強調表示の領域は、各クライアント装置920、930、940から表示状態として通知される共有画像データの表示領域を示す座標に基づいて各クライアント装置920、930、940との非共有領域を求め、各非共有領域の論理積(AND)をとることにより得られる。また、図9(c)に示す強調表示の領域は、各クライアント装置920、930、940から表示状態として通知される共有画像データの表示領域を示す座標に基づいて各クライアント装置920、930、940との非共有領域を求め、各非共有領域の論理和(OR)をとることにより得られる。図9(d)は、図9(c)に対して詳細情報を追加表示した例を示している。図9(d)に示す例では、全クライアント装置920、930、940で共通に見えている領域以外の領域内において、クライアント装置920、930、940毎に見えている領域を示す情報を詳細情報として追加表示している。
以下、図10A及び図10Bを参照しながら、第2の実施形態におけるサーバ装置110の処理について詳細に説明する。図10A及び図10Bは、第2の実施形態における非共有領域を強調表示する際のサーバ装置110の処理を示すフローチャートである。
図10AのステップS401において、サーバ装置110は画面共有を開始する。ステップS402において、サーバ装置110は強調表示開始イベントを取得する。ステップS1001において、サーバ装置110はクライアント装置920、930、940の接続台数を取得する。ステップS1002において、サーバ装置110はカウンタiを初期化する。ステップS1003において、サーバ装置110はi番目のクライアント装置に対して表示状態を問い合わせ、表示状態を取得する。ステップS1005において、サーバ装置110は、i番目のクライアント装置から取得した表示状態に基づいて、i番目のクライアント装置との非共有領域を判定する。ステップS1006において、サーバ装置110は、カウンタiを1インクリメントする。ステップS1007において、サーバ装置110は、全てのクライアント装置から表示状態を取得したか否かを判定する。全てのクライアント装置から表示状態を取得した場合、処理はステップS1008に移行する。一方、全てのクライアント装置から表示状態を取得していない場合、処理はステップS1003に戻る。
ステップS1008において、サーバ装置110は、非共有領域の合成方法を判定する。本実施形態では、非共有領域の合成方法として、論理積(AND)による合成方法と論理和(OR)による合成方法とを適用する。論理積(AND)による合成方法である場合、ステップS1009において、サーバ装置110は、各クライアント装置との非共有領域の論理積(AND)をとることにより非共有領域を合成する。一方、論理和(OR)による合成方法である場合、ステップS1010において、サーバ装置110は、各クライアント装置との非共有領域の論理和(OR)をとることにより非共有領域を合成する。ステップS1011において、サーバ装置110は、ステップS1009又はS1010で合成した非共有領域に対して強調表示を行う。図9(b)は、論理積(AND)による合成方法により非共有領域を合成し、合成した非共有領域に対して網掛け表示914を行うことにより強調表示した結果を示している。図9(c)は、論理和(OR)による合成方法により非共有領域を合成し、合成した非共有領域に対して網掛け表示915を行うことにより強調表示した結果を示している。
ステップS1012において、サーバ装置110は、詳細情報を表示するか否かを判定する。詳細情報を表示しない場合、処理は図10BのステップS408に移行する。一方、詳細情報を表示する場合、処理は図10BのステップS1013に移行する。ステップS1013において、サーバ装置110は、サーバ装置110のユーザによって画面111上の一部領域が共有領域として指定されたか否かを判定する。ユーザによって画面111上の一部領域が共有領域として指定されなかった場合、サーバ装置110は画面111の全領域を共有領域として指定し、処理はステップS1014に移行する。一方、ユーザによって画面111上の一部領域が共有領域として指定された場合、処理はステップS1020に移行する。
ステップS1014において、サーバ装置110は、カウンタiを初期化する。ステップS1015において、サーバ装置110は、ステップS1011で強調表示した合成された非共有領域(以下、合成非共有領域と称す)と、i番目のクライアント装置における共有画像データの表示領域に該当する領域とに差異があるか否かを判定する。それらに差異がある場合、処理はステップS1016に移行する。一方、差異がない場合、処理はステップS1018に移行する。ステップS1016において、サーバ装置110は、合成非共有領域と、i番目のクライアント装置における共有画像データの表示領域に該当する領域との重畳領域に対して、ステップS1011で施した網掛け表示とは異なるパターンの網掛け表示を行う。ステップS1017において、サーバ装置110は、ステップS1016にて強調表示した領域に当該i番目のクライアント装置の名称を表示する。ステップS1018において、サーバ装置120は、カウンタiを1インクリメントする。ステップS1019において、サーバ装置120は、全てのクライアント装置についてステップS1015の判定を行ったか否かを判定する。全てのクライアント装置について判定を行った場合、処理はステップS408に移行する。一方、全てのクライアント装置について判定を行ってない場合、処理はステップS1015に戻る。
図9は、ユーザが共有領域114を指定しておらず、サーバ装置110が画面111全体を共有領域として自動的に設定した例を示したものである。これに対し、図11は、ユーザが画面111上の一部領域を共有領域114として指定し、さらにクライアント装置920、930、940にてそれぞれの表示状態が変更された例を示している。即ち、図11に示す処理は、図10BのステップS1013からS1020に分岐する処理となる。
図11(a)は、共有領域114内の共有画像データを各クライアント装置920、930、940で表示した状態を示している。クライアント装置920は、共有画像データ122の全てを表示している。クライアント装置930は、共有画像データ122を表示しているウィンドウ932が他のウィンドウに隠れている。クライアント装置940は、共有画像データ122を拡大表示している。図11(b)は、各クライアント装置920、930、940との非共有領域の論理積(AND)をとることにより合成した非共有領域1101を強調表示した状態を示している。図11(c)は、各クライアント装置920、930、940との非共有領域の論理積(OR)をとることにより合成した非共有領域1103を強調表示した状態を示している。図11(d)は、図11(c)の表示状態に対して詳細情報1104、1105、1106を追加表示した例を示している。
ここで、図11に示した処理について、図10Bを参照しながら詳細に説明する。ステップS1020において、サーバ装置110は、ユーザによって指定された共有領域114を取得する。ステップS1021において、サーバ装置110は、カウンタiを初期化する。ステップS1022において、サーバ装置110は、ステップS1020で取得した共有領域114と、i番目のクライアント装置における共有画像データの表示領域に該当する領域とに差異があるか否かを判定する。それらに差異がある場合、処理はステップS1023に移行する。一方、差異がない場合、処理はステップS1025に移行する。ステップS1023において、共有領域114と、i番目のクライアント装置における共有画像データの表示領域に該当する領域との重畳領域に対して、ステップS1011で施した網掛け表示とは異なるパターンの網掛け表示を行う。ステップS1025において、サーバ装置110は、カウンタiを1インクリメントする。ステップS1026において、サーバ装置110は、全てのクライアント装置についてステップS1022の判定を行ったか否かを判定する。全てのクライアント装置について判定を行った場合、処理はステップS408に移行する。一方、全てのクライアント装置について判定を行っていない場合、処理はステップS1022に戻る。なお、図10BのステップS408〜S411は、図4のステップS408〜S411と同様であるため、説明は省略する。
以上のように、第2の実施形態によれば、サーバ装置110のユーザは、複数のクライアント装置で画面111上のどの領域の画像データが見えているかを確認することができるようになる。また、クライアント装置毎に見えている領域が異なる場合、クライアント装置毎にどの領域が見えているのかを確認することが可能となる。このため、全てのクライアント装置のユーザに対して共通の説明を行う場合、又は、或るクライアント装置のユーザに対してのみ説明を行う場合、それぞれの状況で相手が同じ画面を見ているかどうか確認を取りながら議論を進めることが可能となる。
次に、本発明の第3の実施形態について説明する。第3の実施形態においては、図1に示した画面共有システムの構成上において、クライアント装置120側の画面表示を変更させることにより、サーバ装置110とクライアント装置120との間で同じ共有画像データを表示させる方法について説明する。
図12は、図5と同様に、クライアント装置120側で共有画像データ122を表示しているウィンドウ521の全画面表示を解除した例を示している。図12(a)は、ウィンドウ521の全画面表示を解除した状態を示している。ウィンドウ521は共有画像データ122全体を表示するだけの面積がないため、共有画像データ122の一部を表示しており、はみ出た分はスクロールバーを表示させている。実際のクライアント装置120における共有画像データ122の表示領域をサーバ装置110側で示すと、領域511となる。なお、第1の実施形態と同様に、破線114及び511は実際には表示領域111には表示されない。
また、他の実施形態と同様に、サーバ装置110がユーザによりマウス等の入力装置が操作されたことを検知すると、サーバ装置110はクライアント装置120に対して表示同期開始イベントを通知する。一方、クライアント装置120は、表示同期開始イベントを受信すると、ウィンドウ521が領域511の範囲を表示されていること、また、共有画像データ122の全てを表示するにはウィンドウ521のサイズが小さいことを表示状態として取得する。次にクライアント装置120は、共有画像データ122の全体を表示できるサイズにウィンドウ521を拡大する。図12(b)は、ウィンドウ52のサイズを変更した結果を示している。クライアント装置120側で自動的に共有画像データ122全体を表示させることにより、サーバ装置110側のユーザとクライアント装置120側のユーザとは、それまで異なる領域を見ていたとしても、同期後は同じ共有画像データを表示させた状態で議論を継続することができる。
以下、図13を参照しながら、図12に示した処理について詳細に説明する。図13は、第3の実施形態におけるクライアント装置120の処理を示すフローチャートである。
サーバ装置110が画面共有を開始し、共有画像データを送信すると、ステップS1301において、クライアント装置120は、共有画像データを受信する。その後、サーバ装置110上でキーボード・マウス等が操作されると、サーバ装置110はクライアント装置120に対して表示同期開始イベントを送信する。ステップS1302において、クライアント装置120は、表示同期開始イベントを受信する。なお、サーバ装置110からの表示同期開始イベントの送信タイミングは、サーバ装置110に対する操作が検知されたタイミングの他に、サーバ装置110がユーザの音声をマイク等で検出したタイミングでもよいし、周期的なタイミングであってもよい。
ステップS1303において、クライアント装置120は、サーバ装置110から共有領域を示す座標を取得する。ステップS1304において、クライアント装置120は、共有画像データの表示領域を示す座標を表示状態として取得する。ステップS1305において、クライアント装置120は、共有領域を示す座標と共有画像データの表示領域を示す座標とに基づいて、共有領域と共有画像データの表示領域との差異を取得する。ステップS1306において、クライアント装置120は、共有領域と共有画像データの表示領域とに差異があるか否かを判定する。差異がある場合、処理はステップS1307に移行する。一方、差異がない場合、処理はステップS1302に戻る。
ステップS1307及びS1308において、クライアント装置120は、ステップS1304で取得した表示状態に基づいて、共有領域と共有画像データの表示領域の表示領域とに差異がある理由を判定する。差異の理由が、共有画像データを表示しているウィンドウのサイズ不足である場合、処理はステップS1309に移行する。ステップS1309において、クライアント装置120は、当該ウィンドウのサイズを拡大する。差異の理由が、共有画像データを表示しているウィンドウを最小化していることである場合、処理はステップS1310に移行する。ステップS1310において、クライアント装置120は、当該ウィンドウの最小化を解除する。差異の理由が、共有画像データを表示しているウィンドウが他のウィンドウに隠れていることである場合、処理はステップS1311に移行する。ステップS1311において、クライアント装置120は、当該ウィンドウを最前面に表示する。差異の理由が、共有画像データを拡大表示していることである場合、処理はステップS1312に移行する。ステップS1312において、クライアント装置120は、当該共有画像データの拡大率を元に戻す。
その後、他の実施形態と同様に、サーバ装置110にてキーボード・マウス操作終了から一定時間が経過したことを検知すると、サーバ装置110からクライアント装置120に対して表示同期終了イベントを送信する。ステップS1313において、クライアント装置120は、表示同期終了イベントを受信する。ステップS1314において、クライアント装置120は、共有画像データを表示しているウィンドウの表示状態を元に戻す。図12に示す例では、ウィンドウ521の表示状態が図12(b)に示す状態から図12(a)に示す状態となる。なお、ステップS1315、S1316は、図4のステップS410、S411と同様の処理である。
ここで、図14を参照しながら、クライアント装置120側において共有画像データを表示するウィンドウ521を最小化した例について説明する。図14(a)は、ウィンドウ521を最小化した状態を示している。クライアント装置120は、共有画像データを表示するウィンドウ521が最小化されているため、サーバ装置110から表示同期開始イベントを受信すると、ウィンドウ521の最小化を解除する。図14(b)は、ウィンドウ521の最小化を解除した状態を示している。
次に、図15を参照しながら、クライアント装置120側において共有画像データを表示するウィンドウ521が他のウィンドウ721に一部隠された例について説明する。図15(a)は、ウィンドウ521が他のウィンドウ721に隠された状態を示している。クライアント装置120は、サーバ装置110から表示同期開始イベントを受信すると、ウィンドウ521を最前面に表示させる。図15(b)は、ウィンドウ521を最前面に表示した状態を示している。
次に、図16を参照しながら、クライアント装置120側において共有画像データ122を表示するウィンドウ521を拡大表示した例について説明する。図16(a)は、ウィンドウ521を拡大表示した状態を示している。クライアント装置120は、サーバ装置120から表示同期開始イベントを受信すると、ウィンドウ521の拡大率を元に戻し、共有画像データ122全体を表示させる。図16(b)は、ウィンドウ521の拡大率を戻した状態を示している。
以上のように、第3の実施形態においては、クライアント装置120では、サーバ装置120との共有画像データの表示領域の相違が自動修正される。これにより、クライアント装置120のユーザは、会議の中でサーバ装置110のユーザが説明している領域を見逃すことを避けることができる。また、必要に応じて自動的に表示が修正されるため、それ以外のときは、クライアント装置120上で共有画像データ122の表示サイズを自由に変更し、他の資料等を確認することができる。
以上、本発明の実施形態について説明したが、本発明は、例えば、システム、装置、方法、プログラム若しくは記録媒体(記憶媒体)等としての実施態様をとることが可能である。具体的には、複数の機器(例えば、ホストコンピュータ、インタフェース機器、撮像装置、webアプリケーション等)から構成されるシステムに適用してもよいし、また、一つの機器からなる装置に適用してもよい。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。