【文献】
ITpro EXPO 2009 SPECIAL review,日経コンピュータ no.744,日本,日経BP社,2009年11月25日,第136ページ,【ISSN】0285-4619
【文献】
News Release,Computer Report Vol.49 No.12,日本,株式会社日本経営科学研究所,2009年12月 1日,第49巻,第55ページ,【ISSN】0385-6658
【文献】
News Release,Computer Report Vol.50 No.5,日本,株式会社日本経営科学研究所,2010年 5月 1日,第50巻,第58ページ,【ISSN】0385-6658
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0016】
以下、
図1〜
図18を用いて、本発明の一実施の形態のシステム(作業票記録支援システム)について詳細に説明する。なお実施の形態を説明するための全図において、同一部には原則として同一符号を付し、その繰り返しの説明は省略する。
【0017】
[概要]
本実施の形態のシステムでは、作業者端末(作業用端末)や作業対象サーバなどを含む、関連する各対象システム(コンピュータシステムや装置など)から、エージェントプログラム等を介して出力される、対象システムのログ情報(ログデータともいう)等を収集・取得する第1の処理部と、上記収集したログ情報、及び予め設定(定義)した条件(分析条件)等をもとに、分析処理を行うことにより、対象の作業者の実施した作業内容(各作業の作業時間など)を自動的に測定ないし特定し、分析結果として格納し、作業票(コンピュータで管理される情報)に自動的に記録する第2の処理部と、上記作業票の情報を含む画面(作業票画面)を作成してユーザに対し出力・提供する(閲覧可能とする)第3の処理部とを有する。また本システムは、上記作業票画面の作成後、画面の内容(情報)を作業者(ユーザ)により追記・修正する操作を可能とする機能を有する。これにより例えば組織の業務の把握や改善などに活用することができる。
【0018】
また本形態のシステムは、上記作業票・作業票画面に記録・出力する作業内容(作業ごとの作業時間など)の情報について、作業ごとの作業時間などの情報を時系列に配置する。また作業ごとに時系列上で、当該作業に関連する(構成要素となる)個別の作業(対象システムでの処理・動作などのログ)をグループ単位でまとめ、当該グループ単位の作業での作業時間も計算して表示する。また時系列上、複数の作業内容が同一時間帯で重なっている場合でも、それぞれの作業内容に関して作業時間を算出し出力する。またグループ単位の作業に関して詳細情報を詳細ボタンなどでユーザが選択的に表示可能とする。
【0019】
[システム構成(1)]
図1に、本実施の形態のシステム(作業票記録支援システム)1の全体概要構成を示す。本システム(作業票記録支援システム)1は、メインサーバ100に対して、通信ネットワーク90を介して、複数の対象システム2が接続される構成である。対象システム2として、本例では、作業者端末(PC)200、入退室管理システム300、電話管理システム400、メール管理システム500、予定表システム600、作業対象サーバ・PC700、及び就業管理システム800等を有する。
【0020】
対象システム2は、作業者(作業時間などを記録する人、対象者)の作業に関連するシステムや装置であり、ログ情報(ログデータ)を収集する対象であり、それぞれログ収集エージェント160がインストールされる。ログ収集エージェント160は、自身がインストールされる対象システム2から、作業記録のためのログ情報(ログデータ)を収集し、メインサーバ100(受信部130)へ送信する処理を行うプログラムを含む構成である。ログ情報(ログデータ)は各対象システム2内でログファイル等に記憶される。
【0021】
メインサーバ100は、本システム1の主要構成要素がインストールされるサーバ装置である。メインサーバ100は、作業票画面110、分析エンジン120、受信部130、分析・結果DB140、ログDB150等を有する構成である。メインサーバ100は、プロセッサ、メモリ、通信インタフェース等の公知要素を備えて成り、ソフトウェアプログラム処理により各部を実現する。
【0022】
受信部130は、通信ネットワーク90を介して各対象システム2のログ収集エージェント160からログデータを収集・受信し、ログDB150に格納する処理を行うプログラムを含む構成である。ログDB150は、ログ収集エージェント160から受信部130により受信したログデータを格納・管理するDBである。
【0023】
分析エンジン120は、所定の分析条件に従って、ログDB150のログデータから、分析処理により、作業者の作業内容及び作業時間などの情報を抽出し、作業ごとの作業時間などを計測する処理を行うプログラムを含む構成である。分析エンジン120は、分析結果を、条件・結果DB140に格納する。
【0024】
条件・結果DB140は、分析エンジン120が使用する分析条件、及び分析エンジン120による分析結果などのデータ情報を格納・管理するDBである。条件・結果DB140やログDB150は、メモリやストレージやDBサーバ等で構成される。
【0025】
作業票画面110は、上記ログデータ及び分析結果をもとに、作業票における作業記録の情報や、分析結果の情報など(作業者の作業ごとの作業時間など)を表示する画面であり、グラフィックユーザインタフェース(GUI)の例である。各ユーザは、端末などから本作業票画面110を閲覧可能である。なお作業票画面110は、当該画面を作成・管理するプログラム処理部(言い換えると作業票画面作成処理部)を含む構成とする。なおメインサーバ100は、自身のディスプレイで本画面を表示してもよいし、通信ネットワーク90を介してユーザの端末からの要求に応じて本画面データを作成・送信し、ユーザの端末のディスプレイで本画面を表示させてもよい。
【0026】
作業者端末(PC)200は、作業者が使用するPC等の端末である。作業対象サーバ・PC700は、作業者が作業者端末(PC)200等から通信ネットワーク90を介してアクセスして作業を行う対象となるサーバやPC等の装置である。
【0027】
入退室管理システム300は、建物内におけるユーザ(作業者を含む)の入退室を各扉での認証などにより管理・制御する公知技術によるシステムである。
【0028】
電話管理システム400は、構内でのユーザ(作業者を含む)間の電話の受発信を管理・制御する公知技術によるシステムである。メール管理システム500は、LANにおけるユーザ(作業者を含む)の端末のメールの受発信を管理・制御する公知技術によるシステムである。
【0029】
予定表システム600は、会社などの組織におけるユーザ(作業者を含む)の業務の予定表を記録管理する公知技術によるシステムである。就業管理システム800は、会社などの組織におけるユーザ(作業者を含む)の就業(出勤など)の実績を記録管理する公知技術によるシステムである。
【0030】
後述するが
図1の対象システム2は全て備える必要は無く一部のみでも可能であるし、他の種類のシステム・装置に換えてもよい。
【0031】
[システム構成(2)]
図2に、
図1のシステム(作業票記録支援システム)1の構成例を示す。メインサーバ100は、制御部11(例えばCPU)、記憶部12(例えばRAM等)、通信部13、入力部14、出力部15等を有する構成であり、これらの処理により、作業票画面110、分析エンジン120、受信部130等が実現される。またメインサーバ100に対してユーザ端末3が接続され、ユーザがユーザ端末3(例えばWebブラウザを備えるPC等)からメインサーバ100にアクセスして作業票画面110を閲覧する。
【0032】
対象システム2は、制御部21(例えばCPU)、記憶部22(例えばRAM等)、通信部23、入力部24、出力部25等を有する構成であり、これらの処理により、対象システム2自体の機能と共に、ログ収集エージェント160の処理を実現する。
【0033】
また、後述のデータ情報例を示している。対象システム2は、ログ収集エージェント160により管理されるログファイル161、及びログファイル161に格納されるログデータ162を有する。メインサーバ100は、ログDB150に格納されるログテーブル151(収集されたログデータ162が格納される)、条件・結果DB140に格納される分析条件テーブル141、及び結果テーブル142等を有する。また分析エンジン120により処理・管理されるログ配列121、作業情報配列122、ログマップ123等を有する。
【0034】
更に本システムでは、メインサーバ100で作業票画面110を自動的に作成した後、作業者(作業者端末200等)または他のユーザ(ユーザ端末3等)により、作業票画面110の内容(情報)を追記・修正する機能を有する。これにより、自動処理では不足の分を手動により補い、より精度の高い把握などを可能とする。
【0035】
なお所定のユーザ(管理者等)は、ユーザ端末3等から、メインサーバ100に対して、分析条件などを設定することができる。
【0036】
また図示していないが、作業票画面110で使用する作業票情報及び画面データ等を別途DBに格納・管理してもよい。またメインサーバ100とユーザ端末3を一体化したシステム・装置で構成してもよい。また分析エンジン120や作業票画面110などの処理部を分離した装置で構成して連携する形態などとしてもよい。
【0037】
[作業とログの関係]
図3を用いて、作業とログの関係について具体例で説明する。
図3は、左側から、依頼元(U0)行動、作業者(U1)行動、作業者端末(PC)200、作業対象サーバ700、及び電話管理システム400を示す。縦方向は行動や処理などの流れであり、S0−1等は行動や処理ステップ等を表す。左側2列(U0,U1)は、ある作業者(U1とする)に対して作業を依頼するある依頼元(U0とする)と、当該依頼先の作業者(U1)とのそれぞれの行動を示す。また右側2列は、
図1の作業者端末(PC)200、電話管理システム400、及び作業対象サーバ700の各処理、及び対応する各ログファイル(201,401,701)に出力されるログ情報(ログデータ)等を示す。対応する各ログ収集エージェント160は、ログファイルにログ情報(ログデータ)を出力する。
【0038】
本図で想定している全体的な作業(新規ユーザ登録依頼対応作業)は、ある依頼元U0が、ある作業者U1に対して、所定の作業(個別の依頼の作業)を依頼し、作業者U1がその依頼を受け付けて当該作業を実施し、その結果を依頼元U0に返信するまで、である。依頼元U0は例えば経理担当部署の社員などである。作業者U1は例えばIT部門の社員である。上記所定の作業(個別の依頼の作業)は、例えば会社で使用する所定の情報処理システム「XXXシステム」に対する新規ユーザ登録(追加)の作業である。本図を使用して、本システムで作業者の作業時に出力されるログデータを確認して当該ログデータから個別の作業を特定する流れ・イメージを掴んでもらいたい。
【0039】
(1)まず依頼元U0から作業依頼メールを作業者U1に送信し(S2−1)、作業者U1(作業者端末200)はそのメールを受信する(S1−1)。この依頼の作業は、所定システム「XXXシステム」の新規ユーザ登録の作業である。作業者端末200(U1)では、そのメールを受信(S2−1)すると同時に、当該メール受信のログがログファイル201に出力される(S21−1)。
【0040】
(2)作業者U1は、S1−1に対し、その内容確認のために依頼元U0に電話を発信し(S1−2)、依頼元U0は作業者U1からの電話を受信する(S0−2)。このとき、電話管理システム400では、その電話の受発信(S4−1)が行われているので、そのログがログファイル401に出力される(S41−1)。
【0041】
(3)作業者U1は、依頼された作業のために、作業者端末200から作業対象サーバ700(本例では「XXXシステム」を構成するサーバ)にログインする(S1−3)。その際、作業者PC200では、リモートアクセスツールを起動し(S20−2)、作業対象サーバ700に対するリモートログインの処理を行う(S2−3)。このとき、作業者端末200では、当該リモートアクセスツール起動のログ(S21−2)、及びリモートログインのログ(S21−3)がログファイル201に出力される。また同じタイミングで、作業対象サーバ700において、作業者U1(作業者端末200)がリモートログイン(S2−3)した際のログイン処理(S7−1)のログ(S71−1)がログファイル701に出力される。
【0042】
(4)作業者U1は、依頼された作業、即ち「XXXシステム」の新規ユーザ登録の作業(S1−4)を実施する(例えばID,パスワード等の設定作業)。このとき、作業対象サーバ700では、「XXXシステム」の新規ユーザ登録の処理(S7−2)時のログ(S71−2)がログファイル701に出力される。
【0043】
(5)作業者U1(作業者端末200)は、その後、作業対象サーバ700からログアウト(S1−5)する。このとき対応して、作業者PC200では、リモートアクセスツールを終了し(S2−4)、当該終了のログ(S21−4)がログファイル201に出力される。またこのとき対応して、作業対象サーバ700では、ログアウト処理(S7−3)が実施され、当該ログアウトのログ(S71−3)がログファイル701に出力される。
【0044】
(6)最後に作業者U1は、依頼元U0に対して作業(新規ユーザ登録)が完了した旨のメールを送信する(S1−6)。依頼元U0は作業者U1から作業完了のメールを受信する(S0−3)。このとき、作業者端末200では、当該メール送信(S2−5)のログ(S21−5)がログファイル201に出力される。
【0045】
以上のように各ログファイルに出力されたログデータを、ログ収集エージェント160を通じて収集する。
【0046】
[ログ収集]
図4を用いて、ログ収集に関する処理について説明する。
図4(a)は、ログ収集エージェント160の処理、
図4(b)は、受信部130の処理を示す。
【0047】
図4(a)で、ログ収集エージェント160が対象システム2のログ(ログデータ)を収集する処理を示す。ログ収集エージェント160は、予め対象システム2のログを監視するためのログファイル161(前述)や、収集時刻(例えば一定時間ごと)などの条件が設定されている。
【0048】
(S301) ログ収集エージェント160は、設定された条件に従い、予め決められた時刻(収集時刻)に、予め決められた対象システム2のログファイル161から、条件に合致する対象のログデータのみを抽出し、その全てのログデータを読み込む。
【0049】
(S302) そしてログ収集エージェント160は、S301で読み込んだログデータを、予め決められた変換ルール(条件)に従って変換し、メインサーバ100(受信部130)に送信する。なお変換されたログデータ(収集するログデータ)を162とする。
【0050】
図4(b)で、受信部130が対象システム2のログ収集エージェント160からログデータ162を受信し、ログDB150に格納する処理を示す。
【0051】
(S303) 受信部130は、スリープを繰り返しながら、ログ収集エージェント160からログデータ162が送られてくるのを常時待っている。受信部130は、ログ収集エージェント160から送信されてきたログデー162を受信する。
【0052】
(S304) 受信部130は、受信したログデータ162をログDB150に格納する。
【0053】
[ログテーブル]
図5(a)は、ログDB150の中のログテーブル151の構造例を示す。本ログテーブル151には、上記収集したログデータ162が格納される。本ログテーブル151において、項目として、ログID,ログ取得元,日時,ユーザ,アプリケーション(AP),AP引数,イベントID,イベント詳細情報、等がある。ログIDは、ログテーブル151内での(ログデータ162の)一意の識別子である。ログ取得元は、サーバ名やファイル名など、ログデータ162を取得した場所(対象システム2、ログファイル等)を特定できる情報である。日時は、当該ログが出力された日時(例えば年月日時分秒)である。ユーザは、当該ログ出力元となる操作を実施したユーザアカウント名(即ち対応する作業者を示す)である。アプリケーション(AP)は、当該ログ出力元のアプリケーション名称(OSやミドルウェアやその他のプログラムの場合を含む)である。AP引数は、当該ログ出力元のAPに指定されている引数である。イベントIDは、当該ログ出力内容を特定する識別子などの情報である。イベント詳細情報は、当該ログ出力内容の詳細情報である。
【0054】
図5(b)は、上記ログテーブル151のデータの具体例を示す。
【0055】
[分析条件]
図6(a)は、分析エンジン120が使用する分析条件が格納される分析条件テーブル141の構造例を示す。本分析条件テーブル141は、作業内容ごとに複数の分析条件を持ち、1レコード(対応する分析条件)で1つの種類のログが合致するしないを判定するものである。分析条件(レコード)は、項目として、分析ID,作業ID,作業,順序,属性,上限数,ログ取得元,発現時間条件,テキスト検索,時間計算方法、等を有する構成である。分析IDは、分析条件テーブル141内での一意の識別子である。作業IDは各ログを1つの作業としてグルーピングする際の作業を特定するための識別子であり、作業ごとに一意の識別子である。「作業」は作業IDで示す作業の名称である。順序は、作業IDで示す作業において、最初と最後に出現するログを識別する条件であることを示す値(start,end)である。属性は、必須か任意かを指定する。上限数は、1つの分析条件(作業)に対して関連付けることが可能なログ(ログデータ)の上限数を示す。この上限数を超えて発現するログについては同一作業とはみなされない。ログ取得元は、ログが収集された場所(対象システム2、ログファイル等)を示す。発現時間条件は、1つの作業に関連付けるログ(ログデータ)の発現時間に関する条件を指定する。例えば最初(start)から最後(end)の間である。テキスト検索は、ログテーブル151の各ログデータにおいて、含まれているべき文字列(合致と判断するためのテキスト)を指定する。テキスト検索は、ログテーブル151におけるユーザ,AP,AP引数,イベントID,イベント詳細情報の各項目の該当文字列を含む。時間計算方法は、ログから作業時間を計測する際にログ単一の時間を計測するために、該当ログから次のログまで、あるいは前ログから該当ログまで、のどちらで時間を計測するかを指定する。
【0056】
図6(b)は、分析条件テーブル141のデータの具体例を示す。
【0057】
[分析エンジン−分析処理]
次に
図7,
図8を用いて、分析エンジン120による分析処理のワークフローに関して説明する。
【0058】
(S701)
図7で、分析エンジン120は、最初に、分析条件に合致しないログ情報(ログデータ)を格納するデフォルトのログ配列121を作成する。ログ配列121は後述
図8で示される。
【0059】
(S702) また分析エンジン120は、ログ配列121を格納する作業情報配列122を作成し、S701で作成したデフォルトのログ配列121を当該作業情報配列122に格納する。作業情報配列122は後述
図10で示される。
【0060】
(S703) その後、条件・結果DB140から全ての分析条件を読み終わるまで以下のループ処理を実施する。S704では、分析・結果DB140の分析条件テーブル141から1件の分析条件を読みこむ。
【0061】
(S705) ログDB150から全てのログを読み終わるまで以下のループ処理を実施する。S706では、ログDB150のログテーブル151から1件のログデータを読みこむ。
【0062】
(S707) 分析エンジン120は、S706で読み込んだログデータが、分析条件に合致するか否かを確認する。合致しない場合(N)、S708で、作業情報配列122から作業IDがデフォルトのログ配列データを読み込み、S709で、該当ログをログ配列121に追加する。そしてノードA1につながり、前述のループ(S703以降)を繰り返す。
【0063】
(S710) 上記S707で合致する場合(Y)、次に分析エンジン120はS710で、当該ログについて、合致した分析条件の「順序」がStartであるかチェックする。上記S710でStartである場合(Y)、S711で、対象作業IDで新規にログ配列121を作成し、S712で、合致した分析条件に関連付けられている作業IDで作業情報配列122にログ配列121を格納する。その際、作業情報配列122(
図10)のStart列の値をTRUEにする。S713で当該ログをログ配列121に追加する。そしてノードA1につながり、前述のループ(S703以降)を繰り返す。上記S710でStart以外であった場合(N)、
図8(A2)へ進む。
【0064】
(S720)
図8で、S720で、当該ログについて、分析条件における「順序」がEndであるかをチェックする。上記Endである場合(Y)、S721で、作業情報配列122から、該当ログが合致している分析条件に関連付けられている作業IDと同一作業IDで、かつ、End列がFALSEであるログ配列データを読み込む。なお合致するログ配列が無い場合は対象作業IDでログ配列を作成する。
【0065】
S722で、S721のログ配列に該当ログを追加し、かつ、S723で、作業情報配列122のEnd列の値をTRUEに変更する。当該End列の値をTRUEにすることで、このログ配列に関連付けられるログデータはもうこれ以上無いということを示す(これ以上ログを格納させないため)。
【0066】
(S730) 上記S720でEndではなかった場合(N)、S730で、作業情報配列122から同一作業ID、かつEnd列の値がFALSEのログ配列データを読み込む。次にS731で、当該ログ配列に、同一分析IDを持つログが存在し、その数が分析条件の上限値を超えていないかどうかをチェックする。超えていない場合(Y)、S732で、当該ログ配列121にログを追加する。上記超えている場合(N)、S740で、作業情報配列122から作業IDがデフォルトのログ配列データを読み込み、S741で、当該ログ配列121にログを追加する。そして
図7のノードA1に戻り、前述のループ(S703以降)を繰り返す。
【0067】
[ログ配列]
図9(a)は、上記ログ配列121の構造例を示す。ログ配列121は、ログテーブル151のデータ(ログ情報)及び分析条件テーブル141のデータ(分析条件情報)が格納される。ログ配列121は、項目として、インデックス,作業ID,ログID,分析ID,ログ取得元,日時,ユーザ,アプリケーション(AP),AP引数,イベントID,イベント詳細情報,時間計算方法,順序、等を有する。インデックスは、当該ログ配列121中の位置を示す識別番号である。作業IDは、該当ログが合致した分析条件に関連付けられた分析条件テーブル141の作業IDである。ログIDは、該当ログのログテーブル151のログIDである。分析IDは、該当ログが合致した分析条件に関連付けられた分析条件テーブル141の分析IDである。「ログ取得元」〜「イベント詳細情報」は、該当ログのログテーブル151(前述)の対応する項目の情報である。時間計算方法は、該当ログが合致した分析条件に関連付けられた分析条件テーブル141の「時間計算方法」の値である。「順序」は、該当ログが合致した分析条件に関連付けられた分析条件テーブル141の「順序」の値である。
【0068】
図9(a)は、ログ配列121のデータの具体例を示す。
【0069】
[作業情報配列]
図10(a)は、作業情報配列122の構造例を示す。作業情報配列122は、項目として、インデックス,作業ID,Start,End,合致率,ログ配列データ、等を有する。インデックスは、当該作業情報配列122の中の位置を示す識別番号である。作業IDは、該当ログが合致した分析条件に関連付けられた分析条件テーブル141の作業IDである。「Start」は、作業IDに関連付けられる分析条件に関連付けられる分析条件テーブル141の「順序」列の値がStartであるログがログ配列121に含まれているかを示すフラグ(TRUE/FALSE)である。「End」は、作業IDに関連付けられる分析条件に関連付けられる分析条件テーブル141の「順序」列の値がEndであるログがログ配列121に含まれているかを示すフラグ(TRUE/FALSE)である。合致率は、分析条件テーブル141の属性が必須になっている分析条件全体に対して、ログ配列121内のログデータがどの程度合致しているかその割合を示す。ログ配列データは、ログ配列121そのものが格納されていることを示す。
【0070】
[作業票画面の出力例]
次に
図16は、作業票画面110での画面出力例を示す。なおどのように作業時間を計測してどのように画面出力するかについては後述する。ここでは後述の処理がどのようなアウトプットを目標に処理しているかをイメージしてもらうために先に画面出力例を示している。
【0071】
本画面では、図示のように作業ごと(例:作業ID=1,2,3,なし)にログデータを時系列(縦方向)に表示する。同一作業(作業内容)で連続・関係しているログデータについては1つのグループIDという識別子で識別可能なグループとして表示する。グループごとに時間(作業時間)を計測し表示する。また詳細ボタンをグループごとに一緒に表示するようにし、ユーザが詳細ボタンをクリックすると、ログデータの詳細内容を確認することができる作業情報詳細画面(後述
図16)を表示することができる。
【0072】
作業IDとログの関係は、前述の作業情報配列122及びログ配列121に従う。本画面に表示される作業IDは、作業情報配列122に記載されている作業IDであり、本画面に表示されるログは、作業IDに関連付けられたログ配列データ(121)に格納されているログ情報(ログデータ)である。
【0073】
本画面では、作業内容として作業ごとの作業時間を含む情報を時系列に配置して表示する。各作業の時系列において、当該作業を構成する個別の処理・動作についてグループ単位の作業としてまとめ、当該グループ単位の作業の作業時間を計算して表示する(1001)。時系列の配置において、複数の作業内容が同一時間帯に重なっている場合でも、各作業内容に関して作業時間を算出して出力する。
【0074】
[作業時間計測処理(1)]
次に
図11は、分析エンジン120が実施する、作業票画面110に出力する作業時間を計測する処理を示すワークフローである。
【0075】
(S1101) 分析エンジン120は、前記
図7,
図8の処理で作成された全てのログ配列121に格納されている全ログデータ(ログ情報)を、時系列にソート(並び替え)するためのソート可能なログマップ123(後述
図13)を作成する。このログマップ123は、ログデータの日時をもとに時系列に並び替えることができる、ソート機能付きの配列である。
【0076】
(S1102〜S1105) その後、分析エンジン120は、全てのログデータを読み込むまでのループ処理を開始する。まずS1102からのループ処理では、
図7で作成した作業情報配列122から、全てのログ配列121を読み終わるまでのループ処理を実施する。S1103では作業情報配列122から1件のログ配列121データを読み込む。S1104からのループ処理では、ログ配列121から、全てのログデータを読み終わるまでのループ処理を入れ子で実施する。S1105ではログ配列121から1件のログデータを読み込む。
【0077】
(S1106) 分析エンジン120は、S1105で読み込んだログデータの日時の値を、ログマップ123にキーとして追加(登録)し、同様にログデータの作業ID、ログID、及び分析IDを追加(登録)し、また作業情報配列122の合致率の値も追加(登録)する。以上を全ログ配列121の全ログデータについて繰り返す。この処理が完了すると、ログマップ123において、全ログデータについて、日時,作業ID,ログID,分析ID,合致率が格納されることになる。
【0078】
[ログマップ]
図13は、ログマップ123の構造例を示す。ログマップ123は、ログデータの日時をもとに時系列に並び替えることができるソート機能付きの配列である。ログマップ123は、項目として、日時,作業ID,合致率,ログID,分析ID,フラグ、等を有する。「日時」〜「分析ID」は、キーとなる属性である。日時は、全てのログマップ要素(ログ情報)を、当該日時をもとにソートできるものとする。作業IDは、ログが所属する作業IDである。合致率は、分析条件テーブル141の属性が必須となっている分析条件すべてのうちで合致している割合を示す。ログIDは、ログテーブル151における一意の識別子である(このログIDによりログテーブル151のどのログかを特定できる)。分析IDは、分析・結果テーブル141における一意の識別子である(この分析IDにより、分析・結果テーブル141のどの分析条件に合致したかを特定できる)。フラグは、同一ログIDが複数の作業IDに合致している場合に、合致率の最も高いものは当該フラグがオンにされ、他はオフにされる。画面表示の際は当該フラグがオンのログ情報のみを表示する。デフォルトは空白とし、空白である場合は、当該ログは作業IDには合致していないことを示す。
【0079】
[作業時間計測処理(2)]
(S1107) 続いて
図11のS1107で、分析エンジン120は、まず上記作成したログマップ123(その全要素)を、日時の値を使用して時系列(昇順)にソートする。
【0080】
(S1108) S1108では、ログマップ123からログデータ(全要素)を全て読み込むまで以下のループ処理を開始する。このループ処理では、S1109で、最初に日時をキーにログマップ123要素を読み込む。ノードB1につながり
図12へ続く。
【0081】
(S1200)
図12は、
図11の計測処理の続きを示す。S1200では、分析エンジン120は、S1109で読み込んだログマップ123要素について、同一日時のログマップ123が複数有るかをチェックする。ここで単一の要素のみであった場合(N)、S1201で、分析IDをもとに分析条件テーブル141から時間計測方法の値を読み込み、その方法に従ってログに関連付けられた作業にかかった時間(作業時間)を計測する。例えば時間計測方法の値が「該当ログから次ログまでの時間」と指定されていた場合、ログマップ123から次のログを読み込み、その日時との差異を測定する。
【0082】
(S1202) その後S1202で、条件・結果DB140内の結果テーブル142(後述
図14)から、最後の結果レコードを読み込む。この結果レコードには、作業ID,グループID,グループごとの作業時間と関連付けられたログID,分析ID、等が記録されている。グループIDは、同一作業IDで連続して出力されたログデータで同一のグループIDを使用する。結果テーブル142の1レコードはグループIDごとに記録される。
【0083】
(S1203) 上記S1202で最後のログを読み込むのは、S1203で最後の結果レコードが測定したログマップ123要素に関連付けられたログデータと同一作業IDであるかを確認し、同一作業IDを持つログデータが連続して出力されているかを確認するためである。もしS1203で最後の結果レコードの作業IDが、計測したログデータの作業IDと同一である場合(Y)、S1205で、最後の結果レコードの時間列の値に、計測した時間を足したものを登録する。またその際、ログID及び分析IDを計測したログデータのものをカンマ区切りで追加登録する。もしS1203で最後の結果レコードと計測したログデータの作業IDが異なる場合(N)、S1204で、結果テーブル142に新規に結果レコードを作成・追加し、計測したログデータの作業IDを作業ID列に登録する。また結果テーブル142において計測した作業IDと同一の結果レコードを検索し、最も大きなグループIDの値を確認し、これに1インクリメントした値をグループID列に登録する。また結果テーブル142の時間列は、計測した時間を登録する。またログID及び分析IDの列には、計測したログデータのログID及び分析IDの値を登録する。
【0084】
(S1206)一方、前記S1200で同一日時のログマップ123要素が複数有る場合(Y)、S1206で、分析エンジン120は、その複数のログマップ123要素のうち同一ログIDを持つものがあるかをチェックする。同一ログIDがある場合(Y)、1つのログデータが複数の分析条件に合致しており、このとき作業者が実施していた作業内容の候補が複数有ることを示す。この場合、本実施の形態では、ログマップ123要素の合致率が高いものを優先して時間を計測するようにし、合致率の低いログマップ123要素については時間を計測しない。それを実現するために、S1207では、同一ログIDを持つログマップ123要素の合致率を比較し、値の大きい方(合致率が高い方)についてはログマップ123要素のフラグにオンを指定(設定)する。また値の小さい方についてはログマップ123要素のフラグをオフに指定(設定)する。同一ログIDを持つログマップ123要素が無い場合(N)は、これらの処理(S1207)はスキップされる。
【0085】
(S1208) 次いでS1208からは、同一日時に関連付けられている全ログマップ123要素を1件ずつ読み込むループ処理を実施する。ここから先は、ログマップ123要素が単一である場合(S1201〜S1204)と同様の時間計測及び結果テーブル142への結果情報の登録の処理を実施する。なおS1212では、前述のS1205の処理でログマップ123要素のフラグがオフになっているログマップ123要素が有る場合に、結果レコードに登録する際に、ログIDのみをマイナスの値に変換して登録する。後述の処理で画面(110)にログ情報を出力する際には合致率が最も高いもののみを表示する。その際に結果テーブル142からデータを読み込んで処理を行うが、上記ログIDがマイナスになっているものは合致率が最も高いものではないことが分かり、画面出力をスキップすることができる。
【0086】
[結果テーブル]
図14(a)は、条件・結果DB140に格納される結果テーブル142の構造例を示す。結果テーブル142は、項目として、ID,作業ID,グループID,時間,ログID,分析ID、等を有する。IDは、結果テーブル142(レコード)の一意の識別子である。作業IDは、1レコードに関連付けられる作業IDである。グループIDは、1レコードに関連付けられるグループID(前述の同一作業のグループを示す)である。時間は、グループIDごとに関連付けられたログデータから計測した作業時間の合計である。ログIDは、関連付けられているログIDをカンマ区切りで登録する。分析IDは、関連付けられているログIDが合致した分析IDをカンマ区切りで登録する。
【0087】
[出力処理]
次に
図15は、結果テーブル142(
図14)のデータをもとに作業票画面110(例:
図16の画面)にログ情報及び作業情報(その作業にどれくらいの時間をかけたか)などを出力する処理(画面表示処理)を示すワークフローである。ここでは、作業票画面110(作業票画面作成処理部)は、
図11及び
図12の処理で作成した結果テーブル142(
図14)から全てのログデータ情報、作業時間、及びグループごとの作業時間などを読み込み、それを画面上に出力する処理を実施する。
【0088】
(S1501) 作業票画面110(作業票画面作成処理部)は、まず画面上に作業IDごとに時系列にログ情報を出力するためのログ表示列を作成する。次いでS1502では、結果テーブル142のレコードの数だけのループ処理を開始する。S1503では、結果テーブル142のレコード(結果レコード)を1件読み込む。更にS1504から、結果レコードに登録されているログIDの数だけ入れ子でループ処理を実施する。
【0089】
(S1505) S1505では、結果レコードのログIDの値がマイナスかどうかを確認する。マイナス(Y)であるログIDについては、前述のように合致率が低いことを示すので、S1511では画面出力処理をスキップする(表示しないため特に何もしない)。
【0090】
(S1506) 上記マイナスでない場合(N)は、S1506では、ログIDをもとにログテーブル151(
図5)からレコード(ログデータ)を読み込む。S1507では、ログ表示列(S1501)に、そのレコード(ログデータ)の詳細情報(イベント詳細情報)列の値を出力する。例えば最初の15文字程度を出力する。
【0091】
(S1508)上記で全てのログIDのログデータを画面に出力できたら、S1508では、ログ表示列に出力したログ情報を縦断するような吹き出しや枠などの画面表示要素(GUI部品)を作成する。そして上記作成した吹き出しに対し、S1509で、グループIDと結果テーブル142の時間の値を出力(表示)する。例えば
図16の1001で示す。その後、S1510では、上記吹き出し(1001)の隣に、前述のログの詳細情報を確認するための詳細ボタンを表示する。例えば
図16の1002で示す。
【0092】
[作業情報詳細画面]
図17,
図18は、前述の作業情報詳細画面(ログの詳細情報を確認するための詳細ボタンにより表示されることを想定した画面)の例を、画面に表示するテーブル情報の形で示す。
図17では、
図16の画面例と同様の値を用いて、作業ID及びその作業名、グループID、分析条件の合致率、総時間、開始時間、終了時間の値を表示する。
図18では、ログデータの詳細情報などを表示する。
図18のテーブル例では、左側から、項目として、インデックス,作業ID,ログ取得元,日時,ユーザ,AP,AP引数,イベントID,イベント詳細情報,分析ID,時間計測方法,順序、等を示す。
【0093】
なお本例では記載していないが、合致率が低いため画面に表示されなかった他のログ情報などについても合わせて画面に表示できるようにする。ユーザがそれを画面で選択して表示できるようにする。
【0094】
[効果等]
以上説明したように、本実施の形態のシステムでは、対象システム2から収集するログデータと分析条件などを用いて分析を行う構成により、作業者自身が意図的に作業時間などを記録する場合(従来システム)よりも、より正確・詳細な作業時間などの把握ができるようになる。また例えば作業者がサービス残業などを虚偽報告などにより隠そうとしても、本システムはそれを判断・把握することが可能となる。
【0095】
前記
図2のイメージでは、所定システム「XXXシステム」の新規ユーザ登録(追加)という作業をベースに説明した。これに限らず
図1のシステム構成(対象システム2)に応じて、各種の作業に適用可能である。例えば
図1の入退室管理システム300のように、各オフィスへの入室と退室をカードキー等により制限することを目的とした入退室管理システムなどを導入している場合、本システムによれば、オフィスへの入室・退室のログデータをもとに、入室から退室までの時間帯に作業者によるログがどこのログデータからも検出されず、かつ時間が15分未満であった場合はトイレ休憩とみなす、といった判断も可能である。また同じく入退室管理システム300で会議室への入室・退室のログデータが取れる場合、全作業者の予定が記録・管理される
図1の予定表システム600等が存在する場合は、この予定表システム600の会議予定データ等と合わせて、その時間帯は会議をしていたといった判断も可能である。
【0096】
また本システムによれば、作業者(従業員)の出勤・退勤を記録・管理する
図1の就業管理システム800がある場合、就業管理システム800から作業者(従業員)が出勤・退勤した時刻を判断することができる。また、作業者端末(PC)200、メール管理システム500、入退室管理システム300、電話管理システム400等から、作業者に紐付くログデータが出勤〜退勤以外で出力されている場合、サービス残業などを判断することができる。
【0097】
本システムは、特に、データセンタなど、多数のオペレータを抱えるITサービスプロバイダ、及びコールセンタが事業の大半を占めるような事業を実施している企業などにおいて、オペレータあるいはコールスタッフなどの定型作業を実施するスタッフの業務管理において有効に利用可能である。本システムを利用して、各スタッフがどの作業にどれだけの時間をかけたかという情報を精度高く提供することにより、経営者や管理者などは、要員の過不足を把握し、要員を削減あるいは追加し、生産性向上のための設備投資など、事業改善の判断をより的確に実施することができる。
【0098】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。