(57)【要約】      （修正有）【課題】情報処理装置の状態に基づく業務に関する作業期間の推定精度を向上させる。【解決手段】判定プログラムは、コンピュータに、特定の期間の指定を受け付け、ユーザによる所定の情報処理装置の操作履歴を示す情報に基づいて、特定の期間において前記情報処理装置が操作された第１の期間と、情報処理装置が操作されなかった第２の期間とを特定し、第１の期間の長さと第２の期間の長さとに基づいて、特定の期間が作業期間に該当するか否か判定する、処理を実行させる。【選択図】図３
2016126466.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
特定の期間の指定を受け付け、
ユーザによる所定の情報処理装置の操作履歴を示す情報に基づいて、前記特定の期間において前記情報処理装置が操作された第１の期間と、前記情報処理装置が操作されなかった第２の期間とを特定し、
前記第１の期間の長さと前記第２の期間の長さとに基づいて、前記特定の期間が作業期間に該当するか否か判定する、
処理を実行させることを特徴とする判定プログラム。
【請求項２】
前記判定する処理は、前記特定の期間が作業期間に該当するか否かを判定するための１以上の判定条件に、前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする請求項１記載の判定プログラム。
【請求項３】
前記判定条件は、ユーザごとに値が異なる変数を含み、
前記特定する処理は、ユーザごとの前記操作履歴を示す情報に基づいて、前記第１の期間と前記第２の期間とを、ユーザごとに特定し、
前記判定する処理は、ユーザごとに、前記変数に当該ユーザに対応する値が適用された判定条件に、当該ユーザに関する前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする請求項２記載の判定プログラム。
【請求項４】
前記特定の期間について、前記作業期間に該当するか否かを示すユーザによる申請結果を受け付け、
前記判定する処理による判定結果と、前記申請結果とが異なる期間とが異なる場合に、当該判定結果に対して適用された判定条件に関して、前記変数の値を変更する、
処理を前記コンピュータに実行させることを特徴とする請求項３記載の判定プログラム。
【請求項５】
前記変更する処理は、前記判定結果と前記申請結果とが一致するように前記変数の値を変更する、
ことを特徴とする請求項４記載の判定プログラム。
【請求項６】
前記判定結果と前記申請結果と、当該判定結果に関して適用された判定条件とを対応付けて記憶部に記憶し、
前記変更する処理は、同一の判定条件に対して対応付けられて前記記憶部に記憶されている複数の前記判定結果と前記申請結果の中で、相互に一致する前記判定結果と前記申請結果との割合が所定値以上となるように、当該判定条件に関する変数の値を変更する、
処理を前記コンピュータに実行させることを特徴とする請求項４又は５記載の判定プログラム。
【請求項７】
前記変更する処理は、変数の値を変更しても前記相互に一致する前記判定結果と前記申請結果との割合が所定値以上とならない判定条件を無効化する、
ことを特徴とする請求項６記載の判定プログラム。
【請求項８】
特定の期間の指定を受け付ける受付部と、
ユーザによる所定の情報処理装置の操作履歴を示す情報に基づいて、前記特定の期間において前記情報処理装置が操作された第１の期間と、前記情報処理装置が操作されなかった第２の期間とを特定する特定部と、
前記第１の期間の長さと前記第２の期間の長さとに基づいて、前記特定の期間が作業期間に該当するか否か判定する判定部と、
を有することを特徴とする判定装置。
【請求項９】
前記判定部は、前記特定の期間が作業期間に該当するか否かを判定するための１以上の判定条件に、前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする請求項８記載の判定装置。
【請求項１０】
前記判定条件は、ユーザごとに値が異なる変数を含み、
前記特定部は、ユーザごとの前記操作履歴を示す情報に基づいて、前記第１の期間と前記第２の期間とを、ユーザごとに特定し、
前記判定部は、ユーザごとに、前記変数に当該ユーザに対応する値が適用された判定条件に、当該ユーザに関する前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする請求項９記載の判定装置。
【請求項１１】
前記特定の期間について、前記作業期間に該当するか否かを示すユーザによる申請結果を受け付ける第２の受付部と、
前記判定部による判定結果と、前記申請結果とが異なる期間とが異なる場合に、当該判定結果に対して適用された判定条件に関して、前記変数の値を変更する変更部と、
を有することを特徴とする請求項１０記載の判定装置。
【請求項１２】
前記変更部は、前記判定結果と前記申請結果とが一致するように前記変数の値を変更する、
ことを特徴とする請求項１１記載の判定装置。
【請求項１３】
前記判定結果と前記申請結果と、当該判定結果に関して適用された判定条件とを対応付けて記憶部に記憶し、
前記変更部は、同一の判定条件に対して対応付けられて前記記憶部に記憶されている複数の前記判定結果と前記申請結果の中で、相互に一致する前記判定結果と前記申請結果との割合が所定値以上となるように、当該判定条件に関する変数の値を変更する、
ことを特徴とする請求項１１又は１２記載の判定装置。
【請求項１４】
前記変更部は、変数の値を変更しても前記相互に一致する前記判定結果と前記申請結果との割合が所定値以上とならない判定条件を無効化する、
ことを特徴とする請求項１３記載の判定装置。
【請求項１５】
コンピュータが、
特定の期間の指定を受け付け、
ユーザによる所定の情報処理装置の操作履歴を示す情報に基づいて、前記特定の期間において前記情報処理装置が操作された第１の期間と、前記情報処理装置が操作されなかった第２の期間とを特定し、
前記第１の期間の長さと前記第２の期間の長さとに基づいて、前記特定の期間が作業期間に該当するか否か判定する、
処理を実行することを特徴とする判定方法。
【請求項１６】
前記判定する処理は、前記特定の期間が作業期間に該当するか否かを判定するための１以上の判定条件に、前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする請求項１５記載の判定方法。
【請求項１７】
前記判定条件は、ユーザごとに値が異なる変数を含み、
前記特定する処理は、ユーザごとの前記操作履歴を示す情報に基づいて、前記第１の期間と前記第２の期間とを、ユーザごとに特定し、
前記判定する処理は、ユーザごとに、前記変数に当該ユーザに対応する値が適用された判定条件に、当該ユーザに関する前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする請求項１６記載の判定方法。
【請求項１８】
前記特定の期間について、前記作業期間に該当するか否かを示すユーザによる申請結果を受け付け、
前記判定する処理による判定結果と、前記申請結果とが異なる期間とが異なる場合に、当該判定結果に対して適用された判定条件に関して、前記変数の値を変更する、
処理を前記コンピュータが実行することを特徴とする請求項１７記載の判定方法。
【請求項１９】
前記変更する処理は、前記判定結果と前記申請結果とが一致するように前記変数の値を変更する、
ことを特徴とする請求項１８記載の判定方法。
【請求項２０】
前記判定結果と前記申請結果と、当該判定結果に関して適用された判定条件とを対応付けて記憶部に記憶し、
前記変更する処理は、同一の判定条件に対して対応付けられて前記記憶部に記憶されている複数の前記判定結果と前記申請結果の中で、相互に一致する前記判定結果と前記申請結果との割合が所定値以上となるように、当該判定条件に関する変数の値を変更する、
処理を前記コンピュータが実行することを特徴とする請求項１８又は１９記載の判定方法。
【請求項２１】
前記変更する処理は、変数の値を変更しても前記相互に一致する前記判定結果と前記申請結果との割合が所定値以上とならない判定条件を無効化する、
ことを特徴とする請求項２０記載の判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定プログラム、判定装置、及び判定方法に関する。
【背景技術】
【０００２】
近年では、従業員の家庭等の職場以外の環境からも、従業員が所有する端末を用いて企業内の情報システムにアクセスすることで、業務の遂行が可能となっている。このように、職場以外で行われる業務に関しては、労働時間の正確な把握が困難となる。
【０００３】
そこで、従来、ＰＣ（Personal Computer）等の作業用端末の起動時間や操作時間を労働時間として推定することが検討されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１８８２０１号公報
【特許文献２】特開２０１２−１５０６６９号公報
【特許文献３】特開２０１１−５９８２３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、職場以外の環境においては、作業用端末が起動されていても、業務が行われているとは限らない。例えば、業務以外の目的で作業用端末が利用される場合が有る。また、作業用端末が起動されていない期間、又は作業用端末が起動されているが操作が行われていない期間において、業務が行われている可能性も有る。例えば、作業用端末の操作の合間に、業務上の書類が閲覧されている場合が有る。
【０００６】
そこで、一側面では、本発明は、情報処理装置の状態に基づく業務に関する作業期間の推定精度を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
一つの案では、判定プログラムは、ンピュータに、特定の期間の指定を受け付け、ユーザによる所定の情報処理装置の操作履歴を示す情報に基づいて、前記特定の期間において前記情報処理装置が操作された第１の期間と、前記情報処理装置が操作されなかった第２の期間とを特定し、前記第１の期間の長さと前記第２の期間の長さとに基づいて、前記特定の期間が作業期間に該当するか否か判定する、
処理を実行させる。
【発明の効果】
【０００８】
一側面によれば、情報処理装置の状態に基づく業務に関する作業期間の推定精度を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態における業務管理システムの構成例を示す図である。
【図２】本発明の実施の形態における判定サーバのハードウェア構成例を示す図である。
【図３】本発明の実施の形態における業務管理システムの機能構成例を示す図である。
【図４】接続履歴の生成処理の処理手順の一例を説明するためのフローチャートである。
【図５】接続履歴記憶部の構成例を示す図である。
【図６】動作履歴の生成処理の処理手順の一例を説明するためのフローチャートである。
【図７】動作履歴記憶部の構成例を示す図である。
【図８】残業時間の推定処理の処理手順の一例を説明するためのフローチャートである。
【図９】接続履歴レコードと動作履歴レコードとの対応付けの結果の一例を示す図である。
【図１０】スリープ期間に対応するレコードの追加例を示す図である。
【図１１】稼動フラグの付与例を示す図である。
【図１２】判定条件記憶部に記憶されている判定条件テーブルの一例を示す図である。
【図１３】判定条件３の条件式を説明するための図である。
【図１４】判定条件記憶部に記憶されている業務パターンテーブルの一例を示す図である。
【図１５】判定結果記憶部の構成例を示す図である。
【図１６】勤怠管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【図１７】時間外労働申請画面の表示例を示す図である。
【図１８】申請レコードの一例を示す図である。
【図１９】判定条件３の補正処理の概要を説明するための図である。
【図２０】判定条件の補正処理の処理手順の一例を説明するためのフローチャートである。
【図２１】関連レコード群の一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、本発明の実施の形態における業務管理システムの構成例を示す図である。図１において、業務管理システム１は、或る企業（以下、「企業Ａ」という。）において運用されているコンピュータシステムである。業務管理システム１は、１以上のユーザ端末４０、業務サーバ２０、判定サーバ１０、及び勤怠管理サーバ３０等を含む。業務サーバ２０は、ＬＡＮ（Local Area Network）又はインターネット等のネットワークを介して、各ユーザ端末４０と通信可能に接続される。判定サーバ１０は、ＬＡＮ（Local Area Network）又はインターネット等のネットワークを介して、業務サーバ２０及び勤怠管理サーバ３０と通信可能に接続される。
【００１１】
ユーザ端末４０は、例えば、企業Ａの各従業員が利用する端末である。例えば、ＰＣ（Personal Computer）、タブレット端末、又はスマートフォン等が、ユーザ端末４０として利用されてもよい。各従業員は、ユーザ端末４０を操作して、業務サーバ２０にアクセスすることで、職場以外の環境（例えば、自宅等）においても業務を遂行することができる。
【００１２】
業務サーバ２０は、企業Ａの各従業員の業務に関する情報を管理する１以上のコンピュータである。各従業員は、業務を行う場合、ユーザ端末４０を介して業務サーバ２０にログインする必要が有る。業務サーバ２０へのログイン期間において、各従業員は、自らの業務を遂行することができる。例えば、業務サーバ２０は、仮想デスクトップサービス（ＤａａＳ（Desktop-as-a-Service））を提供可能であってよい。この場合、各従業員の個人環境（例えば、デスクトップ環境等）は、業務サーバ２０において実現され、ユーザ端末４０は、当該個人環境の表示や、当該個人環境に対する入力の受け付け等を担う。
【００１３】
業務サーバ２０は、また、各ユーザ端末４０から業務サーバ２０への接続履歴や、業務サーバ２０の動作状態の履歴（以下、「動作履歴」という。）等を記録する。業務サーバ２０の動作状態には、例えば、稼動状態とスリープ状態とが有る。業務サーバ２０は、いずれかのユーザ端末４０から接続されると、稼動状態に遷移する。稼動状態において、無操作状態が一定時間以上継続すると、業務サーバ２０は、スリープ状態に遷移する。無操作状態とは、ユーザ端末４０において入力が行われない状態をいう。
【００１４】
判定サーバ１０は、業務サーバ２０の接続履歴及び業務サーバ２０の動作履歴等に基づいて、各従業員による業務上の作業時間（労働時間）を推定する１以上のコンピュータである。より詳しくは、判定サーバ１０は、業務サーバ２０の接続履歴及び業務サーバ２０の動作状態の履歴等に基づいて、ユーザ端末４０ごとに、業務サーバ２０への接続期間及び非接続期間、並びに業務サーバ２０の稼動期間及びスリープ期間を特定する。接続期間とは、ユーザ端による接続が開始されてからユーザ端末４０による接続が終了するまでの期間をいう。非接続期間は、接続期間以外の期間をいう。稼動期間とは、業務サーバ２０が稼動状態である期間をいう。スリープ期間とは、業務サーバ２０がスリープ状態である期間をいう。判定サーバ１０は、各期間について、予め設定された１以上の判定条件に基づいて、当該期間が労働時間に該当するか否かを判定する。なお、本実施の形態において、判定サーバ１０によって推定される作業時間は、時間外労働の作業時間（残業時間）である。
【００１５】
勤怠管理サーバ３０は、勤怠管理に関する情報を管理する１以上のコンピュータである。本実施の形態において、勤怠管理サーバ３０は、判定サーバ１０によって期間ごとに判定される、当該期間が業務上の作業時間（以下、単に「作業時間」という。）に該当するか否かの判定結果を、各従業員に提示する。勤怠管理サーバ３０は、判定サーバ１０によって作業時間に該当するか否かが判定された各期間が、従業員の判断において残業時間に該当するか否かの申請を、従業員から受け付け、当該申請の内容を示す情報（以下、「申請情報」という。）を、判定サーバ１０に送信する。判定サーバ１０は、申請情報と判定結果とが異なる期間に対して適用された判定条件を、必要に応じて修正（変更）する。
【００１６】
なお、業務サーバ２０、判定サーバ１０、及び勤怠管理サーバ３０のうちのいずれか二つ又は全部は、共通のコンピュータを用いて実現されてもよい。
【００１７】
図２は、本発明の実施の形態における判定サーバのハードウェア構成例を示す図である。図２の判定サーバ１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５等を有する。
【００１８】
判定サーバ１０での処理を実現するプログラムは、記録媒体１０１によって提供される。プログラムを記録した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１９】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って判定サーバ１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００２０】
なお、記録媒体１０１の一例としては、ＣＤ−ＲＯＭ、ＤＶＤディスク、又はＵＳＢメモリ等の可搬型の記録媒体が挙げられる。また、補助記憶装置１０２の一例としては、ＨＤＤ（Hard Disk Drive）又はフラッシュメモリ等が挙げられる。記録媒体１０１及び補助記憶装置１０２のいずれについても、コンピュータ読み取り可能な記録媒体に相当する。
【００２１】
なお、業務サーバ２０及び勤怠管理サーバ３０についても、図２に示されるようなハードウェア構成を有していてもよい。
【００２２】
図３は、本発明の実施の形態における業務管理システムの機能構成例を示す図である。図３において、業務サーバ２０は、接続管理部２１、１以上の仮想マシン２２、及び履歴送信部２３等を有する。これらは、業務サーバ２０にインストールされた１以上のプログラムが、業務サーバ２０のＣＰＵに実行させる処理により実現可能である。業務サーバ２０は、また、接続履歴記憶部２４及び動作履歴記憶部２５等を利用する。これら各記憶部は、業務サーバ２０の補助記憶装置、又は業務サーバ２０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２３】
接続管理部２１は、各ユーザ端末４０からの仮想マシン２２への接続の開始、及び当該接続の終了を検知し、当該接続の開始時期及び終了時期を示す接続履歴を接続履歴記憶部２４に記憶する。各仮想マシン２２は、例えば、それぞれが仮想デスクトップサービスを提供する仮想マシンである。例えば、１つの仮想マシン２２は、同時に１つのユーザ端末４０と接続可能である。各仮想マシン２２は、自らの動作履歴を動作履歴記憶部２５に記憶する。すなわち、図１において、業務サーバ２０の動作状態として説明した内容は、厳密には、各仮想マシン２２の動作状態である。
【００２４】
履歴送信部２３は、一定時間ごと（例えば、１日ごと）に、接続履歴記憶部２４に記憶された接続履歴と、動作履歴記憶部２５に記憶された動作履歴とを、判定サーバ１０に送信する。
【００２５】
判定サーバ１０は、履歴受信部１１、特定部１２、判定部１３、判定結果送信部１４、申請情報受信部１５、通知部１６、及び判定条件補正部１７等を有する。これら各部は、判定サーバ１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現可能である。判定サーバ１０は、また、履歴記憶部１２１、判定条件記憶部１２２、判定結果記憶部１２３、及び申請情報記憶部１２４等を利用する。これら各記憶部は、補助記憶装置１０２、又は判定サーバ１０にネットワークを介して接続可能な記憶装置等を用いて実現可能である。
【００２６】
履歴受信部１１は、業務サーバ２０から送信される接続履歴及び動作履歴を受信する。特定部１２は、接続履歴に基づいて、接続期間及び非接続期間を特定する。特定部１２は、また、動作履歴に基づいて、稼動期間及びスリープ期間を特定する。履歴記憶部１２１は、特定部１２による処理の作業用の記憶領域として、また、特定部１２による処理結果の記憶領域として用いられる。
【００２７】
判定部１３は、各接続期間中の各稼動期間及び各スリープ期間のそれぞれと、各非接続時間との各期間について、作業時間に該当するか否かを判定する。なお、作業時間に該当しない時間を、「非作業時間」という。判定部１３による判定には、判定条件記憶部１２２に記憶されている判定条件が用いられる。また、判定部１３による判定結果は、判定結果記憶部１２３に記憶される。
【００２８】
判定結果送信部１４は、判定結果記憶部１２３に記憶されている判定結果を、勤怠管理サーバ３０に送信する。申請情報受信部１５は、判定部１３によって作業時間に該当するか否かが判定された各期間に関する申請情報を、勤怠管理サーバ３０から受信する。受信された申請情報は、申請情報記憶部１２４に記憶される。通知部１６は、判定部１３による判定結果と、受信された申請情報との間に大きな乖離が有る場合に、その旨を示す情報を、例えば、管理者のＰＣ（Personal Computer）等に送信する。判定条件補正部１７は、判定部１３による判定結果と申請情報とが異なる期間に対して適用された判定条件を、必要に応じて修正（変更）する。
【００２９】
勤怠管理サーバ３０は、判定結果受信部３１、申請情報受付部３２、及び申請情報送信部３３等を有する。これら各部は、勤怠管理サーバ３０にインストールされた１以上のプログラムが、勤怠管理サーバ３０のＣＰＵに実行させる処理により実現可能である。
【００３０】
判定結果受信部３１は、判定部１３による判定結果を受信する。申請情報受付部３２は、判定結果をユーザ端末４０に表示させて、当該判定結果に係る期間に関する申請情報を、ユーザ端末４０を介して従業員から受け付ける。なお、判定結果の表示先は、ユーザ端末４０でなくてもよい。例えば、企業Ａの職場環境における所定の端末に判定結果が表示され、当該端末を介して申請情報が入力されてもよい。申請情報送信部３３は、申請情報受付部３２が受け付けた申請情報を、判定サーバ１０に送信する。
【００３１】
以下、業務管理システム１が実行する処理手順について説明する。図４は、接続履歴の生成処理の処理手順の一例を説明するためのフローチャートである。
【００３２】
業務サーバ２０の接続管理部２１は、いずれかのユーザ端末４０からの接続要求（例えば、ログイン要求）を受信すると（Ｓ１０１でＹｅｓ）、空いている仮想マシン２２のうちのいずれかを当該ユーザ端末４０に対して割り当てる（Ｓ１０２）。例えば、接続管理部２１は、当該ユーザ端末４０を、空いている仮想マシン２２に接続する。なお、本実施の形態において、ユーザ端末４０と仮想マシン２２とが接続されてから切断されるまでの通信単位を「セッション」という。
【００３３】
続いて、接続管理部２１は、接続要求に含まれているユーザ名と、現在日時と、当該ユーザ端末４０に対して割り当てられた仮想マシン２２のマシン名と等が記録されたレコードを生成し、当該レコードを接続履歴記憶部２４に記憶する（Ｓ１０３）。
【００３４】
図５は、接続履歴記憶部の構成例を示す図である。図５において、接続履歴記憶部２４の各レコードは、ユーザ名、接続区分、接続開始日時、接続終了日時、及びマシン名等の項目を有する。接続区分は、接続元であるユーザ端末４０が、企業Ａの社内から接続しているのか、社外から接続しているのを示す情報である。例えば、接続管理部２１は、接続要求等の送信元のＩＰアドレスが、社内のネットワーク環境におけるＩＰアドレスの範囲に含まれる場合、接続区分の値を「社内」とし、当該ＩＰアドレスが当該範囲に含まれない場合、接続区分の値を「社内」とする。
【００３５】
ステップＳ１０３では、ユーザ名、接続区分、接続開始日時、及びマシン名について値を有するレコードが、接続履歴記憶部２４に新たに追加される。すなわち、ステップＳ１０３の時点における現在日時は、接続開始日時として記憶される。
【００３６】
当該ユーザ端末４０のユーザは、当該ユーザ端末４０を介して業務サーバ２０（仮想マシン２２）を利用することができる。したがって、仮想マシン２２との接続の開始は、仮想マシン２２の利用の開始として把握可能である。
【００３７】
一方、接続管理部２１は、既にいずれかの仮想マシン２２に接続中のユーザ端末４０から、切断要求（例えば、ログアウト要求）を受信すると（Ｓ１０４でＹｅｓ）、当該ユーザ端末４０との間でセッションが接続されている仮想マシン２２について、当該ユーザ端末４０とのセッションを切断する（Ｓ１０５）。なお、セッションごとに、当該セッションに係るユーザ端末４０のユーザのユーザ名と、当該セッションに係る仮想マシン２２のマシン名とが対応付けられて管理されていてもよい。斯かる対応付けに基づいて、切断要求に係るユーザ端末４０との間でセッションが接続されている仮想マシン２２が特定されてもよい。この場合、切断要求には、切断要求の送信元のユーザ端末４０のユーザのユーザ名を特定可能な情報が含まれていればよい。
【００３８】
仮想マシン２２とのセッションが切断されることにより、当該セッションに係るユーザ端末４０のユーザは、仮想マシン２２の利用を終了することになる。
【００３９】
続いて、接続管理部２１は、切断要求に係るユーザ名と、ステップＳ１０５においてセッションが切断された仮想マシン２２のマシン名とを含み、接続終了日時の値を有さないレコードを、接続履歴記憶部２４から検索する（Ｓ１０６）。続いて、接続管理部２１は、検索されたレコードの接続終了日時に現在日時を記録する（Ｓ１０７）。
【００４０】
図６は、動作履歴の生成処理の処理手順の一例を説明するためのフローチャートである。
【００４１】
各仮想マシン２２は、稼動状態へ遷移すると（Ｓ１１１でＹｅｓ）、当該仮想マシン２２のマシン名と現在日時とが記録されたレコードを生成し、当該レコードを動作履歴記憶部２５に記憶する（Ｓ１１２）。
【００４２】
図７は、動作履歴記憶部の構成例を示す図である。図７において、動作履歴記憶部２５の各レコードは、マシン名、稼動開始日時、及び稼動終了日時等の項目を有する。ステップＳ１１２では、マシン名及び稼動開始日時について値を有するレコードが、動作履歴記憶部２５に新たに追加される。すなわち、ステップＳ１１２の時点における現在日時は、稼動開始日時として記憶される。
【００４３】
なお、各仮想マシン２２は、接続管理部２１によってユーザ端末４０と接続された場合、又はユーザ端末４０と接続されている期間において、スリープ状態に遷移した後、ユーザ端末４０からの入力が通知された場合に、稼動状態に遷移する。
【００４４】
ユーザ端末４０と接続された仮想マシン２２には、ユーザ端末４０に対する入力が逐次通知される。当該仮想マシン２２は、当該入力に応じた処理を実行する。
【００４５】
一方、各仮想マシン２２は、スリープ状態に遷移すると（Ｓ１１３でＹｅｓ）、当該仮想マシン２２のマシン名を含み、稼動終了日時の値を有さないレコードを、動作履歴記憶部２５から検索する（Ｓ１１４）。なお、各仮想マシン２２は、セッションが接続されているユーザ端末４０から入力が通知されない状態（すなわち、無操作状態）が一定時間継続した場合、又はセッションが切断された場合に、スリープ状態に遷移する。続いて、当該仮想マシン２２は、検索されたレコードの稼働終了日時に現在日時を記録する（Ｓ１１５）。
【００４６】
なお、無操作状態の開始時（すなわち、最後の入力時）から、スリープ状態への遷移が行われる時までの経過時間分だけ、稼動終了日時が繰り上げられてもよい。例えば、当該経過時間が３分である場合、ステップＳ１１５における現在日時の３分前の日時が、稼動終了日時として記録されてもよい。同様に、セッションが切断されてからスリープ状態への遷移するまでに遅延が有る場合、当該遅延分だけ、稼動終了日時が繰り上げられてもよい。
【００４７】
図４及び図６において説明した処理によって接続履歴記憶部２４又は動作履歴記憶部２５に記憶されたレコード群は、履歴送信部２３によって判定サーバ１０に送信される。例えば、履歴送信部２３は、一定期間ごとに、当該一定期間において接続履歴記憶部２４又は動作履歴記憶部２５に記憶されたレコード群を、判定サーバ１０に送信する。以下、接続履歴を構成するレコードを、「接続履歴レコード」といい、動作履歴を構成するレコードを、「動作履歴レコード」という。
【００４８】
続いて、判定サーバ１０が実行する処理手順について説明する。図８は、残業時間の推定処理の処理手順の一例を説明するためのフローチャートである。
【００４９】
履歴受信部１１は、接続履歴レコード群及び動作履歴レコード群の受信を待機している（Ｓ２０１）。或る一定期間における接続履歴レコード群及び動作履歴レコード群が履歴受信部１１によって受信されると（Ｓ２０１でＹｅｓ）、特定部１２は、各接続履歴レコードに対して、当該接続履歴レコードが生成されたセッションと同一のセッションにおいて生成された動作履歴レコードを対応付ける（Ｓ２０２）。例えば、或る動作履歴レコードは、次の（１）及び（２）の条件を満たす接続履歴レコードに対応付けられる。
（１）当該動作履歴レコードのマシン名と同じマシン名を有すること。
（２）当該動作履歴レコードが示す稼動期間（稼動開始日時から稼動終了日時）を含む接続期間（接続開始日時から接続終了日時）を有すること。
【００５０】
例えば、図５に示される接続履歴レコードと、図７に示される動作履歴レコードとは、図９に示されるように対応付けられる。
【００５１】
図９は、接続履歴レコードと動作履歴レコードとの対応付けの結果の一例を示す図である。対応付けによって生成されるレコードは、ユーザ名、接続区分、接続開始日時、接続終了日時、マシン名、稼動開始日時、及び稼動終了日時等の項目を有する。ユーザ名及びマシン名には、対応付けられた接続履歴レコード又は動作履歴レコードから取得される。接続区分、接続開始日時、及び接続終了日時は、対応付けられた接続履歴レコードから取得される。稼動開始日時及び稼動終了日時は、対応付けられた動作履歴レコードから取得される。なお、図９には、図５において１番目の接続履歴レコードに対して、図７において１番目及び４番目の動作履歴レコードが対応付けられた例が示されている。図９において、２番目のレコードのユーザ名、接続開始日時、接続終了日時、及びマシン名の値は空であるが、これは、これらの値が１番目のレコードと共通することを示す。なお、対応付けられたレコードは、例えば、履歴記憶部１２１に記憶される。
【００５２】
続いて、特定部１２は、接続区分の値が「社内」であるレコードを、履歴記憶部１２１から削除する（Ｓ２０３）。ユーザ端末４０が社内において利用されているということは、当該ユーザ端末４０に係るユーザの作業時間は、勤怠管理サーバ３０によって管理されているはずであり、当該ユーザ端末４０に関する残業時間が、判定サーバ１０によって推定される必要は無いからである。
【００５３】
続いて、特定部１２は、接続期間及び稼動期間から、定時時間内に含まれる期間を除外する（Ｓ２０４）。例えば、平日の９：００〜１７：００までが企業Ａの定時時間内であれば、接続期間及び稼動期間から、定時時間内に重複する期間が除外される。具体的には、仮に、接続開始日時が１６：００であり、接続終了日時が１８：００である場合、接続開始日時が、１７：００に変更される。稼動開始日時に関しても同様である。本実施の形態では、残業時間が推定の対象だからである。なお、図９のレコードに関しては、接続期間及び稼動期間は定時時間内に重複しないため、変更は行われない。
【００５４】
続いて、特定部１２は、スリープ期間に対応するレコードを履歴記憶部１２１に追加する（Ｓ２０５）。図９の例において、「ｕｓｅｒＡ」については、２０１４年１２月１日の１８時１分から１８：３０までが接続期間であること、当該接続期間において、１８：０１から１８：３０までと、１８：４０から１９：３０までとが、「ｕｓｅｒＡ」が利用した仮想マシン２２の稼働期間であることが分かる。換言すれば、１５：３０から１５：４０までは、スリープ期間であったことが分かる。したがって、この場合、当該スリープ期間に対応するレコードが追加される。
【００５５】
図１０は、スリープ期間に対応するレコードの追加例を示す図である。図１０において、２番目のレコードが、スリープ期間に対応するレコードである。なお、スリープ期間に対応するレコードについて、稼動開始日時の値、稼動終了日時の値のそれぞれは、スリープ期間の開始日時、スリープ期間の終了日時を示す。
【００５６】
続いて、特定部１２は、履歴記憶部１２１に記憶されている各レコードに対して、当該レコードに係る期間が、稼動期間であるのかスリープ期間であるのかを示す情報（以下、「稼動フラグ」という。）を付与する（Ｓ２０６）。
【００５７】
図１１は、稼動フラグの付与例を示す図である。図１１では、各レコードに稼動フラグの項目が追加されている。図１１において、稼動フラグの値は、＜動作状態識別子＞＜時系列番号＞の形式を有する。＜動作状態識別子＞は、「Ｘ」又は「Ｙ」である。「Ｘ」は、稼動状態であることを示す。「Ｙ」は、スリープ状態であることを示す。＜時系列番号＞は、１つのセッション内において、＜動作状態識別子＞の値が共通するレコードの中で、時系列の順番を示す番号である。例えば、「Ｘ１」は、最初の稼動状態を示す。「Ｘ２」は、２番目の稼動状態を示す。
【００５８】
続いて、判定部１３は、履歴記憶部１２１に記憶されているレコードごとに、当該レコードに係る期間（稼動期間又はスリープ期間）が、作業時間に該当するか否かを判定する（Ｓ２０７）。当該判定は、判定条件記憶部１２２に記憶されている判定条件に基づいて行われる。
【００５９】
図１２は、判定条件記憶部に記憶されている判定条件テーブルの一例を示す図である。図１２において、１つのレコードは、１つの判定条件を示す。各レコードは、優先順位、条件番号、根拠、対象、条件式、及びアクション等の項目を含む。
【００６０】
優先順位は、判定条件の優先順位である。複数の判定条件に合致するレコードに対しては、優先順位の高い方（優先順位の値が小さい方）が適用（又は採用）される。条件番号は、各判定条件の識別情報である。根拠は、判定条件の根拠である。根拠の項目は、説明の便宜上設けられたものであるため、判定条件に含まれなくてもよい。対象は、当該判定条件が、稼動期間に係るレコード（稼動フラグに「Ｘ」を含むレコード）と、スリープ期間に係るレコード（稼動フラグに「Ｙ」を含むレコード）とのいずれに対して有効であるのかを示す情報である。「Ｘ」は、稼動期間に係るレコードに対して有効であることを示す。「Ｙ」は、スリープ期間に係るレコードに対して有効であることを示す。条件式は、履歴記憶部１２１に記憶されている各レコードが、当該判定条件に合致するか否かを判定するための式である。条件式における「Ｘ」は、稼動期間を示し、「Ｙ」は、スリープ期間を示す。アクションは、条件式に合致した場合に実行すべき処理を示す情報である。
【００６１】
条件番号が１である判定条件（以下、「判定条件１」といい、他の判定条件も同様の命名規則に従う。）は、その条件式及びアクションより、変数αよりも長い稼動期間を作業時間と判定することを示す。判定条件１は、その根拠にも示されているように、業務サーバ２０の利用期間が所定時間より長い場合には、当該利用期間には業務が行われていた可能性が高いという考えに基づく。
【００６２】
判定条件２は、変数βよりも長いスリープ期間を非作業時間と判定することを示す。判定条件２は、業務サーバ２０が所定時間より長い期間操作されていない場合には、当該期間には業務が行われていない可能性が高いという考えに基づく。
【００６３】
判定条件３は、スリープ期間が、当該スリープ期間の前後の稼動期間に比べて或る程度短い場合には、当該スリープ期間を作業時間と判定することを示す。判定条件３は、業務サーバ２０の操作が継続した期間の合間の期間が、当該操作の継続した期間に比べて極端に短い場合は、当該合間の期間には業務が行われていた可能性が高いという考えに基づく。判定条件３の条件式は、γ（Ｘｉ＋Ｘｉ＋１）−Ｙｉ＞εであるが、Ｙｉは、ｉ番目のスリープ期間を意味する。Ｘｉ、Ｘｉ＋１は、それぞれ、ｉ番目の稼動期間、ｉ＋１番目の稼動期間を意味する。すなわち、Ｙｉは、ＸｉとＸｉ＋１との合間のスリープ期間ということになる。なお、当該条件式は、図１３に示されるような１次関数である。
【００６４】
図１３は、判定条件３の条件式を説明するための図である。図１３において、横軸は、Ｘｉ＋Ｘｉ＋１に対応し、縦軸は、Ｙｉに対応する。図１３に示されるように、判定条件３の条件式は、傾きをγとし、ｙ切片を−εとする直線によって表現可能である。当該直線の下側の範囲が、判定条件３に合致する範囲となる。
【００６５】
図１２に戻る。判定条件４は、判定条件３に該当しない場合でも、変数ξよりも短いスリープ期間を、作業時間と判定することを示す。判定条件４は、業務サーバ２０の操作が継続した期間の合間の期間が極端に短い場合には、当該合間の期間において業務が行われていた可能性が高いという考えに基づく。
【００６６】
判定条件５は、変数ψよりも短い稼動期間を、非作業時間と判定することを示す。判定条件５は、業務サーバ２０の操作の継続期間が極端に短い場合には、当該期間において業務が行われていなかった可能性が高いという考えに基づく。例えば、一時的に業務サーバ２０にログインが行われ、個人的なメールの閲覧が行われたようなケースである。
【００６７】
なお、各条件式のギリシャ文字は、変数である。各変数に代入される値は、例えば、判定条件記憶部１２２において、従業員ごとの業務パターンテーブルに記憶されている。
【００６８】
図１４は、判定条件記憶部に記憶されている業務パターンテーブルの一例を示す図である。図１４に示される業務パターンテーブルは、各変数の値を記憶する。業務パターンテーブルは、例えば、ユーザ名に対して１対１に対応付けられて判定条件記憶部１２２に記憶されている。
【００６９】
業務パターンテーブルが、ユーザ名ごと（従業員ごと）に記憶されているのは、従業員ごとに、業務サーバ２０を利用した業務のパターンが異なると考えられるからである。例えば、基本的に、業務サーバ２０に対して入力を行うことで業務を行う従業員については、例えば、変数αの値を小さくしたり、変数ψの値を大きくしたりした方が、当該従業員の業務のパターン（業務の形態）に即した判定条件が形成される可能性が高いと考えられる。一方、業務サーバ２０を利用しつつ、書籍等を閲覧する機会が多い従業員については、例えば、変数βの値を大きくしたり、変数ξの値を大きくしたりした方が、当該従業員の業務のパターンに即した判定条件が形成される可能性が高いと考えられる。
【００７０】
なお、業務のパターンの傾向が、職種（例えば、営業職、研究職等）又は部署ごと等に共通するのであれば、業務パターンテーブルは、職種ごと又は部署ごと等のグループ単位で管理されてもよい。
【００７１】
また、後述されるように、本実施の形態では、業務パターンテーブルは、各従業員の業務パターンに適合するように補正される。したがって、当初は、各従業員に対して共通の業務パターンテーブルが用意され、当該業務パターンテーブルが、従業員ごとにコピーされて利用されてもよい。
【００７２】
判定部１３は、履歴記憶部１２１に記憶されている各レコードについて、各判定条件の優先順位にしたがって、各判定条件の条件式に対する合致の有無を判定する。但し、稼動フラグに「Ｘ」が含まれるレコードには、対象の値が「Ｙ」である判定条件は使用されない。同様に、稼動フラグに「Ｙ」が含まれるレコードには、対象の値が「Ｘ」である判定条件は使用されない。判定部１３は、レコードごとに、当該レコードに関して最初に条件式が合致した判定条件を当該レコードに適用する。すなわち、当該判定条件のアクションによって示される処理が、当該レコードに対して実行される。判定部１３は、各レコードに対する判定結果を、判定結果記憶部１２３に記憶する。
【００７３】
図１５は、判定結果記憶部の構成例を示す図である。図１５に示されるように、判定結果記憶部１２３の各レコード（以下、「判定結果レコード」という。）は、図１１に示されている履歴記憶部１２１の各レコード（以下、「履歴レコード」という。）に対して、更に、適用条件及び判定結果の項目が追加された構成を有する。
【００７４】
判定結果レコードにおいて、履歴レコードと共通する項目については、履歴レコードの値がそのまま転記される。適用条件は、当該判定結果レコードに対して適用された判定条件の条件番号である。判定結果は、当該判定結果レコードに対して適用された判定条件に基づく判定結果である。「Ｗ」は、作業時間であると判定されたことを示す。「Ｎ」は、非作業時間であると判定されたことを示す。
【００７５】
例えば、図１５において、１番目及び３番目の判定結果レコードには、判定条件１が適用されている。したがって、これらの判定結果レコードの判定結果の値は、判定条件１のアクションに基づいて「Ｗ」である。一方、２番目の判定結果レコードには、判定条件３が適用されている。したがって、当該判定結果レコードの判定結果の値は、判定条件３のアクションに基づいて「Ｗ」である。
【００７６】
続いて、判定結果送信部１４は、判定結果記憶部１２３に記憶された各判定結果レコードを、勤怠管理サーバ３０に送信する（Ｓ２０８）。当該判定結果レコードは、勤怠管理サーバ３０の判定結果受信部３１によって受信される。判定結果受信部３１は、受信した判定結果レコードを、例えば、勤怠管理サーバ３０の補助記憶装置に記憶する。
【００７７】
続いて、勤怠管理サーバ３０が実行する処理手順について説明する。図１６は、勤怠管理サーバが実行する処理手順の一例を説明するためのフローチャートである。
【００７８】
例えば、従業員が、ユーザ端末４０を介して勤怠管理サーバ３０にログインし、所定の操作によって、時間外労働の申請要求を入力すると、勤怠管理サーバ３０は、当該従業員に係る判定結果レコードに基づいて時間外労働申請画面を生成し、当該時間外労働申請画面を当該ユーザ端末４０に表示させる（Ｓ３０１）。当該従業員に係る判定結果レコードとは、例えば、勤怠管理サーバ３０の補助記憶装置に記憶されている判定結果レコードのうち、当該従業員のユーザ名を含む判定結果レコードである。
【００７９】
図１７は、時間外労働申請画面の表示例を示す図である。図１７において、時間外労働申請画面５１０は、時間外労働申請領域５１１及びＯＫボタン５１２等を含む。
【００８０】
時間外労働申請領域５１１の各行は、時間外労働申請画面５１０を表示させている従業員に係る判定結果レコードに対応する。すなわち、図１７の時間外労働申請領域５１１には、図１５において、ユーザ名に「ｕｓｅｒＡ」を含む３つの判定結果レコードに対応する３つの行が含まれている。
【００８１】
各行は、時間外申請、接続開始日時、接続終了日時、マシン状態、開始日時、及び終了日時等の項目を有する。時間外申請は、当該行の開始日時及び終了日時に係る期間について、残業時間として申請するか否かを選択させるための項目である。すなわち、当該項目には、チェックボタンが配置されている。チェックボタンの初期状態は、当該行に対応する判定結果レコードの判定結果の値に従う。具体的には、当該判定結果の値が「Ｗ」であれば、チェックされており、当該判定結果の値が「Ｎ」であれが、チェックされていない。
【００８２】
接続開始日時、接続終了日時は、判定結果レコードにおいて同じ項目名の項目に対応する。マシン状態は、接続した仮想マシン２２の稼動状態を示し、判定結果レコードにおける稼動フラグに対応する。すなわち、稼動フラグの値「Ｘ」が含まれている場合、当該項目の値は「稼動状態」となる。稼動フラグの値に「Ｙ」が含まれている場合、当該項目の値は「スリープ状態」となる。
【００８３】
開始日時、終了日時は、判定結果レコードにおける稼動開始日時、稼動終了日時に対応する。
【００８４】
従業員は、時間外労働申請領域５１１における各行のチェックボタンを操作して、各行に対応する期間において、自らが業務を行っていたのか否かを申請する。従業員によって、ＯＫボタン５１２が押下されると、ユーザ端末４０は、時間外労働申請領域５１１の各行の時間外申請のチェック状態を示す情報を、勤怠管理サーバ３０に送信する。勤怠管理サーバ３０の申請情報受付部３２は、当該情報を受信する（Ｓ３０２）。
【００８５】
続いて、勤怠管理サーバ３０の申請情報送信部３３は、当該各行に対応する各判定結果レコードに、当該チェック状態を示す情報を付加することにより申請情報を示すレコード（以下、「申請レコード」という。）を生成する（Ｓ３０３）。
【００８６】
図１８は、申請レコードの一例を示す図である。各申請レコードは、図１５に示した判定結果レコードに対して、申請結果の項目が付加された構成を有する。申請結果は、当該申請レコードの稼動開始日時及び稼動終了日時に係る期間が、作業時間であったのか又は非作業時間であったのかについての従業員による申請を示す情報である。「Ｗ」は、作業時間を示し、「Ｎ」は、非作業時間を示す。
【００８７】
続いて、申請情報生成部は、生成された各申請レコードを判定サーバ１０に送信する（Ｓ３０４）。
【００８８】
続いて、判定サーバ１０の判定条件補正部１７が実行する判定条件の補正処理について説明する。判定条件の補正処理は、判定結果と申請結果とが異なる申請レコードにおける適用条件に係る判定条件について行われる。
【００８９】
例えば、判定条件１を例とすると、稼動期間が変数αよりも大きい場合に、申請結果が「Ｎ」であった場合（以下、「ケース１」とい。）、又は稼動時間が変数α以下であった場合（以下「ケース２」という。）に、申請結果が「Ｗ」であった場合に、判定条件１について補正処理が行われる。
【００９０】
例えば、ケース１では、αの値を大きくすれば、申請結果と同じ判定結果が得られる可能性が高くなる。また、ケース２では、αの値を小さくすれば、申請結果と同じ判定結果が得られる可能性が高くなる。すなわち、判定条件の補正とは、判定条件を構成する変数の値の補正（変更）によって実現される。
【００９１】
但し、判定結果と申請結果との１回のみの相違に基づいて、当該判定結果に係る判定条件について補正が行われしまっては、過去において得られていた妥当な判定結果が、将来において得られなくなってしまう可能性が有る。そこで、本実施の形態では、同一の判定条件が適用された過去の判定結果の集合について、それぞれの申請結果との比較結果が一致を示す割合が高くなるように、判定条件の補正処理が行われる。この点について、判定条件３を例として説明する。
【００９２】
図１９は、判定条件３の補正処理の概要を説明するための図である。図１９には、図１３と同じグラフが示されている。図１９において○は、判定結果と申請結果とが一致したケースを示す。□は、判定結果と申請結果とが相違したケースを示す。すなわち、判定条件３を示す直線よりも下側の○は、判定結果及び申請結果のいずれもが「Ｗ」であるケースである。当該直線よりも下側の□は、判定結果が「Ｗ」であり、申請結果が「Ｎ」であるケースである。当該直線よりも上側の○は、判定結果及び申請結果のいずれもが「Ｎ」であるケースである。当該直線よりも上側の□は、判定結果が「Ｎ」であり、申請結果が「Ｗ」であるケースである。なお、全ての○及び全ての□は、同一の従業員に関する判定結果及び申請結果の比較結果である。本実施の形態において、判定条件を構成する変数の集合である業務パターンテーブルは従業員ごとに設定されるため、従業員ごとに判定条件の補正が行われる必要が有るからである。
【００９３】
このような状況において、判定条件３については、ｙ切片である変数ε、又は傾きである変数γを変更することにより、○の割合が増加するように、これらの変数について補正が行われる。他の判定条件についても同様の考え方で補正が行われる。
【００９４】
図２０は、判定条件の補正処理の処理手順の一例を説明するためのフローチャートである。
【００９５】
ステップＳ４０１において、判定サーバ１０の申請情報受信部１５は、図１６のステップＳ３０４において送信された申請レコードを受信すると、当該申請レコードを申請情報記憶部１２４に記憶する。
【００９６】
続いて、通知部１６は、ステップＳ４０１において受信された申請レコードの中で、判定結果の値と申請結果の値とが相互に異なるレコードを一つ取得する（Ｓ４０２）。例えば、図１８の例では、２番目の申請レコードが取得される。以下、取得された申請レコードを、「対象レコード」という。また、対象レコードに含まれているユーザ名に係る従業員を、「対象従業員」という。
【００９７】
続いて、通知部１６は、対象レコードの稼動開始日時から稼動終了日時までの期間が、所定時間以内であるか否かを判定する（Ｓ４０３）。すなわち、判定部１３による判定結果と、従業員による申請結果との間に大きな乖離が有るか否かが判定される。対象レコードの稼動開始日時から稼動終了日時までの期間が所定時間を超える場合（Ｓ４０３でＮｏ）、通知部１６は、例えば、対象レコードを含む電子メールを、管理者のメールアドレス宛に送信する（Ｓ４０４）。当該管理者は、例えば、勤怠管理を行っている部門の所定の従業員であってもよいし、対象従業員の上司に該当する従業員であってもよい。その結果、管理者は、例えば、判定サーバ１０によって非作業時間であると判定された、所定時間を超える期間に関して、残業時間であるとして申請が行われたことを検知することができ、従業員に直接確認等を行うことができる。
【００９８】
一方、対象レコードの稼動開始日時から稼動終了日時までの期間が、所定時間以内である場合（Ｓ４０３でＹｅｓ）、判定条件補正部１７は、ユーザ名及び適用条件に関して対象レコードと一致する申請レコードを、申請情報記憶部１２４から取得する（Ｓ４０５）。申請情報記憶部１２４には、過去に受信された申請レコードも蓄積されている。したがって、ステップＳ４０２では、過去の申請レコード、又は今回受信された申請レコードの中で、ユーザ名及び適用条件に関して対象レコードと一致する申請レコードが取得される。以下、取得された申請レコードの集合を、関連レコード群という。なお、関連レコード群の中には、対象レコードが含まれることとする。
【００９９】
図２１は、関連レコード群の一例を示す図である。図２１において、１番目のレコードは、図１８における２番目のレコード（ここでの対象レコードである。）。図２１において、２番目及び３番目のレコードは、関連レコード群のうち、過去の申請レコードである。
【０１００】
続いて、判定条件補正部１７は、判定条件記憶部１２２に記憶されている判定条件テーブルから、条件番号の値が、対象レコードの適用条件の値に一致するレコードの条件式を取得する（Ｓ４０６）。以下、当該条件式を「対象条件式」という。ここでは、対象条件式は、「γ（Ｘｉ＋Ｘｉ＋１）−Ｙｉ＞ε」である。
【０１０１】
続いて、判定条件補正部１７は、判定条件記憶部１２２に記憶されている業務パターンテーブルのうち、対象レコードのユーザ名に対応する業務パターンテーブルから、対象条件式を構成する変数の値を取得する（Ｓ４０７）。ここでは、ｕｓｅｒＡに対応する業務パターンテーブル（以下、「対象業務パターンテーブル」という。）から、γ及びεのそれぞれの値が取得される。
【０１０２】
続いて、判定条件補正部１７は、対象条件式を構成する変数の値を変更することで、関連レコード群の中で、判定結果と申請結果とが合致する申請レコードの割合が所定値以上（例えば、７０％）以上とすることが可能か否かを判定する（Ｓ４０８）。すなわち、対象条件式を構成する変数について、判定結果と申請結果とが合致する申請レコードの割合を所定値以上とすることが可能な値の探索が行われる。この場合、所定の方法で変数の値を変更しつつ、各関連レコードについて、変数が変更された対象条件式に基づいて、改めて判定結果が導出される。改めて導出された判定結果について、申請結果との比較が行われる。なお、変更前の状態において、関連レコード群の中で、判定結果と申請結果とが合致する申請レコードの割合が所定値以上である場合には、ステップＳ４０６は実行されないようにしてもよい。または、この場合、当該割合を更に増加させることが可能な値が探索されてもよい。また、対象レコードに係る判定結果と申請結果とが一致することが、変数の値の探索条件に追加されてもよい。
【０１０３】
値が探索された変数について、該当する値が特定された場合（Ｓ４０８でＹｅｓ）、判定条件補正部１７は、当該値を、対象業務パターンテーブルに上書きする（Ｓ４０９）。すなわち、当該変数の値が変更される。一方、該当する値が特定されなかった場合（Ｓ４０８でＮｏ）、判定条件補正部１７は、対象条件式に係る判定条件を、対象レコードのユーザ名に関して無効化する（Ｓ４１０）。この場合、当該判定条件自体が、対象従業員の業務パターンに即していない可能性が高いと考えられるからである。なお、ステップＳ４１０は、関連レコード群の含まれる申請レコードの数が、所定数以上である場合に実行されてもよい。すなわち、サンプル数が十分である場合に、ステップＳ４１０が実行されるようにしてもよい。また、判定条件の無効化は、例えば、対象条件式に係る判定条件の条件番号が、当該ユーザ名に対応する業務パターンテーブルに、無効化された判定条件を示す情報として記録されることにより実現されてもよい。この場合、図８のステップＳ２０７において、当該判定条件は、使用対象から除外されればよい。
【０１０４】
なお、ステップＳ４０２以降は、新たに受信された申請レコードのうち、判定結果の値と申請結果との値とが相互に異なる各申請レコードについて実行される。
【０１０５】
上述したように、本実施の形態によれば、従業員によって仮想マシン２２が操作されていた期間（稼動期間）と、操作されていなかった期間（スリープ期間）とのそれぞれの期間について、予め設定された判定条件に基づいて、業務上の作業時間に該当するか否かが判定される。したがって、仮想マシン２２の操作が行われていた期間について、判定条件に応じて、業務上の作業時間ではないと判定することができると共に、仮想マシン２２の操作が行われていなかった期間について、判定条件に応じて、業務上の作業時間であると判定することができる。したがって、必ずしも、仮想マシン２２の操作と業務上の作業とが完全には一致しないという状況を考慮して、各期間が作業時間に該当するか否かを判定することができる。その結果、仮想マシン２２の状態に基づく業務に関する作業時間の推定精度を向上させることを目的とする。
【０１０６】
また、本実施の形態では、従業員ごとに値が異なる変数が、判定条件に含まれる。その結果、上記各期間が作業時間に該当するか否かについて、従業員ごとの業務パターンの違いが考慮された判定結果を得ることができる。斯かる観点からも、作業時間の推定精度の向上を期待することができる。
【０１０７】
また、本実施の形態では、各期間に対する判定結果と、各期間に対する従業員による申請結果とが一致しない期間については、当該判定結果に関して適用された判定条件について、変数の値の補正が行われる。その結果、作業時間の推定精度について、更なる向上を期待することができる。
【０１０８】
更に、本実施の形態では、変数の値の補正によっても申請結果と一致する判定結果が得られない判定条件は無効化される。すなわち、当該判定条件は、各期間が作業時間に該当するか否かの判定において使用されなくなる。その結果、精度の低い判定が行われる可能性を低減することができる。
【０１０９】
また、管理者等は、各従業員の各判定条件の変数の値を閲覧することで、各従業員の業務パターンを把握することができる。例えば、各従業員がどの様な作業を行っているのかを推定することができる。
【０１１０】
なお、本実施の形態では、残業時間を推定する例について説明したが、定時時間内の労働時間の推定に、本実施の形態が適用されてもよい。
【０１１１】
また、本実施の形態では、仮想マシン２２が操作対象である例について説明したが、例えば、従業員ごとに配布されているＰＣ等が、操作対象であってもよい。この場合、各ＰＣにおいて稼動開始時期及び稼動終了時期が記録されてもよい。
【０１１２】
なお、本実施の形態において、仮想マシン２２は、所定の情報処理装置の一例である。また、接続履歴及び動作履歴は、操作履歴の一例である。また、稼動期間、スリープ期間のそれぞれは、操作期間、非操作期間の一例である。動作履歴及び接続履歴を含む期間（接続開始日時から接続終了日時）は、特定の期間の一例である。すなわち、動作履歴及び接続履歴の受信は、特定の期間の受け付けの一例である。判定サーバ１０は、判定装置の一例である。履歴受信部１１は、受付部の一例である。作業時間は、作業期間の一例である。
【０１１３】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【０１１４】
以上の説明に関し、更に以下の項を開示する。
（付記１）
コンピュータに、
特定の期間の指定を受け付け、
ユーザによる所定の情報処理装置の操作履歴を示す情報に基づいて、前記特定の期間において前記情報処理装置が操作された第１の期間と、前記情報処理装置が操作されなかった第２の期間とを特定し、
前記第１の期間の長さと前記第２の期間の長さとに基づいて、前記特定の期間が作業期間に該当するか否か判定する、
処理を実行させることを特徴とする判定プログラム。
（付記２）
前記判定する処理は、前記特定の期間が作業期間に該当するか否かを判定するための１以上の判定条件に、前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする付記１記載の判定プログラム。
（付記３）
前記判定条件は、ユーザごとに値が異なる変数を含み、
前記特定する処理は、ユーザごとの前記操作履歴を示す情報に基づいて、前記第１の期間と前記第２の期間とを、ユーザごとに特定し、
前記判定する処理は、ユーザごとに、前記変数に当該ユーザに対応する値が適用された判定条件に、当該ユーザに関する前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする付記２記載の判定プログラム。
（付記４）
前記特定の期間について、前記作業期間に該当するか否かを示すユーザによる申請結果を受け付け、
前記判定する処理による判定結果と、前記申請結果とが異なる期間とが異なる場合に、当該判定結果に対して適用された判定条件に関して、前記変数の値を変更する、
処理を前記コンピュータに実行させることを特徴とする付記３記載の判定プログラム。
（付記５）
前記変更する処理は、前記判定結果と前記申請結果とが一致するように前記変数の値を変更する、
ことを特徴とする付記４記載の判定プログラム。
（付記６）
前記判定結果と前記申請結果と、当該判定結果に関して適用された判定条件とを対応付けて記憶部に記憶し、
前記変更する処理は、同一の判定条件に対して対応付けられて前記記憶部に記憶されている複数の前記判定結果と前記申請結果の中で、相互に一致する前記判定結果と前記申請結果との割合が所定値以上となるように、当該判定条件に関する変数の値を変更する、
処理を前記コンピュータに実行させることを特徴とする付記４又は５記載の判定プログラム。
（付記７）
前記変更する処理は、変数の値を変更しても前記相互に一致する前記判定結果と前記申請結果との割合が所定値以上とならない判定条件を無効化する、
ことを特徴とする付記６記載の判定プログラム。
（付記８）
特定の期間の指定を受け付ける受付部と、
ユーザによる所定の情報処理装置の操作履歴を示す情報に基づいて、前記特定の期間において前記情報処理装置が操作された第１の期間と、前記情報処理装置が操作されなかった第２の期間とを特定する特定部と、
前記第１の期間の長さと前記第２の期間の長さとに基づいて、前記特定の期間が作業期間に該当するか否か判定する判定部と、
を有することを特徴とする判定装置。
（付記９）
前記判定部は、前記特定の期間が作業期間に該当するか否かを判定するための１以上の判定条件に、前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする付記８記載の判定装置。
（付記１０）
前記判定条件は、ユーザごとに値が異なる変数を含み、
前記特定部は、ユーザごとの前記操作履歴を示す情報に基づいて、前記第１の期間と前記第２の期間とを、ユーザごとに特定し、
前記判定部は、ユーザごとに、前記変数に当該ユーザに対応する値が適用された判定条件に、当該ユーザに関する前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする付記９記載の判定装置。
（付記１１）
前記特定の期間について、前記作業期間に該当するか否かを示すユーザによる申請結果を受け付ける第２の受付部と、
前記判定部による判定結果と、前記申請結果とが異なる期間とが異なる場合に、当該判定結果に対して適用された判定条件に関して、前記変数の値を変更する変更部と、
を有することを特徴とする付記１０記載の判定装置。
（付記１２）
前記変更部は、前記判定結果と前記申請結果とが一致するように前記変数の値を変更する、
ことを特徴とする付記１１記載の判定装置。
（付記１３）
前記判定結果と前記申請結果と、当該判定結果に関して適用された判定条件とを対応付けて記憶部に記憶し、
前記変更部は、同一の判定条件に対して対応付けられて前記記憶部に記憶されている複数の前記判定結果と前記申請結果の中で、相互に一致する前記判定結果と前記申請結果との割合が所定値以上となるように、当該判定条件に関する変数の値を変更する、
ことを特徴とする付記１１又は１２記載の判定装置。
（付記１４）
前記変更部は、変数の値を変更しても前記相互に一致する前記判定結果と前記申請結果との割合が所定値以上とならない判定条件を無効化する、
ことを特徴とする付記１３記載の判定装置。
（付記１５）
コンピュータが、
特定の期間の指定を受け付け、
ユーザによる所定の情報処理装置の操作履歴を示す情報に基づいて、前記特定の期間において前記情報処理装置が操作された第１の期間と、前記情報処理装置が操作されなかった第２の期間とを特定し、
前記第１の期間の長さと前記第２の期間の長さとに基づいて、前記特定の期間が作業期間に該当するか否か判定する、
処理を実行することを特徴とする判定方法。
（付記１６）
前記判定する処理は、前記特定の期間が作業期間に該当するか否かを判定するための１以上の判定条件に、前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする付記１５記載の判定方法。
（付記１７）
前記判定条件は、ユーザごとに値が異なる変数を含み、
前記特定する処理は、ユーザごとの前記操作履歴を示す情報に基づいて、前記第１の期間と前記第２の期間とを、ユーザごとに特定し、
前記判定する処理は、ユーザごとに、前記変数に当該ユーザに対応する値が適用された判定条件に、当該ユーザに関する前記第１の期間及び前記第２の期間のそれぞれの長さを当てはめて、前記特定の期間が前記作業期間に該当するか否かを判定する、
ことを特徴とする付記１６記載の判定方法。
（付記１８）
前記特定の期間について、前記作業期間に該当するか否かを示すユーザによる申請結果を受け付け、
前記判定する処理による判定結果と、前記申請結果とが異なる期間とが異なる場合に、当該判定結果に対して適用された判定条件に関して、前記変数の値を変更する、
処理を前記コンピュータが実行することを特徴とする付記１７記載の判定方法。
（付記１９）
前記変更する処理は、前記判定結果と前記申請結果とが一致するように前記変数の値を変更する、
ことを特徴とする付記１８記載の判定方法。
（付記２０）
前記判定結果と前記申請結果と、当該判定結果に関して適用された判定条件とを対応付けて記憶部に記憶し、
前記変更する処理は、同一の判定条件に対して対応付けられて前記記憶部に記憶されている複数の前記判定結果と前記申請結果の中で、相互に一致する前記判定結果と前記申請結果との割合が所定値以上となるように、当該判定条件に関する変数の値を変更する、
処理を前記コンピュータが実行することを特徴とする付記１８又は１９記載の判定方法。
（付記２１）
前記変更する処理は、変数の値を変更しても前記相互に一致する前記判定結果と前記申請結果との割合が所定値以上とならない判定条件を無効化する、
ことを特徴とする付記２０記載の判定方法。
【符号の説明】
【０１１５】
１            業務管理システム
１０          判定サーバ
１１          履歴受信部
１２          特定部
１３          判定部
１４          判定結果送信部
１５          申請情報受信部
１６          通知部
１７          判定条件補正部
２０          業務サーバ
２１          接続管理部
２２          仮想マシン
２３          履歴送信部
２４          接続履歴記憶部
２５          動作履歴記憶部
３０          勤怠管理サーバ
３１          判定結果受信部
３２          申請情報受付部
３３          申請情報送信部
４０          ユーザ端末
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
１２１        履歴記憶部
１２２        判定条件記憶部
１２３        判定結果記憶部
１２４        申請情報記憶部
Ｂ            バス
【図１】
2016126466.tif 000003
【図２】
2016126466.tif 000004
【図３】
2016126466.tif 000005
【図４】
2016126466.tif 000006
【図５】
2016126466.tif 000007
【図６】
2016126466.tif 000008
【図７】
2016126466.tif 000009
【図８】
2016126466.tif 000010
【図９】
2016126466.tif 000011
【図１０】
2016126466.tif 000012
【図１１】
2016126466.tif 000013
【図１２】
2016126466.tif 000014
【図１３】
2016126466.tif 000015
【図１４】
2016126466.tif 000016
【図１５】
2016126466.tif 000017
【図１６】
2016126466.tif 000018
【図１７】
2016126466.tif 000019
【図１８】
2016126466.tif 000020
【図１９】
2016126466.tif 000021
【図２０】
2016126466.tif 000022
【図２１】
2016126466.tif 000023