JP6102409B2 - イベント処理方法、イベント処理システム、およびイベント処理プログラム - Google Patents

イベント処理方法、イベント処理システム、およびイベント処理プログラム Download PDF

Info

Publication number
JP6102409B2
JP6102409B2 JP2013067308A JP2013067308A JP6102409B2 JP 6102409 B2 JP6102409 B2 JP 6102409B2 JP 2013067308 A JP2013067308 A JP 2013067308A JP 2013067308 A JP2013067308 A JP 2013067308A JP 6102409 B2 JP6102409 B2 JP 6102409B2
Authority
JP
Japan
Prior art keywords
event
terminal
time
stream
event processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2013067308A
Other languages
English (en)
Other versions
JP2014191637A (ja
Inventor
大谷 武
武 大谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2013067308A priority Critical patent/JP6102409B2/ja
Publication of JP2014191637A publication Critical patent/JP2014191637A/ja
Application granted granted Critical
Publication of JP6102409B2 publication Critical patent/JP6102409B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Computer And Data Communications (AREA)
  • Telephonic Communication Services (AREA)

Description

本明細書で議論される実施態様は、ストリームコンピューティングを用いるイベント処理に関する。
ビジネス上の意思決定の迅速化に対する要求の増加に伴い、ストリームコンピューティングが注目されている。ストリームコンピューティングは、様々なセンサやシステムから、次々と収集される大量のイベント(センシングによりデータが収集、あるいはシステムによりデータが生成されたこと、およびデータそのもの)をリアルタイムに処理する技術である。従来のデータ処理は、収集したイベントを一旦データベースに格納し、クエリを発行し、条件にあるデータの抽出・分析を行う。これに対し、ストリームコンピューティングは、あらかじめイベントを検出するロジックをクエリとして、ストリームエンジンに与えておき、イベントの到着時にクエリを実行し、イベントの抽出・分析を行う。そのため、アルゴリズム取引、工場設備の稼働状況監視、システム操作の不正行為検出などに利用されている。
一方、様々なセンサを搭載した携帯端末の普及と無線技術の発達により、移動体(移動を伴う人やモノ)の状態を把握できるようになり、移動体の状態変化に応じたサービスが注目されている。例えば、人の携帯端末から位置情報を収集し、人の居場所に応じて最適なコンテンツを配信したり、外来者にセンサを携行させ、許可されていないエリアへ立ち入っていないかを監視したりするサービス等が考えられる。それには、無線配信によりイベントを収集し、リアルタイムに処理する必要があり、ストリームコンピューティングのモバイル環境への適用が進みつつある。
通常、無線環境は不安定で、さまざまな環境要因により通信できなくなり、携帯端末は収集したイベントをストリームエンジンが稼働するサーバに送信できない場合がある。ストリームエンジンは連続的にイベントを処理するので、イベントが欠落すると、正しくイベントを処理できない可能性がある。例えば、人の移動軌跡が不完全なために、次の移動先の予測精度が低下することで、前もって適切なコンテンツを送信できなかったり、一定時間立ち入り禁止区域に入ったイベントを検出できず、不正立ち入り判定に失敗したりすることが考えられる。
このような問題を解決するために、端末がオフライン中は、端末側で収集したイベントを保持し、オンラインになった時点で、保持していたイベントをストリームエンジンに送信するという方法が考えられる(図2参照)。そうすることで、携帯端末が収集したすべてのイベントを、ストリームエンジンに順次処理させることが可能となる。
特開2010−154514号公報
しかし、ストリームエンジンは、イベントの発生時刻と到着時刻の差が少ないことを前提としており、ストリームエンジンにイベントが到着する時間が、発生時刻から大幅に遅れると、正しい処理ができないという問題がある。例えば、ストリームエンジンの典型的な処理として、タイマ処理とタイムウィンドウ処理がある。タイマ処理は、あるイベントが到着後、一定時間内に所定のイベントが到着しない、あるいは到着したことを検出する処理である。タイムウィンドウ処理は、ある一定期間内に到着したイベントをバッファリングして、共通の処理(例えば、平均値や最大値を求める)を行う処理である。これらの処理は、イベントのストリームエンジンへの到着時刻を基準に処理を行うため、イベントの発生時刻と到着時刻の差が大きいと、所定の時刻にタイマイベントを生成できなかったり、タイムウィンドウ処理の対象イベントが正しく認識されなかったりする場合がある。
したがって、生成時刻とシステムへの到着時刻の差が大きいイベントに対して、正しくストリーム処理を行うことが課題である。
本明細書で後述するイベント処理方法は、以下の処理をコンピュータによって実行される。まず、センサが収集したデータをイベントデータとしてイベント処理システムに送信する端末の接続状態を監視する。次に、端末の通信不可能な時間の累積値を計算する。そして、ストリーム処理を行う際、システムクロックの時刻からその累積値を差し引いた補正時刻を計算する。最後に、端末が送信したイベントデータを補正時刻に基づいてストリーム処理して出力する。
本明細書で後述するイベント処理システムによれば、生成時刻とシステムへの到着時刻の差が大きいイベントに対して、正しくストリーム処理を行うことができる。
イベント処理システムの一実施例の構成図である。 端末がオフラインになることを想定した場合の、ストリームエンジンへのイベントの送信の仕方を説明するための図である。 イベント処理のタイムラインを説明するための図である。 第1の実施形態に係るイベント処理システムの構成図である。 標準的なコンピュータのハードウエア構成の一例を示すブロック図である。 端末状態管理テーブル例を説明するための図である。 セッション開始処理の処理内容を図解したフローチャートである。 端末接続状態監視処理の処理内容を図解したフローチャートである。 イベントストリーム再生処理の処理内容を図解したフローチャートである。 第2の実施形態に係るイベント処理システムの構成図である。
<イベント処理システムの構成>
図1は、本発明の原理を説明するためのイベント処理システムの構成図である。図1に示すように、イベント処理システム10は、端末接続状態監視部11と、クロック補正部12と、イベントストリーム再生部13と、ストリームエンジン14と、システムクロック15とを備える。
端末50は、センサ51を備える。センサ51が収集したセンサデータを、端末50はイベント処理システム10にイベントデータとして送信する。
端末接続状態監視部11は、各端末50が通信可能(オンライン)か否(オフライン)かの接続状態を監視する。
クロック補正部12は、端末50毎にオフラインになった時刻と、オフライン時間の累積値を計算して管理し、イベントストリーム再生部13やストリームエンジン14に、端末50がオンライン状態であり続けた場合の時刻(見かけ上の時刻)を提供する。
イベントストリーム再生部13は、端末50から送信されたイベントデータを、本来到着すべき時刻に、ストリームエンジン14に入力する。
ストリームエンジン14は、イベントをストリーム処理し、イベント利用サービス60にイベントを出力する。
システムクロック15は、イベント処理システム10が動作する機器あるいはOSが提供する、常に一定の速度で動作するクロックで、実際の時刻を提供する。
このような構成により、イベント処理システム10は、ストリームエンジン14が参照するクロック補正部12を制御し、イベントを送信する端末50がオフラインの間はクロックが停止しているように、オンラインになって遅延して到着したイベントを、あたかも今到着したように、ストリームエンジン14に認識させることができる。
また、オフライン中に送信されているイベントの間隔を実際よりも短く処理、すなわち見かけ上の時刻の進み方を速くすることにより、効率的にイベント処理を行ってもよい。
<イベント処理システムの動作>
続いて、イベント処理システム10におけるイベント処理方法について説明する。イベント処理方法は、コンピュータによって実行される。
図2は,端末がオフラインになることを想定した場合の、ストリームエンジンへのイベントの送信の仕方を説明するための図である。通常の動作は、プログラムによって、以下の2種類の処理をコンピュータに実行させる。
(1)端末接続状態監視処理
(2)イベントストリーム再生処理
端末接続状態監視処理の動作は、以下の通りである。端末接続状態監視部11が、端末50の接続状態(オンラインまたはオフライン)を監視しており、接続状態が変化した場合に、端末の識別子と状態変化の内容を、クロック補正部12に通知する。クロック補正部12は、端末50毎にオフラインになった時刻と、オフライン時間の累積値(以下、累積オフライン時間と呼ぶ場合がある)を計算して管理しており、端末50がオンラインからオフラインに変化した場合は、オフラインに変化した時刻とシステムクロック15との差分を算出し、それまでの累積オフライン時間に加算して、新しい累積オフライン時間とする。そうすることで、各端末が初期状態から現在までの、オフラインになっていた累積時間を把握できる。
イベントストリーム再生処理の動作は、以下の通りである。端末50がイベント処理システム10にイベントを送信する。この時点で、端末50はオンライン状態であり、センサ51によって収集したセンサデータが、リアルタイムで送信される場合もあれば、オフライン中に収集したイベントが送信される場合もある。各イベントは、センサデータの他に、センサデータを収集した時刻と端末50の識別子を属性として持つ(端末50のクロックは、イベント処理システム10のシステムクロック15と同期が取れたものとする)。端末50がオフライン中に収集したイベントは、1個ずつ順番に送信される場合も、まとめて1回で送信される場合もあり得る。端末50から送信されたイベントは、イベントストリーム再生部13に渡される。イベントストリーム再生部13は、各々のイベントに含まれるデータ収集時刻と端末50の識別子を参照し、端末識別子をキーにして、クロック補正部12から端末50の見かけ上の時刻を取得する。クロック補正部12は、システムクロック15を参照し、端末識別子をキーにして、クロック補正部12から端末50の時刻を取得する。クロック補正部12は、システムクロック15を参照し、端末接続状態監視処理によって随時更新されている累積オフライン時間を差し引いた補正時刻を返却する。これは、イベントが本来到着するべき時刻を示している。イベントストリーム再生部12は、各イベントを、その本来到着すべき時刻になった時点で、ストリームエンジン14に入力する。ストリームエンジン14がイベントを処理する間もクロックを参照するが、その際もクロック補正部12経由で、端末50毎のオフライン時間を考慮した補正値を利用する。また、端末50がオフラインの場合は、本来返信されてくるはずのイベントも滞っているので、ストリームエンジン14が参照する見かけ上の時刻は、常にオフラインになった時刻を返す。また、このとき、オフライン中に送信されているイベントの間隔を実際よりも短く処理することにより、効率的にイベント処理を行ってもよい。
図3は、この動作をタイムラインで示した図である。端末50がオンラインの間に収集・送信されたイベント(時刻t0およびt1に収集されたイベント)は、イベントストリーム再生部13により、即座にストリームエンジン14に渡され、処理される。時刻Toffに、端末50がオフラインになると、端末50はイベントを収集するが(時刻t2およびt3にイベントを収集)、イベント処理システム10には送信できなくなる。すると、ストリームエンジン14が参照するクロックはオフラインになった時刻を常に参照するようになり、タイマ処理やタイムウィンドウ処理も停止される。端末50が時刻Tonにオンラインに復帰すると、オフラインの間に収集した時刻t2およびt3のイベントをイベント処理システム10に送信する。しかし、イベントストリーム再生部13は、すぐにストリームエンジン14に渡さず、実際の時刻がt2+(Ton−Toff)およびt3+(Ton−Toff)になるまで待つ。Ton−Toffは、端末50がオフラインになっていた時間であり、実際の時刻からその時間を差し引いた補正時刻を、ストリームエンジン(4)が参照しながら、処理を行うことで、そのイベントが本来のt2およびt3の時刻に発生したものとして処理できるようになる。端末50がオンラインに復帰した後に収集される、時刻t4のイベントも同様に処理される。
イベント処理システム10は、端末接続状態監視部11が、端末50の接続状況を監視しており、それをクロック補正部12に通知する。クロック補正部12は、端末50がオフラインなのか、オンラインなのか、およびオフラインになっていた時間の累積値を計算して管理する。そして、他のモジュールが時刻を参照する際に、実際の時刻すなわちシステムクロックの時刻から累積オフライン時間を差し引いた補正時刻を返すことで、端末50が常にオンライン状態で、イベントを送り続けたと仮定した場合の時刻を提供できるようにする。端末50がオフラインの場合は、本来到着すべきイベントが滞っているので、時間が進まないように、オフラインになった時の見かけ上の時刻を返す。
このように動作することで、イベントを処理する際、イベントストリーム再生部13が、クロック補正部12を利用して、あたかも今イベントが到着したようにイベントをストリームエンジン14に入力することができ、ストリームエンジン14は現在のイベントを処理しているかのように動作することが可能となる。従って、イベントの発生時刻と到着時刻が大きく異なっていても、ストリームエンジン14は正常に処理することが可能である。
<第1の実施形態>
図4は、第1の実施形態に係るイベント処理システムの構成図である。イベント処理システム20は、無線通信により端末50からイベントを収集する。図4において、図1で示した要素には類似の番号を付与してある。
図4に示すように、イベント処理システム20は、イベント処理システム10と同様に、端末接続状態監視部21と、クロック補正部22と、イベントストリーム再生部23と、ストリームエンジン24と、システムクロック25とを備え、更に、セッション管理部26と、イベント受信部27とを備える。
端末接続状態監視部21と、クロック補正部22と、イベントストリーム再生部23と、ストリームエンジン24と、システムクロック25は、イベント処理システム10と同様に動作する。
セッション管理部26は、セッション開始を要求した端末50に対して、必要に応じて認証を行い、セッションを開始し、システムクロック25から時刻を取得し、端末50に返却する。更に、セッション管理部26は、セッションを開始したことを、端末50のIDとともに、端末接続状態監視部21に通知する。
イベント受信部27は、端末50から送信されたイベントを解析し、内部形式に変換し、イベントストリーム再生部23に渡す。
ここで、上記実施の形態によるイベント処理システムの動作、及びイベント処理をコンピュータに行わせるために共通に適用されるコンピュータの例について説明する。
図5は、標準的なコンピュータのハードウエア構成の一例を示すブロック図である。図5に示すように、コンピュータ70は、Central Processing Unit(CPU)71、メモリ72、入力装置73、出力装置74、外部記憶装置76、媒体駆動装置77、ネットワーク接続装置79等がバス75を介して互いに接続されている。
CPU71は、コンピュータ70全体の動作を制御する演算処理装置である。CPU71は、メモリ72を利用してイベント処理プログラムを実行することにより、図4の端末接続状態監視部21、クロック補正部22、イベントストリーム再生部23、ストリームエンジン24、セッション管理部26、イベント受信部27として動作する。
メモリ72は、例えばRandom Access Memory(RAM)、Read Only Memory(ROM)等を含み、イベント処理プログラムとイベント処理に用いられるデータを格納する。メモリ72は、イベント処理プログラムを予め記憶したり、イベント処理プログラムを実行する際に必要に応じて作業領域として使用したりするための記憶部である。メモリ72は、例えば、端末50毎にオフラインになった時刻と各々の累積オフライン時間を格納する記憶部としても用いることができる。
入力装置73は、コンピュータの使用者により操作されると、その操作内容に対応付けられている使用者からの各種情報の入力を取得し、取得した入力情報をCPU71に送信する装置であり、例えばキーボード装置、マウス装置などである。入力装置73は、イベント処理プログラムを実行する際に、外部入力からの編集操作入力を受け付ける。
出力装置74は、コンピュータ70による処理結果を出力する装置であり、表示装置などが含まれる。表示装置とは、例えば、ディスプレイやプリンタ等であり、コンピュータのユーザへの問い合わせ、処理結果等の出力に用いられる。例えば表示装置は、CPU71により送付される表示データに応じてテキストや画像を表示する。出力装置74は、イベント処理プログラムを実行する際にイベントを出力する。
外部記憶装置76は、例えば、ハードディスクなどの記憶装置であり、CPU71により実行される各種制御プログラムや、取得したデータ等を記憶しておく装置である。記憶装置とは、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等である。外部記憶装置76は、端末50毎にオフラインになった時刻と各々の累積オフライン時間を格納することもできる。この場合、端末50毎にオフラインになった時刻と各々の累積オフライン時間は、外部記憶装置76からメモリ72に読み出されて、イベント処理に用いられる。さらに、イベント処理プログラムをコンピュータ70の外部記憶装置76に保存しておき、必要に応じて、それらをメモリ72にロードして使用することもできる。
媒体駆動装置77は、可搬記録媒体78に書き込みおよび読み出しを行うための装置である。媒体駆動装置77は、可搬記録媒体78を駆動し、その記録内容にアクセスする。
CPU71は、可搬型記録媒体78に記録されているイベント処理プログラムを、媒体駆動装置77を介して読み出して実行することによって、イベント処理を行うようにすることもできる。可搬記録媒体78は、例えばCompact Disc(CD)−ROM、Digital Versatile Disc(DVD)、Universal Serial Bus(USB)メモリ等である。
ネットワーク接続装置79は、有線または無線により外部との間で行われる各種データの授受の管理を行うインタフェース装置である。ネットワーク接続装置79は、Local Area Network(LAN)、Wide Area Network(WAN)等の任意のネットワーク(回線)を介して外部の装置を通信し、通信に伴うデータ変換を行う。また、必要に応じて、イベント処理プログラムを外部の装置から受け取り、それをコンピュータ70のメモリ72にロードして使用することもできる。
バス75は、上記各装置等を互いに接続し、データのやり取りを行う通信経路である。この可搬記録媒体78に上述のプログラムを格納しておき、必要に応じて、それをコンピュータ70のメモリ72にロードして使用することもできる。
上記それぞれの実施の形態によるイベント処理をコンピュータに実行させるイベント処理プログラムは、例えば外部記憶装置76に記憶される。CPU71は、外部記憶装置76からイベント処理プログラムを読み出し、イベント処理を行う。このとき、イベント処理をCPU71に行わせるためのイベント処理プログラムは、予め外部記憶装置76に記憶されている。そして、入力装置73から所定の指示をCPU71に与えて、このイベント処理プログラムを外部記憶装置76から読み出させて実行させるようにする。また、このイベント処理プログラムは、可搬記録媒体78に記憶するようにしてもよい。
次に、図5に図示したコンピュータ70へのイベント処理プログラム及びデータのローディング例を説明する。
上述の実施形態において説明したイベント処理システム20に相当する機能をコンピュータ70に行わせるためには、イベント処理プログラムを、コンピュータ70で読み取り可能な可搬記録媒体78に予め記憶させておく。そして、その可搬記録媒体78からイベント処理プログラムをコンピュータ70に読み出させて、そのコンピュータ70のメモリ72や外部記憶装置76に一旦格納させ、この格納されたイベント処理プログラムをそのコンピュータ70の有するCPU71に読み出させて実行させるように構成すればよい。
また、サーバが有するデータベースから、ネットワークを介して、イベント処理プログラムをコンピュータ70にダウンロードすることとしてもよい。
<システム全体の動作フェーズ>
続いて、本実施形態におけるイベント処理方法について説明する。端末50を含むシステム全体の典型的な動作フェーズは、以下の通りである。これらの処理をコンピュータに実行させる。
(1)端末50がイベント送信のためにセッションを開始し、センシングを開始する。
(2)端末50がオンラインになり、収集したセンサデータをイベントとして、イベント処理システム20に送信する。
(3)端末50がオフラインになり、端末50内でイベントを蓄積する。
(4)端末50がオンラインになり、オフライン中に蓄積したイベントをイベント処理システムに送信する。
((3)から(4)を繰り返す。)
(5)端末がセンシングを終了し、イベント送信のためのセッションを終了する。
イベント処理システムの動作は、以下の4種類である。
セッション開始処理(動作フェーズ(1)に対応):図6は、端末状態管理テーブルの例を示す。図7は、セッション開始処理の処理内容を図解したフローチャートである。
S100において、端末50は、イベント処理システム20にイベントを送信する前に、セッション管理部26に対してセッション開始を要求する。セッションは、イベントを送り続ける間、常に維持されるものであればよく、Virtual Private Network(VPN)やHypertext Transfer Protocol(HTTP)等のセッションで構わない。
S102において、セッション管理部26は、必要に応じて認証を行い、セッションを開始する。次に、S104において、セッション管理部26は、システムクロック25から時刻を取得し、端末50に返却する。
S106において、端末50は、端末50のクロックを、取得した時刻に合わせる。更に、S108において、端末50は、イベントの収集・送信を開始し、セッション終了まで継続する。
S110において、セッション管理部26は、セッションを開始したことを、端末50のIDとともに、端末接続状態監視部21に通知する。これは逆に端末接続状態監視部21が、セッション管理部26に定期的に問い合わせるようにしても構わない。次に、S112において、端末接続状態監視部21は、セッションの開始をクロック補正部22に通知する。
クロック補正部22は、端末50毎にオフラインになった時のシステムクロック25の時刻と、端末50毎にオフラインになっていた時間の累積値を計算して管理しており、S114において、通知された端末50のエントリを初期化する。続いて、S116において、端末接続状態監視部21は、端末接続状態の監視を開始する。なお、セッション開始時は、オフライン時刻が空で、累積オフライン時間を0とする。
端末接続状態監視処理(動作フェーズ(3)および(4)に対応):図8は、端末接続状態監視処理の処理内容を図解したフローチャートである。
S200において、セッション管理部26は、端末50の接続状態を定期的に確認する。それはセッション管理部26自身が管理するセッション情報を確認しても、端末50からのパケットの有無や、pingによる応答を確認しても構わない。セッション管理部26は、その結果を端末IDとともに端末接続状態監視部21に通知し、S202に進む。
S202において、端末接続状態監視部21は、端末50の以前の接続状態から変化したか否かを確認する。すなわちオンラインだったのがオフラインに、あるいはオフラインだったのがオンラインに変化したかを判定する。そして、変化があった場合は、S204に進み、端末接続状態監視部21は、その変化をクロック補正部22に通知する。変化が無かった場合は、S200に戻る。
S204に続いて、S206において、端末接続状態監視部21は、端末50の接続状態の変化が、オンラインからオフラインへの変化であるか否かを判定する。
S206の判定結果がYESの場合、すなわちオンラインからオフラインへの変化である場合、S208に進み、端末接続状態監視部21は、端末状態管理テーブルのオフライン時刻に、システムクロックの時刻を記録し、S200に戻る。
S206の判定結果がNOの場合、すなわち接続状態がオフラインからオンラインに変化した場合は、S210に進み、端末接続状態監視部21は、システムクロック25から現在時刻を取得する。次に、S212に進み、端末接続状態監視部21は、システムクロック25の現在時刻と、端末状態管理テーブルのオフライン時刻との差分を累積オフライン時間に加算する。そして、S214に進み、端末接続状態監視部21は、オフライン時刻を空にする。その後、S200に戻る。
イベントストリーム再生処理(動作フェーズ(2)および(4)に対応):図9は、イベントストリーム再生処理の処理内容を図解したフローチャートである。まず、端末50がセンサからデータを収集し、それをイベントとしてイベント受信部27に送信する。端末50は、イベントを1個ずつ送信する場合もあれば、複数をまとめて送信する場合もあり得る。端末がオンライン状態であればイベントを収集した時点で1個ずつ送信可能であるが、オフラインからオンラインに移行した直後であれば、オフライン中に収集したイベントをまとめて送信する方がイベントの遅延を小さくできるからである。
S300において、イベント受信部27は、端末50から送信されたイベントを解析し、内部形式に変換し、イベントストリーム再生部23に渡す。そして、S302において、イベントストリーム再生部23は、渡されたイベントを、必要に応じて1個ずつに分解し、各イベントに対して、本来イベントが到着する時刻になった時点で、ストリームエンジン24に入力する。ストリームエンジン24は、クロック補正部22に、端末50の見かけ上の時刻を要求する。
次に、S304に進み、クロック補正部22は、端末IDをキーにして、累積オフライン時間を取得する。続いて、S306において、クロック補正部22は、端末接続状態管理テーブルから、端末50のオフライン時刻を取得する。そして、S308に進み、クロック補正部22は、端末50のオフライン時刻が存在するか否かを判定する。
S308の判定結果がYESの場合、すなわちその時刻が存在する場合、S312に進み、端末50は現在オフライン状態なので、クロック補正部22は、オフライン時刻から累積オフライン時間を差し引いた補正時刻をストリームエンジン24に返却する。その後、S314に進む。
S308の判定結果がNOの場合、すなわちオフライン時刻が存在しない場合は、S310に進み、クロック補正部22は、システムクロック25から、現在時刻を取得し、累積オフライン時間を差し引いた補正時刻をストリームエンジン24に返却する。その後、S314に進む。
S314において、クロック補正部22は、上記のようにして取得した端末50の見かけ上の時刻が、イベントの生成時刻より新しいか否かを判定する。S314の判定結果がNOの場合、S316に進み、クロック補正部22は、イベントが本来処理されるべき時刻になっていないので、一定時間待機し、S304に戻り、同じ処理を繰り返す。なお、定常的にイベント到着の遅延時間を計測しておき、その時間を加味してもよい。それ以降の処理は、ストリームエンジン24に与えられているクエリに依存するが、タイマ処理やタイムウィンドウ処理等のようにイベントの到着時刻に依存した処理は、時刻を参照する。その際の処理は、前述の時刻参照処理と同じである。
S314の判定結果がYESの場合、S318に進み、クロック補正部22は、そのイベントをストリームエンジン24に渡した後、S320に進み、繰返し処理を終了する。
その後、ストリームエンジン24が実行するクエリに依存する処理を行う。S322において、ストリームエンジン24がクエリを処理する。その処理の最中で、S324において、ストリームエンジン24は、必要に応じて、時刻を取得する(上記の時刻取得処理を実行する)。その後、S326において、ストリームエンジン24がイベントを出力する。
なお、上記において、繰返し処理は同期的に行う必要はなく、順次行うことができる。
セッション終了(動作フェーズ(5)に対応):セッション管理部26がセッションの終了処理を行う。この時点で、端末はオンライン状態なので、クロック補正部22の端末接続状態管理テーブルのエントリを変更する必要がないので、端末接続状態監視部21に対しては何もしない。端末接続状態管理テーブルのエントリを削除しないのは、ストリームエンジン24が処理しているクエリにタイマ処理やタイムウィンドウ処理を含む場合、セッションが終了しても、クロック参照があり得るからである。
前述の動作では、端末が一旦オフラインになると、見かけ上の時刻を、実際の時刻より、端末がオフラインになっていた時間だけ遅らせるようにしている。そうすると、端末50がオフライン・オンラインを繰り返すたびに、ストリームエンジン24がイベントを処理する時刻が遅延し、リアルタイム性が低下する。それを防ぐために、見かけ上の時刻の進み方を早くし、通常よりも高速にイベントの処理を行うようにしてもよい。その場合、過去のイベント処理が終わり、現在時刻に追いついた時点で、見かけ上の時刻の進み方を元に戻す。
<第2の実施形態>
図10は、第2の実施形態に係るイベント処理システムの構成図である。図10に示すように、イベント処理システム30は、端末接続状態監視部31と、クロック補正部32と、イベントストリーム再生部33と、ストリームエンジン34と、システムクロック35と、セッション管理部36と、イベント受信部37とを備え、更に、VM管理部38と、クロック取得部39とを備える。
第1の実施形態においては、イベントストリーム再生部23およびストリームエンジン24が、端末50の見かけ上の時刻を利用するためには、端末50のIDが必要であり、専用のApplication Programming Interface(API)を利用することを想定している。そのため、本実施形態においては、一般的なストリームエンジンに適用できるようにするために、クロックとして見かけ上の時刻を参照する機能を持つVirtual Machine(VM、仮想マシン)を端末50毎に用意し(すなわち、n個のVM1、VM2、…、VMnを用意し)、イベントストリーム再生部33とストリームエンジン34をその専用のVMで実行するようにしてもよい。
本実施形態において、第1の実施形態の構成と異なるのはVM管理部38とクロック取得部39とを備えることである。
VM管理部36は、端末50毎にイベントを処理するVMを管理する。
クロック取得部39は、VMが処理する端末50のIDを覚えておき、それを利用してクロック補正部32から見かけ上の時刻を取得する。
セッション開始動作は、上述の動作に、セッション管理部36がVM管理部38に対して、所定の端末50のセッションが開始されることを通知する処理が加わる。VM管理部38は、指定された端末IDのVMが存在しているかを確認し、存在していなければ、イベントストリーム再生部33、ストリームエンジン34、およびクロック取得部39を含むVMを作成し、端末IDを設定したり、ストリームエンジンにクエリを登録したりする等の初期化を行う。
イベントストリーム再生処理の動作は、イベント受信部37がイベントを受信すると、VM管理部38に対して、イベントを処理するVMを問い合わせ、そのVMのイベントストリーム再生部33にイベントを振り分ける。以降の処理は、前述の通りであるが、イベントストリーム再生部33およびストリームエンジン34にクエリを登録したりするなどの初期化を行う。
イベントストリーム再生処理の動作は、イベント受信部37がイベントを受信すると、VM管理部38に対して、イベントを処理するVMを問い合わせ、そのVMのイベントストリーム再生部33およびストリームエンジン34が見かけ上の時刻を取得する。そうすることで、既存のストリームエンジン製品を変更することなく、オフライン時のイベントを処理することが可能となる。
本実施形態によるイベント処理システムの動作、及びイベント処理をコンピュータに行わせるために共通に適用されるコンピュータの例は、図5に示したものと同様である。
CPU71は、メモリ72を利用してイベント処理プログラムを実行することにより、図10の端末接続状態監視部31、クロック補正部32、イベントストリーム再生部33、ストリームエンジン34、システムクロック35、セッション管理部36、イベント受信部37、VM管理部38、クロック取得部39として動作する。
以上、説明したように、本実施形態によれば、無線端末からイベントを収集し、ストリーム処理する際に、ストリームエンジンが参照するクロックを制御することで、イベントがあたかも今到着したように認識させることができ、イベントの到着が大きく遅延する場合でも、正しく処理することが可能である。
なお、上記のように本発明の実施形態について説明したが、本発明は上述した実施形態に限定されるものではなく、他の様々な変更が可能である。
なお、以上までに説明した実施形態に関し、更に以下の付記を開示する。
(付記1)
コンピュータによって実行されるイベント処理方法であって、
センサが収集したデータをイベントデータとしてイベント処理システムに送信する端末の接続状態を監視し、
前記端末の通信不可能な時間の累積値を計算し、
ストリーム処理を行う際、システムクロックの時刻から前記累積値を差し引いた補正時刻を計算し、
前記端末から送信されたイベントデータを前記補正時刻に基づいてストリーム処理して出力する、
ことを特徴とするイベント処理方法。
(付記2)
前記端末は複数であり、端末毎に異なる仮想マシンによって前記ストリーム処理を行うことを特徴とする付記1に記載のイベント処理方法。
(付記3)
前記イベント処理は、通信不可能な時間中に送信されているイベントの間隔を実際より短くして処理することを特徴とする付記1に記載のイベント処理方法。
(付記4)
センサが収集したデータをイベントデータとしてイベント処理システムに送信する端末の接続状態を監視する端末接続状態監視部と、
前記端末の通信不可能な時間の累積値を計算し、ストリーム処理を行う際にシステムクロックの時刻から前記累積値を差し引いた補正時刻を計算するクロック補正部と、
前記端末から送信されたイベントデータをストリームエンジンに入力するイベントストリーム再生部と、
前記イベントデータを前記補正時刻に基づいてストリーム処理して出力するストリームエンジンと、
実際の時刻を提供するシステムクロックと、
を備えることを特徴とするイベント処理システム。
(付記5)
前記端末は複数であり、端末毎に異なる仮想マシンによって前記ストリーム処理を行うことを特徴とする付記4に記載のイベント処理システム。
(付記6)
前記イベント処理は、通信不可能な時間中に送信されているイベントの間隔を実際より短くして処理することを特徴とする付記4に記載のイベント処理システム。
(付記7)
センサが収集したデータをイベントデータとしてイベント処理システムに送信する端末の接続状態を監視し、
前記端末の通信不可能な時間の累積値を計算し、
ストリーム処理を行う際、システムクロックの時刻から前記累積値を差し引いた補正時刻を計算し、
前記端末から送信されたイベントデータを前記補正時刻に基づいてストリーム処理して出力する、
処理をコンピュータに実行させるイベント処理プログラム。
(付記8)
前記端末は複数であり、端末毎に異なる仮想マシンによって前記ストリーム処理を行うことを特徴とする付記7に記載のイベント処理プログラム。
(付記9)
前記イベント処理は、通信不可能な時間中に送信されているイベントの間隔を実際より短くして処理することを特徴とする付記8に記載のイベント処理プログラム。
10 イベント処理システム
11 端末接続状態監視部
12 クロック補正部
13 イベントストリーム再生部
14 ストリームエンジン
15 システムクロック
16 セッション管理部
17 イベント受信部
18 VM管理部
19 クロック取得部

Claims (5)

  1. コンピュータによって実行されるイベント処理方法であって、
    センサが収集したデータをイベントデータとしてイベント処理システムに送信する端末の接続状態を監視し、
    前記端末の通信不可能な時間の累積値を計算し、
    ストリーム処理を行う際、システムクロックの時刻から前記累積値を差し引いた補正時刻を計算し、
    前記端末から送信されたイベントデータを前記補正時刻に基づいてストリーム処理して出力する、
    ことを特徴とするイベント処理方法。
  2. 前記端末は複数であり、端末毎に異なる仮想マシンによって前記ストリーム処理を行うことを特徴とする請求項1に記載のイベント処理方法。
  3. 前記ストリーム処理は、通信不可能な時間中に前記センサが前記イベントデータを収集したイベントの間隔を実際より短くして処理することを特徴とする請求項1に記載のイベント処理方法。
  4. センサが収集したデータをイベントデータとしてイベント処理システムに送信する端末の接続状態を監視する端末接続状態監視部と、
    前記端末の通信不可能な時間の累積値を計算し、ストリーム処理を行う際、システムクロックの時刻から前記累積オフライン時間を差し引いた補正時刻を計算するクロック補正部と、
    前記端末から送信されたイベントデータをストリームエンジンに入力するイベントストリーム再生部と、
    前記イベントデータを前記補正時刻に基づいてストリーム処理して出力するストリームエンジンと、
    実際の時刻を提供するシステムクロックと、
    を備えることを特徴とするイベント処理システム。
  5. センサが収集したデータをイベントデータとしてイベント処理システムに送信する端末の接続状態を監視し、
    前記端末の通信不可能な時間の累積値を計算し、
    ストリーム処理を行う際、システムクロックの時刻から前記累積値を差し引いた補正時刻を計算し、
    前記端末から送信されたイベントデータを前記補正時刻に基づいてストリーム処理して出力する、
    処理をコンピュータに実行させるイベント処理プログラム。
JP2013067308A 2013-03-27 2013-03-27 イベント処理方法、イベント処理システム、およびイベント処理プログラム Expired - Fee Related JP6102409B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013067308A JP6102409B2 (ja) 2013-03-27 2013-03-27 イベント処理方法、イベント処理システム、およびイベント処理プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013067308A JP6102409B2 (ja) 2013-03-27 2013-03-27 イベント処理方法、イベント処理システム、およびイベント処理プログラム

Publications (2)

Publication Number Publication Date
JP2014191637A JP2014191637A (ja) 2014-10-06
JP6102409B2 true JP6102409B2 (ja) 2017-03-29

Family

ID=51837817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013067308A Expired - Fee Related JP6102409B2 (ja) 2013-03-27 2013-03-27 イベント処理方法、イベント処理システム、およびイベント処理プログラム

Country Status (1)

Country Link
JP (1) JP6102409B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006228047A (ja) * 2005-02-18 2006-08-31 Daikin Ind Ltd 遠隔監視装置、遠隔監視システム
JP5058209B2 (ja) * 2009-05-22 2012-10-24 株式会社日立製作所 ストリームデータ処理において逆再生を行うデータ処理システム

Also Published As

Publication number Publication date
JP2014191637A (ja) 2014-10-06

Similar Documents

Publication Publication Date Title
CN101142566B (zh) 用于检测双登入的方法和系统
JP6365519B2 (ja) データフロー制御装置およびデータフロー制御方法
JP6458755B2 (ja) データフロー制御装置およびデータフロー制御方法
US9356986B2 (en) Distributed stream processing
US9015731B2 (en) Event handling system and method
US20100017486A1 (en) System analyzing program, system analyzing apparatus, and system analyzing method
US11228512B2 (en) Cross silo time stitching
US20060031262A1 (en) Synchronizing client data and server data
CN109447701A (zh) 应用程序反作弊方法、装置和服务端
JP2018201154A (ja) 送信制御プログラム、送信制御方法、及び情報処理装置
US10360266B2 (en) Data-flow control device and data-flow control method
JP6102409B2 (ja) イベント処理方法、イベント処理システム、およびイベント処理プログラム
TWI606413B (zh) Relay device, automatic teller system, information relay method, and program product
JP6925889B2 (ja) 中継装置、伝送処理プログラム
JP6832025B1 (ja) IoT機器管理のための通信システム
JP5577140B2 (ja) 情報処理システム及び情報処理方法
JPWO2017141339A1 (ja) 処理制御プログラム、処理制御方法、情報処理装置、および通信装置
EP3432593B1 (en) Data-flow control device and data-flow control method
US8825850B2 (en) Information processing apparatus and control method
JP6866092B2 (ja) 中継装置、中継システム、中継プログラム、及び中継方法
JP5544903B2 (ja) サーバ装置およびその制御プログラム
US9300573B2 (en) Recording medium having stored therein a transfer program, transfer apparatus, and transfer method
JP4381879B2 (ja) 送受信データ量管理・制限装置、そのプログラム
JP2009277119A (ja) ログ記録システム
de Amorim Vaz Smart Objects para a Indústria 4.0

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20161111

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161122

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161219

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20170131

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170213

R150 Certificate of patent or registration of utility model

Ref document number: 6102409

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees