(57)【要約】【課題】各利用者からの操作が競合しないよう、調停する処理実行システムを提供する。【解決手段】利用者の操作に応じた処理を実行する処理実行装置に接続される中継装置が、この処理実行装置から受け入れた操作画面の画像を識別する識別子を発行する。中継装置は、受け入れた操作画面画像と、それを識別する識別子とを利用者側の装置に提供し、利用者側の装置から、利用者の操作を表す情報と操作画面画像を識別する識別子とを受信する。中継装置はこの受信した識別子と最後に発行した識別子とを比較し、これらが一致するか否かにより、受信した利用者の操作を表す情報を処理実行装置に対して送信するか否かを判断する。【選択図】図１
2008210317.tif 000002
【特許請求の範囲】
【請求項１】
処理実行装置と、中継装置と、利用者側装置とを含む処理実行システムであって、
前記処理実行装置は、
操作画面画像を前記中継装置に提供する画面提供手段と、
前記中継装置から操作を受け入れる操作受入手段と、
を備え、
前記中継装置は、
前記処理実行装置から提供された操作画面画像を受け入れる手段と、
受け入れた操作画面画像ごとに固有の識別子を発行し、操作画面画像と発行した識別子とを関連づけて、前記利用者側装置へ提供する手段と、
前記利用者側装置から、操作画面画像に関連する識別子とともに、利用者の操作を受け入れる手段と、
当該利用者側装置から受け入れた識別子を用い、当該識別子とともに受け入れた利用者の操作を表す情報を、前記処理実行装置へ送出するか否かを判断する手段と、
前記判断の結果、送出すると決定した場合に、利用者の操作を前記処理実行装置へ提供する手段と、
を有し、
前記利用者側装置は、前記中継装置から操作画面画像と、当該操作画面画像に関連する識別子とを取得し、当該操作画面画像を表示する手段と、
利用者が行った操作を表す情報を受け入れて、当該受け入れた情報とともに、表示している操作画面画像に関連する識別子を、前記中継装置へ送信する手段と、
を含むことを特徴とする処理実行システム。
【請求項２】
利用者の操作に応じた処理を実行する処理実行装置に接続され、前記処理実行装置から操作画面の画像を受け入れる手段と、
当該受け入れた操作画面画像を識別する識別子を発行する手段と、
前記受け入れた操作画面画像と、当該操作画面画像を識別する識別子とを利用者側の装置に提供する手段と、
利用者側の装置から、利用者の操作を表す情報とともに、当該操作が行われた時点での操作画面画像を識別する識別子を受信して、最後に発行した識別子と比較し、最後に発行した識別子と、利用者側の装置から受信した識別子とが一致するか否かにより、受信した、利用者の操作を表す情報を、前記処理実行装置に対して送信するか否かを判断する手段と、
前記判断の結果、送出すると決定した場合に、利用者の操作を表す情報を前記処理実行装置へ提供する手段と、
を含むことを特徴とする中継装置。
【請求項３】
利用者の操作に応じた処理を実行する処理実行装置に接続され、前記処理実行装置から操作画面の画像を受け入れる手段と、
当該受け入れた操作画面画像を識別する識別子を発行する手段と、
前記受け入れた操作画面画像と、当該操作画面画像を識別する識別子とを利用者側の装置に提供する手段と、
利用者側の装置から、利用者の操作を表す情報とともに、当該操作が行われた時点での操作画面画像を識別する識別子を受信して、最後に発行した識別子と比較し、最後に発行した識別子と、利用者側の装置から受信した識別子とが一致しない場合に、受信した、利用者の操作を表す情報を補正する補正手段と、
前記補正が行われた利用者の操作を表す情報を、前記処理実行装置へ提供する手段と、
を含むことを特徴とする中継装置。
【請求項４】
前記補正手段は、最後に発行した識別子に対応する操作画面画像と、利用者側の装置から受信した識別子に対応する操作画面画像とに基づいて、補正の要否を判断し、補正が必要と判断したときに、利用者の操作を表す情報を補正することを特徴とする請求項３に記載の中継装置。
【請求項５】
前記補正手段は、最後に発行した識別子に対応する操作画面画像と、利用者側の装置から受信した識別子に対応する操作画面画像とが相違する領域を検索し、前記受信した利用者の操作を表す情報が、当該検索にて見出された領域内における操作を表すものであるときに、当該利用者の操作を表す情報に補正が必要と判断して、利用者の操作を表す情報を補正することを特徴とする請求項４に記載の中継装置。
【請求項６】
前記補正手段は、前記受信した利用者の操作を表す情報によって表される操作の内容に基づいて補正の可否を判断し、補正が可能であると判断したときに、利用者の操作を表す情報を補正することを特徴とする請求項３から５のいずれか一項に記載の中継装置。
【請求項７】
利用者の操作に応じた処理を実行する処理実行装置に接続されたコンピュータに、
前記処理実行装置から操作画面の画像を受け入れる手順と、
当該受け入れた操作画面画像を識別する識別子を発行する手順と、
前記受け入れた操作画面画像と、当該操作画面画像を識別する識別子とを利用者側の装置に提供する手順と、
利用者側の装置から、利用者の操作を表す情報とともに、当該操作が行われた時点での操作画面画像を識別する識別子を受信して、最後に発行した識別子と比較し、最後に発行した識別子と、利用者側の装置から受信した識別子とが一致するか否かにより、受信した、利用者の操作を表す情報を、前記処理実行装置に対して送信するか否かを判断する手順と、
前記判断の結果、送出すると決定した場合に、利用者の操作を表す情報を前記処理実行装置へ提供する手順と、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理実行システム、中継装置、及びプログラムに関する。
【背景技術】
【０００２】
アプリケーションを実行するサーバ装置に対して、複数のクライアント装置からの操作を中継して送信するシステムがある。このシステムによると、サーバ上のアプリケーションを、複数のクライアント装置の利用者で共用できる。
【特許文献１】特開２００４−００５３９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、複数のクライアント装置からの操作を中継して送信するシステムでは、各クライアント装置からの操作が競合しないよう、調停する必要がある。
【０００４】
本発明は上記実情に鑑みて為されたもので、各クライアント（利用者側の）装置からの操作が競合しないよう、調停できる処理実行システム、中継装置、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
請求項１記載の発明は、処理実行装置と、中継装置と、利用者側装置とを含む処理実行システムであって、前記処理実行装置は、操作画面画像を前記中継装置に提供する画面提供手段と、前記中継装置から操作を受け入れる操作受入手段と、を備え、前記中継装置は、前記処理実行装置から提供された操作画面画像を受け入れる手段と、受け入れた操作画面画像ごとに固有の識別子を発行し、操作画面画像と発行した識別子とを関連づけて、前記利用者側装置へ提供する手段と、前記利用者側装置から、操作画面画像に関連する識別子とともに、利用者の操作を受け入れる手段と、当該利用者側装置から受け入れた識別子を用い、当該識別子とともに受け入れた利用者の操作を表す情報を、前記処理実行装置へ送出するか否かを判断する手段と、前記判断の結果、送出すると決定した場合に、利用者の操作を前記処理実行装置へ提供する手段と、を有し、前記利用者側装置は、前記中継装置から操作画面画像と、当該操作画面画像に関連する識別子とを取得し、当該操作画面画像を表示する手段と、利用者が行った操作を表す情報を受け入れて、当該受け入れた情報とともに、表示している操作画面画像に関連する識別子を、前記中継装置へ送信する手段と、を含むこととしたものである。
【０００６】
請求項２記載の発明は、中継装置であって、利用者の操作に応じた処理を実行する処理実行装置に接続され、前記処理実行装置から操作画面の画像を受け入れる手段と、当該受け入れた操作画面画像を識別する識別子を発行する手段と、前記受け入れた操作画面画像と、当該操作画面画像を識別する識別子とを利用者側の装置に提供する手段と、利用者側の装置から、利用者の操作を表す情報とともに、当該操作が行われた時点での操作画面画像を識別する識別子を受信して、最後に発行した識別子と比較し、最後に発行した識別子と、利用者側の装置から受信した識別子とが一致するか否かにより、受信した、利用者の操作を表す情報を、前記処理実行装置に対して送信するか否かを判断する手段と、前記判断の結果、送出すると決定した場合に、利用者の操作を表す情報を前記処理実行装置へ提供する手段と、を含むこととしたものである。
【０００７】
請求項３記載の発明は、中継装置であって、利用者の操作に応じた処理を実行する処理実行装置に接続され、前記処理実行装置から操作画面の画像を受け入れる手段と、当該受け入れた操作画面画像を識別する識別子を発行する手段と、前記受け入れた操作画面画像と、当該操作画面画像を識別する識別子とを利用者側の装置に提供する手段と、利用者側の装置から、利用者の操作を表す情報とともに、当該操作が行われた時点での操作画面画像を識別する識別子を受信して、最後に発行した識別子と比較し、最後に発行した識別子と、利用者側の装置から受信した識別子とが一致しない場合に、受信した、利用者の操作を表す情報を補正する補正手段と、前記補正が行われた利用者の操作を表す情報を、前記処理実行装置へ提供する手段と、を含むこととしたものである。
【０００８】
請求項４記載の発明は、請求項３記載の中継装置であって、前記補正手段は、最後に発行した識別子に対応する操作画面画像と、利用者側の装置から受信した識別子に対応する操作画面画像とに基づいて、補正の要否を判断し、補正が必要と判断したときに、利用者の操作を表す情報を補正することとしたものである。
【０００９】
請求項５記載の発明は、請求項４記載の中継装置であって、前記補正手段は、最後に発行した識別子に対応する操作画面画像と、利用者側の装置から受信した識別子に対応する操作画面画像とが相違する領域を検索し、前記受信した利用者の操作を表す情報が、当該検索にて見出された領域内における操作を表すものであるときに、当該利用者の操作を表す情報に補正が必要と判断して、利用者の操作を表す情報を補正することとしたものである。
【００１０】
請求項６記載の発明は、請求項３から５のいずれか一項に記載の中継装置であって、前記補正手段は、前記受信した利用者の操作を表す情報によって表される操作の内容に基づいて補正の可否を判断し、補正が可能であると判断したときに、利用者の操作を表す情報を補正することとしたものである。
【００１１】
請求項７記載の発明は、プログラムであって、利用者の操作に応じた処理を実行する処理実行装置に接続されたコンピュータに、前記処理実行装置から操作画面の画像を受け入れる手順と、当該受け入れた操作画面画像を識別する識別子を発行する手順と、前記受け入れた操作画面画像と、当該操作画面画像を識別する識別子とを利用者側の装置に提供する手順と、利用者側の装置から、利用者の操作を表す情報とともに、当該操作が行われた時点での操作画面画像を識別する識別子を受信して、最後に発行した識別子と比較し、最後に発行した識別子と、利用者側の装置から受信した識別子とが一致するか否かにより、受信した、利用者の操作を表す情報を、前記処理実行装置に対して送信するか否かを判断する手順と、前記判断の結果、送出すると決定した場合に、利用者の操作を表す情報を前記処理実行装置へ提供する手順と、を実行させることとしたものである。
【発明の効果】
【００１２】
請求項１、２、７記載の発明によると、中継装置が、各利用者側の装置からの操作が競合しないよう、調停できる。
【００１３】
請求項３記載の発明によると、利用者側装置からの操作を補正して取り入れることで、操作が競合しないよう調停できる。
【００１４】
請求項４記載の発明によると、補正の要否を予め判断して、必要な場合に補正を行うので、補正を行う必要がない場合に処理を軽減できる。
【００１５】
請求項５記載の発明によると、利用者が行った操作の補正の要否を、操作画面画像への操作の内容に基づいて判断できる。
【００１６】
請求項６記載の発明によると、補正の可否を判断して、可能な場合に補正を行うので、補正ができない場合の処理を軽減できる。
【発明を実施するための最良の形態】
【００１７】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る処理実行システムは、図１に示すように、処理実行装置（サーバ）１と、中継装置２と、複数の利用者側装置（クライアント装置）３とを含んで構成されている。
【００１８】
ここでサーバ１は、ＣＰＵ（Central Processing Unit）などのプログラム制御デバイスを備え、クライアント装置３の利用者によって共用されるプログラム（共用プログラムと呼ぶ）の実行を行っている。また、このサーバ１は、この共用プログラムの操作画面の画像を生成する。そしてこの操作画面画像のデータを、中継装置２に対して送信している。なお、このサーバ１では、処理の進行に伴って操作画面画像を更新する。サーバ１は、所定のタイミングごとに（例えば定期的に）操作画面画像のデータを、中継装置２に対して送信する。
【００１９】
またサーバ１は、中継装置２から操作画面に対する操作を表す情報を受信して、当該受信した情報によって表される操作の内容に従って、共用プログラムの処理を行う。例えば利用者が、提供された操作画面画像に含まれるウィンドウを移動する操作などを行うと、当該操作を表す情報が中継装置２を介してサーバ１に伝達され、サーバ１が当該ウィンドウの移動操作に応じた処理を実行することになる。
【００２０】
中継装置２は、図２に例示するように、制御部２１と、記憶部２２と、通信部２３とを含んで構成される。ここで制御部２１は、ＣＰＵ（Central Processing Unit）などのプログラム制御デバイスであり、記憶部２２に格納されたプログラムに従って動作する。
【００２１】
この制御部２１は、サーバ１が送信するごとに、操作画面画像を受け入れる。そして制御部２１は、操作画面画像が更新されているか否かを調べ、更新されていれば最後に受信した操作画面画像のデータに固有の識別子（画像識別子）を発行する。
【００２２】
一方、制御部２１は、共用プログラムの利用を希望する利用者側のクライアント装置３から、予めクライアント装置３のアドレス情報を受信して、記憶部２２に蓄積して記憶している。そして、この蓄積して記憶しているアドレス情報（クライアント装置３）宛に、操作画面画像のデータと、当該データに対応して発行した画像識別子とを関連づけて送信する。以下、このアドレス情報の蓄積を行ったクライアント装置３を登録クライアント装置と呼ぶ。
【００２３】
さらに制御部２１は、クライアント装置３から、利用者が操作の対象とした画像識別子とともに、利用者の操作を表す情報を受け入れる。そして、ここで受け入れた画像識別子に基づいて、当該画像識別子とともに受け入れた利用者の操作を表す情報を、サーバ１へ送出するか否かを判断し、この判断の結果、送出すると決定した場合に、利用者の操作を表す情報を、サーバ１へ送信する。この制御部２１の動作については、後に詳しく述べる。
【００２４】
記憶部２２は、ＲＡＭ（Random Access Memory）等の記憶素子やハードディスクなどを含んで構成される。この記憶部２２には、制御部２１によって実行されるプログラムが格納されている。このプログラムは、ＤＶＤ−ＲＯＭなど、コンピュータ可読な記録媒体に格納されて提供され、この記憶部２２に複写されたものであってもよい。さらに、この記憶部２２は、制御部２１のワークメモリとしても動作する。
【００２５】
通信部２３は、例えばネットワークインタフェースであり、ネットワークなどの通信手段を介して、サーバ１やクライアント装置３との間で通信可能に接続されている。この通信部２３は、制御部２１から入力される指示に従って、指定されたアドレス情報宛にデータを送出する。また、ネットワークなどを介して到来するデータ等を受信して、制御部２１に出力する。
【００２６】
クライアント装置３は、パーソナルコンピュータなどのコンピュータデバイスであり、ＣＰＵなどのプログラム制御デバイスや、メモリ等の記憶デバイス、ディスプレイなどの表示装置、利用者の操作を受け入れる入力装置などを含んで構成される。
【００２７】
このクライアント装置３は、中継装置２から操作画面画像とともに、当該操作画面画像に関連する画像識別子を受信する。そしてクライアント装置３は、当該最後に受信した画像識別子を、対象識別子として記憶デバイスに記憶しておく。また、最後に受信した操作画面画像を、ディスプレイ等に表示する。また、このクライアント装置３は、表示した操作画面画像に対して利用者が入力装置を用いて行った操作を受け入れ、当該受け入れた操作を表す情報を生成する。そして記憶デバイスに記憶している対象識別子とともに、当該操作を表す情報を、中継装置２へ送信する。
【００２８】
次に本実施の形態の中継装置２の制御部２１の動作について述べる。この制御部２１は、記憶部２２に格納されたプログラムに従って動作し、機能的には、図３に示すように、画像中継部３１と、状態管理部３２と、入力中継部３３と、衝突判定部３４と、操作補正部３５と、操作履歴記憶部３６とを含むものとして機能する。
【００２９】
画像中継部３１は、サーバ１が操作画面画像のデータを送信するごとに当該データを受け入れる。そして当該受け入れた操作画面画像のデータが、前回受け入れた操作画面画像のデータから更新されたものであるか否かを判断する。この判断は例えば最後に受け入れた操作画面画像と、前回受け入れた操作画面画像との画像間の差分を検出することで行うことができる。すなわち、差分があれば更新がされたと判断し、差分がなければ更新はされなかったと判断するのである。
【００３０】
画像中継部３１は、更新がされたと判断したときには、状態管理部３２に対して、更新後の操作画面画像を出力し、当該更新後の操作画面画像に対する画像識別子の発行を求める。画像中継部３１は、状態管理部３２から画像識別子の入力を受けて、更新後の操作画面画像と、それに対応して発行された画像識別子とをクライアント装置３へ送信する。
【００３１】
状態管理部３２は、画像中継部３１から画像識別子の発行要求を受けて、固有の画像識別子を発行する。そして当該発行した画像識別子を、画像中継部３１に対して出力する。また、状態管理部３２は、過去に発行した画像識別子と、それに対応する操作画面画像とを関連づけて記憶しておく。この操作画面画像は、必ずしも過去にサーバ１から受信したすべての操作画面画像を記憶しておく必要はなく、最近更新された所定数個分を記憶しておけばよい。
【００３２】
入力中継部３３は、クライアント装置３から、クライアント装置３の利用者が操作の対象とした画像識別子とともに、利用者の操作を表す情報を受け入れる。ここで利用者の操作を表す情報は、例えば、利用者によるキー入力操作であれば入力された文字の情報を含む。また利用者によるマウスなどのポインティングデバイスの操作であれば、ポインタの移動位置を表す座標情報や、マウスのクリックボタンが押下された位置を表す座標情報、マウスのクリックボタンがリリースされた位置を表す座標情報などの情報である。
【００３３】
入力中継部３３は、受け入れた画像識別子と、それに関連して発行された固有の操作識別子とを衝突判定部３４に出力する。入力中継部３３は、衝突判定部３４が操作識別子とともに衝突なしとの判定を出力したときには、当該操作識別子に対応する利用者の操作を表す情報を、サーバ１へ送信する。
【００３４】
また、この入力中継部３３は、衝突判定部３４が操作識別子とともに衝突が生じたとの判定を出力したときには、当該操作識別子に対応する画像識別子と利用者の操作を表す情報とを、補正対象として操作補正部３５に対して出力する。この場合、入力中継部３３は、操作補正部３５から補正された操作の結果と、補正ができなかったことを表す情報と、のいずれかの入力を受ける。入力中継部３３は、補正された操作の結果を受け入れたときには、当該補正された操作の結果を、サーバ１に送出する。また、補正ができなかったことを表す情報の入力を受けると、入力中継部３３は、当該補正できなかった操作の送信元であるクライアント装置３へ、操作が行えなかったことを表す情報を送出する。
【００３５】
このとき入力中継部３３は、操作履歴記憶部３６に指示して、操作識別子と、最後に発行された画像識別子と、利用者の操作を表す情報あるいは補正された操作を表す情報とを関連づけて、図４に示すような操作中継データベースとして記憶部２２に蓄積させる。すなわち、この操作中継データベースには、各操作画面画像に対応してサーバ１へ中継した操作が蓄積して記録される。
【００３６】
衝突判定部３４は、入力中継部３３から画像識別子の入力を受けると、この入力された画像識別子と、状態管理部３２が最後に発行した画像識別子とを比較する。衝突判定部３４は、この比較の結果、入力中継部３３から入力された画像識別子と、状態管理部３２が最後に発行した画像識別子とが一致している場合は、衝突なしと判定して、画像識別子とともに入力された操作識別子と、当該判定の結果とを入力中継部３３に出力する。
【００３７】
また、衝突判定部３４は、入力中継部３３から入力された画像識別子と、状態管理部３２が最後に発行した画像識別子とが一致していない場合は、衝突が生じたと判定して、画像識別子とともに入力された操作識別子と、衝突が生じた旨の判定とを入力中継部３３に出力する。
【００３８】
操作補正部３５は、入力中継部３３から、画像識別子と利用者の操作を表す情報とを補正対象として受け入れると、当該補正対象となった操作の内容の補正の可否、及び要否を判断する。
【００３９】
一例として、この操作補正部３５は、補正対象となった操作が、予め補正可能と定められた操作であるか否かによって補正の可否を判断する。より具体的な例として、マウスなどのポインティングデバイスの操作を、予め補正可能な操作として定められておくものとする。この場合は、補正対象となった操作が、クリックなど、ポインティングデバイスの操作であれば、操作補正部３５は補正可能と判断する。またこの場合、補正対象となった操作が、ポインティングデバイスの操作でないときには、操作補正部３５は補正不能と判断し、その旨を表す情報を、衝突判定部３４に出力する。
【００４０】
さらに、操作補正部３５は、補正対象となった操作が行われた時点での操作画面画像と、当該操作を受け入れたときにサーバ１が提供している操作画面画像との画像の差分に基づいて、補正の可否及び要否を判断する。
【００４１】
すなわち操作補正部３５は、入力を受け入れた補正対象の画像識別子に関連づけて記憶されている操作画面画像を読み出す。ここで読み出した操作画面画像を、以下区別のために操作時画面画像と呼ぶ。
【００４２】
また、操作補正部３５は、状態管理部３２が最後に発行した画面識別子に関連づけて記憶されている操作画面画像を読み出す。ここで読み出した操作画面画像を、以下「最新画面画像」と呼ぶ。そして操作補正部３５は、読み出した操作時画面画像と最新画面画像との画像の差分を検出する。
【００４３】
具体的な例を示すため、図５に示すように、画面識別子（ＩＤ）が「ｎ」の状態にあるとき、ウィンドウが画面やや左寄りに表示されており（Ａ）、ある利用者Ｘの操作によって、このウィンドウが画面やや右寄りに移動されて（Ｂ）、操作画面画像が更新され、新たな画面識別子「ｎ＋１」に関連づけられた例を以下に説明する。
【００４４】
この例において、操作画面画像の更新後に、画面識別子「ｎ」の操作画面に対して、利用者Ｘとは別の利用者Ｙからの操作を受け入れた場合、衝突判定部３４が衝突が発生したと判断する。そして操作補正部３５が、当該利用者Ｙの操作に対する補正の可否及び要否を判断することになる。
【００４５】
操作補正部３５は、利用者Ｙからの操作が補正可能であると判断すると、操作時画面画像（画面識別子「ｎ」）と最新画面画像（画面識別子「ｎ＋１」）とを読み出して、その差分画像（図５の（Ｃ））を生成する。ここで差分画像は、例えば操作時画面画像と最新画面画像との間で相違があった部分（以下差分領域と呼ぶ）を所定色で塗りつぶした画像である。
【００４６】
操作補正部３５は、補正対象となった利用者の操作が、ここで検出された差分領域において行われたものであるか否かを判断する。ここでは操作補正部３５は、ポインティングデバイスの操作を補正可能な操作として判断することとしているので、操作補正部３５は、ポインティングデバイスの操作が行われた位置を表す座標が、この差分領域に含まれているときに、補正を要すると判断することとなる。
【００４７】
なお、例えばウィンドウの移動操作は、マウスポインタのある位置でクリックボタンを押下し、この押下状態を維持したまま、マウスポインタを移動し、その後クリックボタンを放すという操作（ドラッグ操作）で行われる。このように補正対象の操作がドラッグ操作であるときには、操作補正部３５は、このドラッグ操作でのクリック位置（移動前のマウスポインタの座標）が、差分領域に含まれているか否かを判断すればよい。
【００４８】
すなわちここでの例によれば、操作補正部３５は、ポインティングデバイスの操作を行った位置（操作位置座標）が、差分領域に含まれていないときには、補正不要と判断して、その旨を表す情報を、衝突判定部３４に出力する。また、操作位置座標が差分領域に含まれていた場合は、補正を要すると判断して、補正対象の操作についての補正処理を開始する。
【００４９】
補正処理においては、操作補正部３５は、記憶部２２の操作中継データベースから、操作時画面画像の画面識別子に関連づけられた利用者の操作の情報を読み出す。ここで読み出した操作の情報は、今回の補正の原因となった操作である。そこで以下、この操作の情報を、補正原因操作情報と呼ぶ。
【００５０】
操作補正部３５は、補正原因操作情報と差分領域とに基づいて、補正対象の操作を補正可能か否かを判断する。例えば、操作補正部３５は、補正原因操作情報が、マウスドラッグの操作であり、かつそのドラッグの始点と終点とが、ともに差分領域内に含まれる場合に補正対象の操作を補正可能と判断し、それ以外の場合は補正不能と判断する。そして補正不能と判断したときは、操作補正部３５は、補正不能である旨を表す情報を衝突判定部３４に出力する。
【００５１】
上述の条件は、すなわち、ウィンドウの移動操作に対応する場合であり、操作補正部３５は、この場合に、補正対象の操作が補正可能であると判断することになる。そして補正可能と判断すると、補正対象の操作におけるドラッグの開始点に、補正原因操作情報において行われたウィンドウの移動量を加算する。
【００５２】
具体的な例として、補正原因操作情報が、座標（ｘ0，ｙ0）から座標（ｘ1，ｙ1）までのドラッグ操作であり、これによってウィンドウが移動されているとする。一方、補正対象の操作が座標（ｘs，ｙs）から座標（ｘe，ｙe）までのドラッグ操作であるとする。このとき、操作補正部３５は、補正対象の操作を、座標（ｘs＋（ｘ1−ｘ0），ｙs＋（ｙ1−ｙ0））から座標（ｘe，ｙe）までのドラッグ操作となるよう補正し、当該補正の結果を衝突判定部３４に出力する。
【００５３】
操作時画面画像と最新画面画像の画面識別子が２以上離れた値である場合は、操作時画面画像の画面識別子が最新画面画像の画面識別子のひとつ前の値になるまで、操作時画面画像の画面識別子の値を１ずつ増やしながら上述の操作補正を繰り返し行う。すなわち、時間的に古い操作履歴から順に補正して、最新画面画像に適用できる状態にする。
【００５４】
操作履歴記憶部３６は、既に述べたように、入力中継部３３からの指示に従い、操作識別子と、最後に発行された画像識別子と、利用者の操作を表す情報とを関連づけて、図４に示したような操作中継データベースとして記憶部２２に蓄積する。
【００５５】
本実施の形態の処理実行システムは、上述の構成を有しており、次のように動作する。次の動作例の説明では、２つのクライアント装置３ａ，３ｂがサーバ１上で動作するアプリケーションプログラムを操作する場合を例として説明する。
【００５６】
また、当初は、図６（ａ）に例示するように、２つのウィンドウ（Ｗ１，Ｗ２）が表示された操作画面画像（画像識別子（以下、及び図面においてはＩＤとする）＝１）がサーバ１より提供されているものとする。このとき、中継装置２は、この操作画面画像をＩＤとともに各クライアント装置３ａ，３ｂに提供している。
【００５７】
ここで図７に示すように、クライアント装置３ａの利用者（区別のため第１の利用者と呼ぶ）が、ウィンドウＷ２を閉じる操作を行う（Ｓ１）と、クライアント装置３ａは、ウィンドウＷ２を閉じる操作を表す情報（例えばウィンドウＷ２上にある、ウィンドウを閉じるボタンをクリックしたことを表す情報）と、ＩＤ（＝１）とを、中継装置２へ送出する（Ｓ２）。
【００５８】
中継装置２では、最後に発行したＩＤと、受信したＩＤとを比較する（Ｓ３）。ここでは各ＩＤが一致しているので（一致していないときの動作についてはここでは省略する）、受信した操作を表す情報を、サーバ１へ送出する（Ｓ４）。
【００５９】
サーバ１では、ウィンドウＷ２を閉じる操作を受けて、ウィンドウＷ２を閉じ（Ｓ５）、ウィンドウＷ２を閉じた後の操作画面画像（図６（ｂ））を送出する（Ｓ６）。中継装置２では、この操作画面画像に対して新たなＩＤ＝２を発行する。そして、クライアント装置３ａ，３ｂへ配信する（Ｓ７）。
【００６０】
ところが、この配信を受けるまでの間に、クライアント装置３ｂの利用者（区別のため第２の利用者と呼ぶ）がウィンドウＷ２を移動する操作を行う（Ｓ１１）と、クライアント装置３ｂは、最後に受信したＩＤ（＝１）と、当該ウィンドウＷ２を移動する操作を表す情報とを中継装置２へ送出する（Ｓ１２）。中継装置２では、最後に発行したＩＤと、受信したＩＤとを比較し（Ｓ１３）、これらが一致しないので、受信したＩＤ＝１に対応する操作画面画像と、現在のＩＤ＝２に対応する操作画面画像との差分画像（図６（ｃ））を生成する（Ｓ１４）。この差分画像は一般に、ウィンドウＷ２の部分が差分領域として所定色に塗りつぶされた画像となる。
【００６１】
中継装置２は、このウィンドウＷ２があった差分領域内で第２の利用者によるドラッグ操作の始点があることを検出し、補正を要すると判断する（Ｓ１５）。さらに中継装置２は、ＩＤ＝１において行われた操作（ウィンドウＷ２上にあった、ウィンドウを閉じるボタンをクリックしたことを表す操作）を記憶しており、この記憶している内容と、差分画像とを参照して、差分画像において差分が生じている領域内でのクリックがあったことを検出する。ここでは、補正原因操作情報が差分画像内に始点及び終点を有するドラッグ操作である場合のみ補正可能であるとすると、中継装置２は、この第２の利用者の操作（補正対象の操作）は、補正不能であると判断して（Ｓ１６）、その旨を表す情報をクライアント装置３ｂへ伝達する（Ｓ１７）。クライアント装置３ｂでは、この情報を受けて、「操作に失敗しました」のようなメッセージを表示してもよい。
【００６２】
なお、処理Ｓ１５において、例えばウィンドウＷ２があった差分領域内で第２の利用者によるドラッグ操作の始点がない場合（第２の利用者の操作がウィンドウＷ２の移動操作でなかった場合）など、第２の利用者の操作が差分領域に関わるものでない場合は、当該第２の利用者の操作をそのままサーバ１へ送出することになる。
【００６３】
さらにここで図８に示すように、第１の利用者が、ウィンドウＷ１を移動する操作を行う（Ｓ２１）と、クライアント装置３ａは、ウィンドウＷ１を移動する操作を表す情報（ウィンドウＷ１上のいずれかの点から、他の点までマウスをドラッグする操作を表す情報）と、操作開始時のＩＤ（＝２）とを、中継装置２へ送出する（Ｓ２２）。
【００６４】
中継装置２では、最後に発行したＩＤと、受信したＩＤとを比較する（Ｓ２３）。ここでは各ＩＤが一致しているので、受信した操作を表す情報を、サーバ１へ送出する（Ｓ２４）。
【００６５】
サーバ１では、ウィンドウＷ１を移動する操作を受けて、ウィンドウＷ１を移動し（Ｓ２５）、ウィンドウＷ１を移動した後の操作画面画像（図６（ｄ））を送出する（Ｓ２６）。中継装置２では、この操作画面画像に対して新たなＩＤ＝３を発行する。そして、クライアント装置３ａ，３ｂへ配信する（Ｓ２７）。
【００６６】
この配信を受けるまでの間に、ＩＤ＝２の操作画面画像において、第２の利用者がウィンドウＷ１を移動する操作を行う（Ｓ３１）と、クライアント装置３ｂは、最後に受信したＩＤ（＝２）と、当該ウィンドウＷ１を移動する操作を表す情報とを中継装置２へ送出する（Ｓ３２）。中継装置２では、最後に発行したＩＤと、受信したＩＤとを比較し（Ｓ３３）、これらが一致しないので、受信したＩＤ＝２に対応する操作画面画像と、現在のＩＤ＝３に対応する操作画面画像との差分画像（図６（ｅ））を生成する（Ｓ３４）。この差分画像は一般に、ウィンドウＷ１の移動前の部分と移動後の部分とのいずれか一方に対応する領域が所定色に塗りつぶされた画像となる。
【００６７】
中継装置２は、この差分画像の領域内に第２の利用者によるドラッグ操作の始点があることを検出し、補正を要すると判断する（Ｓ３５）。さらに中継装置２は、ＩＤ＝２において行われた操作（第１の利用者がウィンドウＷ１を移動した操作）を記憶しており、この記憶している内容と、差分画像とを参照して、差分画像内に始点及び終点を有するドラッグ操作があったことを検出する。中継装置２は、この検出結果に基づき補正可能であると判断する（Ｓ３６）。ここで中継装置２は、第１の利用者が行ったウィンドウＷ１の移動量だけ、第２の利用者のドラッグ操作の始点を移動する（補正処理：Ｓ３７）。すなわち、第２の利用者が図６（ｆ）の点Ａにてドラッグを開始したとすると、第１の利用者によるウィンドウＷ１の移動量だけ、この点Ａを移動して、点Ａ′とする。一方、ドラッグの終点である点Ｂは移動しない。
【００６８】
これにより、第２の利用者によるウィンドウＷ１の移動操作が点Ａ′から点Ｂへの移動操作に補正され、この補正された操作を表す情報がサーバ１へ送出される（Ｓ３８）。サーバ１では、ウィンドウＷ１をさらに移動する処理を行い（Ｓ３９）、移動後の操作画面画像（図６（ｇ））を中継装置２へ送出する（Ｓ４０）。
【００６９】
中継装置２では、この操作画面画像に対して新たなＩＤ＝４を発行する。そして、クライアント装置３ａ，３ｂへ配信する（Ｓ４１）。
【００７０】
このように本実施の形態によると、中継装置２が、各利用者からの操作が競合しないよう、調停することになる。
【００７１】
なお、ここまでの説明では、中継装置２は、例えば図８の処理Ｓ３４で生成した差分画像の領域内に、受信した利用者の操作が関わっている場合に、補正可能であれば補正を行うものとしている（処理Ｓ３６からＳ３８）。しかしながら、例えば差分画像の領域内に、受信した利用者の操作が関わっていて補正を要すると判断されたときには、利用者に対してエラーを報知することとし、補正を要しないときにのみ利用者の操作をサーバ１へ伝達するとしてもよい。この場合、操作履歴の記憶を行う必要もないので、機能的に操作履歴記憶部３６は必ずしも必要でない。
【図面の簡単な説明】
【００７２】
【図１】本発明の実施の形態に係る処理実行システムの構成例を表すブロック図である。
【図２】本発明の実施の形態に係る中継装置の構成例を表すブロック図である。
【図３】本発明の実施の形態に係る中継装置の例を表す機能ブロック図である。
【図４】本発明の実施の形態に係る中継装置が保持する操作中継データベースの内容例を表す説明図である。
【図５】本発明の実施の形態に係る中継装置が中継する操作画面画像と、本発明の実施の形態に係る中継装置が生成する差分画像の例とを表す説明図である。
【図６】本発明の実施の形態に係る処理実行システムの動作例を表す説明図である。
【図７】本発明の実施の形態に係る処理実行システムの動作例を表すフローチャート図である。
【図８】本発明の実施の形態に係る処理実行システムの別の動作例を表すフローチャート図である。
【符号の説明】
【００７３】
１  サーバ、２  中継装置、３  クライアント装置、２１  制御部、２２  記憶部、２３  通信部、３１  画像中継部、３２  状態管理部、３３  入力中継部、３４  衝突判定部、３５  操作補正部、３６  操作履歴記憶部。
【図１】
2008210317.tif 000003
【図２】
2008210317.tif 000004
【図３】
2008210317.tif 000005
【図４】
2008210317.tif 000006
【図５】
2008210317.tif 000007
【図６】
2008210317.tif 000008
【図７】
2008210317.tif 000009
【図８】
2008210317.tif 000010