(57)【要約】【課題】業務との関連が特定されていないアプリケーションを使用した場合にも計算機に対する操作と業務との関連を正確に把握する。【解決手段】ソフトウェアを特定する情報に業務の名称を対応付けた作業名定義を記憶部に設定し、入力装置からの指令によって切り替えられたソフトウェアの識別子を操作情報として生成し、入力装置からの指令によってクリップボードに対するコピーを行ったデータの送信元のソフトウェアの識別子と、クリップボードからペーストを行ったソフトウェアの識別子をデータ授受情報として生成し、操作情報で作業名定義を検索して操作情報に対応する業務の名称を特定し、当該業務の名称を当該操作情報の作業名として設定し、データ授受情報で作業名定義を検索してデータ授受情報に対応する業務の名称を特定し、当該データ授受情報に対応する操作情報の作業名に当該業務の名称を設定する。【選択図】図２
2010128916.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと記憶部と入力装置及び出力装置を備えた計算機と、前記計算機で稼動するＯＳ上で実行される複数のソフトウェアと、を備え、前記ソフトウェアに対する前記入力装置からの操作の履歴に基づいて前記計算機の使用者が行った業務の内容を前記計算機で分析する作業内容分析方法において、
前記プロセッサに実行されるＯＳが、前記入力装置からのコピーまたはカットの指令に基づいて前記ソフトウェアのデータを保持し、前記入力装置からのペーストの指令に基づいて前記保持したデータを選択されたソフトウェアに送信する記憶領域を前記記憶部に設定するステップと、
前記ソフトウェアを特定する情報に前記業務の名称を対応付けた作業名定義を予め前記記憶部に設定するステップと、
前記入力装置からの指令によって前記ＯＳ上で稼動する複数のソフトウェアのうちのひとつに切り替えられたことを検知し、前記切り替えられたソフトウェアの第１の識別子と前記指令のあった第１の時刻を操作情報として生成するステップと、
前記取得した操作情報を前記記憶部へ蓄積するステップと、
前記入力装置からの指令によって前記記憶領域に対するコピーまたはカットを行ったデータの送信元のソフトウェアの第２の識別子と、前記記憶領域からのペーストを行ったデータの送信先のソフトウェアの第３の識別子及び第２の時刻をデータ授受情報として生成するステップと、
前記取得したデータ授受情報を前記記憶部へ蓄積するステップと、
前記蓄積した操作情報で前記作業名定義を検索し、前記操作情報に対応する前記業務の名称を特定し、前記特定した業務の名称を当該操作情報の作業名として設定するステップと、
前記データ授受情報で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定するステップと、
を含むことを特徴とする作業内容分析方法。
【請求項２】
請求項１に記載の作業内容分析方法であって、
前記蓄積した操作情報で前記作業名定義を検索し、前記操作情報に対応する前記業務の名称を特定し、前記特定した業務の名称を当該操作情報の作業名として設定するステップは、
前記操作情報に含まれる前記ソフトウェアの第１の識別子が、前記作業名定義の前記ソフトウェアを特定する情報と一致したときに、当該作業名定義の前記業務の名称を当該操作情報の作業名として設定し、
前記データ授受情報で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定するステップは、
前記操作情報に含まれる前記ソフトウェアの第１の識別子が、前記作業名定義の前記ソフトウェアを特定する情報と一致しない場合には、前記送信元のソフトウェアの第２の識別子が前記操作情報に含まれる前記ソフトウェアの第１の識別子と一致する前記データ授受情報を検索し、前記送信元のソフトウェアの第２の識別子が前記操作情報に含まれる前記ソフトウェアの第１の識別子と一致した前記データ授受情報があった場合には、当該データ授受情報の前記送信先のソフトウェアの第３の識別子で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定することを特徴とする作業内容分析方法。
【請求項３】
請求項１に記載の作業内容分析方法であって、
前記操作情報は、前記選択されたソフトウェアのデータが更新されたか否かを示す更新情報を含み、
前記データ授受情報で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定するステップは、
前記操作情報に含まれる前記ソフトウェアの第１の識別子が、前記作業名定義の前記ソフトウェアを特定する情報と一致し、かつ、前記更新情報がデータの更新が行われていないことを示す場合には、前記送信元のソフトウェアの第２の識別子が前記操作情報に含まれる前記ソフトウェアの第１の識別子と一致する前記データ授受情報を検索し、前記送信元のソフトウェアの第２の識別子が前記操作情報に含まれる前記ソフトウェアの第１の識別子と一致した前記データ授受情報があった場合には、当該データ授受情報の前記送信先のソフトウェアの第３の識別子で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定することを特徴とする作業内容分析方法。
【請求項４】
請求項１に記載の作業内容分析方法であって、
前記入力装置からの指令によって前記ＯＳ上で稼動する複数のソフトウェアのうちのひとつに切り替えられたことを検知し、前記切り替えられたソフトウェアの第１の識別子と前記指令のあった第１の時刻を操作情報として生成するステップは、
前記入力装置からの指令があったときに当該指令を取得するステップと、
当該指令のあった時刻と、前回の指令があった時刻の差が所定値を越えたか否かを判定し、前記差が所定値を超えていた場合には、前記ソフトウェアの第１の識別子として入力がないことを設定し、前記第１の時刻には前回の指令があった時刻を設定するステップと、
を含むことを特徴とする作業内容分析方法。
【請求項５】
請求項１に記載の作業内容分析方法であって、
前記作業名を設定された前記操作情報を、前記第１の時刻の時系列で前記出力装置に表示するステップをさらに含むことを特徴とする作業内容分析方法。
【請求項６】
請求項５に記載の作業内容分析方法であって、
前記作業名を設定された前記操作情報を、前記第１の時刻の時系列で前記出力装置に表示するステップは、
前記操作情報に対応する前記データ授受情報を前記第２の時刻の時系列で前記出力装置に表示することを特徴とする作業内容分析方法。
【請求項７】
プロセッサと記憶部と入力装置及び出力装置を備えた計算機と、前記計算機で稼動するＯＳ上で実行される複数のソフトウェアと、を備え、前記ソフトウェアに対する前記入力装置からの操作の履歴に基づいて前記計算機の使用者が行った業務の内容を前記計算機で分析するプログラムにおいて、
前記記憶部には、前記入力装置からのコピーまたはカットの指令に基づいて前記ソフトウェアのデータを保持し、前記入力装置からのペーストの指令に基づいて前記保持したデータを選択されたソフトウェアに送信する記憶領域が設定され、
前記ソフトウェアを特定する情報に前記業務の名称を対応付けた作業名定義を予め前記記憶部に設定する手順と、
前記入力装置からの指令によって前記ＯＳ上で稼動する複数のソフトウェアのうちのひとつに切り替えられたことを検知し、前記切り替えられたソフトウェアの第１の識別子と前記指令のあった第１の時刻を操作情報として生成する手順と、
前記取得した操作情報を前記記憶部へ蓄積する手順と、
前記入力装置からの指令によって前記記憶領域に対するコピーまたはカットを行ったデータの送信元のソフトウェアの第２の識別子と、前記記憶領域からのペーストを行ったデータの送信先のソフトウェアの第３の識別子及び第２の時刻をデータ授受情報として生成する手順と、
前記取得したデータ授受情報を前記記憶部へ蓄積する手順と、
前記蓄積した操作情報で前記作業名定義を検索し、前記操作情報に対応する前記業務の名称を特定し、前記特定した業務の名称を当該操作情報の作業名として設定する手順と、
前記データ授受情報で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定する手順と、
を前記計算機に実行させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムであって、
前記蓄積した操作情報で前記作業名定義を検索し、前記操作情報に対応する前記業務の名称を特定し、前記特定した業務の名称を当該操作情報の作業名として設定する手順は、
前記操作情報に含まれる前記ソフトウェアの第１の識別子が、前記作業名定義の前記ソフトウェアを特定する情報と一致したときに、当該作業名定義の前記業務の名称を当該操作情報の作業名として設定し、
前記データ授受情報で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定する手順は、
前記操作情報に含まれる前記ソフトウェアの第１の識別子が、前記作業名定義の前記ソフトウェアを特定する情報と一致しない場合には、前記送信元のソフトウェアの第２の識別子が前記操作情報に含まれる前記ソフトウェアの第１の識別子と一致する前記データ授受情報を検索し、前記送信元のソフトウェアの第２の識別子が前記操作情報に含まれる前記ソフトウェアの第１の識別子と一致した前記データ授受情報があった場合には、当該データ授受情報の前記送信先のソフトウェアの第３の識別子で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定することを特徴とするプログラム。
【請求項９】
請求項７に記載のプログラムであって、
前記操作情報は、前記選択されたソフトウェアのデータが更新されたか否かを示す更新情報を含み、
前記データ授受情報で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定する手順は、
前記操作情報に含まれる前記ソフトウェアの第１の識別子が、前記作業名定義の前記ソフトウェアを特定する情報と一致し、かつ、前記更新情報がデータの更新が行われていないことを示す場合には、前記送信元のソフトウェアの第２の識別子が前記操作情報に含まれる前記ソフトウェアの第１の識別子と一致する前記データ授受情報を検索し、前記送信元のソフトウェアの第２の識別子が前記操作情報に含まれる前記ソフトウェアの第１の識別子と一致した前記データ授受情報があった場合には、当該データ授受情報の前記送信先のソフトウェアの第３の識別子で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定することを特徴とするプログラム。
【請求項１０】
請求項７に記載のプログラムであって、
前記入力装置からの指令によって前記ＯＳ上で稼動する複数のソフトウェアのうちのひとつに切り替えられたことを検知し、前記切り替えられたソフトウェアの第１の識別子と前記指令のあった第１の時刻を操作情報として生成する手順は、
前記入力装置からの指令があったときに当該指令を取得する手順と、
当該指令のあった時刻と、前回の指令があった時刻の差が所定値を越えたか否かを判定し、前記差が所定値を超えていた場合には、前記ソフトウェアの第１の識別子として入力がないことを設定し、前記第１の時刻には前回の指令があった時刻を設定する手順と、
を含むことを特徴とするプログラム。
【請求項１１】
請求項７に記載のプログラムであって、
前記作業名を設定された前記操作情報を、前記第１の時刻の時系列で前記出力装置に表示する手順をさらに含むことを特徴とするプログラム。
【請求項１２】
請求項１１に記載のプログラムであって、
前記作業名を設定された前記操作情報を、前記第１の時刻の時系列で前記出力装置に表示する手順は、
前記操作情報に対応する前記データ授受情報を前記第２の時刻の時系列で前記出力装置に表示することを特徴とするプログラム。
【請求項１３】
プロセッサと記憶部と入力装置及び出力装置を備えた計算機と、前記計算機で稼動するＯＳ上で実行される複数のソフトウェアと、前記ソフトウェアに対する前記入力装置からの操作の履歴に基づいて前記計算機の使用者が行った業務の内容を分析する作業内容分析部を備えた作業内容分析システムにおいて、
記憶部は、
前記入力装置からのコピーまたはカットの指令に基づいて前記ソフトウェアのデータを保持し、前記入力装置からのペーストの指令に基づいて前記保持したデータを選択されたソフトウェアに送信する記憶領域と、
前記ソフトウェアを特定する情報に前記業務の名称を予め対応付けた作業名定義と、を有し、
作業内容分析部は、
前記入力装置からの指令によって前記ＯＳ上で稼動する複数のソフトウェアのうちのひとつに切り替えられたことを検知し、前記切り替えられたソフトウェアの第１の識別子と前記指令のあった第１の時刻を操作情報として生成し、前記記憶部に蓄積する操作情報収集部と、
前記入力装置からの指令によって前記記憶領域に対するコピーまたはカットを行ったデータの送信元のソフトウェアの第２の識別子と、前記記憶領域からのペーストを行ったデータの送信先のソフトウェアの第３の識別子及び第２の時刻をデータ授受情報として生成し、前記記憶部へ蓄積するデータ授受情報収集部と、
前記積した操作情報で前記作業名定義を検索し、前記操作情報に対応する前記業務の名称を特定し、前記特定した業務の名称を当該操作情報の作業名として設定する第１の作業名決定部と、
前記データ授受情報で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定する第２の作業名決定部と、
を有することを特徴とする作業内容分析システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを用いた業務の分析方法に関し、特に、複数のアプリケーションまたは複数のオブジェクトを利用する計算機の操作履歴から業務の分析を行う方法及びシステムに関する。
【背景技術】
【０００２】
パーソナルコンピュータやワークステーションなどの計算機（以下、ＰＣとする）の普及とネットワークの普及に伴って、近年のオフィスでは従業員毎（または作業者毎）にＰＣを保有し、ＰＣ上で作業を行うことが一般的になっている。
【０００３】
帳票などを用いた過去の作業に比して、ＰＣを主体にした業務（デスクワーク）ではデータの集計などが容易になって業務の効率を向上させることができる。反面、ＰＣを主体にした業務の場合、情報の作成、加工が主体となるため、過去の例のように帳票などの形のあるものが必ず出力されるわけではない。過去の例では、業務の進捗度が低い従業員の机には、多くの帳票や資料が存在する場合が多い。そして、過去の例では、業務の管理者が、各従業員が保有する帳票や資料の量を目安に、業務の配分を検討することが可能であった。
【０００４】
一方、近年のＰＣを主体にした業務では、情報の操作が主体であるため、業務の管理者が従業員の作業量（事務量）を的確に把握するのが難しい。
【０００５】
従業員毎の作業量の捕捉は、従業員に対する対面ヒアリングの結果によっても得ることができるが、ヒアリング結果はそのヒアリング対象である経営者や従業員の主観が含まれているため、客観的な分析を行うことができない。
【０００６】
そこで、オフィスのＰＣのディスプレイ上に、業務の内容を示すアイコンを業務の種類毎に表示させておき、従業員が業務を開始する度に、開始する業務の種類に応じたアイコンをクリックさせて、従業員の業務内容を把握するものが知られている（例えば、特許文献１）。この従来例では、従業員が電話の応対を行う場合には、ＰＣのディスプレイ上の電話のアイコンをクリックし、帳票の作成または修正を行う場合には、帳票のアイコンをクリックし、後にクリックした内容を集計することで、従業員毎の業務内容を把握しようとするものである。
【０００７】
さらに、従業員が行ったＰＣに対する操作と業務との関連を自動的に把握する手法も提案されている（例えば、非特許文献１）。この従来例では、ＰＣで稼動するアプリケーションのウィンドウタイトルと時刻を取得し、予め設定しておいたウィンドウタイトルと作業名から、従業員が行った作業名を時系列的に分類するものである。
【特許文献１】特開２００２−１０７４７３号
【非特許文献１】直野 健、恵木 正史、「受注センタにおける業務解析事例」、情報処理学会研究報告  [分散システム/インターネット運用技術]、社団法人情報処理学会、２００６年３月、Vol.2006, No.38(20060329) pp.103-108
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１では、従業員が新たな業務を開始する度に、アイコンをクリックしなければならず、アイコンをクリックしない場合には、前回クリックした業務内容が継続していると見なされるため、従業員の業務内容を測定することは難しい、という問題があった。また、上記特許文献１では、業務内容を測定するために新たな作業を従業員に要求するため、従業員にしてみれば業務の負荷が増えるだけであり、業務の効率を低下させるだけであった。
【０００９】
また、上記非特許文献１では、予め作業名（または業務）が定義されているウィンドウタイトルについては作業名を特定できるが、作業名が定義されていないウィンドウタイトルについては作業名を特定することができない、という問題があった。すなわち、従業員がＰＣを操作して業務を行う際に、電卓やメモ帳といったアプリケーションを補助的に使用し、これらの補助的なアプリケーションでデータを加工し、加工したデータをコピーまたはカットし、作業名が定義されているウィンドウタイトルのアプリケーションにペーストすることが行われている。同様に、従業員が個人的に用意したウィンドウタイトルでデータを加工し、加工したデータをコピーまたはカットし、作業名が定義されているウィンドウタイトルのアプリケーションにペーストすることが行われている。これらの補助的に使用されるアプリケーションは、様々なアプリケーションと共に利用されるため、ウィンドウタイトルを特定の作業名に関連づけることができず、上記非特許文献１では、このような補助的なアプリケーションを使用した時間帯の作業の内容が把握できないという問題があった。同様に、従業員が個人的に作成したウィンドウタイトルについては業務（作業名）との関連付けを行うことが難しく上記非特許文献１では、このような定義されていないウィンドウタイトルを使用した時間帯の作業の内容が把握できないという問題があった。
【００１０】
そこで本発明は、上記問題点に鑑みてなされたもので、業務との関連が特定されていないアプリケーションやウィンドウタイトルを使用した場合にも、計算機に対する操作と業務との関連を正確に把握することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、プロセッサと記憶部と入力装置及び出力装置を備えた計算機と、前記計算機で稼動するＯＳ上で実行される複数のソフトウェアと、を備え、前記ソフトウェアに対する前記入力装置からの操作の履歴に基づいて前記計算機の使用者が行った業務の内容を前記計算機で分析する作業内容分析方法において、前記プロセッサに実行されるＯＳが、前記入力装置からのコピーまたはカットの指令に基づいて前記ソフトウェアのデータを保持し、前記入力装置からのペーストの指令に基づいて前記保持したデータを選択されたソフトウェアに送信する記憶領域を前記記憶部に設定するステップと、前記ソフトウェアを特定する情報に前記業務の名称を対応付けた作業名定義を予め前記記憶部に設定するステップと、前記入力装置からの指令によって前記ＯＳ上で稼動する複数のソフトウェアのうちのひとつに切り替えられたことを検知し、前記切り替えられたソフトウェアの第１の識別子と前記指令のあった第１の時刻を操作情報として生成するステップと、前記取得した操作情報を前記記憶部へ蓄積するステップと、前記入力装置からの指令によって前記記憶領域に対するコピーまたはカットを行ったデータの送信元のソフトウェアの第２の識別子と、前記記憶領域からのペーストを行ったデータの送信先のソフトウェアの第３の識別子及び第２の時刻をデータ授受情報として生成するステップと、前記取得したデータ授受情報を前記記憶部へ蓄積するステップと、前記蓄積した操作情報で前記作業名定義を検索し、前記操作情報に対応する前記業務の名称を特定し、前記特定した業務の名称を当該操作情報の作業名として設定するステップと、前記データ授受情報で前記作業名定義を検索し、前記データ授受情報に対応する前記業務の名称を特定し、当該データ授受情報に対応する前記操作情報の作業名として前記データ授受情報に対応する前記業務の名称を設定するステップと、を含む。
【発明の効果】
【００１２】
したがって、本発明は、業務との関連が特定されていないアプリケーションやウィンドウタイトルを使用した場合にも、計算機に対する操作と業務との関連を正確に把握することができ、業務の分析精度を向上させることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の一実施形態を添付図面に基づいて説明する。
【００１４】
＜第１の実施形態＞
図１は、第１の実施形態を示し、本発明を適用する計算機システムの一例を示すブロック図である。図１はオフィスで使用される計算機システムを示し、Ｎ個のクライアントコンピュータ（クライアント計算機）１−Ａ〜１−Ｎを複数のユーザ（あるいは従業員または使用者）がそれぞれ操作して、業務を実行する。そして、各ユーザは各自のクライアントコンピュータ１−Ａ〜１−Ｎを操作して複数のアプリケーション５１、５２を実行させ、報告書の作成やデータベース（図示省略）の参照や修正を行うことが主な業務となる。なお、クライアントコンピュータ１−Ａ〜１−Ｎは同一の構成であるため、以下の説明では、クライアントコンピュータ１−Ａのみについて説明する。
【００１５】
ユーザが業務を行うクライアントコンピュータ１−Ａ、演算処理を実行するプロセッサ１１と、プログラムやデータを一時的に格納するメモリ１２と、プロセッサ１１とＩ／Ｏのアクセスを制御するＩ／Ｏコントローラ１３と、ネットワーク４０に接続されたネットワークインターフェース（図中Ｉ／Ｆ）１４と、マウスやキーボードなどで構成されて情報の入力を行う入力装置１８と、ディスプレイ等で構成されて情報の表示を行う出力装置１９が設けられている。
【００１６】
メモリ１２には、オペレーティングシステム（以下、ＯＳ）３０と、業務で使用するアプリケーション５１、５２と、ユーザの操作を捕捉する業務モニタエージェント２５としての操作情報収集プログラム２０とデータ授受情報収集プログラム２１がロードされており、プロセッサ１１がこれらのＯＳ３０とアプリケーション５１、５２及び業務モニタエージェント２５（操作情報収集プログラム２０とデータ授受情報収集プログラム２１）を実行する。
【００１７】
また、ＯＳ３０は、ユーザが入力装置１８でコピーまたはカットの操作を指示したときに、指定されたデータを格納し、ユーザが入力装置１８でペーストの操作を指示したときに、格納されたデータを指定されたアプリケーションのウィンドウに転送するクリップボード３１を管理する。なお、ＯＳ３０は、メモリ１２の所定の領域をクリップボード３１が利用する記憶領域として確保し、管理する。なお、アプリケーション５１、５２は、例えば、ワードプロセッサ、表計算、ブラウザ、電卓、メモ帳などで構成される。また、クライアントコンピュータ１−Ａは、図示しないストレージ装置を備えており、ＯＳ３０、アプリケーション５１，５２、業務モニタエージェント２５を格納する記憶媒体として機能する。
【００１８】
図１において、ネットワーク４０には、ユーザが操作する複数のクライアントコンピュータ１−Ａ〜１−Ｎが接続され、また、各クライアントコンピュータ１−Ａ〜１−Ｎで行われた業務の内容を分析するサーバコンピュータ１００が接続される。
【００１９】
クライアントコンピュータ１−Ａで行われた操作は、業務モニタエージェント２５を構成する操作情報収集プログラム２０が、ユーザの操作でアクティブウィンドウ（フォアグラウンド）に切り替えたアプリケーション５１の名称とウィンドウタイトルとファイル名（またはＵＲＬ）及び時刻を操作情報として取得し、メモリ１２の操作情報４１に格納する。なお、アプリケーションの名称とウィンドウタイトルとファイル名（またはＵＲＬ）がクライアントコンピュータ１−Ａで実行される複数のソフトウェアを特定するための識別子を構成する。クライアントコンピュータ１−Ａで行われた操作のうちクリップボード３１へのコピーまたはカットや、クリップボード３１からアプリケーション５１やファイルへのペーストについては、業務モニタエージェント２５を構成するデータ授受情報収集プログラム２１が、コピー（またはカット）を行ったウィンドウタイトルと時刻及びペーストを行ったウィンドウタイトルと時刻をデータ授受情報として取得し、メモリ１２のデータ授受情報４２へ格納する。
【００２０】
クライアントコンピュータ１−Ａのメモリ１２に格納された操作情報４１及びデータ授受情報４２は、所定のタイミング（例えば、数時間周期など）でサーバコンピュータ１００に送信される。操作情報４１及びデータ授受情報４２の送信は、業務モニタエージェント２５が実行する。
【００２１】
サーバコンピュータ１００では、後述する作業名定義プログラム２１０を主体とする作業内容可視化システムが稼働し、各クライアントコンピュータ１−Ａ〜１−Ｎから収集した操作情報４１とデータ授受情報４２を分析し、分析結果を出力装置に出力する。各ユーザを管理する業務の管理者は、サーバコンピュータ１００で分析した結果を参照することで、各ユーザが行った業務の内容を所定の時間間隔毎に閲覧することができる。なお、サーバコンピュータ１００で行う業務内容の分析処理は、管理者などが任意のタイミングで行うことができる。
【００２２】
サーバコンピュータ１００は、演算処理を実行するプロセッサ１１１と、プログラムやデータを一時的に格納するメモリ１１２と、プロセッサ１１１とＩ／Ｏのアクセスを制御するＩ／Ｏコントローラ１１３と、ネットワーク４０に接続されたネットワークインターフェース（図中Ｉ／Ｆ）１１４と、マウスやキーボードなどで構成されて情報の入力を行う入力装置１１８と、ディスプレイ等で構成されて情報の表示を行う出力装置１１９と、情報を格納するストレージ装置１２０が設けられている。
【００２３】
サーバコンピュータ１００のメモリ１１２には、ＯＳ１３０と、操作情報４１を受信する操作情報収集部２１１と、データ授受情報４２を受信するデータ授受情報収集部２１２と、業務の分析を行う作業名定義プログラム２１０がロードされて、プロセッサ１１１により実行される。また、ストレージ装置１２０には、操作情報収集部２１１がクライアントコンピュータ１−Ａ〜１−Ｎから受信した操作情報４１を格納する操作情報蓄積部３００と、データ授受情報収集部２１２がクライアントコンピュータ１−Ａ〜１−Ｎから受信したデータ授受情報４２を格納するデータ授受情報蓄積部３２０と、予め設定された作業名定義格納部３１０が保持されており、作業名定義プログラム２１０で利用される。また、ストレージ装置１２０は、作業名定義プログラム２１０を格納する記憶媒体としても機能する。
【００２４】
図２は、図１に示したクライアントコンピュータ１−Ａとサーバコンピュータ１００で稼動するソフトウェアの機能を示すブロック図である。
【００２５】
クライアントコンピュータ１−Ａでは、ＯＳ３０上で業務を行うためのアプリケーション５１、５２と、アプリケーション５１、５２やＯＳ３０に対するユーザの操作を検出して、メモリ１２の操作情報４１及びデータ授受情報４２に格納する業務モニタエージェント２５が稼動する。
【００２６】
図２において、業務モニタエージェント２５は、クライアントコンピュータ１−Ａで実行するソフトウェア（例えば、アプリケーションとファイル）に対するユーザの操作（操作情報）を検出し、操作の履歴（ログ）をメモリ１２の操作情報４１に格納する操作情報収集プログラム２０と、クリップボード３１のコピー（またはカット）やペーストを検知してデータ授受情報４２に格納するデータ授受情報収集プログラム２１を主体に構成される。
【００２７】
操作情報収集プログラム２０は、ＯＳ３０が入力装置１８のマウスのクリック動作や、キーボードのタイプ動作などを検知して、操作対象のアプリケーション５１に対して発行する操作メッセージ（操作情報）をフックし、ユーザが実行した操作の内容と、操作対象のアプリケーション５１の名称とファイルの名称（ウィンドウタイトル、ファイルパスまたはＵＲＬ等）とを取得する。
【００２８】
そして、操作情報収集プログラム２０は、取得した操作内容がアプリケーション５１をアクティブウィンドウへ切り替える指令の場合に、操作を行った時刻（または日時）と操作対象のアプリケーション５１の名称及びファイルの名称またはＵＲＬとを一組にした操作履歴（ログ）を生成してメモリ１２の操作情報４１へ格納する。したがって、メモリ１２の操作情報４１には、
また、データ授受情報収集プログラム２１は、ＯＳ３０が入力装置１８のマウスのクリック動作や、キーボードのタイプ動作などのうち、操作対象のアプリケーション５１に対して発行する操作メッセージをフックし、ユーザがコピー（またはカット）またはペーストを実行した操作の内容と、操作対象のアプリケーション５１の名称とファイルの名称（ウィンドウタイトル等）を取得する。なお、データ授受情報収集プログラム２１は、操作情報収集プログラム２０がフックしたＯＳ３０からの操作メッセージを入力するようにしても良い。
【００２９】
そして、データ授受情報収集プログラム２１は、取得した情報について、ペーストを行った時刻と、コピー（またはカット）元のアプリケーション５１の名称及びコピー（またはカット）元のファイルの名称と、ペースト先のアプリケーション５１の名称及びペースト先のファイルの名称と、を一組にした操作履歴（ログ）を生成してメモリ１２のデータ授受情報４２へ格納する。
【００３０】
メモリ１２に格納された操作履歴（操作情報４１及びデータ授受情報４２）は、上記所定の周期で業務モニタエージェント２５によりサーバコンピュータ１００へ送信される。
【００３１】
次に、図２において、各クライアントコンピュータ１−Ａ〜１−Ｎの操作履歴を収集して、各ユーザが行った業務内容を分析するサーバコンピュータ１００のワークスタイル可視化システムについて説明する。
【００３２】
ワークスタイル可視化システムは、各クライアントコンピュータ１−Ａ〜１−Ｎから受信した操作情報４１をストレージ装置１２０の操作情報蓄積部３００に蓄積する操作情報収集部２１１と、各クライアントコンピュータ１−Ａ〜１−Ｎから受信したデータ授受情報４２をストレージ装置１２０のデータ授受情報蓄積部３２０に蓄積するデータ授受情報収集部２１２と、ユーザ毎の業務内容を分析する作業名定義プログラム２１０と、から構成される。
【００３３】
操作情報収集部２１１は、各クライアントコンピュータ１−Ａ〜１−Ｎから受信した操作情報４１を、各クライアントコンピュータ１−Ａ〜１−Ｎ毎にストレージ装置１２０の操作情報蓄積部３００へ格納する。
【００３４】
操作情報収集部２１１がストレージ装置１２０の操作情報蓄積部３００へ格納した操作情報４１は、図７で示すように、クライアントコンピュータ１−Ａのユーザが行った操作履歴が蓄積される。
【００３５】
図７は、あるユーザの操作情報４１を蓄積した操作情報蓄積部３００の一例を示す説明図である。図７に示す操作情報蓄積部３００は、作業名定義プログラム２１０が付加したシリアル値を格納するシリアル番号３０１と、操作情報収集プログラム２０が操作情報４１を取得した時刻３０２と、ＯＳ３０の操作メッセージからフックした操作対象のアプリケーションの名称を格納するアプリケーション名３０３と、ＯＳ３０の操作メッセージからフックしたウィンドウタイトルを格納するタイトル３０４と、同じくＯＳ３０の操作メッセージからフックしたファイルパスまたはＵＲＬを格納するＵＲＬ３０５と、後述する作業名定義プログラム２１０が使用する作業名３０６から一つのレコード（またはエントリ）が構成される。
【００３６】
図７において、時刻３０２が「９：３０：０８」のレコードは、ユーザの操作によって「Ｂｒｏｗｓｅｒ」がアクティブウィンドウ（フォアグラウンド）に切り替えたことを示し、このブラウザが開いたタイトル３０４が「帳票入力」であることを示し、ＵＲＬ３０５に格納されたアドレスにブラウザがアクセスしたことを示す。なお、アプリケーションをアクティブウィンドウに切り替えるユーザの操作としては、マウスによってカーソルを操作したポインティングや所定のキーの操作などである。これらの操作を受け付けたＯＳ３０は、上記操作によって指定されたアプリケーション５１に対してアクティブウィンドウに切り替える操作メッセージを通知して、当該アプリケーション５１をアクティブウィンドウ（フォアグラウンド）へ切り替える。
【００３７】
このように、クライアントコンピュータ１−Ａ〜１−Ｎから所定のタイミングでサーバコンピュータ１００に送信された操作情報４１は、ユーザがアクティブウィンドウに切り替えたアプリケーション名とファイル名の時系列的な記録として操作情報蓄積部３００に蓄積されていく。
【００３８】
ここで、アプリケーション名とファイル名は、例えばＯＳ３０がＷｉｎｄｏｗｓ（登録商標）の場合では、ウィンドウのタイトルバーに表示されるものである。
【００３９】
データ授受情報収集部２１２がストレージ装置１２０のデータ授受情報蓄積部３２０へ格納したデータ授受情報４２は、図１０で示すように、クライアントコンピュータ１−Ａのユーザが行ったコピー（またはカット）及びペーストに関する操作履歴が蓄積される。
【００４０】
また、操作情報収集部２１１は、前回の操作メッセージが発生した時刻から所定時間Ｘを経過してユーザからの入力がない場合には、前回の操作メッセージが発生した時刻で「入力無し」をアプリケーション名とした操作情報４１を生成する。
【００４１】
図１０は、あるユーザのデータ授受情報４２を蓄積したデータ授受情報蓄積部３２０の一例を示す説明図である。図１０に示すデータ授受情報蓄積部３２０は、作業名定義プログラム２１０が付加したシリアル値を格納するシリアル番号３２１と、ペーストを行った時刻を格納するペースト時刻３２２と、ペーストしたデータのコピー（またはカット）元のアプリケーション名とウィンドウタイトル及びファイル名（ファイルパスまたはＵＲＬ）を格納するコピー元３２３と、ペースト先のアプリケーション名とウィンドウタイトル及びファイル名（ファイルパスまたはＵＲＬ）を格納するペースト先３２４から一つのレコードが構成される。
【００４２】
クライアントコンピュータ１−Ａのデータ授受情報収集プログラム２１は、ＯＳ３０からの操作メッセージがコピーのときには、当該操作メッセージをフックして、コピーまたはカットを実施したアプリケーション名とウィンドウタイトル及びファイル名（ファイルパスまたはＵＲＬ）を取得する。
【００４３】
そして、データ授受情報収集プログラム２１は、ＯＳ３０からの操作メッセージがペーストのときには、当該操作メッセージをフックして、ペーストを実施したアプリケーション名とウィンドウタイトル及びファイル名（ファイルパスまたはＵＲＬ）を取得し、既に取得したコピーまたはカット元の情報を一組のデータとして、ペーストを実行した時刻と共にデータ授受情報４２に格納する。
【００４４】
図１０において、ペースト時刻３２２が「９：４２：５２」のレコードは、コピー元３２３のデータが、アプリケーション名が「Ｂｒｏｗｓｅｒ」でウィンドウタイトルが「帳票入力」で、アドレスが「http://www.〜」からコピーまたはカットしたデータであることを示し、ペースト先３２４のアプリケーション名が「Ｃａｌｃ」で、ウィンドウタイトルが「電卓」であることを示している。すなわち、ブラウザがアクセスした帳票入力のデータをコピーまたはカットして、電卓に貼り付けたことを示している。
【００４５】
このように、クライアントコンピュータ１−Ａ〜１−Ｎから所定のタイミングでサーバコンピュータ１００に送信されたデータ授受情報４２は、ユーザがコピーまたはカットとペースト行ったアプリケーション名とファイル名の時系列的な記録としてデータ授受情報蓄積部３２０に蓄積されていく。
【００４６】
ここで、作業名定義プログラム２１０が利用する作業名定義格納部３１０は、図８で示すように予め設定されたものである。
【００４７】
図８は、予め設定された作業名定義格納部３１０の一例を示す説明図である。図８において、作業名定義格納部３１０は、作業名定義プログラム２１０が付与したシリアル値を格納するシリアル番号３１１と、アプリケーションの名称を格納するアプリ３１２と、ウィンドウタイトルを格納するウィンドウタイトル３１３と、ファイルパスやＵＲＬを格納するＵＲＬ／ファイル３１４と、業務の内容を示す作業名を格納する作業名３１５から一つのレコードが構成される。
【００４８】
作業名定義格納部３１０には、作業名３１５を設定すべきアプリケーション名またはウィンドウタイトルあるいはファイル名の条件が定義されている。例えば、シリアル番号３１１が「５」のレコードでは、アプリ３１２が「Ｍａｉｌｅｒ」のアプリケーション名の場合は、ウィンドウタイトル３１３やＵＲＬ／ファイル３１４の内容に係わらず作業名３１５はメールとなる。また、ウィンドウタイトルが「＊帳票＊」の場合は、アプリケーション名に係わらず作業名３１５は帳票管理となる。なお、「＊」はワイルドカードを意味し、この例では「帳票」の文字列を含むウィンドウタイトルであれば作業名３１５は帳票管理となる。さらに、アプリ３１２がブラウザの場合では、ＵＲＬが「＊ｇｏｏｇｌｅ（登録商標）＊」であれば、作業名３１５はＷＥＢ検索となる。
【００４９】
このように、作業名定義格納部３１０には、アプリケーション名、ウィンドウタイトルまたはＵＲＬあるいはファイル名の少なくとも一つから、ひとつの業務内容を示す作業名を付与するための条件が予め定義される。なお、作業名定義格納部３１０の作業名３１５に対するアプリ３１２、ウィンドウタイトル３１３、ＵＲＬ／ファイル３１４は、入力装置１１８から管理者などが入力しても良いし、予め作成したファイルを作業名定義格納部３１０へ格納しても良い。
【００５０】
次に、作業名定義プログラム２１０が行う処理の概要を、以下に説明する。
【００５１】
作業名定義プログラム２１０は、まず、入力装置１１８から管理者などがユーザのユーザ識別子（またはクライアントコンピュータ１−Ａ〜１−Ｎの識別子）と、時刻（または日時）の範囲を受け付ける。作業名定義プログラム２１０は、受け付けたユーザの識別子と時刻範囲に該当する操作情報とデータ授受情報を操作情報蓄積部３００とデータ授受情報蓄積部３２０から抽出する。
【００５２】
作業名定義プログラム２１０は、操作情報蓄積部３００から抽出した操作情報のそれぞれについて、作業名定義格納部３１０を検索し、アプリ名３０３、タイトル３０４及びＵＲＬ３０５が、作業名定義格納部３１０のアプリ３１２、ウィンドウタイトル３１３またはＵＲＬ／ファイル３１４の条件と一致するレコードがあれば、作業名定義格納部３１０の作業名３１５を当該操作情報の作業名として取得し、操作情報蓄積部３００の現在着目しているレコードの作業名３０６に設定する。この結果、図９で示すように、操作情報蓄積部３００から抽出した操作情報で、作業名定義格納部３１０から作業名３１５が定まるレコードについて作業名３０６が更新される。なお、図９は、操作情報のみで作業名定義格納部３１０から作業名３０６を特定した後の操作情報蓄積部３００の一例を示す説明図である。
【００５３】
一方、作業名定義プログラム２１０は、作業名３０６が作業名定義格納部３１０から定まらない操作情報については、データ授受情報蓄積部３２０から抽出したデータ授受情報のコピー元３２３に当該操作情報のタイトル３０４を含むレコードを検索する。操作情報のタイトル３０４を含むコピー元３２３が存在する場合には、このレコードのペースト先３２４の内容から作業名定義格納部３１０を検索し、作業名３０６を設定する。一方、ペースト先３２４の内容で作業名３０６が定まらない場合には、さらにペースト先３２４の内容をコピー元３２３に持つレコードをデータ授受情報から検索し、一致するレコードがあれば当該レコードのペースト先３２４の内容で作業名定義格納部３１０から作業名３１５を取得する。
【００５４】
つまり操作情報で作業名定義格納部３１０の作業名３１５を特定できない場合でも、データ授受情報に操作情報のタイトル３０４を含むコピー元３２３があれば、このコピー元３２３からペースト先３２４を辿り、ペースト先３２４の内容で作業名定義格納部３１０の作業名３１５が特定できれば、操作情報の作業名３０６をペースト先３２４の内容とする。
【００５５】
この結果、図９で作業名３０６が定まっていなかった操作情報蓄積部３００は、データ授受情報蓄積部３２０のコピーとペーストの履歴から、実際に作業を行っていたと推定される作業名３０６を決定することができる。例えば、図９のシリアル番号３０１が「２」と「８」のアプリ名３０３が「Ｃａｌｃ」で示されるタイトル３０４＝「電卓」は、作業名定義格納部３１０からは作業名３１５を特定できないが、図１０に示すデータ授受情報蓄積部３２０のシリアル番号３２１＝「１」、「２」のコピー及びペーストの履歴から、図１１で示すようにシリアル番号３０１が「２」のアプリ名３０３が「Ｃａｌｃ」で示される電卓は「文書作成」で利用され、シリアル番号３０１が「８」のアプリ名３０３が「Ｃａｌｃ」で示される電卓は「顧客情報入力」で利用されたことが設定される。なお、図１１は、操作情報に加えてデータ授受情報で作業名定義格納部３１０から作業名３０６を特定した後の操作情報蓄積部３００の一例を示す説明図である。
【００５６】
このように、本発明では、作業名定義格納部３１０で作業名３１５が定義されていないアプリケーション名またはファイル名であっても、データ授受情報蓄積部３２０のコピー及びペーストの履歴から、実際に行っていた作業名３１５を推定し、操作情報蓄積部３００の作業名３０６に反映させることができる。また、複数のコピー（またはカット）とペーストを伴う作業については、コピー元３２３からペースト先３２４を辿り、さらにペースト先３２４をコピー元３２３にレコードを連鎖的に探索し、このレコードのペースト先３２４の内容で作業名３１５が決定することができる。
【００５７】
このように、操作情報と作業名定義格納部３１０の定義から作業名３０６を検索するのに加えて、操作情報をコピー元３２３に含むデータ授受情報のペースト先３２４の内容で作業名定義格納部３１０の定義から作業名３０６を特定することができるので、作業名定義格納部３１０で定義する作業名３１５を必要最小限とすることができ、業務の分析にかかる運用コストを低減できる。
【００５８】
コピー及びペーストの履歴から推定した作業名３１５を反映した操作情報蓄積部３００をＧＵＩにて表示すると図１２のようになる。図１２は、サーバコンピュータ１００の出力装置１１９に、コピーとペーストの履歴から推定した作業名３１５を反映した操作情報蓄積部３００をＧＵＩにて表示したウィンドウ１９０の一例を示す。
【００５９】
ウィンドウ１９０は作業名定義プログラム２１０が出力装置１１９に出力するもので、管理者などが入力装置１１８から入力したユーザのユーザ識別子（またはクライアントコンピュータ１−Ａ〜１−Ｎの識別子）を表示する作業者ＩＤ１９２と、開始時刻１９３、終了時刻１９４及び作業内容１９６を含む。作業内容１９６は、ウィンドウ１９０の作業内容表示ボタン１９５をクリック（または選択）することで表示され、指定されたユーザ識別子及び時刻範囲の操作情報蓄積部３００の操作情報について、作業名３０６を時刻３０２の時系列で表示したものである。なお、図１２の例では、作業名定義格納部３１０の作業名３１５に予め色を設定しておき、操作情報蓄積部３００の作業名３０６に対応する作業名定義格納部３１０の作業名３１５の色を時刻範囲を示す領域に出力したものである。
【００６０】
また、ウィンドウ１９０の授受情報表示ボタン１９７をクリック（または選択）することで、図１３で示すように、指定されたユーザ識別子の時刻範囲に該当するデータ授受情報蓄積部３２０がウィンドウ１９０内にペースト時刻３２２の時系列で表示される。なお、図１３を参照することでユーザがどのように補助的なアプリケーションを利用しているのかを知ることができる。
【００６１】
次に、クライアントコンピュータ１−Ａ〜１−Ｎとサーバコンピュータ１００で行われる処理の詳細についてフローチャートを参照しながら以下に詳述する。
【００６２】
図３は、クライアントコンピュータ１−Ａ〜１−Ｎの操作情報収集プログラム２０で行われる処理の一例を示すフローチャートである。このフローチャートは、ＯＳ３０から操作メッセージがアプリケーション５１（または５２）へ発行されたときに実行される。
【００６３】
ＯＳ３０から操作メッセージがアプリケーション５１へ発行されると、ステップＳ１では、操作情報収集プログラム２０は、ＯＳ３０が発行した操作メッセージをフックして、当該操作メッセージの内容を取得し、また、ＯＳ３０のシステム時刻（または日時）を現在時刻（または日時）として取得する。
【００６４】
ステップＳ２では、操作情報収集プログラム２０は取得した操作メッセージの内容が、入力装置１８を操作した（マウス操作またはキーボード操作）ことによる入力メッセージまたはアプリケーション５１（または５２）をアクティブウィンドウに変更するメッセージ（以下、アクティブウィンドウ変更メッセージとする）を含むか否かを判定する。取得した操作メッセージの内容が、入力メッセージまたはアクティブウィンドウ変更メッセージを含む場合にはステップＳ３へ進み、入力メッセージまたはアクティブウィンドウ変更メッセージを含まない場合にはそのまま処理を終了して、次回の操作メッセージが発行されるまで待機する。
【００６５】
ステップＳ３では、操作情報収集プログラム２０は、前回の入力メッセージを取得した時刻から現在時刻までの時間が所定時間Ｘを経過しているか否かを判定し、所定時間Ｘ（例えば、５分間）を経過していればステップＳ４へ進み、所定時間Ｘを経過していなければステップＳ７に進む。
【００６６】
ステップＳ４では、操作情報収集プログラム２０が、前回の入力メッセージを取得した時刻（前回操作時刻）から現在時刻までの操作情報としてアプリ名３０３が「入力無し」で、時刻３０２が前回操作時刻の操作情報を生成してメモリ１２の操作情報４１に格納してステップＳ５に進む。
【００６７】
ステップＳ５では、操作情報収集プログラム２０が、取得した操作メッセージの内容が入力メッセージであるか否かを判定し、入力メッセージであればステップＳ６に進み、入力メッセージを含まない場合にはステップＳ７へ進む。
【００６８】
ステップＳ６では、現在のアクティブなウィンドウのアプリケーション名をアプリ名３０３、ウィンドウタイトルをタイトル３０４、ファイル名またはＵＲＬをＵＲＬ３０５とし、時刻３０２を現在時刻とした操作情報を生成してメモリ１２の操作情報４１に格納してステップＳ９に進む。
【００６９】
ステップＳ７では、操作情報収集プログラム２０が、取得した操作メッセージの内容がアクティブウィンドウ変更メッセージであるか否かを判定し、アクティブウィンドウ変更メッセージであればステップＳ８に進み、アクティブウィンドウ変更メッセージを含まない場合にはステップＳ９へ進む。
【００７０】
ステップＳ８では、操作情報収集プログラム２０が、アクティブウィンドウ変更メッセージに含まれる内容から、ウィンドウをアクティブに変更するアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬを取得し、上記ステップＳ１で取得した時刻を加えて操作情報を生成し、メモリ１２の操作情報４１へ格納する。これにより、メモリ１２の操作情報４１には、図７の操作情報蓄積部３００のエントリと同様に、時刻３０２、アプリ名３０３、タイトル３０４、ＵＲＬ３０５を含むデータが蓄積される。なお、メモリ１２の操作情報４１は、図７の操作情報蓄積部３００の時刻３０２、アプリ名３０３、タイトル３０４、ＵＲＬ３０５で構成される。
【００７１】
ステップＳ９では、前回操作時刻の値を上記ステップＳ１で取得した操作メッセージの時刻に更新する。
【００７２】
以上のステップＳ１〜Ｓ９をＯＳ３０が操作メッセージを発行する度に実行することで、操作情報収集プログラム２０はメモリ１２に操作情報４１を蓄積していく。また、操作情報収集プログラム２０は、操作メッセージが発生したときに前回操作時刻からの経過時間が所定時間Ｘを越えていたら、前回操作時刻から操作メッセージが発生するまでの期間が離席などで入力無しの時間帯として推定する。
【００７３】
なお、本実施形態のＯＳ３０は、アクティブウィンドウ変更メッセージにウィンドウをフォアグラウンドにすべきアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬを少なくとも含むものとする。
【００７４】
図４は、クライアントコンピュータ１−Ａ〜１−Ｎのデータ授受情報収集プログラム２１で行われるコピーまたはカットが発生したときの処理の一例を示すフローチャートである。図４のフローチャートは、データ授受情報収集プログラム２１が、ＯＳ３０からの操作メッセージをフックして、当該操作メッセージの内容がクリップボード３１へのコピー（またはカット、以下同様）のときに実行する処理である。
【００７５】
ステップＳ１１では、データ授受情報収集プログラム２１が、上記取得したコピーを含む操作メッセージの内容から、コピー元のアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬを取得する。
【００７６】
ステップＳ１２では、データ授受情報収集プログラム２１が、上記ステップＳ１１で取得したコピー元のアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬをメモリ１２上の所定の変数Ｙに書き込んで当該変数Ｙを更新する。
【００７７】
上記Ｓ１１、Ｓ１２の処理によって、コピーが発生する度に、データ授受情報収集プログラム２１は、コピー元のアプリケーション名とウィンドウタイトル及びファイル名（またはＵＲＬ）を取得して変数Ｙに書き込んでいく。
【００７８】
図５は、クライアントコンピュータ１−Ａ〜１−Ｎのデータ授受情報収集プログラム２１で行われるペーストが発生したときの処理の一例を示すフローチャートである。図５の  フローチャートは、データ授受情報収集プログラム２１が、ＯＳ３０からの操作メッセージをフックして、当該操作メッセージの内容がクリップボード３１からのペーストのときに実行する処理である。
【００７９】
ステップＳ１３では、データ授受情報収集プログラム２１が、上記取得したペーストを含む操作メッセージの内容から、ペースト先のアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬを取得する。また、データ授受情報収集プログラム２１は、ペーストの発生した時刻をＯＳ３０のシステム時刻などから取得する。
【００８０】
ステップＳ１４では、データ授受情報収集プログラム２１が、上記ステップＳ１３で取得したペーストが発生した時刻と、ペースト先のアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬと、上記図４のステップＳ１２で変数Ｙに格納されていたコピー元の情報をメモリ１２のデータ授受情報４２に格納する。
【００８１】
なお、メモリ１２のデータ授受情報４２は、図１０に示したデータ授受情報蓄積部３２０のペースト時刻３２２とコピー元３２３及びペースト先３２４と同様のフォーマットで、コピー元のアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬをメモリ１２のデータ授受情報４２に格納する。すなわち、ペーストが実行されると、ペースト時刻３２２に上記ステップＳ１３で取得したペースト時刻が設定され、コピー元３２３には変数Ｙに格納したコピー元のアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬを結合したデータ（あるいは文字列）が格納され、ペースト先３２４には上記ステップＳ１３で取得したペースト先のアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬを結合したデータ（あるいは文字列）が格納される。
【００８２】
図６は、サーバコンピュータ１００の作業名定義プログラム２１０の処理の一例を示すフローチャートである。図６のフローチャートは、サーバコンピュータ１００の管理者などが入力装置１１８から実行開始を指令したときなどに行われる処理を示す。
【００８３】
作業名定義プログラム２１０の処理は、上述したように、管理者などが入力装置１１８からユーザのユーザ識別子（またはクライアントコンピュータ１−Ａ〜１−Ｎの識別子）と、時刻（または日時）の範囲を受け付けて、ユーザの識別子と時刻範囲に該当する操作情報とデータ授受情報を操作情報蓄積部３００とデータ授受情報蓄積部３２０から抽出する。そして、操作情報蓄積部３００とデータ授受情報蓄積部３２０から抽出したデータを処理対象として図６のフローチャートを実行する。なお、操作情報蓄積部３００から抽出した操作情報は、図７で示すように時刻３０２の昇順でソートしておき、データ授受情報蓄積部３２０から抽出したデータは、図１０で示すようにペースト時刻３２２の昇順でソートしておく。
【００８４】
なお、以下の説明では、ユーザの識別子と時刻範囲に該当する操作情報蓄積部３００のデータを単に操作情報とし、同じくユーザの識別子と時刻範囲に該当するデータ授受情報蓄積部３２０のデータを単にデータ授受情報とする。
【００８５】
ステップＳ２１では、プロセッサ１１で実行される作業名定義プログラム２１０が、操作情報蓄積部３００から抽出した操作情報から１レコードを読み込んで、アプリ名３０３、タイトル３０４、ＵＲＬ３０５を取得し、作業名定義格納部３１０（図中ＤＢ）を検索する。
【００８６】
ステップＳ２２では、作業名定義プログラム２１０が、上記ステップＳ２１で取得したアプリ名３０３、タイトル３０４またはＵＲＬ３０５が、作業名定義格納部３１０のアプリ３１２、ウィンドウタイトル３１３、ＵＲＬ／ファイル３１４の条件と一致するレコードがあるか否かを判定し、作業名定義格納部３１０の条件と一致するレコードがあればステップＳ２８へ進み、一致するレコード無い場合にはステップＳ２３に進む。
【００８７】
ステップＳ２８では、操作情報のアプリ名３０３、タイトル３０４、ＵＲＬ３０５が一致した作業名定義格納部３１０のレコードから作業名３１５を取得し、作業名３１５の内容を、現在読み込んでいる操作情報の作業名３０６に設定する。そして、操作情報蓄積部３００から抽出したすべての操作情報について作業名定義格納部３１０との比較が完了していなければステップＳ２１へ戻って上記処理を繰り返す。
【００８８】
操作情報の作業名３０６が作業名定義格納部３１０の条件から定まらない場合のステップＳ２３では、作業名定義プログラム２１０がデータ授受情報蓄積部３２０から抽出しておいたデータ授受情報を参照する。作業名定義プログラム２１０は、ステップＳ２１で読み込んだ操作情報のウィンドウのタイトル３０４をコピー元３２３のウィンドウタイトルに含むレコードが、抽出しておいたデータ授受情報に存在するか否かを判定し、存在する場合にはステップＳ２４へ進み、存在しなければステップＳ２７へ進む。
【００８９】
ステップＳ２４では、ステップＳ２３で一致したデータ授受情報のペースト先３２４のアプリケーション名とウィンドウタイトル及びファイル名（またはＵＲＬ）から作業名定義格納部３１０を検索する。
【００９０】
次に、ステップＳ２５では、作業名定義プログラム２１０は、データ授受情報のペースト先３２４のアプリケーション名とウィンドウタイトル及びファイル名が作業名定義格納部３１０の条件に一致するか否かを判定し、一致した場合はステップＳ２８へ進んでペースト先３２４の内容から作業名定義格納部３１０の作業名３１５を取得して、現在着目している操作情報蓄積部３００の作業名３０６に設定する。
【００９１】
一方、ペースト先３２４のアプリケーション名とウィンドウタイトル及びファイル名が作業名定義格納部３１０の条件に一致しない場合には、ステップＳ２６へ進んで、現在着目しているペースト先３２４のウィンドウタイトルをコピー元３２３に含むレコードが抽出したデータ授受情報に存在するか否かを判定し、存在する場合はステップＳ２４に戻って上記処理を繰り返し、存在しない場合にはステップＳ２７に進む。
【００９２】
ステップＳ２７では、現在着目している操作情報の作業名３０６は未定義とし、上述したように作業名３０６をブランクまたは未定義を示すデータに設定する。そして、操作情報蓄積部３００から抽出したすべての操作情報について作業名定義格納部３１０との比較が完了していなければステップＳ２１へ戻って上記処理を繰り返す。
【００９３】
上記処理によって、まず、ユーザ識別子と時刻範囲で操作情報蓄積部３００から抽出した操作情報について、アプリケーション名３０３とタイトル３０４またはＵＲＬ３０５が作業名定義格納部３１０の条件に一致した場合は、作業名定義格納部３１０の一致したレコードの作業名３１５を当該操作情報の作業名３０６として設定する。この結果、図９で示すように、作業名定義格納部３１０に設定されている条件から一義的に定まる作業名３１５を、操作情報の作業名３０６に設定する。
【００９４】
例えば、図７に示す、シリアル番号３０１＝１のレコードは、タイトル３０４の「帳票入力」が、図８の作業名定義格納部３１０のシリアル番号３１１＝２のウィンドウタイトル３１３の「＊帳票＊」の条件に一致するので、操作情報の作業名３０６に作業名定義格納部３１０の作業名３１５の「帳票管理」を図９のように設定する。
【００９５】
作業名定義プログラム２１０は、操作情報蓄積部３００から抽出した次の操作情報であるシリアル番号３０１＝２について作業名定義格納部３１０を検索する。当該操作情報のアプリ名３０３＝「Ｃａｌｃ」、タイトル３０４＝「電卓」は、作業名定義格納部３１０に定義されていないので、図１０に示すデータ授受情報蓄積部３２０から抽出したデータ授受情報を連鎖的に検索する。
【００９６】
作業名定義プログラム２１０は、タイトル３０４＝「電卓」をコピー元３２３のタイトルに含むレコードをデータ授受情報から検索する。なお、この検索は、タイトル３０４＝「電卓」がアクティブウィンドウになった時刻３０２＝「９：３０：０８」以降のペースト時刻３２２を検索範囲とする。この検索の結果、図１０のシリアル番号３２１＝「２」のレコードがコピー元３２３のタイトル「電卓」で一致する（Ｓ２３）。作業名定義プログラム２１０は、図１０のシリアル番号３２１＝「２」のレコードのペースト先３２４の内容（Ｗｏｒｄｐｒｏｃｅｓｓｏｒ、報告書類、ｃ：document〜）で、作業名定義格納部３１０を検索する（Ｓ２４）。この検索の結果、図８の作業名定義格納部３１０のシリアル番号３０１＝「４」のアプリ３１２が「Ｗｏｒｄｐｒｏｃｅｓｓｏｒ」のレコードが検索条件に一致するので（Ｓ２５）、作業名３１５の「文書作成」を取得する。そして、図１１で示すように、シリアル番号３２１＝「２」の作業名３０６として、図８のシリアル番号３２１＝「４」のレコードの作業名３１５＝「文書作成」を設定する（Ｓ２５、Ｓ２８）。つまり、この例では、タイトル３０４＝「電卓」のアプリケーション＝「Ｃａｌｃ」で計算を行った結果を、「９：４３：３５」に「Ｗｏｒｄｐｒｏｃｅｓｓｏｒ」の「報告書類」にペーストしたことから、「電卓」の操作に対する業務の作業名は作業名定義格納部３１０に未定義であるが、「電卓」の使用対象は作業名定義格納部３１０に定義済みの作業名３１５＝「文書作成」であるので、シリアル番号３２１＝「２」の操作情報の作業名３０６を「文書作成」と推定するのである。
【００９７】
このように、作業名定義プログラム２１０は、操作情報の内容が作業名定義格納部３１０に定義されていない場合は、操作情報のタイトル３０４を含むデータ授受情報蓄積部３２０のコピー元３２３を検索し、一致したコピー元３２３のレコードのペースト先３２４の内容で作業名定義格納部３１０を検索し、作業名３０６を取得することができる。これにより、クライアントコンピュータ１−Ａ〜１−Ｎで補助的に使用される汎用的なアプリケーションについて、作業名定義格納部３１０に設定することなく業務の内容を特定することが可能となるのである。
【００９８】
さらに、図６のステップＳ２５でペースト先３２４の内容で作業名定義格納部３１０に定義が無い場合には、ペースト先３２４のウィンドウタイトルをコピー元３２３に有するデータ授受情報があれば、このデータ授受情報のペースト先３２４の内容で作業名定義格納部３１０から作業名３０６を決定することができる。
【００９９】
例えば、図９において、時刻３０２＝「１０：５０：０３」、シリアル番号３２１＝「７」のアプリ名３０３＝「Ｎｏｔｅ」、タイトル３０４＝「無題ドキュメント」は作業名定義格納部３１０に未定義であるので、図１０のデータ授受情報を検索すると、「無題ドキュメント」をコピー元３２３に含むレコードとしてシリアル番号３２１＝４（ペースト時刻３２２＝１１：０３：１２）が一致する。このレコードのペースト先３２４の内容は、タイトルが「電卓」なので作業名定義格納部３１０に未定義である。そこで、作業名定義プログラム２１０は、このペースト先３２４のタイトルである「電卓」をコピー元３２３に含むデータ授受情報を連鎖的に検索し、シリアル番号３２１＝「５」のレコードを見つける。このレコードのペースト先３２４の内容はアプリケーション＝「Ｎｏｔｅ」（メモ帳）でタイトル＝「無題ドキュメント」で作業名定義格納部３１０に未定義であるので、作業名定義プログラム２１０は、この「無題ドキュメント」をコピー元３２３に持つレコードを検索すると、シリアル番号３２１＝「６」のレコードが一致する。このレコードのペースト先３２４の内容は、作業名定義格納部３１０に定義済みの「顧客情報入力」を含むので、図１１のようにシリアル番号３２１＝「７」のレコードの作業名３０６として「顧客情報入力」に決定する。この例では、アプリケーション＝Ｎｏｔｅの「無題ドキュメント」が、「電卓」にペーストされて計算が行われ、さらに「電卓」の計算結果がアプリケーション＝Ｎｏｔｅにペーストされて加工され、この加工された内容が、アプリケーション＝Ｂｒｏｗｓｅｒの「顧客情報入力」にペーストされた例であり、本発明では、ウィンドウタイトルが一致するコピー元３２３からペースト先３２４を探索し、作業名定義格納部３１０に未定義であればさらにペースト先３２４をコピー元３２３に持つデータ授受情報をペースト時刻３２２の昇順で辿ることで、複数の未定義の操作情報が存在する場合でも各操作情報の作業名３０６を特定することが可能となる。
【０１００】
このように、本発明では、作業名定義格納部３１０で作業名３１５が定義されていないアプリケーション名、ウィンドウタイトルまたはファイル名であっても、データ授受情報蓄積部３２０のコピー及びペーストの履歴を辿ることで、実際に行っていた作業名３１５を推定し、操作情報蓄積部３００の作業名３０６に反映させることができる。
【０１０１】
また、複数のコピー（またはカット）とペーストを伴う作業については、コピー元３２３からペースト先３２４を辿り、さらにペースト先３２４の内容をコピー元３２３に持つデータ授受情報を連鎖的に検索して、ペースト先３２４の内容で作業名３１５が定まるまで検索を繰り返す。
【０１０２】
コピーとペーストの履歴を連鎖的に検索して作業名３１５を特定することで、操作情報の作業名３０６の特定と、コピー及びペーストに使用したアプリケーションの操作情報に対する作業名３０６の特定を行うことができ、業務の分析精度を高めることができる。
【０１０３】
特に、補助的に使用される「電卓」や「メモ帳」のように、ユーザのスキルによって使用形態が異なるアプリケーションでは、作業名定義格納部３１０に定義をしなくても業務との関連を的確に推定することが可能となる。
【０１０４】
＜第２実施形態＞
図１４〜図１８は、第２の実施形態を示し、前記第１実施形態の操作情報蓄積部３００にファイルの更新を行ったか否かを示す更新情報を付加したものである。本第２実施形態では、クライアントコンピュータ１−Ａの業務モニタエージェント２５の操作情報収集プログラム２０は、前記第１実施形態の操作情報４１に加えて、ファイル等の更新の有無を示す更新情報４３を収集し、サーバコンピュータ１００に送信する。サーバコンピュータ１００では、クライアントコンピュータ１−Ａから受信した操作情報４１と更新情報４３を操作情報蓄積部３００に格納する。サーバコンピュータ１００の作業名定義プログラム２１０Ａは、前記第１実施形態の操作情報４１に更新情報４３を加えた操作情報蓄積部３００Ａの作業名３０６を特定する。その他の構成は前記第１実施形態と同様である。
【０１０５】
第２の実施形態では、前記第１実施形態で操作情報の内容のみから作業名定義格納部３１０で作業名３０６が特定された場合であっても、定義されている作業名３０６のデータをクリップボード３１へコピーし、他の作業名３０６のファイルまたはＵＲＬへペーストを行った場合には、コピー元の作業名３０６をペースト先の作業名３０６に補正することで、業務内容をより正確に把握するものである。
【０１０６】
すなわち、クライアントコンピュータ１−Ａのユーザは、報告書類の作成等を行う際に、全ての文字やデータを入力装置１８から入力するのではなく、既存の帳票入力や顧客情報入力などからデータをコピーし、作成中の書類にペーストすることでタイプ数を削減して業務の効率を向上させることがしばしば行われている。このような場合、業務内容を操作情報の内容で定まる作業名３０６で把握しようとすると、作業名３０６が短時間で切り替わる場合がある。このような場合では、複数の業務を並列的に行っている場合よりも、クリップボード３１を介してデータのコピー（またはカット）とペーストによって業務を行っている場合が多い。本第２の実施形態では、このように、操作情報のみから作業名３０６が定まった場合でもコピー元とペースト先の関係から実際に処理を行っている作業名３０６をより正確に捕捉するものである。
【０１０７】
図１４は、前記第１実施形態の図２に示したサーバコンピュータ１００で稼動するソフトウェアの機能を示すブロック図である。
【０１０８】
図１４において、操作情報蓄積部３００Ａには、クライアントコンピュータ１−Ａの業務モニタエージェント２５の操作情報収集プログラム２０が収集した操作情報４１と更新情報４３は、操作情報収集部２１１によって操作情報蓄積部３００Ａへ格納される。
【０１０９】
図１７は、操作情報蓄積部３００Ａの一例を示す説明図である。図１７の操作情報蓄積部３００Ａは、前記第１実施形態の図７に示した操作情報蓄積部３００に、更新情報４３を格納する更新３０７を加えた点が相違点であり、その他は前記第１実施形態と同等である。
【０１１０】
更新３０７は、ＵＲＬ３０５に格納されたファイル名またはＵＲＬに対して更新があった場合に「有」を格納し、更新されなかった場合には「無」を格納する。なお、ＵＲＬ３０５に格納されている値がＵＲＬの場合には、Ｂｒｏｗｓｅｒで当該ＵＲＬを表示して、プルダウンメニューの選択や、テキストボックスの編集を行った場合に更新情報４３が「有」となり、操作情報蓄積部３００Ａの更新３０７には「有」が格納される。なお、図１７に示したアプリ名３０３＝Ｂｒｏｗｓｅｒ、タイトル３０４＝「帳票入力」などは、ＷＥＢシステムを利用して業務を遂行することを示している。
【０１１１】
図１５は、クライアントコンピュータ１−Ａの操作情報収集プログラム２０で行われる処理の一例を示すフローチャートである。
【０１１２】
このフローチャートは、ＯＳ３０から操作メッセージがアプリケーション５１（または５２）へ発行されたときに実行される。
【０１１３】
ステップＳ３１〜Ｓ３５は前記第１実施形態の図３に示したステップＳ１〜５と同様である。
【０１１４】
ステップＳ３１で、操作情報収集プログラム２０は、ＯＳ３０が発行した操作メッセージをフックして、当該操作メッセージの内容を取得し、また、ＯＳ３０のシステム時刻（または日時）を現在時刻（または日時）として取得する。ステップＳ３２では、操作情報収集プログラム２０は取得した操作メッセージの内容が、入力装置１８を操作したことによる入力メッセージまたはアプリケーション５１をアクティブウィンドウに変更するメッセージ（アクティブウィンドウ変更メッセージ）を含むか否かを判定し、取得した操作メッセージの内容が、入力メッセージまたはアクティブウィンドウ変更メッセージを含む場合にはステップＳ３３へ進み、入力メッセージまたはアクティブウィンドウ変更メッセージを含まない場合にはそのまま処理を終了して、次回の操作メッセージが発行されるまで待機する。
【０１１５】
ステップＳ３３では、操作情報収集プログラム２０は、前回の入力メッセージを取得した時刻から現在時刻までの時間が所定時間Ｘを経過しているか否かを判定し、所定時間Ｘを経過していればステップＳ３４へ進み、所定時間Ｘを経過していなければステップＳ３７に進む。
【０１１６】
ステップＳ３４では、操作情報収集プログラム２０が、前回の入力メッセージを取得した時刻（前回操作時刻）から現在時刻までの操作情報としてアプリ名３０３が「入力無し」で、時刻３０２が前回操作時刻の操作情報を生成してメモリ１２の操作情報４１に格納してステップＳ３５に進む。
【０１１７】
ステップＳ３５では、操作情報収集プログラム２０が、取得した操作メッセージの内容が入力メッセージであるか否かを判定し、入力であればステップＳ３６に進み、入力メッセージを含まない場合にはステップＳ３７へ進む。
【０１１８】
ステップＳ３６では、現在のアクティブなウィンドウのアプリケーション名をアプリ名３０３、ウィンドウタイトルをタイトル３０４、ファイル名またはＵＲＬをＵＲＬ３０５とし、時刻３０２を現在時刻とした操作情報を生成し、また、更新情報４３を「無」としてメモリ１２の操作情報４１に格納してステップＳ３９に進む。
【０１１９】
ステップＳ３７では、操作情報収集プログラム２０が、取得した操作メッセージの内容がアクティブウィンドウ変更メッセージであるか否かを判定し、アクティブウィンドウ変更メッセージであればステップＳ３８に進み、アクティブウィンドウ変更メッセージを含まない場合にはステップＳ３９へ進む。
【０１２０】
ステップＳ３８では、操作情報収集プログラム２０が、アクティブウィンドウ変更メッセージに含まれる内容から、ウィンドウをアクティブに変更するアプリケーション名とウィンドウタイトル及びファイル名またはＵＲＬを取得し、上記ステップＳ３１で取得した時刻とを加えて操作情報を生成し、また、更新情報４３を「無」としてメモリ１２の操作情報４１へ格納する。これにより、メモリ１２の操作情報４１には、図１７の操作情報蓄積部３００Ａのエントリと同様に、時刻３０２、更新３０７、アプリ名３０３、タイトル３０４、ＵＲＬ３０５を含むデータが蓄積される。なお、メモリ１２の操作情報４１は、操作情報蓄積部３００Ａと同様に更新３０７を含めてもよい。
【０１２１】
ステップＳ３９では、取得した操作メッセージの内容が入力メッセージで、当該入力メッセージがデータの更新を伴うか否かを判定する。ここで、データの更新の有無の判定は、入力メッセージにデータの更新を示す所定のキャラクタキーの操作が含まれる場合や、データの更新を示す所定のキー操作（Ｃｔｒｌ＋Ｓ）が含まれる場合には、入力メッセージにデータの更新が含まれると判定してステップＳ４０へ進み、そうでない場合にはステップＳ４１へ進む。なお、キャラクタキーは、かな文字やアルファベット、数字、記号などのキャラクタ（文字）を入力するキーを示す。
【０１２２】
ステップＳ４０では、現在アクティブウィンドウになっているファイル名またはＵＲＬの更新情報４３を「有」に設定してからステップＳ３９へ進む。
【０１２３】
ステップＳ４１では、前回操作時刻の値を上記ステップＳ３１で取得した操作メッセージの時刻に更新する。
【０１２４】
以上のステップＳ３１〜Ｓ４１をＯＳ３０が操作メッセージを発行する度に実行することで、操作情報収集プログラム２０はメモリ１２に操作情報４１及び更新情報４３を蓄積していく。
【０１２５】
図１６は作業名定義プログラム２１０Ａで行われる処理の一例を示すフローチャートである。図６のフローチャートは、サーバコンピュータ１００の管理者などが入力装置１１８から実行開始を指令したときなどに行われる処理を示す。
【０１２６】
作業名定義プログラム２１０の処理は、前記第１実施形態の図６と同様に、管理者などが入力装置１１８からユーザのユーザ識別子と、時刻（または日時）の範囲を受け付けて、ユーザの識別子と時刻範囲に該当する操作情報とデータ授受情報を操作情報蓄積部３００Ａとデータ授受情報蓄積部３２０から抽出する。そして、操作情報蓄積部３００Ａとデータ授受情報蓄積部３２０から抽出したデータを処理対象として図１６のフローチャートを実行する。なお、操作情報蓄積部３００Ａから抽出した操作情報は、図１７で示すように時刻３０２の昇順でソートしておき、データ授受情報蓄積部３２０から抽出したデータは、図１０で示すようにペースト時刻３２２の昇順でソートしておく。
【０１２７】
ステップＳ５１では、作業名定義プログラム２１０Ａが、操作情報蓄積部３００Ａから抽出した操作情報から１レコードを読み込んで、アプリ名３０３、タイトル３０４、ＵＲＬ３０５及び更新３０７を取得し、作業名定義格納部３１０（図中ＤＢ）を検索する。
【０１２８】
ステップＳ５２では、作業名定義プログラム２１０が、上記ステップＳ５１で取得したアプリ名３０３、タイトル３０４またはＵＲＬ３０５が、作業名定義格納部３１０のアプリ３１２、ウィンドウタイトル３１３、ＵＲＬ／ファイル３１４の条件と一致するレコードがあるか否かを判定し、作業名定義格納部３１０の条件と一致するレコードがあればステップＳ５３へ進み、一致するレコード無い場合にはステップＳ５５に進む。
【０１２９】
ステップＳ５３では、更新３０７が「有」でデータの更新を伴う操作情報であるか否かを判定し、データの更新を伴う場合にはステップＳ６１へ進み、データの更新が無い場合にはステップＳ５４へ進む。
【０１３０】
ステップＳ５４では、作業名定義プログラム２１０Ａがデータ授受情報蓄積部３２０から抽出しておいたデータ授受情報を参照する。作業名定義プログラム２１０Ａは、ステップＳ５１で読み込んだ操作情報のウィンドウのタイトル３０４をコピー元３２３に含むレコードが、抽出しておいたデータ授受情報に存在するか否かを判定し、存在する場合にはステップＳ５６へ進み、存在しなければステップＳ６１へ進む。
【０１３１】
一方、ステップＳ５２の判定で、操作情報から作業名３０６が特定できない場合には、ステップＳ５５で、作業名定義プログラム２１０Ａは、ステップＳ５１で読み込んだ操作情報のウィンドウのタイトル３０４をコピー元３２３に含むレコードが、抽出しておいたデータ授受情報に存在するか否かを判定し、存在する場合にはステップＳ５６へ進み、存在しなければステップＳ６０へ進む。
【０１３２】
ステップＳ５６では、データ授受情報のコピー元３２３に操作情報のタイトル３０４を含むレコードのペースト先３２４の操作情報の更新３０７が「有」であるか否かを判定する。この判定は、ペースト先３２４のアプリケーション名、ウィンドウタイトル、ファイル名またはＵＲＬを、アプリ名３０３、タイトル３０４、ＵＲＬ３０５に含む操作情報を検索し、更新３０７が「有」であればステップＳ５７に進み、更新３０７が「無」であればステップＳ５９へ進む。
【０１３３】
ステップＳ５７では、ステップＳ５４またはＳ５５で一致したデータ授受情報のペースト先３２４のアプリケーション名とウィンドウタイトル及びファイル名（またはＵＲＬ）から作業名定義格納部３１０を検索する。
【０１３４】
次に、ステップＳ５８では、作業名定義プログラム２１０Ａは、データ授受情報のペースト先３２４のアプリケーション名とウィンドウタイトル及びファイル名が作業名定義格納部３１０の条件に一致するか否かを判定し、一致した場合はステップＳ６１へ進んでペースト先３２４の内容から作業名定義格納部３１０の作業名３１５を取得して、現在着目している操作情報蓄積部３００Ａの作業名３０６に設定する。一方、データ授受情報のペースト先３２４のアプリケーション名とウィンドウタイトル及びファイル名が作業名定義格納部３１０の条件に一致しなければステップＳ５９へ進む。
【０１３５】
ステップＳ５９では、現在着目しているペースト先３２４のウィンドウタイトルをコピー元３２３に含むレコードが抽出したデータ授受情報に存在するか否かを判定し、存在する場合はステップＳ５６に戻って上記処理を繰り返し、存在しない場合にはステップＳ６０に進む。
【０１３６】
ステップＳ５９では、現在着目している操作情報蓄積部３００Ａの操作情報の作業名３０６は未定義とし、上述したように作業名３０６をブランクまたは未定義を示すデータに設定する。そして、操作情報蓄積部３００Ａから抽出したすべての操作情報について作業名定義格納部３１０との比較が完了していなければステップＳ５１へ戻って上記処理を繰り返す。
【０１３７】
一方、ステップＳ６１では、操作情報のアプリ名３０３、タイトル３０４、ＵＲＬ３０５が一致した作業名定義格納部３１０のレコードから作業名３１５を取得し、作業名３１５の内容を、現在読み込んでいる操作情報蓄積部３００Ａのレコードの作業名３０６に設定する。そして、操作情報蓄積部３００Ａから抽出したすべての操作情報について作業名定義格納部３１０との比較が完了していなければステップＳ５１へ戻って上記処理を繰り返す。
【０１３８】
上記処理によって、まず、ユーザ識別子と時刻範囲で操作情報蓄積部３００から抽出した操作情報について、アプリケーション名３０３とタイトル３０４またはＵＲＬ３０５が作業名定義格納部３１０の条件に一致し、かつ更新３０７が「有」の場合には、作業名定義格納部３１０の一致したレコードの作業名３１５を当該操作情報の作業名３０６として設定する。この結果、図９で示すように、作業名定義格納部３１０に設定されている条件から一義的に定まる作業名３１５を、操作情報の作業名３０６に設定する。
【０１３９】
一方、操作情報のアプリケーション名３０３とタイトル３０４またはＵＲＬ３０５が作業名定義格納部３１０の条件に一致し、かつ更新３０７が「無」の場合には、データ授受情報のペースト先３２４から作業名３０６を特定する。すなわち、操作情報で作業名定義格納部３１０から作業名３０６が特定できる場合であっても、更新３０７が「無」の場合の操作情報は、作業名定義格納部３１０で特定される作業名３１５がユーザの業務を反映していないと推定できる。
【０１４０】
そこで、操作情報のタイトル３０４をコピー元３２３に含むデータ授受情報が存在する場合には、当該データ授受情報のペースト先３２４のアプリケーション名、ウィンドウタイトル、ファイル名またはＵＲＬから作業名定義格納部３１０を検索して作業名３１５を取得する。そして、取得した作業名３１５を現在着目している操作情報の作業名３０６に設定する。
【０１４１】
これにより、図１７に示すシリアル番号３０１＝「１」の操作情報蓄積部３００Ａのレコードは、タイトル３０４が「帳票入力」であるので、図８の作業名定義格納部３１０からは作業名３１５＝「帳票管理」として作業名３０６を特定することができる。しかし、この操作情報は、更新３０７が「無」であることから、ユーザは入力したデータを更新しておらず、結果として「帳票管理」の作業は行われなかったことになる。そこで、図１０のデータ授受情報を参照し、タイトル３０４の「帳票入力」を含むコピー元３２３を検索すると、ペースト時刻３２２が「９：４２：５２」で、操作情報の時刻３０２の「９：３０：０８」よりも後のペースト時刻３２２を有するシリアル番号３２１＝「１」のデータ授受情報のコピー元３２３に「帳票入力」が含まれる。
【０１４２】
作業名定義プログラム２１０Ａは、このシリアル番号３２１＝「１」のデータ授受情報のペースト先３２４の内容は「Ｃａｌｃ、電卓」で作業名定義格納部３１０には定義されていないので、さらに、「Ｃａｌｃ、電卓」を含むデータ授受情報を検索する。この結果、シリアル番号３２１＝「２」のデータ授受情報を抽出し、このペースト先３２４のアプリケーション名＝「Ｗｏｒｄｐｒｏｃｅｓｓｏｒ」から作業名定義格納部３１０の作業名３１５＝「文書作成」を取得する。こうして、作業名定義プログラム２１０Ａは、操作情報の作業名３０６には、タイトル３０４から定まる「帳票管理」に代わって、データ授受情報のペースト先３２４の内容から定まる「文書作成」を作業名３０６として特定することができる。
【０１４３】
すなわち、図１７のシリアル番号３０１＝「１」において、ユーザは、９：３０：０８にＢｒｏｗｓｅｒでタイトル３０４＝「帳票入力」にアクセスし、シリアル番号３０１＝「２」でタイトル３０４＝「電卓」をアクティブウィンドウに変更し、図１０のシリアル番号３２１＝「１」でＢｒｏｗｓｅｒの帳票入力から電卓にデータペーストを行う。さらに、ユーザはシリアル番号３２１＝「２」でタイトル＝「電卓」から「報告書類」へデータのペーストを行っている。つまり、ユーザは帳票入力の業務からデータのコピーだけを行い、コピーしたデータを電卓で加工してから報告書類に貼り付けたことが推定できる。したがって、作業名定義プログラム２１０Ａは、図１８で示すように、タイトル３０４＝「帳票入力」の作業名３０６＝「文書作成」と補正することにより、ユーザが行った業務の内容をコピー及びペーストの履歴から高精度で分析を行うことが可能となるのである。
【０１４４】
なお、上記第１及び第２の実施形態では、業務内容を分析する作業名定義プログラム２１０、２１０Ａをサーバコンピュータ１００で実行した例を示したが、クライアントコンピュータ１−Ａ〜１−Ｎでそれぞれ作業名定義プログラム２１０を実行しても良い。あるいは、サーバコンピュータ１００で操作情報収集プログラム２０と、データ授受情報収集プログラム２１を実行し、クライアントコンピュータ１−Ａ〜１−Ｎの業務モニタエージェント２５は操作メッセージを取得してサーバコンピュータ１００へ送信するようにしてもよい。
【産業上の利用可能性】
【０１４５】
以上のように、本発明はコンピュータを用いた業務の内容を分析する業務分析システムや、業務分析ソフトウェアに適用することができる。
【図面の簡単な説明】
【０１４６】
【図１】第１の実施形態を示し、本発明を適用する計算機システムの一例を示すブロック図である。
【図２】クライアントコンピュータとサーバコンピュータで稼動するソフトウェアの機能を示すブロック図である。
【図３】クライアントコンピュータの操作情報収集プログラムで行われる処理の一例を示すフローチャートである。
【図４】クライアントコンピュータのデータ授受情報収集プログラムで行われるコピーまたはカットが発生したときの処理の一例を示すフローチャートである。
【図５】クライアントコンピュータのデータ授受情報収集プログラムで行われるペーストが発生したときの処理の一例を示すフローチャートである。
【図６】サーバコンピュータの作業名定義プログラムの処理の一例を示すフローチャートである。
【図７】あるユーザの操作情報を蓄積した操作情報蓄積部の一例を示す説明図である。
【図８】予め設定された作業名定義格納部の一例を示す説明図である。
【図９】操作情報のみで作業名定義格納部から作業名を特定した後の操作情報蓄積部の一例を示す説明図である。
【図１０】あるユーザのデータ授受情報を蓄積したデータ授受情報蓄積部の一例を示す説明図である。
【図１１】操作情報に加えてデータ授受情報で作業名定義格納部から作業名を特定した後の操作情報蓄積部の一例を示す説明図である。
【図１２】コピーとペーストの履歴から推定した作業名を反映した操作情報蓄積部ＧＵＩにて表示したウィンドウの一例を示す画面イメージである。
【図１３】データ授受情報蓄積部の内容をウィンドウに表示した例を示す画面イメージ。
【図１４】第２の実施形態を示し、サーバコンピュータで稼動するソフトウェアの機能を示すブロック図である。
【図１５】第２の実施形態を示し、クライアントコンピュータの操作情報収集プログラムで行われる処理の一例を示すフローチャートである。
【図１６】第２の実施形態を示し、作業名定義プログラムで行われる処理の一例を示すフローチャートである。
【図１７】第２の実施形態を示し、作業名を特定する前の操作情報蓄積部の一例を示す説明図である。
【図１８】第２の実施形態を示し、作業名を特定した後の操作情報蓄積部の一例を示す説明図である。
【符号の説明】
【０１４７】
１−Ａ〜１−Ｎ  クライアントコンピュータ
１００  サーバコンピュータ
３０  ＯＳ
３１  クリップボード
２０  操作情報収集プログラム
２１  データ授受情報収集プログラム
４１  操作情報
４２  データ授受情報
２１０  作業名定義プログラム
３００  操作情報蓄積部
３１０  作業名定義格納部
３２０  データ授受情報格納部
【図１】
2010128916.tif 000003
【図２】
2010128916.tif 000004
【図３】
2010128916.tif 000005
【図４】
2010128916.tif 000006
【図５】
2010128916.tif 000007
【図６】
2010128916.tif 000008
【図７】
2010128916.tif 000009
【図８】
2010128916.tif 000010
【図９】
2010128916.tif 000011
【図１０】
2010128916.tif 000012
【図１１】
2010128916.tif 000013
【図１４】
2010128916.tif 000014
【図１５】
2010128916.tif 000015
【図１６】
2010128916.tif 000016
【図１７】
2010128916.tif 000017
【図１８】
2010128916.tif 000018
【図１２】
2010128916.tif 000019
【図１３】
2010128916.tif 000020