説明

画面転送装置、画面共有システム、及び画面転送プログラム

【課題】複数の画面を転送するとともに、その複数の画面に対する入力操作を処理する画面転送装置に関し、ロックする表示画面がユーザの入力操作に応じて可変し、ユーザの入力操作が無効になってしまう事態を回避することのできる画面転送装置を提供する。
【解決手段】ネットワークを介して通信可能な画面表示装置にポインタによる画面操作環境を提供する画面転送装置は、複数の画面共有手段と画面管理手段とを備える。複数の画面共有手段は、複数の表示画面に1対1で対応し、各表示画面を画面表示装置に転送するとともに、対応の転送画面内で発生した入力操作イベントを画面表示装置からネットワークを介して受け取る。画面管理手段は、ポインタの存在する転送画面で発生した入力操作イベントはアプリケーションに引き渡し、それ以外で発生したボタン押下イベントを破棄する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、ネットワークに接続された他機器に画面操作環境を提供する画面転送装置、画面共有システム、及び画面転送プログラムに関する。
【背景技術】
【0002】
近年、ネットワーク経由のコンピュータ遠隔制御技術が普及しつつある。遠隔制御される画面転送装置は、サーバ装置として、表示画面の画像データをネットワーク経由で画面表示装置に送信する。遠隔制御する画面表示装置は、クライアント装置として、受信した表示画面の画面データをスクリーンに表示する。画面表示装置は、マウス操作やキーボード操作等の操作情報をネットワーク経由で画面転送装置に送信する。画面転送装置は、受信した操作情報をアプリケーションに引き渡し、操作情報に従った処理を行う。マウス操作による操作情報は、例えばマウス押下イベントやポインタ移動イベント等のマウスイベントである。
【0003】
この遠隔制御技術は、リモートデスクトップという概念で提唱されており、代表的には、特許文献1に示すようなVNC(Virtual Network Computing)であり、RealVNCやx11vnc等が一実装として知られている。
【0004】
VNC技術を利用した複数の画面を転送する画面転送装置の概略について図23に基づき説明する。画面転送装置200は、フレームバッファを複数の画面領域に分割して管理するサーバ装置であり、Xクライアントと呼ばれるアプリケーションが動作する。
【0005】
この画面転送装置200は、画面管理部210、複数のスクリーン21、22、複数の画面共有部241、242を備えている。また、画面表示装置100は、クライアント装置として、複数の画面描画操作部111、112、複数のスクリーン121、122、及び少なくともマウス130等の入力手段を備えている。
【0006】
画面管理部210は、Xサーバを含み、画面の描画及び入力操作の処理を行う。具体的には、画面管理部210は、フレームバッファ内の画像データをアプリケーションの描画要求に従って更新する。フレームバッファ内には、複数の表示画面領域が設定されており、各表示画面領域の画像データは、1対1でスクリーン21、22にグラフィカルに表示される。
【0007】
また、画面管理部210は、画面表示装置100のマウス130によるマウスイベントを受け取り、マウスイベントの発生地点を含むGUI画面のアプリケーションに出力する。
【0008】
画面共有部241、242は、1対1で表示画面領域を制御している。具体的には、画面共有部241、242は、対応の表示画面領域から画像データを逐次読み取り、前回読み取った画面データからの差分情報を圧縮し、画面表示装置100に送信する。また、画面共有部241、242は、画面表示装置100の画面描画操作部111、112と1対1で対応し、対応の画面描画操作部111、112から送信されてきた操作情報を画面管理部210に受け渡す。
【0009】
画面表示装置100では、画面描画操作部111、112が画面共有部241、242に1対1で対応して動作している。画面描画操作部111は、対応の画面共有部241から送信された画面データを受け取り、対応するスクリーン121にグラフィカルに表示させる。また、画面描画操作部112は、スクリーン122に1対1で対応し、スクリーン122の表示画面に対する操作情報を生成して画面転送装置200へ送信する。
【0010】
これにより、VNC技術を利用した画面転送装置200では、ネットワークN上に接続された画面表示装置100へGUI画面を提供し、画面表示装置100で行われた操作に対応した処理を実行している。
【先行技術文献】
【特許文献】
【0011】
【特許文献1】特開2008−71312号公報
【発明の概要】
【発明が解決しようとする課題】
【0012】
ここで、VNC技術を利用した画面転送装置200には、グラブ(Grab)と呼ばれ、マウス130のマウスボタンの押下操作等を一つのアプリケーションのみに送信する手法が提供されている。操作情報は、通常、その操作が発生した画面領域にGUI画面を表示させているアプリケーションが受け取る。しかし、グラブ状態が確立されている間は、グラブを要求した一つのアプリケーションのみがマウスボタンの押下操作を受け取る。
【0013】
このグラブの手法を用いて、画面転送装置200では、画面共有部241、242を介した操作情報のみを有効にし、画面転送装置200で発生するマウス押下イベントを無効にする所謂画面ロックを行うことができる。
【0014】
しかしながら、この従来のグラブの手法では、複数の画面共有部241、242がそれぞれ1対1で複数の表示画面を画面表示装置100へ転送する態様において、以下のような問題が生じてしまう。
【0015】
すなわち、従来のグラブの手法では、画面管理部210は、画面共有部241若しくは242の何れか一つのアプリケーションが受け取る操作情報のみを有効として扱う。そうすると、画面転送装置200では、グラブを要求していない画面共有部241若しくは242が転送する表示画面に対する操作が、グラブを要求した画面共有部241若しくは242に横取りされてしまう。
【0016】
その具体例を図24に示す。図24は、表示画面のロック状態を示す模式図であり、図24の(a)は、マウスポインタが左側の表示画面S1上にある状態、(b)は、マウスポインタが左側の表示画面S1から右側の表示画面S2に遷移した場合を示す。
【0017】
図24の(a)では、マウスポインタが左側の表示画面S1上にある。従来の画面転送装置では、表示画面S1についてグラブが要求されると、表示画面S2については、画面ロックされる。従って、表示画面S1内でマウスボタン押下イベントが発生すると有効として扱われ、表示画面S2でマウスボタン押下イベントが発生しても、そのマウスボタン押下イベントは破棄される。
【0018】
さらに、図24の(b)は、マウスポインタが右側の表示画面S2上に移った場合を示している。このとき、グラブは解除されていないものとする。すなわち、相変わらず表示画面S2は画面ロックされる。従って、マウスポインタを右側の表示画面S2上に移動させ、マウスボタンを押下したとしても、そのマウスボタン押下イベントは破棄されてしまう。
【0019】
このように、画面表示装置100側では、グラブが解除されない限り、グラブを要求していない画面共有部241若しくは242が転送する表示画面S1若しくはS2に対する操作ができなくなってしまう。従来のグラブの手法では、上記のように、画面表示装置100側のユーザが画面ロックされている表示画面S1若しくはS2に対する操作を行いたい場合であっても、その操作が無効になってしまう事態が生じ、利便性に欠ける面があった。
【0020】
本発明は、上記課題を解決するためになされたもので、複数の画面を転送するとともに、その複数の画面に対する操作を処理する画面転送装置に関し、ロックする画面がユーザの操作に応じて可変し、ユーザの操作が無効になってしまう事態を回避することのできる画面転送装置を提供する。
【課題を解決するための手段】
【0021】
本実施形態の画面転送装置は、入力手段によるポインタ移動操作及び入力操作が可能な画面表示装置にネットワークを介してポインタによる画面操作環境を提供する画面転送装置であって、複数の表示画面に1対1で対応し、各表示画面を前記画面表示装置に転送するとともに、対応の転送画面内で発生した入力操作イベントを前記画面表示装置からネットワークを介して受け取る複数の画面共有手段と、ポインタの存在する転送画面で発生した入力操作イベントをアプリケーションに引き渡し、それ以外で発生した入力操作イベントを破棄する画面管理手段と、を備えること、を特徴とする。
【図面の簡単な説明】
【0022】
【図1】第1の実施形態に係る画面共有システムの構成を示すブロック図である。
【図2】第1の実施形態に係る画面転送装置と画面表示装置の構成を示すブロック図である。
【図3】画面転送装置が管理するフレームバッファを示す模式図である。
【図4】第1の実施形態に係る画面転送処理を示すフローチャートである。
【図5】第1の実施形態に係るポインタ移動処理を示すフローチャートである。
【図6】ポインタ移動処理のデータフローを示すシーケンス図である。
【図7】第1の実施形態に係るグラブ画面変更処理を示すフローチャートである。
【図8】グラブ画面変更処理のデータフローを示すシーケンス図である。
【図9】第1の実施形態に係るクリック処理を示すフローチャートである。
【図10】クリック処理のデータフローを示すシーケンス図である。
【図11】第1の実施形態に係る表示画面のロック状態を示す模式図である。
【図12】第2の実施形態に係る画面転送装置のマウスを用いたポインタ移動の制限動作を示すフローチャートである。
【図13】第2の実施形態に係るポインタ移動処理のデータフローを示すシーケンス図である。
【図14】第2の実施形態に係る画面転送装置が備えるマウスによるポインタの移動可能範囲を示す模式図である。
【図15】第3の実施形態に係る画面転送装置の構成を示すブロック図である。
【図16】第3の実施形態に係る画面転送装置のグラブ解除動作を示すフローチャートである。
【図17】グラブ解除動作のデータフローを示すシーケンス図である。
【図18】グラブを解除するポインタの移動軌跡を示す模式図である。
【図19】グラブを解除するポインタの移動軌跡を示す模式図である。
【図20】グラブ解除に該当しないポインタの移動軌跡を示す模式図である。
【図21】グラブを解除するポインタの他の移動軌跡を示す模式図である。
【図22】第4の実施形態に係る画面転送装置の表示画面を示す模式図である。
【図23】従来のVNC技術を利用した複数の画面を転送する画面転送装置の概略を説明する図である。
【図24】従来の表示画面のロック状態を示す模式図である。
【発明を実施するための形態】
【0023】
以下、本発明に係る画像転送装置の実施形態について図面を参照しつつ詳細に説明する。
【0024】
(第1の実施形態)
図1は、本実施形態に係る画面転送装置1と画面表示装置100とをネットワークで接続した画面共有システムの構成を示すブロック図である。
【0025】
画面共有システムは、画面転送装置1と画面表示装置100とをネットワークで接続して構成されている。画面転送装置1は、ネットワークNを介して通信可能な画面表示装置100に表示画面S1、S2を転送し、ポインタによる画面操作環境を提供するVNCサーバ装置である。表示画面S1、S2は、GUI(グラフィックユーザインターフェース)画面を含む。画面表示装置100は、転送画面S1、S2を表示し、ユーザによる操作を画面転送装置1へ送信するVNCクライアント装置である。転送画面S1、S2は、画面転送装置1から転送された表示画面S1、S2である。この画面転送装置1から画面表示装置100への画面操作環境の提供によって、画面転送装置1のGUI画面が画面表示装置100に表示され、画面表示装置100側での当該GUI画面を用いた操作が可能となっている。
【0026】
この画面転送装置1と画面表示装置100は、それぞれ所謂コンピュータであり、オペレーティングシステム(OS)上でVNCサーバアプリケーション又はVNCビューアアプリケーションを動作させている。画面転送装置1と画面表示装置100は、演算制御装置(CPU)1a、100a、主記憶装置(RAM)1b、100b、外部記憶装置(HDD等)1c、100c、通信IF1d、100d、複数のスクリーン21、22、121、122、及びマウス30、130を備えている。
【0027】
オペレーティングシステム(OS)、及びVNCサーバアプリケーション又はVNCビューアアプリケーションは、外部記憶装置1c、100cに記憶されている。画面転送装置1には、VNCサーバアプリケーションが記憶され、画面表示装置100には、VNCビューアアプリケーションが記憶されている。VNCサーバアプリケーションは、画面転送装置1の画面転送プログラムである。
【0028】
ネットワークNは、IEEE802.3等の有線通信プロトコルや、IEEE802.11で規定される無線通信プロトコルや、その他のプロトコルに準拠したネットワークであり、LAN、インターネット網、専用回線等の通信回線である。
【0029】
本実施形態に係る画面転送装置1は、フレームバッファ内の複数の画面領域を表示しており、この複数の表示画面S1、S2をそれぞれ画面表示装置100に転送する。また、画面転送装置1は、画面表示装置100からの操作を受け付ける。画面表示装置100からの操作としては、ポインタのポインタ移動イベントや、マウスボタンのマウスボタン押下イベントが挙げられる。そして、この画面転送装置1は、ボタン押下イベント等の入力操作イベントを有効にする表示画面S1(S2)をポインタの移動に応じて可変する。そして、この入力操作イベントを有効にした表示画面S1(S2)以外で発生した入力操作イベントは破棄する。
【0030】
(構成)
図2は、この画面転送装置1と画面表示装置100の機能構成を示すブロック図である。
【0031】
図2に示すように、画面転送装置1は、OS及びVNCサーバアプリケーションの起動により、画面管理部10、ポインタ操作部31、複数の画面共有部41、42、ポインタ検知部51、ポインタ管理部52を備える。また、画面表示装置100は、OS及びVNCビューアの起動により、画面描画操作部111、112を備える。
【0032】
画面管理部10は、CPUとRAMを含み構成され、Xサーバ機能を果たし、画面更新処理と操作処理を行う。
【0033】
画面更新処理は、アプリケーションの画面描画要求に従ったフレームバッファ内の画像データの変更処理である。画面管理部10は、フレームバッファを管理している。フレームバッファは、RAM内に割り当てられる仮想空間である。画面管理部10は、アプリケーションの画面描画要求に従ってフレームバッファ内の画像データを変更する。
【0034】
フレームバッファには、図3に示すように、複数の表示画面領域が予め設定されている。スクリーン21、22は、各表示画面領域に1対1で対応しており、表示画面S1の画像データがスクリーン21に表示され、表示画面S2の画像データがスクリーン22に表示される。
【0035】
この表示画面領域は、画面管理部10により管理されている。表示画面領域は、矩形形状を有し、互いに重ならず、辺で接するように予め定められ、画面座標情報で座標範囲が特定され、画面識別番号で識別される。
【0036】
画面座標情報の座標範囲は、フレームバッファの座標系で特定され、例えば、左上のXY座標、幅、及び高さを示す各値である。画面識別番号は、表示画面領域を画面表示装置100へ転送する画面共有部41、42のプロセスIDである。画面管理部10は、画面座標情報と画面識別番号とを関連づけて記憶している。
【0037】
操作処理において、画面管理部10は、マウスボタン押下イベントに対するアプリケーションへの通知判断と、ポインタ移動イベントに対するグラブ画面変更判断を行う。
【0038】
ここで、マウスイベントが発生すると、イベント種類情報とイベント発生座標情報とが生成される。イベント種類情報は、マウスを用いた操作の種類を識別し、マウスボタン押下イベント又はポインタ移動イベントを示す。イベント発生座標情報は、マウスイベントが発生した座標を識別する。イベント発生情報は、マウスボタン押下イベントにおいては、マウスボタンが押下された時のポインタの存在位置を示し、ポインタ移動イベントにおいては、ポインタの移動先の位置を示す。
【0039】
また、マウスイベントは、画面共有部41、42、又はポインタ操作部31から画面管理部10へ通知される。画面共有部41、42、及びポインタ操作部31は、マウスイベントの通知の際、イベント種類情報とイベント発生座標情報に自身のプロセスIDを付加する。プロセスIDは、OSの機能により画面管理部10へ通知されるようにしてもよい。
【0040】
アプリケーションの通知判断処理において、画面管理部10は、ポインタ管理部52を備えており、ポインタ管理部52は、グラブ画面番号を予め記憶している。このグラブ画面番号は、マウスボタン押下イベントが有効として扱われる表示画面領域を特定する情報であり、何れかの画面識別番号である。上述のように、画面識別番号はプロセスIDである。すなわち、グラブ画面番号もプロセスIDで表されている。ポインタ管理部52は、マウスイベントに付加された、又はOSにより通知されたプロセスIDとグラブ画面番号とを比較し、一致又は不一致を画面管理部10へ通知する。
【0041】
画面管理部10は、一致の通知によりマウスイベントを有効として扱い、ポインタの座標下に表示されているアプリケーションにマウスイベントを通知する。一方、画面管理部10は、不一致の通知によりマウスイベントを破棄する。
【0042】
グラブ画面変更処理において、画面管理部10は、グラブ画面番号を変更する。この画面管理部10は、ポインタが存在する表示画面領域を検知するポインタ検知部51を備えており、ポインタ検知部51により、ポインタが存在する表示画面領域の画面識別番号が求められる。ポインタ検知部51は、イベント種類情報がポインタ移動である場合、イベント発生座標情報が示す座標を包含する画面座標情報を検索し、該当の画面座標情報に関連づけられた画面識別番号を得る。
【0043】
ポインタ管理部52は、ポインタ検知部51が取得した画面識別番号が、予め保持しているグラブ画面番号と相違していれば、当該グラブ画面番号をポインタ検知部51から通知された画面識別番号に変更する。
【0044】
画面共有部41、42は、CPUを含み構成され、表示画面S1、S2の転送及び画面表示装置100から送出されるマウスイベントの画面管理部10への受け渡しを行うアプリケーション層のアダプタ機能を有する。
【0045】
表示画面の転送処理において、画面共有部41、42は、表示画面S1、S2の更新情報をRFBプロトコルに従って作成し、TCP/IPプロトコルに従って画面表示装置100へ転送する。画面共有部41、42と各表示画面領域とは1対1で対応している。
【0046】
画面共有部41、42は、対応の表示画面領域内の画像データのうち前回分を保持しており、対応の表示画面領域内の画像データが変更されると、前回の画面データとの差分箇所を必要に応じて圧縮し、圧縮した画面データを画面更新情報として画面表示装置100へ送信する。差分抽出においては、ビット比較などを行う。圧縮処理としては、JPEGやgzip等を施す。尚、設定によっては差分箇所の画像データを無圧縮で送信するようにしてもよい。
【0047】
マウスイベントの受け渡しにおいては、画面共有部41、42は、イベント種類情報とイベント発生座標情報に自身のプロセスIDを付加して画面管理部10へ送る。画面識別番号は、対応の画面共有部41、42のプロセスIDであるため、このプロセスIDは、マウスイベントが発生した表示画面S1若しくはS2を示すイベント発生画面番号ともいえる。
【0048】
画面描画操作部111、112は、CPUを含み構成され、スクリーン121、122の画面更新と、マウスイベントの生成及び送出処理を行う。この画面描画操作部111、112は、画面共有部41、42と1対1で対応している。すなわち、画面更新情報の受信、及びマウスイベントの送信は、対応の画面共有部41、42に対して行う。
【0049】
画面更新処理において、画面描画操作部111、112は、対応の画面共有部41、42から画面更新情報を受信し、画面更新情報を伸張して画像データを生成し、ビデオメモリの差分箇所に書き込む。ビデオメモリの差分箇所が更新されることによって、対応のスクリーン121、122の画面が更新される。
【0050】
マウスイベントの生成及び送出処理において、画面描画操作部111、112は、マウス操作に応じたイベント種類情報とイベント発生座標情報を生成し、対応の画面共有部41、42に送出する。
【0051】
ポインタ操作部31は、画面転送装置1のマウス30に対するマウスイベントを生成して画面管理部10へ送信する。表示画面S1、S2の画面識別番号は、画面共有部41、42のプロセスIDであるため、ポインタ操作部31のプロセスIDが付加されたマウスボタン押下のイベントは全て破棄される。
【0052】
(動作)
このような画面転送装置1及び画面表示装置100の画面転送処理動作、マウスボタンの押下に係るクリック処理動作、ポインタ移動処理動作、グラブ画面変更処理動作、及びその動作におけるデータの流れについて図面を参照して説明する。
【0053】
(画面転送処理)
図4は、画面転送装置1及び画面表示装置100の画面転送処理を示すフローチャートである。
【0054】
まず、画面管理部10は、Xクライアントの画面描画要求に従ってフレームバッファ内の画像データを更新する(ステップS01)。
【0055】
画面共有部41、42は、フレームバッファ内において、対応の表示画面領域が変更されると(ステップS02,Yes)、その変更内容を示す画面更新情報を画面表示装置100へ送信する(ステップS03)。
【0056】
具体的には、画面共有部41、42は、それぞれ対応の表示画面領域を監視する。対応の表示画面領域が変更されると、その表示画面領域内の画像データを読み出す。画像データを読み出すと、画面共有部41、42は、予め保持している表示画面領域内の前回の画像データと、読み出した画像データとを比較し、差分箇所を検出し、差分箇所の画像データを必要に応じて圧縮する。画面共有部41、42は、圧縮した差分箇所の画像データを画面更新情報として、画面表示装置100のIPアドレス及び対応の画面描画操作部111、112を示すポート番号を含むTCPやIPのヘッダを付加し、ネットワークNに送出する。
【0057】
画面描画操作部111、112は、対応の表示画面領域についての画面更新情報を受信すると(ステップS04)、対応のスクリーン121、122の画面を更新する(ステップS05)。具体的には、画面描画操作部111、112は、対応の画面更新情報を受信すると、その画面更新情報を伸張し、得られた画像データをビデオメモリ内の差分箇所に書き込む。
【0058】
(ポインタ移動処理)
図5は、画面転送装置1のポインタ移動処理を示すフローチャートである。図6は、ポインタ移動処理のデータフローを示すシーケンス図である。
【0059】
まず、ユーザがマウス130を用いたポインタ移動操作を行うと、ポインタ移動イベントが発生する(ステップS11)。画面描画操作部111、112は、対応の表示画面S1、S2についてポインタ移動イベントが発生すると、ポインタの移動を示すイベント種類情報とイベント発生座標情報を含むマウスイベントを画面転送装置1へ送信する(ステップS12)。
【0060】
具体的には、画面描画操作部111、112は、対応の表示画面下でポインタ移動イベントが発生すると、そのポインタの移動を示すイベント種類情報と、ポインタの移動先座標を示すイベント発生座標情報とを生成、マウスイベントとして纏める。そして、画面描画操作部111、112は、マウスイベントに画面転送装置1のIPアドレス及び対応の画面共有部41、42を示すポート番号を含むTCPやIPのヘッダを付加し、ネットワークNに送出する。
【0061】
画面共有部41、42は、ポート番号を参照して、イベント種類情報とイベント発生座標情報を受け取り(ステップS13)、画面管理部10に出力する(ステップS14)。なお、画面転送装置1が備えるマウス30によるポインタ移動操作によりポインタ移動イベントが発生すると、このイベント種類情報とイベント発生座標情報は、画面管理部10へ直接出力される。
【0062】
画面管理部10は、イベント種類情報がポインタの移動であると(ステップS15,Yes)、フレームバッファ内のイベント発生座標情報と対応するアドレスにポインタの画像データを書き込む(ステップS16)。
【0063】
(グラブ画面変更処理)
図7は、画面転送装置1のグラブ画面変更処理を示すフローチャートである。図8は、グラブ画面変更処理のデータフローを示すシーケンス図である。
【0064】
まず、ユーザがマウス130を用いたポインタ移動操作を行うと、ポインタ移動イベントが発生する(ステップS21)。画面描画操作部111、112は、対応の表示画面についてポインタ移動イベントが発生すると、ポインタの移動を示すイベント種類情報とイベント発生座標情報を含むマウスイベントを画面転送装置1へ送信する(ステップS22)。
【0065】
画面共有部41、42は、ポート番号を参照し、イベント種類情報とイベント発生座標情報を含むマウスイベントを受け取り(ステップS23)、画面管理部10に出力する(ステップS24)。
【0066】
画面管理部10は、イベント種類情報がポインタの移動であると(ステップS25,Yes)、ポインタが存在する表示画面領域の画面識別番号を求める(ステップS26)。このステップS26で求められたポインタ存在画面識別番号と、予め保持しているグラブ画面番号とが一致していなければ(ステップS27,No)、ポインタ存在画面識別番号の値にグラブ画面番号を変更する(ステップS28)。このステップS26〜ステップS29の動作は、ポインタ移動処理におけるステップS16と並行して行われる。
【0067】
具体的には、ポインタ検知部51は、イベント発生座標情報を包含する画面座標情報を検索し、該当の画面座標情報に関連づけられた画面識別番号を得る。ポインタ管理部52は、予め保持しているグラブ画面番号がポインタ存在画面識別番号と相違していれば、グラブ画面番号の値を、このポインタ存在画面識別番号の値に変更して保持する。
【0068】
(クリック処理)
図9は、画面転送装置1のクリック処理を示すフローチャートである。図10は、クリック処理のデータフローを示すシーケンス図である。
【0069】
まず、ユーザがマウス130を用いてマウスボタンを押下する操作を行うと、マウスボタン押下イベントが発生する(ステップS31)。画面描画操作部111、112は、マウスボタンの押下を示すイベント種類情報とイベント発生座標情報とを画面転送装置1へ送信する(ステップS32)。
【0070】
具体的には、画面描画操作部111、112は、対応の表示画面S1若しくはS2下でマウスボタン押下イベントが発生すると、そのマウスボタンの押下を示すイベント種類情報と、マウスボタンが押下された時のポインタの座標を示すイベント発生座標情報とを生成、マウスイベントとして纏める。そして、画面描画操作部111、112は、マウスイベントに画面転送装置1のIPアドレス及び対応の画面共有部41、42を示すポート番号を含むTCPやIPのヘッダを付加し、ネットワークNに送出する。
【0071】
画面共有部41、42は、ポート番号を参照して、イベント種類情報とイベント発生座標情報を受け取り(ステップS33)、自身のプロセスIDを付加して(ステップS34)、画面管理部10に出力する(ステップS35)。ここで、表示画面S1及びS2の画面識別番号は、対応する画面共有部41、42のプロセスIDである。すなわち、マウスイベントを受け取った画面共有部41、42が付加したプロセスIDは、マウスイベントが発生した表示画面S1又はS2を示すイベント発生画面番号ともいえる。
【0072】
なお、画面転送装置1が備えるマウス30によるクリック操作によりマウスボタン押下イベントが発生すると、このイベント種類情報とイベント発生座標情報は、画面管理部10へ直接出力される。
【0073】
画面管理部10は、イベント種類情報がマウスボタンの押下であると(ステップS36,Yes)、受け取ったプロセスIDと予め保持しているグラブ画面番号とを比較し(ステップS37)、一致していれば(ステップS37,Yes)、マウスボタン押下イベントをポインタの座標下に表示されているアプリケーションに通知する(ステップS38)。一方、相違していれば(ステップS37,No)、マウスボタン押下イベントを破棄する(ステップS39)。
【0074】
(作用)
このような構成及び動作の画面転送装置1における画面ロックの作用について図11に基づき説明する。図11は、画面転送装置1が転送する表示画面S1、S2のロック状態を示す模式図であり、図11の(a)は、本実施形態においてポインタが左側の表示画面S1上にある状態を示し、(b)は、本実施形態においてポインタが左側の表示画面S1から右側の表示画面S2へ遷移した場合を示し、(c)は、従来においてポインタが左側の表示画面S1上にある状態を示し、(d)は、従来においてポインタが左側の表示画面S1から右側の表示画面S2へ遷移した場合を示している。
【0075】
図11の(a)では、ポインタが左側の表示画面S1上にある。この状態では、グラブ画面番号は、表示画面S1の画面識別番号である。
【0076】
従って、表示画面S1内でマウスボタン押下イベントが発生すると有効として扱われ、ポインタの存在下にあるアプリケーションにマウスボタン押下イベントが渡される。すなわち、マウスイベントを受け取った画面共有部41のプロセスIDとグラブ画面番号が一致するため、マウスイベントは有効として扱われる。
【0077】
一方、右側の表示画面S2については画面ロックが掛かっている。そのため、表示画面S2でマウスボタン押下イベントが発生しても、マウスイベントを受け取った画面共有部42のプロセスIDとグラブ画面番号は相違するため、マウスイベントは破棄される。
【0078】
さらに、図11の(b)は、ポインタが右側の表示画面S2上に移った場合を示している。このとき、ポインタ移動イベントが画面管理部10に送出され、ポインタの移動先の座標を包含する表示画面S2の画面識別番号にグラブ画面番号が変更される。すなわち、画面ロックが表示画面S1から表示画面S2に変更される。この状態では、グラブ画面番号は、表示画面S2の画面識別番号である。
【0079】
従って、表示画面S2内でマウスボタン押下イベントが発生すると、そのマウスボタン押下イベントは有効なものとして、ポインタの存在下にあるアプリケーションにマウスボタン押下イベントが渡される。
【0080】
表示画面S2でマウスボタンの右ボタンが押下されたものと判断された場合には、そのポインタの存在下のアプリケーションに当該マウスイベントが引き渡され、例えば、当該アプリケーションがコンテキストメニューを描画するように画面管理部10に要求し、画面管理部10は、フレームバッファ内にコンテキストメニューの画像データを書き込む。
【0081】
一方、表示画面S1については画面ロックが掛かっているため、表示画面S1でマウスボタン押下イベントが発生しても、そのマウスイベントは破棄される。
【0082】
尚、表示画面S1、S2の画面識別番号は、画面共有部41、42のプロセスIDであるため、ポインタ操作部31のプロセスIDが付加されたマウスボタン押下のイベントは全て破棄される。すなわち、画面転送装置1からのマウスボタンの押下は常に禁止されている。
【0083】
このように、第1の実施形態に係る画面転送装置1では、複数の画面共有部41、42と、画面管理部10を備え、複数の画面共有部41、42は、複数の表示画面に1対1で対応し、各表示画面S1、S2を前記画面表示装置に転送するとともに、対応の表示画面S1若しくはS2内で発生した入力操作イベントを画面表示装置100からネットワークNを介して受け取り、画面管理部10は、それ以外で発生した入力操作イベントを破棄するようにした。換言すると、画面転送装置1は、入力操作イベントを有効にする表示画面S1(S2)をポインタの移動に応じて可変するようにした。
【0084】
この画面管理部10は、ポインタが存在する表示画面S1若しくはS2を検知するポインタ検知部51と、ボタン押下イベントを有効とする表示画面S1若しくはS2を識別するグラブ画面番号を予め保持しておき、ポインタ検知部51が検知した表示画面S1若しくはS2を識別するポインタ存在画面識別番号とグラブ画面番号とが相違している場合には、グラブ画面番号をポインタ存在画面識別番号に変更するポインタ管理部52を備え、ボタン押下イベントが発生した表示画面S1若しくはS2を識別する情報がグラブ画面番号と一致していない場合、ボタン押下イベントを破棄する。
【0085】
これにより、画面転送装置1が複数の表示画面S1、S2を転送する場合であっても、画面転送装置1のユーザが何れの表示画面S1、S2についてボタン押下の操作をしても、その画面操作が有効となる。従って、ユーザの利便性は向上する。
【0086】
また、画面識別番号は、対応する画面共有部41、42のプロセスIDとした。すなわち、押下ボタンイベントの有効又は無効の判断時にグラブ画面番号と比較されるイベント発生画面番号は、ボタン押下イベントを受け取った画面共有部を識別する情報とした。これにより、画面転送装置1が備えるマウス30を操作することでボタン押下イベントが発生しても、そのイベントは全て無効となるため、本来の画面ロック機能の実効も図ることができる。
【0087】
(第2の実施形態)
次に、第2の実施形態に係る画面転送装置1について図面を参照しつつ詳細に説明する。尚、画面転送装置1の構成、画面転送処理、画面表示装置100から送信されたマウスイベントの処理については第1の実施形態と同様につき、詳細な説明を省略する。
【0088】
第2の実施形態に係る画面転送装置1は、マウス30を用いたロック画面番号の変更を防止するものである。すなわち、第2の画面転送装置1は、サーバ装置のマウス30によるポインタの移動については、グラブ画面番号と一致する画面識別番号の表示画面S1若しくはS2内に制限する。
【0089】
(動作)
図12は、この画面転送装置1のマウス30を用いたポインタ移動の制限動作を示すフローチャートである。図13は、ポインタ移動処理のデータフローを示すシーケンス図である。
【0090】
まず、ユーザがマウス30を用いたポインタ移動操作を行うと、ポインタ移動イベントが発生する(ステップS41)。ポインタ操作部31は、ポインタの移動を示すイベント種類情報とイベント発生座標情報を含むマウスイベントを画面管理部10へ送信する(ステップS42)。
【0091】
マウスイベントの送信元がポインタ操作部31であり(ステップS43,Yes)、イベント種類情報がポインタの移動であると(ステップS44,Yes)、ポインタ検知部51は、イベント発生座標情報を包含する画面座標情報を検索し、関連づけられた画面識別番号を求める(ステップS45)。
【0092】
ポインタ管理部52は、求められた画面識別番号とグラブ画面番号とを比較し(ステップS46)、比較結果を画面管理部10へ通知する。比較結果が一致であれば(ステップS46,Yes)、画面管理部10は、フレームバッファ内のイベント発生座標情報と対応するアドレスにポインタの画像データを書き込む(ステップS47)。
【0093】
一方、比較結果が不一致であれば(ステップS46,No)、ポインタの移動元を含む表示画面S1若しくはS2内の縁部分に対応するアドレスにポインタの画像データを書き込む(ステップS48)。具体的には、予め保持しているポインタの移動元座標とイベント発生座標情報が示す座標とを結ぶ線分を仮定する。そして、画面管理部10は、ポインタの移動元座標を含む表示画面S1若しくはS2の辺と当該線分との交点を求め、当該表示画面S1若しくはS2内であって、その交点近傍にポインタの画像データを書き込む。
【0094】
(作用)
このような動作の画面転送装置1における移動制限の作用について図14に基づき説明する。図14は、画面転送装置1が備えるマウス30によるポインタの移動可能範囲を示す模式図である。
【0095】
図14の(a)に示すように、グラブ画面番号と一致する画面識別番号を有する表示画面S1内については、マウス30の操作によりポインタを自由に移動させることができる。しかしながら、図14の(b)に示すように、マウス30の操作により表示画面S1から表示画面S2へポインタが移動しようとすると、ポインタは、表示画面S2への移動は制限され、表示画面S1内の表示画面S2との境界に描画される。
【0096】
グラブ画面番号は、ポインタの存在位置によって変更されるが、第2の実施形態に係る画面転送装置1では、サーバ装置のマウス30の操作では、表示画面S1若しくはS2を超えるポインタの移動は制限されるため、グラブ画面番号が変更されることはない。すなわち、画面転送装置1のマウス30の操作では、グラブ画面の変更はされない。
【0097】
このように、第2の実施形態に係る画面転送装置1では、画面管理部10は、マウス30の操作によるポインタの移動範囲を一つの表示画面S1又はS2内に制限するようにした。具体的には、画面管理部10は、マウス30の操作によるポインタの移動元と移動先とが異なる表示画面S1又はS2である場合には、移動元を含む表示画面S1又はS2の縁にポインタを描画するようにした。
【0098】
これにより、画面転送装置1のマウス30の操作によって、グラブ画面が変更されることはなく、画面転送装置1側でグラブ画面の解除及び再設定を行い、その解除と再設定の合間に画面転送装置1側のボタン押下操作が効いてしまう機会を減少させることができ、画面表示装置1のユーザの利便性が更に高まる。
【0099】
(第3の実施形態)
次に、第3の実施形態に係る画面転送装置1について図面を参照しつつ詳細に説明する。尚、第1の実施形態の画面転送装置1と同一の構成については同一符号を付して詳細な説明を省略する。また、画面転送処理、画面表示装置100から送信されたマウスイベントの処理については第1の実施形態と同様につき、画面転送装置1が備えるマウス30によるポインタの移動制限については第2の実施形態と同様につき、詳細な説明を省略する。
【0100】
(構成)
第3の実施形態に係る画面転送装置1は、第2の実施形態に係るマウス30によるポインタの移動制限下で画面転送装置1側からグラブ状態を解除可能となっている。図15は、第3の実施形態に係る画面転送装置1の構成を示すブロック図である。
【0101】
この画面転送装置1は、マウスジェスチャ監視部60を更に備えている。マウスジェスチャ監視部60は、CPU及びRAMを含み、ポインタの移動軌跡を監視し、履歴として保持するとともに、移動軌跡が所定の挙動を表していれば、画面管理部10にグラブ解除要求を出力する。画面管理部10は、グラブ解除要求が入力されると、グラブを解除し、マウスイベントの破棄処理を非アクティブとする。すなわち、破棄処理を行わず、全てのマウスイベントについてポインタ検知部51及びポインタ管理部52へ判断を要求することなく、有効として扱う。
【0102】
尚、再度、グラブが要求された場合には、ポインタ検知部51により、ポインタの存在位置が検知され、ポインタ管理部52により、ポインタが存在する表示画面S1若しくはS2の画面識別番号と同値のグラブ画面番号の保持が行われる。以後、グラブが解除されるまで、破棄処理はアクティブとなり、図5乃至図10に示したマウスイベントの処理が行われる。
【0103】
(動作)
図16は、第3の実施形態に係る画面転送装置1のグラブ解除動作を示すフローチャートである。図17は、グラブ解除動作のデータフローを示すシーケンス図である。
【0104】
まず、画面管理部10は、イベント種類情報がポインタの移動であるマウスイベントが入力されると(ステップS51)、イベント発生座標情報をマウスジェスチャ監視部60へ出力する。マウスジェスチャ監視部60は、入力されたイベント発生座標情報を履歴として保持し(ステップS52)、イベント発生座標情報の履歴が所定の挙動を示しているか判断する(ステップS53)。
【0105】
履歴が所定の挙動を示している場合(ステップS53,Yes)、マウスジェスチャ監視部60は、画面管理部10にグラブ解除要求を出力する(ステップS54)。グラブ解除要求が入力された画面管理部10は、グラブを解除し(ステップS55)、以後、グラブが要求されるまで図5乃至図10に示したマウスイベントの処理は行わず、全てのマウスイベントについて、イベント発生座標情報が示す座標を含むGUI画面を表示させているアプリケーションにマウスイベントを引き渡す。
【0106】
(作用)
図18及び19は、グラブを解除するポインタの移動軌跡を示す模式図である。図20は、グラブ解除に該当しないポインタの移動軌跡を示す模式図である。
【0107】
図18及び19に示すように、マウスジェスチャ監視部60は、表示画面S1若しくはS2からはみ出ることなく、その全角にポインタが移動し、且つ次の角への移動時間が2秒以内であれば、画面管理部10へグラブ解除要求を出力する。
【0108】
図20に示すポインタの移動軌跡は、表示画面S1若しくはS2からはみ出ているため、グラブ解除要求の出力要件には該当しない。第2の実施形態に係る画面転送装置1においては、ポインタは、マウス30の操作によっては他の表示画面S1若しくはS2にはみ出すことはできない。一方で画面表示装置100のマウス130の操作によっては他の表示画面S1若しくはS2に容易にはみ出すことができる。そのため、画面表示装置100側からグラブを解除することは困難であるが、画面転送装置1からグラブを解除することは容易となる。
【0109】
図21は、グラブを解除するポインタの他の移動軌跡を示す模式図である。図21に示すように、マウスジェスチャ監視部60は、ポインタの移動軌跡が、表示画面S1若しくはS2の特定の辺の一端から他端へ2秒間以内に移動し、且つ特定の辺の中点を経由すると、画面管理部10へグラブ解除要求を出力する。
【0110】
このように、第3の実施形態に係る画面転送装置1では、ポインタの移動軌跡と、予め記憶されるポインタの所定の挙動とを比較するマウスジェスチャ管理手段を更に備え、画面管理部10は、移動軌跡が所定の挙動と一致すると、ボタン押下イベントの破棄処理を停止するようにした。これにより、画面転送装置1側でも、必要なときにグラブを解除することができる。
【0111】
また、所定の挙動を、異なる表示画面S1、S2へポインタがはみ出さない移動軌跡として記憶しておき、前記第2の実施形態に係るマウス30の操作によるポインタの移動制限と組み合わせることで、画面転送装置1側からのグラブ解除は困難となる一方、画面表示装置100側からのグラブ解除は容易となる。
【0112】
(第4の実施形態)
次に、第4の実施形態に係る画面転送装置1について図面を参照しつつ詳細に説明する。尚、画面転送装置1の構成及び動作については第1乃至3の実施形態と同様につき、詳細な説明を省略する。
【0113】
図22に第4の実施形態に係る画面転送装置1の表示画面S1及びS2を示す模式図である。この画面転送装置1は、グラブの設定又は解除の状態を視覚により把握可能としている。すなわち、図22の(a)及び(b)に示すように、画面管理部10は、破棄処理がアクティブとなっているか、非アクティブとなっているかに応じて、換言すると、グラブが設定されている状態と解除されている状態とでポインタの形状を変更してフレームバッファに書き込む。
【0114】
このように、第4の実施形態に係る画面転送装置1では、画面管理部10は、ボタン押下イベントの破棄処理がアクティブであるか非アクティブであるかに応じて、ポインタの形状を変更するようにした。これにより、画面転送装置1側でグラブがアクティブであるか非アクティブであるかを容易に見分けることができる。
【0115】
以上のように、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これら新規な実施形態は、そのほかの様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【0116】
例えば、画面転送装置1や画面表示装置100が備える入力手段は、ポインタの移動操作、及びGUI画面上の一点を指定する入力操作が可能であれば、マウスに限られず、キーボード、タッチパネル、又はカメラを備えるようにしてもよい。換言すると、マウスによるポインタ移動操作は、入力手段を用いたポインタ移動操作の一態様であり、マウスボタンの押下操作は、入力手段を用いた入力操作の一態様である。
【0117】
すなわち、これら入力手段を用いる場合、各実施形態におけるポインタの移動操作には、キーボード、タッチパネル、又はカメラで撮影されたユーザのジェスチャーによるものも含まれ、これらによるポインタ移動イベントに対してもグラブ画面番号の変更処理を行うことができる。また、これら入力手段を用いる場合、マウスボタンの押下と同等の操作であるキーボード、タッチパネル、又はカメラで撮影されたユーザのジェスチャーによる操作についても、その時のポインタの位置に基づいて入力操作の有効又は無効を判断することができる。
【0118】
また、表示画面については、3以上であってもよく、表示画面の数と同数の画面共有部41、42、・・・と画面描画操作部111、112、・・・が起動するようにしてもよい。
【符号の説明】
【0119】
1 画面転送装置
1a 演算制御装置
1b 主記憶装置
1c 外部記憶装置
1d 通信IF
10 画面管理部
21 スクリーン
22 スクリーン
30 マウス
31 ポインタ操作部
41 画面共有部
42 画面共有部
51 ポインタ検知部
52 ポインタ管理部
60 マウスジェスチャ監視部
100 画面表示装置
100a 演算制御装置
100b 主記憶装置
100c 外部記憶装置
100d 通信IF
111 画面描画操作部
112 画面描画操作部
121 スクリーン
122 スクリーン
130 マウス
N ネットワーク
S1 表示画面
S2 表示画面

【特許請求の範囲】
【請求項1】
入力手段によるポインタ移動操作及び入力操作が可能な画面表示装置にネットワークを介してポインタによる画面操作環境を提供する画面転送装置であって、
複数の表示画面に1対1で対応し、各表示画面を前記画面表示装置に転送するとともに、対応の転送画面内で発生した入力操作イベントを前記画面表示装置からネットワークを介して受け取る複数の画面共有手段と、
ポインタの存在する転送画面で発生した入力操作イベントをアプリケーションに引き渡し、それ以外で発生した入力操作イベントを破棄する画面管理手段と、
を備えること、
を特徴とする画面転送装置。
【請求項2】
請求項1記載の画面転送装置は、
前記ポインタが存在する前記転送画面を検知するポインタ検知手段と、
前記入力操作イベントを有効とする前記転送画面を識別するグラブ画面情報を予め保持しておき、前記ポインタ検知手段が検知した前記転送画面を識別するポインタ存在画面識別情報と前記グラブ画面情報とが相違している場合には、前記グラブ画面情報を前記ポインタ存在画面識別情報に変更するポインタ管理手段と、
を含み、
前記画面管理手段は、
前記入力操作イベントが発生した前記転送画面を識別するイベント発生画面情報が前記グラブ画面情報と一致する場合には、前記入力操作イベントを前記アプリケーションに引き渡し、一致していない場合には、前記入力操作イベントを破棄すること、
を特徴とする画面転送装置。
【請求項3】
転送装置側の入力手段を更に備え、
前記画面管理手段は、
前記転送装置側の入力手段に基づき発生した入力操作イベントは全て破棄すること、
を特徴とする請求項1又は2記載の画面転送装置。
【請求項4】
前記イベント発生画面情報は、前記入力操作イベントを受け取った前記画面共有部を識別する情報であること、
を特徴とする請求項2記載の画面転送装置。
【請求項5】
転送装置側の入力手段を備え、
前記画面管理手段は、
前記転送装置側の入力手段の操作による前記ポインタの移動範囲を一つの前記表示画面内に制限すること、
を特徴とする請求項1乃至4の何れかに記載の画面転送装置。
【請求項6】
前記画面管理手段は、
前記転送装置側の入力手段の操作による前記ポインタの移動元と移動先とが異なる前記表示画面である場合には、前記移動元を含む前記表示画面の縁に前記ポインタを描画すること、
を特徴とする請求項5記載の画面転送装置。
【請求項7】
前記ポインタの移動軌跡と、予め記憶される前記ポインタの所定の挙動とを比較する移動軌跡管理手段を更に備え、
前記画面管理手段は、
前記移動軌跡が前記所定の挙動と一致すると、前記入力操作イベントの破棄処理を停止すること、
を特徴とする請求項1乃至6の何れかに記載の画面転送装置。
【請求項8】
前記ポインタの移動軌跡と、予め記憶される前記ポインタの所定の挙動とを比較する移動軌跡管理手段と、
を更に備え、
前記所定の挙動は、
異なる前記表示画面へ前記ポインタがはみ出さない移動軌跡であり、
前記画面管理手段は、
前記転送装置側の入力手段の操作による前記ポインタの移動範囲を一つの前記表示画面内に制限するとともに、前記移動軌跡が前記所定の挙動と一致すると、前記入力操作イベントの破棄処理を停止すること、
を特徴とする請求項1乃至4の何れかに記載の画面転送装置。
【請求項9】
前記画面管理手段は、
前記入力操作イベントの破棄処理がアクティブであるか非アクティブであるかに応じて、前記ポインタの形状を変更すること、
を特徴とする請求項1乃至7の何れかに記載の画面転送装置。
【請求項10】
表示画面を転送する画面転送装置と、入力手段による転送画面に対するポインタ移動操作及び入力操作が可能な入力手段を有する画面表示装置とがネットワークを介して接続された画面共有システムであって、
前記画面転送装置に設けられ、複数の表示画面に1対1で対応し、各表示画面を前記画面表示装置に転送するとともに、対応の転送画面内で発生した入力操作イベントを前記画面表示装置からネットワークを介して受け取る複数の画面共有手段と、
前記画面表示装置に設けられ、前記画面共有手段と1対1で対応し、対応の転送画面を表示させるとともに、その転送画面内で発生した入力操作イベントを対応の画面共有手段に送信する複数の画面操作手段と、
前記画面転送装置に設けられ、ポインタの存在する転送画面で発生した入力操作イベントをアプリケーションに引き渡し、それ以外で発生した入力操作イベントを破棄する画面管理手段と、
を備えること、
を特徴とする画面共有システム。
【請求項11】
入力手段によるポインタ移動操作及び入力操作が可能な画面表示装置にネットワークを介して接続された画面転送装置を、
複数の表示画面に1対1で対応し、各表示画面を前記画面表示装置に転送するとともに、対応の転送画面内で発生した入力操作イベントを前記画面表示装置からネットワークを介して受け取る複数の画面共有手段と、
ポインタの存在する転送画面で発生した入力操作イベントをアプリケーションに引き渡し、それ以外で発生した入力操作イベントを破棄する画面管理手段と、
して機能させること、
を特徴とする画面転送プログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2012−248069(P2012−248069A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−120386(P2011−120386)
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】