IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社富士通エフサスの特許一覧

特開2023-54317判定システム、判定方法および判定プログラム
<>
  • 特開-判定システム、判定方法および判定プログラム 図1
  • 特開-判定システム、判定方法および判定プログラム 図2
  • 特開-判定システム、判定方法および判定プログラム 図3
  • 特開-判定システム、判定方法および判定プログラム 図4
  • 特開-判定システム、判定方法および判定プログラム 図5
  • 特開-判定システム、判定方法および判定プログラム 図6
  • 特開-判定システム、判定方法および判定プログラム 図7
  • 特開-判定システム、判定方法および判定プログラム 図8
  • 特開-判定システム、判定方法および判定プログラム 図9
  • 特開-判定システム、判定方法および判定プログラム 図10
  • 特開-判定システム、判定方法および判定プログラム 図11
  • 特開-判定システム、判定方法および判定プログラム 図12
  • 特開-判定システム、判定方法および判定プログラム 図13
  • 特開-判定システム、判定方法および判定プログラム 図14
  • 特開-判定システム、判定方法および判定プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023054317
(43)【公開日】2023-04-13
(54)【発明の名称】判定システム、判定方法および判定プログラム
(51)【国際特許分類】
   G06Q 10/109 20230101AFI20230406BHJP
【FI】
G06Q10/109
【審査請求】有
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023027445
(22)【出願日】2023-02-24
(62)【分割の表示】P 2021198840の分割
【原出願日】2017-08-25
(71)【出願人】
【識別番号】598057291
【氏名又は名称】株式会社富士通エフサス
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】国宗 広二
(72)【発明者】
【氏名】平 賢一
(57)【要約】
【課題】勤務時間を正確に把握する。
【解決手段】判定システムは、ユーザが業務に使用する情報処理装置上での操作を検知する。そして、判定システムは、検知部が検知する操作のうち入力部を介した外部からの操作を抽出する。判定システムは、抽出部が抽出する外部からの操作を、所定時間ごとに記憶装置に送信する。判定システムは、記憶装置に記憶される外部からの操作に基づき、情報処理装置のユーザの勤務時間を算出する。
【選択図】図2
【特許請求の範囲】
【請求項1】
ユーザが業務に使用する情報処理装置上での操作を検知する検知部と、
前記検知部が検知する操作のうち入力部を介した外部からの操作であって、予め設定された前記ユーザに対応する種類の操作を抽出する抽出部と、
前記抽出部が抽出する前記外部からの操作であって、予め設定された前記ユーザに対応する種類の操作を、所定時間ごとに取得し、記憶装置に送信する送信部と、
前記記憶装置に順に記憶される複数の前記操作のうち、前記所定時間内で前記操作が行われていないことを示す前記操作なし時間が設定されている場合に、最後の操作なし時間に対応する時刻を終業時点として、前記情報処理装置の前記ユーザの残業時間を算出する算出部と、
を備えることを特徴とする判定システム。
【請求項2】
前記抽出部は、ユーザによるキーボード操作およびマウス操作の少なくとも一方を抽出することを特徴とする請求項1に記載の判定システム。
【請求項3】
前記算出部は、前記記憶装置に記憶される前記外部からの操作のうち、1日の中で最後の前記外部からの操作に対応する時点を終業時点として残業時間を算出することを特徴とする請求項1または2に記載の判定システム。
【請求項4】
前記送信部は、前記情報処理装置とネットワークを介して通信可能に接続されるサーバへのポーリング時に、当該サーバへ前記外部からの操作を送信することを特徴とする請求項1から3のいずれか1項に記載の判定システム。
【請求項5】
前記送信部は前記外部からの操作の送信に失敗した場合、送信に失敗した前記外部からの操作を、前記サーバと通信可能に接続されたときに再送信することを特徴とする請求項4に記載の判定システム。
【請求項6】
前記情報処理装置はシンクライアント端末であり、
前記検知部、前記抽出部、前記送信部および前記算出部による処理は、前記情報処理装置とは別体のサーバにおいて実行されることを特徴とする請求項1から3のいずれか1項に記載の判定システム。
【請求項7】
コンピュータに、
ユーザが業務に使用する情報処理装置上での操作を検知し、
検知した操作のうち入力部を介した外部からの操作であって、予め設定された前記ユーザに対応する種類の操作を抽出し、
抽出した前記外部からの操作であって、予め設定された前記ユーザに対応する種類の操作を、所定時間ごとに取得し、記憶装置に送信し、
前記記憶装置に順に記憶される複数の前記操作のうち、前記所定時間内で前記操作が行われていないことを示す前記操作なし時間が設定されている場合に、最後の操作なし時間に対応する時刻を終業時点として、前記情報処理装置の前記ユーザの残業時間を算出する
ことを含む各処理を実行させることを特徴とする判定方法。
【請求項8】
ユーザが業務に使用する情報処理装置上での操作を検知し、
検知した操作のうち入力部を介した外部からの操作であって、予め設定された前記ユーザに対応する種類の操作を抽出し、
抽出した前記外部からの操作であって、予め設定された前記ユーザに対応する種類の操作を、所定時間ごとに取得し、記憶装置に送信し、
前記記憶装置に順に記憶される複数の前記操作のうち、前記所定時間内で前記操作が行われていないことを示す前記操作なし時間が設定されている場合に、最後の操作なし時間に対応する時刻を終業時点として、前記情報処理装置の前記ユーザの残業時間を算出する
各手順を含む処理を、コンピュータに実行させることを特徴とする判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、判定システム、判定方法および判定プログラムに関する。
【背景技術】
【0002】
近年、長時間労働を抑止するため、労働者の勤務時間を正確に把握することが重要となっている。勤務者がパーソナルコンピュータ(PC)等の情報処理装置を用いて業務を行う場合、情報処理装置が稼働状態にある間を勤務時間として算出することが考えられる。
【0003】
しかし、情報処理装置の稼働状態のみに基づいて勤務時間を把握しようとすると正確な勤務時間を把握できない場合がある。たとえば、勤務者が情報処理装置をシャットダウンせずに帰宅した場合、情報処理装置は稼働状態であっても勤務者は労働していない。またたとえば、勤務者がノート型PCなどの電源をONにしたまま蓋を閉じた場合、ノート型PCはスリープ状態に移行しても完全に動作を終了しているわけではない。このため、労働者が業務に使用する情報処理装置の稼働状態が必ずしも労働者の勤務状態を反映していない場合がありうる。
【0004】
ところで、情報処理装置は稼働状態であっても操作入力がないまま所定時間が経過するとスリープ状態に移行するよう設定されていることが多い。スリープ状態とは、省電力の待機電源モードである。そこで、情報処理装置がスリープ状態か否かに応じて勤務中か否かを判定するよう、システムを構成することも考えられる。たとえば、特許文献1に記載の判定プログラムは、情報処理装置の操作履歴を示す情報に基づいて、特定の期間が作業期間に該当するか否かを判定する。たとえば、特許文献1の判定プログラムは、履歴記憶部に記憶されているレコードごとに当該レコードに係る期間(稼働期間又はスリープ期間)が作業時間に該当するか否かを判定する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2016-126466号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、上記のような従来のシステムではやはり、勤務時間を正確に把握することができない場合が考えられる。
【0007】
スリープ状態へ移行する条件となる無操作入力の時間の長さは、勤務中に迅速に業務に復帰できるよう比較的長く設定されることが多い。仮に30分操作入力がない場合にスリープ状態に移行する、という設定であれば、勤務時間が実体よりも30分長くカウントされる可能性がある。
【0008】
また、情報処理装置を業務で使用するためサーバと接続するシステムにおいては、ユーザが情報処理装置を利用していない状態であっても情報処理装置の内部動作が完全に終了していないことがある。たとえば、情報処理装置とサーバとの間で自動的にポーリングが行われるようシステムが設定されている場合、ユーザが情報処理装置を用いて業務を行なっていなくてもシステム上は情報処理装置は稼働中であると判断される。
【0009】
たとえば、情報処理装置をサーバと接続してシンクライアントとして利用する場合、情報処理装置自体には直接操作入力がなくてもサーバとプログラムとの間で自動的にポーリングが実行されるため、仮に情報処理装置がスリープ状態であってもサーバ側からは情報処理装置は稼働中と判定される。したがって、情報処理装置の稼働状態たとえばスリープ状態に基づいて当該情報処理装置のユーザである勤務者の勤務時間を判定すると勤務時間を正確に判定できない場合がありうる。
【0010】
1つの側面では、勤務時間を正確に把握することができる判定システム、判定方法および判定プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
第1の案では、第1の案では、判定システム、判定方法および判定プログラムは、ユーザが業務に使用する情報処理装置上での操作を検知する。そして判定システム、判定方法および判定プログラムは、検知した操作のうち入力部を介した外部からの操作であって、予め設定された前記ユーザに対応する種類の操作を抽出する。そして判定システム、判定方法および判定プログラムは、抽出した外部からの操作であって、予め設定されたユーザに対応する種類の操作を、所定時間ごとに取得し、記憶装置に送信する。そして判定システム、判定方法および判定プログラムは、記憶装置に順に記憶される複数の操作のうち、所定時間内で操作が行われていないことを示す操作なし時間が設定されている場合に、最後の操作なし時間に対応する時刻を終業時点として、情報処理装置のユーザの残業時間を算出する。
【発明の効果】
【0012】
本発明の1実施形態によれば、勤務時間を正確に把握することができる。
【図面の簡単な説明】
【0013】
図1図1は、第1の実施形態に係る判定システムの概要について説明するための図である。
図2図2は、第1の実施形態に係る判定システムの構成の一例について説明するための図である。
図3図3は、第1の実施形態に係る判定システムにおける処理の大まかな流れの一例を示すフローチャートである。
図4図4は、第1の実施形態に係る判定システムにおけるクライアントの処理の流れの一例を示すフローチャートである。
図5図5は、第1の実施形態に係る判定システムにおけるサーバの処理の流れの一例を示すフローチャートである。
図6図6は、第1の実施形態に係る判定システムにおいて記憶される操作情報の構成の一例を説明するための図である。
図7図7は、第1の実施形態に係る判定システムにおいて記憶される条件情報の構成の一例を説明するための図である。
図8図8は、第2の実施形態に係る判定システムの構成の一例について説明するための図である。
図9図9は、第2の実施形態に係る判定システムにおける処理の大まかな流れの一例を示すフローチャートである。
図10図10は、第2の実施形態に係る判定システムにおける未送信情報送信処理の流れの一例を示すフローチャートである。
図11図11は、第2の実施形態に係る判定システムにおける通常処理の流れの一例を示すフローチャートである。
図12図12は、第2の実施形態に係る判定システムにおける例外処理の流れの一例を示すフローチャートである。
図13図13は、第2の実施形態に係る判定システムにおいて記憶される操作情報の構成の一例を説明するための図である。
図14図14は、第3の実施形態に係る判定システムについて説明するための図である。
図15図15は、第1~3の実施形態に係る判定プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【0014】
以下に、本願の開示する判定システム、判定方法および判定プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【0015】
(第1の実施形態)
図1は、第1の実施形態に係る判定システム1の概要について説明するための図である。第1の実施形態に係る判定システム1はユーザの業務を管理する。判定システム1はたとえば、ユーザの勤務時間および残業時間を判定する。判定システム1により管理されるユーザは各々情報処理装置を用いて業務を遂行する。
【0016】
図1中、クライアント10はサーバ20とネットワーク30を介して接続される。クライアント10は、ユーザが業務遂行に利用する情報処理装置である。クライアント10はたとえば、パーソナルコンピュータ(PC)、ノート型PC等の情報処理装置である。クライアント10上では、ユーザの業務管理のための処理を実行するクライアントプログラム11が動作する。
【0017】
サーバ20は、任意の情報処理装置である。サーバ20の構成や配置場所は特に限定されない。たとえばサーバ20は、所定の処理能力と記憶容量を有していれば、クラウドサーバであっても物理サーバであってもよい。サーバ20上では、ユーザの業務管理のための処理を実行するサーバプログラム21が動作する。サーバ20はまた、データベース22を備える。データベース22は、サーバ20の処理に関する情報、処理の結果生成される情報、クライアント10から送信される情報等を記憶する。データベース22の構成や配置場所も特に限定されない。データベース22は所定の処理能力と記憶容量を有していればよい。たとえばデータベース22はサーバ20とは別体として構成してもよい。
【0018】
サーバ20は、クライアント10からクライアント10上で実行される操作に関する情報をネットワーク30を介して受信する。サーバ20はたとえば、クライアント10上でユーザが実行した入力操作に関する情報を受信する。サーバ20はたとえば、クライアント10に対するユーザの入力部を介した外部からの操作を受信する。サーバ20はたとえば、クライアント10の上でユーザが実行したキーボード入力の情報を受信する。キーボード入力の情報とはたとえば打鍵の有無である。また、サーバ20はたとえば、クライアント10上でユーザが実行したマウス入力の情報を受信する。マウス入力の情報とはたとえば、クリック動作、カーソルの移動の有無、カーソルの移動距離等である。サーバ20とクライアント10との間では、所定時間ごとにクライアント10の動作確認のためのポーリングが実行される。ポーリングの具体的な手法は特に限定されない。
【0019】
ネットワーク30は、クライアント10とサーバ20との間の通信を実現する。ネットワーク30の種類は特に限定されない。ネットワーク30はたとえば、インターネット、イントラネット、ローカルエリアネットワーク(LAN)、広域エリアネットワーク(WAN)等でよい。また、ネットワーク30は有線ネットワークでも無線ネットワークでも両者の組み合わせでもよい。
【0020】
なお、図1には例示のためクライアント10、サーバ20、ネットワーク30をそれぞれ1つ示す。実際には複数のクライアント10を1つのサーバ20に接続してもよい。また、サーバ20を複数の物理サーバで構成してもよい。
【0021】
(判定システム1の構成の一例)
図2は、第1の実施形態に係る判定システム1の構成の一例について説明するための図である。図2は、図1に示す構成を詳細に説明するための図である。
【0022】
(クライアント10の構成の一例)
クライアント10は、制御部100と、記憶部110と、入力部120と、出力部130と、通信部140と、を有する。
【0023】
制御部100は、クライアント10の動作および機能を制御する。制御部100としてたとえば、各種の集積回路や電子回路を採用できる。また、制御部100に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
【0024】
制御部100は、検知部101と、抽出部102と、送信部103と、を有する。
【0025】
検知部101は、クライアント10上で実行される操作を検知する。検知部101はたとえば、入力部120を介したユーザの入力操作を検知する。入力部120を介したユーザの入力操作とはたとえば、キーボードからの文字入力や、マウスからのクリック入力、カーソルを移動させる入力等である。検知部101はまた、通信部140を介したクライアント10への情報の入力を検知する。情報の入力とはたとえば、ネットワーク30を介したウェブページの受信や、サーバ20からの信号入力等である。検知部102が検知する情報はたとえばログとして記憶部110に記憶される。
【0026】
抽出部102は、検知部101が検知した情報の中から所定の情報を抽出する。たとえば抽出部102は、入力部120を介したユーザによる操作入力を抽出する。たとえば抽出部102は、キーボードの打鍵やマウスからのクリック入力の有無、カーソルの移動距離等の情報を抽出する。抽出部102が抽出する情報は記憶部110に記憶される。抽出部102が抽出する情報の種類は予め上記のうちいずれか一つに設定してもよい。また、ユーザごと(クライアント10ごと)に異なる種類の情報を抽出する情報として設定してもよい。
【0027】
送信部103は、抽出部102が抽出した情報を、通信部140を介して所定のタイミングでサーバ20に送信する。所定のタイミングはたとえば15分毎に設定される。また、所定のタイミングは予め設定された時刻であってもよい。たとえば、12時00分、12時15分、12時30分等を所定のタイミングとして設定してもよい。
【0028】
記憶部110は、クライアント10における処理に使用される情報および処理の結果生成される情報を記憶する。記憶部110はたとえば、半導体メモリ素子や記憶装置である。半導体メモリ素子としては、VRAM(Video Random Access Memory)、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【0029】
記憶部110は、操作情報記憶部111を有する。操作情報記憶部111は、抽出部102が抽出する情報を記憶する。
【0030】
図6は、第1の実施形態に係る判定システム1において記憶される操作情報の構成の一例を説明するための図である。図6に示すように、操作情報は、「ポーリングタイミング」、「タイムスタンプ」、「ユーザID」、「操作内容」、「打鍵有無」、「移動距離」、「クリック」等の情報を含む。「ポーリングタイミング」は、送信部103が情報を送信する所定のタイミングを示す。「タイムスタンプ」は、対応する操作情報が検知された日時を示す。「ユーザID」は当該クライアント10を使用するユーザを一意に示す識別子(Identifier)である。ユーザIDは予めクライアント10に記憶してあってもよく、ユーザがクライアント10上でログイン処理を実行することで、クライアント10がユーザIDを識別するように構成してもよい。「操作内容」は検知部101が検知し抽出部102が抽出する操作の内容である。たとえば、マウスを介した入力、キーボードを介した入力等である。「打鍵有無」は、キーボードの打鍵の有無を示す。「移動距離」は入力部120を介した操作によるカーソルの移動距離を示す。「クリック」はマウスを介したクリック入力の有無を示す。なお、図6に示す操作情報は一例であって、ユーザがクライアント10上で実行する操作に関する情報であれば他の情報を操作情報として操作情報記憶部111に記憶してもよい。
【0031】
たとえば、図6の例では、「ポーリングタイミング、20170801/09:00:00」、「タイムスタンプ、20170801/08:45:00」が記憶される。これは、クライアント10の送信部103は、2017年8月1日の9時に、その時点で記憶されている操作情報をサーバ20に送信することを示す。また、この時点で2017年8月1日の9時に送信する情報として、2017年8月1日8時45分に検知された情報が存在することを示す。
【0032】
さらに、「ユーザID、FS2525」に対応付けて、「操作内容、マウス入力」、「打鍵有無、NA」、「移動距離、NA」、「クリック、Y」が記憶されている。これは、ユーザID「FS2525」で識別されるユーザの操作として、マウス入力が検知されたことを示す。また、検知されたユーザの操作はマウス入力であるため、キーボードの打鍵は対応づけて検知されていないことを示す。また、検知されたユーザの操作によって生じたカーソルの移動はないことを示す。また、検知されたユーザの操作は、クリック入力であることを示す。
【0033】
図2に戻り、入力部120は、クライアント10に対する外部からの入力を受け付ける。入力部120はたとえば、キーボード、マウス、ジョイスティック、タッチパネル、マイクロフォン等である。入力部120を介して受付けられる入力は、検知部101が検知する。
【0034】
出力部130は、クライアント10から外部へ情報を出力する。出力部130はたとえば、ディスプレイ、スピーカ、プリンタ等である。
【0035】
通信部140は、ネットワーク30を介した外部からクライアント10への情報の入力を実現する。通信部140はまた、ネットワーク30を介したクライアント10から外部への情報の出力を実現する。通信部140はたとえば、スイッチ、モデム、ルータ等を含む。
【0036】
(サーバ20の構成の一例)
サーバ20は、制御部200と、記憶部210と、入力部220と、出力部230と、通信部240と、を備える。
【0037】
制御部200は、サーバ20の動作および機能を制御する。制御部200としてたとえば、各種の集積回路や電子回路を採用できる。また、制御部200に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
【0038】
制御部200は、ポーリング処理部201と、算出部202とを有する。
【0039】
ポーリング処理部201は、ポーリング時にクライアント10から送信される情報を受信し、受信する情報のうち操作に関する情報を記憶部210に記憶する。ポーリング処理部201は、予め定められたポーリングタイミングにおいて受信した情報がない場合、その旨を記憶部210に記憶する。ポーリング時には、クライアント10は操作に関する情報のほか予め定められた情報をクライアント10に送信する。
【0040】
算出部202は、所定のタイミングで、記憶部210に記憶される情報に基づき、クライアント10のユーザの勤務時間を算出する。算出部202はたとえば、ユーザの残業時間を算出する。
【0041】
記憶部210は、サーバ20における処理に使用される情報および処理の結果生成される情報を記憶する。記憶部210はたとえば、半導体メモリ素子や記憶装置である。半導体メモリ素子としては、VRAM(Video Random Access Memory)、RAM(Random Access Memory)、ROM(Read Only Memory)やフラッシュメモリ(flash memory)などが挙げられる。また、記憶装置としては、ハードディスク、光ディスクなどの記憶装置が挙げられる。
【0042】
記憶部210は、操作情報記憶部211と条件記憶部212とを有する。
【0043】
操作情報記憶部211は、クライアント10から受信する操作情報を記憶する。操作情報記憶部211に記憶される操作情報の構成は、図6に示すクライアント10の操作情報記憶部111に記憶される情報の構成と同様である。操作情報記憶部211の操作情報は、ポーリングのタイミングでクライアント10からサーバ20に送信されて操作情報記憶部211に記憶される。なお、本実施形態では、クライアント10およびサーバ20の双方に操作情報が記憶される形で説明する。ただし、判定システム1において、クライアント10側に記憶される操作情報は、ポーリング時にサーバ20に送信されると送信された分だけ操作情報記憶部111から消去されるように構成してもよい。
【0044】
条件記憶部212は、算出部202が勤務時間の算出に用いる条件を記憶する。条件は、ユーザの勤務体系や給与体系に応じて設定すればよい。たとえば、条件記憶部212は、勤務時間算出の単位とする1日が真夜中(12時)で切り替わるとする条件を記憶する。この条件によれば、勤務時間算出の上では、真夜中の12時に1日が始まり、1日が終了する。たとえば、ユーザが8月1日15時から勤務を開始して日付けが変わった後の8月2日午前1時に勤務を終了した場合、算出部202は、8月1日の勤務時間として9時間、8月2日の勤務時間として1時間を算出する。
【0045】
条件記憶部212はまた、1日のうち、操作情報が最後に送信されたポーリング時の時刻を当該ユーザの終業時刻として勤務時間を算出する、という条件を記憶する。条件記憶部212はまた、1日のうち、最後に送信された操作情報のタイムスタンプの時刻を当該ユーザの終業時刻として勤務時間を算出する、という条件を記憶する。条件記憶部212はまた、操作情報が受信されない期間が所定期間継続した場合に、当該所定期間前に最後に操作情報を受信した時間を終業時刻とする、という条件を記憶する。条件記憶部212はまた、操作情報が受信されない期間が所定期間継続しても、当該所定期間前に最後に操作情報を受信した時間を終業時刻とはしない例外条件を記憶する。条件についてはさらに後述する。
【0046】
入力部220は、外部からの入力を受け付ける。入力部220はたとえば、キーボード、マウス、ジョイスティック、タッチパネル、マイクロフォン等である。
【0047】
出力部230は、サーバ20から外部へ情報を出力する。出力部230はたとえば、ディスプレイ、スピーカ、プリンタ等である。
【0048】
通信部240は、ネットワーク30を介した外部からサーバ20への情報の入力を実現する。通信部240はまた、ネットワーク30を介したサーバ20からの情報の出力を実現する。通信部240はたとえば、スイッチ、モデム、ルータ等を含む。
【0049】
(判定システム1における処理の流れ)
図3は、第1の実施形態に係る判定システム1における処理の大まかな流れの一例を示すフローチャートである。図3に示すように、判定システム1においては、まず、クライアント10における外部からの操作入力が検知される(ステップS31)。そして、検知された操作入力の中から特定の操作、たとえば、ユーザによる入力部120を介した操作入力が抽出される(ステップS32)。そして、抽出した操作が記憶される(ステップS33)。その後、記憶された操作に基づいて、クライアント10のユーザの勤務時間(残業時間)が算出される(ステップS34)。これで処理が終了する。第1の実施形態においては、ステップS31およびS32の処理はクライアント10において実行される。また、ステップS33およびS34の処理はサーバ20において実行される。
【0050】
(クライアント10における処理の流れ)
図4は、第1の実施形態に係る判定システム1におけるクライアント10の処理の流れの一例を示すフローチャートである。図4に示すように、まず、クライアント10の電源投入等により、クライアント10が起動する(ステップS41)。クライアント10が起動すると、検知部101が操作検知を開始する(ステップS42)。抽出部102は検知部101が検知する操作の中から、ユーザによる操作入力を抽出する(ステップS43)。送信部103は、ポーリングのために設定されている所定時間が経過したか否かを判定する(ステップS44)。送信部103が所定時間が経過していないと判定した場合(ステップS44、No)、処理はステップS42に戻る。他方、送信部103が所定時間が経過したと判定した場合(ステップS44、Yes)、送信部103はポーリングを実行する。すなわち、送信部103は抽出部102が抽出し記憶部110に記憶された操作情報をサーバ20に送信する(ステップS45)。次に、検知部101はクライアント10の処理を終了させる動作の有無を判定する(ステップS46)。検知部101は終了動作がないと判定した場合(ステップS46、No)、処理はステップS42に戻る。他方、検知部101は終了動作があると判定した場合(ステップS46、Yes)、処理は終了する。
【0051】
(サーバ20における処理の流れ)
図5は、第1の実施形態に係る判定システム1におけるサーバ20の処理の流れの一例を示すフローチャートである。図5に示すように、まず、サーバ20は、クライアント10からポーリング時に操作情報を受信する(ステップS51)。サーバ20は受信した操作情報を記憶部210に記憶する(ステップS52)。そして、サーバ20は、記憶した操作情報に基づき、クライアント10のユーザの勤務時間を算出する(ステップS53)。これで処理が終わる。
【0052】
(勤務時間の算出処理)
第1の実施形態に係るサーバ20の算出部202は、操作情報記憶部211と条件記憶部212に記憶される情報に基づき、各ユーザの勤務時間を算出する。図7は、第1の実施形態に係る判定システム1において記憶される条件情報の構成の一例を説明するための図である。
【0053】
図7に示すように、条件記憶部212に記憶される条件は、「条件ID」、「時間帯」、「処理」、「適用フラグ」を含む。「条件ID」は各条件を一意に識別するための識別子(Identifier)である。「時間帯」は当該条件に基づく勤務時間算出を判定システム1が実行する時間帯を示す。「処理」は当該条件の処理内容を示す。「適用フラグ」は、当該条件を適用中か否かを示す。
【0054】
図7中たとえば、「条件ID、CN01」に対応付けて「時間帯、全て」、「処理、所定時間(P1)の間操作情報がない場合、最初の操作情報なしを終業時間として算出」が記憶される。これは、条件ID「CN01」で特定される条件が適用される場合、全ての時間帯において、所定時間にわたって操作情報が記憶されていなければ、最初に操作情報がなくなったポーリング時を終業時間として算出部202が処理を実行することを示す。条件ID「CN01」の条件は、基本的にクライアント10を使用しなければ業務ができないような業務形態の組織に適用できる。なお、条件ID「CN01」の条件の場合、適用フラグを用いない形で実現してもよい。たとえば、適用フラグを設定する代わりに所定時間P1の閾値TH1を設定しておく。そして判定システム1は、P1がTH1以上の場合に条件ID「CN01」を適用し、P1がTH1未満の場合には条件ID「CN01」の条件を適用しない。判定システム1が条件ID「CN01」を適用しない場合は適用フラグをOFFにするのではなく、閾値TH1を0に設定する。
【0055】
また図7中たとえば、「条件ID、CN02」に対応付けて「時間帯、全て」、「処理、1日のうち最後に記憶された操作情報に対応する時刻を終業時間として算出」が記憶される。これは、条件ID「CN02」で特定される条件が適用される場合、全ての時間帯において、1日のうち最後に記憶された操作情報のタイムスタンプの時点を終業時間として算出部202が処理を実行することを示す。図7では、条件ID「CN02」の条件に対応づけて「適用フラグ、ON」が記憶される。これは条件ID「CN02」が適用する条件として選択されていることを示す。条件ID「CN02」の条件は、クライアント10を使用せず離席して業務を遂行することも多いものの、クライアント10の操作をしなければ退出できないような業務形態の組織に適用できる。
【0056】
また、図7中たとえば、「条件ID、CN03」に対応付けて「時間帯、勤務時間」、「処理、操作情報なしが5回連続→最初の操作情報なしを終業時間として算出」が記憶される。これは、条件ID「CN03」で特定される条件が適用される場合、勤務時間として指定されている時間内は、操作情報なしが5回連続した場合、最初の操作情報なしの時点を終業時間として算出部202が処理を実行することを示す。条件ID「CN03」の条件は、条件ID「CN01」の条件と同様、基本的にクライアント10を使用しなければ業務ができないような業務形態の組織に適用できる。さらに、条件ID「CN03」の条件は、判定システム1の運用者が勤務時間内と勤務時間外とで異なる条件を適用したい場合に適用できる。
【0057】
また、図7中たとえば、「条件ID、CN04」に対応付けて「時間帯、12:00~13:00」、「処理、勤務時間判定から除外」が記憶される。これは、条件ID「CN04」で特定される条件が適用される場合、12時から13時までの間は第1の実施形態における判定処理を実行しないことを示す。たとえば、12時から13時が休憩時間とされているような勤務体系の場合に、条件ID「CN04」の条件を適用すればよい。
【0058】
算出部202は、条件記憶部212に記憶される適用対象条件を参照し、操作情報記憶部211に記憶される操作情報に基づき、各ユーザの勤務時間を算出する。
【0059】
なお、多様な勤務条件を許容する組織に判定システム1を適用する場合には、「適用フラグ」に当該条件が適用されるユーザIDを記憶する等してもよい。また、図7に示す条件は一例であって、これ以外の条件を設定することも可能である。
【0060】
(第1の実施形態に係る判定システム1の効果)
このように、第1の実施形態に係る判定システム1は、検知部と、抽出部と、送信部と、算出部と、を備える。検知部は、ユーザが業務に使用する情報処理装置上での操作を検知する。抽出部は、検知部が検知する操作のうち入力部を介した外部からの操作を抽出する。送信部は、抽出部が抽出する外部からの操作を、所定時間ごとに記憶装置に送信する。算出部は、記憶装置に記憶される外部からの操作に基づき、情報処理装置のユーザの勤務時間を算出する。このため判定システム1は、ユーザが実際に情報処理装置において操作を実行した時点を把握し、実際に操作があった時点に基づいて勤務時間を算出することができる。このため、ユーザの勤務時間を正確に把握することができる。
【0061】
また、第1の実施形態に係る判定システム1において、抽出部は、ユーザによるキーボード操作およびマウス操作の少なくとも一方を抽出してもよい。このため、判定システム1は、実際のユーザの操作に基づいて勤務時間を算出することができる。このため、判定システム1は、実際のユーザの勤務態様をより正確に反映した勤務時間を算出することができる。
【0062】
また、第1の実施形態に係る判定システム1において、算出部は、記憶装置(記憶部210)に記憶される前記外部からの操作のうち、1日の中で最後の前記外部からの操作に対応する時点を終業時点として勤務時間を算出してもよい。このため、判定システム1は、ユーザの勤務時間中に会議や外出等のために情報処理装置への入力が長時間なかった場合でも、誤って終業したと判定することを防止することができる。
【0063】
また、第1の実施形態に係る判定システム1において、送信部は、情報処理装置とネットワークを介して通信可能に接続されるサーバへのポーリング時に、当該サーバへ外部からの操作を送信してもよい。このため、判定システム1は、情報処理装置とサーバとの間の通信負荷を過度に増加させることなく勤務時間の正確な判定を可能にすることができる。
【0064】
このように、判定システム1においては、クライアント10において実際にユーザが入力部120を介して実行した操作入力のログを記憶し、当該ログに基づいてユーザの勤務時間を算出する。このため、判定システム1は、ユーザが実際にクライアント10の操作を行った時点を特定して特定した時点に基づき勤務時間を算出することができる。このため、判定システム1は、ユーザの勤務状況を正確に反映する勤務時間を取得することができる。
【0065】
また、判定システム1は、勤務時間の算出において1日の終わりとされる時点に最も近い時点でサーバ20に送信された操作情報に対応する時点を、当該ユーザの終業時間とする。このため、判定システム1は、ユーザが一時的に離席した後戻って業務を続けた場合等に、ユーザが業務を終了したと判定することがない。したがって、ユーザの勤務実態に即した勤務時間の算出を実現することができる。
【0066】
(第2の実施形態)
第1の実施形態に係る判定システム1は、クライアント10におけるユーザの操作を記憶し、記憶した情報に基づき、ユーザの勤務時間を算出した。しかし、ネットワーク30の不具合等によりクライアント10における操作情報がサーバ20に送信できないことも考えられる。
【0067】
そこで、第2の実施形態に係る判定システム1Aは、ポーリング時にクライアント10Aからサーバ20Aへの情報送信に失敗した場合、未送信情報を識別可能に記憶しておき、後にクライアント10Aから再送信する。そして、判定システム1Aは、再送信された操作情報を含む記憶された情報に基づき、ユーザの勤務時間を算出する。
【0068】
(第2の実施形態の判定システム1Aの構成の一例)
図8は、第2の実施形態に係る判定システム1Aの構成の一例について説明するための図である。判定システム1Aの基本的な構成および機能は、第1の実施形態に係る判定システム1の構成および機能と同様である。以下、第1の実施形態と共通する構成および機能については説明を省略する。
【0069】
判定システム1Aは、クライアント10Aと、サーバ20Aとを備える。クライアント10Aとサーバ20Aとはネットワーク30を介して通信可能に接続される。
【0070】
クライアント10Aは、第1の実施形態に係るクライアント10と同様である。ただし、クライアント10Aは、制御部100Aの送信部103Aにおける処理が、第1の実施形態の送信部103と異なる。また、クライアント10Aの制御部100Aは、判定部104Aと再送信部105Aとを有する点が、第1の実施形態のクライアント10と異なる。また、クライアント10Aの記憶部110Aが有する操作情報記憶部111Aに記憶される操作情報の構成が、第1の実施形態の操作情報記憶部111に記憶される操作情報の構成と異なる。他の点では、第2の実施形態に係るクライアント10Aの構成および機能は、第1の実施形態に係るクライアント10の構成および機能と同様である。
【0071】
送信部103Aは、第1の実施形態の送信部103と同様、抽出部102が抽出した操作情報を、通信部140を介して所定のタイミングでサーバ20Aに送信する。ただし、送信部103Aはさらに、操作情報の送信が成功したか否かを検知する。そして、送信部103Aは、送信が失敗したと検知した場合、操作情報記憶部111A内に送信に失敗したことを示す未送信フラグを、送信に失敗した操作情報に対応付けて記憶する。
【0072】
判定部104Aは、クライアント10Aの起動時または所定時間ごとに処理を実行する。判定部104Aは、操作情報記憶部111Aを参照し、未送信フラグが付された操作情報の有無を判定する。判定部104Aは、未送信フラグが付された操作情報があると判定した場合、再送信部105Aに未送信フラグが付された操作情報の再送信を指示する。他方、判定部104Aは、未送信フラグが付された操作情報がないと判定した場合、処理を終了する。
【0073】
再送信部105Aは、判定部104Aの指示に応じて、未送信フラグが付された操作情報を操作情報記憶部111Aから抽出してサーバ20Aに送信する。再送信部105Aは、送信が成功すると、操作情報記憶部111Aの対応する未送信フラグをオフにする。他方再送信部105Aは送信に失敗すると未送信フラグをオンのままとする。
【0074】
操作情報記憶部111Aに記憶される情報の構成は、送信に失敗した操作情報に対応づけて未送信フラグが記憶されるほかは、図6に示した第1の実施形態の操作情報記憶部111に記憶される情報と同様である。図13は、第2の実施形態に係る判定システムにおいて記憶される操作情報の構成の一例を説明するための図である。図13に示すように、操作情報記憶部111Aは、「ポーリングタイミング」、「タイムスタンプ」等の情報に対応付けて、「未送信フラグ」を記憶する。例えば、図13の「ポーリングタイミング、20170802/09:00:00」、「タイムスタンプ、20170801/21:30:00」に対応づけて「未送信フラグ、ON」が記憶される。これは、2017年8月2日の9時のポーリング時に送信された、2017年8月1日の21時30分に検知された操作情報は送信が失敗し未送信状態であることを示す。
【0075】
サーバ20Aの構成および機能も、第1の実施形態に係るサーバ20の構成および機能と同様である。ただし、サーバ20Aにおいては、記憶部210Aの操作情報記憶部211Aに記憶される情報が、ポーリング以外のタイミングで更新される場合がある。操作情報記憶部211Aに記憶される情報の構成は、第1の実施形態の操作情報記憶部211に記憶される情報の構成と同様である。また、制御部200Aのポーリング処理部201Aは、ポーリング以外のタイミングでもクライアント10Aからの操作情報の送信を受け付ける。これら以外の点では、第2の実施形態に係るサーバ20Aの構成および機能は第1の実施形態に係るサーバ20の構成および機能と同様である。
【0076】
(第2の実施形態に係る判定システム1Aにおける処理の流れ)
図9は、第2の実施形態に係る判定システム1Aにおける処理の大まかな流れの一例を示すフローチャートである。クライアント10Aが起動すると(ステップS81)、送信部103Aはクライアント10Aとサーバ20Aとの間のネットワーク30を介した接続が確立されているか否かを判定する(ステップS82)。そして、送信部103Aは接続が確立されていると判定する(ステップS82、Yes)と未送信情報送信処理(ステップS83)に進む。そして判定システム1Aは、未送信情報送信処理(ステップS83)の後、通常処理(ステップS84)に移行する。他方、送信部103Aは接続が確立されていないと判定すると(ステップS82、No)、判定システム1Aは例外処理(ステップS85)に進む。
【0077】
図10は、第2の実施形態に係る判定システム1Aにおける未送信情報送信処理の流れの一例を示すフローチャートである。未送信情報送信処理(図9、ステップS83)は、クライアント10Aの判定部104Aおよび再送信部105Aにおいて実行される。図9のステップS82の後、判定部104Aは、操作情報記憶部111Aを参照して未送信フラグが付された情報があるか否かを判定する(ステップS91)。判定部104Aは、未送信フラグが付された情報がないと判定した場合(ステップS91、No)、処理を終了する。そして、クライアント10Aは通常処理(図9、ステップS84)に移行する。他方、判定部104Aは未送信フラグが付された情報があると判定した場合(ステップS91、Yes)、再送信部105Aに未送信フラグが付された情報の再送信を指示する。再送信部105Aは指示に応じて、未送信フラグが付された情報をサーバ20Aに送信する(ステップS92)。その後、クライアント10Aは通常処理へ移行する。なお、クライアント10Aは、未送信情報送信処理の間も、検知部101および抽出部102による操作情報の検知および抽出を実行する。
【0078】
図11は、第2の実施形態に係る判定システム1Aにおける通常処理の流れの一例を示すフローチャートである。通常処理は、クライアント10Aとサーバ20Aとの間に接続が確立されている場合に実行される。つまり、クライアント10Aからサーバ20Aへの操作情報の送信が可能であると判定された場合に実行される。
【0079】
通常処理が開始すると、クライアント10Aの検知部101は、クライアント10Aにおける操作を検知する(ステップS1001)。そして、抽出部102は検知された操作の中から所定の操作、たとえば、ユーザの入力部120を介した操作入力を抽出する(ステップS1002)。送信部103Aは所定のタイミングになると、抽出部102が抽出した操作情報をサーバ20Aに送信する(ステップS1003)。送信部103Aは、送信が失敗したか否かを判定する(ステップS1004)。送信部103Aは、送信が失敗したと判定した場合(ステップS1004、Yes)、送信に失敗した操作情報と対応付けて未送信フラグを操作情報記憶部111Aに記憶する(ステップS1005)。そして、クライアント10Aは例外処理に移行する。他方、送信部103Aは、送信が成功したと判定した場合(ステップS1004、No)、次にクライアント10Aにおける処理を終了させる処理を検知したか否かを判定する(ステップS1006)。送信部103Aが終了処理を検知していないと判定した場合(ステップS1006、No)、処理はステップS1001に戻る。他方、送信部103Aが終了処理を検知したと判定した場合(ステップS1006、Yes)、クライアント10Aは処理を終了する。
【0080】
図12は、第2の実施形態に係る判定システム1Aにおける例外処理の流れの一例を示すフローチャートである。例外処理は、クライアント10Aとサーバ20Aとの間に接続が確立されていない場合に実行する。つまり、クライアント10Aからサーバ20Aへの操作情報の送信が不可能であると判定された場合に実行する。
【0081】
例外処理が開始すると、クライアント10Aの検知部101はクライアント10Aにおける操作入力を検知する(ステップS1101)。そして、抽出部102は検知された操作入力の中から所定の操作を抽出する(ステップS1102)。そして、抽出された操作情報は、未送信フラグとともに操作情報記憶部111Aに記憶される(ステップS1103)。所定のタイミングになると、送信部103Aは、クライアント10Aとサーバ20Aとの間に接続が確立されているか否かを判定する(ステップS1104)。送信部103Aは接続が確立されていると判定した場合(ステップS1104、Yes)、未送信情報送信処理に進む(ステップS1105)。その後、クライアント10Aは通常処理に移行する。他方、送信部103Aは接続が確立されていないと判定した場合(ステップS1104、No)、次にクライアント10Aの終了処理があったか否かを判定する(ステップS1106)。送信部103Aが終了処理はないと判定した場合(ステップS1106、No)、処理はステップS1101に戻る。他方、送信部103Aが終了処理はあったと判定した場合(ステップS1106、Yes)、処理は終了する。
【0082】
なお、第2の実施形態においては、サーバ20Aに対して未送信の操作情報を識別するための未送信フラグが記憶されるものとした。これに限らず、たとえば、クライアント10Aは操作情報をサーバ20Aに送信すると、送信済みの分だけ操作情報記憶部111Aから消去するものとしてもよい。そして、クライアント10Aとサーバ20Aとの通信確立時に操作情報記憶部111Aに残っている操作情報をクライアント10Aからサーバ20Aに送信するものとしてもよい。たとえば、クライアント10Aでは予め操作情報を暗号化してファイルの形で所定のフォルダに記憶しておく。そして、操作情報の送信タイミングになると、当該フォルダに入っているファイルをクライアント10Aからサーバ20Aに送信する。また、操作情報の送信タイミングについても、常にポーリングのタイミングになると、当該ファイルに残っているファイルの送信を試行するものとし、別途通信接続の状態確認は行わないように判定システム1Aを構成してもよい。判定システム1Aをこのように構成すると、記憶する情報の構成や処理手順を簡素化することができる。
【0083】
(第2の実施形態に係る判定システム1Aの効果)
このように、第2の実施形態に係る判定システム1Aにおいて、送信部103Aは外部からの操作の送信に失敗した場合、送信に失敗した前記外部からの操作を、サーバ20Aと通信可能に接続されたときに再送信する。このため、クライアント10Aのユーザがサーバ20Aとの接続が切断された状態で業務を続行していた場合でも、ユーザによる操作情報をクライアント10A側に記憶しておくことができる。そして、判定システム1Aは、クライアント10Aとサーバ20Aとの接続が回復した場合に、自動的に操作情報をサーバ20Aに送信することができる。このため、ネットワーク30の接続状態に関わらず、クライアント10Aを用いた業務の正確な情報をサーバ20Aに保持することができる。このため、判定システム1Aは、ユーザの正確な業務の状況に基づいて勤務時間および残業時間を算出することができる。
【0084】
(第3の実施形態)
上記第1および第2の実施形態では、クライアント・サーバシステムによって判定システムを構成した。これに対し、クライアントをシンクライアントとして構成することも可能である。シンクライアントシステムとして本発明を実現する例を、第3の実施形態として以下に説明する。
【0085】
図14は、第3の実施形態に係る判定システム1Bについて説明するための図である。判定システム1Bは、図1に示した第1の実施形態に係る判定システム1の構成に類似する。ただし、クライアント10Bはシンクライアントとして構成する。シンクライアントシステムの実装方式は特に限定されない。ただし、第3の実施形態では、サーバ20Bはクライアント10Bに対応するクライアントプログラム11Bの動作確認のため定期的にクライアントプログラム11Bに対してポーリングを行うものとする。
【0086】
図14を参照し、第3の実施形態に係る判定システム1Bの構成の一例について説明する。判定システム1Bが備えるクライアント10Bとサーバ20Bとはネットワーク30Bによって通信可能に接続される。
【0087】
クライアント10Bは、ユーザが業務に使用する情報処理装置である。クライアント10Bの種類は特に限定されない。クライアント10Bは、制御部100B、入力部120B、出力部130B、通信部140Bを有する。
【0088】
制御部100Bは、クライアント10Bの動作および機能を制御する。制御部100Bとしてたとえば、各種の集積回路や電子回路を採用できる。また、制御部100Bに含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ASIC(Application Specific Integrated Circuit)が挙げられる。また、電子回路としては、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などが挙げられる。
【0089】
入力部120Bは、外部からの入力を受け付ける。入力部120Bはたとえば、キーボード、マウス、ジョイスティック、タッチパネル、マイクロフォン等である。
【0090】
出力部130Bは、クライアント10Bから外部へ情報を出力する。出力部130Bはたとえば、ディスプレイ、スピーカ、プリンタ等である。
【0091】
通信部140Bは、ネットワーク30Bを介した外部からサーバ20Bへの情報の入力を実現する。通信部140Bはまた、ネットワーク30Bを介したサーバ20Bからの情報の出力を実現する。通信部140Bはたとえば、スイッチ、モデム、ルータ等を含む。
【0092】
判定システム1Bのクライアント10Bの各部は、図2に示す判定システム1のクライアント10の各部と同様である。ただし、判定システム1Bにおいては、クライアント10Bはシンクライアントとして動作する。すなわち、図2の検知部101、抽出部102、送信部103の各部の機能は、サーバ20Bに設けられるクライアントプログラム11Bが実行する。このため、クライアント10Bの制御部100Bは、クライアントプログラム11Bがサーバ20B上で実行する処理をネットワーク30Bを介して受信し、出力部130B(ディスプレイ等)に表示するための制御を実行する。また、入力部120Bを介して受付けられる入力操作は、通信部140Bを介してサーバ20Bに送信され、サーバ20B上で処理される。
【0093】
サーバ20Bは、任意の情報処理装置である。サーバ20Bの構成や配置場所は特に限定されない。第3の実施形態ではサーバ20Bは、たとえば仮想デスクトップを実現する情報処理装置である。また、サーバ20Bは任意の数のクライアントに対して仮想デスクトップを提供することができる。サーバ20Bは、所定の処理能力と記憶容量を有していれば、クラウドサーバであっても物理サーバであってもよい。
【0094】
サーバ20B上では、クライアントプログラム11Bと、サーバプログラム21Bとが動作する。サーバ20Bは、クライアントプログラム11Bおよびサーバプログラム21Bを動作させるプロセッサ23Bの他、データベース22Bを有する。なお、図14には例として一つのプロセッサ23Bおよびデータベース22Bを示す。実際にはサーバ20B上に複数の仮想マシンが構築され、その一つにおいてサーバプログラム21Bが動作し、他の一つにおいてクライアントプログラム11Bが動作するように構成してもよい。
【0095】
サーバ20B上では、クライアント10Bにおける操作を反映してクライアントプログラム11Bが実行される。クライアントプログラム11Bは、図2の検知部101、抽出部102、送信部103に相当する機能を実現する。また、サーバ20B上では、サーバプログラム21Bが実行される。サーバプログラム21Bは、図2のポーリング処理部201および算出部202に相当する機能を実現する。また、データベース22Bは、図2の記憶部210に記憶される情報に相当する情報を記憶する。
【0096】
(第3の実施形態に係る判定システム1Bにおける処理の流れ)
図3乃至図5を参照しつつ、第3の実施形態に係る判定システム1Bにおける処理の流れの一例について説明する。第3の実施形態は、シンクライアントシステムである点を除いては処理の流れは第1の実施形態の判定システム1と同様である。
【0097】
まず、ユーザは業務開始時にクライアント10Bの電源を投入し、サーバ20Bに搭載されたクライアントプログラム11Bを起動させる(図4のステップS41参照)。ユーザは、業務のための操作をクライアント10Bを用いて実行する。クライアント10Bにおいてユーザが実行する入力部120Bを介した操作の情報は、ネットワーク30Bを介してサーバ20Bに送信される。クライアントプログラム11Bはサーバ20Bにおいてクライアント10Bから受信する操作の情報を用いて、検知部101、抽出部102の処理を実行する(図4のステップS42、S43参照)。さらに、クライアントプログラム11Bは、所定の時間になると、サーバプログラム21Bに対してポーリングを実行する(図4のステップS44、S45参照)。このとき、クライアントプログラム11Bは、クライアント10Bから受信し、クライアントプログラム11Bにおいて抽出した操作情報をサーバプログラム21Bに送信する(図4のステップS45参照)。サーバプログラム21Bは、受信した操作情報をデータベース22Bに記憶する(図5のステップS51、S52参照)。そして、サーバプログラム21Bは、記憶した操作情報に基づきユーザの勤務時間を算出する(ステップS53)。
【0098】
(第3の実施形態に係る判定システム1Bの効果)
このように、第3の実施形態に係る判定システム1Bにおいて、情報処理装置はシンクライアント端末であり、検知部101、抽出部102、送信部103および算出部202による処理は、情報処理装置とは別体のサーバにおいて実行される。このように構成することで、シンクライアントシステムとして構成された判定システムは、クライアント上で実際に実行される操作の情報をサーバ側に記憶することができる。このため、判定システムはユーザの勤務時間を正確に把握し算出することができる。
【0099】
第3の実施形態のように、クライアント10Bをシンクライアントとして構成した場合、クライアント10B自体が電源オフの状態になったとしても、サーバ20B上に搭載されるクライアントプログラム11Bとサーバプログラム21Bとの間で定期的にポーリングが実行される場合がある。ポーリングが実行される場合、クライアントプログラム11Bは停止状態(スリープ状態または電源オフの状態)にならない。このため、クライアントプログラム11Bの状態をクライアント10Bの状態として監視しても、勤務時間を正確に判定することが困難である。しかし、クライアントプログラム11Bがクライアント10Bに対する操作入力を検知、抽出して、サーバプログラム21Bに定期的に送信することで、サーバ20Bはクライアント10Bにおける実際の操作状態を把握することができる。このため、シンクライアントシステムのように、プログラムの稼働状態が必ずしも実際の情報処理装置の操作状態と一致しないシステム形態であっても、勤務時間の正確な把握が可能となる。
【0100】
なお、第3の実施形態においてクライアント10Bをシンクライアントではなく、仮想デスクトップを利用可能なクライアントとして構成する場合には、第2の実施形態のように通信断の間の操作情報を記憶する機能をクライアント側に持たせてもよい。また、この場合には、仮想デスクトップ上での作業がスリープ状態になるかまたは終了されているときのみ、クライアント上での操作情報を取得するように構成してもよい。
【0101】
また上記第1~第3の実施形態においては、判定システムが操作情報を検知し記憶する時間帯は特に限定していない。しかし、これに限らず、判定システムは、予め定められている勤務時間(たとえば9時から17時)以外の時間帯のみ操作情報を記憶するように構成してもよい。すなわち、残業時間の判定のみに判定システムを用いるように構成してもよい。また、たとえば、ユーザが業務遂行中である可能性が低くなった時点で、判定システムによる処理が開始するように構成してもよい。たとえば、クライアントがスリープ状態になったとき、ユーザが他のシステム(出退勤管理システムなど)上で退出した旨を記録したとき等である。このように構成すれば、ユーザが勤務中か否か判定が困難な場面のみ判定システムを用いて綿密な勤務時間の判定を実現することができる。
【0102】
また、各実施形態において、クライアントは1日のうち常に最新の操作情報の実行時刻のみを記憶するものとしてもよい。そして、サーバへは、最新の操作情報の実行時刻のみを送信するようにクライアントを構成してもよい。また、算出部の機能をクライアント側にもたせるように構成し、クライアントからサーバへ終業時刻のみを通知するように構成してもよい。
【0103】
(その他の実施形態)
これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【0104】
(クラウドコンピューティングによる実装)
開示の判定プログラムは、クラウドシステムを構成するサーバに実装し、クラウドシステムを介して、様々な場所に存在する在宅勤務者および社内勤務者の勤務時間および情報処理端末の操作状態を管理するために使用することができる。このようにすれば、広範な地域に散らばる会社施設での勤務者の勤務状態および各在宅勤務者の自宅における勤務状態を一括して管理することができ、効率的な労働管理を実現することができる。
【0105】
(分散および統合)
図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【0106】
(判定プログラム)
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをサーバ等のコンピュータからタブレット端末やノート型コンピュータ等のコンピュータに配布し、サーバとコンピュータとが処理を協働して実行することによって実現することができる。そこで、以下では、図15を用いて、上記の実施形態と同様の機能を有する判定プログラムを実行するコンピュータの一例について説明する。
【0107】
図15は、第1~3の実施形態に係る判定プログラムを実行するコンピュータの一例について説明するための図である。図15に示すように、コンピュータ1000は、操作部1100と、ディスプレイ1200と、通信部1300とを有する。さらに、このコンピュータ1000は、CPU(Central Processing Unit)1400と、ROM(Read Only Memory)1500と、RAM(Random Access Memory)1600と、HDD(Hard Disk Drive)1700とを有する。これら1100~1700の各部はバス1800を介して接続される。
【0108】
HDD1700には、図15に示すように、上記の第1~3の実施形態で示した各部と同様の機能を発揮するモジュールを実装することができる判定プログラム1700aが予め記憶される。この判定プログラム1700aについては、図2および図8に示した各々の各構成要素と同様、適宜統合または分離してもよい。すなわち、HDD1700に記憶される各データは、常に全てのデータがHDD1700に記憶される必要はなく、処理に必要なデータのみがHDD1700に記憶されればよい。
【0109】
そして、CPU1400が、判定プログラム1700aの各モジュールをHDD1700から読み出してRAM1600に展開する。これによって、図15に示すように、判定プログラム1700aは、判定プロセス1600aとして機能する。この判定プロセス1600aは、HDD1700から読み出した各種データを適宜RAM1600上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、判定プロセス1600aは、図2に示した各処理部にて実行される処理を含む。また、CPU1400上で仮想的に実現される各処理部は、常に全ての処理部がCPU1400上で動作する必要はなく、必要な処理部のみが仮想的に実現されればよい。
【0110】
なお、上記の判定プログラム1700aについては、必ずしも最初からHDD1700やROM1500に記憶させておく必要はない。たとえば、コンピュータ1000に挿入されるフレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)などの「可搬用の物理媒体」に各プログラムを記憶させる。または、DVD(Digital Versatile Disc)ディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ1000がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WAN(Wide Area Network)などを介してコンピュータ1000に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておいてもよい。そして、コンピュータ1000がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【0111】
1,1A,1B 判定システム
10,10A,10B クライアント(情報処理装置)
11,11B クライアントプログラム
100,100A,100B 制御部
101,101A 検知部
102,102A 抽出部
103,103A 送信部
104A 判定部
105A 再送信部
110,110A 記憶部
111,111A 操作情報記憶部
120 入力部
130 出力部
140 通信部
20,20A,20B サーバ
21,21B サーバプログラム
22,22B データベース
200,200A 制御部
201,201A ポーリング処理部
202 算出部
210,210A 記憶部
211,211A 操作情報記憶部
212 条件記憶部
220 入力部
230 出力部
240 通信部
30 ネットワーク
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15