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

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

▶ キヤノンマーケティングジャパン株式会社の特許一覧 ▶ キヤノンITソリューションズ株式会社の特許一覧

<>
  • 特開-情報処理装置、制御方法、プログラム 図1
  • 特開-情報処理装置、制御方法、プログラム 図2
  • 特開-情報処理装置、制御方法、プログラム 図3
  • 特開-情報処理装置、制御方法、プログラム 図4
  • 特開-情報処理装置、制御方法、プログラム 図5
  • 特開-情報処理装置、制御方法、プログラム 図6
  • 特開-情報処理装置、制御方法、プログラム 図7
  • 特開-情報処理装置、制御方法、プログラム 図8
  • 特開-情報処理装置、制御方法、プログラム 図9
  • 特開-情報処理装置、制御方法、プログラム 図10
  • 特開-情報処理装置、制御方法、プログラム 図11
  • 特開-情報処理装置、制御方法、プログラム 図12
  • 特開-情報処理装置、制御方法、プログラム 図13
  • 特開-情報処理装置、制御方法、プログラム 図14
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022096718
(43)【公開日】2022-06-30
(54)【発明の名称】情報処理装置、制御方法、プログラム
(51)【国際特許分類】
   G06F 11/34 20060101AFI20220623BHJP
【FI】
G06F11/34 176
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2020209834
(22)【出願日】2020-12-18
(71)【出願人】
【識別番号】390002761
【氏名又は名称】キヤノンマーケティングジャパン株式会社
(71)【出願人】
【識別番号】592135203
【氏名又は名称】キヤノンITソリューションズ株式会社
(74)【代理人】
【識別番号】100189751
【弁理士】
【氏名又は名称】木村 友輔
(72)【発明者】
【氏名】大崎 敦司
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042MA08
5B042MA11
5B042MA14
5B042MC35
5B042MC40
(57)【要約】
【課題】本発明では、イベントを記録したログデータから認識される状態の発生状況の正当性を判断できる仕組みを提供することを目的とする。
【解決手段】本発明は、イベントごとの発生日時を含むイベント情報を記録したログデータを取得する情報処理装置であって、前記ログデータから認識される所定の状態が満たすべき条件を記憶する記憶手段と、前記ログデータから、所定の状態の開始および終了に係るイベント情報に基づいて認識される当該状態の発生期間を特定する状態特定手段と、前記認識された状態に係る前記条件と、前記特定された前記状態の期間とに基づいて、前記条件に係る状況を識別可能に出力する出力制御手段とを備えることを特徴とする。
【選択図】図1
【特許請求の範囲】
【請求項1】
イベントごとの発生日時を含むイベント情報を記録したログデータを取得する情報処理装置であって、
前記ログデータから認識される所定の状態が満たすべき条件を記憶する記憶手段と、
前記ログデータから、所定の状態の開始および終了に係るイベント情報に基づいて認識される当該状態の発生期間を特定する状態特定手段と、
前記認識された状態に係る前記条件と、前記特定された前記状態の期間とに基づいて、前記条件に係る状況を識別可能に出力する出力制御手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記条件は、異なる前記状態の間の時間的包含関係に基づいて設定されることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記条件は、異なる前記状態の間の時間的関係に基づいて設定されることを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記条件は、前記状態の頻度に基づいて設定されることを特徴とする請求項1~3のいずれか1項に記載の情報処理装置。
【請求項5】
異なる状態が時間的に重複して認識されることを特徴とする請求項1~4のいずれか1項に記載の情報処理装置。
【請求項6】
前記イベント情報は、所定の発生パターンに従ってグループ化されることを特徴とする請求項1~5のいずれか1項に記載の情報処理装置。
【請求項7】
イベントごとの発生日時を含むイベント情報を記録したログデータを取得し、前記ログデータから認識される所定の状態が満たすべき条件を記憶する記憶手段を有する情報処理装置の制御方法であって、
状態特定手段が、前記ログデータから、所定の状態の開始および終了に係るイベント情報に基づいて認識される当該状態の発生期間を特定する状態特定ステップと、
出力制御手段が、前記認識された状態に係る前記条件と、前記特定された前記状態の期間とに基づいて、前記条件に係る状況を識別可能に出力する出力制御ステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項8】
イベントごとの発生日時を含むイベント情報を記録したログデータを取得する情報処理装置であって、
前記ログデータから認識される所定の状態が満たすべき条件を記憶する記憶手段と、
前記ログデータから、所定の状態の開始および終了に係るイベント情報に基づいて認識される当該状態の発生期間を特定する状態特定手段と、
前記認識された状態に係る前記条件と、前記特定された前記状態の期間とに基づいて、前記条件に係る状況を識別可能に出力する出力制御手段と
を備えることを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、イベントを記録したログデータを解析する技術に関する。
【背景技術】
【0002】
近年、IoT機器から様々なイベントを収集できるようになってきたため、収集されたイベントログを分析することで運用に生かすことが望まれている。イベントを収集できるIoT機器が増えたため、イベントログは大量に集まるようになってきた。
【0003】
大量のイベントログを人手で分析するには非常にコストがかかるようになってきたため、イベントログの分析を自動化することが望まれている。
【0004】
特許文献1には、ログデータのシーケンスを数値化して類似する部分シーケンスを検出する技術が記載されている。
【0005】
特許文献2には、ログデータから検出キーに基づいてリソースに関連するパラメータを抽出する技術が記載されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2011-138422号公報
【特許文献2】特許2017-84270号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1のシステムでは、特定のログの出現順を「行動パターン」として定義し、ログシーケンスから1種類の行動パターンをロバストに検出する方法であるため、ログシーケンスを入力とすると、検出結果は、行動パターンのシーケンスとなる。すなわち、行動パターンが、どのような順序で実施されたかが分かるのみである。
【0008】
特許文献2のシステムでは、処理イベントをグループ化する処理方法を持つが、グループは1階層であるため、入れ子になるグループは実現できない。
【0009】
実際の装置の点検作業などでは、「装置Xを止めている間に、装置Yと装置Zを再起動する」ような、依存関係(包含関係)が存在する。さらに、「装置Yと装置Zの再起動順は考慮しない」ような条件がある場合、行動パターンのシーケンスだけでは判断できない。
【0010】
本発明では、イベントを記録したログデータから認識される状態の発生状況の正当性を判断できる仕組みを提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明は、イベントごとの発生日時を含むイベント情報を記録したログデータを取得する情報処理装置であって、前記ログデータから認識される所定の状態が満たすべき条件を記憶する記憶手段と、前記ログデータから、所定の状態の開始および終了に係るイベント情報に基づいて認識される当該状態の発生期間を特定する状態特定手段と、前記認識された状態に係る前記条件と、前記特定された前記状態の期間とに基づいて、前記条件に係る状況を識別可能に出力する出力制御手段とを備えることを特徴とする。
【発明の効果】
【0012】
本発明によれば、イベントを記録したログデータから認識される状態の発生状況の正当性を判断できる仕組みを提供できるようになる。
【図面の簡単な説明】
【0013】
図1】本発明の実施形態のログ解析装置の構成を示したブロック図
図2】ログデータの一例を示すテキストデータ
図3】検出対象パターン105の一例を示すデータ構成図
図4】入れ子状態定義106の一例を示すデータ構成図
図5】入れ子状態制約定義107の一例を示すデータ構成図
図6】処理イベント管理テーブル109の一例を示すデータ構成図
図7】行動パターン管理テーブル110の一例を示すデータ構成図
図8】入れ子状態管理テーブル111の一例を示すデータ構成図
図9】違反項目管理テーブル112の一例を示すデータ構成図
図10】ログ解析装置101の処理方法の手順を示したフローチャート
図11】入れ子状態検出部116の処理方法の手順を示したフローチャート
図12】入れ子状態検証部117の処理方法の手順を示したフローチャート
図13】S1208の処理の手順を示したフローチャート
図14】ログ解析装置に適用可能なハードウェア構成図
【発明を実施するための形態】
【0014】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
【0015】
図14に、本実施形態のログ解析装置101に適用可能なハードウェア構成の一例を示す。
【0016】
図14に示すように、ログ解析装置101は、システムバス204を介してCPU(Central Processing Unit)201、RAM(Random Access Memory)203、ROM(Read Only Memory)202、入力コントローラ205、ビデオコントローラ206、メモリコントローラ207、通信I/Fコントローラ208等が接続された構成を採る。
【0017】
CPU201は、システムバス204に接続される各デバイスやコントローラを統括的に制御する。
【0018】
また、ROM202あるいは外部メモリ211には、CPU201の制御プログラムであるBIOS(Basic Input/Output System)やOS(Operating System)や、各サーバあるいは各PCが実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。また、本発明を実施するために必要な情報が記憶されている。なお外部メモリはデータベースであってもよい。
【0019】
RAM203は、CPU201の主メモリ、ワークエリア等として機能する。CPU201は、処理の実行に際して必要なプログラム等をROM202あるいは外部メモリ211からRAM203にロードし、ロードしたプログラムを実行することで各種動作を実現する。
【0020】
また、入力コントローラ205は、キーボード(KB)209や不図示のマウス等のポインティングデバイス等からの入力を制御する。
【0021】
ビデオコントローラ206は、ディスプレイ210等の表示器への表示を制御する。尚、表示器は液晶ディスプレイ等の表示器でもよい。これらは、必要に応じて管理者が使用する。
【0022】
メモリコントローラ207は、ブートプログラム、各種のアプリケーション、フォントデータ、ユーザファイル、編集ファイル、各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、あるいは、PCMCIA(Personal Computer Memory Card International Association)カードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ211へのアクセスを制御する。
【0023】
通信I/Fコントローラ208は、ネットワークを介して外部機器と接続・通信し、ネットワークでの通信制御処理を実行する。例えば、TCP/IP(Transmission Control Protocol/Internet Protocol)を用いた通信等が可能である。
【0024】
尚、CPU201は、例えばRAM203内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、ディスプレイ210上に表示することが可能である。また、CPU201は、ディスプレイ210上のマウスカーソル(図示しない)等によるユーザ指示を可能とする。
【0025】
本発明を実現するための後述する各種プログラムは、外部メモリ211に記録されており、必要に応じてRAM203にロードされることによりCPU201によって実行されるものである。
【0026】
図1は、本実施形態のログ解析装置の構成を示したブロック図である。図1に示すように、ログ解析装置101は、定義部103と、記憶部108と、ログデータ取得部113と、処理イベント抽出部114と、行動パターン検出部115と、入れ子状態検出部116と、入れ子状態検証部117とを備えて構成される。これらの機能は、コンピュータに所定のプログラムを実行させることによって具現化することが出来る。
【0027】
図2にログデータ102の一例を示す。IoT機器から発せられるログデータは、通常規格化されているため、TSV(Tab Separated Values)のようなテキスト形式になっていることが多い。ログデータ102では、1行に、発生日時、イベント種別、機器IDの情報が記録されている。
【0028】
定義部103は、処理を実行する前に定義しておく設定情報である。定義部103には、ログデータのフォーマットに合わせた分析方法が定義されているログフォーマット104と、検出したい行動パターンが定義されている検出対象パターン105と、検出したい入れ子状態が定義されている入れ子状態定義106と、入れ子状態間の制約が定義されている入れ子状態制約定義107とを事前に定義しておく。
【0029】
記憶部108は、各部で解析した結果を記憶する。記憶部108には、処理イベント管理テーブル109と、行動パターン管理テーブル110と、入れ子状態管理テーブル111と、違反項目管理テーブル112とを記憶する。
【0030】
ログデータ取得部113は、例えば、IoT機器から時系列に発せられるログデータ102の入力を受け付け、それを取得する。ログデータ102は、例えば、ネットワークに接続されたIoT機器などからリアルタイムに取得しても良いし、記録媒体などに記録されたデータファイルからまとめて取得するようにしても良い。
【0031】
処理イベント抽出部114は、公知の方法(特許文献2など)にて、ログデータ102の中から、ログフォーマット104に従って、処理イベントを抽出し、処理イベント管理テーブル109に記録する。
【0032】
図6は、処理イベント管理テーブル109の構成を示したものである。処理イベント管理テーブル109は、処理イベント抽出部114によって抽出された各処理イベントをテーブル形式で構造化し、行単位で管理するものである。処理イベント管理テーブル109は、各処理イベントに関する情報として、発生日時601、処理イベント種別602、対象603を有する。
【0033】
発生日時601は、処理イベント抽出部114によって抽出された各処理イベントの発生日時の情報である。処理イベント種別602は、各処理イベントの処理イベント種名である。対象603は、処理イベントが発行された装置(IoT機器など)を識別する識別子である。
【0034】
行動パターン検出部115は、公知の方法(特許文献1など)にて、処理イベント管理テーブル109の中から、検出対象パターン105に従って、行動パターンを検出し、行動パターン管理テーブル110に記録する。
【0035】
図3は、検出対象パターン105の構成を示したものである。検出対象パターン105は、行動パターンを検出するためにイベント種別のシーケンスを定義したものである。検出対象パターン105は、各検出パターンに関する情報として、行動パターン名301、処理イベント種別302、順番303を有する。
【0036】
行動パターン名301は、行動パターンに付与する一意な名前である。処理イベント種別302は、行動パターンを構成するイベント種別である。順番303は、処理イベント種別302の出現順を規定する。311、312、313の3行で、処理イベントが、接続盤_遮断、発電機監視操作盤操作続盤_OFF、現場盤操作_ONの順に出現することを、行動パターン「発電機_停止」と定義している。
【0037】
図7は、行動パターン管理テーブル110の構成を示したものである。行動パターン管理テーブル110は、行動パターン検出部115によって検出された行動パターンをテーブル形式で構造化し、行単位で管理するものである。行動パターン管理テーブル110は、各行動パターンに関する情報として、区分701、開始日時702、終了日時703、種別704、対象705を有する。
【0038】
区分701は、行動パターンか処理イベントかを区別する。開始日時702は、行動パターンの最初の処理イベントの発生日時を指す。終了日時703は、行動パターンの最後の処理イベントの発生日時を指す。区分701が処理イベントの場合、開始日時702、終了日時703共に、処理イベントの発生日時を指す。種別704は、区分701が行動パターン(本実施例ではA)の時は行動パターン名、区分701が処理イベント(本実施例ではE)の時は、処理イベント種別を指す。対象705は、処理イベント管理テーブル109の対象603と同じ値を指す。
【0039】
入れ子状態検出部116は、行動パターン管理テーブル110の中から、入れ子状態定義106に従って、入れ子状態を検出し、入れ子状態管理テーブル111に記録する。検出時に違反が見つかった場合、違反の内容を違反項目管理テーブル112に記録する。
【0040】
図4は、入れ子状態定義106の構成を示したものである。入れ子状態定義106は、入れ子状態を検出するために、特定の行動パターン(開始パターン)から特定の行動パターン(終了パターン)までを一つの状態として定義する。入れ子状態定義106は、状態を定義する情報として、状態名401、開始パターン402、終了パターン403、親状態404を有する。
【0041】
状態名401は、状態の一意な名称である。開始パターン402は、状態を開始させる行動パターン(または処理イベント)を指定する。終了パターン403は、状態を終了させる行動パターン(または処理イベント)を指定する。親状態404は、自身が他の状態の子の関係にある場合に、親の状態名を指定する。
【0042】
例えば、411は、発電機が停止してから、発電機が起動するまでを、「発電機_停止」状態として定義している。412は、冷却運転がONになってから、OFFになるまでを「冷却運転中_ON」状態として定義している。さらに、「冷却運転中_ON」は、「発電機_停止」状態で実施する必要がある。したがって、「冷却運転中_ON」は、「発電機_停止」の子として定義するため、412の親状態404に、「発電機_停止」を指定している。
【0043】
図8は、入れ子状態管理テーブル111の構成を示したものである。入れ子状態管理テーブル111は、入れ子状態検出部116によって検出された入れ子状態をテーブル形式で構造化し、行単位で管理するものである。入れ子状態管理テーブル111は、各入れ子状態に関する情報として、ID801、状態名802、対象803、開始日時804、終了日時805、親ID806を有する。
【0044】
ID801は、入れ子状態を識別する一意なIDである。状態名802は、入れ子状態定義106の状態名401を指す。対象803は、行動パターン管理テーブル110の対象705を指す。開始日時804は、行動パターン管理テーブル110の開始日時702を指す。終了日時805は、行動パターン管理テーブル110の終了日時703を指す。親ID806は、自身の親状態のID801を指す。
【0045】
入れ子状態検証部117は、入れ子状態管理テーブル111の中で、入れ子状態制約定義107に合致しているか検証する。制約に違反している入れ子状態があれば、違反項目管理テーブル112に記録する。
【0046】
図5は、入れ子状態制約定義107の構成を示したものである。入れ子状態制約定義107は、ある親状態の子供(兄弟)間の制約を定義する。入れ子状態制約定義107は、制約を定義する情報として、ID501、制約区分502、親状態503、状態A504、状態B505を有する。
【0047】
ID501は、制約定義に付与された一意なIDである。制約区分502は、制約の種別を表す。制約の種別には、先行関係、追従関係、完全先行関係、単独出現などがある。親状態503は、制約を定義したい兄弟状態の親状態を指定する。状態A504と状態B505は、親状態503で指定した状態の子状態を指定する。状態A504と状態B505は、制約区分502によって役割が変わる。
【0048】
例えば、511は、制約区分502が追従関係なので、状態A504が状態B505より先に開始し、かつ、状態B505が終了する前に状態A504が終了している必要がある。制約区分502が先行関係の場合は、状態A504が状態B505より先に開始する必要があり、制約区分が502が完全先行関係の場合は、状態A504が終了してから状態B505が開始する必要がある。制約区分502が単独出現の場合は、状態A504が複数出現すると違反となる。制約の種別は、親子関係や状態間の関係に応じて追加してもよい。
【0049】
図9は、違反項目管理テーブル112の構成を示したものである。違反項目管理テーブル112、入れ子状態検証部117によって検出された違反項目をテーブル形式で構造化し、行単位で管理するものである。違反項目管理テーブル112は、各違反項目に関する情報として、制約ID901、親ID902、状態AID903、状態BID904を有する。
【0050】
制約ID901は、違反のあった入れ子状態制約定義107のID501を指す。親ID902は、違反のあった親状態を表し、入れ子状態管理テーブル111のID801を指す。状態AID903と状態BID904は、入れ子状態制約定義107の状態A504と状態B505に対応する入れ子状態を表し、入れ子状態管理テーブル111のID801を指す。
【0051】
図10は、本実施形態のログ解析装置によって実行される入れ子状態検出方法の手順を示したフローチャートである。まずはじめに、ログデータ取得部113は、ログデータを取得する(ステップS1001)。
【0052】
取得したログデータの一例を図2に示す。ログデータ102は、IoT機器から送られてきたログを想定している。IoT機器には、例えば、発電機、給水ポンプ、照明などが有る。
【0053】
次に、処理イベント抽出部114は、公知の方法(特許文献2など)にて、取得したログデータから、ログフォーマット104にしたがって、処理イベントを抽出し、処理イベント管理テーブル109に記録する(ステップS1002)。S1002では、必要な処理イベントだけ絞り込むことも出来る。
【0054】
抽出した処理イベントの一例を図6に示す。図6では、発電機関連の処理イベントに絞り込んで抽出している。
【0055】
次に、行動パターン検出部115は、公知の方法(特許文献1など)にて、処理イベント管理テーブル109の中から、検出対象パターン105に従って、行動パターンを検出し、行動パターン管理テーブル110に記録する(ステップS1003)。行動パターンとして検出しなかった処理イベントも、行動パターン管理テーブル110に記録する。
【0056】
検出した行動パターンの一例を図7に示す。図7は、図3の検出対象パターンにしたがって、図6の処理イベントから行動パターンを検出した結果である。検出対象パターンの311、312、313に対応する処理イベントの611、612、613から行動パターンの711として検出する。
【0057】
次に、入れ子状態検出部116は、行動パターン管理テーブル110の中から、入れ子状態定義106に従って、入れ子状態を検出し、入れ子状態管理テーブル111に記録する(ステップS1004)。S1004は、S1101を呼び出している。S1101は、再帰処理となっているため、引数を持つ。最初の呼び出しには、引数には何も指定しないため、Noneを指定する。処理方法の詳細は、後に図11を用いて説明する。
【0058】
次に、入れ子状態検証部117は、入れ子状態管理テーブル111の中で、入れ子状態制約定義107に合致しているか検証する(ステップS1005)。制約に違反している入れ子状態があれば、違反項目管理テーブル112に記録する。S1005は、S1201を呼び出している。処理方法の詳細は、後に図12を用いて説明する。
【0059】
図11は、入れ子状態検出部116の検出方法の手順を示したフローチャートである。本フローチャートは再帰処理であるため、呼び出し時に引数が必要である。引数「親状態」には、「None」または、入れ子状態管理テーブル111のレコードを渡す。
【0060】
S1101では、引数「親状態」を受け取って処理を開始する。S1004から呼ばれるときには、引数「親状態」には「None」が渡される。
【0061】
S1102では、入れ子状態定義106からレコードを検索する。抽出したレコードの配列を「defs」に代入する。
【0062】
引数「親状態」が「None」の場合、親状態404が空のレコードを抽出する。図4の例では、レコード411を抽出する。
【0063】
引数「親状態」が「None」でない場合、親状態404が「親状態」の状態名802に一致するレコードを抽出する。図4の例では、引数「親状態」にレコード811が入っている場合、状態名802が「発電機_停止」なので、レコード412、413、414を抽出する。
【0064】
S1103では、配列「defs」の各要素を「d」に代入し、全ての要素「d」に対してS1115までの処理を実行する。
【0065】
例えば、「defs」にレコード412、413、414が入っている場合、各レコードに対して、S1115までの処理を実行するため、合計3回ループする事になる。
【0066】
S1104では、引数「親状態」が「None」であるか判断する。「YES」の場合は、S1105に進む。「NO」の場合は、S1106に進む。
【0067】
S1105では、引数「親状態」が「None」であるので、行動パターン管理テーブル110の検索対象の期間を全区間とする。すなわち、「開始日時」に「1900/01/01 00:00:00」を代入し、「終了日時」に「9999/12/31 23:59:59」を代入する。さらに、入れ子状態管理テーブル111にレコードを作成するとき、親ID806を「0」にするために、「parent」に「0」を代入する。
【0068】
S1106では、引数「親状態」が「None」でないので、行動パターン管理テーブル110の検索対象の期間を親状態の開始日時804から終了日時805とする。すなわち、「開始日時」に親状態の開始日時804を代入し、「終了日時」に親状態の終了日時805を代入する。さらに、入れ子状態管理テーブル111にレコードを作成するとき、親状態を親とするため、「parent」に親状態のID801を代入する。
【0069】
S1107では、開始パターンを見つけるために、行動パターン管理テーブル110からレコードを検索する。「開始日時」から「終了日時」の間で、「d」の開始パターン402と種別704が一致するレコードを全て抽出し、「starts」に代入する。
【0070】
例えば、「d」にレコード412が代入されている時、「親状態」はレコード811が代入されている。レコード412の開始パターン402は「冷却運転中_ON」なので、行動パターン管理テーブル110の種別704が一致するレコードは712となる。したがって、「starts」にはレコード712が1件代入される。
【0071】
S1108では、配列「starts」の各要素を「s」に代入し、全ての要素「s」に対してS1114までの処理を実行する。
【0072】
S1109では、終了パターンを見つけるために、行動パターン管理テーブル110からレコードを検索する。「s」の開始日時702から「終了日時」の間で、「d」の終了パターン403と種別704が一致し、かつ、「s」の対象705と対象705が一致する直近のレコードを抽出し、「end」に代入する。一致するレコードが見つからない場合、「end」には、「None」が代入される。
【0073】
例えば、「s」にレコード712が代入されている時、「d」はレコード412が代入されている。レコード412の終了パターン403は「冷却運転中_OFF」なので、行動パターン管理テーブル110の種別704が一致するレコードは714となる。さらに、レコード712とレコード714の対象705はどちらも「2号発電機」で一致している。したがって、「end」にはレコード714が代入される。
【0074】
S1110では、「end」が「None」であるか判断する。「YES」の場合、S1113に進む。「NO」の場合、S1111に進む。
【0075】
S1111では、終了パターンが見つかったので、入れ子状態を作成し、入れ子状態管理テーブル111に登録する。以下の情報を指定してレコードを作成する。ID801は、自動採番で一意な整数を割り当てる。状態名802は、「d」の状態名401を指定する。対象803は、「s」の対象705を指定する。開始日時804は、「s」の開始日時702を指定する。終了日時805は、「e」の終了日時703を指定する。親ID806は、「parent」を指定する。
【0076】
例えば、「s」にレコード712、「d」はレコード412、「end」にレコード714が代入されているとき、レコード812のように登録される。
【0077】
作成したレコードを「state」に代入する。
【0078】
S1112では、「state」の子状態を作成するために、図11のフローチャートを再帰的に呼び出す。引数「親状態」に「state」を渡すことで、再帰的に子供を作成することが出来る。
【0079】
S1113では、終了パターンが見つからなかったので、違反項目を作成し、違反項目管理テーブル112に登録する。以下の情報を指定してレコードを作成する。制約ID901は、未終了を表す「0」を指定する。親ID902は、「s」の親ID806を指定する。状態AID903は、「s」のID801を指定する。状態BID904は、「None」を指定する。
【0080】
図12は、入れ子状態検証部117の検証方法の手順を示したフローチャートである。
【0081】
S1202では、入れ子状態制約定義107のすべてのレコードから、親状態503のすべての値を抽出し、重複を取り除いたものを「names」に代入する。
【0082】
例えば、図5では、「names」に、「発電機_停止」、「冷却機_停止」の2要素配列が代入される。
【0083】
S1203では、配列「names」の各要素を「n」に代入し、全ての要素「n」に対してS1212までの処理を実行する。
【0084】
S1204では、入れ子状態制約定義107から親状態503が「n」と一致するレコードを抽出し、「rules」に代入する。
【0085】
例えば、「n」が「発電機_停止」の時、「rules」には、レコード511、512、513が入った配列が代入される。
【0086】
S1205では、入れ子状態管理テーブル111から状態名802が「n」と一致するレコードを抽出し、「parents」に代入する。
【0087】
例えば、「n」が「発電機_停止」の時、「parents」には、レコード811が入った配列が代入される。
【0088】
S1206では、配列「parents」の各要素を「p」に代入し、全ての要素「p」に対してS1210までの処理を実行する。
【0089】
S1207では、配列「rules」の各要素を「r」に代入し、全ての要素「r」に対してS1209までの処理を実行する。
【0090】
S1208では、引数として、「r」、「p」を渡して、S1301を呼び出す。処理の詳細は、図13で説明する。
【0091】
図13は、S1208の処理の手順を示したフローチャートである。
【0092】
S1301では、S1208から渡された引数を「rule」、「parent」に受け取る。
【0093】
S1302では、入れ子状態管理テーブル111から、親ID806が「parent」のID801に一致するレコードを抽出し、「children」に代入する。
【0094】
例えば、「rule」にレコード511、「parent」にレコード811が入っている場合、「children」には、レコード812、813、814、815の入った配列が代入される。
【0095】
S1303では、「children」のレコードの中から、状態名802が「rule」の状態A504に一致するレコードを抽出し、「状態A」に代入する。さらに、「children」のレコードの中から、状態名802が「rule」の状態B505に一致するレコードを抽出し、「状態B」に代入する。
【0096】
例えば、「rule」にレコード511、「parent」にレコード811、「children」に、レコード812、813、814、815の入った配列が代入されている場合、「状態A」には、レコード813、814の入った配列が代入され、「状態B」には、レコード815の入った配列が代入される。
【0097】
S1304では、「valid」に「False」を代入する。
【0098】
S1305では、「rule」の制約区分502の値で分岐する。「追従関係」の場合は、S1306に進む。「先行関係」の場合は、S1307に進む。「完全先行関係」の場合は、S1308に進む。「単独出現」の場合は、S1309に進む。「その他」の場合は、S1311に進む。
【0099】
S1306では、「状態A」と「状態B」が追従関係にあるか判断する。追従関係であるとは、「状態A」の全ての開始日時804が、「状態B」の全ての開始日時804より前であること、かつ、「状態A」の全ての終了日時805が、「状態B」の全ての終了日時805より前である場合に「YES」となる。「YES」の場合は、S1310に進む。「NO」の場合は、S1311に進む。
【0100】
S1307では、「状態A」と「状態B」が先行関係にあるか判断する。先行関係であるとは、「状態A」の全ての開始日時804が、「状態B」の全ての開始日時804より前である場合に「YES」となる。「YES」の場合は、S1310に進む。「NO」の場合は、S1311に進む。
【0101】
S1308では、「状態A」と「状態B」が完全先行関係にあるか判断する。完全先行関係であるとは、「状態A」の全ての終了日時805が、「状態B」の全ての開始日時804より前である場合に「YES」となる。「YES」の場合は、S1310に進む。「NO」の場合は、S1311に進む。
【0102】
S1309では、「状態A」が単独出現にあるか判断する。単独出現であるとは、「状態A」の要素数が1ある場合に「YES」となる。「YES」の場合は、S1310に進む。「NO」の場合は、S1311に進む。
【0103】
S1310では、「valid」に「True」を代入する。
【0104】
S1311では、「valid」が「True」か判断する。「True」の場合、S1313に進む。「False」の場合、S1312に進む。
【0105】
S1312では、違反項目管理テーブル112にレコードを追加する。制約ID901には、「rule」のID501を指定する。親ID902には、「parent」のID801を指定する。状態AID903には、「状態A」の先頭のID801を指定する。状態BID904には、「状態B」の先頭のID801を指定する。
【0106】
以上、いくつかの実施形態について示したが、本発明は、例えば、システム、装置、方法、コンピュータプログラムもしくは記録媒体等としての実施態様をとることが可能であり、具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0107】
また、本発明におけるコンピュータプログラムは、図10~13に示すフローチャートの処理方法をコンピュータが実行可能なコンピュータプログラムであり、本発明の記憶媒体は図10~13の処理方法をコンピュータが実行可能なコンピュータプログラムが記憶されている。なお、本発明におけるコンピュータプログラムは図10~13の各装置の処理方法ごとのコンピュータプログラムであってもよい。
【0108】
以上のように、前述した実施形態の機能を実現するコンピュータプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたコンピュータプログラムを読出し実行することによっても、本発明の目的が達成されることは言うまでもない。
【0109】
この場合、記録媒体から読み出されたコンピュータプログラム自体が本発明の新規な機能を実現することになり、そのコンピュータプログラムを記憶した記録媒体は本発明を構成することになる。
【0110】
コンピュータプログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD-ROM、CD-R、DVD-ROM、磁気テープ、不揮発性のメモリカード、ROM、シリコンディスク、ソリッドステートドライブ等を用いることができる。
【0111】
また、コンピュータが読み出したコンピュータプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのコンピュータプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0112】
さらに、記録媒体から読み出されたコンピュータプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのコンピュータプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0113】
また、本発明は、複数の機器から構成されるシステムに適用しても、1つの機器からなる装置に適用してもよい。また、本発明は、システムあるいは装置にコンピュータプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのコンピュータプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0114】
さらに、本発明を達成するためのコンピュータプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
【0115】
なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【0116】
101 ログ解析装置
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14