図面 (/)

技術 戦術的クエリから連続クエリへの変換

出願人 オラクル・インターナショナル・コーポレイション
発明者 シャオ,エリックシャルマ,ビシャルサントス,アドリアノ・コベログプタ,ラーフル
出願日 2013年9月26日 (7年7ヶ月経過) 出願番号 2015-534676
公開日 2016年1月7日 (5年4ヶ月経過) 公開番号 2016-500167
状態 特許登録済
技術分野 計算機間の情報転送 検索装置
主要キーワード 連続イベント 履歴イベント 時間レンジ 増分計算 複合イベント トレンドライン 順序条件 サービス車両
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2016年1月7日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (13)

課題・解決手段

戦術的クエリから連続クエリへの変換を管理する技術が提供される。いくつかの例において、データベースからのイベントデータクエリエンジンプルすることができるように構成された戦術的クエリを決定し得る。たとえば、クエリエンジンは、戦術的クエリを用いて構成し得る。この構成は、表示すべきイベントデータの指示に少なくとも一部基づき得る。さらに、いくつかの例において、戦術的クエリから連続クエリへの変換を可能にしてもよい。変換または変換を可能にすることは、要求に少なくとも一部基づき得る。

概要

背景

背景
多くの企業は、ビジネスインテリジェンス(BI)システムを、意思決定周期が数週間または数か月の期間にわたる戦略的および戦術的意思決定に使用する。しかしながら、企業は、競争圧力を受けて、変化する状況および顧客の要求に対してより速く反応することを強いられる。その結果、現在、場合によっては日常的にBIを使用して事業推進および最適化に役立てたいという要望がある。加えて、データベースに関連するデータまたはストリーミングデータは、多くの異なるやり方で、格納、管理、および/または処理することができる。上記BIデータの中には、イベント重視するものがある。その他のBIデータは、履歴キーパフォーマンスインジケータ(KPI)情報を含み得る。いくつかの用途の場合、スケジュールされたおよび/または戦術的なクエリを利用してこのようなイベントデータ取出すおよび/または処理することが有益であろう。加えて、他の例では、連続クエリを利用してこのようなイベントデータを取出すことがより有意義であろう。しかしながら、種類が異なるクエリおよびクエリに関連するメモリ使用量の管理は、クエリエンジンおよび/またはこれを実装するサービスプロバイダにとって、技術的課題となるであろう。

概要

戦術的クエリから連続クエリへの変換を管理する技術が提供される。いくつかの例において、データベースからのイベントデータをクエリエンジンにプルすることができるように構成された戦術的クエリを決定し得る。たとえば、クエリエンジンは、戦術的クエリを用いて構成し得る。この構成は、表示すべきイベントデータの指示に少なくとも一部基づき得る。さらに、いくつかの例において、戦術的クエリから連続クエリへの変換を可能にしてもよい。変換または変換を可能にすることは、要求に少なくとも一部基づき得る。

目的

この方法はまた、クエリエンジンにプッシュされたストリーミングイベントデータに少なくとも一部基づいてアクティブ可視化を表示するように構成されたユーザインターフェイスを提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

ステムであって、複数の命令を格納するメモリと、前記メモリにアクセスするように構成された1つ以上のプロセッサとを備え、前記1つ以上のプロセッサはさらに、前記複数の命令を実行することにより、少なくとも、表示すべきイベントデータの指示に少なくとも一部基づいて、戦術的クエリを用いてクエリエンジンを構成し、要求に少なくとも一部基づいて前記戦術的クエリから連続クエリへの変換を可能にするように、構成される、システム。

請求項2

前記変換は実行時に可能にされる、請求項1に記載のシステム。

請求項3

前記変換は、前記連続クエリからプッシュされたデータを受けるようにリスニングサービスを少なくとも構成することを含む、請求項1または2に記載のシステム。

請求項4

前記連続クエリは、前記クエリエンジンに関連する前記リスニングサービスに、ストリームからデータをプッシュするように構成される、請求項3に記載のシステム。

請求項5

前記戦術的クエリは、前記クエリエンジンに代わってデータをプルするように構成される、請求項1〜4のいずれか一項に記載のシステム。

請求項6

前記要求は、表示すべき前記データに関連するユーザから受ける、請求項1〜5のいずれか一項に記載のシステム。

請求項7

前記要求は、前記ユーザに対して表示すべき前記データを表示するように構成されたユーザインターフェイスを介して受ける、請求項6に記載のシステム。

請求項8

前記要求は、データウィンドウデータレンジフィルタ値、および前記ユーザに関連するディメンション変更のうちの少なくとも1つを含む、請求項6に記載のシステム。

請求項9

1つ以上のプロセッサにより実行可能な複数の命令を格納するコンピュータ読取可能なプログラムであって、前記複数の命令は、データベースからのユーザのイベントデータにクエリするための戦術的クエリを決定することを、前記1つ以上のプロセッサに行なわせる命令と、前記ユーザのストリーミングイベントデータをクエリエンジンにプッシュすることを可能にするように構成された連続クエリに、前記戦術的クエリを変換することを、前記1つ以上のプロセッサに行なわせる命令と、前記クエリエンジンにプッシュされたデータに少なくとも一部基づいてアクティブ可視化を表示するように構成されたユーザインターフェイスを与えることを、前記1つ以上のプロセッサに行なわせる命令とを含む、コンピュータ読取可能なプログラム。

請求項10

前記戦術的クエリは、前記クエリエンジンの実行時に、前記連続クエリに変換される、請求項9に記載のコンピュータ読取可能なプログラム。

請求項11

前記戦術的クエリは、前記イベントデータの可視化をアクティブにすることを求める要求に少なくとも一部基づいて、前記連続クエリに変換される、請求項9または10に記載のコンピュータ読取可能なプログラム。

請求項12

前記可視化は、アクティブな可視化をアクティブにすることを求める前記要求に関連するユーザに対してのみアクティブにされる、請求項11に記載のコンピュータ読取可能なプログラム。

請求項13

アクティブな可視化をアクティブにすることを求める前記要求は、少なくとも、前記イベントデータを1つ以上のオブジェクト解体させて前記1つ以上のオブジェクトをユーザ指定時間間隔に少なくとも一部基づいて更新することを求める要求を含む、請求項11に記載のコンピュータ読取可能なプログラム。

請求項14

可視化をアクティブにすることを求める前記要求は、少なくとも、前記イベントデータの表示および更新のうちの少なくとも一方のためのユーザ指定の時間ウィンドウの指示を含む、請求項11に記載のコンピュータ読取可能なプログラム。

請求項15

方法であって、データベースからクエリエンジンにイベントデータをプルすることを可能にするように構成された戦術的クエリを決定することと、前記イベントデータに関連するユーザから、前記イベントデータのアクティブな可視化の生成に関連する要求を受けることと、前記ユーザのストリーミングイベントデータを前記クエリエンジンにプッシュすることを可能にするように構成された連続クエリに、前記戦術的クエリを変換することと、前記クエリエンジンにプッシュされた前記ストリーミングイベントデータに少なくとも一部基づいてアクティブな可視化を表示するように構成されたユーザインターフェイスを与えることとを含む、方法。

請求項16

前記変換は、前記イベントデータのアクティブな可視化の生成に関連する前記要求に少なくとも一部基づく、請求項15に記載の方法。

請求項17

前記連続クエリによってプッシュされたデータを受けるために前記クエリエンジンのリスニングシステムを登録することをさらに含む、請求項15または16に記載の方法。

請求項18

前記戦術的クエリは、前記ユーザからの、前記イベントデータを表示することを求める要求に少なくとも一部基づいて決定される、請求項15〜17のいずれか一項に記載の方法。

請求項19

フィルタを前記連続クエリに適用することまたは前記連続クエリのディメンションを変更することを求める要求を受けることをさらに含む、請求項15〜18のいずれか一項に記載の方法。

請求項20

前記イベントデータのアクティブな可視化の生成に関連する要求は、ユーザによって指定された、スラディンウィンドウ構成および時間レンジ構成のうちの少なくとも一方を含む、請求項15〜19のいずれか一項に記載の方法。

請求項21

方法であって、表示すべきイベントデータの指示に少なくとも一部基づいて、戦術的クエリを用いてクエリエンジンを構成することと、要求に少なくとも一部基づいて、前記戦術的クエリから連続クエリへの変換を可能にすることとを含む、方法。

請求項22

方法であって、データベースからのユーザのイベントデータにクエリするための戦術的クエリを決定することと、前記ユーザのストリーミングイベントデータをクエリエンジンにプッシュすることを可能にするように構成された連続クエリに、前記戦術的クエリを変換することと、前記クエリエンジンにプッシュされたデータに少なくとも一部基づいてアクティブな可視化を表示するように構成されたユーザインターフェイスを与えることとを含む、方法。

請求項23

前記戦術的クエリは、前記データベースの1つの要素のみにクエリするように構成される、請求項22に記載の方法。

請求項24

装置であって、データベースからのユーザのイベントデータにクエリするための戦術的クエリを連続クエリに変換するように構成されたクエリ変換モジュールと、連続クエリと戦術的クエリを組合わせるように構成されたハイブリッドクエリモジュールとを備える、装置。

請求項25

請求項15〜20のうちいずれかに記載の方法を実行するように構成された装置。

技術分野

0001

関連出願の相互参照
本願は、2013年3月14日に出願され「TACTICAL QUERY TO CONTINUOUS QUERY CONVERSION(戦術的クエリから連続クエリへの変換)」と題された米国特許出願第13/827,987号(代理人整理番号88325−859818(128050US))、および、2012年9月28日に出願され「REAL-TIME BUSINESSEVENT ANALYSIS AND MONITORING(リアルタイムビジネスイベント分析およびモニタリング)」と題された米国仮出願第61/707,641号に基づく優先権と利益を主張し、すべての目的のために各出願の内容全体を本明細書に引用により援用する。

背景技術

0002

背景
多くの企業は、ビジネスインテリジェンス(BI)システムを、意思決定周期が数週間または数か月の期間にわたる戦略的および戦術的意思決定に使用する。しかしながら、企業は、競争圧力を受けて、変化する状況および顧客の要求に対してより速く反応することを強いられる。その結果、現在、場合によっては日常的にBIを使用して事業推進および最適化に役立てたいという要望がある。加えて、データベースに関連するデータまたはストリーミングデータは、多くの異なるやり方で、格納、管理、および/または処理することができる。上記BIデータの中には、イベント重視するものがある。その他のBIデータは、履歴キーパフォーマンスインジケータ(KPI)情報を含み得る。いくつかの用途の場合、スケジュールされたおよび/または戦術的なクエリを利用してこのようなイベントデータ取出すおよび/または処理することが有益であろう。加えて、他の例では、連続クエリを利用してこのようなイベントデータを取出すことがより有意義であろう。しかしながら、種類が異なるクエリおよびクエリに関連するメモリ使用量の管理は、クエリエンジンおよび/またはこれを実装するサービスプロバイダにとって、技術的課題となるであろう。

課題を解決するための手段

0003

概要
戦術的クエリを連続クエリに変換する技術が提供される。いくつかの例において、計算システムは、表示すべきイベントデータの指示に少なくとも一部基づいて、戦術的クエリを用いてクエリエンジンを構成し得る。加えて、いくつかの例において、このシステムは、要求に少なくとも一部基づいて戦術的クエリを連続クエリに変換することを可能にし得る。この変換は実行時に可能にされてもよい。加えて、この変換は、連続クエリからプッシュされたデータを受けるようにリスニングサービスを構成することを含み得る。いくつかの例において、連続クエリは、ストリームから、クエリエンジンに関連するリスニングサービスに、データをプッシュするように構成されてもよい。加えて、いくつかの局面において、戦術的クエリは、クエリエンジンに代わってデータをプルするように構成されてもよい。上記要求は、表示すべきデータに関連するユーザから受けてもよい。場合によっては、上記要求は、ユーザに対して表示すべきデータを表示するように構成されたユーザインターフェイスを介して受けてもよい。さらに、上記要求は、データウィンドウデータレンジフィルタ値、およびユーザに関連するディメンション変更のうちの少なくとも1つを含み得る。

0004

加えて、いくつかの例において、コンピュータ読取可能なメモリまたはプログラムが提供されてもよい。このメモリまたはプログラムは、データベースからのユーザのイベントデータにクエリするための戦術的クエリを少なくとも決定することを、1つ以上のプロセッサに行なわせる、複数の命令を格納し得る。この命令はまた、ユーザのストリーミングイベントデータをクエリエンジンにプッシュすることを可能にするように構成された連続クエリに、戦術的クエリを変換することを、上記1つ以上のプロセッサに行なわせてもよい。加えて、この命令はまた、クエリエンジンにプッシュされたデータに少なくとも一部基づいてアクティブ可視化を表示するように構成されたユーザインターフェイスを少なくとも与えることを、上記1つ以上のプロセッサに行なわせてもよい。戦術的クエリは、クエリエンジンの実行時に連続クエリに変換されてもよい。いくつかの局面において、戦術的クエリは、イベントデータの可視化をアクティブにすることを求める要求に少なくとも一部基づいて、連続クエリに変換されてもよい。加えて、可視化は、可視化をアクティブにすることを求める要求に関連するユーザに対してのみアクティブにされてもよい。いくつかの例において、可視化をアクティブにすることを求める要求は、少なくとも、イベントデータを1つ以上のオブジェクトコラプス(collapse解体)させてこの1つ以上のオブジェクトをユーザ指定時間間隔に少なくとも一部基づいて更新することを求める要求を含み得る。さらに、可視化をアクティブにすることを求める要求は、少なくとも、イベントデータの表示および更新のうちの少なくとも一方に対するユーザ指定の時間ウィンドウの指示を含み得る。

0005

さらに、いくつかの例において、方法が提供されてもよい。この方法は、データベースからクエリエンジンにデータをプルすることを可能にするように構成された戦術的クエリを決定するように構成されてもよい。この決定は計算システムによって行なわれてもよい。加えて、いくつかの局面において、この方法は、イベントデータのアクティブな可視化の生成に関連する要求を受けるように構成されてもよい。この要求は、イベントデータに関連するユーザから受けてもよい。さらに、この方法は、計算システムによって実行時に、ユーザのストリーミングイベントデータをクエリエンジンにプッシュすることを可能にするように構成された連続クエリに戦術的クエリを変換するように構成されてもよい。この方法はまた、クエリエンジンにプッシュされたストリーミングイベントデータに少なくとも一部基づいてアクティブな可視化を表示するように構成されたユーザインターフェイスを提供するように構成されてもよい。いくつかの局面において、この変換は、イベントデータのアクティブな可視化の生成に関連する要求に少なくとも一部基づいて行なわれてもよい。加えて、この方法は、クエリエンジンのリスニングシステムを登録して、連続クエリによってプッシュされたデータを受けるように構成されてもよい。戦術的クエリは、イベントデータを表示することを求めるユーザからの要求に少なくとも一部基づいて決定されてもよい。さらに、この方法は、フィルタを連続クエリに適用することまたは連続クエリのディメンションを変更することを求める要求を受けるように構成されてもよい。イベントデータのアクティブな可視化の生成に関連する要求は、いくつかの例において、ユーザによって指定されたスライディングウィンドウ構成および時間レンジ構成のうちの少なくとも一方であってもよい。

0006

少なくとも1つの例に従うと、システムは、表示すべきイベントデータの指示に少なくとも一部基づいて、戦術的クエリを用いてクエリエンジンを構成するための手段を含み得る。この変換は実行時に可能にされてもよい。加えて、このシステムは、要求に少なくとも一部基づいて、戦術的クエリから連続クエリへの変換を可能にするための手段を含み得る。さらに、いくつかの例において、この変換は、連続クエリからプッシュされたデータを受けるようにリスニングサービスを少なくとも構成することを含み得る。連続クエリは、クエリエンジンに関連するリスニングサービスに、ストリームからデータをプッシュするように構成されてもよい。加えて、いくつかの例において、戦術的クエリは、クエリエンジンに代わってデータをプルするように構成されてもよい。

0007

ここまで述べてきたことは、以下の明細書、請求項、および添付の図面を参照すると、他の特徴および実施形態とともに、より明らかになるであろう。

0008

添付の図面を参照しながら詳細な説明を行なう。図面において、参照番号の左端の桁は、その参照番号が最初に示されている図面の番号である。異なる図面で使用される同一の参照番号は、同様または同一のアイテムを示す。

図面の簡単な説明

0009

少なくとも1つの例に従う連続クエリとスケジュールされたクエリの複合的実行を管理するためのアーキテクチャの一例を示す簡略ブロック図である。
少なくとも1つの例に従う本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行の管理の少なくともいくつかの特徴を示す簡略ブロック図である。
少なくとも1つの例に従う本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行の管理の少なくともいくつかのその他の特徴を示す簡略フロー図である。
少なくとも1つの例に従う本明細書に記載の戦術的クエリから連続クエリへの変換の少なくともいくつかのその他の特徴を示す簡略フロー図である。
少なくとも1つの例に従う本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行の管理の少なくともいくつかの特徴を示す簡略プロセスフローである。
少なくとも1つの例に従う本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行の管理の少なくともいくつかの特徴を示すもう1つの簡略プロセスフローである。
少なくとも1つの例に従う本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行の管理の少なくともいくつかの特徴を示すもう1つの簡略プロセスフローである。
少なくとも1つの例に従う本明細書に記載の戦術的クエリから連続クエリへの変換の少なくともいくつかの特徴を示す簡略プロセスフローである。
少なくとも1つの例に従う本明細書に記載の戦術的クエリから連続クエリへの変換の少なくともいくつかの特徴を示すもう1つの簡略プロセスフローである。
少なくとも1つの例に従う本明細書に記載の戦術的クエリから連続クエリへの変換の少なくともいくつかの特徴を示すもう1つの簡略プロセスフローである。
少なくとも1つの例に従う本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行の管理の実施形態に従い使用し得るシステム環境の構成要素を示す簡略ブロック図である。
少なくとも1つの例に従う本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行の管理の実施の形態に従い使用し得るコンピュータシステムを示す簡略ブロック図である。

実施例

0010

詳細な説明
以下の説明では、さまざまな実施形態が説明される。これら実施形態が十分に理解されるよう、特定の構成および詳細事項が説明のために記載される。しかしながら、これらの具体的な詳細事項がなくとも実施形態を実行し得ることも当業者には明らかであろう。さらに、記載されている実施形態が不明瞭にならぬよう、周知の特徴は省略または簡略化される場合がある。

0011

いくつかの例において、連続クエリ言語(CQL)クエリとその他のクエリの組合わせをサポートする機構を実装することができる。上記その他のクエリは、(たとえばタイマに対する)戦術的クエリ、戦略的クエリ、リレーショナルクエリ等を含むがこれらに限定されない。本開示はまた、(たとえばタイマとの)構造化クエリ言語(SQL)クエリを、CQLクエリに、タイマに対しておよびCQLステートメント内で使用される結果セットに対してSQLクエリを実行できるように、埋込む機能を提供し得る。加えて、いくつかの例において、戦術的クエリから連続クエリへの変換をサポートする機構を実装することができる。たとえば、データベースまたはその他のデータソースからデータをプルすることを可能にするように構成された1つ以上の戦術的クエリを用いて、クエリエンジンを構成してもよい。いくつかの局面において、戦術的クエリを連続クエリに実行時に変換してもよい。このようにして、ストリームまたはその他のリアルタイムデータソースを介してプッシュされたデータを受けるようにクエリエンジンを構成することができる。さらに、いくつかの例において、戦術的クエリは、短く、高度に調整され、および/または時間の影響を受ける環境での行動または意思決定を容易にするものであってもよい。加えて、いくつかの例において、戦術的クエリは、明確なサービスレベル予想を含んでいてもよく、および/またはシステムリソース全体のうちの非常に小さい割合を占めるものであってもよい。さらに、戦術的クエリは、繰返し実行してもよく、限定されないが、要求(クエリプランキャッシングおよび/またはセッションプーリング等の技術を利用してもよい。いくつかの例において、戦術的クエリは、全テーブルスキャンを行なわなくてもよく、および/または非常に短時間で実行およびリターンが可能な短い一行のクエリであってもよい。

0012

連続データストリームイベントストリームとも呼ばれる)は、明確な終わりがない連続するまたは本質的に無限であるデータまたはイベントのストリームを含み得る。論理的に、イベントまたはデータストリームは、一連データ要素(イベントとも呼ばれる)であってもよく、各データ要素は関連するタイムスタンプを有する。連続イベントストリームは、論理的には要素(s,T)のバッグ(bag)またはセットで表わすことができ、「s」はデータ部分を表わし「T」は時間ドメインを表わす。「s」部分は一般的にタプルまたはイベントと呼ばれる。イベントストリームはしたがってタイムスタンプされた一連のタプルまたはイベントであってもよい。

0013

いくつかの局面において、あるストリーム内のイベントに関連するタイムスタンプは、クロック時間と同等であり得る。しかしながら、他の例において、あるイベントストリーム内のイベントに関連する時間は、アプリケーションドメインによって定義してもよく、クロック時間に対応しなくてもよいが、たとえばその代わりに連続番号によって表わしてもよい。したがって、あるイベントストリーム内のイベントに関連する時間情報は、数字、タイムスタンプ、または時間の概念を表わす他の情報によって表わすことができる。入力イベントストリームを受けるシステムでは、イベントは、タイムスタンプが増す順序でシステムに到着する。同一のタイムスタンプを有する2つ以上のイベントがあってもよい。

0014

いくつかの例において、あるイベントストリーム内のイベントは、世の中の何らかのイベントの発生(たとえば、温度センサの値が新たな値に変化したとき、株式銘柄の価格が変化したとき)を表わしてもよく、このイベントに関連する時間情報が、データストリームイベントによって表わされる上記世の中のイベントが発生した時間を示してもよい。

0015

イベントストリームを介して受けるイベントについては、イベントに関連する時間情報を用いて、イベントストリーム内のイベントが、タイムスタンプの値が増す順序で到着することを保証してもよい。これにより、受けるイベントストリーム内のイベントを、それぞれのイベントに関連する時間情報に基づいて並べることができる。このように並べることを可能にするためには、後で生成されたイベントが、先に生成されたイベントよりも後のタイムスタンプを有するように、タイムスタンプを、イベントストリーム内のイベントと、タイムスタンプが減少しないやり方で関連付ければよい。別の例として、連続番号を時間情報として用いるのであれば、後に生成されたイベントに関連する連続番号を、先に生成されたイベントに関連する連続番号よりも大きくすればよい。いくつかの例において、たとえば、データストリームイベントで表わされる世の中のイベントが同時に発生するときには、複数のイベントを、同一のタイムスタンプまたは連続番号と関連付けてもよい。同一のイベントストリームに属するイベントは通常、関連する時間情報によってイベントに課される順序で処理すればよく、先のイベントは後のイベントよりも前に処理される。

0016

イベントストリーム内のイベントに関連する時間情報(たとえばタイムスタンプ)は、ストリームのソースによって設定されてもよく、その代わりに、このストリームを受けるシステムによって設定されてもよい。たとえば、いくつかの実施形態において、イベントストリームを受けるシステム上でハートビート(heartbeat)を管理してもよく、イベントに関連する時間が、ハートビートによって測定される、システムへのイベントの到着時間に基づいていてもよい。あるイベントストリーム内の2つのイベントが同一の時間情報を有することが起こり得る。なお、タイムスタンプの順序条件は、1つのイベントストリームに特有のものであるが、異なるストリームのそれぞれのイベントは、任意で交互配置してもよい。

0017

イベントストリームには、関連するスキーマ「S」があり、スキーマは、時間情報と、名前付きの1つ以上の属性からなる一組の属性とを含む。特定のイベントストリームに属するすべてのイベントは、この特定のイベントストリームに関連するスキーマに従う。したがって、イベントストリーム(s,T)の場合、このイベントストリームは、スキーマ「S]を、(<time_stamp>,<attribute(s)>)として有し得る。<attributes>は、スキーマのデータ部分を表わし1つ以上の属性を含み得る。たとえば、株式相場表示機のイベントストリームについてのスキーマは、<株式銘柄>および<株価>という属性を含み得る。このようなストリームを介して受ける各イベントは、1つのタイムスタンプと上記2つの属性とを有する。たとえば、株式相場表示機のイベントストリームは、以下のイベントおよび関連するタイムスタンプを受けることができる。

0018

...
(<timestamp_N>,<NVDA,4>)
(<timestamp_N+1>,<ORCL,62>)
(<timestamp_N+2>,<PCAR,38>)
(<timestamp_N+3>,<SPOT,53>)
(<timestamp_N+4>,<PDCO,44>)
(<timestamp_N+5>,<PTEN,50>)
...
上記ストリームにおけるストリーム要素(<timestamp_N+1>,<ORCL,62>)の場合、イベントは、「stock_symbol」(株式銘柄)および「stock_value」(株価)という属性を有する<ORCL,62>である。このストリーム要素に関連するタイムスタンプは「timestamp_N+1」である。このように、連続イベントストリームは、イベントのフローであり、各イベントは同じ一連の属性を有する。

0019

イベントのモニタリングおよび分析プラットフォームにおいては、履歴キーパフォーマンスインジケータ(KPI)を連続クエリ内のしきい値として使用したいという要望がある場合がある。いくつかの例において、イベントは、ビジネスイベントデータ(たとえば、特定のビジネスエンティティに関連する、アクション、イベント、および/またはトランザクションログ情報)の一部である場合がある。いくつかの例において、ビジネスイベントデータは、限定されないが、トランザクションを記録するために作成された記録を含み得る。この記録は、場合によってはタイムスタンプを含み得る。加えて、ビジネスイベントを本明細書では「オペレーシナルイベント」と呼ぶこともある。このような履歴KPIをしきい値として使用する1つの例は、(たとえば時間単位で)トレンドラインのKPIトレンドを、平均値中央値、および/または標準偏差とともに、要求することおよび/または与えることを含み得る(たとえば、前日等の中央値といった履歴時間枠との比較を行なえるようにする)。このような場合、履歴KPIはデータベースに対してクエリされてもよく、履歴KPIをこの関数の結果と結合してもよい。これに代えてまたはこれに加えて、履歴KPIは、テーブルがCQLエンジンの中にあるデータベース(本明細書では「CQLエンジン」とも呼ばれる)へシッピング(shipping)されてもよい。加えて、いくつかの例において、CQLエンジンにおけるリレーションとして、履歴KPIを利用して履歴テーブルを実装してもよい。

0020

加えて、いくつかの例において、ストリームとしての履歴KPIの抽象化は、スケジュールに少なくとも一部基づいてまたはビジネス要件との関連で、CQLエンジンに自動的にプッシュしてもよく、使用し易い言語構文と、計算およびメモリという点においてより適切なリソースの利用を、もたらし得る。

0021

いくつかの局面において、ストリーム/リレーションを外部のテーブルと結合することにより、および/または関数をデータベースにシッピングすることにより、同様のケースをサポートしてもよい。しかしながら、データベースへの関数のシッピングは、ストリームのすべての入力データ(またはすべての入力データのサブセット)に対して生じることが要求される場合がある。しかしながら、その他の例では、カスタムアダプタを追加してテーブルをポーリングしこれをストリームとしてプッシュしてもよい。しかしながら、この手法は、CQLエンジン外部での、その他のjava(登録商標コーディングを含み得る。

0022

それでもなお、1つのクエリ内で履歴KPIのビジネスケースを抽象化することにより、ビジネスケースを捕捉することが可能であり、ビジネスケースを容易に利用することが可能であろう。リレーションに結合する内部ストリームがあるので、データベースクエリ呼出しは最小である。加えて、ストリーム生成を1つのクエリの中に封じ込めることにより、カスタムアダプタは回避し得る。

0023

いくつかの例において、ビジネスインテリジェンス(BI)は、特定の間隔で(たとえば場合によっては毎日ビジネスオペレーションを推進し最適化するのを支援し得る。このタイプのBIは通常、オペレーショナルビジネスインテリジェンス、リアルタイムビジネスインテリジェンス、またはオペレーショナルインテリジェンス(OI)と呼ばれる。いくつかの例において、オペレーショナルインテリジェンスは、BIとビジネスアクティビティモニタリング(BIM)との間の線引を曖昧にする。たとえば、BIは、履歴データの周期的クエリを重視するものであってもよい。したがって、これは過去を振り返ることを重視したものであってもよい。しかしながら、BIは、オペレーショナルアプリケーションの中に置くこともでき、したがって、単なる戦略的分析ツールから、ビジネスオペレーションの第一線まで拡張することができる。このため、BIシステムは、イベントストリームを分析し総計をリアルタイムで計算するように構成してもよい。

0024

いくつかの例において、連続クエリ言語サービス(CQサービス)は、BI分析サーバを拡張することにより、連続クエリを扱うとともにリアルタイムの警告を可能にするよう、構成し得る。CQサービスは、いくつかの局面において、BI分析サーバおよびCQLエンジンとの統合をもたらし得る。一例にすぎないが、BI分析サーバは、連続クエリをCQサービスに委託してもよく、CQサービスは、CQLエンジンに対する論理データベース(DB)ゲートウェイとして機能してもよい。このようにして、CQLエンジンは、BI分析サーバを、その分析機能およびセマンティックモデリングについて強化することができるであろう。

0025

いくつかの例において、CQサービスは、とりわけ以下の機能を提供し得る。
・BI分析サーバに対するサービスをCQLエンジンゲートウェイとしてリモート処理する。
イベントソースシンクアダプタ。
・論理的SQLに加えてCQL拡張からデータ定義言語DDL)を生成する。
・すべての種類の連続クエリおよび実装選択に対して統一されたモデルを提供する。
メタデータを維持し再始動能力をサポートする。
高アベイラビリティおよびスケーラビリティのサポート。

0026

加えて、いくつかの例において、OIは、可視性およびビジネスオペレーションに対する洞察を与えることができる、リアルタイムの動的なビジネス分析論の一形態である。OIは、BIまたはリアルタイムBIに、どちらも大量の情報の意味を解明するのを支援するという点において、関連付けられるかまたはこれと比較されることが多い。しかしながら、根本的な相違があり、OIは主としてアクティビティ中心であり得るのに対し、BIは主としてデータ中心であり得る。加えて、パターン識別するための、事後のかつ報告に基づく手法として従来使用されているBIと異なり、OIは、発展途上の状況(たとえば傾向およびパターン)を検出しこれに対応するのにより適している。

0027

いくつかの例において、ビジネスイベント分析およびモニタリング(BEAM)システムは、インフライト(in-flight)データを処理しおよび/または受けるCQLエンジンを含み得る。たとえば、CQLエンジンは、入ってくるリアルタイム情報(たとえばBIまたはOI)をクエリするかそうでなければ処理するように構成されたインメモリデータベースエンジンであってもよい。CQLエンジンは、時間のセマンティクスを利用または理解することができ、データのウィンドウの定義を処理できるように構成し得る。CQLエンジンの利用は、場合によっては、入ってくるデータに対してクエリを常に実行することを必要とし得る。

0028

いくつかの局面において、CQLエンジンは、あらゆる特性を備えたクエリ言語を含み得る。このため、ユーザは、クエリという点から計算を指定し得る。加えて、CQLエンジンは、メモリを最適化し、クエリ言語の特徴、オペレータシェアリング豊富パターンマッチング、豊富な言語構築等を利用するように、設計してもよい。加えて、いくつかの例において、CQLエンジンは、履歴データおよびストリーミングデータ双方を処理してもよい。たとえば、ユーザは、カリフォルニア売上高がある目標を超えたときに警告を送るようにクエリを設定してもよい。このように、いくつかの例において、警告は、履歴売上高データおよび入ってくる生(すなわちリアルタイム)の売上高データに少なくとも一部基づき得る。

0029

いくつかの例において、CQLエンジンまたは以下で説明する概念のその他の特徴は、履歴に関する文脈(すなわちウェアハウスデータ)を、入ってくるデータとリアルタイム方式で組合わせるように、構成してもよい。したがって、場合によっては、本開示は、データベース格納情報およびインフライト情報の境界について説明することがある。データベース格納情報およびインフライト情報はいずれもBIデータを含み得る。このため、データベースは、いくつかの例において、BIサーバであってもよく、または、何らかの種類のデータベースであってもよい。さらに、いくつかの例において、本開示の特徴により、上記特徴を、ユーザがコードをプログラムする、そうでなければ書込む方法を知らない状態で、実現することができる。言い換えると、上記特徴は、特徴が豊富なユーザインターフェイス(UI)に与えられてもよい、または、履歴データとリアルタイムデータの組合わせを非開発者が実現できるようにする他の手法に与えられてもよい。

0030

加えて、いくつかの例において、本開示では、ダッシュボードカスタマイズおよび/または個別化(personalization)について説明することができる。CEPエンジンは、リアルタイム情報および履歴データの高度な連続分析を含むように構成し得る。ビジネスプロセスモデルBPM)は、BPM表記(BPMN)モデルとして定義されたポリシーおよびプロセスの、モデルによって推進される実行を行なうことを含み得る。キー結果インジケータ(KRI)を利用して、ユーザに、大局的またはクリティカルサクスフクターCSF)においてどのように実行したかを伝えてもよい。たとえば、多数の動作に対する結果を提供してもよく、キーパフォーマンスインジケータ(KPI)よりも長い期間をカバーしてもよく、および/または月毎もしくは3ヶ月毎に見直されてもよい。結果インジケータ(RI)を利用して、ユーザに、何をなしたかを伝えてもよい。たとえば、アクティビティおよび財務パフォーマンス測定を要約してもよく、および/または、毎日、毎週、もしくは毎月更新してもよい。さらに、いくつかの局面において、パフォーマンスインジケータ(PI)を利用して、ユーザに、どのアクションを起こすべきかを伝えてもよく、または、少なくとも助言を与えてもよい。加えて、非財務情報を含んでもよく、場合によってはKPIを補完してもよい。

0031

いくつかの局面において、PIは、週7日24時間、毎日、週一回、またはそれよりも少ない周期で見直してもよい。場合によっては、KPIは、組織の現在および将来の成功に最も重要な一組の測定を含み得る。いくつかのKPIは毎日かまたは週7日24時間更新してもよく、一方で、残りの情報は毎週報告してもよい。KPI通知の例は、飛行機もしくはその他のサービス車両遅れたか否かまたはトレイラーが前日重量不足のものを配送会社に送ったか否か(たとえばトラックのより適切な利用を発見するため)の通知を含み得るが、これに限定されない。

0032

いくつかの例において、リアルタイムビジネスイベントを管理するための実施形態は、ビジネスアクティビティのモニタリング、複合イベント処理、およびビジネスインテリジェンスを(たとえばシームレスに)統合して、複合かつリアルタイムの一組のオペレーショナル情報を提供することを含み得る。加えて、ビジネスイベントの連続モニタリングを利用して、ビジネスプロセスおよび/またはワークフローのリアルタイムの可視化を得てもよい。いくつかの例において、OIは、従来のビジネスインテリジェンスで補完してもよい。このため、オペレーショナルインテリジェンスは、上記のように、よりデータ中心の、ビジネスオペレーション対BIについてのより深い洞察を与え得る。たとえば、OIはビジネスがリアルタイム方式で如何に遂行されているか判断するための洞察を取得し得る。一方、BIは、データウェアハウス化(たとえば事後情報の表示)に、より類似していてもよい。

0033

KPIの例は、リアルタイムコール処理時間を含み得る。たとえば、ユーザは、リアルタイムKPIを、週または日に対し、15分に設定してもよい。このため、ユーザが直ちに行動を起こすようにすることができる。さらに、BIウェアハウスからの履歴(データ中心)情報を現在のリアルタイムデータと結合することにより、ユーザは、現在の状態で(連続して更新されるストリーミングデータを含む)ビジネスが如何に実行されているか見ることができるであろう。いくつかの例において、リアルタイム情報の高度な連続分析は、データ処理に含まれていてもよい。加えて、増分計算を実施し、ディスプレイ、可視化、ユーザインターフェイス(UI)等に含めてもよい。

0034

加えて、いくつかの例において、本開示は、戦術的クエリから連続クエリへの変換を可能にすることに向けられている場合がある。上記のように、この変換は、ユーザが、スタティックデータ、および/または、1つ以上の戦術的クエリを介して取出した履歴ビジネスイベントデータを見ている間に、変換を要求できるよう、実行時に可能になるようにしてもよい。いくつかの局面において、ビジネスイベント分析およびモニタリング(BAM)コンポーザは、ダッシュボード、KPI、および/または警告を定義することができる実行時設計時間(Design Time at Run Time)API(DT@RT)機能を提供するウェブアプリケーションであってもよい。これは、いくつかの例において、サービス指向アーキテクチャ(SOC)の一般的なコンソールフレームワークまたはその他の適切なフレームワークを用いて構築すればよい。これは、警告およびビジネスダッシュボードを構築する設計時間ツールとして機能することができ、CQL、データ制御、ADFタスクフロー、分析サーバとのやり取り等の複雑さをユーザから隠すように構成されてもよい。これはまた、ダッシュボードにおけるビジネスビューから要求されたデータオブジェクト(セマンティックレイヤ)をユーザが作成するのに役立ち得る。このため、戦術的クエリ(たとえば履歴データにクエリするためのSQLまたはその他の言語)からリアルタイムクエリ(たとえばCQLまたはその他の種類の連続クエリ言語)に変換するための方法を実現することができる。いくつかの例において、この変換は、データプルモデルからデータプッシュモデルへの変更を含み得る。さらに、この変換はまた、データに対するスライスアンドダイス(slice and dice)機能を提供しおよび/またはユーザによる個別化を可能にし得る。

0035

いくつかの例において、実行時におけるビジネスビューの「スライスアンドダイス」機能を可能にするように構成し得る、1つ以上のダッシュボードまたはその他のユーザインターフェイスを与えることができる。「スライスアンドダイス」機能を通してユーザが利用できるのは少なくとも3つの機能であろう。この機能は、フィルタ、ディメンション変更、および/またはアクティブデータサービス(ADS)の起動を含むが、これらに限定されない。ADSの場合、ユーザは、(移動)時間に基づく基準(たとえば最後の10分)またはイベントに基づく基準(たとえば最後の100のイベント)のうちのいずれかまたは双方を選択することができ、これは、出力スロットルウィンドウ補足される(たとえば、出力を毎分、たとえその一分内に複数のイベントがあってもコラプスさせる)。出力スロットルは、ユーザに対し、これら新たなデータを受ける速度に関する選択肢を与えることができる。いくつかの局面において、ユーザは、既に実装されているかまたはデータ収集および/または表示を既に始めている戦術的および/または連続クエリに対し、その他のフィルタを適用することができるであろう。たとえば、設計時に既に保存されているクエリにはフィルタが適用されているため、(たとえば関連があるとユーザが判断した)特定のデータのみが与えられるようにしてもよい。加えて、いくつかの局面において、ユーザはまた、実行時に(たとえばダッシュボード上のデータを見ている間に)ディメンションを変更することもできる(たとえば設計時にディメンションが選択される場合)。さらに、いくつかの例において、ユーザは、元のビジネスビューのクエリのデータに発生したリアルタイムの変更を見ることができるであろう。たとえば、ビューは、データに生じた変更の可視化をアクティブにするために、スタティックからアクティブに変化させてもよい。言い換えると、ADSを可能にすることによって、システムを、戦術的クエリ(一度送られるデータ)を連続クエリ(出力が連続的にプッシュアウトされる連続する増分計算)に変換するように構成して、リアルタイムのデータ変更を説明してもよい。いくつかの例において、上記変更は各々、特定のユーザ各々に対して実現されたままにしてもよく(たとえばユーザプロファイルまたはその他の設定に関連する)ユーザ個別化の一部として保存してもよい。

0036

上記および下記技術は、多数のやり方でおよび多数の文脈において実装し得る。以下において詳細に説明する、実装および文脈のいくつかの例を下記図面を参照しながら示す。しかしながら、以下の実装および文脈は、数あるうちのほんの一部にすぎない。

0037

図1は、連続クエリとスケジュールされたクエリの複合的実行の管理の技術を実装し得るシステムまたはアーキテクチャ100の簡略化された例を示す。アーキテクチャ100において、1人以上のユーザ102(たとえば口座所有者)は、ユーザの計算装置104(1)〜104(N)(まとめて「ユーザ装置104」とする)を利用して、1つ以上のサービスプロバイダコンピュータ106に、1つ以上のネットワーク108を介してアクセスし得る。いくつかの局面において、サービスプロバイダコンピュータ106も、1つ以上のストリーミングデータソースコンピュータ110および/または1つ以上のデータベース112とネットワーク108を介して通信し得る。たとえば、ユーザ102は、サービスプロバイダコンピュータ106を利用して、ストリーミングデータソースコンピュータ110および/またはデータベース112のデータにアクセスし得る、そうでなければこのデータを管理し得る。データベース112は、リレーショナルデータベースSQLサーバ等であってもよく、いくつかの例では、履歴データ、イベントデータ、リレーション、アーカイブされたリレーション等を、ユーザ102に代わって管理し得る。加えて、データベース112は、ストリーミングデータソースコンピュータ110から提供されるデータを受けることができ、そうでなければ格納することができる。いくつかの例において、ユーザ102は、ユーザ装置104を利用して、サービスプロバイダコンピュータ106と、クエリ(「クエリステートメント」とも呼ばれる)を与えることによりまたはデータ(たとえば履歴イベントデータ、ストリーミングイベントデータ等)に対する他の要求を与えることにより、対話し得る。このようなクエリまたは要求は次に、データベース112のデータおよび/またはストリーミングデータソースコンピュータ110から入ってくるデータを処理するサービスプロバイダコンピュータ106によって実行し得る。さらに、いくつかの例において、ストリーミングデータソースコンピュータ110および/またはデータベース112は、サービスプロバイダコンピュータ106に関連付けられた、一体化された分散環境の一部であってもよい。

0038

いくつかの例において、ネットワーク108は、ケーブルネットワークインターネット無線ネットワークセルラーネットワークイントラネットシステム、および/またはその他の私的および/または公的ネットワーク等の、複数の異なる種類のネットワークのうちの1つまたはこれらを組合わせたものを含み得る。示されている例はユーザ102がネットワーク108を通してサービスプロバイダコンピュータ106にアクセスすることを示しているが、記載されている技術は、ユーザ102が、1つ以上のサービスプロバイダコンピュータ106と、1つ以上のユーザ装置104を介し固定電話を通して、またはキオスクを介して、または他のやり方で、対話する場合に、等しく適用し得る。また、記載されている技術は、他のクライアントサーバ構成(たとえばセットトップボックス等)においても、および、非クライアント/サーバ構成(たとえばローカル格納アプリケーション等)においても、適用し得ることが注目される。

0039

ユーザ装置104は、携帯電話スマートフォン携帯情報端末(PDA)、ラップトップコンピュータデスクトップコンピュータシンクライアント(thin-client)装置、タブレットPC等の、任意の種類の計算装置であればよいが、これらに限定されない。いくつかの例において、ユーザ装置104は、サービスプロバイダコンピュータ106と、ネットワーク108を介してまたはその他のネットワーク接続を介して通信し得る。さらに、ユーザ装置104はまた、処理するデータベース112(またはその他のデータ記憶装置)のデータを要求するための、1つ以上のクエリまたはクエリステートメントを与えるように構成し得る。

0040

いくつかの局面において、サービスプロバイダコンピュータ106はまた、モバイルデスクトップ、シンクライアント、および/またはサーバ等のクラウド計算装置といった、任意の種類の計算装置であればよいが、これらに限定されない。いくつかの例において、サービスプロバイダコンピュータ106は、ユーザ装置104と、ネットワーク108を介してまたはその他のネットワーク接続を介して通信し得る。サービスプロバイダコンピュータ106は、おそらくは、クラスタに、サーバファームとして、または、互いに関連がない個々のサーバとして配置された、1つ以上のサーバを含み得る。これらサーバは、本明細書に記載のブール述部の高速評価を含むがこれに限定されない、本明細書に記載の特徴を実行するように、そうでなければホストするように、構成し得る。加えて、いくつかの局面において、サービスプロバイダコンピュータ106は、ストリーミングデータソースコンピュータ110および/またはデータベース112を含む、一体化された分散計算環境の一部として構成し得る。

0041

例示としてのある構成において、サービスプロバイダコンピュータ106は、少なくとも1つのメモリ136と、1つ以上の処理部(またはプロセッサ)138とを含み得る。プロセッサ138は適宜、ハードウェア、コンピュータにより実行可能な命令、ファームウェア、またはこれらの組合わせにおいて実装し得る。コンピュータにより実行可能な命令またはファームウェアによる、プロセッサ138の実装は、記載されているさまざまな機能を実行するために、何らかの適切なプログラミング言語で書かれた、コンピュータにより実行可能なまたはマシンにより実行可能な命令を含み得る。

0042

メモリ136は、プロセッサ138にロード可能でかつプロセッサ138において実行可能なプログラム命令と、これらプログラムの実行中に生成されるデータとを格納し得る。サービスプロバイダコンピュータ106の構成および種類に応じて、メモリ136は、揮発性ランダムアクセスメモリ(RAM)等)であってもよくおよび/または不揮発性読出専用メモリ(ROM)、フラッシュメモリ他等)であってもよい。サービスプロバイダコンピュータ106またはサーバはまた、着脱可能な記憶装置および/または着脱不能な記憶装置を含み得る、その他の記憶装置140を含み得る。その他の記憶装置140は、磁気記憶装置光ディスク、および/またはテープ記憶装置を含み得るがこれらに限定されない。ディスクドライブおよびこれらディスクドライブに関連するコンピュータ読取可能な媒体は、計算装置のための、コンピュータ読取可能な命令、データ構造プログラムモジュール、およびその他のデータの、不揮発性記憶装置を提供し得る。実装によっては、メモリ136は、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリDRAM)、またはROM等の、複数の異なる種類のメモリを含み得る。

0043

着脱可能および着脱不能な、メモリ136およびその他の記憶装置140はすべて、コンピュータ読取可能な記録媒体の例である。たとえば、コンピュータ読取可能な記録媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、またはその他のデータ等の、情報の格納のための何等かの方法または技術において実装される、揮発性または不揮発性で着脱可能または着脱不能な媒体を含み得る。メモリ136およびその他の記憶装置140はすべて、コンピュータ記録媒体の例である。

0044

サービスプロバイダコンピュータ106はまた、アイデンティティインターフェイスコンピュータ120が、格納されているデータベース、別の計算装置もしくはサーバ、ユーザ端末、および/またはネットワーク108上のその他の装置と通信できるようにする、通信接続142を含み得る。サービスプロバイダコンピュータ106はまた、キーボードマウスペン音声入力装置タッチ入力装置、ディスプレイ、1つ以上のスピーカプリンタ他等の、入出力(I/O)装置144を含み得る。

0045

次にメモリ136の内容の詳細について述べる。メモリ136は、オペレーティングシステム146と、ハイブリッドクエリモジュール148および/またはクエリ変換モジュール149を少なくとも含む、本明細書に開示される特徴を実装するための、1つ以上のアプリケーションプログラムまたはサービスとを含み得る。本明細書で使用されるモジュールは、サービスの一部であるサーバまたはサーバのクラスタによって実行されるプログラミングモジュールであってもよい。この特定の文脈において、モジュールを、サービスプロバイダコンピュータ106の一部であるサーバまたはサーバのクラスタによって実行してもよい。いくつかの例において、ハイブリッドクエリモジュール148は、連続クエリとスケジュールされたデータベースクエリとを組合わせるためのおよび/またはこの組合わせを実行するための1つ以上のハイブリッドクエリ150を生成するかそうでなければ提供するように構成し得る。たとえば、連続クエリ(たとえばストリーム)をインスタンス化してもよく、(たとえばタイマに対する)データベースクエリの結果を連続クエリにプッシュするかそうでなければ含めてもよい。さらに、いくつかの例において、ハイブリッドクエリ150は、連続クエリ154に含まれている1つ以上の戦術的クエリ結果152を含み得る。このようにして、非連続クエリ(たとえば戦術的クエリ結果152を提供する戦術的クエリ)は効果的に連続的に実行することができる。加えて、以下では、ハイブリッドクエリモジュール148および/またはサービスプロバイダコンピュータ106の動作のいくつかの例についてより詳細に説明する。

0046

加えて、いくつかの例では、クエリ変換モジュール149を、戦術的クエリから連続クエリへの変換を可能にするように構成してもよい。上記のように、この変換は実行時に行なってもよく、この変換により、以前静的に(たとえばアクティブでないやり方で)表示されていた履歴データに対するリアルタイムの変更をユーザ102は(ユーザ装置104のインターフェイスを介して)見ることができるであろう。いくつかの局面において、ユーザ102は、ユーザ装置104によって表示されるおよび/またはサービスプロバイダコンピュータ106によって与えられる、ダッシュボードまたはその他のユーザインターフェイスにおける、(たとえば戦術的クエリからの)スタティックデータを見ている間に、実行時において可視化をアクティブにすることができるであろう。いくつかの例において、ユーザ102は、先ず、ダッシュボードおよび/またはクエリ変換モジュール149の機能にアクセスすることについての認証または認可を得る必要があるであろう。デフォルトで、いくつかのダッシュボードビューには、ビジネスビューの背後のクエリとしてのSQLが付随してもよい。ユーザ102がスタティックビューをアクティブビューにすることを望む場合、ユーザは、クエリ変換モジュール149を(たとえばダッシュボードのアイコンまたはその他のインターフェイス要素を通して)利用することができるであろう。その場合、クエリ変換モジュール149は戦術的クエリ(すなわちこの例ではSQLクエリ)を連続クエリ(たとえばCQLクエリ)に変換することができ、アクティブな変更を処理するためにビューをダッシュボードに再びロードすればよい。その他の機能(たとえばフィルタリングおよび/またはディメンション変更)もダッシュボードを介して可能にすればよい。加えて、いくつかの例において、ユーザ102は、実行時にADSを起動し、関連するビュー(たとえばダッシュボード)においてアクティブデータを見ることができるであろう。これら変更は、ユーザ102に固有のものであって、その他のユーザのビューには影響しないであろう。

0047

いくつかの例において、実行時にユーザ102がADSを起動すると、pageDefファイル(またはその他の定義ファイル)が更新されて、アクティブビューが起動されたことを示すであろう。さらに、ADS実行時パラメータをpageDefファイルに格納することによって個別化を実現することもでき、そうすると、次回ユーザが来たときにダッシュボードはユーザが中断した場所となり得る。加えて、UIまたはその他のインターフェイスは、チェックボックスドロップダウンボックス等を用いてADSを起動できるようにするポップアップを提供してもよい。内部では、クエリ変換モジュール149が、ユーザ102の選択および/またはpageDefファイルに少なくとも一部基づいて、戦術的クエリを連続クエリに変換してもよい。スライディングウィンドウおよび/またはレンジをUIを介して指定してもよい。上記のように、pageDefファイルにおける変更は、要求を行なう(たとえばボックスをチェックする等)特定のユーザ102に対してのみ実現することができる。上記のように、実行時にADSを起動することにより、ユーザ102は、戦術的クエリを連続クエリに実行時に変えることができる。いくつかの例において、ビジネスビューがダッシュボードにおいて与えられたとき、ユーザ102は、ダッシュボードを表示しているUIの設定部から「アクティブにする」というオプションを選ぶことができるであろう。

0048

ビューがアクティブになることをユーザ102が要求すると、アクティブデータプロパティセットアップするのにユーザ102が使用できるいくつかのオプションが可能になるであろう。たとえば、アクティブデータコラプスおよび/または時間ウィンドウ機能が与えられてもよい。アクティブデータコラプス機能は、データを1つ以上のチャンクにコラプス(解体)させ各チャンク内のデータを速やかに(たとえば特定の時間間隔で)更新することをユーザ102が行なえるようにすることを含み得るが、これに限定されない。加えて、時間ウィンドウ機能は、データ内の時間ウィンドウをユーザ102が求めるか否かをユーザ102が指定できるようにすることを含み得るが、これに限定されない。そうであれば、このオプションによって、ユーザ102は、ウィンドウの長さおよびウィンドウの更新間隔を指定することができる。ユーザ102が上記プロパティを選択した場合、ユーザ102は、データをセットアップし得る選択(たとえば「OK」アイコン等の選択)を行なえばよく、グラフリフレッシュ後、ビジネスビューをアクティブにすればよい。場合によっては、各ビジネスビューと関連し得る、管理されているJavaビーンが、ポップアップにおけるデータの投入を処理すればよい。これはまた、ビジネスビューのpageDefファイルに適切な変更を加えるようコードを呼び出すことができるポップアップ閉鎖イベントを扱うこともできる。データ制御(DC)レイヤはその後、pageDefファイルからデータを取出してビューをアクティブにすればよい。

0049

サービスプロバイダコンピュータ106および/またはユーザ装置104に存在し得るその他の種類のコンピュータ記録媒体(これも非一時的であってもよい)は、プログラマブルランダムアクセスメモリ(PRAM)、SRAM、DRAM、RAM、ROM、電気的に消去可能なプログラマブル読出専用メモリ(EEPROM)、フラッシュメモリもしくはその他のメモリ技術コンパクトディスク読出専用メモリ(CD−ROM)、デジタル汎用ディスク(DVD)もしくはその他の記憶装置、磁気カセット磁気テープ磁気ディスク記憶装置もしくはその他の磁気記憶装置、または、所望の情報を格納するのに使用することができサービスプロバイダコンピュータ106および/またはユーザ装置104からアクセス可能なその他の媒体を含み得るがこれらに限定されない。上記のうちのいずれかを組合わせたものも、コンピュータ読取可能な媒体の範囲に含まれるはずである。

0050

これに代えて、コンピュータ読取可能な通信媒体が、コンピュータ読取可能な命令、プログラムモジュール、または、搬送波等のデータ信号内で伝送されるその他のデータ、またはその他の伝送を含む場合がある。しかしながら、本明細書で使用されるコンピュータ読取可能な記録媒体は、コンピュータ読取可能な通信媒体を含まない。

0051

図2は簡略ブロック図200を示し、これを用いて、連続クエリとスケジュールされたクエリの複合的実行の特徴を説明することができる。上記のように、いくつかの例において、ハイブリッドクエリ150は、図1のハイブリッドクエリモジュール148によって実行されてもよく、1つ以上の戦術的クエリ結果152および/または1つ以上の連続クエリ154を含み得る。いくつかの例において、ハイブリッドクエリ150は、CQLエンジン202によって実行されるかそうでなければ管理されてもよい。CQLエンジン202は、(たとえばストリーミングデータ、イベントデータ、実データ、リアルタイムデータ等に少なくとも一部基づいて)連続クエリを実行するように構成されてもよい。このため、戦術的クエリと連続クエリの複合的実行を行なうことは、ハイブリッドクエリ150を実行することを含み得るが、これに限定されない。場合によっては、ハイブリッドクエリ150を、スケジュールまたはその他の時間間隔に少なくとも一部基づいて、実装および/またはリフレッシュしてもよい。

0052

いくつかの局面において、戦術的クエリは、図1のデータベース112と同様または同一のデータベースからデータを取出してもよい。このとき、戦術的クエリ結果152(すなわちデータベース112からのデータ)は、セットアップされてイベントストリームからイベント204を取出すかそうでなければ収集する連続クエリ154に、(たとえば属性またはその他の値として)含まれるであろう。いくつかの例では、イベントを、図1のストリーミングデータソースコンピュータ110から、または、他のソースおよび/またはストリームから受けることがある。しかしながら、場合によっては、データベース112および/またはストリーミングイベント204は、CQLエンジン202の外にあるかそうでなければCQLエンジン202からアクセスできないことがある。このように、CQLエンジン202は、最終結果について、ハイブリッドクエリ150に依存するおよび/または頼ることがある。加えて、いくつかの例において、連続クエリサービス(「CQLサービス」とも呼ばれる)206は、CQLエンジン202および/またはハイブリッドクエリ150を、管理および/または制御し得る。

0053

いくつかの例では、上記のように、連続クエリ154との関連でデータベースクエリ言語を利用できるように、ハイブリッドクエリ150を実装してもよい。たとえば、SQLクエリ(すなわち戦術的クエリ結果152を提供し得る戦術的クエリ)を利用することによって、データベース112から結果152を得てもよい。次に、この結果152は、連続クエリ154において利用されて、ストリーミングデータ(すなわちイベント204)上で実行されてもよい。言い換えると、ハイブリッドクエリ150は、データベースクエリに少なくとも一部基づいてイベントデータ204のストリームにクエリする機能を提供し得る。さらに、ハイブリッドクエリ150は、連続クエリ154を周期的に実行する機能を提供し得る。

0054

ハイブリッドクエリ150はまた、連続クエリを履歴BI論理クエリ(たとえばこれは戦術的クエリの別の例であってもよい)と組合わせるクエリをサポートし得る。たとえば、連続クエリモデルの中で履歴KPIデータを使用するとき、履歴BI論理クエリはスケジュールに従って実行し、結果はストリームとしてCQLエンジン202に送ってもよい。場合によっては、ハイブリッドクエリ150の実装には、CQLの特徴と、(たとえばスケジュールに対する)履歴BI論理クエリの特徴双方を含む構文が必要であろう。いくつかの例において、この構文は以下の例を含み得る。

0055

0056

加えて、ストリーム名は、連続クエリの「where」におけるストリームと一致し得る。ストリーム名は完全修飾されてもよい(fully qualified)。クエリは引用されたストリングの中に与えられてもよい。クエリはCQサービス206に対して不透明であってもよく、CQサービス206はこれをパースしようとしなくてもよい。さらに、スケジュール構文は、「expire」句なしのスケジュールされた戦術的クエリにおいて使用されるのと同じであってもよい。

0057

いくつかの局面において、ハイブリッドクエリ150は、連続部分、戦術的部分、およびスケジュール部分という、3つの部分を含み得る。以下のハイブリッドクエリ150は、平均コール処理時間が昨日の平均コール処理時間よりも長い場合に警告を送る限定されない1つの例を示している。この平均コール処理時間は毎日深夜に計算される。

0058

0059

上記ハイブリッド連続クエリ150の例の場合、以下の動作が生じているであろう。
1.ストリーム、CALLCENTER.CC4HistKPIが、「create stream CALLCENTER.CC4HistKPI(prevDayCPT double, allowedDeviatin double)」ddlを用いて作成される。
2.cql部分が、CQLエンジンに正規cqlとして登録される。
3.SQL部分が、与えられたスケジュール「0:0AM、一日毎」に従いビームプロダクトにおけるスケジューラを用いて実行する。
4.SQL実行からの結果が、ストリームとしてビームプロダクトによりCQLエンジンにプッシュされる。
5.cql部分における結合部分が、ストリームとリレーションの間の結合を処理する。

0060

図3は、一例に従い、連続クエリとスケジュールされたクエリの複合的実行を実装するための1つ以上の技術300を示す簡略フロー図を示す。図3において、ここでも、サービスプロバイダコンピュータ106は、ユーザ102および/またはユーザ装置104とネットワーク108を介して通信することが示されている。加えて、いくつかの例において、サービスプロバイダコンピュータ106は、1つ以上のイベントプロセッサコンピュータ302および/またはデータベース304を含み得る、または、これと(たとえばネットワーク108を介して)通信し得る。図3では技術300が(任意の連続番号を含む)特定の順序で示されているが、特定の順序は不要であることおよび技術300の1つ以上のステップまたは部分を省略、スキップ、および/または並べ替えることができることが、理解されるはずである。限定されない少なくとも1つの例において、図1および図2を参照しながら先に説明した1つ以上のサービスプロバイダコンピュータ106は、ユーザ装置104から、クエリおよび/またはデータ処理要求(たとえばKPIおよび/またはBIデータ)を受けることができる。クエリおよび/またはデータ要求は、データベースデータ(たとえばデータベース304に格納されているデータ)および/またはストリーミングイベントデータ(たとえばイベントプロセッサ302からリアルタイムで受けているデータ)の処理(たとえば取出し、格納、削除等)を要求するように構成し得る。加えて、いくつかの例において、サービスプロバイダコンピュータ106はまた、ストリームを生成してもよく、および/またはストリームを、連続クエリエンジン(たとえば図2のCQLエンジン202であるがこれに限定されない)、サービス(たとえば図2のCQサービス206であるがこれに限定されない)、および/またはイベントプロセッサ302に登録してもよい。ストリームは、イベントプロセッサ302からリアルタイムKPIデータを取出すかそうでなければ収集するように構成されてもよい。

0061

いくつかの例において、サービスプロバイダコンピュータ106はまた、1つ以上の戦術的クエリ(たとえばSQLクエリ等)を与えるまたは実装することにより、データベース304または別の記憶システムから履歴データを取出してもよい。いくつかの例において、クエリは、スケジュールに少なくとも一部基づいて与えられ、そうでなければ実装されてもよい。戦術的クエリに少なくとも一部基づいて、サービスプロバイダコンピュータ106は、データベース304からデータを受けてもよい。言い換えると、サービスプロバイダコンピュータ106はクエリ結果を受けてもよい。サービスプロバイダコンピュータ106は、次に、戦術的クエリ結果をストリームに含めることにより、連続クエリがこの戦術的クエリ結果に少なくとも一部基づいて処理されるようにしてもよい。サービスプロバイダコンピュータ106は次に、ストリーム(すなわち連続クエリ結果)からデータを受け、このデータを、および/または処理の確認(acknowledgement)を、ユーザコンピュータ104に与えてもよい。

0062

図4は簡略ブロック図400を示し、これを用いて、戦術的クエリから連続クエリへの変換の特徴を説明することができる。上記のように、いくつかの例において、アクティブデータサービス(ADS)402は、図1のクエリ変換モジュール149によって実行されてもよく、1つ以上のプログラミングレイヤ(モジュールとも呼ばれる)を含み得る。これら特徴(すなわちレイヤおよび/または上記オプション)の実装は、DCレイヤ404によって管理されてもよい。いくつかの例において、DCレイヤ404は、アプリケーション開発フレームワーク(ADF)のバインド(binding)要素であってもよく、JDev環境において書かれてもよい。DCレイヤ404は、DT@RTにおいて作成されてもよく、クエリを動的に変更しバインド定義をオンザフライ再構成することによって実行時のスライスアンドダイスをサポートする機構を備えていてもよい。さらに、いくつかの例において、ディメンションまたはフィルタが変更された場合、これら変更はDCに送られていてもよく、よって、DCは上記変更を含み得る新たなモデルを準備してから要求を実行のためにバックエンドに送ってもよい。結果が返された後、DCは、x軸(通常は時間のディメンション)およびデータ系列(新たなフィルタによって変更し得る)双方を必要とするリアルタイム可視化変更を含み得る新たなモデルデータをバインドしてもよく、これはまた、戦術的クエリを連続クエリに変換するための導管コンジットconduit)であってもよい。場合によっては、個別化を適用して、ダッシュボードの各インスタンスが自身のスライスアンドダイスをサポートできるようにしてもよい。

0063

DCレイヤ404は、ビジネスビューのpageDefから値を選び出すように構成されてもよい。DCレイヤ404はまた、ADFコンテキストを通して自身がバインドされているビジネスビューのpageDefのアクセスを取得してもよい。これは次に、インメモリ修飾子405に変更を加えこれを次のレイヤにセットアップしてデータをフェッチしビジネスビューに返してもよい。ADS402はまた、UIレイヤ406、メタデータサービス408、レポートキャッシュレイヤ410、および/または共通クエリレイヤ412を含み得る。UIレイヤ406は、新たなフィルタをセットアップするためのオプションをユーザ102に与えてもよい。UIレイヤ406はまた、ユーザ102から与えられる情報を捕捉しこれを次のレイヤが理解できる適切なフォーマットメタデータファイルにセットアップしてもよい。メタデータサービスレイヤ408は、更新すべきビジネスビューの基底pageDef、および、UIレイヤ406から捕捉された値を更新できるように構成されてもよい。これら変更がなされたら、要求を順序付けることにより、この情報を処理のために次のレイヤに送ることができるようにしてもよい。いくつかの例において、レポートキャッシュレイヤ410は、DCレイヤ404をリッスンすることにより適切な修飾子を得てもよく、実際のデータ414を、共通クエリレイヤ412を用いてフェッチした後に返す。

0064

いくつかの例において、ユーザ102は、データ414をUIレイヤ406に入力してもよい。このデータ414は情報の形に適切に構成してもよい。このデータは、情報として、ビジネスビューのpageDefファイルを通してデータ制御レイヤ404に送るようよう要求されるものである。DCレイヤ404は、ADFコンテキストを通して、自身がバインドされているpageDefを処理してもよく、また、要求した情報を獲得し得る。フィルタを適用するために、フィルタノードを、ユーザから集めた情報を示すpageDefファイルに追加してもよい。サンプルは次の通りである。

0065

0066

いくつかの例において、このノードは、ADFにおけるビューのpageDefの一部でなくてもよい。したがって、拡張可能マークアップ言語(XML)のファイルにこれが適合するためには、カスタムネームスペースのユーザが実装されてもよい(たとえば上記ノードにおいて強調表示される)。このノードは、次にDCレイヤ404によって選び出されインメモリ修飾子405に設定されることにより、ビジネスビューにおける上記クエリに対して既に存在する修飾子の上にユーザ102が行なった変更を示してもよい。この修飾子がレポートキャッシュレイヤ410に送られて実際のデータ414をDCレイヤ404に返すと、DCレイヤ404はデータをUIレイヤ406に返す。

0067

同様に、グループ変更を行ないビューをアクティブにするには、pageDefのXMLを新たなグループの値で修正し「ChangeEventPolicy」属性を「push」に設定すればよい。これは次のように見えるであろう。

0068

0069

しかしながら、このノードも、ADFフレームワークの一部でなくてもよい。したがって、いくつかの例では、これをそのまま使用してもよく、グループのノード内の変更は、UIレイヤ406においてユーザ102によってなされたグループの変更を示す。よって、同様の手法に従い、DCレイヤ404からUIレイヤ406にデータ414を返せばよい。加えて、いくつかの例では、アクティブデータプロパティのセットアップは、pageDefファイルで使用される以下のXMLノードを含み得る。

0070

0071

この場合も、このノードは、ADFフレームワークの一部でなくてもよい。したがって、カスタムネームスペースを利用してもよい。加えて、スライスアンドダイスという特徴がグループを変化させたとき、これは内部でクエリの形状を変化させているであろう。DCレイヤ404内部での構造定義は、クエリの形状に少なくとも一部基づき得る。DCレイヤ404がpageDefにアクセスした時点で、既に、元のクエリに対して構造定義が作成されているであろう。そこで、DCレイヤ404は、メモリ内クエリ定義を修正して新たなグループに一致させることを要求し、また、DCレイヤ404のインスタンスにアクセスする/これを使用するpageDefにバウンドされると予想される新たな構造定義を動的に再び作成してもよい。そうすると、DCレイヤ404がRCレイヤ410上でビューを開くと、これは、インメモリ修飾子405で修正された新たなクエリ定義を用いてもよい。いくつかの例において、こうすれば、ADS402のレイヤが確実に同期するようにすることができる。

0072

いくつかの例において、フィルタが適用されると、これは、クエリ定義を変更するがクエリの形状は変更しないので、結果として構造定義は変化しないであろう。フィルタは、メモリ内のクエリ定義のみを変更してもよく、クエリの「where句」および「パラメータ」が変化し得る。これは、RCレイヤ410にも同様に伝搬されてもよい。DCレイヤ404が以前のクエリ定義を有する開いたビューを既に有している場合、これは、古いクエリ定義を有する古いビューを閉じて新たなクエリ定義を有する新たなビューをRCレイヤ410上で開くことをRCレイヤ410に要求してもよい。加えて、属性「ChangeEventPolicy」が「プッシュ」に設定されたとき、DCレイヤ404は、ActiveDataPropertiesノードを読むことによって、アクティブデータプッシュビューが作成されるときにRCレイヤ410が予想するウィンドウ拡張値を有する適切なViewSetBuilderを作成してもよい。この時点で、DCレイヤ404は、RCレイヤ410上の古い戦術的ビューを閉じて新たなアクティブデータ定義を作成して、RCレイヤ410上で新たなビューを開いてもよい。新たなビューをRCレイヤ410上で開いた後、DCレイヤ404は、データの変更を受けるために、アクティブデータリスナをRCレイヤ410上に登録してもよい。RCレイヤ410がDCリスナにデータをプッシュし始めると、DCレイヤ404も同様にADFレイヤにデータをプッシュし始めてもよい。

0073

さらに、個別化という特徴を、メタデータサービス(MDS)フレームワークを用いて実装してもよい。フィルタは、adfBindingsフィルタの前にアプリケーションのweb.xmlファイルにおいてセットアップされてもよい。このフィルタはSessionOptionsFactoryをセットアップしてもよく、これは、ページ要求(またはページ要求のサブセット)毎に、その時点において現在アクティブであるカスタマイゼーションレイヤを返す。また、いかなる時でもサイトレイヤはアクティブであってもよいが、個別化という特徴のためにはユーザレイヤは動的にアクティブにされればよい。このために、オプション(ModeContext)が維持されてもよく、これは、SessionOptionsFactoryに、ユーザレイヤがアクティブにされたか否か知らせる。MDSフレームワーク内の適切なレイヤがアクティブにされると、フィルタ、グループ、およびアクティブデータに関連する変更が、各ユーザ固有のビジネスビューのpageDefファイルに対して行なわれてもよい。このpageDefが要求される度に、適切なものがUIレイヤ406に返され、DCレイヤ404にも返される。このようにして、この個別化という特徴を機能させることができる。

0074

図5図7は、本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行を実装するためのプロセス500、600、および700をそれぞれ示すフロー図の例を示す。これらプロセス500、600、700は、論理フロー図として示され、その各動作は、ハードウェア、コンピュータ命令、またはこれらの組合わせにおいて実装することができる一連の動作を表わす。コンピュータ命令という文脈において、動作は、1つ以上のプロセッサによって実行されるときに、記載されている動作を実行する1つ以上のコンピュータ読取可能な記録媒体に格納されているコンピュータにより実行可能な命令を表わす。一般的に、コンピュータにより実行可能な命令は、特定の機能を果たすまたは特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。動作を説明する順序は限定として解釈されることを意図しておらず、記載されている動作のいくつかを任意の順序でおよび/または並列に組合わせてプロセスを実装することができる。

0075

加えて、プロセスのうちのいくつか、いずれか、またはすべてを、実行可能な命令とともに構成された1つ以上のコンピュータシステムの制御下で実行してもよく、1つ以上のプロセッサ上で、ハードウェアによって、またはこれらの組合わせによって一括で実行するコード(たとえば実行可能な命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実装してもよい。上記のように、コードは、たとえば1つ以上のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ読取可能な記録媒体に格納してもよい。コンピュータ読取可能な記録媒体は非一時的なものであってもよい。

0076

いくつかの例において、図1図3に示される(たとえば図1のハイブリッドクエリモジュール148および/または図2の連続クエリサービス206のうちの少なくとも1つを利用する)1つ以上のサービスプロバイダコンピュータ106は、図5のプロセス500を実行し得る。プロセス500は、502で、第1のソースからのリレーショナルデータを用いてクエリエンジンを初期化することを含むことから始まり得る。いくつかの例において、第1のソースはデータベース(たとえばリレーショナルデータベース)であってもよい。プロセス500は、504で、リレーショナルデータおよび第2のソースからのストリーミングデータに少なくとも一部基づいてクエリエンジンがクエリ結果を与えることができるようにすることで、終了し得る。第2のソースは、リアルタイムおよび/またはストリーミングデータ(たとえば複合イベント、KPIデータ等)を与えることができる、イベントプロセッサまたはその他の計算システムであってもよい。

0077

図6は、本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行を実装するためのプロセス600を示すフロー図の例を示す。図1図3に示される(たとえば図1のハイブリッドクエリモジュール148および/または図2の連続クエリサービス206のうちの少なくとも1つを利用する)1つ以上のサービスプロバイダコンピュータ106は、図6のプロセス600を実行し得る。プロセス600は、602で、第1のソースに関連するストリームを生成することを含むことから始まり得る。いくつかの例において、第1のソースは、複合イベント処理エンジンまたはその他のイベントストリームとして構成されてもよい。プロセス600は、604で、第2のソースから第1のクエリ結果を受けることを含み得る。第2のソースは、データベースまたはその他の記憶システム(たとえばリレーショナルデータベース等)として構成されてもよい。このため、第1のクエリ結果を、戦術的クエリの実装に少なくとも一部基づいて受けてもよい。プロセス600はまた、606で、第2のソースからの第1のクエリ結果を602で生成されたストリームに含める(または与える)ことを含み得る。プロセス600はその後、608で、生成されたストリームおよび第1のクエリ結果に少なくとも一部基づいて第2のクエリ結果を与えることを含むことで、終了し得る。言い換えると、第2のクエリ結果は、第1のクエリ結果をストリームに含めたことに基づき得る。この第2のクエリ結果は、ユーザに(たとえばユーザインターフェイスを介して)与えてもよく、処理エンジンに与えてもよく、および/またはモニタリングする、警告する、および/またはビジネスイベント等に関連する情報を提供するように構成されたサービスプロバイダに与えてもよい。

0078

図7は、本明細書に記載の連続クエリとスケジュールされたクエリの複合的実行を実装するためのプロセス700を示すフロー図の例を示す。図1図3に示される(たとえば図1のハイブリッドクエリモジュール148および/または図2の連続クエリサービス206のうちの少なくとも1つを利用する)1つ以上のサービスプロバイダコンピュータ106は、図7のプロセス700を実行し得る。プロセス700は、702で、イベントプロセッサ(たとえば複合イベントプロセッサ等)に関連するストリームを生成することを含むことから始まり得る。プロセス700は、704で、生成されたストリームをクエリエンジン(たとえば図2のクエリエンジン702)に登録することを含み得る。プロセス700はまた、706で、スケジュールに少なくとも一部基づいて第1のクエリをデータソースに与えることを含み得る。データソースは、クエリに応じて履歴データを与えることができる、リレーショナルデータベースまたはその他の記憶システムであってもよい。プロセス700は、708で、与えられた第1のクエリに少なくとも一部基づいてデータソースから第1のクエリ結果を受けることを含み得る。加えて、いくつかの例において、プロセス700は、710で、データソースからの第1のクエリ結果を登録されたストリームに含めることを含み得る。プロセス700は、712で、登録されたストリームおよび第1のクエリ結果に少なくとも一部基づいて第2のクエリ結果を与えることを含むことで、終了し得る。言い換えると、上記のように、第2のクエリ結果は、スケジュールされた戦術的クエリと連続クエリ(すなわちストリームによってインスタンス化されたもの)の組合わせに少なくとも一部基づいていてもよい。

0079

図8図10は、本明細書に記載の戦術的クエリから連続クエリへの変換を実装するためのプロセス800、900、および1000をそれぞれ示すフロー図の例を示す。これらプロセス800、900、1000は、論理フロー図として示され、その各動作は、ハードウェア、コンピュータ命令、またはこれらの組合わせにおいて実装することができる一連の動作を表わす。コンピュータ命令という文脈において、動作は、1つ以上のプロセッサによって実行されるときに、記載されている動作を実行する1つ以上のコンピュータ読取可能な記録媒体に格納されているコンピュータにより実行可能な命令を表わす。一般的に、コンピュータにより実行可能な命令は、特定の機能を果たすまたは特定のデータタイプを実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造等を含む。動作を説明する順序は限定として解釈されることを意図しておらず、記載されている動作のいくつかを任意の順序でおよび/または並列に組合わせてプロセスを実装することができる。

0080

加えて、プロセスのうちいくつか、いずれか、またはすべてを、実行可能な命令とともに構成された1つ以上のコンピュータシステムの制御下で実行してもよく、1つ以上のプロセッサ上で、ハードウェアによって、またはこれらの組合わせによって一括で実行するコード(たとえば実行可能な命令、1つ以上のコンピュータプログラム、または1つ以上のアプリケーション)として実装してもよい。上記のように、コードは、たとえば1つ以上のプロセッサにより実行可能な複数の命令を含むコンピュータプログラムの形態で、コンピュータ読取可能な記録媒体に格納してもよい。コンピュータ読取可能な記録媒体は非一時的なものであってもよい。

0081

いくつかの例において、図1図4に示される(たとえば図1のクエリ変換モジュール149および/または図4のアクティブデータサービス402のうちの少なくとも1つを利用する)1つ以上のサービスプロバイダコンピュータ106は、図8のプロセス800を実行し得る。プロセス800は、802で、戦術的クエリを用いてクエリエンジンを構成することを含むことから始まり得る。いくつかの例において、戦術的クエリは、クエリエンジンに代わってデータをプルするように構成されてもよい。他の例において、戦術的クエリは、プルされたデータを受けることができるように構成されてもよい。他の例において、戦術的クエリは、プルされたデータを受けることを可能にするように構成されてもよい。プロセス800は、804で、戦術的クエリから連続クエリへの変換を可能にすることを含むことで、終了し得る。いくつかの例において、この変換は実行時に可能にされてもよい。加えて、いくつかの局面において、この変換は、連続クエリからまたは連続クエリによってプッシュされたデータを受けるようにリスニングサービスを少なくとも構成することを含み得る。さらに、連続クエリは、その代わりに、ストリームからリスニングサービスおよび/またはクエリエンジンにプッシュされるようにデータを構成してもよい。

0082

図9は、本明細書に記載の戦術的クエリから連続クエリへの変換を実装するためのプロセス900を示すフロー図の例を示す。図1図4に示される(たとえば図1のクエリ変換モジュール149および/または図4のアクティブデータサービス402のうちの少なくとも1つを利用する)1つ以上のサービスプロバイダコンピュータ106は、図9のプロセス900を実行し得る。プロセス900は、902で、データベースからのユーザのビジネスイベントデータにクエリするための戦術的クエリを決定することを含むことから始まり得る。プロセス900は、904で、ユーザのストリーミングビジネスイベントデータをクエリエンジンにプッシュすることができるように構成された連続エンジンに戦術的クエリを変換することを含み得る。さらに、プロセス900は、906で、クエリエンジンにプッシュされたデータに少なくとも一部基づいてアクティブな可視化を表示するように構成されたユーザインターフェイスを提供することを含むことで、終了し得る。

0083

図10は、本明細書に記載の戦術的クエリから連続クエリへの変換を実装するためのプロセス1000を示すフロー図の例を示す。図1図4に示される(たとえば図1のクエリ変換モジュール149および/または図4のアクティブデータサービス402のうちの少なくとも1つを利用する)1つ以上のサービスプロバイダコンピュータ106は、図10のプロセス1000を実行し得る。プロセス1000は、1002で、データベースからクエリエンジンにビジネスイベントデータをプルすることを可能にするように構成された戦術的クエリを決定することを含むことから始まり得る。この決定は、ユーザから受けたクエリに少なくとも一部基づくものであってもよい。プロセス1000は、1004で、データのアクティブな可視化の生成に関連する要求を受けることを含み得る。プロセス1000はまた、1006で、戦術的クエリを連続クエリに変換してもよい。この変換は実行時に行なわれてもよい。プロセス1000は、1008で、リスニングサービスを登録して、(たとえばストリームから)プッシュされたデータを受けることを含み得る。プロセス1000は、1010で、(たとえば実行時に)フィルタを連続クエリに適用することまたは連続クエリのディメンションを変更することを求める要求を受けてもよい。さらに、プロセス1000は、プッシュされたデータのアクティブな可視化を表示するように構成されたUIを与えることをプロセス1000が含む1012で終了してもよい。

0084

連続クエリとスケジュールされたクエリの複合的実行を実装するための、例示としての方法およびシステムについては上記の通りである。これらシステムおよび方法のうちのいくつかまたはすべては、少なくとも上記図1図10に示されるもののようなアーキテクチャおよびプロセスによって少なくとも部分的に実装し得るが、そうすることが必要な訳ではない。

0085

図11は、本開示の実施形態に従い使用し得るシステム環境1100の構成要素を示す簡略ブロック図である。図に示されるように、システム環境1100は、1つ以上のクライアントコンピューティング装置1102、1104、1106、1108を含み、これら装置は、ウェブブラウザまたは専用のクライアント(たとえばOracle Forms)等のクライアントアプリケーションを、(図1および図3のネットワーク108と同様のネットワーク等であるがこれに限定されない)1つ以上のネットワーク1110を通して操作するように構成されている。さまざまな実施形態において、クライアントコンピューティング装置1102、1104、1106、および1108は、ネットワーク1110を通してサーバ1112と情報をやり取りし得る。

0086

クライアントコンピューティング装置1102、1104、1106、1108は、汎用のパーソナルコンピュータ(例として、さまざまなバージョンのMicrosoft Windows(登録商標)および/またはApple Macintoshオペレーティングシステムを実行するパーソナルコンピュータおよび/またはラップトップコンピュータを含む)、携帯電話もしくはPDA(Microsoft Windows Mobile等のソフトウェアを実行し、インターネット、電子メール、SMS、ブラックベリー(Blackberry)、またはその他の通信プロトコル使用可能)、および/またはさまざまな市販のUNIX(登録商標)もしくはUNIXのようなオペレーティングシステム(さまざまなGNU/Linux(登録商標)オペレーティングシステムを含むがこれに限定されない)のいずれかを実行するワークステーションコンピュータであってもよい。これに代えて、クライアントコンピューティング装置1102、1104、1106、および1108は、ネットワーク(たとえば以下で説明するネットワーク1110)を通して通信可能なシンクライアントコンピュータ、インターネットを使用可能なゲーム機、および/またはパーソナルメッセージングデバイス等のその他の電子デバイスであってもよい。典型的なシステム環境1100が4つのクライアントコンピューティング装置とともに示されているが、クライアントコンピューティング装置の数はいくつであってもそれらをサポートし得る。センサ等を有する装置のような他の装置が、サーバ1112と情報をやり取りしてもよい。

0087

システム環境1100はネットワーク1110を含み得る。ネットワーク1110は、TCP/IP、SNAIPX、AppleTalk等を含むがこれらに限定されないさまざまな市販のプロトコルのいずれかを用いたデータ通信をサポートできる、当業者によく知られているネットワークであれば、どのような種類のネットワークであってもよい。単なる例として、ネットワーク1110は、イーサネット(登録商標)ネットワーク、トークンリングネットワーク等のローカルエリアネットワーク(LAN)、ワイドエリアネットワークバーチャルプライベートネットワーク(VPN)を含むがこれに限定されないバーチャルネットワーク、インターネット、イントラネットエクストラネット公衆電話交換回線網(PSTN)、赤外線ネットワークワイヤレスネットワーク(たとえば、IEEE 802.11プロトコル群のいずれかの下で動作するネットワーク、当該技術分野において公知のブルートゥース(登録商標)プロトコル)、および/またはその他のワイヤレスプロトコル)、および/または、これらおよび/または他のネットワークの任意の組合わせであってもよい。

0088

システム環境1100はまた、1つ以上のサーバコンピュータ1112を含み、このサーバコンピュータは、汎用コンピュータ、専用のサーバコンピュータ(例として、PCサーバUNIXサーバミッドレンジサーバ、メインフレームコンピュータ、ラックマウント式(rack-mounted)のサーバ等を含む)、サーバファーム、サーバクラスタ、またはその他の適切な配置および/または組合わせであってもよい。さまざまな実施形態において、サーバ1112は、本願のこれまでの開示において説明された1つ以上のサービスまたはソフトウェアアプリケーションを実行するようにされていてもよい。たとえば、サーバ1112は、本開示の一実施形態に従う上記処理を実行するためのサーバに相当するものであってもよい。

0089

サーバ1112は、上述したオペレーティングシステムのうちのいずれかおよび任意の市販のサーバオペレーティングシステムを含むオペレーティングシステムを実行してもよい。また、サーバ1112は、HTTPサーバFTPサーバCGIサーバ、Javaサーバ、およびデータベースサーバ等を含むさまざまなその他のサーバアプリケーション、および/またはミッドティア(mid-tier)アプリケーションのうちのいずれかを実行してもよい。典型的なデータベースサーバは、Oracle、Microsoft、Sybase、IBM等から市販されているものを含むが、これらに限定されない。

0090

また、システム環境1100は1つ以上のデータベース1114、1116を含み得る。データベース1114、1116は、さまざまな場所に存在し得る。例として、データベース1114、1116のうちの1つ以上は、サーバ1112に対してローカルな(および/またはサーバ1112内に常駐している)非一時的な記録媒体に存在していてもよい。これに代えて、データベース1114、1116は、サーバ1112から離れていてネットワークベースまたは専用回線を介してサーバ1112と通信してもよい。一組の実施形態において、データベース1114、1116は、当業者によく知られているストレージエリアネットワーク(SAN)に存在していてもよい。同様に、サーバ1112による機能を実行するために必要なファイルは、必要に応じて、サーバ1112に対してローカルにおよび/または遠隔で格納されてもよい。一組の実施形態において、データベース1114、1116は、SQLフォーマットのコマンドに応答してデータを格納し、更新し、取出すようにされている、Oracleから提供されているデータベース等のリレーショナルデータベースを含み得る。

0091

図12は、本開示の実施形態に従い使用し得るコンピュータシステム1200の簡略ブロック図である。たとえば、サービスプロバイダコンピュータ106を、システム1200のようなシステムを用いて実装してもよい。バス1201を介して電気的におよび/または通信可能に結合し得るハードウェア構成要素を含むコンピュータシステム1200が示されている。このハードウェア構成要素は、1つ以上の中央処理装置(CPU)1202と、1つ以上の入力装置1204(たとえばマウス、キーボード等)と、1つ以上の出力装置1206(たとえばディスプレイ装置、プリンタ等)とを含み得る。また、コンピュータシステム1200は、1つ以上の記憶装置1208を含み得る。例として、記憶装置1208は、ディスクドライブ、光学式記憶装置等の装置、ならびに、プログラム可能で、一瞬で更新可能で(flash-updateable)、および/またはそれと同じようなことが可能であるランダムアクセスメモリ(RAM)および/または読出専用メモリ(ROM)等のソリッドステート記憶装置を含み得る。

0092

コンピュータシステム1200は、さらに、コンピュータ読取可能記媒体リーダ1212と、通信サブシステム1214(たとえばモデムネットワークカード無線または有線)、赤外線通信装置等)と、ワーキングメモリ1218とを含み得る。ワーキングメモリ1218は、上記RAMおよびROM装置を含み得る。いくつかの実施形態において、コンピュータシステム1200は、デジタル信号プロセッサ(DSP)、専用プロセッサ、および/またはそれと同様のものを含み得る処理加速部1216を含んでいてもよい。

0093

コンピュータ読取可能記録媒体リーダ1212は、さらに、コンピュータ読取可能な記録媒体1210に接続し得る。コンピュータ読取可能な記録媒体1210は、(任意に、記憶装置1208と組合わせて)リモート式ローカル式固定式および/または着脱交換式の記憶装置、および、一時的および/またはより永続的にコンピュータ読取可能な情報を収容するための記録媒体を総合的に意味している。通信システム1214によって、ネットワーク1212および/またはシステム環境1200に関連する上述のその他のコンピュータと、データをやり取りすることが可能であってもよい。

0094

また、コンピュータシステム1200は、ワーキングメモリ1218内に現在位置しているものとして示されているソフトウェア構成要素を含み得る。このソフトウェア構成要素は、オペレーティングシステム1220、および/または、アプリケーションプログラム(クライアントアプリケーション、ウェブブラウザ、ミッドティアアプリケーション、RDBMS等であってもよい)等のその他のコード1222を含む。典型的な実施形態において、ワーキングメモリ1218は、実行可能なコードと、上述のように証明書利用者およびオープン認可関連の処理に使用される関連のデータ構造とを含んでいてもよい。コンピュータシステム1200の代替の実施形態には、上述のものの多くの変形例があり得ることが理解されるはずである。たとえば、カスタマイズされたハードウェアが用いられてもよく、および/または特定の構成要素が、ハードウェア、ソフトウェア(アプレット等のポータブルソフトウェアを含む)またはそれら両方において実装されてもよい。さらに、ネットワーク入出力装置等の他のコンピューティング装置への接続を用いてもよい。

0095

コードまたはコードの一部を収容するための記録媒体およびコンピュータ読取可能な媒体は、当該技術において公知のまたは使用されているあらゆる適切な媒体を含み得る。上記適切な媒体は記録媒体および通信媒体を含み、これら記録媒体および通信媒体は、RAM、ROM、EEPROM、フラッシュメモリもしくはその他のメモリ技術、CD−ROM、デジタル汎用ディスク(DVD)もしくはその他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくはその他の磁気記憶装置、データ信号、データ伝送、または、所望の情報を格納もしくは伝送するために使用することができコンピュータによってアクセス可能なその他の媒体を含む、コンピュータ読取可能な命令、データ構造、プログラムモジュール、またはその他のデータ等の情報の、格納および/または伝送のための何等かの方法または技術において実装される、揮発性および不揮発性(非一時的)の着脱可能および着脱不能な媒体等であるが、これらに限定されない。

0096

本開示の特定の実施形態について説明してきたが、さまざまな修正、変更、代替構成、および均等物も、本開示の範囲に包含される。上記さまざまな修正、変更、代替構成、および均等物は、開示されている特徴の妥当な組合わせを含む。本開示の実施形態は、ある特定のデータ処理環境内での動作に限定されるものではなく、複数のデータ処理環境内で機能することが可能である。加えて、本開示の実施形態について、特定の一連のトランザクションおよびステップを用いて説明してきたが、本開示の範囲が、記載されている一連のトランザクションおよびステップに限定されないことは、当業者には明らかなはずである。

0097

さらに、本開示の実施形態について、ハードウェアとソフトウェアの特定の組合わせを用いて説明してきたが、ハードウェアとソフトウェアの他の組合わせも本開示の範囲内であることが認識されるはずである。本開示の実施形態は、ハードウェアのみで実装されてもよく、ソフトウェアのみで実装されてもよく、これらの組合わせを用いて実装されてもよい。

0098

したがって、明細書および図面は、限定的な意味ではなく例示的な意味で考慮されねばならない。しかしながら、これに対し、追加、控除、削除、およびその他の修正および変更を、より広い精神および範囲から逸脱することなく行ない得ることは明らかであろう。本開示の特徴を示すための例示的な方法およびシステムは上述の通りである。これらのシステムおよび方法のうちのいくつかまたはすべては、上記図1図12に示されるもののようなアーキテクチャによって、少なくとも部分的に実装し得るが、そうすることが必要な訳ではない。

0099

ある実装において、方法が提供され、この方法は、表示すべきビジネスイベントデータの指示に少なくとも一部基づいて戦術的クエリを用いてクエリエンジンを構成することと、要求に少なくとも一部基づいて戦術的クエリから連続クエリへの変換を可能にすることとを含む。

0100

別の実装において、方法が提供され、この方法は、データベースからのユーザのビジネスイベントデータにクエリするための戦術的クエリを決定することと、ユーザのストリーミングビジネスイベントデータをクエリエンジンにプッシュすることを可能にするように構成された連続クエリに戦術的クエリを変換することと、クエリエンジンにプッシュされたデータに少なくとも一部基づいてアクティブな可視化を表示するように構成されたユーザインターフェイスを与えることとを含む。

0101

他の実装において、上記方法のうちのいずれかを実行するように構成された装置が提供される。この装置は、ファームウェア、ソフトウェア、ハードウェア、これらの任意の組合わせ等の、さまざまなやり方で実装できる。

0102

さらに他の実装において、装置が提供され、この装置は、データベースからのユーザのビジネスイベントデータにクエリする戦術的クエリを、連続クエリに変換するように構成されたクエリ変換モジュールと、連続クエリと戦術的クエリを組合わせるように構成されたハイブリッドクエリモジュールとを備える。この装置は、ファームウェア、ソフトウェア、ハードウェア、これらの任意の組合わせ等の、さまざまなやり方で実装できる。

0103

実施形態について、構造的特徴および/または方法論的行為に特有の表現で説明してきたが、本開示は記載されている具体的な特徴または行為に必ずしも限定されないことが理解されるはずである。むしろ、この具体的な特徴および行為は、実施形態を実装する例示的な形態として開示されている。条件表現、特に「できる」または「してもよい」(「can」、「could」、「might」、または「may」)等は、特に明記されない限りまたは使用されている文脈の中で他の解釈がなされない限り、何らかの特徴、要素、および/またはステップを、ある実施形態は含み得るがそれ以外の実施形態は含まないことを示唆することを、概ね意図している。よって、このような条件表現は、特徴、要素、および/またはステップが、1つ以上の実施形態に多少なりとも必要であることを、または、これら特徴、要素、および/またはステップがいずれか特定の実施形態に含まれるのかまたはいずれか特定の実施形態において実施されるのかをユーザの入力または刺激の有無に関わらず判断するための論理を1つ以上の実施形態が必然的に含むことを、示唆することは、概ね意図していない。

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ