(57)【要約】【課題】操作入力を受け付ける操作機と操作入力に応じた情報処理を実行する被操作機との通信に異常が発生した場合であっても操作入力に応じた情報処理を継続する。【解決手段】ネットワークを介してリモート操作を行なうコンピュータ間の情報処理において、被操作機で実行中のプロセス情報のすべて又は一部と、プロセスが使用するデータを操作機に送信しておき、ネットワークの接続状態が中断又は切断した場合に、送信しておいたプロセス情報を用いて操作機で処理を続行する。  また通信が正常に戻ったことを検知した場合には、操作機で実行中のプロセス情報およびプロセスが使用するデータを被操作機に送信し、被操作機は、受信したプロセス情報およびプロセスが使用するデータを用いて情報処理プログラムの実行を継続する。【選択図】図１
2008097344.tif 000002
【特許請求の範囲】
【請求項１】
第１の情報処理装置と第２の情報処理装置とを含んで構成される情報処理システムであって、
前記第２の情報処理装置において実行されるプロセスに引き渡す入力データを前記第２の情報処理装置に送信する入力送信部と、
前記第２の情報処理装置から受信した処理結果を出力するユーザインタフェースと、
前記第２の情報処理装置との間の通信を監視する監視部と、
前記第２の情報処理装置との間の通信に異常が発生したことを検知した場合に、前記第２の情報処理装置から受信した、前記第２の情報処理装置のプロセスの実行に用いられる構成データに基づいて、前記プロセスの実行を開始する実行監視部と、
を有する第１の情報処理装置と、
前記入力データを受信して、前記入力データを前記プロセスに引き渡すことにより実行される処理の結果を前記第１の情報処理装置に送信する送信部と、
前記プロセスの実行に用いられる前記構成データを前記第１の情報処理装置に送信する構成データ管理部と、
を有する第２の情報処理装置と、
を含んで構成される情報処理システム。
【請求項２】
請求項１に記載の情報処理システムであって、
前記実行監視部は、前記通信が正常に戻ったことを検知した場合には、記憶している前記構成データを前記第２の情報処理装置に送信し、
前記構成データ管理部は、前記第１の情報処理装置から送信される前記構成データを受信して記憶すると共に、当該構成データに基づいて前記プロセスの実行を開始する
ことを特徴とする情報処理システム。
【請求項３】
請求項１に記載の情報処理システムであって、
前記各プロセスの前記構成データには、各プロセスを実行することにより実現される各機能を実現する複数のプログラムモジュールが含まれ、
前記第２の情報処理装置の記憶部は、各プログラムモジュールのデータサイズを記録し、
前記構成データ管理部は、前記第１の情報処理装置に前記構成データを送信するに際し、前記第１の情報処理装置に送信されるプログラムモジュールのデータサイズの合計値が所定値を超えないように、当該構成データを前記第１の情報処理装置に送信する
ことを特徴とする情報処理システム。
【請求項４】
請求項２に記載の情報処理システムであって、
前記監視部は、前記第２の情報処理装置との間の通信に異常が発生したことを所定期間検知しない場合に、前記第２の情報処理装置との間の通信が正常に戻ったことを検知する
ことを特徴とする情報処理システム。
【請求項５】
請求項１に記載の情報処理システムであって、
前記実行監視部は、前記第１の情報処理装置が備えるメモリの空き容量を監視し、前記空き容量を所定値と比較し、前記比較の結果に応じて、前記第２の情報処理装置から送信される前記構成データの前記メモリへの書き込みを中止する
ことを特徴とする情報処理システム。
【請求項６】
請求項１に記載の情報処理システムであって、
前記実行監視部は、前記第１の情報処理装置の操作者を特定するための認証装置が装着されているか否かを監視し、前記認証装置が取り外されたことを検知した場合には、前記各プロセスの実行を中止する
ことを特徴とする情報処理システム。
【請求項７】
第１の情報処理装置と第２の情報処理装置とを含んで構成される情報処理システムにおける情報処理方法であって、
前記第１の情報処理装置は、前記第２の情報処理装置において実行されるプロセスに引き渡す入力データを前記第２の情報処理装置に送信し、前記第２の情報処理装置から受信した処理結果をユーザインタフェースに出力するものであり、
前記第２の情報処理装置は、前記入力データを受信して、前記入力データを前記プロセスに引き渡すことにより実行される処理の結果を前記第１の情報処理装置に送信するものであり、
前記第１の情報処理装置は、前記第２の情報処理装置との間の通信を監視し、
前記第２の情報処理装置は、前記プロセスの実行に用いられる構成データを前記第１の情報処理装置に送信し、
前記第１の情報処理装置は、前記構成データを受信して記憶し、
前記第１の情報処理装置は、前記第２の情報処理装置との間の通信に異常が発生したことを検知した場合に、記憶している前記構成データに基づいて、前記プロセスの実行を開始すること
を特徴とする情報処理方法。
【請求項８】
請求項７に記載の情報処理方法であって、
前記第１の情報処理装置が、前記通信が正常に戻ったことを検知した場合には、記憶している前記構成データを前記第２の情報処理装置に送信し、
前記第２の情報処理装置が、前記第１の情報処理装置から送信される前記構成データを受信して記憶すると共に、当該構成データに基づいて前記プロセスの実行を開始する
ことを特徴とする情報処理方法。
【請求項９】
請求項７に記載の情報処理方法であって、
前記各プロセスの前記構成データには、各プロセスを実行することにより実現される各機能を実現する複数のプログラムモジュールが含まれ、
前記第２の情報処理装置が、各プログラムモジュールのデータサイズを記憶しており、前記第１の情報処理装置に前記構成データを送信するに際し、前記第１の情報処理装置に送信されるプログラムモジュールのデータサイズの合計値が所定値を超えないように、当該構成データを前記第１の情報処理装置に送信する
ことを特徴とする情報処理方法。
【請求項１０】
請求項７に記載の情報処理方法であって、
前記第１の情報処理装置が、前記第２の情報処理装置から所定期間データが送信されてこない場合に、前記第２の情報処理装置との間の通信に異常が発生したことを検知する
ことを特徴とする情報処理方法。
【請求項１１】
請求項８に記載の情報処理方法であって、
前記第１の情報処理装置が、前記第２の情報処理装置から所定期間データが送信されてこない場合に、前記第２の情報処理装置との間の通信に異常が発生したことを検知し、前記第２の情報処理装置との間の通信に異常が発生したことを所定期間検知しない場合に、前記第２の情報処理装置との間の通信が正常に戻ったことを検知する
ことを特徴とする情報処理方法。
【請求項１２】
請求項７に記載の情報処理方法であって、
前記第１の情報処理装置が、前記第１の情報処理装置が備えるメモリの空き容量を監視し、前記空き容量を所定値と比較し、前記比較の結果に応じて、前記第２の情報処理装置から送信される前記構成データの前記メモリへの書き込みを中止する
ことを特徴とする情報処理方法。
【請求項１３】
請求項７に記載の情報処理方法であって、
前記第１の情報処理装置が、前記第１の情報処理装置の操作者を特定するための認証装置が装着されているか否かを監視し、前記認証装置が取り外されたことを検知した場合には、前記各プロセスの実行を中止する
ことを特徴とする情報処理方法。
【請求項１４】
情報処理装置であって、
他の情報処理装置において実行されるプロセスに引き渡す入力データを前記他の情報処理装置に送信する入力送信部と、
前記他の情報処理装置から受信した、前記プロセスの実行結果を表示するユーザインタフェースと、
前記他の情報処理装置との間の通信を監視する監視部と、
前記他の情報処理装置から前記プロセスの実行に用いられる構成データを受信して記憶する記憶部と、
前記他の情報処理装置との間の通信に異常が発生したことを検知した場合に、記憶している前記構成データに基づいて、前記プロセスの実行を開始する実行監視部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、操作入力を受け付ける第１の情報処理装置と、操作入力に応じた情報処理を実行する第２の情報処理装置との間の通信に異常が発生した場合であっても、操作入力に応じた情報処理を継続することが可能な情報処理システム、情報処理方法、情報処理装置に関する。
【背景技術】
【０００２】
ノートＰＣ（Personal Computer）や低性能ＰＣ等からネットワークを介して高性能ＰＣやサーバに接続してリモート操作をする技術が知られている。
【０００３】
近年、セキュリティや情報漏洩防止の観点から、操作者が操作する第１の情報処理装置(以下、操作機又はユーザ計算機とも記す)にはハードディスク等の記憶装置を搭載せず、操作者がキーボードやマウスなどから操作情報を入力すると、ネットワークを介してリモートにある第２の情報処理装置(以下、被操作機又はホスト計算機とも記す)に操作情報を送信し、被操作機で操作情報に対する情報処理を行い、情報処理の結果を画像データとして操作機に送信し、操作機のディスプレイに画像データを表示する情報処理システムが実用化されている。
【０００４】
このような情報処理システムでは、操作機は操作情報の入力と情報処理結果の表示のみを行い、操作機には情報が保存されないため、万が一操作機の紛失や盗難が発生しても情報漏洩を防ぐことができる。
【０００５】
このような情報処理システムでは、操作機で情報処理を実行せず、ネットワークを介したリモートの被操作機で情報処理を実行するため、ネットワークの接続が中断または切断すると情報処理ができない。例えば、操作機から携帯電話網を介して被操作機に接続してリモート操作をしているときに、操作機が携帯電話網の電波圏外に移動すると、接続が切断してしまうため、それ以降の作業を継続できなくなる。このため、例えば電車内でリモート操作をする場合は、トンネルを通過する度に接続が途切れてリモート操作が中断してしまうことにもなる。
【０００６】
このため、ネットワークの接続が中断または切断しても継続して作業を行なうことを可能とする技術が開発されている（例えば特許文献１、特許文献２、特許文献３参照）。
【特許文献１】特開２０００−１４８５７２号公報
【特許文献２】特開平６−２３０９９５号公報
【特許文献３】特開平１０−１４９３２６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１は、ネットワークの接続が切断している期間に操作者が入力した操作情報を操作機に蓄積し、ネットワークの接続が再開した際に、蓄積した操作情報を被操作機に送信する技術に関連する。  
また特許文献２は、複数の計算機のＣＰＵ（Central Processing Unit）やメモリの動作を同期させ、複数の計算機の上で同じ処理が動くような二重化計算機システムに関する。
【０００８】
本発明は、操作機と被操作機との間の通信に異常が発生した場合であっても操作入力に応じた情報処理を継続することを可能とする情報処理システム、情報処理方法、情報処理装置を提供することを１つの目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するに、本実施形態は、第１の情報処理装置と第２の情報処理装置とを含んで構成される情報処理システムであって、前記第２の情報処理装置において実行されるプロセスに引き渡す入力データを前記第２の情報処理装置に送信する入力送信部と、前記第２の情報処理装置から受信した処理結果を出力するユーザインタフェースと、前記第２の情報処理装置との間の通信を監視する監視部と、前記第２の情報処理装置との間の通信に異常が発生したことを検知した場合に、前記第２の情報処理装置から受信した、前記第２の情報処理装置のプロセスの実行に用いられる構成データに基づいて、前記プロセスの実行を開始する実行監視部と、を有する第１の情報処理装置と、前記入力データを受信して、前記入力データを前記プロセスに引き渡すことにより実行される処理の結果を前記第１の情報処理装置に送信する送信部と、前記プロセスの実行に用いられる前記構成データを前記第１の情報処理装置に送信する構成データ管理部と、を有する第２の情報処理装置と、を含んで構成される情報処理システムに関する。
【００１０】
このような態様によって、第１の情報処理装置と第２の情報処理装置との間の通信に異常が発生した場合であっても操作入力に応じた情報処理を継続することが可能となる。例えば、操作者が出張先において第１の情報処理装置を用いてテキストデータの編集を行なっている場合に、第２の情報処理装置との間の通信が途絶えたとしても、それまで第２の情報処理装置上でテキストデータの編集のために実行されていたプロセスの構成データを第１の情報処理装置上にも記憶しておき、第１の情報処理装置においてそのプロセスの構成データの実行を開始することによって、操作者はテキストデータの編集を継続して行うことができるのである。もちろん、プロセスの構成データには処理中のデータも含まれているので、操作者は通信が途絶える直前の状態から継続してテキストデータの編集を継続することができる。
【００１１】
ここで、一般に、コンピュータで情報処理プログラムが実行される際には、ＯＳ（Operating System）がプロセスを生成し、ＯＳの管理するテーブルにプロセス情報が登録されると共に、実行コードやスタック、変数などのプロセスが使用するデータがメモリ上に配置される。マルチタスクＯＳでは、1つのプロセスが常に実行されているわけではなく、プロセスは実行状態、実行可能状態、実行待ち状態のいずれかの状態を取り、状態遷移を繰り返している。プロセスの状態が実行可能状態になった時には、ＣＰＵのレジスタ情報はＯＳが管理するプロセス情報に退避されている。したがって、プロセスが実行可能状態となったタイミングで、ＯＳが管理するプロセス情報、およびメモリ上に配置されたプロセスが使用するデータを取得して異なるコンピュータに登録すれば、異なるコンピュータ上にプロセスを、プロセスの実行途中の状態を含めて登録することができる。
【００１２】
本実施形態は、ネットワークを介してリモート操作を行うコンピュータ間の情報処理において、被操作機で実行中の情報処理プログラムのすべてまたは一部と、情報処理プログラムの実行状態、および前記情報処理プログラムが使用するデータを操作機に送信しておき、ネットワークの接続状態が中断または切断した場合に操作機の情報処理プログラムを実行可能にする。
【００１３】
また前記実行監視部は、前記通信が正常に戻ったことを検知した場合には、記憶している前記構成データを前記第２の情報処理装置に送信し、前記構成データ管理部は、前記第１の情報処理装置から送信される前記構成データを受信して記憶すると共に、当該構成データに基づいて前記プロセスの実行を開始するようにすることもできる。
【００１４】
本実施形態は、ネットワークの接続が再開した場合に、操作機で実行中の情報処理プログラムの実行状態、および情報処理プログラムが使用するデータを被操作機に送信し、被操作機は、受信した情報処理プログラムの実行状態、および情報処理プログラムが使用するデータを用いて情報処理プログラムの実行を継続する。  
このような態様によって、通信が正常に戻った場合には、操作入力に応じた情報処理を第２の情報処理装置に実行させる制御に戻すことが可能となる。
【００１５】
また前記各プロセスの前記構成データには、各プロセスを実行することにより実現される各機能を実現する複数のプログラムモジュールが含まれ、前記第２の情報処理装置の記憶部は、各プログラムモジュールのデータサイズを記録し、前記構成データ管理部は、前記第１の情報処理装置に前記構成データを送信するに際し、前記第１の情報処理装置に送信されるプログラムモジュールのデータサイズの合計値が所定値を超えないように、当該構成データを前記第１の情報処理装置に送信するようにすることもできる。  
このような態様によって、第２の情報処理装置から第１の情報処理装置に送信されるデータ量を抑制することが可能となる。プロセスの構成データのデータサイズはプロセスによっても異なるが、データサイズによっては通信回線を圧迫する可能性もある。このため、第１の情報処理装置に送信されるプログラムモジュールのデータサイズの合計値が所定値を超えないようにプロセスの構成データを第１の情報処理装置に送信する。ここで、各プログラムモジュールは、プロセスを実行することにより実現される各機能を実現するものであり、例えばＤＬＬ（Dynamic Link Library）等とすることができる。
【００１６】
また前記監視部は、前記第２の情報処理装置との間の通信に異常が発生したことを所定期間検知しない場合に、前記第２の情報処理装置との間の通信が正常に戻ったことを検知するようにすることもできる。  
このような態様によって、通信の状態が不安定であっても、第１の情報処理装置でプロセスの実行が継続され、情報処理を安定して継続することが可能となる。
【００１７】
また前記実行監視部は、前記第１の情報処理装置が備えるメモリの空き容量を監視し、前記空き容量を所定値と比較し、前記比較の結果に応じて、前記第２の情報処理装置から送信される前記構成データの前記メモリへの書き込みを中止するようにすることもできる。  
このような態様によって、例えば第１の情報処理装置が備えるメモリの空き容量が所定値よりも小さくなった場合にプロセスの構成データの書き込みを中止することにより、既にそのメモリに書き込まれたプロセスの構成データを保護することができるので、第１の情報処理装置が備えるメモリ容量が比較的小さな場合においても、情報処理を安定して実行することが可能となる。
【００１８】
また前記実行監視部は、前記第１の情報処理装置の操作者を特定するための認証装置が装着されているか否かを監視し、前記認証装置が取り外されたことを検知した場合には、前記各プロセスの実行を中止するようにすることもできる。  
このような態様によって、認証装置が装着され操作者が特定可能な場合にのみ、第１の情報処理装置による情報処理が実行されるようにできるので、第三者による不正な操作を受け付けないようにすることが可能となる。これにより、情報の漏洩を防止し、またセキュリティを確保することが可能となる。
【発明の効果】
【００１９】
操作入力を受け付ける第１の情報処理装置と、操作入力に応じた情報処理を実行する第２の情報処理装置との間の通信に異常が発生した場合であっても、操作入力に応じた情報処理を継続することが可能となる。
【発明を実施するための最良の形態】
【００２０】
以下、実施形態を、図面を参照しながら説明する。
【００２１】
本実施形態に係る情報処理システム１０００の全体構成を図１に示す。  
情報処理システム１０００は、ユーザ計算機１０１とホスト計算機１２１とがネットワーク１４０を介して通信可能に接続されて構成される。なおユーザ計算機１０１は、特許請求の範囲に記載の第１の情報処理装置に相当する。
【００２２】
本実施形態にかかる情報処理システム１０００においては、操作者が、キーボードやマウスなどを用いてユーザ計算機１０１に操作情報（入力データ）を入力すると、ホスト計算機１２１にその操作情報が送信される。そしてホスト計算機１２１は、その操作情報に対する情報処理を行い情報処理の結果を画像データとしてユーザ計算機１０１に送信する。ユーザ計算機１０１は、ディスプレイに画像データを表示する。
【００２３】
ユーザ計算機１０１は、操作者により操作されるコンピュータである。例えばノート型パーソナルコンピュータにより構成することができる。  
ユーザ計算機１０１は、ＣＰＵ１８０、メモリ１０２、入力転送装置１１１、画像受信装置１０９を備える。またユーザ計算機１０１は、入力装置１１３、認証装置１１４、表示装置１１２と接続されている。
【００２４】
なお、本実施形態に係るユーザ計算機１０１はハードディスク装置を備えていない。これにより、不正な情報の持ち出しや、盗難時の情報漏洩などを防止している。もちろんユーザ計算機１０１はハードディスク装置を備えていても良い。
【００２５】
ＣＰＵ１８０はユーザ計算機１０１の全体の制御を司る装置である。ＣＰＵ１８０は、認証装置１１４に記憶されたユーザ計算機制御プログラム１６０をメモリ１０２のユーザ側実行メモリ領域１０６に読み出して実行する。これによりユーザ計算機１０１としての各種機能が実現される。例えば、図１に示すユーザ側ＡＰ管理部１０７やユーザ側処理部１０８、管理マネージャ１１０が実現される。ユーザ計算機制御プログラム１６０は、オペレーティングシステム（以下、ＯＳとも記す）として機能するプログラムにより実現することができる。
【００２６】
なお図１には、メモリ１０２に、ユーザ側プロセス管理テーブル１０３やユーザ側コピー済プロセステーブル１０４が記憶されている様子が示されている。これらのテーブルは、ユーザ計算機１０１に入力された操作情報に応じてホスト計算機１２１で実行されるプロセスをユーザ計算機１０１で実行する場合に参照されるテーブルである。詳細は後述する。
【００２７】
入力装置１１３は、キーボードやマウス、マイク等で構成され、操作者がユーザ計算機１０１に情報を入力する際のユーザインタフェースとして機能する装置である。  
表示装置１１２は、ディスプレイやスピーカ等で構成され、ホスト計算機１２１から受信した情報処理の実行結果などの情報を出力する際のユーザインタフェースとして機能する装置である。  
認証装置１１４は、ユーザ計算機１０１を操作する操作者を特定するための装置である。認証装置１１４は内部にＩＣカードを備えており、ＩＣカードには操作者を特定するための固有の認証情報やユーザ計算機制御プログラム１６０などが記録されている。
【００２８】
操作者は、ユーザ計算機１０１を使用する場合には、まず認証装置１１４をユーザ計算機１０１に装着あるいは接続する。そしてユーザ計算機１０１は所定の認証処理を実行し、操作者を認証する。認証をパスすると、ＣＰＵ１８０は、ユーザ計算機制御プログラム１６０をメモリ１０２に読み出して実行を開始する。これにより、操作者はユーザ計算機１０１を使用することができるようになる。
【００２９】
管理マネージャ１１０が、ユーザ計算機１０１に認証装置１１４が装着あるいは接続されたことを検出すると、ユーザ計算機１０１の表示装置１１２にパスワードを入力するためのダイアログを表示する。次に管理マネージャ１１０が、操作者が入力装置１１３を用いて入力したパスワードと認証装置１１４が持つ固有の認証情報とに基づいて、公開鍵暗号基盤等を用いてユーザ計算機１０１に装着されている認証装置１１４の認証を行なう。次に管理マネージャ１１０は、認証装置１１４を認証した場合は、当該認証装置１１４は認証済みであるという情報をメモリ１０２に記憶する。なお認証装置１１４は操作者と一対一に対応しており、異なる操作者は異なる認証装置１１４を持つ。
【００３０】
ユーザ計算機１０１からホスト計算機１２１のリモート操作を行う際には、まず上記操作者の認証処理を行い、その後ユーザ計算機１０１からホスト計算機１２１に対するリモート操作の接続認証を行う。操作者の認証とリモート操作の認証の両方にパスした場合には、操作者はリモート操作を行なうことが可能となる。
【００３１】
リモート操作では、操作者によりユーザ計算機１０１の入力装置１１３に入力された情報(以下、入力情報とも記す)は、入力転送装置１１１により捕捉される。そして入力転送装置１１１は、キーボード入力の場合はキーコード、マウス入力の場合は入力イベントを、ネットワーク１４０を経由してホスト計算機１２１に転送する。  
ホスト計算機１２１は、受信した入力情報に応じた情報処理を実行し、その処理結果を、ビットマップ形式またはJPEG形式等の画面表示データとしてユーザ計算機１０１に送信する。
【００３２】
ユーザ計算機１０１は、画像受信装置１０９が受信した上記画面表示データをユーザ計算機１０１の表示装置１１２に表示する。表示画像は、表示装置１１２の全画面に表示されてもよいし、一つのウインドウとして表示されてもよい。  
このようにして、操作者は、ユーザ計算機１０１で入力装置１１２を使用し、表示装置１１２に表示された画面を見ながら、ホスト計算機１２１上のアプリケーションを実行することができる。
【００３３】
ホスト計算機１２１は、操作者によってユーザ計算機１０１に入力された情報に応じた情報処理を実行し、その実行結果をユーザ計算機１０１に送信するコンピュータである。ホスト計算機１２１は、ＣＰＵ１７０、メモリ１２２、データ記憶装置１２８を備える。
【００３４】
ＣＰＵ１７０はホスト計算機１２１の全体の制御を司る装置である。ＣＰＵ１７０は、ハードディスク装置等により構成されるデータ記憶装置１２８に記憶されたホスト計算機制御プログラム１５０をメモリ１２２のホスト側実行メモリ領域１２５に読み出して実行する。これによりホスト計算機１２１としての各種機能が実現される。例えば、図１に示すホスト側ＡＰ管理部１２７やホスト側処理部１２６が実現される。ホスト計算機制御プログラム１５０は、オペレーティングシステムとして機能するプログラムにより実現することができる。
【００３５】
またＣＰＵ１７０がホスト計算機制御プログラム１５０を実行することにより、操作者によってユーザ計算機１０１に入力された情報に応じた情報処理を実行し、その実行結果をユーザ計算機１０１に送信する制御も可能となる。例えばホスト計算機１２１は、データ記憶装置１２８に記憶されたアプリケーションプログラム１２９やドキュメント１３３をメモリ１２２のホスト側実行メモリ領域１２５に読み出して実行し、ユーザ計算機１０１から送信されるコマンドやデータに応じた実行結果をユーザ計算機１０１に送信する。
【００３６】
通常、ホスト計算機１２１でアプリケーションプログラム１２９を実行してドキュメント１３３を編集する際には、ＯＳ（Operating System）によって概ね以下の処理が行われる。  
まず、ＯＳは、実行するアプリケーションプログラム１２９のプロセスを生成する。生成されたプロセスは、例えば図３に示すホスト側プロセス管理テーブル１２３に登録され、ＯＳにより管理される。ＣＰＵ１７０は、ＯＳによって生成された各プロセスを、順次切り替えながら実行する。
【００３７】
ホスト側プロセス管理テーブル１２３は、ホスト計算機１２１で実行される各プロセスのプロセス情報を記憶したテーブルである。ホスト側プロセス管理テーブル１２３は、”ＰＩＤ”欄、”状態”欄、”レジスタ”欄、”アドレス情報”欄を備える。
【００３８】
”ＰＩＤ”欄には、各プロセスを一意に識別するためのＰＩＤ（Process ID）が記載される。  
”状態”欄には、各プロセスの実行状態を示す情報が記載される。プロセスは、「実行中」、「実行可能」、「実行待ち」の各状態をとる。「実行中」は、ＣＰＵ１７０により実行されている状態を示す。「実行可能」は、ＣＰＵ１７０により順次実行される各プロセスのうち、「実行中」ではないプロセスがとる状態である。「実行可能」状態にあるプロセスは、ＣＰＵ１７０によって実行される順番が回ってくるのを待っている状態である。「実行待ち」は、ＣＰＵ１７０によって実行される順番が回ってこない状態である。例えばハードディスク等へのデータの入出力処理が発生し、その入出力処理の終了を待っている場合などにとる状態である。  
”レジスタ”欄には、ＣＰＵ１７０のレジスタに記憶されている情報が記載される。「実行中」の状態にあるプロセスが「実行可能」状態に遷移する際に、ＣＰＵ１７０のレジスタに記憶されている情報が”レジスタ”欄に記憶される。逆に、「実行可能」状態にあるプロセスが「実行中」状態に遷移する場合には、”レジスタ”欄に記憶されている情報がＣＰＵ１７０のレジスタに読み出される。  
”アドレス情報”欄には、プロセスの実行コード（プログラムコード）やスタック等のデータが記憶されているホスト側実行メモリ領域１２５のアドレスや、そのデータサイズ等が記録される。
【００３９】
プロセスの構成データは、プロセスの実行に用いられるデータであり、プロセスの実行コード（プログラムコード）や処理中のデータが含まれる。処理中のデータには、スタックに記憶されるデータや、ホスト側プロセス管理テーブル１２３の上記各欄に記憶されるデータ（プロセス情報）が含まれる。例えば、処理中のデータには、グローバル変数やドキュメント１３３を含んだデータ、ローカル変数や関数呼び出しの引数等を含んだスタック等が含まれる。
【００４０】
またプロセスの実行コードには、そのプロセスを実行することにより実現される各機能を実現する複数のプログラムモジュールが含まれることもある。一つのプログラムモジュールは、一つまたは複数の機能を持ち、プロセスにプログラムモジュールを追加することによってプロセスに機能を追加することができる。プログラムモジュールの一例としては、ＤＬＬ(ダイナミックリンクライブラリ)がある。
【００４１】
プロセスが複数のプログラムモジュールを含んで構成される場合には、ホスト側実行メモリ領域１２５も各プログラムモジュールの実行コード、データ、スタックを保持し、ホスト側プロセス管理テーブル１２３の”アドレス情報”欄には、ホスト側実行メモリ領域１２５のうち、それぞれのプログラムモジュールのデータが格納されている領域のアドレスやサイズ等の情報が記憶される。
【００４２】
プロセスの状態が「実行中」状態から「実行可能」状態になると、ＣＰＵ１７０のレジスタに記憶されている情報がプロセス管理テーブル１２３の”レジスタ”欄に退避される。図３には一つのプログラムモジュールによって構成されるプロセスを例に、ＯＳが管理するホスト側プロセス管理テーブル１２３にプロセス情報が登録され、ホスト側プロセス管理テーブル１２３の”アドレス情報”欄には、プロセスの実行コード、データ、スタック等のホスト側実行メモリ領域１２５におけるアドレス等の情報が記憶されている様子が示されている。
【００４３】
図２はホスト計算機１２１のデータ記憶装置１２８に格納されたコピー対象ＡＰ一覧テーブル１３０の一例である。コピー対象ＡＰ一覧テーブル１３０は、ユーザ計算機１０１への操作入力に応じてホスト計算機１２１で実行されるプロセスのうち、ユーザ計算機１０１へコピーするプロセスを管理するためのテーブルである。コピー対象ＡＰ一覧テーブル１３０は、”アプリケーション名”欄、”プロセス名”欄、”モジュール名”欄、”サイズ”欄、”優先順位”欄を備える。
【００４４】
以下では図２のコピー対象ＡＰ一覧テーブル１３０を作成する過程を説明する。ユーザがアプリケーションを実行するとプロセスが生成される。プロセス生成時には、実行メモリ領域に実行コード、データ、スタックが展開され、ホスト側プロセス管理テーブル１２３にプロセス情報が登録される。
【００４５】
このとき、登録されたプロセスのPIDを参照し、PIDと一意に対応するプロセス名をコピー対象ＡＰ一覧テーブル１３０のプロセス名に登録する。PIDとプロセス名は図示されていないテーブルにより、一対一に対応付けられている。
【００４６】
ホスト側プロセス管理テーブル１２３のアドレス情報には、プロセスのモジュール名と、モジュールが格納されたアドレスが登録されている。モジュールが格納されたアドレスの先頭位置と終了位置からモジュールのサイズを取得し、コピー対象ＡＰテーブル１３０にモジュール名とサイズを登録する。
【００４７】
”アプリケーション名”欄には、ホスト計算機１２１で実行されるアプリケーションプログラムの識別情報が記載される。  
”プロセス名”欄には、”アプリケーション名”欄に記載されている識別情報により特定されるアプリケーションプログラム１２９の実行時にＯＳによって生成されるプロセスを識別するための情報が格納されている。  
”モジュール名”欄には、プロセスを構成するプログラムモジュールの識別情報が格納されている。一つのプロセスに複数のプログラムモジュールが含まれている場合には、各プログラムモジュールの識別情報が記載される。  
”サイズ”欄には、各プログラムモジュールのサイズが格納されている。  
”優先順位”欄には、プロセスを構成する各プログラムモジュールがユーザ計算機１０１へコピーされる際の優先順位を示す情報が格納されている。優先順位は、ユーザ計算機１０１の操作者が使用する頻度の高い機能に対応するプログラムモジュールほど順位が高くなるように設定することが好ましい。
【００４８】
優先順位の設定は、プロセスの生成により作成されるコピー対象ＡＰ一覧テーブル１３０をディスプレイに表示し、ユーザから各アプリケーション毎に優先順位の入力を受け付けて、優先順位を設定する。ユーザはモジュールの優先順位まで細かく指定することができる。
【００４９】
また、アプリケーション名だけを表示し、アプリケーションの優先度のみを指定することもできる。この場合にはモジュール間の優先度に差はなく、アプリケーション間の優先度のみが指定される。例えば、文書作成ソフトウェアの優先度を１、表計算ソフトウェアの優先度を２、プレゼンテーションソフトウェアの優先度を３というように、各アプリケーション間の優先度を指定すると、これらのソフトウェアが同時に起動している場合に、優先度の高いアプリケーションのモジュールから順に転送を行う。
【００５０】
また優先順位の設定は動的に行なわれるようにすることもできる。例えば、プログラムモジュールが使用される都度、プログラムモジュールの優先順位を最高に設定し、最近使用されたプログラムモジュールほど優先順位が高くする方法を採用することができる。あるいは、プログラムモジュールが使用される回数をカウントし、使用回数が多いプログラムモジュールほど優先順位を高くする方法を採用してもよい。
【００５１】
また、アプリケーションプログラム１２９毎にも優先順位を設定してもよい。この場合、プロセスの複製をユーザ計算機１０１に送信する際に、アプリケーションプログラム１２９毎に設定された優先順位に応じて、プロセスの複製をユーザ計算機１０１に送信することが可能となる。例えば、高い優先順位が設定されたアプリケーションプログラム１２９のプロセスが他のプロセスに優先してユーザ計算機１０１に送信されるようにすることができる。
【００５２】
例えば、ユーザ計算機１０１のメモリの容量が小さい等の理由により、テキストデータ編集プログラムと表計算プログラムの両方のプロセスをユーザ計算機１０１で実行することができない場合には、表計算プログラムの優先順位をテキストデータ編集プログラムの優先順位よりも高く設定しておくことにより、ユーザ計算機１０１に表計算プログラムのプロセスを優先して送信することが可能となる。
【００５３】
次に、本実施形態に係る情報処理システム１０００において、ユーザ計算機１０１から送信される操作入力に応じてホスト計算機１２１で実行されるプロセスの複製を、ユーザ計算機１０１に送信する際の処理の流れの一例を図７のフローチャートを参照しながら説明する。
【００５４】
まず、ホスト計算機１２１のホスト側ＡＰ管理部１２７は、ホスト側プロセス管理テーブル１２３を監視し、コピー対象ＡＰ一覧テーブル１３０に登録してあるプロセスが実行可能状態となったことを検出すると（S1000）、ホスト側プロセス管理テーブル１２３から該当するプロセス情報をユーザ計算機１０１に送信する（S1010、S1020）。
【００５５】
またホスト計算機１２１は、コピー対象ＡＰ一覧テーブル１３０を参照し、当該プロセスを構成する各プログラムモジュールを選択する（S1030）。そしてホスト計算機１２１は、ホスト側プロセス管理テーブル１２３のアドレス情報欄から、当該プロセスを構成する各プログラムモジュールのホスト側実行メモリ領域１２５におけるアドレスやサイズを取得する（S1040）。
【００５６】
当該プロセスに複数のプログラムモジュールが含まれている場合は、ホスト計算機１２１は、それぞれのプログラムモジュールのサイズをコピー対象ＡＰ一覧テーブル１３０から取得し、優先順位が高いプログラムモジュールから順に選択を開始する。
【００５７】
このとき、ホスト計算機１２１は、プログラムモジュールの合計サイズが所定の閾値に納まるように選択する。そしてホスト計算機１２１は、ホスト側プロセス管理テーブル１２３のアドレス情報欄から、選択したプログラムモジュールが格納されているホスト側実行メモリ領域１２５のアドレス及びサイズを取得し、取得したアドレスに記録されているデータをユーザ計算機１０１に送信する（S1050、S1060）。
【００５８】
プログラムモジュールの転送サイズの閾値は、ホスト計算機のメモリ１２２またはデータ記憶装置１２８に格納されている。この閾値は、管理者があらかじめ指定して格納しているが、通信速度に応じて変更されるようにしてもよい。ユーザ計算機１０１とホスト計算機１２１との間を、ネットワークケーブルなど通信速度が早いネットワークで接続している場合は閾値を大きい値にし、携帯電話などの通信速度の遅いネットワークで接続している場合には閾値を小さい値にする。
【００５９】
一方、当該プロセスにプログラムモジュールが1つしか含まれていない場合は、そのプログラムモジュールのサイズを閾値と比較し、プログラムモジュールのサイズが閾値と同じか閾値よりも小さい場合に、ホスト側実行メモリ領域１２５に記録されているデータをユーザ計算機１０１に送信する。プログラムモジュールのサイズが閾値よりも大きい場合はホスト側実行メモリ領域１２５に記憶されているデータの送信はせず、処理を終了する。
【００６０】
以下に、図２を参照しながら、操作者が指定した閾値が5MBだったと仮定してコピー対象プロセスのプログラムモジュールを選択する手順を説明する。
【００６１】
プロセス１のプロセス情報を送信する場合、図２に示すように、プロセス１はモジュール1-1、モジュール1-2の二つのプログラムモジュールを含む。優先順位に従って各モジュールのサイズを加算すると、モジュール1-1のサイズは4MBであるため閾値よりも小さいが、二つ目のモジュール1-2を加えると合計サイズが6MBとなり閾値を超えてしまう。
【００６２】
従ってこの場合、ホスト計算機１２１は、モジュール1-1のみを選択して、ホスト側実行メモリ領域１２５のうち、モジュール1-1に該当するデータをユーザ計算機１０１に送信する。
【００６３】
またプロセス２のプロセス情報を送信する場合、図２において、例えばプロセス2は一つのモジュール2-1のみを含む。モジュール2-1のサイズは3MBであり、閾値の5MBよりも小さいため、モジュール2-1はコピー対象となる。
【００６４】
プロセス３のプロセス情報を送信する場合、プロセス3もまた一つのモジュール3-1のみを含むが、モジュール3-1のサイズは7MBであり、閾値の5MBよりも大きいため、モジュール3-1はコピー対象とはならない。
【００６５】
図２の例では、各モジュール間の優先順位を規定しているが、コピー対象ＡＰ一覧テーブル１３０にモジュール間の優先順位の他に各アプリケーション間の優先順位を設けてもよい。例えばアプリケーション間の優先順位をモジュール間の優先順位よりも重みを高く設定した場合を考える。アプリケーション３の優先順位を１番、アプリケーション１の優先順位を２番、アプリケーション２の優先順位を３番とする。これはつまり、転送サイズの閾値まで、アプリケーション３のモジュールを全て送信した後、アプリケーション１のモジュールを全て送信し、その後アプリケーション２のモジュールを全て送信する。データサイズの閾値を15MBとすると、モジュール3-1(7MB)，モジュール1-1(4MB)，モジュール1-2(2MB)の順に転送される。これらの合計は13MBであり、次の順位のモジュール2-1のサイズ3MBを転送すると、閾値を超えてしまうため、モジュール2-1は転送されない。
【００６６】
モジュール間の優先順位をアプリケーションの優先順位よりも重みを高く設定した場合を考える。これはつまり、転送サイズの閾値まで、モジュール間の優先順位１のモジュールのみをアプリケーションの優先順位に従ってまず転送する。その後アプリケーションの優先順位に従ってモジュール間の優先順位２のモジュールを転送する。上記例では、モジュール3-1(3MB)，モジュール1-1(4MB)，モジュール2-1(3MB)の順に転送される。次はモジュールの優先順位が２のものが転送されるが、転送済みモジュールの合計は14MBであり、モジュール1-2(2MB)は閾値を終えてしまうため、モジュール1-2は転送されない。
【００６７】
図７のフローチャートに戻って、ホスト計算機１２１は、ユーザ計算機１０１に送信したプロセス情報に記載されているＰＩＤがホスト側コピー済プロセステーブル１２４に登録済みでなければ、ホスト側コピー済プロセステーブル１２４に当該プロセスのＰＩＤを登録する（S1150、S1160）。
【００６８】
ここで、ホスト側コピー済プロセステーブル１２４は図４に示すテーブルであり、ホスト計算機１２１がユーザ計算機１０１に送信した各プロセスのＰＩＤを保持する。ホスト側コピー済プロセステーブル１２４はホスト計算機１２１のメモリ１２２に格納されている。
【００６９】
一方、ユーザ計算機１０１のユーザ側ＡＰ管理部１０７は、ホスト計算機１２１から送信されたプロセス情報を受信し（S1020）、続いて実行メモリ領域のデータを受信する（S1060）。
【００７０】
ユーザ計算機１０１は、受信したプロセス情報のＰＩＤがユーザ側コピー済プロセステーブル１０４に登録済みでなければ（S1070）、そのプロセスをユーザ計算機１０１上で一意に識別するために新たなＰＩＤを付与し（S1090）、新たに付与したＰＩＤと元のＰＩＤとを対応付けて、そのプロセス情報をユーザ側コピー済プロセステーブル１０４に登録する（S1100）。
【００７１】
ユーザ側コピー済プロセステーブル１０４は図６で示すテーブルであり、ユーザ計算機１０１のメモリ１０２に格納されている。ユーザ側コピー済プロセステーブル１０４は、ホスト計算機１２１のプロセスとユーザ計算機１０１のプロセスを対応付けるためのテーブルで、ホスト計算機１２１のプロセスのＰＩＤと、そのプロセスがユーザ計算機１０１に送信された際にユーザ計算機１０１により付与されたＰＩＤを対応付けて保持する。
【００７２】
続いてユーザ計算機１０１は、S1060で受信したデータをメモリ１０２の空き領域に配置する（S1110）。そしてユーザ計算機１０１は、S1020で受信したプロセス情報に記載されている、そのプロセスの状態を「実行待ち」状態に変更すると共に（S1120）、アドレス情報をユーザ側実行メモリ領域１０６におけるアドレスに変更する（S1130）。そしてユーザ計算機１０１は、変更したプロセス情報をユーザ側プロセス管理テーブル１０３に登録する（S1140）。
【００７３】
なお、ホスト計算機１２１から受信したプロセス情報のＰＩＤがユーザ側コピー済プロセステーブル１０４に登録済みであれば（S1070）、S1060で受信した実行メモリ領域のデータを、ユーザ側プロセス管理テーブル１０３のアドレス情報欄に記載されているユーザ側実行メモリ領域１０６のアドレスに上書きし（S1080）、ユーザ側プロセス管理テーブル１０３のアドレス情報欄を更新する（S1130）。続いてユーザ計算機１０１は、ユーザ側プロセス管理テーブル１０３のレジスタ属性等のプロセス情報を更新する（S1140）。
【００７４】
図５はユーザ側プロセス管理テーブル１０３の例を示す図である。ユーザ側プロセス管理テーブル１０３はユーザ計算機１０１のＯＳが管理し、ＰＩＤ、状態、レジスタ、アドレス情報の属性がある。
【００７５】
S1020でホスト計算機１２１からホスト側プロセス管理テーブル１２３のプロセス情報を受信すると、ユーザ計算機１０１は、ユーザ側受信したプロセス情報のレジスタ属性を、ユーザ側プロセス管理テーブルのレジスタに登録する。ユーザ計算機１０１は、S1060で受信した実行コード、データ、スタックを、S1110でメモリの空き領域に配置する。
【００７６】
またユーザ計算機１０１は、S1110で配置した領域のアドレスをS1130でユーザ側プロセス管理テーブルのアドレス情報属性に登録する。
【００７７】
ここで、ユーザ計算機１０１は、メモリ１０２の空き容量を監視し、S1060においてユーザ側ＡＰ管理部１０７がホスト計算機１２１からホスト側実行メモリ領域のデータを受信した際に、メモリ１０２の空き容量が閾値を下回っていた場合には、ユーザ側ＡＰ管理部１０７がプロセス情報やホスト側実行メモリ領域のデータをメモリ１０２に書き込むのを取りやめる処理を実装してもよい。これにより、ユーザ計算機１０１に搭載されるメモリ１０２の記憶容量が、ホスト計算機１２１に搭載されるメモリ１２２の記憶容量よりも小さい場合であっても、既にユーザ計算機１０１のメモリ１０２に書き込まれたプロセスの構成データを保護することができる。
【００７８】
以上に述べた情報処理の概要が図１２に示されている。すなわち、ホスト計算機１２１でプロセスの状態が実行可能状態になると、ＣＰＵ１７０のレジスタの情報がホスト側プロセス管理テーブル１２３に退避される。このタイミングで、ホスト計算機１２１がプロセス情報をユーザ計算機１０１に送信する。そしてユーザ計算機１０１はホスト計算機１２１から送信されたプロセス情報をユーザ側プロセス管理テーブル１０３に登録し、プロセスの状態を実行待ち状態に変更する。
【００７９】
また、ホスト計算機１２１は、プロセスのホスト側実行メモリ領域１２５の開始アドレスから終了アドレスまでの全てのデータをユーザ計算機１０１に送信し、ユーザ計算機１０１はメモリ１０２の空き領域にそのデータを配置する。そしてユーザ計算機１０１は、ユーザ側プロセス管理テーブル１０３のアドレス情報欄に、ユーザ側実行メモリ領域１０６におけるアドレスを記載する。
【００８０】
これにより、ホスト計算機１２１において実行途中のアプリケーションプログラム１２９のプロセスを、ユーザ計算機１０１において、実行待ち状態のプロセスとして登録することができ、ユーザ計算機１０１上ではアプリケーションプログラム１２９が実行されていない環境を実現することができる。
【００８１】
図８は、本実施形態に係る情報処理システム１０００において、ユーザ計算機１０１とホスト計算機１２１との間の通信に異常が検知された場合の処理を示す例である。
【００８２】
なお以下の説明において、「ネットワーク接続が切断された」や「オフラインを検出した」等と記載する場合があるが、本実施形態におけるネットワーク１４０は有線の場合も無線の場合も含み、ネットワーク１４０を構成するケーブルが物理的に切断されたか否かとは関係なく、ネットワーク１４０を介したデータの授受が不可能になる状態を、ネットワーク接続が切断された等と記す。
【００８３】
また以下の説明は、ネットワーク１４０を介したデータの授受が不可能になった場合を例に説明するが、本実施形態は、データの授受が不可能になった場合に限られず、例えば通信プロトコルに合致しないデータを相手側から受信した場合や、授受されるデータ中のビット抜けやチェックサムエラー、データの遅延等を検出した場合も同様に適用可能である。
【００８４】
ホスト側ＡＰ管理部１２７は、ネットワーク接続の切断を検出すると（S2000）、ホスト側コピー済プロセステーブル１２４に記録されているＰＩＤを取得し（S2010）、取得したＰＩＤで特定される各プロセスを実行待ち状態に変更する（S2020）。そして各プロセスを、プロセス同期の受信待ち状態にする（S2030）。
【００８５】
ホスト側ＡＰ管理部１２７によるネットワーク接続の切断の判断は、相手側から受信したデータがプロトコルに従っていないことを検知した場合に直ちに行なってもよいし、相手側から所定期間データが送信されてこない場合に行なってもよい。
【００８６】
一方ユーザ側ＡＰ管理部１０７は、ネットワーク接続の切断を検出すると（S2040）、ユーザ側コピー済プロセステーブル１０４に記録されているＰＩＤを取得し（S2050）、取得したＰＩＤで特定される各プロセスを実行可能状態に変更する（S2060）。またネットワーク接続が切断された際には、入力転送装置１１１は、入力情報の転送先をホスト計算機１２１からユーザ計算機１０１のユーザ側処理部１０８に変更する。画像受信装置１０９は、ユーザ計算機１０１自身のユーザ側処理部１０８から受信した画像を表示装置１１２に表示する（S2070）。
【００８７】
ユーザ側ＡＰ管理部１０７によるネットワーク接続の切断の判断は、相手側から受信したデータがプロトコルに従っていないことを検知した場合に直ちに行なってもよいし、相手側から所定期間データが送信されてこない場合に行なってもよい。ホスト計算機に対して定期的にPing等の応答要求を発行し、これに対する応答が無かった場合に行ってもよい。
【００８８】
これにより、操作者は、ネットワーク接続が切断された際にも、ホスト計算機１２１で実行されていたアプリケーションプログラム１２９を、ユーザ計算機１０１上で継続して実行することができる。また、リモート操作をしていたときにはネットワーク１４０を介してホスト計算機１２１に送られていたユーザ計算機１０１の入力装置１１３による入力情報が、ネットワーク接続が切断された際には、ユーザ計算機１０１のユーザ側処理部１０８に送られるため、操作者は、ユーザ計算機１０１上で実行可能になっているアプリケーションを操作することができる。また、ネットワーク接続が切断された際には、ユーザ計算機１０１のユーザ側処理部１０８が処理した画像がユーザ計算機１０１の表示装置１１２に表示されるため、操作者は、ユーザ計算機１０１上で実行可能になっているアプリケーションに対する操作の結果を見ることができる。これにより例えば、ホスト計算機１２１で文書編集アプリケーションによって文書を編集していた場合には、ユーザ計算機１０１で文書の編集を継続することができる。
【００８９】
図９は、本実施形態に係る情報処理システム１０００において、ユーザ計算機１０１とホスト計算機１２１との間の通信が正常に戻った場合の処理を示す例である。
【００９０】
ユーザ側ＡＰ管理部１０７は、ネットワーク接続の再開を検出すると操作者があらかじめ設定する一定期間を待機する。一定期間の間ネットワーク接続が連続して確保されたことを確認すると、ネットワーク接続が回復したと判断する（S3020）。また、ホスト計算機に対して定期的にPing等の応答要求を発行し、これに対する応答が確認できた場合にネットワーク接続が回復したと判断してもよい。
【００９１】
次にユーザ計算機１０１は、ユーザ側コピー済プロセステーブル１０４を参照し、ユーザ側コピー済プロセステーブル１０４にＰＩＤが登録済みでない場合は、プロセス同期をホスト側ＡＰ管理部１２７に送信する（S3030、S3120）。
【００９２】
一方、ユーザ側コピー済プロセステーブル１０４にＰＩＤが登録済みである場合は、ユーザ計算機１０１は、ユーザ側コピー済プロセステーブル１０４からユーザ計算機１０１上で実行しているプロセスのＰＩＤを取得し（S3040）、取得したＰＩＤにより特定されるプロセスを実行待ち状態に変更する（S3050）。これにより、ユーザ計算機１０１上において実行されていた上記プロセスが停止する。
【００９３】
続いてユーザ計算機１０１は、ユーザ側コピー済プロセステーブル１０４から、実行待ち状態に変更した各プロセスのホスト計算機１２１でのＰＩＤを取得し、ホスト側ＡＰ管理部１２７に通知する（S3060、S3070、S3080）。
【００９４】
さらにユーザ計算機１０１は、上記プロセスのプロセス情報とユーザ側実行メモリ領域１０６のデータを、ホスト側ＡＰ管理部１２７に送信し、プロセス同期をホスト側ＡＰ管理部１２７に送信する（S3090、S3100、S3120）。
【００９５】
一方、ホスト計算機１２１で実行されている各プロセスは、ネットワーク接続が切断されている期間にはプロセス同期の受信待ち状態にある。ホスト側ＡＰ管理部１２７は、ユーザ側ＡＰ管理部１０７よりＰＩＤを受信し（S3080）、プロセス情報と実行メモリ領域のデータを受信すると（S3100）、受信したプロセス情報をホスト側プロセス管理テーブル１２３に上書きし、実行メモリ領域のデータを、ホスト側実行メモリ領域１２５に上書きする。
【００９６】
またユーザ計算機１０１は、ユーザ側コピー済みプロセステーブル１０４に登録されているＰＩＤにより特定される各プロセスの構成データが、ホスト計算機１２１のメモリ１２２に全て上書きされると、ユーザ側ＡＰ管理部１０７は、ホスト計算機１２１にプロセス同期を送信する（S3120）。そうすると、ホスト側ＡＰ管理部１２７は、プロセス同期を受信し（S3130）、各プロセスを実行可能状態に変更する（S3140）。これによりホスト計算機１２１上の各プロセスは、プロセス同期中の状態になる（S3150）。
【００９７】
ここで、プロセスを同期しようとしている途中で再びネットワーク接続が切断してしまった場合には、ユーザ計算機１０１のユーザ側ＡＰ管理部１０７は、プロセス同期を送信しないで、S3050で実行待ち状態に変更した各プロセスを実行可能状態に戻す。
【００９８】
また、ネットワーク接続が再開されてプロセスの同期が完了した際には、入力転送装置１１１は、入力情報の転送先をユーザ側処理部１０８からホスト計算機１２１に変更する。画像受信装置１０９は、ホスト計算機１２１より受信した画像を表示装置１１２に表示する。
【００９９】
これにより、操作者は、ネットワークが切断された期間に、ユーザ計算機１０１上で操作し実行していたアプリケーションを、ホスト計算機１２１上で継続して実行することができる。また、アプリケーションをユーザ計算機１０１上で実行する際に変更されたデータを、ホスト計算機１２１に反映することができる。
【０１００】
上述したように、ネットワーク接続が再開されてから、ユーザ側ＡＰ管理部１０７がネットワーク接続が回復したと判断するまでに、あらかじめ操作者が指定する一定期間を待つために、プロセスの同期を開始する時にはネットワーク接続は安定しており、プロセスの同期中にネットワーク接続が再び切断し、S3070やS3090でホスト計算機１２１に送信されたデータが無駄になる可能性を低くすることができる。
【０１０１】
また、ネットワーク接続が再開されて、プロセスの同期が完了する前に再度ネットワークの接続が切断された場合には、ユーザ計算機１０１でアプリケーションを継続して実行するため、ネットワークの接続が安定せず、断続的に接続が切れる場合においても、ユーザ計算機１０１でアプリケーションを実行し続けることができる。
【０１０２】
ユーザ計算機１０１のメモリ１０２にアプリケーションやデータがロードされるときのセキュリティレベルの向上のため、ユーザ計算機１０１は以下のような処理を実行してもよい。
【０１０３】
図１０は、ユーザ計算機１０１が、ネットワーク接続が切断中に認証装置１１４が取り外されたことを検知した場合に行う処理の例である。  
管理マネージャ１１０は、認証装置１１４が取り外されたことを検出し、ユーザ側ＡＰ管理部１０７に通知する（S4000、S4010）。ユーザ側ＡＰ管理部１０７は、通知を受信すると、ユーザ側コピー済プロセステーブル１０４に登録されているＰＩＤにより特定される各プロセスを実行待ち状態に変更する（S4010〜S4030）。  
これにより、ネットワークが切断された際に認証装置１１４が取り外された場合には、ユーザ計算機１０１のメモリ１０２上にロードされているアプリケーションを使用不可能にすることができる。
【０１０４】
図１１は、ユーザ計算機１０１が、ネットワーク接続が切断中に認証装置１１４が再接続された場合に行う処理の例である。  
管理マネージャ１１０は、認証装置１１４が接続されたことを検出し、ユーザ側ＡＰ管理部１０７に通知する（S5000〜S5020）。  
ユーザ側ＡＰ管理部１０７は、上記通知を受信すると、その認証装置１１４は認証済みであるかどうかを管理マネージャ１１０に問合せる（S5030）。管理マネージャ１１０は、問合せを受信すると（S5040）、管理マネージャ１１０が保持する情報に基づいて、認証装置１１４が認証済みであるか否かを回答する（S5050）。
【０１０５】
ユーザ側ＡＰ管理部１０７は、問合せ結果を受信し（S5060）、その認証装置１１４が認証済みであれば、同一操作者による認証装置１１４の再接続であると判断し、ユーザ側コピー済プロセステーブル１０４に登録されているＰＩＤにより特定される各プロセスを実行可能状態に変更する（S5070、S5080）。
【０１０６】
また、その認証装置１１４が認証済みでなければ、別操作者による認証装置１１４の再接続であると判断し、メモリ１０２上のユーザ側プロセス管理テーブル１０３、ユーザ側コピー済プロセステーブル１０４、ユーザ側実行メモリ領域１０６の各データを破棄する（S5070、S5090）。
【０１０７】
これにより、認証装置１１４が再接続された際に、認証されている場合はアプリケーションを再び利用することができ、認証されていない場合はアプリケーションの情報をメモリ１０２上から破棄することができる。これにより、ユーザ端末１０１のメモリ１０２に記憶されている情報が第三者に漏洩することを防止することが可能となる。
【０１０８】
本実施例によると、アプリケーションの実行中にネットワーク接続が切断され、かつ認証装置１１４が抜かれているユーザ計算機１０１上でアプリケーションが使用不可能となっている状態のときに、他の操作者が別の認証装置１１４を用いてユーザ計算機１０１を操作しようとした場合に、アプリケーションの情報がメモリ１０２上から破棄されるため、高いセキュリティレベルを実現することができる。
【０１０９】
以上、本実施形態について説明したが、本実施形態によれば、操作入力を受け付けるユーザ計算機１０１と、操作入力に応じた情報処理を実行するホスト計算機１２１との間の通信に異常が発生した場合であっても、操作入力に応じた情報処理を継続することが可能となる。
【０１１０】
以上発明を実施するための最良の形態について説明したが、上記実施の形態は本発明の理解を容易にするためのものであり、本発明を限定して解釈するためのものではない。本発明はその趣旨を逸脱することなく変更、改良され得ると共に、本発明にはその等価物も含まれる。
【図面の簡単な説明】
【０１１１】
【図１】本実施形態に係る情報処理システムの全体構成の例を示す図である。
【図２】本実施形態に係るコピー対象ＡＰ一覧テーブルの例を示す図である。
【図３】本実施形態に係るホスト側プロセス管理テーブルの例を示す図である。
【図４】本実施形態に係るホスト側コピー済プロセステーブルの例を示す図である。
【図５】本実施形態に係るユーザ側プロセス管理テーブルの例を示す図である。
【図６】本実施形態に係るユーザ側コピー済プロセステーブルの例を示す図である。
【図７】本実施形態に係るプロセスコピー処理の流れの例を示すフローチャートである。
【図８】本実施形態に係るネットワーク異常検出時の処理の流れの例を示すフローチャートである。
【図９】本実施形態に係るネットワーク回復検出時の処理の流れの例を示すフローチャートである。
【図１０】本実施形態に係る認証装置取り外し時の処理の流れの例を示すフローチャートである。
【図１１】本実施形態に係る認証装置再接続時の処理の流れの例を示すフローチャートである。
【図１２】本実施形態に係るプロセスコピー処理の概要例を示す図である。
【符号の説明】
【０１１２】
１０１  ユーザ計算機
１０２  メモリ
１０３  ユーザ側プロセス管理テーブル
１０４  ユーザ側コピー済プロセステーブル
１０７  ユーザ側ＡＰ管理部
１０８  ユーザ側処理部
１０９  画像受信装置
１１０  管理マネージャ
１１１  入力転送装置
１１２  表示装置
１１３  入力装置
１１４  認証装置
１６０  ユーザ計算機制御プログラム
１８０  ＣＰＵ
１２１  ホスト計算機
１２２  メモリ
１２３  ホスト側プロセス管理テーブル
１２４  ホスト側コピー済プロセステーブル
１２６  ホスト側処理部
１２７  ホスト側ＡＰ管理部
１２８  データ記憶装置
１３０  コピー対象ＡＰ一覧テーブル
１４０  ネットワーク
１５０  ホスト計算機制御プログラム
１７０  ＣＰＵ
１０００  情報処理システム
【図１】
2008097344.tif 000003
【図２】
2008097344.tif 000004
【図３】
2008097344.tif 000005
【図４】
2008097344.tif 000006
【図５】
2008097344.tif 000007
【図６】
2008097344.tif 000008
【図７】
2008097344.tif 000009
【図８】
2008097344.tif 000010
【図９】
2008097344.tif 000011
【図１０】
2008097344.tif 000012
【図１１】
2008097344.tif 000013
【図１２】
2008097344.tif 000014