(57)【特許請求の範囲】
【請求項１】
利用者からの操作内容、又はネットワークからの受信内容の少なくとも一方を逐次、利用者からの操作、又はネットワークからの受信があった時点を特定する情報に関連づけてイベント情報として記録する第１記録手段と、
所定のタイミングごとに、各タイミングにおける自装置の情報記憶状態を復元するためのスナップショット情報を記録する第２記録手段であって、各タイミングの時点を、前記イベント情報との関連で特定する情報を関連づけて記録する第２記録手段と、
過去の時点を指定して操作を再現するべき指示を受け入れる手段と、
当該指定された時点より前に前記第２記録手段によって記録されたスナップショット情報を取得する制御を行う制御手段と、を含み、
前記制御手段が、
自装置の情報記憶状態を当該取得したスナップショット情報に対応する状態に更新する制御と、
当該取得したスナップショット情報に関連づけられた時点以降のイベントとして、前記第１記録手段によって記録されたイベント情報を順次読出して、当該イベントを処理した結果を、表示手段を用いて逐次的に提示する制御であって、前記イベント情報を順次読出す際に、次に読出すべきイベント情報より前の時点に関連づけられたスナップショット情報がある場合には、当該次に読出すべきイベント情報より前の時点に関連づけられたスナップショット情報を取得して、自装置の情報記憶状態を当該スナップショット情報に対応する状態に更新する逐次提示制御と、
を行うことを特徴とする情報処理装置。
【請求項２】
前記第２記録手段がスナップショット情報を記録するタイミングは、
利用者からスナップショット情報を記録すべき旨の指示を受けたタイミングと、
前回スナップショット情報を記録した後に第１記録手段が記録したイベント情報の数が所定しきい値を越えたタイミングと、
所定の時間ごとのタイミングと、
の少なくとも一つのタイミングであることを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第２記録手段がスナップショット情報を記録するタイミングは、
アプリケーションプログラムが終了するタイミングであることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記制御手段が、前記逐次提示制御において、記録されたイベント情報を順次読出して、当該イベントを処理した結果を逐次的に提示している間に、利用者から停止操作があった場合、又は読出すイベント情報がなくなった場合、の少なくとも一方となった場合に、その時点までに実行した一連のイベントのイベント情報と過去に実行した一連のイベントのイベント情報とに基づき、ベイズ理論を用いた処理により、次に実行されるべきイベントを予測する制御と、
表示手段に当該予測の結果を表示させる制御と、
をさらに行うことを特徴とする請求項１から３のいずれか一項に記載の情報処理装置。
【請求項５】
コンピュータを、
利用者からの操作内容、又はネットワークからの受信内容の少なくとも一方を逐次、利用者からの操作、又はネットワークからの受信があった時点を特定する情報に関連づけてイベント情報として記録する第１記録手段と、
所定のタイミングごとに、各タイミングにおける自装置の情報記憶状態を復元するためのスナップショット情報を記録する第２記録手段であって、各タイミングの時点を、前記イベント情報との関連で特定する情報を関連づけて記録する第２記録手段と、
過去の時点を指定して操作を再現するべき指示を受け入れる手段と、
当該指定された時点より前に前記第２記録手段によって記録されたスナップショット情報を取得する制御を行う制御手段と、として機能させ、
前記制御手段として機能させる際に、
自装置の情報記憶状態を当該取得したスナップショット情報に対応する状態に更新する制御と、
当該取得したスナップショット情報に関連づけられた時点以降のイベントとして、前記第１記録手段によって記録されたイベント情報を順次読出して、当該イベントを処理した結果を、表示手段を用いて逐次的に提示する制御であって、前記イベント情報を順次読出す際に、次に読出すべきイベント情報より前の時点に関連づけられたスナップショット情報がある場合には、当該次に読出すべきイベント情報より前の時点に関連づけられたスナップショット情報を取得して、自装置の情報記憶状態を当該スナップショット情報に対応する状態に更新する逐次提示制御と、
を行わせるための情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータやＰＤＡ等、情報処理作業に用いられる情報処理装置に関する。
【背景技術】
【０００２】
近年の企業では、コンピュータ等の情報処理機器を用いた業務が増加している。ところがこうした情報処理機器の操作においてその作業を一旦中断すると、作業に復帰したときに中断前の作業経過を一々思い出さなければならない。
【０００３】
従来から、こうした作業経過を思い出させるための装置として、作業中断直前に行っていた作業を再現できるよう、表示画面を記録しておき、作業に復帰したときに当該記録しておいた表示画面を利用者に提示する装置（特許文献１）などが考えられている。
【特許文献１】特開２００３−２８０９４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の装置では、表示画面というデータ量の大きい情報を記録しているので、記録するべきデータ量が膨大となって個々の作業記録までを再現できず、作業者の記憶をある程度呼び起こすことができるに留まる。
【０００５】
一方で、キーボードマクロのように、すべての操作情報を単体で保持していたのでは、特定の時点に遡って、作業内容を見たいという場合に、最初からすべての作業内容を再実行しなければ、当該特定の時点での作業状態を再現できないことになって、利便性が低い。
【０００６】
本発明は上記実情に鑑みて為されたもので、作業者の操作内容を逐次的に再現して利用者の作業経過を提示でき、かつ利便性を向上できる情報処理装置を提供することを、その目的の一つとする。
【課題を解決するための手段】
【０００７】
上記従来例の問題点を解決するための本発明は、情報処理装置であって、利用者からの操作内容、又はネットワークからの受信内容の少なくとも一方を逐次、イベント情報として記録する第１記録手段と、所定のタイミングごとに、各タイミングにおける装置の情報記憶状態を復元するためのスナップショット情報を記録する第２記録手段と、を有することを特徴としている。
【０００８】
また、上記従来例の問題点を解決するための本発明は、情報処理プログラムであって、コンピュータに、利用者からの操作内容、又はネットワークからの受信内容の少なくとも一方を逐次、イベント情報として記録する第１記録手順と、所定のタイミングごとに、各タイミングにおける装置の情報記憶状態を復元するためのスナップショット情報を記録する第２記録手順と、を実行させることを特徴としている。
【０００９】
また、前記第１記録手順は、各イベント情報について、利用者からの操作、又はネットワークからの受信があった時点を特定する情報を関連づけて記録する手順であり、前記第２記録手順は、各タイミングの時点を、前記イベント情報との関連で特定する情報を関連づけて記録する手順であり、過去の時点を指定して操作を再現するべき指示を受けて、当該指定された時点より前に前記第２記録手段によって記録されたスナップショット情報を取得し、装置の情報記憶状態を当該スナップショット情報に対応する状態に更新し、当該取得したスナップショット情報に関連づけられた時点以降のイベントとして、前記第１記録手段によって記録されたイベント情報を順次読出して、当該イベントを処理した結果を逐次的に提示する逐次提示手順をコンピュータに実行させ、前記逐次提示手順が前記イベント情報を順次読出す際に、次に読出すべきイベント情報より前の時点に関連づけられたスナップショット情報がある場合には、当該スナップショット情報を取得して、装置の情報記憶状態を当該スナップショット情報に対応する状態に更新することとしてもよい。
【００１０】
さらに前記逐次提示手順が、記録されたイベント情報を順次読出して、当該イベントを処理した結果を逐次的に提示している間に、利用者から停止操作があった場合、又は読出すイベント情報がなくなった場合、の少なくとも一方となった場合に、利用者の次の操作内容を予測する手順と、当該予測された操作内容を提示する手順と、をコンピュータに実行させることとしてもよい。
【００１１】
さらに前記第２記録手順がスナップショット情報を記録するタイミングは、利用者からスナップショット情報を記録すべき旨の指示を受けたタイミングと、前回スナップショット情報を記録した後に第１記録手段が記録したイベント情報の数が所定しきい値を越えたタイミングと、所定の時間ごとのタイミングと、の少なくとも一つのタイミングであることとしてもよい。
【００１２】
また、前記第２記録手段がスナップショット情報を記録するタイミングは、アプリケーションプログラムが終了するタイミングであってもよい。
【００１３】
さらに上記従来例の問題点を解決するための本発明は、情報処理方法であって、利用者からの操作内容、又はネットワークからの受信内容の少なくとも一方を逐次、イベント情報として記録する第１記録工程と、所定のタイミングごとに、各タイミングにおける装置の情報記憶状態を復元するためのスナップショット情報を記録する第２記録工程と、を実行することを特徴としている。
【発明を実施するための最良の形態】
【００１４】
本発明の実施の形態について図面を参照しながら説明する。本実施の形態の情報処理装置は、図１に示すように制御部１１と、主記憶部１２と、二次記憶部１３と、操作部１４と、表示部１５と、通信部１６とを含んで構成されている。
【００１５】
制御部１１は、ＣＰＵ（Central Processing Unit）などの演算処理ユニットを含んで構成され、主記憶部１２又は二次記憶部１３に格納されたプログラムに従って動作している。この制御部１１は、ワードプロセッサやスプレッドシート・アプリケーションなど、種々のアプリケーションプログラム（以下、「アプリケーション」と略称する）に従って、文書処理等を行う。また、この制御部１１は、後に詳しく説明するように利用者がアプリケーションに対して行った操作内容と、アプリケーションに関する情報記憶状態とを記憶させる処理（履歴取得処理）と、当該記憶している各情報に基づいて過去に行った利用者の操作を再現する処理（履歴再生処理）とを行う。
【００１６】
主記憶部１２は、ＲＡＭ（Random Access Memory）や、ＲＯＭ（Read Only Memory）などで構成される。この主記憶部１２は、制御部１１によって実行されるプログラムを保持し、また、制御部１１がアプリケーション等を実行する際に、例えば文書のデータ等アプリケーションデータを一時的に保持するなど、制御部１１のワークメモリとしても動作している。二次記憶部１３は、例えばハードディスク等であり、制御部１１によって実行されるプログラムを保持している。この二次記憶部１３は、主記憶部１２の記憶内容を一時的に保持したり（いわゆる仮想記憶を実現するためのスワップ領域を保持するなど）、プログラムの実行に係る各種のパラメータ情報（設定情報など）を保持する。
【００１７】
操作部１４は、マウスやキーボードなどを含んで構成され、利用者の行った操作の内容を制御部１１に伝達する。表示部１５は、例えば液晶ディスプレイ装置等であり、制御部１１から入力される指示に従って、利用者に情報を提示する。通信部１６は、制御部１１から入力される指示に従い、ネットワークを介してデータを送信し、また、ネットワークを介して到来するデータを受信して制御部１１に出力している。
【００１８】
ここで制御部１１は、一般にオペレーティングシステム（ＯＳ）と呼ばれる実行環境の下でアプリケーションを実行している。具体的に、利用者が操作部１４を介して行った操作の内容は、「イベント」と呼ばれる情報として、アプリケーション側に出力される。このイベントは、具体的には、イベントの種類（マウスボタンの押下やキー操作などの別）、イベントの行われた位置（例えばマウスボタンが押下されたときのマウスポインタの位置）、イベントのあった時刻、イベントの内容（押下されたキーの内容など）などの情報要素が含まれる。なお、通信部１６を介してデータが送受信される場合も、イベントとしてアプリケーション側と情報を授受することになる。例えばネットワークを介して到来した電子メールのデータを受信した場合、ＯＳ側ではメールアプリケーションに対するイベント（通信のイベント）として、メールアプリケーションに対して当該電子メールのデータを出力することになる。
【００１９】
また、多くのＯＳにおいては、こうしたイベントをアプリケーション側に出力する前に、その内容を取得して記録することが可能になっている。そして、利用者が実際に操作を行わなくても、ＯＳに対して、イベントの情報を生成させ、アプリケーションに出力させることもできるようになっている。具体的にマクロなどの言語の中には、このようなＯＳのしくみを利用したものがあり、これらの処理は広く知られているので、その詳細な説明を省略する。
【００２０】
以下、制御部１１の動作である履歴取得処理と、履歴再生処理とについて説明する。まず、履歴取得処理について説明する。制御部１１は、利用者から特定のアプリケーション（少なくとも一つのアプリケーションをその名称などによって特定する、以下注目アプリケーションと呼ぶ）についての履歴を取得するべき指示を受けると、図２に示す処理を開始し、ＯＳ側で生成した入力操作のイベント（マウス移動、マウスクリック、キー入力など）や、ネットワークからのデータ送受信のイベントなどを取得する（Ｓ１）。
【００２１】
そして当該イベントの種類の情報等を参照し、予め記録するべきものと定められているイベントであるか否かを調べる（Ｓ２）。具体的には、当該イベントが注目アプリケーションに関するものであるか否か（イベントの行われた位置が、アプリケーションのウインドウ内であるか等によって判定できる）や、利用者から特定されたサーバからの通信のイベントであるか否か、さらには、イベントの種類が予め定められた特定のものであるか否かなど、予め定めた記録ルールに基づいて判断する。
【００２２】
ここで記録するべきイベントであると判断した場合は（Ｙｅｓの場合）、当該イベントに関する情報を主記憶部１２又は二次記憶部１３に格納する（Ｓ３）。イベントに関する情報は、図３に示すような態様で格納される。すなわち、イベントの取得（発生）順に、イベント識別子としての一連のイベント番号を発行しておき、このイベント番号と、イベントの発生時刻（日時と時刻など）と、イベントの種類と、イベントの内容と、を関連づけて格納する。ここでイベント識別子とイベントの発生時刻との少なくとも一方が、イベント情報の一例としてのイベントの操作時点を特定する情報に相当する。なお、このイベントのうち、通信のイベントなど、その内容が所定のサイズしきい値を越える場合などにおいては、当該内容の情報をＬＺ方式などによって情報圧縮して保持してもよい。制御部１１は、また、これらイベントに関する情報を主記憶部１２に格納したときには、後にその少なくとも一部を二次記憶部１３に引き写して格納する。
【００２３】
次に制御部１１は、アプリケーションに関する情報記憶状態の情報（以下、スナップショット情報と呼ぶ）を保管するタイミングとして、予め定められているタイミングが到来したか否かを調べる（Ｓ４）。このタイミングは、例えば、前回スナップショット情報を記録した後に、処理Ｓ３にて格納されたイベントに関する情報の数（記録イベント数）が、所定のしきい値を越えたタイミングとしてもよいし、所定の時間ごとのタイミングとしてもよい。ここで記録イベント数を用いる場合は、処理Ｓ３において主記憶部１２に保持したカウンタをインクリメントし、当該カウンタの値が所定のしきい値を越えたか否かによって、上記予め定められているタイミングが到来したか否かを判断すればよい。このときには、後に説明するスナップショット情報を保管する処理を行ったときに、当該カウンタを「０」にリセットしてもよい。
【００２４】
また、所定の時間ごとのタイミングとするときは、例えば前回スナップショット情報を保管した時刻を記憶しておき、図示しない時計を参照して当該時刻から現在時刻までの間に、所定の時間が経過したと判断されるときに、予め定められているタイミングが到来したとすることになる。
【００２５】
制御部１１は、処理Ｓ４にて、予め定められたタイミングが到来していないと判断したときには（Ｎｏのときには）、処理Ｓ１に戻って処理を続ける。また、処理Ｓ４にて予め定められたタイミングが到来したと判断したときには（Ｙｅｓのときには）、スナップショット情報を保管する処理を行い（Ｓ５）、処理Ｓ１に戻って処理を続ける。
【００２６】
ここでスナップショット情報を保管する処理では、例えば制御部１１のＣＰＵ内部のレジスタの値や、プログラムカウンタの値、スタックポインタ等のレジスタコンテクストや、注目アプリケーションが利用するメモリ空間内のテキストやデータ、スタック、共有メモリなどのユーザレベルコンテクスト、さらにＯＳが利用する各種情報（例えば複数のアプリケーションをマルチタスク処理している場合の、各アプリケーションに対応するプロセスの管理テーブルに関する情報など）であるシステムレベルコンテクストなど、制御部１１での処理状態を再現する情報を二次記憶部１３に格納する。また制御部１１は、そのタイミングでの二次記憶部１３の少なくとも一部（例えば利用者のディスクエリア）を再現するディスク内容再現情報を、記憶部１３に格納する。ディスク内容再現情報は、いわゆるログ・ファイルシステム（LFS）やジャーナリング（journaling）の技術を用いて生成できる。ログ・ファイルシステムの技術は、例えばBSD LFSなどとして既に実用されており、ジャーナリングの技術についても広く用いられているので、ここでの詳細な説明を省略する。なお、本実施の形態ではログ・ファイルシステムを用いてディスク内容再現情報の情報量を低減しているものとして説明する。
【００２７】
制御部１１は、このディスク内容再現情報を格納するときに、その時点で最新のイベントについて発行されたイベント識別子を、ディスク内容再現情報に関連付けて格納する。
【００２８】
制御部１１は、処理Ｓ２において、処理Ｓ１で取得したイベントが予め記録するべきものと定められているイベントでないと判断した場合、当該イベントが、利用者からスナップショット情報を記録するべき旨の指示であったか否かを調べ（Ｓ６）、その旨の指示であれば（Ｙｅｓであれば）、処理Ｓ５に移行して処理を続ける。一方、処理Ｓ６において、スナップショット情報を記録するべき旨の指示でなかった場合（Ｎｏの場合）、制御部１１は、最後に処理Ｓ１で取得したイベントが、注目アプリケーションを終了する指示であったか否かを調べる（Ｓ７）。ここで、注目アプリケーションを終了する指示であった場合（Ｙｅｓの場合）は、処理Ｓ５に移行して処理を続ける。また、処理Ｓ７において、注目アプリケーションを終了する指示でないならば（Ｎｏならば）、次に、当該イベントが状態を復元するべき旨の指示であったか否かを調べる（Ｓ８）。ここで、当該イベントが状態を復元するべき旨の指示であったならば（Ｙｅｓならば）、状態復元処理を開始する（Ｓ９）。また、この履歴再生処理が完了したら、処理Ｓ１に戻って処理を続ける。
【００２９】
ここで状態復元処理とは、利用者の指示操作によって受け入れた時点の装置の状態を復元する処理である。具体的にこの処理では、復元の時点を特定する情報として、例えば時刻の情報を受け入れる。制御部１１は、当該受け入れた情報で特定される時刻の直前に発生したイベントを、イベントに関する情報から検索する。具体的には指定された情報で特定される時刻と、二次記憶部１３等に格納されているイベントの発生時刻の情報と、イベントの発生時刻の順に比較していき、比較中のイベントの発生時刻が上記特定された時刻より後となった最初のイベント識別子を取得する。そして当該取得したイベント識別子の一つ前のイベント識別子に関連付けられたイベントが、上記受け入れた情報で特定される時刻の直前に発生したイベント（直前イベント）ということになる。イベントの検索は、イベントの発生時刻をキーとした二分木（Ｂ木）を構築することで、高速化することも可能である。
【００３０】
そして制御部１１は、当該直前イベントから順に発生順に遡りながらそれぞれのイベント識別子に関連付けられたスナップショット情報があるか否かを調べ、最初に見つけられたスナップショット情報を取得する。つまり、制御部１１は、特定された時刻の直前に格納されたスナップショット情報を見いだすことになる。なお、以下の説明で、当該特定された時刻の直前に格納されたスナップショット情報に関連付けられたイベント識別子を開始イベント識別子と呼ぶ。
【００３１】
制御部１１は次に、このスナップショット情報に含まれるディスク内容再現情報に基づいて、二次記憶部１３の内容を書換える。また、スナップショット情報に含まれる制御部１１での処理状態を再現する各情報を主記憶部１２や、二次記憶部１３、制御部１１のＣＰＵ等に設定できるようにする（プロセスの処理状態を再現する）。
【００３２】
そして制御部１１は、開始イベント識別子に関連付けられたイベントから、直前イベントまでの各イベントに対する処理を実行する（例えばキーの押下やマウスの移動、クリックなどがあったとして、それらに応答する処理を行う）。
【００３３】
これにより装置の状態は、利用者が指定した時点の状態に復元されることなる。なお、二次記憶部１３の内容を書換える際に、制御部１１の状態復元処理が持続できなくなることを防止するため、書換えの対象となる二次記憶部１３の内容を利用者領域に制限してもよい。この場合、イベントの情報やディスク内容再現情報などは利用者の領域ではなく、システム領域など、他の領域に書込んでおく。また、システム領域などがない場合は、主記憶部１２を用いてＲＡＭディスクを生成して、当該生成したＲＡＭディスクに状態復元に必要となる情報（イベントの情報や、状態復元処理のプログラムなど）を複写しておいてもよい。
【００３４】
また処理Ｓ８において、イベントが状態を復元するべき旨の指示でなかったならば（Ｎｏならば）、制御部１１は、イベントが、過去の時点を指定した操作を再現するべき指示（再生指示）であったか否かを調べ（Ｓ１０）、再生指示であったならば（Ｙｅｓならば）、後に説明する履歴再生処理を開始する（Ｓ１１）。
【００３５】
一方、処理Ｓ１０において、再生指示でなかったならば（Ｎｏならば）、イベントの記録の終了指示があったか否かを調べ（Ｓ１２）、終了指示があったならば、そのまま処理を終了する。また、終了指示がなければ、処理Ｓ１に戻って処理を続ける。
【００３６】
次に、履歴再生処理の内容について説明する。制御部１１は、図４に示すように、再生指示において指定された時点の直前に記録されたスナップショット情報を取得する（Ｓ２１，この処理は上述の状態復元処理におけるものと同じものでよい）。そして、このスナップショット情報に含まれるディスク内容再現情報に基づいて、二次記憶部１３の内容を書換え、スナップショット情報に含まれる制御部１１での処理状態（注目アプリケーションの実行状態）を再現する各情報を主記憶部１２や、二次記憶部１３、制御部１１のＣＰＵ等に設定できるようにして、アプリケーションの処理状態を再現する（Ｓ２２）。例えばＵＮＩＸ（登録商標）等においては、主記憶部１２や二次記憶部１３内に、スナップショット情報の取得時点の情報を設定してもよい。これによるとプロセステーブルやプログラムポインタなどが設定され、利用者の利用環境全体を当該指定された時点以前の状態に設定されることになる。
【００３７】
次に制御部１１は、処理Ｓ２１で取得したスナップショット情報に関連付けられたイベント識別子を取得して、当該取得したイベント識別子に関連するイベントに対する処理を実行する（Ｓ２３）。これにより、表示部１５には、アプリケーションが当該イベントに応答する様子が表示される。なお、このときに処理するイベントの内容を表す文字列やアイコンなどを併せて表示してもよい。
【００３８】
そして制御部１１は、イベント識別子をインクリメントし（Ｓ２４）、停止指示があったか又はインクリメント後のイベント識別子に対応するイベントがあるか否かを判断する（Ｓ２５）。ここで停止指示がなかったか、又はインクリメント後のイベント識別子に関連付けられたイベントがなければ（「処理継続」ならば）、処理Ｓ２４でインクリメントした後のイベント識別子に関連付けられたスナップショット情報があるか否かを調べ（Ｓ２６）、スナップショット情報があれば（Ｙｅｓならば）、処理Ｓ２２と同様にして、アプリケーションの処理状態を再現し（Ｓ２７）、処理Ｓ２３に戻って処理を続ける（Ａ）。また、処理Ｓ２６においてスナップショット情報がなければ、そのまま処理Ｓ２３に戻って処理を続ける（Ａ）。
【００３９】
制御部１１は、また、処理Ｓ２５において停止指示があった場合、又はインクリメント後のイベント識別子に対応するイベントがなければ（「処理停止」ならば）、操作予測処理を開始する（Ｓ２８）。
【００４０】
これにより、指定された過去の一時点との関係において取得されたスナップショット情報以降の操作内容についてのイベントを順次読出して、各イベントを実行した結果を逐次的に提示していく。このとき、次に読出すべきイベントより前の時点に関連づけられたスナップショット情報がある場合には、当該スナップショット情報を取得して、装置の情報記憶状態を当該スナップショット情報に対応する状態に更新する。これにより、記録されなかったイベントの処理があっても、スナップショットの時点ごとに処理状態が保持されることとなっており、より的確な再生を行うことができるようになっている。
【００４１】
次に制御部１１によって行う操作予測処理について説明する。本実施の形態では、イベントを逐次的に実行して、その結果を提示している間に、利用者から停止操作があった場合、又はイベントがなくなったときに、その時点までに実行した一連のイベントと、過去に実行した一連のイベントに関する情報とに基づき、例えばベイズ理論によって次に実行されるべきイベントが何であるかを予測して、当該予測の結果を表示部１５に表示する。具体的に、イベントがマウスクリックであると予測された場合、クリックされるべき位置とクリックするべきこととを表す文字列やアイコンなどを表示する。また、制御部１１は、仮に当該予測されたイベントが実行されたとしたときのアプリケーションの応答結果（アプリケーションの動作の様子）を表示部１５に表示させてもよい。また、ここでは表示部１５に表示することとしているが、これに代えて音声を鳴動してもよい。
【００４２】
制御部１１は、ここで予測したイベントを実行するか否かの指示を入力するよう利用者に指示し、利用者から実行する旨の指示を受けた場合には、上記予測したイベントを実行する。また、実行しない旨の指示を受けた場合は、処理を終了する。
【００４３】
このように本実施の形態では、ＯＳ内部、又はＯＳの拡張機能として動作するプログラムを用い、利用者のアプリケーション操作内容等のイベントを逐次的に記憶するとともに、所定のタイミングごとに、アプリケーションの実行環境を再生するためのＣＰＵやメモリ、ディスクなどの内容の情報をスナップショット情報として記憶しておく。
【００４４】
そしてこれら逐次的に記憶されたアプリケーションの操作内容や、スナップショット情報を用い、次のようにして過去の作業を再現する。すなわち、指定された時点直前に記録したスナップショット情報を取得し、そのスナップショット情報取得時点の装置状態を再現し、当該スナップショット情報取得時点以降のイベントを順次読出して、各イベントを実行した結果を逐次的に提示していく。このとき、次に読出すべきイベントより前の時点に関連づけられたスナップショット情報がある場合には、当該スナップショット情報を取得して、装置の情報記憶状態を当該スナップショット情報に対応する状態に更新する。
【００４５】
なお、ここでは指定された時点の直前のスナップショット情報取得時点以降のイベント処理結果が逐次的に提示されることとなるが、例えば指定された時点の直前のイベントの処理を完了するまでは、表示部１５の表示内容を変更しないように制御しておき、指定された時点以降のイベントの処理結果のみを提示するようにしてもよい。
【００４６】
また、過去のイベントを逐次的に処理している間は、各イベントの発生時刻の情報を表示部１５に表示してもよい。さらにここではイベント識別子を発行して、イベントの先後関係やスナップショット情報の取得時点とを関連付けているが、利用者が時刻合わせなどを行わない場合、イベント識別子を発行せず、単にイベント発生時刻の情報を記録し、各スナップショット情報にもその取得時点を表す時刻（日時及び時刻）の情報を関連付けて記録しても、上述と同様の処理を行うことができる。
【００４７】
このように本実施の形態では表示画面を記録せず、基本的には個々の作業記録を含むイベントを記録しているので、個々の作業記録までを再現でき、利用者の作業内容を逐次的に確認できる。また、すべての作業記録を単体で保持せず、所定タイミングごとにスナップショット情報を記録しているので、最初からすべての作業内容を再実行する必要がない。これにより、各操作内容を逐次的に再現して利用者の作業経過を提示でき、かつ利便性を向上できる。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施の形態に係る情報処理装置の例を表す構成ブロック図である。
【図２】本発明の実施の形態に係る情報処理装置の履歴取得処理例を表すフローチャート図である。
【図３】イベントの情報の保持態様の例を表す説明図である。
【図４】本発明の実施の形態に係る情報処理装置の履歴再生処理例を表すフローチャート図である。
【符号の説明】
【００４９】
１１  制御部、１２  主記憶部、１３  二次記憶部、１４  操作部、１５  表示部、１６  通信部。
【図１】
0004661066.tif 000002
【図２】
0004661066.tif 000003
【図３】
0004661066.tif 000004
【図４】
0004661066.tif 000005