(57)【要約】【課題】本発明は、イベント駆動型のプログラムにおいて、従来のイベントテーブルの記述における簡易さを維持したまま、より複雑な処理の記述を可能にするための技術を提供することを目的とする。【解決手段】本発明は、イベント駆動型プログラム実行装置であって、所定の状態変化に係るイベントの発生を監視する手段と、発生したイベントをイベント系列として順次蓄積する手段と、１以上のイベントからなるイベントパターンとそのイベントパターンに合致するイベント系列が発生したときに実行させる処理とを対応付けたイベントテーブルに基づいて、上記蓄積されたイベント系列が上記いずれかのイベントパターンに合致するか否かを比較する手段と、上記イベントパターンに合致するイベント系列があった場合に、当該イベントパターンに対応する処理を実行する手段とを備える。【選択図】  図１
2005018341.tif 000002
【特許請求の範囲】
【請求項１】
所定の状態変化に係るイベントの発生を監視する手段と、
発生したイベントをイベント系列として順次蓄積する手段と、
１以上のイベントからなるイベントパターンとそのイベントパターンに合致するイベント系列が発生したときに実行させる処理とを対応付けたイベントテーブルに基づいて、前記蓄積されたイベント系列が前記いずれかのイベントパターンに合致するか否かを比較する手段と、
前記イベントパターンに合致するイベント系列があった場合に、当該イベントパターンに対応する処理を実行する手段と、
を備えるイベント駆動型プログラム実行装置。
【請求項２】
前記イベントの発生時刻を前記イベントに関連付けて記録する手段と、
前記イベントパターンに合致するイベント系列の発生時刻に基づく経過時間と前記イベントパターンに対する制限時間とを比較する手段と、
前記イベント系列による経過時間が前記制限時間を超える場合に、当該イベントパターンに対応する処理を実行対象から排除する手段と、
を備える請求項１に記載のイベント駆動型プログラム実行装置。
【請求項３】
前記イベントの発生時刻を前記イベントに関連付けて記録する手段と、
発生から所定時間経過したイベントを前記蓄積したイベント系列から削除する手段と、
を備える請求項１に記載のイベント駆動型プログラム実行装置。
【請求項４】
前記イベントパターンは、複数イベントの組み合わせ、複数イベントが逐次連続した順列、複数イベントの順列に他の不特定イベントが挿入された非連続な順列、または特定イベントの未発生を示す情報の少なくとも１つを含む請求項１から請求項３のいずれかに記載のイベント駆動型プログラム実行装置。
【請求項５】
請求項１から請求項４のいずれかに記載のイベント駆動型プログラム実行装置を備え、人の動作をイベントとして監視することを特徴とするセキュリティシステム。
【請求項６】
コンピュータに、
所定の状態変化に係るイベントの発生を監視するステップと、
発生したイベントをイベント系列として順次蓄積するステップと、
１以上のイベントからなるイベントパターンとそのイベントパターンに合致するイベント系列が発生したときに実行させる処理とを対応付けたイベントテーブルに基づいて、前記蓄積されたイベント系列が前記いずれかのイベントパターンに合致するか否かを比較するステップと、
前記イベントパターンに合致するイベント系列があった場合に、当該イベントパターンに対応する処理を実行するステップと、
を実行させるコンピュータ実行可能なイベント駆動型プログラム。
【請求項７】
コンピュータに、
前記イベントの発生時刻を前記イベントに関連付けて記録するステップと、
前記イベントパターンに合致するイベント系列の発生時刻に基づく経過時間と前記イベントパターンに対する制限時間とを比較するステップと、
前記イベント系列による経過時間が前記制限時間を超える場合に、当該イベントパターンに対応する処理を実行対象から排除するステップと、
を実行させる請求項６に記載のコンピュータ実行可能なイベント駆動型プログラム。
【請求項８】
コンピュータに、
前記イベントの発生時刻を前記イベントに関連付けて記録するステップと、
発生から所定時間経過したイベントを前記蓄積したイベント系列から削除するステップと、
を実行させる請求項６に記載のコンピュータ実行可能なイベント駆動型プログラム。
【請求項９】
コンピュータに、複数イベントの組み合わせ、複数イベントが逐次連続した順列、複数イベントの順列に他の不特定イベントが挿入された非連続な順列、または特定イベントの未発生を示す情報の少なくとも１つを含むイベントパターンに係る処理を実行させる請求項６から請求項８のいずれかに記載のコンピュータ実行可能なイベント駆動型プログラム。
【請求項１０】
コンピュータに、請求項６から請求項９のいずれかに記載のイベント駆動型プログラムを実行させ、人の動作をイベントとして監視することを特徴とするセキュリティシステム用プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、イベント駆動型プログラムを実行する技術に関する。さらに詳しくは、１個以上のイベント系列をトリガとして、そのイベント系列に関連付けられたプログラムを実行するイベント駆動型プログラムを実行する技術に関する。
【０００２】
【従来の技術】
従来、イベント駆動型プログラムの実行方法には、次に説明するような方法がある。第一に、イベントテーブルにトリガとなるイベントと、そのイベント発生時に実行する処理をイベントテーブルに記述し、イベントテーブルの記述に従ってプログラムを実行する方法がある。ここでいうイベントテーブルの一例を図７に示す。図７では、例えば、イベントＥ１が発生した場合に処理Ｐ１を実行するように記述されている。第二に、システムの状態毎にトリガとなるイベントと、そのイベント発生時に実行する処理と処理完了後に遷移する状態との組み合わせを状態遷移表に記述し、状態遷移表の記述に従ってプログラムを実行する方法がある。ここでいう状態遷移表の一例を図８に示す。図８では、例えば、状態１でイベントＥ１が発生した場合に処理Ｐ１を実行して状態２に遷移するように記述されている。
【０００３】
以上のような、従来のプログラム実行方法では、イベントテーブルまたは状態遷移表などに単一のイベントをトリガとする簡易的な記述をしておき、記述されている単一のイベントをトリガとしてプログラムを実行させていた。
【０００４】
その他、イベント処理に係る技術として、特許文献１及び特許文献２に開示された技術がある。
【０００５】
【特許文献１】
特開平８−２７２７２７号公報
【特許文献２】
特開平８−１１５１０７号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、上述のような従来のプログラム実行方法では、単一のイベントしかトリガとして記述できないため、複雑な処理を記述することが困難であるという問題があった。このため、イベント駆動型のプログラムにおいて、複数のイベントに跨る複雑な処理を実行することが困難であった。
【０００７】
本発明は、以上のような問題を解決し、イベント駆動型のプログラムにおいて、従来のイベントテーブルの記述における簡易さを維持したまま、より複雑な処理の記述を可能にするための技術を提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記問題を解決するため、本発明は以下のような構成をとる。即ち、本発明は、イベント駆動型プログラム実行装置であって、所定の状態変化に係るイベントの発生を監視する手段と、発生したイベントをイベント系列として順次蓄積する手段と、１以上のイベントからなるイベントパターンとそのイベントパターンに合致するイベント系列が発生したときに実行させる処理とを対応付けたイベントテーブルに基づいて、上記蓄積されたイベント系列が上記いずれかのイベントパターンに合致するか否かを比較する手段と、上記イベントパターンに合致するイベント系列があった場合に、当該イベントパターンに対応する処理を実行する手段とを備える。
【０００９】
好ましくは、上記イベント駆動型プログラム実行装置は、上記イベントの発生時刻を上記イベントに関連付けて記録する手段と、上記イベントパターンに合致するイベント系列の発生時刻に基づく経過時間と上記イベントパターンに対する制限時間とを比較する手段と、上記イベント系列による経過時間が上記制限時間を超える場合に、当該イベントパターンに対応する処理を実行対象から排除する手段とを備えるように構成してもよい。
【００１０】
好ましくは、上記イベント駆動型プログラム実行装置は、上記イベントの発生時刻を上記イベントに関連付けて記録する手段と、発生から所定時間経過したイベントを上記蓄積したイベント系列から削除する手段とを備えるように構成してもよい。
【００１１】
好ましくは、上記イベントパターンは、複数イベントの組み合わせ、複数イベントが逐次連続した順列、複数イベントの順列に他の不特定イベントが挿入された非連続な順列、または特定イベントの未発生を示す情報の少なくとも１つを含んでいてもよい。
【００１２】
本発明によれば、所定の状態変化に係るイベントの発生を監視し、発生したイベントをイベント系列として順次蓄積し、１以上のイベントからなるイベントパターンとそのイベントパターンに合致するイベント系列が発生したときに実行させる処理とを対応付けたイベントテーブルに基づいて、上記蓄積されたイベント系列が上記いずれかのイベントパターンに合致するか否かを比較し、上記イベントパターンに合致するイベント系列があった場合に、そのイベントパターンに対応する処理を実行している。そのため、本発明によれば、複数のイベントの組み合わせに応じて、適切な処理を実行することができる。
【００１３】
また、本発明は、上記のイベント駆動型プログラム実行装置を備えるセキュリティシステムであって、人の動作をイベントとして監視することを特徴とする。これにより、人の動作に基づくイベントパターンをトリガとして、セキュリティシステムに係る処理を実行させることが可能となる。従って、例えば、本発明をホームセキュリティシステムに適用した場合には、住人しか知りえない動作によるイベントパターンをトリガとして警戒を解除するというような処理を実行させることが可能となる。
【００１４】
以上のように、本発明によれば、イベントテーブルの記述における簡易さを維持したまま、より複雑な処理を記述することができる。従って、イベント駆動型のプログラムにおいて、複数の動作を伴うイベントパターンをトリガとする複雑な処理を実行させることが可能となる。
【００１５】
また、本発明は、コンピュータその他の装置、機械等が上記いずれかの処理を実行する方法であってもよい。また、本発明は、コンピュータその他の装置、機械等が上記いずれかの機能を実現させるプログラムであってもよい。また、本発明は、そのようなプログラムをコンピュータ等が読み取り可能な記録媒体に記録したものでもよい。
【００１６】
【発明の実施の形態】
以下、図面を用いて本発明の実施形態について説明する。なお、本実施形態の説明は例示であり、本発明の構成は以下の説明に限定されない。
【００１７】
《実施形態》
本実施形態では、イベント駆動型プログラムをホームセキュリティシステムに適用した場合を想定する。
【００１８】
〈ハードウエア構成〉
図１は、本実施形態のシステムにおけるハードウエア構成を示す図である。コントローラ１は、ＣＰＵ２、メモリ３、二次記憶４、通信部５、及びＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）６を有する。
【００１９】
ＣＰＵ２は、メモリ３、二次記憶４、通信部５、及びＩ／Ｏ６にそれぞれ接続されており、メモリ３に格納されたプログラムを実行して装置全体を制御する。メモリ３は、プログラムや一時的なデータを記憶する。このメモリ３は、例えば、ＲＯＭまたはＲＡＭ等で構成される。二次記憶４は、プログラムが使用するファイル等を記憶する。この二次記憶４は、例えば、ハードディスク、フラッシュＲＯＭ等で構成される。通信部５は、インターネットと接続されており、インターネットを介してメール等を送受信する。Ｉ／Ｏ６は、コントローラ１に接続される各種センサやスイッチ等との入出力を行う。
【００２０】
Ｉ／Ｏ６に接続される各種センサやスイッチは、例えば、マグネットセンサ７、赤外線センサ８、照度センサ９、電気錠１０、インターホン１１、リモコン受信部１２、及び警戒解除ボタン１３等である。マグネットセンサ７は、窓や扉の開閉を検知するセンサである。このマグネットセンサ７は、窓や扉の開閉部に磁石を設置しておくことで、窓や扉の開閉動作により磁石に電流が流れるか否かを検知する。赤外線センサ８は、人の在／不在を検知するセンサである。照度センサ９は、照明機器のオン・オフを検知するセンサである。この照度センサ９は、照明機器が備わる部屋に設置しておき、部屋の明るさまたは暗さを検知する。電気錠１０は、電気的に開錠／施錠が行え、また、開錠／施錠が検知可能な錠である。インターホン１１は、来訪者を住人に知らせる機器である。リモコン受信部１２は、赤外線リモコンの受信部である。警戒解除ボタン１３は、ホームセキュリティの警戒解除を行うボタンである。
【００２１】
〈ソフトウエア構成〉
図２は、本実施形態におけるソフトウエア構成を示す図である。本実施形態におけるソフトウエアは、イベント生成部２０、イベントキュー２１、イベント削除部２２、イベントマネージャ２３、イベントハンドラ２４、及びイベントテーブル２５により機能する。このうち、イベント生成部２０は、例えば、センサ等からの入力信号を監視する制御プログラムである。
【００２２】
イベント生成部２０は、センサ入力等のイベントを監視し、イベントに係る情報を生成し、イベントキュー２１に記録（登録）する。即ち、イベント生成部２０は、図１に示したＩ／Ｏ６に入力される各種センサ入力、例えば、マグネットセンサ７による窓の開閉、赤外線センサ８による人の検知、照度センサ９からの報知、電気錠１０の開閉、インターホン１１の動作、リモコン入力等を受信し、対応するイベントに係る情報を記録する。各イベントは、イベントＩＤによりその種類が識別される。以下、イベントに係る情報を単にイベントともいう。
【００２３】
イベントキュー２１は、イベント生成部２０が生成したイベントに係る情報を蓄積する。例えば、イベントキュー２１には、イベントＩＤ、イベント発生時刻、及びイベント詳細情報をイベント毎に蓄積する。このうち、イベント詳細情報とは、イベントに関連する情報であり、例えば、イベント発生箇所や固有情報（例えば、照度）である。
【００２４】
イベント削除部２２は、イベントキュー２１に蓄積されてから一定時間（イベント生存時間）経過したイベントをイベントキュー２１から削除する。
【００２５】
イベントマネージャ２３は、イベントキュー２１に蓄積されているイベントの列とイベントテーブル２５に登録されているイベントパターンを比較し、一致した場合にはそのイベントテーブル２５のエントリに登録されているイベントハンドラ２４を実行する。
【００２６】
イベントハンドラ２４は、イベント発生をトリガとして、そのイベントに対応した処理を行うプログラムである。
【００２７】
図２において、まず、イベント生成部２０は、生成したイベントをイベントキュー２１に登録する（１）。そして、イベントマネージャ２３は、イベントキュー２１内のイベント列とイベントテーブル２５のイベントパターンを比較する（２）。比較した結果パターンが一致している場合には、イベントマネージャ２３は、イベントテーブル２５のエントリに登録されているイベントハンドラを実行する（３）。
【００２８】
〈イベントテーブル〉
図３は、イベントテーブル２５のデータ構造を示す図である。このイベントテーブル２５には、イベントマネージャ２３で監視する複数のイベントパターンと、そのイベントパターンをトリガとして実行する処理（イベントハンドラ２４）を記述する。以下、図３に示されるイベントテーブル２５の各項目について、詳細に説明する。
【００２９】
イベントパターンには、イベントマネージャ２３で監視するイベントのパターンを記述する。ここで、イベントマネージャ２３に監視させるイベントパターンは、次の規則に従って記述する。第一に、単一のイベントの発生を監視させるには、イベントのイベントＩＤを記述する。第二に、複数イベントのうち何れかのイベントの発生を監視させるには、“［］”内に“｜”で区切ってイベントＩＤを記述する。第三に、連続する複数イベントの発生順を監視させるには、“−”で区切ってイベントＩＤを記述する。第四に、連続していない複数イベントの発生順を監視させるには、“−−”で区切ってイベントＩＤを記述する。第五に、連続する複数イベントの発生（順不同）を監視させるには、“＆”で区切ってイベントＩＤを記述する。第六に、連続していない複数イベントの発生（順不同）を監視させるには、“＆＆”で区切ってイベントＩＤを記述する。第七に、イベントの未発生を監視させるには、イベントＩＤの前に“！”を記述する。
【００３０】
スコープには、イベントパターンの先頭イベントが発生してから終端イベントが発生するまでの時間制限を記述する。本実施形態では、イベントパターンと一致し、且つ先頭イベントから終端イベントまでの実際の経過時間がイベントテーブル２５のスコープに指定された時間以下の場合にイベントハンドラ２４が実行される。
【００３１】
処理には、イベントパターン欄、及びスコープ欄に記述された条件を満たすイベントが発生した時に実行するイベントハンドラ２４を記述する。本システムでは、１つの処理の欄にイベントハンドラ２４を複数記述してもよい。即ち、１つのイベントパターンに対応して複数のイベントハンドラ２４を起動できる。
【００３２】
比較開始位置には、イベントマネージャ２３がイベントキュー２１に蓄積されている何番目のイベントから、イベントパターンとの比較を行うかということを示す数値を記述する。イベントキュー２１において、比較開始位置より前のイベントは検査済みであることが示される。
【００３３】
以上のように、イベントハンドラ２４（処理）は、図３に示されるイベントテーブル２５の記述に従って実行される。例えば、Ｔ１秒以内にＥ１→Ｅ２の順でイベントが連続して発生した場合には、処理Ｐ１が実行される（図３の※１）。また、Ｔ２秒以内にＥ３、Ｅ４、Ｅ５のいずれかのイベントが発生した後にイベントＥ６が発生した場合には、処理Ｐ２、Ｐ３等が実行される（図３の※２）。また、Ｔ３秒以内にＥ７、Ｅ８、Ｅ９の順でイベントが発生（連続していなくても可）した場合には、処理Ｐ４、Ｐ５、及びＰ６等が実行される（図３の※３）。また、Ｔ４秒以内にイベントＥ１０、Ｅ１１が連続して発生（順不同）した場合には、処理Ｐ７、Ｐ８等が実行される（図３の※４）。また、Ｔ５秒以内にイベントＥ１２、Ｅ１３が発生（連続していなくても可、順不同）した場合には、処理Ｐ９、Ｐ１０等が実行される（図３の※５）。また、イベントＥ１４が発生した後に、Ｔ６秒以内にイベントＥ１５が発生しない場合には、処理Ｐ１１、Ｐ１２等が実行される（図３の※６）。
【００３４】
以上から、本実施形態によれば、イベントテーブルに、複数のイベントからなるイベントパターンとそのイベントパターンの発生に時間制限を設けて処理を実行させるというような複雑な記述をすることができる。
【００３５】
〈イベントテーブルの具体例〉
次に、図３に示されるイベントテーブル２５をホームセキュリティコントローラに適用した場合におけるデータ構造の一例を説明する。図４は、ホームセキュリティコントローラにおけるイベントテーブル２５のデータ構造例を示す。このうち、図４の１〜４行目に示されているイベントパターンは、住人の帰宅時に行う自然な動作をトリガとして、ホームセキュリティの警戒を解除／開始するための記述である。一方、図４の５〜７行目に示されているイベントパターンは、住人であれば行わない不自然な動作をトリガとして、住人や警備会社に警報メールを送信するための記述である。
【００３６】
図４に示される例では、例えば、玄関が開錠されテレビまたはエアコンのスイッチをオンするというイベントパターンが発生した場合には、住人が帰宅したものと判断して、警戒を解除するという処理が実行される（図４の１行目）。また、玄関が開錠され洗面所の照明をオンして、その後リビングへ入室するというイベントパターンが発生した場合には、住人が帰宅して手を洗い、リビングに移動したものと判断して、警戒を解除するという処理が実行される（図４の２行目）。また、玄関が開錠され台所の照明をオンして、その後冷蔵庫の扉を開けるというイベントパターンが発生した場合には、住人が買い物から帰宅したものと判断して、警戒を解除するという処理が実行される（図４の３行目）。また、テレビとエアコンのスイッチがオフされ、リビングが無人になるというイベントパターンが発生した場合には、住人が外出したものと判断して、警戒を開始する処理が実行される（図４の４行目）。また、インターホンが鳴らされてから玄関が開錠するというイベントパターンが発生した場合には、泥棒がインターホンで留守を確認してから侵入したと判断して、警報メールを送信する処理が実行される（図４の５行目）。また、窓が開いた後、リビングで赤外線センサオン（人が検知される）というイベントパターンが発生した場合には、泥棒の侵入と判断して警報メールを送信する処理が実行される（図４の６行目）。また、リビングに人がいるが室内が暗いまま（照明オンのイベントが発生しない）というイベントパターンが発生した場合には、泥棒が物色中であると判断して警報メールを送信する処理が実行される（図４の７行目）。
【００３７】
以上のように、本実施形態によれば、複数のイベントからなるイベントパターンをトリガとして実行される処理を簡単にイベントテーブルに記述することができる。従って、このようなイベントテーブルをホームセキュリティコントローラに適用した場合には、例えば、本人しか知らないような複数の動作を伴うイベントパターンをトリガとして警戒を解除させるというような複雑な記述に基づいた処理を実行させることが可能となる。
【００３８】
〈処理フロー〉
《イベント生成処理》
次に、イベント生成時における処理について説明する。図５は、イベント生成処理を示すフローチャートである。この処理は、イベント生成部２０がセンサ入力の監視に基づいてイベントに係る情報を生成した場合にイベントマネージャ２３により実行される。
【００３９】
まず、イベント生成部２０は、イベントキュー２１の末尾に生成したイベントを追加する（Ｓ１）。ここで、イベントテーブル２５が空であるか否かが判断される（Ｓ２）。イベントテーブル２５が空である場合には、そのまま処理を終了する。即ち、イベントテーブル２５に何も設定されていない場合には、何も処理が行われない。一方、イベントテーブル２５が空でない場合には、検査対象エントリをイベントテーブル２５の先頭エントリに設定する（Ｓ３）。
【００４０】
続いて、イベントマネージャ２３は、イベントテーブル２５に設定された検査対象エントリのイベントパターンとイベントキュー２１に蓄積されているイベント列とを比較する（Ｓ４）。ここで、比較はイベントテーブル２５に設定されている比較開始位置から行われる。
【００４１】
続いて、イベントマネージャ２３は、イベントパターンと一致するパターンがイベントキュー２１に存在するか否かを判断する（Ｓ５）。即ち、イベントテーブル２５に設定された検査対象エントリのイベントパターンがイベントキュー２１に存在するか否かが判断される。ここで、一致するイベントパターンが存在する場合には、イベントマネージャ２３は、パターンが一致する部分の先頭イベント発生から終端イベント発生までの経過時間とスコープに登録されている時間（以下、スコープ時間と表記する）とを比較する（Ｓ６）。
【００４２】
続いて、イベントマネージャ２３は、パターンが一致する部分の先頭イベント発生から終端イベント発生までの経過時間がスコープ時間と同じ、あるいはそれ以下であるか否かを判断する（Ｓ７）。ここで、経過時間がスコープ時間と同じ、あるいはそれ以下である場合には、イベントマネージャ２３は、イベントハンドラ２４を実行する（Ｓ８）。即ち、経過時間がイベントテーブル２５に設定されているスコープ時間に達していない場合にイベントハンドラ２４が実行される。
【００４３】
イベントハンドラ２４を実行した後、イベントマネージャ２３は、比較開始位置をイベントキュー２１の未検査部分の先頭に更新する（Ｓ９）。このようにして、イベントキュー２１中の未検査部分がなくなるまで、イベントパターンとイベントキュー２１との比較が繰り返し行われる。
【００４４】
また、Ｓ７において、パターンが一致する部分の先頭イベント発生から終端イベント発生までの経過時間がスコープ時間より大きいと判断された場合には、そのままＳ９が実行される。即ち、イベントテーブル２５に記述されているスコープ欄の条件が満たされていないとして、イベントハンドラ２４は実行されずに、検査対象がイベントキュー２１の未検査部分に移される。
【００４５】
また、Ｓ５において、一致するイベントパターンが存在しないと判断された場合には、イベントマネージャ２３は、イベントテーブル２５に未検査のエントリがあるか否かを判断する（Ｓ１０）。ここで、未検査のエントリがある場合には、イベントマネージャ２３は、検査対象エントリをイベントテーブル２５の次のエントリに設定する（Ｓ１１）。一方、未検査のエントリがない場合には、イベントマネージャ２３は、そのまま処理を終了する。
【００４６】
以上のようにして、イベントテーブル２５に登録されている条件（イベントパターンとスコープ時間）を満たしている場合に、イベントハンドラ２４が実行され、イベントテーブル２５内に未検査のエントリがなくなるまで繰り返しイベントキュー２１との比較が行われる。
【００４７】
本実施形態によれば、イベントパターンとそのイベントパターンをトリガとして実行する処理とを対にしてイベントテーブル２５に記述しておき、イベントキュー２１に蓄積されているイベント列とイベントテーブル２５に記述されているイベントパターンとを比較して、パターンが一致した場合に必要な処理を実行することができる。このため、本システムをホームセキュリティシステムに適用した場合には、例えば、本人しか知らないような複数の動作を伴うイベントパターンをトリガとして警戒を解除するような処理を実行することができる。
【００４８】
《イベント削除処理》
次に、イベントキュー２１からイベントを削除する処理について説明する。図６は、イベントキュー２１からイベントを削除する処理を示すフローチャートである。この処理は、イベント削除部２２により周期的に実行され、イベント発生から現在までに規定されているイベント生存時間以上の時間が経過したイベントをイベントキュー２１から削除する。ここでは、イベント削除部２２が１秒毎に処理を実行し、イベント生存時間を１０分と規定した場合を想定する。
【００４９】
まず、イベント削除部２２は、イベントキュー２１が空であるか否かを判断する（Ｓ２１）。即ち、イベント削除部２２は、生成されたイベントがイベントキュー２１に蓄積されているか否かを判断する。ここで、イベントキュー２１が空である場合には、そのまま処理を終了する。一方、イベントキュー２１が空でない場合には、検査対象イベントをイベントキュー２１の先頭イベントに設定する（Ｓ２２）。
【００５０】
続いて、イベント削除部２２は、検査対象イベントが発生してからの経過時間がイベント生存時間と同じ、あるいはそれ以上であるか否かを判断する（Ｓ２３）。経過時間がイベント生存時間と同じ、あるいはそれ以上でない場合には、イベント削除部２２は、そのまま処理を終了する。一方、検査対象イベントが発生してからの経過時間がイベント生存時間と同じ、あるいはそれ以上である場合には、イベント削除部２２は、検査対象イベントをイベントキュー２１から削除する（Ｓ２４）。イベント削除後、イベント削除部２２は、イベントテーブル２５の比較開始位置欄の値を１減算する（Ｓ２５）。
【００５１】
続いて、イベント削除部２２は、イベントキュー２１に未検査のイベントがあるか否かを判断する（Ｓ２６）。イベントキュー２１に未検査のイベントがあると判断された場合には、イベント削除部２２は、検査対象イベントをイベントキュー２１の次のイベントに設定する（Ｓ２７）。以降も同様にして、検査対象イベントが発生してからの経過時間とイベント生存時間との比較が行われ、イベントキュー２１のイベントを削除する処理が実行される。一方、イベントキュー２１に未検査のイベントがないと判断された場合には、そのまま処理を終了する。
【００５２】
このようにして、本実施形態によれば、イベントキュー２１に蓄積されたイベントを周期的に検査して、予め規定したイベント生存時間を基準として古くなったイベントを判断し削除することができる。
【００５３】
以上述べたように、本システムによれば、複数のイベントからなるイベントパターンをトリガとして実行される処理を簡単にイベントテーブルに記述することができる。このため、複数のイベントの組み合わせに応じて、適切な処理を実行することができる。
【００５４】
また、例えば、本システムをホームセキュリティシステムに適用した場合には、従来のイベント駆動型プログラム実行方法によると「警戒解除ボタンが押された場合は、警戒解除処理を行う」といった単純な記述しかできなかったところが、「玄関ドアの電気錠が開錠され、テレビまたはエアコンがオンされた場合は、警戒解除を行う」または「インターホンがオンされ、玄関ドアの電気錠が開錠された場合は、警報メールを送信する」というような複雑な動作を伴う記述を簡単に行うことができる。このように、本システムをホームセキュリティシステムに適用することにより、単純かつ安価なセンサを組み合わせて、住人の日々の自然な動作（住人ごとに異なる）を検知して警戒解除をするような処理、または、逆に住人であれば行わない不自然な動作（住人ごと、犯罪手口の変遷によって異なる）を異常として検知して利用者に警報を発するような処理を容易に行うことが可能となる。さらに、住人しか知りえない動作よる警戒解除は、いわばパスワードの働きをするので、侵入者には容易に解除できないという効果を有する。以上のように、本システムをホームセキュリティシステムに適用することで、上述のような特有の効果を発揮することができる。
【００５５】
【発明の効果】
本発明によれば、複数のイベントからなるイベントパターンをトリガとして実行される処理を簡単にイベントテーブルに記述することができる。従って、本発明のイベントテーブルを用いることにより、複数のイベントに跨る複雑な処理を実行させることも可能となる。
【図面の簡単な説明】
【図１】本実施形態のシステムにおけるハードウエア構成を示す図である。
【図２】本実施形態におけるソフトウエア構成を示す図である。
【図３】イベントテーブル２５のデータ構造を示す図である。
【図４】ホームセキュリティコントローラにおけるイベントテーブル２５のデータ構造例を示す。
【図５】イベント生成処理を示すフローチャートである。
【図６】イベントキュー２１からイベントを削除する処理を示すフローチャートである。
【図７】従来のイベントテーブルの一例を示す。
【図８】従来の状態遷移表の一例を示す。
【符号の説明】
１      コントローラ
２      ＣＰＵ
３      メモリ
４      二次記憶
５      通信部
６      Ｉ／Ｏ
７      マグネットセンサ
８      赤外線センサ
９      照度センサ
１０    電気錠
１１    インターホン
１２    リモコン受信部
１３    警戒解除ボタン
２０    イベント生成部
２１    イベントキュー
２２    イベント削除部
２３    イベントマネージャ
２４    イベントハンドラ
２５    イベントテーブル
【図１】
2005018341.tif 000003
【図２】
2005018341.tif 000004
【図３】
2005018341.tif 000005
【図４】
2005018341.tif 000006
【図５】
2005018341.tif 000007
【図６】
2005018341.tif 000008
【図７】
2005018341.tif 000009
【図８】
2005018341.tif 000010