説明

情報処理装置、情報処理方法、情報処理システムおよびプログラム

【課題】アプリケーションの操作時間をより正確に把握しやすくする。
【解決手段】操作工数取得手段は操作手段の操作工数を取得する。名称取得手段はアクティブウインドウに対応したアプリケーションプログラムの名称を取得する。制御手段は、情報処理装置において動作している複数のアプリケーションプログラム間でアクティブウインドウが切り替えられるタイミングを契機として、操作工数取得手段の操作工数の取得開始と取得終了とを制御するとともに、所定期間が経過するタイミングを契機として、操作工数取得手段の操作工数の取得開始と取得終了とを制御する。時刻取得手段は取得開始のタイミングを示す時刻データを取得する。記録手段は、取得開始から取得終了までを1つの取得期間として取得された操作工数と、取得開始におけるアクティブウインドウに対応したアプリケーションプログラムの名称と、時刻データとを対応付けて操作履歴として記録する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、各端末装置におけるアプリケーションの利用状況を収集する情報処理装置、情報処理方法、情報処理システムおよびプログラムに関する。
【背景技術】
【0002】
コンピュータが普及し、企業ではコンピュータの利用が既に一般的となっている。従業員は、コンピュータを通じて就業時間の大半を資料の作成に費やしたり、メールを作成したり、Webサイトを閲覧したりする。一方で、従業員が使用するアプリケーションが多様化している。よって、従業員によるアプリケーションの使用状況を把握することは、従業員の生産性や業務効率の向上に繋がると考えられる。
【0003】
特許文献1によれば、アクティブ状態のアプリケーション実行ウィンドウと、インアクティブ状態のアプリケーション実行ウィンドウの時間に関する情報から、アプリケーション毎の稼働率を出力するシステムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開平9−91179号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1によれば、アプリケーション毎の稼働時間を把握することは可能だろう。しかし、特許文献1のシステムでは、従業員がアプリケーションを用いて実際に作業をしている時間(操作時間)を把握することができない。例えば、あるアプリケーションのウィンドウが連続して1時間にわたってアクティブになっていたからといって、従業員がそのアプリケーションを操作している時間もそのまま1時間というわけではない。1時間のうち、30分程度はコンピュータが設置されているブースから従業員が離席している可能性もある。とりわけ、実際の操作時間を把握するために役立つ情報は、従業員がアプリケーションを操作する際のキーボードの打鍵数やポインティングデバイスの移動距離などの操作工数の情報である。
【0006】
そこで、本発明は、このような課題および他の課題のうち、少なくとも1つを解決することを目的とする。例えば、本発明は、操作者によるアプリケーションの操作時間を把握しやすくすることを目的とする。なお、他の課題については明細書の全体を通して理解できよう。
【課題を解決するための手段】
【0007】
本発明の情報処理装置は、複数のアプリケーションプログラムが同時に稼働可能な情報処理装置であって、操作手段、操作工数取得手段、名称取得手段、時刻取得手段、制御手段および記録手段を備える。操作手段は、操作者が複数のアプリケーションプログラムのうちアクティブウインドウに対応しているアプリケーションプログラムを操作するために設けられている。操作工数取得手段は操作手段の操作工数を取得する。名称取得手段はアクティブウインドウに対応したアプリケーションプログラムの名称を取得する。制御手段は、情報処理装置において動作している複数のアプリケーションプログラム間でアクティブウインドウが切り替えられるタイミングを契機として、操作工数取得手段の操作工数の取得開始と取得終了とを制御するとともに、所定期間が経過するタイミングを契機として、操作工数取得手段の操作工数の取得開始と取得終了とを制御する。時刻取得手段は取得開始のタイミングを示す時刻データを取得する。記録手段は、取得開始から取得終了までを1つの取得期間として取得された操作工数と、取得開始におけるアクティブウインドウに対応したアプリケーションプログラムの名称と、時刻データとを対応付けて操作履歴として記録する。
【発明の効果】
【0008】
本発明によれば、アクティブウインドウの切り替えタイミングと、一定期間の経過したタイミングとを契機として操作履歴を記録する。そのため、この操作履歴を分析に用いれば、操作者によるアプリケーションの操作時間を把握しやすくなる。
【図面の簡単な説明】
【0009】
【図1】情報処理システムの一例を示す図である。
【図2A】端末装置のハードウエア構成を示す図である。
【図2B】ログ管理サーバのハードウエア構成を示す図である。
【図2C】情報分析装置のハードウエア構成を示す図である。
【図3】操作履歴取得の一例を示す図である。
【図4】操作履歴の一例を示す図である。
【図5】操作履歴取得の一例を示す図である。
【図6】操作履歴の一例を示す図である。
【図7】端末装置の処理の一例を示すフローチャートである。
【図8】情報分析処理の一例を示すフローチャートである。
【図9】分析結果の一例を示す図である。
【図10】操作履歴取得の一例を示す図である。
【図11】端末装置の処理の一例を示すフローチャートである。
【図12】端末装置の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
<第一実施形態>
(システム構成)
図1は、情報処理システムの一例を示す図である。情報処理システムは、複数の端末装置11a、11bと、ログ管理サーバ12と、情報分析装置13を備えている。端末装置11a、11bは、企業内に配置された端末の一例である。ログ管理サーバ12は、企業内に配置された端末装置にて実行されるアプリケーションプログラムの操作ログ(操作履歴)を管理する。情報分析装置13は、企業内に配置された端末装置におけるアプリケーションプログラムの操作履歴を分析する情報分析装置の一例である。これらの装置はLAN(Local Area Network)を含むイントラネットやインターネットなどの各種のネットワーク50を介して接続されている。端末装置11a、11bに共通する事項について説明するときは、単に端末装置11と記載することにする。
【0011】
ログ管理サーバ12は、端末装置11が設置されている企業内に配置されていてもよいし、他の企業内に配置されていてもよい。同様に、情報分析装置13も、端末装置11が設置されている企業内に配置されていてもよいし、他の企業内に配置されていてもよい。また、ログ管理サーバ12と情報分析装置13は、同一企業によって管理されてもよいし、それぞれ他の企業によって管理されてもよい。
【0012】
端末装置11は、複数のアプリケーションプログラムが同時に稼働可能な情報処理装置として機能する。また、端末装置11は、監視部14を備えている。監視部14は、端末装置において動作しているアプリケーションプログラムの名称と、アプリケーションプログラムのアクティブウインドウのタイトル表示部に表示されるタイトル情報と、アプリケーションプログラムが動作しているときに端末装置の入力装置に対するユーザの操作工数などを監視し、操作履歴として記録する。操作履歴に関するこれらの情報はオペレーティングシステム(OS)やウインドウマネージャなどから取得可能である。操作履歴には、例えば、次の情報が含まれうる。
・端末装置の識別情報・・・コンピュータ名、IPアドレス、MACアドレスなど
・ユーザ名・・・端末装置にログインしているユーザのIDなど
・操作日時・・・操作履歴が取得された日時
・アクティブウインドウのアプリケーション名・・・プロセス名など
・アクティブウインドウのタイトル名・・・キャプション名(編集されているファイルの名称など)
・キーボードの打鍵数
・入力文字コード・・・全角/半角、2バイト系文字/1バイト系文字、Unicode/EUC/ISO/JISなど
・入力確定文字・・・フロントエンドプロセッサ(FEP)を通じて確定された文字
・ポインティングデバイスのポインタの移動距離
・ポインティングデバイスのクリック数
端末装置11の監視部14は、アクティブウインドウが切り替えられたとき、または、所定の監視期間(例えば、1分)が開始されたときに、そのアクティブウインドウについての操作履歴の取得を開始し、別のアクティブウインドウに切り替えられたとき、または、所定の監視期間が終了したときに、操作履歴の取得を終了し、ログ管理サーバ12に送信する。また、端末装置11の監視部14は、予め設定された監視期間ごと、及び、アクティブウインドウが切り替えられるごとに各々操作履歴を作成し、ログ管理サーバ12に送信してもよい。後述する操作開始日時は、操作履歴の取得開始時になるため、各アクティブウインドウのより詳細な操作時間を操作開始日時から算出できるようになる。
【0013】
このようにして取得された操作履歴を端末装置11がログ管理サーバ12に操作履歴を送信する条件は、種々考えられる。例えば、所定時間が経過したとき(例:2時間毎)、所定量以上の操作履歴が蓄積されたとき、端末装置11が起動したとき、端末装置11がシャットダウンを指示されたとき、ログ管理サーバ12からの操作履歴の送信を要求されたときなどである。
【0014】
ログ管理サーバ12は、複数の端末装置11のそれぞれから収集した操作履歴を蓄積し、蓄積した操作履歴を情報分析装置13へ送信する情報処理装置(コンピュータ)である。図1が示すように、ログ管理サーバ12は、ログ管理DB15を備える。DBはデータベースの略称である。ログ管理サーバ12は、端末装置11から受信した操作履歴に基づいて、ログ管理DB15に、端末装置毎(またはユーザ毎)に操作履歴を記録する。
【0015】
情報分析装置13は、分析部18および分析結果DB19を備える情報処理装置である。情報分析装置13は、ログ管理サーバ12からネットワーク50を介して受信した操作履歴に基づいて、アプリケーションプログラムやOSに対する操作内容(例えば、アプリケーションプログラムの利用状況)を分析して出力する。情報分析装置13のネットワークインターフェースは、端末における操作履歴を入力する一例である。分析部18は、入力された操作履歴からアプリケーションプログラムの利用状況を分析する。分析部18は、例えば、ユーザごとまたは端末装置ごとに分析結果を作成し、作成した分析結果を分析結果DB19に記録する。分析結果DB19に記録された分析結果は、グラフや表として表示装置に出力されたり、印刷装置によって記録媒体に出力されたり、電子メールの本文として出力されたり、WebサイトのWebページとして出力されたりしてもよい。
【0016】
ログ管理サーバ12から情報分析装置13への操作履歴の受け渡しは、ネットワーク50であってもよいし、外部記憶媒体(FD、MO、USBメモリ、CD−R、DVD−RAM等)であってもよい。
【0017】
(ハードウエア構成)
図2Aは、端末装置11のハードウエア構成を示す図である。端末装置11は、オフィスなどに配置されるパーソナルコンピュータなどの情報処理装置である。端末装置11では、ハードディスクドライブ(HDD25)に記憶されているソフトウエアにしたがってCPU21が各種手段として機能する。とりわけ、CPU21は、上述した監視部14として機能し、アプリケーションプログラムの名称、キャプション名、操作日時および操作工数などを監視し、操作履歴を作成してログ管理サーバ12へ送信する。表示装置22は、情報を表示するためのユーザインタフェースである。メモリ23は、RAMやROMなどを含む。ネットワークインターフェース24は、ネットワーク50を通じて他のコンピュータと通信するための通信回路である。HDD25は、アプリケーションプログラム27や、操作工数などを監視して操作履歴を作成する監視プログラム28などを記憶する。入力部26(入力装置)は、ポインティングデバイス(マウスやタッチパネル)やキーボードなどである。キーボードはソフトウエアキーボードであってもよい。また、入力部26は、入力された操作者の音声を音声認識機能により認識してCPU21へ指示を入力する音声認識入力部であってもよい。入力部26は、複数のアプリケーションプログラムのうちアクティブウインドウに対応しているアプリケーションプログラムを操作するための操作手段の一例である。
【0018】
図2Bは、ログ管理サーバ12のハードウエア構成を示す図である。ログ管理サーバ12も、コンピュータの一種である。ログ管理サーバ12では、ハードディスクドライブ(HDD35)に記憶されているソフトウエアにしたがってCPU31が各種手段として機能する。メモリ33は、RAMやROMなどを含む。ネットワークインターフェース34は、ネットワーク50を通じて他のコンピュータと通信するための通信回路である。HDD35は、ログ管理プログラム36やログ管理DB15を記憶する。
【0019】
図2Cは、情報分析装置13のハードウエア構成を示す図である。情報分析装置13も、コンピュータの一種である。情報分析装置13では、ハードディスクドライブ(HDD45)に記憶されているソフトウエアにしたがってCPU41が各種手段として機能する。メモリ43は、RAMやROMなどを含む。ネットワークインターフェース44は、ネットワーク50を通じて他のコンピュータと通信するための通信回路である。HDD45は、情報分析プログラム47や、分析結果DB19を記憶する。出力部46は、分析結果を出力する表示装置や印刷装置などである。
【0020】
(監視部14の監視処理)
監視部14の処理について、図3〜5を参照して説明する。端末装置11の監視部14は監視プログラム28にしたがって、この処理を実行する。
【0021】
<基本的な監視処理>
図3によれば、所定監視期間ごとに、アプリケーション名、キーボードの打鍵数およびポインティングデバイスのポインタの移動距離を監視する手法が示されている。この手法では、監視部14として機能するCPU21がタイマーをスタートし、第1の取得時刻のデータ(00:00:00)と、まずOS(オペレーティングシステム)やウインドウマネージャからアプリケーション名を取得する。CPU21は、タイマー値が第2の取得時刻になると、第2の取得時刻のデータ(00:01:00)およびアプリケーション名、それまでに取得したポインタの移動距離M、および、打鍵数Kを1つのレコード(操作履歴)としてメモリ23に記憶する。さらに、CPU21は、第2の取得時刻におけるアプリケーション名を取得する。CPU21は、タイマー値が第3の取得時刻になると、第3の取得時刻のデータ(00:02:00)およびアプリケーション名、それまでに取得したポインタの移動距離M、および、打鍵数Kを1つのレコード(操作履歴)としてメモリ23に記憶する。なお、第1の取得時刻、第2の取得時刻および第3の取得時刻の間隔(取得間隔または取得周期)は、一定時間である。
【0022】
図4には、メモリ23に記録されている操作履歴の一例が示されている。この基本処理によれば、所定時間ごとに、アクティブウインドウのアプリケーション名と操作工数(ポインタの移動距離や打鍵数)を記録できる。よって、情報分析装置13は、操作工数から、端末装置11の操作者がその時間帯に離籍していたのかもしくは在籍していたのか、または、作業に集中していたのかもしくは考え事をしていたのかなどを分析できる。
【0023】
しかし、図3から明らかなように、操作履歴を1分程度に設定してしまうと、その期間内でアクティブウインドウが切り替わったことを十分に反映できないおそれがある。例えば、図3によれば、00:01:00〜00:02:00の期間において「表計算ソフトウエア」から「文書作成ソフトウエア」に切り替わり、さらにそのあとで「表計算ソフトウエア」にアクティブウインドウが切り替わっている。しかし、図4が示すように、「文書作成ソフトウエア」に関する打鍵数とポインタの移動距離が操作履歴には一切反映されていない。
【0024】
仮に、取得間隔を5秒程度に短くすれば、このような「文書作成ソフトウエア」についての操作履歴の取りこぼしは防げるであろう。しかし、取得間隔を短くすれば操作履歴のトータルでのデータサイズが大きくなりすぎ、記憶装置を圧迫するだけでなく、監視部14の負荷も非常に重くなってしまうだろう。そこで、このような課題を解決することが望まれている。
【0025】
<改良案>
本実施形態では、操作履歴の取得開始と取得終了のタイミングを2つの条件に基づいて決定する。1つ目の条件は、上述した基本案で説明したように所定間隔ごとに、取得開始のタイミングと取得終了タイミングを確定することである。2つ目の条件は、アクティブウインドウの切り替えタイミングを取得開始のタイミングと取得終了タイミングとして確定することである。この2つの条件のいずれかが満たされたときに、監視部14は、操作履歴の取得を終了し、次の操作履歴の取得を開始する。
【0026】
図5および図6を用いて改良案について具体的な技術思想について説明する。監視部14として機能するCPU21は、第1の取得時刻において、第1の取得時刻のデータ(00:00:00)と、OSやウインドウマネージャからアプリケーション名を取得する。CPU21は、タイマー値とアクティブウインドウの双方を監視する。つまり、CPU21は、タイマー値が第2の取得時刻になったかどうかと、あるアクティブウインドウから別のアクティブウインドウに切り替わったかどうかを判定する。図5に示した事例では、タイマー値が(00:00:20)になったときに、あるアクティブウインドウから別のアクティブウインドウに切り替わったことをCPU21が検出する。そこで、CPU21は、予めタイマーから取得しておいた取得開始時刻のデータ(00:00:00)、OSから取得しておいたアプリケーション名、その時点までに取得したポインタの移動距離M、および、打鍵数Kを1つのレコード(操作履歴)としてメモリ23に記憶する。さらに、CPU21は、タイマーからその時刻のデータ(00:00:20)を取得し、OSからアクティブウインドウのアプリケーション名を取得する。なお、CPU21は、移動距離M、および、打鍵数Kをそれぞれゼロにリセットする。CPU21は、タイマー値が第2の取得時刻になったかどうかと、あるアクティブウインドウから別のアクティブウインドウに切り替わったかどうかを判定する。CPU21は、第2の取得時刻(00:01:00)になったことを検知すると、予めタイマーから取得しておいた取得開始時刻のデータ(00:00:20)、OSから取得しておいたアプリケーション名、その時点までに取得したポインタの移動距離M、および、打鍵数Kを1つのレコード(操作履歴)としてメモリ23に記憶する。これらの動作を繰り返すことで、図6に示した操作履歴が完成する。
【0027】
図6が示した操作履歴によれば、所定の取得間隔の途中でアクティブウインドウが切り替えられたことも操作履歴に反映されていることがわかる。つまり、端末装置11に負荷をかけすぎることなく、必要な操作履歴を取り漏らさずに取得できるようになる。
【0028】
図7は、監視部14が実行する操作履歴の取得処理の一例を示すフローチャートである。以下では、CPU21が監視プログラム28を実行することで、監視部14として機能する。
【0029】
S701で、CPU21は、ポインタの移動距離M、および、打鍵数Kといった変数をゼロにリセットする。
【0030】
S702で、CPU21は、タイマーから取得開始時刻のデータを取得するとともに、その時点でウィンドウがアクティブとなっているアプリケーションの名称をOSまたはウインドウマネージャから取得する。このように、CPU21は、アクティブウインドウに対応したアプリケーションプログラムの名称を取得する名称取得手段として機能する。
【0031】
S703で、CPU21は、ポインティングデバイスとキーボードを監視し、ポインタの移動距離M、および、打鍵数Kを積算して更新する。このように、CPU21は、取得開始のタイミングを示す時刻データを取得する時刻取得手段と、操作手段の操作工数を取得する操作工数取得手段として機能する。
【0032】
S704で、CPU21は、タイマーから現在の時刻データを取得し、操作履歴の取得を開始した時刻から所定の監視期間(例えば、1分)が経過したか否かを判定する。よって、CPU21は、所定期間の経過を検知する経過検知手段として機能する。所定の監視期間が経過していなければ、S705に進む。所定の監視期間が経過すると、S705をスキップして、S706に進む。
【0033】
S705で、CPU21は、アクティブウインドウが切り替わったかどうかを判定する。よって、CPU21は、情報処理装置において動作している複数のアプリケーションプログラム間でのアクティブウインドウの切り替えを検知する切り替え検知手段として機能する。例えば、CPU21は、OSから取得した現在のアクティブウインドウのアプリケーション名と、S702で取得しておいた操作履歴の取得開始時におけるアプリケーション名とを比較し、両者が一致するか否かを判定する。つまり、CPU21は両者が一致していればアクティブウインドウが切り替わっていないと判定し、両者が一致していなければアクティブウインドウが切り替わったと判定する。アクティブウインドウが切り替わっていれば、S706に進み、アクティブウインドウが切り替わっていなければ、S703に戻る。
【0034】
S701ないしS705のループが示すように、CPU21は、情報処理装置において動作している複数のアプリケーションプログラム間でアクティブウインドウが切り替えられるタイミングを契機として、操作工数取得手段の操作工数の取得開始と取得終了とを制御する制御手段として機能する。また、CPU21は、所定期間が経過するタイミングを契機として、操作工数取得手段の操作工数の取得開始と取得終了とを制御する制御手段として機能する。また、CPU21は、切り替え検知手段がアクティブウインドウの切り替えを検知したタイミング、または、経過検知手段が所定期間の経過を検知したタイミングのうちいずれか先に到来したタイミングを1つの取得期間における取得開始のタイミングとし、切り替え検知手段が次のアクティブウインドウの切り替えを検知したタイミング、または、経過検知手段が次の所定期間の経過を検知したタイミングのうちいずれか先に到来したタイミングを取得期間における取得終了タイミングとして決定するタイミング決定手段として機能している。
【0035】
S706で、CPU21は、S702で取得しておいた取得開始時刻のデータ、OSから取得しておいたアプリケーション名、その時点までに積算したポインタの移動距離M、および、打鍵数Kを1つのレコード(操作履歴)としてメモリ23に記憶する。このように、CPU21やメモリ23は、取得開始から取得終了までを1つの取得期間として取得された操作工数と、取得開始におけるアクティブウインドウに対応したアプリケーションプログラムの名称と、時刻データとを対応付けて操作履歴として記録する記録手段として機能する。
【0036】
S707で、CPU21は、監視終了か否かを判定する。例えば、CPU21は、現在時刻が予め設定された監視終了時刻に一致したか否かや、OSのシャットダウンがキーボード等から指示されたか否かに基づいて、監視を終了すべきか否かを判定する。監視を終了するときはS708に進み、監視を終了しないときはS701に戻り、CPU21は、監視を継続する。
【0037】
S708で、CPU21は、メモリ23から操作履歴を読み出して、ログ管理サーバ12にネットワークインターフェース24を通じて送信する。ログ管理サーバ12のCPU31は、ログ管理プログラム36にしたがってネットワークインターフェース34を使用して操作履歴を受信し、ログ管理DB15に書き込む。その際に、CPU31は、操作履歴を送信してきた端末装置のPC名とユーザ名も操作履歴に対応付けてログ管理DB15に書き込んでもよい。端末装置のPC名とユーザ名は、CPU21が送信するものとする。
【0038】
ここでは、メモリ23に操作履歴を一時的に保存したが、HDD25に保存してもよい。
【0039】
(情報分析処理)
図8は、情報分析処理の一例を示すフローチャートである。
【0040】
情報分析装置13のCPU41は情報分析プログラム47にしたがってこの情報分析処理を実行する。これにより、CPU41は、分析部18として機能することになる。なお、本処理が実行される前に、ログ管理サーバ12は、端末装置11から操作履歴を受信し、それをログ管理DB15に登録する。
【0041】
S801で、CPU41は、操作履歴をメモリ43に入力する。例えば、CPU41は、ログ管理サーバ12のログ管理DB15から操作履歴を受信してもよいし、CD−ROMなどのデータ記憶媒体から読み出してもよい。なお、操作履歴の読出単位は、ユーザ名、PC名、操作開始日時等、自由に設定できる。なお、本実施形態では、操作履歴を所定の監視期間単位でも記憶しているため、操作履歴の読み出し単位として一定の期間を指定することができる。例えば、監視期間が1分であれば、読み出し単位を1分単位で指定できる利点がある。一般には、1時間、8時間、午前の就業時間(4時間)、午後の就業時間(4時間)などを読み出しの単位として指定できる。
【0042】
S802で、CPU41は、読み出した操作履歴から該当するレコードを1つずつ読み出し、キーボード打鍵数Kが所定の閾値th1を超えているか否かを判定する。キーボード打鍵数Kが閾値th1を超えていれば、S804に進む。閾値th1は、各職場ごとに経験的に決定される閾値である。打鍵数Kが数回など極めて小さい場合は、誤検知の可能性がある。そこで、誤検知をカウントしないようにするために、閾値以下の打鍵数は積算しないようにしている。
【0043】
一方、キーボード打鍵数Kが閾値th1を超えていなければ、S803に進む。キーボード打鍵数Kが閾値th1を超えていれば、S804に進む。
【0044】
S803で、CPU41は、操作履歴を参照し、ポインタ移動距離Mが所定の閾値th2を超えているか否かを判定する。閾値th2も、各職場ごとに経験的に決定される閾値である。机の振動などにより、ポインティングデバイスのポインタが移動してしまうことがある。これをカウントしてしまうと、操作者が離籍しているか在籍しているのかを精度よく検知できなくなってしまう。そこで、閾値以下のポインタ移動距離Mに関しても積算しないようにしている。ポインタ移動距離Mが閾値th2を超えていれば、S804に進む。キーボード打鍵数Kが閾値th1を超えておらず、かつ、ポインタ移動距離が閾値th2を超えていなければ、操作履歴から求められる操作時間を、該当するアプリケーションの操作時間に加算せず、S805に進む。
【0045】
S804で、CPU41は、操作履歴から求められる操作時間と操作工数とを、該当するアプリケーションの操作時間と操作工数にそれぞれ加算するカウント処理を行う。CPU41は、ポインタ移動距離Mとキーボード打鍵数Kとをそれぞれ個別に積算する。なお、カウント後の積算値はメモリ43に記憶される。このように、CPU41は、操作履歴に含まれているアプリケーションプログラムの名称に基づいて、対応する時刻データからアプリケーションプログラムの操作時間を積算する操作時間積算手段として機能する。操作履歴に含まれているアプリケーションプログラムの名称に基づいて、対応する操作工数を積算する操作工数積算手段として機能する。
【0046】
S805で、CPU41は、読み出した操作履歴を構成するすべてのレコードについて分析処理を終了したか否かを判定する。分析処理が終了していなければ、次のレコードについて分析するために、S802に戻る。分析処理が終了していれば、S806に進む。
【0047】
S806で、CPU41は、各アプリケーションの操作時間を算出し、分析結果DB19に分析結果を書き込む。
【0048】
S807で、CPU41は、分析結果を出力部46から出力する。CPU41や出力部46は、操作時間と、積算された操作工数の値とを対応するアプリケーションプログラムの名称とともに分析結果として出力する出力手段として機能する。
【0049】
図9は、分析結果の一例を示す図である。とりわけ、図9(A)は、図6に示した操作履歴のうち、最初の3分間の操作履歴を積算した結果を示している。この結果、各アプリケーションがどの程度の時間にわたって使用されているかがわかる。また、CPU41は、所定期間(例:5分)ごとに上記の積算処理を行ってもよい。その結果、ある期間において、アクティブウインドウの切り替えが発生していなければ、操作者は、端末装置11の表示画面を見ながら考えごとをしているか、離籍している可能性がある。
【0050】
図9(B)は、操作者が離籍しているときの分析結果を示している。5分間にわたってアクティブウインドウの切り替えが発生しておらず、かつ、ポインティングデバイスもキーボードも操作されていない。そのため、CPU41は、操作者が離籍していることを示すメッセージを表示する。なお、このような分析結果をCPU41が分析結果DB19に書き込んでもよい。CPU41は、ある積算期間において、ポインタ移動距離Mの積算値が閾値th3を超えておらず、かつ、キーボード打鍵数Kが閾値th4を超えていなければ、この離籍メッセージを出力してもよい。
【0051】
図9(C)は、操作者が考えごとをしているときの分析結果を示している。5分間にわたってアクティブウインドウの切り替えが発生していないが、ポインティングデバイスが多少移動している。そのため、CPU41は、操作者が画面を見ながら考えごとをしていることを示すメッセージを表示する。このような分析結果もCPU41が分析結果DB19に書き込んでもよい。例えば、CPU41は、ある積算期間において、ポインタ移動距離Mの積算値が閾値th3以下であるか、または、キーボード打鍵数Kが閾値th4以下であれば、この操作者の作業効率が低下していることを示すメッセージを出力してもよい。
【0052】
以上のように、第一実施形態によれば、アクティブウインドウの切り替えを検知したタイミング、または、所定期間の経過を検知したタイミングのうちいずれか先に到来したタイミングを1つの取得期間における取得開始のタイミングとし、次のアクティブウインドウの切り替えを検知したタイミング、または、次の所定期間の経過を検知したタイミングのうちいずれか先に到来したタイミングを1つの取得期間における取得終了タイミングとして決定することで、従来よりも正確なアプリケーションごとの操作時間を把握できるようになる。
【0053】
<第二実施形態>
第一実施形態の監視部14は、アクティブウインドウの切り替えを検知したタイミング、または、所定期間の経過を検知したタイミングのうちいずれか先に到来したタイミングを1つの取得期間における取得開始のタイミングとし、次のアクティブウインドウの切り替えを検知したタイミング、または、次の所定期間の経過を検知したタイミングのうちいずれか先に到来したタイミングを1つの取得期間における取得終了タイミングとして決定することに特徴があった。
【0054】
しかし、アクティブウインドウの切り替えを検知したタイミングから、次にアクティブウインドウの切り替えを検知したタイミングまでを第1のサブ期間として操作履歴(サブ履歴)を取得し、所定期間の経過を検知したタイミングから次の所定期間の経過を検知したタイミングまでを第2のサブ期間として操作履歴(サブ履歴)を取得してこれらを分析しても第一実施形態と同様の効果が得られる。
【0055】
図10は、2つのサブ期間を説明するための図である。図10が示すように、第2実施形態では、監視部14が2つのサブ期間についてそれぞれサブ履歴を記録してゆく。第1のサブ期間(i)は、アクティブウインドウの切り替えタイミングが起点と終点になるため、基本的に、長さが可変の期間である。よって、監視部14は、アクティブウインドウの切り替えごとに、サブ履歴をログ管理サーバ12に送信する。一方、第2のサブ期間は、一定期間(例:1分)である。よって、監視部14は、一定期間ごとに、サブ履歴をログ管理サーバ12に送信する。
【0056】
図11は、アクティブウインドウの切り替えごとにサブ履歴を取得することを示したフローチャートである。図12は、一定期間ごとにサブ履歴を取得することを示したフローチャートである。これらの処理はCPU21によって同時並行的に実行される。なお、第1実施形態と共通する部分には同一の参照符号を付与している。
【0057】
図11において、S701ないしS703を実行したあとでS1101に進む。S1101で、CPU21は、アクティブウインドウが切り替わったかどうかを判定する。アクティブウインドウが切り替わっていれば、S1102に進み、アクティブウインドウが切り替わっていなければ、S703に戻る。
【0058】
S1102で、CPU21は、CPU21は、S702で取得しておいた取得開始時刻のデータ、OSから取得しておいたアプリケーション名、その時点までに積算したポインタの移動距離M、および、打鍵数Kを1つのレコード(サブ履歴)としてメモリ23に記憶する。なお、第二実施形態では、取得期間の開始タイミングを示す時刻データとして、サブ期間の開始タイミングを示す時刻データが取得されることになる。
【0059】
S1103で、CPU21は、メモリ23からサブ履歴を読み出して、ログ管理サーバ12にネットワークインターフェース24を通じて送信する。
【0060】
S1104で、CPU21は、監視終了か否かを判定する。監視を終了しないときはS701に戻り、CPU21は、監視を継続する。
【0061】
このように、CPU21は、切り替え検知手段がアクティブウインドウの切り替えを検知したタイミングから、切り替え検知手段が次にアクティブウインドウの切り替えを検知したタイミングまでを第1のサブ期間として操作工数取得手段に操作工数を取得させる制御手段として機能する。また、CPU21は、第1のサブ期間に取得された操作工数と第1のサブ期間の開始タイミングにおけるアクティブウインドウに対応したアプリケーションプログラムの名称とを対応付けて操作履歴として記録する記録手段として機能する。
【0062】
図12において、S701ないしS703を実行したあとでS1201に進む。S1201で、CPU21は、一定期間が終了したかどうかを判定する。一定期間が終了していれば、S1102に進み、アクティブウインドウが切り替わっていなければ、S703に戻る。S1102ないしS1104は、図11で説明したとおりであるため説明を省略する。
【0063】
このように、CPU21は、経過検知手段が所定期間の経過を検知したタイミングから経過検知手段が次の所定期間の経過を検知したタイミングまでを第2のサブ期間として操作工数取得手段に操作工数を取得させる制御手段として機能する。また、CPU21は、第2のサブ期間に取得された操作工数と第2のサブ期間の開始タイミングにおけるアクティブウインドウに対応したアプリケーションプログラムの名称とを対応付けて操作履歴として記録する記録手段として機能する。
【0064】
情報分析装置13のCPU41は、第1のサブ履歴と、第2のサブ履歴をログ管理サーバ12から読み出し、アクティブウインドウの切り替えを検知したタイミング、または、所定期間の経過を検知したタイミングのうちいずれか先に到来したタイミングを1つの取得期間における取得開始のタイミングとし、次のアクティブウインドウの切り替えを検知したタイミング、または、次の所定期間の経過を検知したタイミングのうちいずれか先に到来したタイミングを1つの取得期間における取得終了タイミングとして決定することで、1つの取得期間ごとの操作履歴(メイン履歴)を作成する。作成されたメイン履歴は、図6に示した操作履歴と同様の履歴となる。操作履歴の分析処理は、第一実施形態と同様である。なお、操作履歴の作成は、情報分析装置13のCPU41の代わりに、端末装置11のCPU21やログ管理サーバ12のCPU31が実行してもよい。いずれもサブ履歴にアクセス可能だからである。
【0065】
このように第二実施形態によっても第一実施形態と同様の効果が得られる。なお、サブ履歴を取得した後に、各職場の環境に応じて監視期間(一定期間)を変更してもよい。この場合に、第二実施形態では、アプリケーションの操作時間を把握できるだろう。
【0066】
<他の実施形態>
上述したログ管理サーバ12と情報分析装置13が同一のサーバ上で実現してもよいし、それぞれ異なるサーバ上で実行されてもよい。前者の場合、ログ管理サーバ12と情報分析装置13とがネットワーク50を通じてデータ通信を行う必要がなくなるメリットがある。この場合、情報分析装置13が、ログ管理DB15、分析部18、分析結果DB19を備えることになる。このように、ログ管理サーバ12と情報分析装置13を同一のサーバ上で実現することで、同一企業内での操作履歴と分析結果を管理が可能となる。よって、よりセキュリティを考慮した分析が可能となる。

【特許請求の範囲】
【請求項1】
複数のアプリケーションプログラムが同時に稼働可能な情報処理装置であって、
前記複数のアプリケーションプログラムのうちアクティブウインドウに対応しているアプリケーションプログラムを操作するための操作手段と、
前記操作手段の操作工数を取得する操作工数取得手段と、
前記アクティブウインドウに対応したアプリケーションプログラムの名称を取得する名称取得手段と、
前記情報処理装置において動作している前記複数のアプリケーションプログラム間でアクティブウインドウが切り替えられるタイミングを契機として、前記操作工数取得手段の操作工数の取得開始と取得終了とを制御するとともに、所定期間が経過するタイミングを契機として、前記操作工数取得手段の操作工数の取得開始と取得終了とを制御する制御手段と、
前記取得開始のタイミングを示す時刻データを取得する時刻取得手段と、
前記取得開始から前記取得終了までを1つの取得期間として取得された前記操作工数と、該取得開始における前記アクティブウインドウに対応したアプリケーションプログラムの名称と、前記時刻データとを対応付けて操作履歴として記録する記録手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記制御手段は、
前記情報処理装置において動作している前記複数のアプリケーションプログラム間でのアクティブウインドウの切り替えを検知する切り替え検知手段と、
所定期間の経過を検知する経過検知手段と、
前記切り替え検知手段がアクティブウインドウの切り替えを検知したタイミングと前記経過検知手段が所定期間の経過を検知したタイミングとのうちいずれか先に到来したタイミングを1つの取得期間における取得開始のタイミングとし、前記切り替え検知手段が次のアクティブウインドウの切り替えを検知したタイミングと前記経過検知手段が次の所定期間の経過を検知したタイミングとのうちいずれか先に到来したタイミングを前記取得期間における取得終了タイミングとして決定するタイミング決定手段と
を備えることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記制御手段は、
前記情報処理装置において動作している前記複数のアプリケーションプログラム間でのアクティブウインドウの切り替えを検知する切り替え検知手段と、
所定期間の経過を検知する経過検知手段と
を備え、
前記制御手段は、
前記切り替え検知手段がアクティブウインドウの切り替えを検知したタイミングから、前記切り替え検知手段が次にアクティブウインドウの切り替えを検知したタイミングまでを第1のサブ期間として前記操作工数取得手段に操作工数を取得させるとともに、前記経過検知手段が所定期間の経過を検知したタイミングから前記経過検知手段が次の所定期間の経過を検知したタイミングまでを第2のサブ期間として前記操作工数取得手段に操作工数を取得させ、
前記記録手段は、
前記第1のサブ期間に取得された操作工数と前記第1のサブ期間の開始タイミングにおける前記アクティブウインドウに対応したアプリケーションプログラムの名称とを対応付けて操作履歴として記録するとともに、前記第2のサブ期間に取得された操作工数と前記第2のサブ期間の開始タイミングにおける前記アクティブウインドウに対応したアプリケーションプログラムの名称とを対応付けて操作履歴として記録する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項4】
前記時刻取得手段は、前記取得期間の開始タイミングを示す時刻データとして、前記サブ期間の開始タイミングを示す時刻データを取得することを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記操作工数は、
前記操作手段の1つであるキーボードの打鍵数と、
前記操作手段の1つであるポインティングデバイスのポインタの移動距離と
のうち少なくとも一方を含むことを特徴とする請求項1ないし4のいずれか1項に記載の情報処理装置。
【請求項6】
情報処理システムであって、
請求項1ないし5のいずれか1項に記載の情報処理装置と、
前記情報処理装置において取得された操作履歴を分析する情報分析装置と
を備え、
前記情報分析装置は、
前記操作履歴に含まれているアプリケーションプログラムの名称に基づいて、対応する時刻データから該アプリケーションプログラムの操作時間を積算する操作時間積算手段と、
前記操作履歴に含まれているアプリケーションプログラムの名称に基づいて、対応する操作工数を積算する操作工数積算手段と、
前記操作時間と、前記積算された操作工数の値とを対応するアプリケーションプログラムの名称とともに分析結果として出力する出力手段と
を備えることを特徴とする情報処理システム。
【請求項7】
前記操作工数積算手段は、複数の操作履歴に含まれているそれぞれの操作工数のうち閾値を超える操作工数のみを積算することを特徴とする請求項6に記載の情報処理システム。
【請求項8】
複数のアプリケーションプログラムが同時に稼働可能な情報処理装置において実行される情報処理方法であって、
前記情報処理装置に備えられている操作工数取得手段が、前記複数のアプリケーションプログラムのうちアクティブウインドウに対応しているアプリケーションプログラムを操作するための操作手段の操作工数を取得する操作工数取得工程と、
前記情報処理装置に備えられている名称取得手段が、前記アクティブウインドウに対応したアプリケーションプログラムの名称を取得する名称取得工程と、
制御手段が、前記情報処理装置において動作している前記複数のアプリケーションプログラム間でアクティブウインドウが切り替えられるタイミングを契機として、前記操作工数取得工程における操作工数の取得開始と取得終了とを制御するとともに、所定期間が経過するタイミングを契機として、前記操作工数取得工程における操作工数の取得開始と取得終了とを制御する制御工程と、
前記情報処理装置に備えられている時刻取得手段が、前記取得開始のタイミングを示す時刻データを取得する時刻取得工程と、
前記情報処理装置に備えられている記録手段が、前記取得開始から前記取得終了までを1つの取得期間として取得された前記操作工数と、該取得開始における前記アクティブウインドウに対応したアプリケーションプログラムの名称と、前記時刻データとを対応付けて操作履歴として記録する記録工程と
を備えることを特徴とする情報処理方法。
【請求項9】
複数のアプリケーションプログラムが同時に稼働可能な情報処理装置に、
前記複数のアプリケーションプログラムのうちアクティブウインドウに対応しているアプリケーションプログラムを操作するための操作手段と、
前記操作手段の操作工数を取得する操作工数取得手段と、
前記アクティブウインドウに対応したアプリケーションプログラムの名称を取得する名称取得手段と、
前記情報処理装置において動作している前記複数のアプリケーションプログラム間でアクティブウインドウが切り替えられるタイミングを契機として、前記操作工数取得手段の操作工数の取得開始と取得終了とを制御するとともに、所定期間が経過するタイミングを契機として、前記操作工数取得手段の操作工数の取得開始と取得終了とを制御する制御手段と、
前記取得開始のタイミングを示す時刻データを取得する時刻取得手段と、
前記取得開始から前記取得終了までを1つの取得期間として取得された前記操作工数と、該取得開始における前記アクティブウインドウに対応したアプリケーションプログラムの名称と、前記時刻データとを対応付けて操作履歴として記録する記録手段と
して機能させることを特徴とするプログラム。

【図1】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図2C】
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