(57)【要約】【課題】勤務時間を正確に把握する。【解決手段】判定システムは、ユーザが業務に使用する情報処理装置上での操作を検知する。そして、判定システムは、検知部が検知する操作のうち入力部を介した外部からの操作を抽出する。判定システムは、抽出部が抽出する外部からの操作を、所定時間ごとに記憶装置に送信する。判定システムは、記憶装置に記憶される外部からの操作に基づき、情報処理装置のユーザの勤務時間を算出する。【選択図】図２
2019040476.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが業務に使用する情報処理装置上での操作を検知する検知部と、
前記検知部が検知する操作のうち入力部を介した外部からの操作を抽出する抽出部と、
前記抽出部が抽出する前記外部からの操作を、所定時間ごとに記憶装置に送信する送信部と、
前記記憶装置に記憶される前記外部からの操作に基づき、前記情報処理装置のユーザの勤務時間を算出する算出部と、
を備えることを特徴とする判定システム。
【請求項２】
前記抽出部は、ユーザによるキーボード操作およびマウス操作の少なくとも一方を抽出することを特徴とする請求項１に記載の判定システム。
【請求項３】
前記算出部は、前記記憶装置に記憶される前記外部からの操作のうち、１日の中で最後の前記外部からの操作に対応する時点を終業時点として勤務時間を算出することを特徴とする請求項１または２に記載の判定システム。
【請求項４】
前記送信部は、前記情報処理装置とネットワークを介して通信可能に接続されるサーバへのポーリング時に、当該サーバへ前記外部からの操作を送信することを特徴とする請求項１から３のいずれか１項に記載の判定システム。
【請求項５】
前記送信部は前記外部からの操作の送信に失敗した場合、送信に失敗した前記外部からの操作を、前記サーバと通信可能に接続されたときに再送信することを特徴とする請求項４に記載の判定システム。
【請求項６】
前記情報処理装置はシンクライアント端末であり、
前記検知部、前記抽出部、前記送信部および前記算出部による処理は、前記情報処理装置とは別体のサーバにおいて実行されることを特徴とする請求項１から３のいずれか１項に記載の判定システム。
【請求項７】
コンピュータに、
ユーザが業務に使用する情報処理装置上での操作を検知し、
検知した操作のうち入力部を介した外部からの操作を抽出し、
抽出した前記外部からの操作を、所定時間ごとに記憶装置に送信し、
前記記憶装置に記憶される前記外部からの操作に基づき、前記情報処理装置のユーザの勤務時間を算出する
ことを含む各処理を実行させることを特徴とする判定方法。
【請求項８】
ユーザが業務に使用する情報処理装置上での操作を検知し、
検知した操作のうち入力部を介した外部からの操作を抽出し、
抽出した前記外部からの操作を、所定時間ごとに記憶装置に送信し、
前記記憶装置に記憶される前記外部からの操作に基づき、前記情報処理装置のユーザの勤務時間を算出する
各手順を含む処理を、コンピュータに実行させることを特徴とする判定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定システム、判定方法および判定プログラムに関する。
【背景技術】
【０００２】
近年、長時間労働を抑止するため、労働者の勤務時間を正確に把握することが重要となっている。勤務者がパーソナルコンピュータ（ＰＣ）等の情報処理装置を用いて業務を行う場合、情報処理装置が稼働状態にある間を勤務時間として算出することが考えられる。
【０００３】
しかし、情報処理装置の稼働状態のみに基づいて勤務時間を把握しようとすると正確な勤務時間を把握できない場合がある。たとえば、勤務者が情報処理装置をシャットダウンせずに帰宅した場合、情報処理装置は稼働状態であっても勤務者は労働していない。またたとえば、勤務者がノート型ＰＣなどの電源をＯＮにしたまま蓋を閉じた場合、ノート型ＰＣはスリープ状態に移行しても完全に動作を終了しているわけではない。このため、労働者が業務に使用する情報処理装置の稼働状態が必ずしも労働者の勤務状態を反映していない場合がありうる。
【０００４】
ところで、情報処理装置は稼働状態であっても操作入力がないまま所定時間が経過するとスリープ状態に移行するよう設定されていることが多い。スリープ状態とは、省電力の待機電源モードである。そこで、情報処理装置がスリープ状態か否かに応じて勤務中か否かを判定するよう、システムを構成することも考えられる。たとえば、特許文献１に記載の判定プログラムは、情報処理装置の操作履歴を示す情報に基づいて、特定の期間が作業期間に該当するか否かを判定する。たとえば、特許文献１の判定プログラムは、履歴記憶部に記憶されているレコードごとに当該レコードに係る期間（稼働期間又はスリープ期間）が作業時間に該当するか否かを判定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−１２６４６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記のような従来のシステムではやはり、勤務時間を正確に把握することができない場合が考えられる。
【０００７】
スリープ状態へ移行する条件となる無操作入力の時間の長さは、勤務中に迅速に業務に復帰できるよう比較的長く設定されることが多い。仮に３０分操作入力がない場合にスリープ状態に移行する、という設定であれば、勤務時間が実体よりも３０分長くカウントされる可能性がある。
【０００８】
また、情報処理装置を業務で使用するためサーバと接続するシステムにおいては、ユーザが情報処理装置を利用していない状態であっても情報処理装置の内部動作が完全に終了していないことがある。たとえば、情報処理装置とサーバとの間で自動的にポーリングが行われるようシステムが設定されている場合、ユーザが情報処理装置を用いて業務を行なっていなくてもシステム上は情報処理装置は稼働中であると判断される。
【０００９】
たとえば、情報処理装置をサーバと接続してシンクライアントとして利用する場合、情報処理装置自体には直接操作入力がなくてもサーバとプログラムとの間で自動的にポーリングが実行されるため、仮に情報処理装置がスリープ状態であってもサーバ側からは情報処理装置は稼働中と判定される。したがって、情報処理装置の稼働状態たとえばスリープ状態に基づいて当該情報処理装置のユーザである勤務者の勤務時間を判定すると勤務時間を正確に判定できない場合がありうる。
【００１０】
１つの側面では、勤務時間を正確に把握することができる判定システム、判定方法および判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
第１の案では、判定システム、判定方法および判定プログラムは、ユーザが業務に使用する情報処理装置上での操作を検知する。そして判定システム、判定方法および判定プログラムは、検知した操作のうち入力部を介した外部からの操作を抽出する。そして判定システム、判定方法および判定プログラムは、抽出した外部からの操作を、所定時間ごとに記憶装置に送信する。そして判定システム、判定方法および判定プログラムは、記憶装置に記憶される外部からの操作に基づき、前記情報処理装置のユーザの勤務時間を算出する。
【発明の効果】
【００１２】
本発明の１実施形態によれば、勤務時間を正確に把握することができる。
【図面の簡単な説明】
【００１３】
【図１】図１は、第１の実施形態に係る判定システムの概要について説明するための図である。
【図２】図２は、第１の実施形態に係る判定システムの構成の一例について説明するための図である。
【図３】図３は、第１の実施形態に係る判定システムにおける処理の大まかな流れの一例を示すフローチャートである。
【図４】図４は、第１の実施形態に係る判定システムにおけるクライアントの処理の流れの一例を示すフローチャートである。
【図５】図５は、第１の実施形態に係る判定システムにおけるサーバの処理の流れの一例を示すフローチャートである。
【図６】図６は、第１の実施形態に係る判定システムにおいて記憶される操作情報の構成の一例を説明するための図である。
【図７】図７は、第１の実施形態に係る判定システムにおいて記憶される条件情報の構成の一例を説明するための図である。
【図８】図８は、第２の実施形態に係る判定システムの構成の一例について説明するための図である。
【図９】図９は、第２の実施形態に係る判定システムにおける処理の大まかな流れの一例を示すフローチャートである。
【図１０】図１０は、第２の実施形態に係る判定システムにおける未送信情報送信処理の流れの一例を示すフローチャートである。
【図１１】図１１は、第２の実施形態に係る判定システムにおける通常処理の流れの一例を示すフローチャートである。
【図１２】図１２は、第２の実施形態に係る判定システムにおける例外処理の流れの一例を示すフローチャートである。
【図１３】図１３は、第２の実施形態に係る判定システムにおいて記憶される操作情報の構成の一例を説明するための図である。
【図１４】図１４は、第３の実施形態に係る判定システムについて説明するための図である。
【図１５】図１５は、第１〜３の実施形態に係る判定プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【００１４】
以下に、本願の開示する判定システム、判定方法および判定プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１５】
（第１の実施形態）
図１は、第１の実施形態に係る判定システム１の概要について説明するための図である。第１の実施形態に係る判定システム１はユーザの業務を管理する。判定システム１はたとえば、ユーザの勤務時間および残業時間を判定する。判定システム１により管理されるユーザは各々情報処理装置を用いて業務を遂行する。
【００１６】
図１中、クライアント１０はサーバ２０とネットワーク３０を介して接続される。クライアント１０は、ユーザが業務遂行に利用する情報処理装置である。クライアント１０はたとえば、パーソナルコンピュータ（ＰＣ）、ノート型ＰＣ等の情報処理装置である。クライアント１０上では、ユーザの業務管理のための処理を実行するクライアントプログラム１１が動作する。
【００１７】
サーバ２０は、任意の情報処理装置である。サーバ２０の構成や配置場所は特に限定されない。たとえばサーバ２０は、所定の処理能力と記憶容量を有していれば、クラウドサーバであっても物理サーバであってもよい。サーバ２０上では、ユーザの業務管理のための処理を実行するサーバプログラム２１が動作する。サーバ２０はまた、データベース２２を備える。データベース２２は、サーバ２０の処理に関する情報、処理の結果生成される情報、クライアント１０から送信される情報等を記憶する。データベース２２の構成や配置場所も特に限定されない。データベース２２は所定の処理能力と記憶容量を有していればよい。たとえばデータベース２２はサーバ２０とは別体として構成してもよい。
【００１８】
サーバ２０は、クライアント１０からクライアント１０上で実行される操作に関する情報をネットワーク３０を介して受信する。サーバ２０はたとえば、クライアント１０上でユーザが実行した入力操作に関する情報を受信する。サーバ２０はたとえば、クライアント１０に対するユーザの入力部を介した外部からの操作を受信する。サーバ２０はたとえば、クライアント１０の上でユーザが実行したキーボード入力の情報を受信する。キーボード入力の情報とはたとえば打鍵の有無である。また、サーバ２０はたとえば、クライアント１０上でユーザが実行したマウス入力の情報を受信する。マウス入力の情報とはたとえば、クリック動作、カーソルの移動の有無、カーソルの移動距離等である。サーバ２０とクライアント１０との間では、所定時間ごとにクライアント１０の動作確認のためのポーリングが実行される。ポーリングの具体的な手法は特に限定されない。
【００１９】
ネットワーク３０は、クライアント１０とサーバ２０との間の通信を実現する。ネットワーク３０の種類は特に限定されない。ネットワーク３０はたとえば、インターネット、イントラネット、ローカルエリアネットワーク（ＬＡＮ）、広域エリアネットワーク（ＷＡＮ）等でよい。また、ネットワーク３０は有線ネットワークでも無線ネットワークでも両者の組み合わせでもよい。
【００２０】
なお、図１には例示のためクライアント１０、サーバ２０、ネットワーク３０をそれぞれ１つ示す。実際には複数のクライアント１０を１つのサーバ２０に接続してもよい。また、サーバ２０を複数の物理サーバで構成してもよい。
【００２１】
（判定システム１の構成の一例）
図２は、第１の実施形態に係る判定システム１の構成の一例について説明するための図である。図２は、図１に示す構成を詳細に説明するための図である。
【００２２】
（クライアント１０の構成の一例）
クライアント１０は、制御部１００と、記憶部１１０と、入力部１２０と、出力部１３０と、通信部１４０と、を有する。
【００２３】
制御部１００は、クライアント１０の動作および機能を制御する。制御部１００としてたとえば、各種の集積回路や電子回路を採用できる。また、制御部１００に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）が挙げられる。また、電子回路としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などが挙げられる。
【００２４】
制御部１００は、検知部１０１と、抽出部１０２と、送信部１０３と、を有する。
【００２５】
検知部１０１は、クライアント１０上で実行される操作を検知する。検知部１０１はたとえば、入力部１２０を介したユーザの入力操作を検知する。入力部１２０を介したユーザの入力操作とはたとえば、キーボードからの文字入力や、マウスからのクリック入力、カーソルを移動させる入力等である。検知部１０１はまた、通信部１４０を介したクライアント１０への情報の入力を検知する。情報の入力とはたとえば、ネットワーク３０を介したウェブページの受信や、サーバ２０からの信号入力等である。検知部１０２が検知する情報はたとえばログとして記憶部１１０に記憶される。
【００２６】
抽出部１０２は、検知部１０１が検知した情報の中から所定の情報を抽出する。たとえば抽出部１０２は、入力部１２０を介したユーザによる操作入力を抽出する。たとえば抽出部１０２は、キーボードの打鍵やマウスからのクリック入力の有無、カーソルの移動距離等の情報を抽出する。抽出部１０２が抽出する情報は記憶部１１０に記憶される。抽出部１０２が抽出する情報の種類は予め上記のうちいずれか一つに設定してもよい。また、ユーザごと（クライアント１０ごと）に異なる種類の情報を抽出する情報として設定してもよい。
【００２７】
送信部１０３は、抽出部１０２が抽出した情報を、通信部１４０を介して所定のタイミングでサーバ２０に送信する。所定のタイミングはたとえば１５分毎に設定される。また、所定のタイミングは予め設定された時刻であってもよい。たとえば、１２時００分、１２時１５分、１２時３０分等を所定のタイミングとして設定してもよい。
【００２８】
記憶部１１０は、クライアント１０における処理に使用される情報および処理の結果生成される情報を記憶する。記憶部１１０はたとえば、半導体メモリ素子や記憶装置である。半導体メモリ素子としては、ＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【００２９】
記憶部１１０は、操作情報記憶部１１１を有する。操作情報記憶部１１１は、抽出部１０２が抽出する情報を記憶する。
【００３０】
図６は、第１の実施形態に係る判定システム１において記憶される操作情報の構成の一例を説明するための図である。図６に示すように、操作情報は、「ポーリングタイミング」、「タイムスタンプ」、「ユーザＩＤ」、「操作内容」、「打鍵有無」、「移動距離」、「クリック」等の情報を含む。「ポーリングタイミング」は、送信部１０３が情報を送信する所定のタイミングを示す。「タイムスタンプ」は、対応する操作情報が検知された日時を示す。「ユーザＩＤ」は当該クライアント１０を使用するユーザを一意に示す識別子（Identifier）である。ユーザＩＤは予めクライアント１０に記憶してあってもよく、ユーザがクライアント１０上でログイン処理を実行することで、クライアント１０がユーザＩＤを識別するように構成してもよい。「操作内容」は検知部１０１が検知し抽出部１０２が抽出する操作の内容である。たとえば、マウスを介した入力、キーボードを介した入力等である。「打鍵有無」は、キーボードの打鍵の有無を示す。「移動距離」は入力部１２０を介した操作によるカーソルの移動距離を示す。「クリック」はマウスを介したクリック入力の有無を示す。なお、図６に示す操作情報は一例であって、ユーザがクライアント１０上で実行する操作に関する情報であれば他の情報を操作情報として操作情報記憶部１１１に記憶してもよい。
【００３１】
たとえば、図６の例では、「ポーリングタイミング、20170801/09:00:00」、「タイムスタンプ、20170801/08:45:00」が記憶される。これは、クライアント１０の送信部１０３は、２０１７年８月１日の９時に、その時点で記憶されている操作情報をサーバ２０に送信することを示す。また、この時点で２０１７年８月１日の９時に送信する情報として、２０１７年８月１日８時４５分に検知された情報が存在することを示す。
【００３２】
さらに、「ユーザＩＤ、ＦＳ２５２５」に対応付けて、「操作内容、マウス入力」、「打鍵有無、ＮＡ」、「移動距離、ＮＡ」、「クリック、Ｙ」が記憶されている。これは、ユーザＩＤ「ＦＳ２５２５」で識別されるユーザの操作として、マウス入力が検知されたことを示す。また、検知されたユーザの操作はマウス入力であるため、キーボードの打鍵は対応づけて検知されていないことを示す。また、検知されたユーザの操作によって生じたカーソルの移動はないことを示す。また、検知されたユーザの操作は、クリック入力であることを示す。
【００３３】
図２に戻り、入力部１２０は、クライアント１０に対する外部からの入力を受け付ける。入力部１２０はたとえば、キーボード、マウス、ジョイスティック、タッチパネル、マイクロフォン等である。入力部１２０を介して受付けられる入力は、検知部１０１が検知する。
【００３４】
出力部１３０は、クライアント１０から外部へ情報を出力する。出力部１３０はたとえば、ディスプレイ、スピーカ、プリンタ等である。
【００３５】
通信部１４０は、ネットワーク３０を介した外部からクライアント１０への情報の入力を実現する。通信部１４０はまた、ネットワーク３０を介したクライアント１０から外部への情報の出力を実現する。通信部１４０はたとえば、スイッチ、モデム、ルータ等を含む。
【００３６】
（サーバ２０の構成の一例）
サーバ２０は、制御部２００と、記憶部２１０と、入力部２２０と、出力部２３０と、通信部２４０と、を備える。
【００３７】
制御部２００は、サーバ２０の動作および機能を制御する。制御部２００としてたとえば、各種の集積回路や電子回路を採用できる。また、制御部２００に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）が挙げられる。また、電子回路としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などが挙げられる。
【００３８】
制御部２００は、ポーリング処理部２０１と、算出部２０２とを有する。
【００３９】
ポーリング処理部２０１は、ポーリング時にクライアント１０から送信される情報を受信し、受信する情報のうち操作に関する情報を記憶部２１０に記憶する。ポーリング処理部２０１は、予め定められたポーリングタイミングにおいて受信した情報がない場合、その旨を記憶部２１０に記憶する。ポーリング時には、クライアント１０は操作に関する情報のほか予め定められた情報をクライアント１０に送信する。
【００４０】
算出部２０２は、所定のタイミングで、記憶部２１０に記憶される情報に基づき、クライアント１０のユーザの勤務時間を算出する。算出部２０２はたとえば、ユーザの残業時間を算出する。
【００４１】
記憶部２１０は、サーバ２０における処理に使用される情報および処理の結果生成される情報を記憶する。記憶部２１０はたとえば、半導体メモリ素子や記憶装置である。半導体メモリ素子としては、ＶＲＡＭ（Ｖｉｄｅｏ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリ（ｆｌａｓｈ  ｍｅｍｏｒｙ）などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【００４２】
記憶部２１０は、操作情報記憶部２１１と条件記憶部２１２とを有する。
【００４３】
操作情報記憶部２１１は、クライアント１０から受信する操作情報を記憶する。操作情報記憶部２１１に記憶される操作情報の構成は、図６に示すクライアント１０の操作情報記憶部１１１に記憶される情報の構成と同様である。操作情報記憶部２１１の操作情報は、ポーリングのタイミングでクライアント１０からサーバ２０に送信されて操作情報記憶部２１１に記憶される。なお、本実施形態では、クライアント１０およびサーバ２０の双方に操作情報が記憶される形で説明する。ただし、判定システム１において、クライアント１０側に記憶される操作情報は、ポーリング時にサーバ２０に送信されると送信された分だけ操作情報記憶部１１１から消去されるように構成してもよい。
【００４４】
条件記憶部２１２は、算出部２０２が勤務時間の算出に用いる条件を記憶する。条件は、ユーザの勤務体系や給与体系に応じて設定すればよい。たとえば、条件記憶部２１２は、勤務時間算出の単位とする１日が真夜中（１２時）で切り替わるとする条件を記憶する。この条件によれば、勤務時間算出の上では、真夜中の１２時に１日が始まり、１日が終了する。たとえば、ユーザが８月１日１５時から勤務を開始して日付けが変わった後の８月２日午前１時に勤務を終了した場合、算出部２０２は、８月１日の勤務時間として９時間、８月２日の勤務時間として１時間を算出する。
【００４５】
条件記憶部２１２はまた、１日のうち、操作情報が最後に送信されたポーリング時の時刻を当該ユーザの終業時刻として勤務時間を算出する、という条件を記憶する。条件記憶部２１２はまた、１日のうち、最後に送信された操作情報のタイムスタンプの時刻を当該ユーザの終業時刻として勤務時間を算出する、という条件を記憶する。条件記憶部２１２はまた、操作情報が受信されない期間が所定期間継続した場合に、当該所定期間前に最後に操作情報を受信した時間を終業時刻とする、という条件を記憶する。条件記憶部２１２はまた、操作情報が受信されない期間が所定期間継続しても、当該所定期間前に最後に操作情報を受信した時間を終業時刻とはしない例外条件を記憶する。条件についてはさらに後述する。
【００４６】
入力部２２０は、外部からの入力を受け付ける。入力部２２０はたとえば、キーボード、マウス、ジョイスティック、タッチパネル、マイクロフォン等である。
【００４７】
出力部２３０は、サーバ２０から外部へ情報を出力する。出力部２３０はたとえば、ディスプレイ、スピーカ、プリンタ等である。
【００４８】
通信部２４０は、ネットワーク３０を介した外部からサーバ２０への情報の入力を実現する。通信部２４０はまた、ネットワーク３０を介したサーバ２０からの情報の出力を実現する。通信部２４０はたとえば、スイッチ、モデム、ルータ等を含む。
【００４９】
（判定システム１における処理の流れ）
図３は、第１の実施形態に係る判定システム１における処理の大まかな流れの一例を示すフローチャートである。図３に示すように、判定システム１においては、まず、クライアント１０における外部からの操作入力が検知される（ステップＳ３１）。そして、検知された操作入力の中から特定の操作、たとえば、ユーザによる入力部１２０を介した操作入力が抽出される（ステップＳ３２）。そして、抽出した操作が記憶される（ステップＳ３３）。その後、記憶された操作に基づいて、クライアント１０のユーザの勤務時間（残業時間）が算出される（ステップＳ３４）。これで処理が終了する。第１の実施形態においては、ステップＳ３１およびＳ３２の処理はクライアント１０において実行される。また、ステップＳ３３およびＳ３４の処理はサーバ２０において実行される。
【００５０】
（クライアント１０における処理の流れ）
図４は、第１の実施形態に係る判定システム１におけるクライアント１０の処理の流れの一例を示すフローチャートである。図４に示すように、まず、クライアント１０の電源投入等により、クライアント１０が起動する（ステップＳ４１）。クライアント１０が起動すると、検知部１０１が操作検知を開始する（ステップＳ４２）。抽出部１０２は検知部１０１が検知する操作の中から、ユーザによる操作入力を抽出する（ステップＳ４３）。送信部１０３は、ポーリングのために設定されている所定時間が経過したか否かを判定する（ステップＳ４４）。送信部１０３が所定時間が経過していないと判定した場合（ステップＳ４４、Ｎｏ）、処理はステップＳ４２に戻る。他方、送信部１０３が所定時間が経過したと判定した場合（ステップＳ４４、Ｙｅｓ）、送信部１０３はポーリングを実行する。すなわち、送信部１０３は抽出部１０２が抽出し記憶部１１０に記憶された操作情報をサーバ２０に送信する（ステップＳ４５）。次に、検知部１０１はクライアント１０の処理を終了させる動作の有無を判定する（ステップＳ４６）。検知部１０１は終了動作がないと判定した場合（ステップＳ４６、Ｎｏ）、処理はステップＳ４２に戻る。他方、検知部１０１は終了動作があると判定した場合（ステップＳ４６、Ｙｅｓ）、処理は終了する。
【００５１】
（サーバ２０における処理の流れ）
図５は、第１の実施形態に係る判定システム１におけるサーバ２０の処理の流れの一例を示すフローチャートである。図５に示すように、まず、サーバ２０は、クライアント１０からポーリング時に操作情報を受信する（ステップＳ５１）。サーバ２０は受信した操作情報を記憶部２１０に記憶する（ステップＳ５２）。そして、サーバ２０は、記憶した操作情報に基づき、クライアント１０のユーザの勤務時間を算出する（ステップＳ５３）。これで処理が終わる。
【００５２】
（勤務時間の算出処理）
第１の実施形態に係るサーバ２０の算出部２０２は、操作情報記憶部２１１と条件記憶部２１２に記憶される情報に基づき、各ユーザの勤務時間を算出する。図７は、第１の実施形態に係る判定システム１において記憶される条件情報の構成の一例を説明するための図である。
【００５３】
図７に示すように、条件記憶部２１２に記憶される条件は、「条件ＩＤ」、「時間帯」、「処理」、「適用フラグ」を含む。「条件ＩＤ」は各条件を一意に識別するための識別子（Identifier）である。「時間帯」は当該条件に基づく勤務時間算出を判定システム１が実行する時間帯を示す。「処理」は当該条件の処理内容を示す。「適用フラグ」は、当該条件を適用中か否かを示す。
【００５４】
図７中たとえば、「条件ＩＤ、ＣＮ０１」に対応付けて「時間帯、全て」、「処理、所定時間（Ｐ１）の間操作情報がない場合、最初の操作情報なしを終業時間として算出」が記憶される。これは、条件ＩＤ「ＣＮ０１」で特定される条件が適用される場合、全ての時間帯において、所定時間にわたって操作情報が記憶されていなければ、最初に操作情報がなくなったポーリング時を終業時間として算出部２０２が処理を実行することを示す。条件ＩＤ「ＣＮ０１」の条件は、基本的にクライアント１０を使用しなければ業務ができないような業務形態の組織に適用できる。なお、条件ＩＤ「ＣＮ０１」の条件の場合、適用フラグを用いない形で実現してもよい。たとえば、適用フラグを設定する代わりに所定時間Ｐ１の閾値ＴＨ１を設定しておく。そして判定システム１は、Ｐ１がＴＨ１以上の場合に条件ＩＤ「ＣＮ０１」を適用し、Ｐ１がＴＨ１未満の場合には条件ＩＤ「ＣＮ０１」の条件を適用しない。判定システム１が条件ＩＤ「ＣＮ０１」を適用しない場合は適用フラグをＯＦＦにするのではなく、閾値ＴＨ１を０に設定する。
【００５５】
また図７中たとえば、「条件ＩＤ、ＣＮ０２」に対応付けて「時間帯、全て」、「処理、１日のうち最後に記憶された操作情報に対応する時刻を終業時間として算出」が記憶される。これは、条件ＩＤ「ＣＮ０２」で特定される条件が適用される場合、全ての時間帯において、１日のうち最後に記憶された操作情報のタイムスタンプの時点を終業時間として算出部２０２が処理を実行することを示す。図７では、条件ＩＤ「ＣＮ０２」の条件に対応づけて「適用フラグ、ＯＮ」が記憶される。これは条件ＩＤ「ＣＮ０２」が適用する条件として選択されていることを示す。条件ＩＤ「ＣＮ０２」の条件は、クライアント１０を使用せず離席して業務を遂行することも多いものの、クライアント１０の操作をしなければ退出できないような業務形態の組織に適用できる。
【００５６】
また、図７中たとえば、「条件ＩＤ、ＣＮ０３」に対応付けて「時間帯、勤務時間」、「処理、操作情報なしが５回連続→最初の操作情報なしを終業時間として算出」が記憶される。これは、条件ＩＤ「ＣＮ０３」で特定される条件が適用される場合、勤務時間として指定されている時間内は、操作情報なしが５回連続した場合、最初の操作情報なしの時点を終業時間として算出部２０２が処理を実行することを示す。条件ＩＤ「ＣＮ０３」の条件は、条件ＩＤ「ＣＮ０１」の条件と同様、基本的にクライアント１０を使用しなければ業務ができないような業務形態の組織に適用できる。さらに、条件ＩＤ「ＣＮ０３」の条件は、判定システム１の運用者が勤務時間内と勤務時間外とで異なる条件を適用したい場合に適用できる。
【００５７】
また、図７中たとえば、「条件ＩＤ、ＣＮ０４」に対応付けて「時間帯、１２：００〜１３：００」、「処理、勤務時間判定から除外」が記憶される。これは、条件ＩＤ「ＣＮ０４」で特定される条件が適用される場合、１２時から１３時までの間は第１の実施形態における判定処理を実行しないことを示す。たとえば、１２時から１３時が休憩時間とされているような勤務体系の場合に、条件ＩＤ「ＣＮ０４」の条件を適用すればよい。
【００５８】
算出部２０２は、条件記憶部２１２に記憶される適用対象条件を参照し、操作情報記憶部２１１に記憶される操作情報に基づき、各ユーザの勤務時間を算出する。
【００５９】
なお、多様な勤務条件を許容する組織に判定システム１を適用する場合には、「適用フラグ」に当該条件が適用されるユーザＩＤを記憶する等してもよい。また、図７に示す条件は一例であって、これ以外の条件を設定することも可能である。
【００６０】
（第１の実施形態に係る判定システム１の効果）
このように、第１の実施形態に係る判定システム１は、検知部と、抽出部と、送信部と、算出部と、を備える。検知部は、ユーザが業務に使用する情報処理装置上での操作を検知する。抽出部は、検知部が検知する操作のうち入力部を介した外部からの操作を抽出する。送信部は、抽出部が抽出する外部からの操作を、所定時間ごとに記憶装置に送信する。算出部は、記憶装置に記憶される外部からの操作に基づき、情報処理装置のユーザの勤務時間を算出する。このため判定システム１は、ユーザが実際に情報処理装置において操作を実行した時点を把握し、実際に操作があった時点に基づいて勤務時間を算出することができる。このため、ユーザの勤務時間を正確に把握することができる。
【００６１】
また、第１の実施形態に係る判定システム１において、抽出部は、ユーザによるキーボード操作およびマウス操作の少なくとも一方を抽出してもよい。このため、判定システム１は、実際のユーザの操作に基づいて勤務時間を算出することができる。このため、判定システム１は、実際のユーザの勤務態様をより正確に反映した勤務時間を算出することができる。
【００６２】
また、第１の実施形態に係る判定システム１において、算出部は、記憶装置（記憶部２１０）に記憶される前記外部からの操作のうち、１日の中で最後の前記外部からの操作に対応する時点を終業時点として勤務時間を算出してもよい。このため、判定システム１は、ユーザの勤務時間中に会議や外出等のために情報処理装置への入力が長時間なかった場合でも、誤って終業したと判定することを防止することができる。
【００６３】
また、第１の実施形態に係る判定システム１において、送信部は、情報処理装置とネットワークを介して通信可能に接続されるサーバへのポーリング時に、当該サーバへ外部からの操作を送信してもよい。このため、判定システム１は、情報処理装置とサーバとの間の通信負荷を過度に増加させることなく勤務時間の正確な判定を可能にすることができる。
【００６４】
このように、判定システム１においては、クライアント１０において実際にユーザが入力部１２０を介して実行した操作入力のログを記憶し、当該ログに基づいてユーザの勤務時間を算出する。このため、判定システム１は、ユーザが実際にクライアント１０の操作を行った時点を特定して特定した時点に基づき勤務時間を算出することができる。このため、判定システム１は、ユーザの勤務状況を正確に反映する勤務時間を取得することができる。
【００６５】
また、判定システム１は、勤務時間の算出において１日の終わりとされる時点に最も近い時点でサーバ２０に送信された操作情報に対応する時点を、当該ユーザの終業時間とする。このため、判定システム１は、ユーザが一時的に離席した後戻って業務を続けた場合等に、ユーザが業務を終了したと判定することがない。したがって、ユーザの勤務実態に即した勤務時間の算出を実現することができる。
【００６６】
（第２の実施形態）
第１の実施形態に係る判定システム１は、クライアント１０におけるユーザの操作を記憶し、記憶した情報に基づき、ユーザの勤務時間を算出した。しかし、ネットワーク３０の不具合等によりクライアント１０における操作情報がサーバ２０に送信できないことも考えられる。
【００６７】
そこで、第２の実施形態に係る判定システム１Ａは、ポーリング時にクライアント１０Ａからサーバ２０Ａへの情報送信に失敗した場合、未送信情報を識別可能に記憶しておき、後にクライアント１０Ａから再送信する。そして、判定システム１Ａは、再送信された操作情報を含む記憶された情報に基づき、ユーザの勤務時間を算出する。
【００６８】
（第２の実施形態の判定システム１Ａの構成の一例）
図８は、第２の実施形態に係る判定システム１Ａの構成の一例について説明するための図である。判定システム１Ａの基本的な構成および機能は、第１の実施形態に係る判定システム１の構成および機能と同様である。以下、第１の実施形態と共通する構成および機能については説明を省略する。
【００６９】
判定システム１Ａは、クライアント１０Ａと、サーバ２０Ａとを備える。クライアント１０Ａとサーバ２０Ａとはネットワーク３０を介して通信可能に接続される。
【００７０】
クライアント１０Ａは、第１の実施形態に係るクライアント１０と同様である。ただし、クライアント１０Ａは、制御部１００Ａの送信部１０３Ａにおける処理が、第１の実施形態の送信部１０３と異なる。また、クライアント１０Ａの制御部１００Ａは、判定部１０４Ａと再送信部１０５Ａとを有する点が、第１の実施形態のクライアント１０と異なる。また、クライアント１０Ａの記憶部１１０Ａが有する操作情報記憶部１１１Ａに記憶される操作情報の構成が、第１の実施形態の操作情報記憶部１１１に記憶される操作情報の構成と異なる。他の点では、第２の実施形態に係るクライアント１０Ａの構成および機能は、第１の実施形態に係るクライアント１０の構成および機能と同様である。
【００７１】
送信部１０３Ａは、第１の実施形態の送信部１０３と同様、抽出部１０２が抽出した操作情報を、通信部１４０を介して所定のタイミングでサーバ２０Ａに送信する。ただし、送信部１０３Ａはさらに、操作情報の送信が成功したか否かを検知する。そして、送信部１０３Ａは、送信が失敗したと検知した場合、操作情報記憶部１１１Ａ内に送信に失敗したことを示す未送信フラグを、送信に失敗した操作情報に対応付けて記憶する。
【００７２】
判定部１０４Ａは、クライアント１０Ａの起動時または所定時間ごとに処理を実行する。判定部１０４Ａは、操作情報記憶部１１１Ａを参照し、未送信フラグが付された操作情報の有無を判定する。判定部１０４Ａは、未送信フラグが付された操作情報があると判定した場合、再送信部１０５Ａに未送信フラグが付された操作情報の再送信を指示する。他方、判定部１０４Ａは、未送信フラグが付された操作情報がないと判定した場合、処理を終了する。
【００７３】
再送信部１０５Ａは、判定部１０４Ａの指示に応じて、未送信フラグが付された操作情報を操作情報記憶部１１１Ａから抽出してサーバ２０Ａに送信する。再送信部１０５Ａは、送信が成功すると、操作情報記憶部１１１Ａの対応する未送信フラグをオフにする。他方再送信部１０５Ａは送信に失敗すると未送信フラグをオンのままとする。
【００７４】
操作情報記憶部１１１Ａに記憶される情報の構成は、送信に失敗した操作情報に対応づけて未送信フラグが記憶されるほかは、図６に示した第１の実施形態の操作情報記憶部１１１に記憶される情報と同様である。図１３は、第２の実施形態に係る判定システムにおいて記憶される操作情報の構成の一例を説明するための図である。図１３に示すように、操作情報記憶部１１１Ａは、「ポーリングタイミング」、「タイムスタンプ」等の情報に対応付けて、「未送信フラグ」を記憶する。例えば、図１３の「ポーリングタイミング、20170802/09:00:00」、「タイムスタンプ、20170801/21:30:00」に対応づけて「未送信フラグ、ＯＮ」が記憶される。これは、２０１７年８月２日の９時のポーリング時に送信された、２０１７年８月１日の２１時３０分に検知された操作情報は送信が失敗し未送信状態であることを示す。
【００７５】
サーバ２０Ａの構成および機能も、第１の実施形態に係るサーバ２０の構成および機能と同様である。ただし、サーバ２０Ａにおいては、記憶部２１０Ａの操作情報記憶部２１１Ａに記憶される情報が、ポーリング以外のタイミングで更新される場合がある。操作情報記憶部２１１Ａに記憶される情報の構成は、第１の実施形態の操作情報記憶部２１１に記憶される情報の構成と同様である。また、制御部２００Ａのポーリング処理部２０１Ａは、ポーリング以外のタイミングでもクライアント１０Ａからの操作情報の送信を受け付ける。これら以外の点では、第２の実施形態に係るサーバ２０Ａの構成および機能は第１の実施形態に係るサーバ２０の構成および機能と同様である。
【００７６】
（第２の実施形態に係る判定システム１Ａにおける処理の流れ）
図９は、第２の実施形態に係る判定システム１Ａにおける処理の大まかな流れの一例を示すフローチャートである。クライアント１０Ａが起動すると（ステップＳ８１）、送信部１０３Ａはクライアント１０Ａとサーバ２０Ａとの間のネットワーク３０を介した接続が確立されているか否かを判定する（ステップＳ８２）。そして、送信部１０３Ａは接続が確立されていると判定する（ステップＳ８２、Ｙｅｓ）と未送信情報送信処理（ステップＳ８３）に進む。そして判定システム１Ａは、未送信情報送信処理（ステップＳ８３）の後、通常処理（ステップＳ８４）に移行する。他方、送信部１０３Ａは接続が確立されていないと判定すると（ステップＳ８２、Ｎｏ）、判定システム１Ａは例外処理（ステップＳ８５）に進む。
【００７７】
図１０は、第２の実施形態に係る判定システム１Ａにおける未送信情報送信処理の流れの一例を示すフローチャートである。未送信情報送信処理（図９、ステップＳ８３）は、クライアント１０Ａの判定部１０４Ａおよび再送信部１０５Ａにおいて実行される。図９のステップＳ８２の後、判定部１０４Ａは、操作情報記憶部１１１Ａを参照して未送信フラグが付された情報があるか否かを判定する（ステップＳ９１）。判定部１０４Ａは、未送信フラグが付された情報がないと判定した場合（ステップＳ９１、Ｎｏ）、処理を終了する。そして、クライアント１０Ａは通常処理（図９、ステップＳ８４）に移行する。他方、判定部１０４Ａは未送信フラグが付された情報があると判定した場合（ステップＳ９１、Ｙｅｓ）、再送信部１０５Ａに未送信フラグが付された情報の再送信を指示する。再送信部１０５Ａは指示に応じて、未送信フラグが付された情報をサーバ２０Ａに送信する（ステップＳ９２）。その後、クライアント１０Ａは通常処理へ移行する。なお、クライアント１０Ａは、未送信情報送信処理の間も、検知部１０１および抽出部１０２による操作情報の検知および抽出を実行する。
【００７８】
図１１は、第２の実施形態に係る判定システム１Ａにおける通常処理の流れの一例を示すフローチャートである。通常処理は、クライアント１０Ａとサーバ２０Ａとの間に接続が確立されている場合に実行される。つまり、クライアント１０Ａからサーバ２０Ａへの操作情報の送信が可能であると判定された場合に実行される。
【００７９】
通常処理が開始すると、クライアント１０Ａの検知部１０１は、クライアント１０Ａにおける操作を検知する（ステップＳ１００１）。そして、抽出部１０２は検知された操作の中から所定の操作、たとえば、ユーザの入力部１２０を介した操作入力を抽出する（ステップＳ１００２）。送信部１０３Ａは所定のタイミングになると、抽出部１０２が抽出した操作情報をサーバ２０Ａに送信する（ステップＳ１００３）。送信部１０３Ａは、送信が失敗したか否かを判定する（ステップＳ１００４）。送信部１０３Ａは、送信が失敗したと判定した場合（ステップＳ１００４、Ｙｅｓ）、送信に失敗した操作情報と対応付けて未送信フラグを操作情報記憶部１１１Ａに記憶する（ステップＳ１００５）。そして、クライアント１０Ａは例外処理に移行する。他方、送信部１０３Ａは、送信が成功したと判定した場合（ステップＳ１００４、Ｎｏ）、次にクライアント１０Ａにおける処理を終了させる処理を検知したか否かを判定する（ステップＳ１００６）。送信部１０３Ａが終了処理を検知していないと判定した場合（ステップＳ１００６、Ｎｏ）、処理はステップＳ１００１に戻る。他方、送信部１０３Ａが終了処理を検知したと判定した場合（ステップＳ１００６、Ｙｅｓ）、クライアント１０Ａは処理を終了する。
【００８０】
図１２は、第２の実施形態に係る判定システム１Ａにおける例外処理の流れの一例を示すフローチャートである。例外処理は、クライアント１０Ａとサーバ２０Ａとの間に接続が確立されていない場合に実行する。つまり、クライアント１０Ａからサーバ２０Ａへの操作情報の送信が不可能であると判定された場合に実行する。
【００８１】
例外処理が開始すると、クライアント１０Ａの検知部１０１はクライアント１０Ａにおける操作入力を検知する（ステップＳ１１０１）。そして、抽出部１０２は検知された操作入力の中から所定の操作を抽出する（ステップＳ１１０２）。そして、抽出された操作情報は、未送信フラグとともに操作情報記憶部１１１Ａに記憶される（ステップＳ１１０３）。所定のタイミングになると、送信部１０３Ａは、クライアント１０Ａとサーバ２０Ａとの間に接続が確立されているか否かを判定する（ステップＳ１１０４）。送信部１０３Ａは接続が確立されていると判定した場合（ステップＳ１１０４、Ｙｅｓ）、未送信情報送信処理に進む（ステップＳ１１０５）。その後、クライアント１０Ａは通常処理に移行する。他方、送信部１０３Ａは接続が確立されていないと判定した場合（ステップＳ１１０４、Ｎｏ）、次にクライアント１０Ａの終了処理があったか否かを判定する（ステップＳ１１０６）。送信部１０３Ａが終了処理はないと判定した場合（ステップＳ１１０６、Ｎｏ）、処理はステップＳ１１０１に戻る。他方、送信部１０３Ａが終了処理はあったと判定した場合（ステップＳ１１０６、Ｙｅｓ）、処理は終了する。
【００８２】
なお、第２の実施形態においては、サーバ２０Ａに対して未送信の操作情報を識別するための未送信フラグが記憶されるものとした。これに限らず、たとえば、クライアント１０Ａは操作情報をサーバ２０Ａに送信すると、送信済みの分だけ操作情報記憶部１１１Ａから消去するものとしてもよい。そして、クライアント１０Ａとサーバ２０Ａとの通信確立時に操作情報記憶部１１１Ａに残っている操作情報をクライアント１０Ａからサーバ２０Ａに送信するものとしてもよい。たとえば、クライアント１０Ａでは予め操作情報を暗号化してファイルの形で所定のフォルダに記憶しておく。そして、操作情報の送信タイミングになると、当該フォルダに入っているファイルをクライアント１０Ａからサーバ２０Ａに送信する。また、操作情報の送信タイミングについても、常にポーリングのタイミングになると、当該ファイルに残っているファイルの送信を試行するものとし、別途通信接続の状態確認は行わないように判定システム１Ａを構成してもよい。判定システム１Ａをこのように構成すると、記憶する情報の構成や処理手順を簡素化することができる。
【００８３】
（第２の実施形態に係る判定システム１Ａの効果）
このように、第２の実施形態に係る判定システム１Ａにおいて、送信部１０３Ａは外部からの操作の送信に失敗した場合、送信に失敗した前記外部からの操作を、サーバ２０Ａと通信可能に接続されたときに再送信する。このため、クライアント１０Ａのユーザがサーバ２０Ａとの接続が切断された状態で業務を続行していた場合でも、ユーザによる操作情報をクライアント１０Ａ側に記憶しておくことができる。そして、判定システム１Ａは、クライアント１０Ａとサーバ２０Ａとの接続が回復した場合に、自動的に操作情報をサーバ２０Ａに送信することができる。このため、ネットワーク３０の接続状態に関わらず、クライアント１０Ａを用いた業務の正確な情報をサーバ２０Ａに保持することができる。このため、判定システム１Ａは、ユーザの正確な業務の状況に基づいて勤務時間および残業時間を算出することができる。
【００８４】
（第３の実施形態）
上記第１および第２の実施形態では、クライアント・サーバシステムによって判定システムを構成した。これに対し、クライアントをシンクライアントとして構成することも可能である。シンクライアントシステムとして本発明を実現する例を、第３の実施形態として以下に説明する。
【００８５】
図１４は、第３の実施形態に係る判定システム１Ｂについて説明するための図である。判定システム１Ｂは、図１に示した第１の実施形態に係る判定システム１の構成に類似する。ただし、クライアント１０Ｂはシンクライアントとして構成する。シンクライアントシステムの実装方式は特に限定されない。ただし、第３の実施形態では、サーバ２０Ｂはクライアント１０Ｂに対応するクライアントプログラム１１Ｂの動作確認のため定期的にクライアントプログラム１１Ｂに対してポーリングを行うものとする。
【００８６】
図１４を参照し、第３の実施形態に係る判定システム１Ｂの構成の一例について説明する。判定システム１Ｂが備えるクライアント１０Ｂとサーバ２０Ｂとはネットワーク３０Ｂによって通信可能に接続される。
【００８７】
クライアント１０Ｂは、ユーザが業務に使用する情報処理装置である。クライアント１０Ｂの種類は特に限定されない。クライアント１０Ｂは、制御部１００Ｂ、入力部１２０Ｂ、出力部１３０Ｂ、通信部１４０Ｂを有する。
【００８８】
制御部１００Ｂは、クライアント１０Ｂの動作および機能を制御する。制御部１００Ｂとしてたとえば、各種の集積回路や電子回路を採用できる。また、制御部１００Ｂに含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）が挙げられる。また、電子回路としては、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などが挙げられる。
【００８９】
入力部１２０Ｂは、外部からの入力を受け付ける。入力部１２０Ｂはたとえば、キーボード、マウス、ジョイスティック、タッチパネル、マイクロフォン等である。
【００９０】
出力部１３０Ｂは、クライアント１０Ｂから外部へ情報を出力する。出力部１３０Ｂはたとえば、ディスプレイ、スピーカ、プリンタ等である。
【００９１】
通信部１４０Ｂは、ネットワーク３０Ｂを介した外部からサーバ２０Ｂへの情報の入力を実現する。通信部１４０Ｂはまた、ネットワーク３０Ｂを介したサーバ２０Ｂからの情報の出力を実現する。通信部１４０Ｂはたとえば、スイッチ、モデム、ルータ等を含む。
【００９２】
判定システム１Ｂのクライアント１０Ｂの各部は、図２に示す判定システム１のクライアント１０の各部と同様である。ただし、判定システム１Ｂにおいては、クライアント１０Ｂはシンクライアントとして動作する。すなわち、図２の検知部１０１、抽出部１０２、送信部１０３の各部の機能は、サーバ２０Ｂに設けられるクライアントプログラム１１Ｂが実行する。このため、クライアント１０Ｂの制御部１００Ｂは、クライアントプログラム１１Ｂがサーバ２０Ｂ上で実行する処理をネットワーク３０Ｂを介して受信し、出力部１３０Ｂ（ディスプレイ等）に表示するための制御を実行する。また、入力部１２０Ｂを介して受付けられる入力操作は、通信部１４０Ｂを介してサーバ２０Ｂに送信され、サーバ２０Ｂ上で処理される。
【００９３】
サーバ２０Ｂは、任意の情報処理装置である。サーバ２０Ｂの構成や配置場所は特に限定されない。第３の実施形態ではサーバ２０Ｂは、たとえば仮想デスクトップを実現する情報処理装置である。また、サーバ２０Ｂは任意の数のクライアントに対して仮想デスクトップを提供することができる。サーバ２０Ｂは、所定の処理能力と記憶容量を有していれば、クラウドサーバであっても物理サーバであってもよい。
【００９４】
サーバ２０Ｂ上では、クライアントプログラム１１Ｂと、サーバプログラム２１Ｂとが動作する。サーバ２０Ｂは、クライアントプログラム１１Ｂおよびサーバプログラム２１Ｂを動作させるプロセッサ２３Ｂの他、データベース２２Ｂを有する。なお、図１４には例として一つのプロセッサ２３Ｂおよびデータベース２２Ｂを示す。実際にはサーバ２０Ｂ上に複数の仮想マシンが構築され、その一つにおいてサーバプログラム２１Ｂが動作し、他の一つにおいてクライアントプログラム１１Ｂが動作するように構成してもよい。
【００９５】
サーバ２０Ｂ上では、クライアント１０Ｂにおける操作を反映してクライアントプログラム１１Ｂが実行される。クライアントプログラム１１Ｂは、図２の検知部１０１、抽出部１０２、送信部１０３に相当する機能を実現する。また、サーバ２０Ｂ上では、サーバプログラム２１Ｂが実行される。サーバプログラム２１Ｂは、図２のポーリング処理部２０１および算出部２０２に相当する機能を実現する。また、データベース２２Ｂは、図２の記憶部２１０に記憶される情報に相当する情報を記憶する。
【００９６】
（第３の実施形態に係る判定システム１Ｂにおける処理の流れ）
図３乃至図５を参照しつつ、第３の実施形態に係る判定システム１Ｂにおける処理の流れの一例について説明する。第３の実施形態は、シンクライアントシステムである点を除いては処理の流れは第１の実施形態の判定システム１と同様である。
【００９７】
まず、ユーザは業務開始時にクライアント１０Ｂの電源を投入し、サーバ２０Ｂに搭載されたクライアントプログラム１１Ｂを起動させる（図４のステップＳ４１参照）。ユーザは、業務のための操作をクライアント１０Ｂを用いて実行する。クライアント１０Ｂにおいてユーザが実行する入力部１２０Ｂを介した操作の情報は、ネットワーク３０Ｂを介してサーバ２０Ｂに送信される。クライアントプログラム１１Ｂはサーバ２０Ｂにおいてクライアント１０Ｂから受信する操作の情報を用いて、検知部１０１、抽出部１０２の処理を実行する（図４のステップＳ４２、Ｓ４３参照）。さらに、クライアントプログラム１１Ｂは、所定の時間になると、サーバプログラム２１Ｂに対してポーリングを実行する（図４のステップＳ４４、Ｓ４５参照）。このとき、クライアントプログラム１１Ｂは、クライアント１０Ｂから受信し、クライアントプログラム１１Ｂにおいて抽出した操作情報をサーバプログラム２１Ｂに送信する（図４のステップＳ４５参照）。サーバプログラム２１Ｂは、受信した操作情報をデータベース２２Ｂに記憶する（図５のステップＳ５１、Ｓ５２参照）。そして、サーバプログラム２１Ｂは、記憶した操作情報に基づきユーザの勤務時間を算出する（ステップＳ５３）。
【００９８】
（第３の実施形態に係る判定システム１Ｂの効果）
このように、第３の実施形態に係る判定システム１Ｂにおいて、情報処理装置はシンクライアント端末であり、検知部１０１、抽出部１０２、送信部１０３および算出部２０２による処理は、情報処理装置とは別体のサーバにおいて実行される。このように構成することで、シンクライアントシステムとして構成された判定システムは、クライアント上で実際に実行される操作の情報をサーバ側に記憶することができる。このため、判定システムはユーザの勤務時間を正確に把握し算出することができる。
【００９９】
第３の実施形態のように、クライアント１０Ｂをシンクライアントとして構成した場合、クライアント１０Ｂ自体が電源オフの状態になったとしても、サーバ２０Ｂ上に搭載されるクライアントプログラム１１Ｂとサーバプログラム２１Ｂとの間で定期的にポーリングが実行される場合がある。ポーリングが実行される場合、クライアントプログラム１１Ｂは停止状態（スリープ状態または電源オフの状態）にならない。このため、クライアントプログラム１１Ｂの状態をクライアント１０Ｂの状態として監視しても、勤務時間を正確に判定することが困難である。しかし、クライアントプログラム１１Ｂがクライアント１０Ｂに対する操作入力を検知、抽出して、サーバプログラム２１Ｂに定期的に送信することで、サーバ２０Ｂはクライアント１０Ｂにおける実際の操作状態を把握することができる。このため、シンクライアントシステムのように、プログラムの稼働状態が必ずしも実際の情報処理装置の操作状態と一致しないシステム形態であっても、勤務時間の正確な把握が可能となる。
【０１００】
なお、第３の実施形態においてクライアント１０Ｂをシンクライアントではなく、仮想デスクトップを利用可能なクライアントとして構成する場合には、第２の実施形態のように通信断の間の操作情報を記憶する機能をクライアント側に持たせてもよい。また、この場合には、仮想デスクトップ上での作業がスリープ状態になるかまたは終了されているときのみ、クライアント上での操作情報を取得するように構成してもよい。
【０１０１】
また上記第１〜第３の実施形態においては、判定システムが操作情報を検知し記憶する時間帯は特に限定していない。しかし、これに限らず、判定システムは、予め定められている勤務時間（たとえば９時から１７時）以外の時間帯のみ操作情報を記憶するように構成してもよい。すなわち、残業時間の判定のみに判定システムを用いるように構成してもよい。また、たとえば、ユーザが業務遂行中である可能性が低くなった時点で、判定システムによる処理が開始するように構成してもよい。たとえば、クライアントがスリープ状態になったとき、ユーザが他のシステム（出退勤管理システムなど）上で退出した旨を記録したとき等である。このように構成すれば、ユーザが勤務中か否か判定が困難な場面のみ判定システムを用いて綿密な勤務時間の判定を実現することができる。
【０１０２】
また、各実施形態において、クライアントは１日のうち常に最新の操作情報の実行時刻のみを記憶するものとしてもよい。そして、サーバへは、最新の操作情報の実行時刻のみを送信するようにクライアントを構成してもよい。また、算出部の機能をクライアント側にもたせるように構成し、クライアントからサーバへ終業時刻のみを通知するように構成してもよい。
【０１０３】
（その他の実施形態）
これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【０１０４】
（クラウドコンピューティングによる実装）
開示の判定プログラムは、クラウドシステムを構成するサーバに実装し、クラウドシステムを介して、様々な場所に存在する在宅勤務者および社内勤務者の勤務時間および情報処理端末の操作状態を管理するために使用することができる。このようにすれば、広範な地域に散らばる会社施設での勤務者の勤務状態および各在宅勤務者の自宅における勤務状態を一括して管理することができ、効率的な労働管理を実現することができる。
【０１０５】
（分散および統合）
図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１０６】
（判定プログラム）
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをサーバ等のコンピュータからタブレット端末やノート型コンピュータ等のコンピュータに配布し、サーバとコンピュータとが処理を協働して実行することによって実現することができる。そこで、以下では、図１５を用いて、上記の実施形態と同様の機能を有する判定プログラムを実行するコンピュータの一例について説明する。
【０１０７】
図１５は、第１〜３の実施形態に係る判定プログラムを実行するコンピュータの一例について説明するための図である。図１５に示すように、コンピュータ１０００は、操作部１１００と、ディスプレイ１２００と、通信部１３００とを有する。さらに、このコンピュータ１０００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１４００と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１５００と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１６００と、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１７００とを有する。これら１１００〜１７００の各部はバス１８００を介して接続される。
【０１０８】
ＨＤＤ１７００には、図１５に示すように、上記の第１〜３の実施形態で示した各部と同様の機能を発揮するモジュールを実装することができる判定プログラム１７００ａが予め記憶される。この判定プログラム１７００ａについては、図２および図８に示した各々の各構成要素と同様、適宜統合または分離してもよい。すなわち、ＨＤＤ１７００に記憶される各データは、常に全てのデータがＨＤＤ１７００に記憶される必要はなく、処理に必要なデータのみがＨＤＤ１７００に記憶されればよい。
【０１０９】
そして、ＣＰＵ１４００が、判定プログラム１７００ａの各モジュールをＨＤＤ１７００から読み出してＲＡＭ１６００に展開する。これによって、図１５に示すように、判定プログラム１７００ａは、判定プロセス１６００ａとして機能する。この判定プロセス１６００ａは、ＨＤＤ１７００から読み出した各種データを適宜ＲＡＭ１６００上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、判定プロセス１６００ａは、図２に示した各処理部にて実行される処理を含む。また、ＣＰＵ１４００上で仮想的に実現される各処理部は、常に全ての処理部がＣＰＵ１４００上で動作する必要はなく、必要な処理部のみが仮想的に実現されればよい。
【０１１０】
なお、上記の判定プログラム１７００ａについては、必ずしも最初からＨＤＤ１７００やＲＯＭ１５００に記憶させておく必要はない。たとえば、コンピュータ１０００に挿入されるフレキシブルディスク、ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などの「可搬用の物理媒体」に各プログラムを記憶させる。または、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）ディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１０００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などを介してコンピュータ１０００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておいてもよい。そして、コンピュータ１０００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【０１１１】
１，１Ａ，１Ｂ  判定システム
１０，１０Ａ，１０Ｂ  クライアント（情報処理装置）
１１，１１Ｂ  クライアントプログラム
１００，１００Ａ，１００Ｂ  制御部
１０１，１０１Ａ  検知部
１０２，１０２Ａ  抽出部
１０３，１０３Ａ  送信部
１０４Ａ  判定部
１０５Ａ  再送信部
１１０，１１０Ａ  記憶部
１１１，１１１Ａ  操作情報記憶部
１２０  入力部
１３０  出力部
１４０  通信部
２０，２０Ａ，２０Ｂ  サーバ
２１，２１Ｂ  サーバプログラム
２２，２２Ｂ  データベース
２００，２００Ａ  制御部
２０１，２０１Ａ  ポーリング処理部
２０２  算出部
２１０，２１０Ａ  記憶部
２１１，２１１Ａ  操作情報記憶部
２１２  条件記憶部
２２０  入力部
２３０  出力部
２４０  通信部
３０  ネットワーク
【図１】
2019040476.tif 000003
【図２】
2019040476.tif 000004
【図３】
2019040476.tif 000005
【図４】
2019040476.tif 000006
【図５】
2019040476.tif 000007
【図６】
2019040476.tif 000008
【図７】
2019040476.tif 000009
【図８】
2019040476.tif 000010
【図９】
2019040476.tif 000011
【図１０】
2019040476.tif 000012
【図１１】
2019040476.tif 000013
【図１２】
2019040476.tif 000014
【図１３】
2019040476.tif 000015
【図１４】
2019040476.tif 000016
【図１５】
2019040476.tif 000017