(58)【調査した分野】(Int.Cl.,DB名)
前記入手するステップは、前記少なくとも1つのデータストリームへと変換するために前記データからサンプルを選択するステップをさらに含む、請求項2に記載のコンピュータ実装方法。
前記ユーザが、前記通知内で提供されている「受け入れ」、「拒否」、および「無視」タブのうちの1つを選択することによって前記通知に応答する、請求項1に記載のコンピュータ実装方法。
前記プロセッサ(110)によって、ルールの前記自動化された生成および更新に関連する詳細を提供するためのパフォーマンスレポートを生成するステップをさらに含む、請求項1に記載のコンピュータ実装方法。
検索メタデータに基づいて少なくとも1つのデータソースからデータを検索するステップであって、前記データソースは、インハウスデータベース、外部データベース、およびオンラインポータルのうちの少なくとも1つを含み、前記検索メタデータは、前記少なくとも1つのデータソースからの前記データの検索を支援する詳細を示すステップと、
前記データを前記少なくとも1つのデータストリームへと変換するステップであって、前記少なくとも1つのデータストリームは、事前に定義されたフォーマットであるステップと、
前記少なくとも1つのデータストリームに関連する前記少なくとも1つのデータトレンドを特定するステップと
を行うための、前記プロセッサ(110)に結合されているトレンド分析モジュール(120)をさらに含む、請求項6に記載のルール生成システム(102)。
【発明を実施するための形態】
【0005】
[0006] データトレンド分析に基づくルールの自動化された生成および更新のためのシステムおよび方法。この(1つまたは複数の)システムおよび(1つまたは複数の)方法は、ラップトップ、デスクトップ、ワークステーション、タブレットPC、ノート、ポータブルコンピュータ、タブレットコンピュータ、インターネット機器、および類似のシステムなど、多様なコンピューティングデバイスにおいて実装されることが可能である。しかしながら、本発明の主題の実施形態は、新たなコンピューティングシステムおよびプラットフォームが利用可能になった場合には、それらの新たなコンピューティングシステムおよびプラットフォームに適用することが可能であるため、いかなる特定のコンピューティングシステム、アーキテクチャー、またはアプリケーションデバイスにも限定されないということを当業者であれば理解することができる。
【0006】
[0007] この数十年間で、世界中の様々な領域において、例えば、過去のデータに基づいて未来の事象を予測する目的で環境をモニタするために、トレンド分析技法が使用されている。環境とは、モニタリングおよび予測の目的でトレンド分析が実行可能な任意のフィールドまたはプラットフォームとして理解することができる。例えば、ある組織は、自分たちの製品の売上をモニタするために、それゆえ、関連のある将来の障害を予想するために、トレンド分析を利用するかもしれない。これにより、その組織は、損失を回避するために先制措置を取ることができる。
【0007】
[0008] 徹底的で詳細なトレンド分析を確実に行うためには、その環境に関連する大量のデータを取り扱い処理しなければならない。例えば、コンピューティングシステムのパフォーマンスを評価するために、そのコンピューティングシステム上で稼働している多くのソフトウェアアプリケーションによって使用されているデータが取得され得る。このデータに基づいて、トレンド分析を行うことが可能である。トレンド分析は、別々の時間インスタンスにおいて各ソフトウェアアプリケーションによって使用され得るデータに基づいて、コンピューティングシステムの遅いオペレーションなど、厄介な問題の原因を特定する際に役立つ。したがって、ソフトウェアアプリケーションによって使用されているデータが、過去のデータのトレンドからかなり変化していることを示す場合には、問題を解決するために適切なアクションがしかるべく取られ、コンピューティングシステムの妨害のないスムーズなオペレーションが確実となる。
【0008】
[0009] 一般に、過去のデータのトレンドに対するデータの逸脱または変化を検知するために、複数のルールが定義される。ルールとは、過去のデータのトレンドからのデータの任意の変化を検知するためにユーザによって設定された条件として理解することができる。例えば、ユーザは、ソフトウェアアプリケーションによって使用されているデータの量が過去のデータのトレンドから10%超の変動を示すとすぐにアラームがトリガーされるというルールを定義することができる。同様に、公衆衛生当局による町の健康状況のモニタリングという別の例においては、その町の死亡者数が過去のデータのトレンドから5%超の変動が生じるとすぐにアラームがトリガーされるというルールを定義することができる。したがって、これらのようなルールは、環境に関連する事象の効果的な追跡を維持することを容易にする。
【0009】
[0010] 当業者なら理解できるであろうが、それぞれの業界は、異なるダイナミクスを有しており、したがって、異なる目的でトレンド分析およびルール生成を使用することがある。しかしながら、そのようなルールは、本質的にジェネリックであり、それらのルールの適用またはモニタされている特定の環境に基づいて修正されることはできない。したがって、ルール生成中に環境の特定のニーズが考慮に入れられず、それは、いくつかの重要な面の見落としにつながり、ひいては、誤った不正確なモニタリングにつながる。
【0010】
[0011] さらに、ルールは一般に、ユーザまたはユーザのグループによって定義される。ユーザは、対応する分野における専門家、およびソフトウェアアプリケーションが開発されている対象のクライアントなどのステークホルダを含むが、それらには限定されない。したがって、ルールの有効性および正確さは、個人のスキルセットに依存し、したがって、ルール生成におけるエラーの可能性は否定できない。
【0011】
[0012] また、複雑なルールの生成の場合は、ユーザは、環境の正確なモニタリングを確実にするために、データと、対応するルールとの間における関係を導き出さなければならないことがある。さらに、複雑なシステムの場合は、大量のデータおよび複数のルールを定義しなければならないことがある。その上、ある期間にわたって環境のダイナミクスおよび特性が徐々に変化する可能性がある。結果として、ルールは、定期的にしかるべく更新されなければならない可能性がある。しかしながら、ルールを定義することの手作業的な性質に起因して、ルールの生成および更新の際中にユーザによって相当な量の労力が注がれなければならない。その後、そのようなアクティビティーは、毎回かなりの量の時間を必要とする可能性がある。結果として、トレンド分析に関する全体的なコストも、著しく増大する。
【0012】
[0013] 間違ったルールをユーザが不注意で定義してしまう可能性があるシナリオについて考える。そのようなシナリオにおいては、間違ったルールに基づいてレポートが生成された場合には、ユーザは、ルール、及び、レポート内で提供されるデータの正確さを特定することができない可能性がある。したがって、間違ったルールを生成する場合は、誤りを捉えることは、ユーザにとって難題となる。さらに、これによって、環境のモニタリングがエラーの影響を受けやすくなる場合がある。またさらに、ルールの無効性が検知された場合は、ユーザは、ルールを手作業で修正することに相当な労力を注がなければならない可能性がある。さもなくば、間違ったルールを完全に無効にしなければならない可能性がある。
【0013】
[0014] 本発明の主題によれば、例えばデータトレンド分析に基づいて環境をモニタするために使用されるルールを生成および更新するためのルール生成システム(以下、システムと称する)が提供される。一実装形態においては、このシステムは、モニタされている環境に関連する少なくとも1つのデータストリームに対応する少なくとも1つのデータトレンドを入手することができる。他の実装形態においては、データストリームは、時間の順に並べられたデータとして理解することができ、データ値、タイムスタンプ、およびデータのタイプを含むことができるが、それらには限定されない。さらに、少なくとも1つのデータトレンドは、事前に定められた時間期間中に少なくとも1つのデータストリームによって辿られるパターンとして理解することができる。
【0014】
[0015] 少なくとも1つのデータトレンドを入手すると、少なくとも1つのデータストリームに関連する少なくとも1つのデルタ値が計算することが可能となる。少なくとも1つのデルタ値は、特定の時間インスタンスにおける少なくとも1つのデータトレンドに対する少なくとも1つのデータストリーム内の逸脱を示している。さらに、少なくとも1つのデータトレンドと、それぞれのデータストリームに関連付けられている識別メタデータとに基づいて、複数のデータストリームの間における少なくとも1つの関係を特定することができる。識別メタデータは、それぞれのデータストリームに一意のIDを提供する情報として理解することができる。その後、少なくとも1つの関係および少なくとも1つのデルタ値に基づいて、少なくとも1つのルールが、自動化された様式で生成されることが可能である。その少なくとも1つのルールは、少なくとも1つのデータストリームの逸脱を追跡するためにユーザによって設定された条件を示している。一実装形態においては、少なくとも1つのルールが違反されている旨を示す通知がユーザに提供される。その通知は、ルール違反に関連する詳細、およびルール違反を克服するための提案を含むことができるが、それらには限定されない。
【0015】
[0016] ある期間に渡る少なくとも1つのルールの違反に続いて、ルール違反トレンドを特定することもできる。一実装形態においては、通知へのユーザ応答、ルール違反トレンド、少なくとも1つのデルタ値、および少なくとも1つの関係に基づいて、少なくとも1つのルールを自動的に更新することができる。
【0016】
[0017] 一実装形態においては、このシステムは、環境に関連するデータを少なくとも1つのデータソースから検索するために検索メタデータを利用することができる。検索メタデータは、そのデータが格納されている、少なくとも1つのデータソース内のロケーションを特定することを容易にする。検索メタデータの例は、データベース名、テーブル名、データベースIP、データベースポート、データベースのタイプ、データベースユーザ名、データベースパスワード、データを検索するための少なくとも1つのクエリー、および検索頻度を含むことができるが、それらには限定されない。さらに、少なくとも1つのデータソースは、外部データベース、インハウスデータベース、およびオンラインポータルを含むことができるが、それらには限定されない。したがって、検索メタデータに基づいて、少なくとも1つのデータソースからデータを検索することが可能である。一実装形態においては、環境のさらなるモニタリングのためのデータを選択するためにサンプリングを実行する。知らているように、サンプリングは、データ全体の特徴を推定する目的での統計データ内からのデータのサブセットの選択を含むことができる。
【0017】
[0018] 一実装形態においては、少なくとも1つのデータソースから検索されるデータは、異なるフォーマットかもしれない。データのフォーマットにおける不均一性に起因する誤った分析を回避するために、データは、自然言語処理(NLP)を経るなどして、システムにとって認識可能なフォーマットへと変換されることが可能である。一実装形態においては、データは、少なくとも1つのデータストリームへ変換することが可能である。さらに、そのような変換中に、それぞれのデータストリームに識別メタデータを割り当てることが可能である。識別メタデータは、それぞれのデータストリームに一意の識別情報を提供する。一実装形態においては、識別メタデータは、環境、アプリケーション、およびサーバに関連する詳細を含むことができるが、それらには限定されない。
【0018】
[0019] 一実装形態においては、少なくとも1つのデータストリームに関連する少なくとも1つのデータトレンドを特定することが可能である。前述のように、少なくとも1つのデータトレンドは、事前に定められた期間の間に少なくとも1つのデータストリームによって辿られるパターンを示している。さらに、このシステムは、少なくとも1つのデルタ値を計算するために少なくとも1つのデータトレンドを入手することができる。上述のように、少なくとも1つのデルタ値は、特定の時間インスタンスにおける少なくとも1つのデータトレンドに対する少なくとも1つのデータストリーム内の変化の度合いである。一実装形態においては、少なくとも1つのデルタ値は、少なくとも1つのデータストリームのうちのデータ値の割合という形式で計算されることが可能である。
【0019】
[0020] 少なくとも1つのデルタ値の計算に続いて、このシステムは、複数のデータストリームの間における少なくとも1つの関係を特定することができる。一実装形態においては、この少なくとも1つの関係は、それぞれのデータストリームに関連付けられている識別メタデータに基づいて特定することが可能である。少なくとも1つの関係が特定されると、少なくとも1つのデータトレンドおよび少なくとも1つの関係に基づいて、少なくとも1つのルールを生成することが可能である。その少なくとも1つのルールは、少なくとも1つのデータストリームの逸脱を追跡するためにユーザによって設定された条件として理解することができる。さらに、少なくとも1つのルールの違反に際して、すなわち、条件が満たされた場合に、通知をユーザに提供するようにできる。一実装形態においては、ある期間に渡るルール違反の後、このシステムは、対応するルール違反トレンドを特定することができる。ルール違反トレンドは、その期間に渡ってルール違反が発生したパターンを示している。
【0020】
[0021] さらに、そのような通知は、ルール違反に関連する詳細、およびルール違反を克服するための提案を含むことができるが、それらには限定されない。このシステムがコンピューティングシステムのデータ使用を評価する例を考慮すると、そのような提案は、少なくとも1つのルールが違反された1つまたは複数のソフトウェアアプリケーションの終了に関連するものにできる。さらにユーザは、その提案を受け入れること、拒否すること、または無視することによって、通知に応答することができる。提案を受け入れることは、少なくとも1つのルールの有効性および正確さを示す。しかしながら、提案の拒否は、少なくとも1つのルールの無効性および不正確さを示しており、したがって、その少なくとも1つのルールは無効とみなすことができる。
【0021】
[0022] 一実装形態においては、ユーザ応答、少なくとも1つのデータトレンド、少なくとも1つの関係、およびルール違反トレンドに基づいて、少なくとも1つのルールを更新することが可能である。一実装形態においては、ルールの自動化された生成および更新に関連する詳細を提供するためのパフォーマンスレポートを生成する。
【0022】
[0023] 理解されるように、ルールの自動化された生成および更新に起因して、ルールの有効性および正確さが個人のスキルセットに依存する状況を回避することが可能である。さらに、複雑なルールの生成および更新に必要とされる労力の量が最小化されることが可能である。その後、投資される時間および関連するコストも、大幅に最小化される。またルールは、データトレンドに基づいて生成および更新されるため、環境の特定のダイナミクスを考慮して生成および更新され、正確さおよび信頼性が確実なものとなる。言い換えれば、データのあらゆる変化に基づいてルールを改訂することによって、システムは、その環境における動的で継続的な変化に適合可能となる。また、別々のデータストリームの間における関係を特定することによって、ルールの正確な生成のために、ある環境に関連する様々な要因の間の相互依存が利用される。したがって、本発明の主題は、データトレンド分析を使用して、環境の包括的な、正確な、時間を節約する、コスト効率の高いモニタリングを容易にする。
【0023】
[0024] 本発明の主題のこれらおよびその他の利点について、添付の図と共にさらに詳しく説明する。データトレンド分析に基づくルールの自動化された生成および更新のための説明される(1つまたは複数の)システムおよび(1つまたは複数の)方法の態様は、任意の数の異なるコンピューティングシステム、環境、および/または構成に実装することが可能であるが、実施形態については、以降の例示的な(1つまたは複数の)システムというコンテキストにおいて説明する。
【0024】
[0025]
図1は、本発明の主題の一実施形態によるルール生成システム102(システム102とも称する)を実装するネットワーク環境100を示している。ネットワーク環境100においては、システム102は、ネットワーク104に接続されている。さらに、システム102は、データベース106に接続されている。加えて、ネットワーク環境100は、ネットワーク104に接続されている1つまたは複数のユーザデバイス108−1、108−2、...108−N(まとめてユーザデバイス108と称し、個々にもユーザデバイス108と称する)を含む。
【0025】
[0026] システム102は、ネットワーク104に接続される複数のコンピューティングデバイスの任意のセットとして構成することが可能である。例えば、システム102は、ワークステーション、パーソナルコンピュータ、デスクトップコンピュータ、マルチプロセッサシステム、ラップトップ、ネットワークコンピュータ、ミニコンピュータ、サーバなどとして実装することが可能である。加えて、システム102は、ユーザのためにミラー化されたタスクを実行するための複数のサーバを含むことができる。
【0026】
[0027] さらに、システム102は、ネットワーク104を通じてユーザデバイス108に接続することが可能である。ユーザデバイス108の例としては、パーソナルコンピュータ、デスクトップコンピュータ、スマートフォン、PDA、およびラップトップが含まれるが、それらには限定されない。ユーザデバイス108とシステム102との間における通信リンクは、様々な形態の接続を通じて、例えば、ダイヤルアップモデム接続、ケーブルリンク、デジタルサブスクライバーライン(DSL)、ワイヤレスもしくは衛星リンク、またはその他の任意の適切な形態の通信を介して実現される。
【0027】
[0028] さらに、ネットワーク104は、ワイヤレスネットワーク、有線ネットワーク、またはそれらの組合せとすることができる。ネットワーク104は、個別のネットワーク、または、互いに相互接続されて単一の大きなネットワークとして機能する多くのそのような個別のネットワークの集合、例えば、インターネットまたはイントラネットとすることも可能である。ネットワーク104は、イントラネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、およびそれらに類するものなど、様々なタイプのネットワークのうちの1つとして実装されることが可能である。ネットワーク104は、専用ネットワークまたは共有ネットワークのいずれかであることが可能であり、共有ネットワークとは、互いに通信するために、多様なプロトコル、例えば、ハイパーテキスト転送プロトコル(HTTP)、トランスミッションコントロールプロトコル/インターネットプロトコル(TCP/IP)などを使用する異なるタイプのネットワークの連合を表す。さらに、ネットワーク104は、システム102とユーザデバイス108との間におけるリンクを提供するために、ネットワークスイッチ、ハブ、ルータ、ホストバスアダプタ(HBA)などのネットワークデバイスを含むことができる。ネットワーク104内のネットワークデバイスは、通信リンクを通じてシステム102およびユーザデバイス108と対話することができる。
【0028】
[0029] 上述の実施形態においては、システム102は、1つまたは複数のプロセッサ110と、(1つまたは複数の)インターフェース112と、プロセッサ110に接続されたメモリ114とを含む。プロセッサ110は、単一の処理ユニットまたは複数のユニットとすることができ、それらのすべては、複数のコンピューティングユニットを含むこともできる。プロセッサ110は、1つまたは複数のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタルシグナルプロセッサ、中央処理装置、状態マシン、論理回路、および/または、オペレーション命令に基づいて信号を操作する任意のデバイスとして実装されることが可能である。数ある機能の中でも、プロセッサ110は、メモリ114内に格納されているコンピュータ読取可能命令およびデータをフェッチして実行するように構成されている。
【0029】
[0030] インターフェース112は、多様なソフトウェアインターフェースおよびハードウェアインターフェース、例えば、キーボード、マウス、外部メモリ、およびプリンタなどの(1つまたは複数の)周辺デバイスのためのインターフェースを含むことができる。さらに、インターフェース112は、システム102が、ネットワーク環境100内のその他のコンピューティングデバイス、例えばウェブサーバ、およびデータベース106等の外部データリポジトリなどとの通信を可能にすることができる。インターフェース112は、有線ネットワーク、例えばLAN、ケーブルなど、およびワイヤレスネットワーク、例えばWLAN、セルラー、衛星などを含む、多種多様なプロトコルおよびネットワーク(ネットワーク104など)内の複数の通信を容易にすることができる。インターフェース112は、システム102を複数のコンピューティングデバイスに接続するための1つまたは複数のポートを含むことができる。
【0030】
[0031] メモリ114は、例えば、スタティックランダムアクセスメモリ(SRAM)およびダイナミックランダムアクセスメモリ(DRAM)などの揮発性メモリ、ならびに/または、読み取り専用メモリ(ROM)、消去可能プログラマブルROM、フラッシュメモリ、ハードディスク、光学ディスク、および磁気テープなどの不揮発性メモリを含む、当技術分野において知られている任意の非一時的なコンピュータ読取可能媒体を含むことができる。しかしながら、非一時的なコンピュータ読取可能媒体は、一時的な伝搬信号を除外する。
【0031】
[0032] システム102はまた、(1つまたは複数の)モジュール116およびデータ118を含む。(1つまたは複数の)モジュール116は、特定のタスクを実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。一実装形態においては、(1つまたは複数の)モジュール116は、トレンド分析モジュール120、ルール生成モジュール122、更新モジュール124、および(1つまたは複数の)その他のモジュール126を含む。この他のモジュール126は、システム102のアプリケーションおよび機能を補強するプログラムまたはコード化された命令を含んでもよい。
【0032】
[0033] その一方で、データ118は、とりわけ、(1つまたは複数の)モジュール116のうちの1つまたは複数によって処理、受信、および生成されたデータを格納するためのリポジトリとして機能する。データ118は、例えば、トレンド分析データ128、ルール生成データ130、およびその他のデータ132を含む。その他のデータ132は、モジュール116内の1つまたは複数のモジュールの実行の結果として生成されたデータを含む。
【0033】
[0034] 一実装形態においては、システム102は、データトレンド分析に基づくルールの自動化された生成および動的な更新を容易にすることができる。一実装形態においては、トレンド分析モジュール120は、少なくとも1つのデータソースからデータを検索するために検索メタデータを利用することができる。検索メタデータは、データベース名、テーブル名、データベースIP、データベースポート、データベースのタイプ、データベースユーザ名、データベースパスワード、データを検索するための少なくとも1つのクエリー、および検索頻度を含むことができるが、それらには限定されない。さらに、少なくとも1つのデータソースは、外部データベース、インハウスデータベース、およびオンラインポータルを含むことができるが、それらには限定されない。したがって、トレンド分析モジュール120は、検索メタデータに基づいてデータを検索することができる。さらなる実装形態においては、トレンド分析モジュール120は、環境のモニタリングのためにデータのサンプルを利用することができる。
【0034】
[0035] 一実装形態においては、技術的な問題に起因して、ある期間に渡ってデータを検索することができない可能性が存在する。そのような状況においては、トレンド分析モジュール120は、見つからないデータを、そのようなデータの以前のトレンドに基づいて推定することができる。例えば、トレンド分析モジュール120は、データが検索されなかった期間に関連する詳細を埋めるために、技術的な問題が生じる前に受信されたデータと、技術的な問題が生じた後に受信されたデータとの平均を取ることができる。また、検索されたデータが欠陥を有しているかまたは誤っているケースにおいては、同様の技法を用いて、かかるデータを推定することが可能である。したがって、データの検索におけるいかなる不整合も、全体的な分析を妨げることはないと言える。
【0035】
[0036] 当業者が理解するように、少なくとも1つのデータソースから検索されるデータは、異なるフォーマットである場合がある。したがって、トレンド分析モジュール120は、データを、システム102にとって認識可能なフォーマットへと変換する。一実装形態においては、トレンド分析モジュール120は、データを少なくとも1つのデータストリームへと変換することができる。データストリームは、時間の順に並べられたデータとして理解することができ、タイムスタンプ、データ値、およびデータのタイプを含むことができるが、それらには限定されない。タイムスタンプは、少なくとも1つのソースからのデータの検索の時刻を示すことができる。さらに、データ値は、データの数値を示すことができる。同様に、データのタイプは、データの性質を指定するために保持されることが可能である。例えば、アプリケーションモニタリングの場合は、データは、インフラストラクチャーデータ、アプリケーションデータ、および可用性データとすることができる。
【0036】
[0037] 一実装形態においては、トレンド分析モジュール120は、それぞれのデータストリームに一意の識別情報を提供するために識別メタデータをそれぞれのデータストリームに割り当てることができる。識別メタデータは、環境名、アプリケーション、サーバ、およびその他の構成アイテムに関連する詳細をさらに含むことができるが、それらには限定されない。そのような詳細は、データストリームをその他のデータストリームから区別するために利用することができる。一実装形態においては、少なくとも1つのデータストリームへのデータの変換に続いて、トレンド分析モジュール120は、少なくとも1つのデータストリームに関連する少なくとも1つのデータトレンドを特定することができる。少なくとも1つのデータトレンドは、事前に定められた時間期間の間に少なくとも1つのデータストリームによって辿られるパターンを示している。少なくとも1つのデータトレンドは、特定の時間インスタンスにおける少なくとも1つのデータストリームのデータ値の平均を決定する際に用いられる。一例においては、少なくとも1つのデータトレンドは、指定された時間期間中における少なくとも1つのデータストリームの最大および最小のデータ値を判定する際に支援を行うことができる。少なくとも1つのデータトレンドのさらに良好な明確さおよび理解を提供するために、ソフトウェアアプリケーションによる中央処理装置(CPU)利用割合のデータトレンドを示すテーブル1を、次のように示す。
【0038】
[0038] テーブル1において示されているように、10日間の持続時間にわたる異なる時間インスタンスにおけるソフトウェアアプリケーションによるCPU利用度が分析される。さらに、テーブル1において示されている少なくとも1つのデータトレンドに基づいてCPU利用度の平均を計算することも可能である。このテーブルにおいては少なくとも1つのデータトレンドを特定するために平均値が利用されているが、しかしながら、その他の実装形態においては、平均または平均値以外のパラメータの点から少なくとも1つのデータトレンドを特定することが可能である。例えば、平均値からの分散または標準偏差の点から少なくとも1つのデータトレンドを特定することが可能である。また、トレンド分析モジュール120は、少なくとも1つのデータソースから新たなデータが検索された場合には、その少なくとも1つのデータトレンドを更新することができる。一実装形態においては、トレンド分析モジュール120に関連する詳細がトレンド分析データ128内に格納される。
【0039】
[0039] 一実装形態においては、ルール生成モジュール122は、少なくとも1つのデータストリームに関連する少なくとも1つのデルタ値の計算のために、少なくとも1つのデータトレンドを入手することができる。少なくとも1つのデルタ値は、特定の時間インスタンスにおける少なくとも1つのデータトレンドに対する少なくとも1つのデータストリームの逸脱として理解される。一実装形態においては、ルール生成モジュール122は、少なくとも1つのデルタ値を、少なくとも1つのデータストリームのうちのデータ値の割合という形式で計算することができる。例えば、データストリームのデータ値が30であり、データ値の逸脱を示すデータ値が6である場合には、対応するデルタ値は、20%として計算することができる。
【0040】
[0040] 一実装形態においては、少なくとも1つのデルタ値の計算に際して、ルール生成モジュール122は、複数のデータストリームの間における少なくとも1つの関係を特定する。例えば、データストリームAは、異なる複数の時間インスタンスにおいてソフトウェアアプリケーションによって使用されるデータを示す。同様に、データストリームBは、異なる時間インスタンスにおけるソフトウェアアプリケーションによるCPU利用割合に関連するものである。一実装形態においては、特定の時間インスタンスにおけるソフトウェアアプリケーションによるCPU利用割合は、その特定の時間インスタンスにおいてソフトウェアアプリケーションによって使用されるデータに比例して変動する。したがって、データストリームAのいかなる変化も、データストリームBにおける対応する変化につながる。ルール生成モジュール122は、少なくとも1つのデータトレンドと、それぞれのデータストリームに対応する識別メタデータとに基づいて、少なくとも1つの関係を特定することができる。各データストリームに関連する識別メタデータは、対応する識別の詳細を示しているため、ルール生成モジュール122は、複数のデータストリームの間における少なくとも1つの関係を確立するために識別メタデータを比較することができる。一実装形態においては、ルール生成モジュール122は、少なくともデータトレンドと、以前に生成されたルールとの間における少なくとも1つの関係を特定することができる。そのような特定は、異なるデータトレンド上でのルールの違反の影響を決定する際に支援を行うことができる。
【0041】
[0041] 一実装形態においては、少なくとも1つのデルタ値および少なくとも1つの関係の計算に続いて、ルール生成モジュール122は、少なくとも1つのルールを生成する。その少なくとも1つのルールは、少なくとも1つのデータストリーム内の逸脱を追跡するためにユーザによって設定された条件を示している。ユーザは、対応する分野における専門家、およびステークホルダを含むことができるが、それらには限定されない。さらに、ルール生成モジュール122は、特定の時間インスタンスにおけるしきい値違反をモニタするために少なくとも1つのルールを生成することができる。例えば、ルール生成モジュール122は、データストリームのデルタ値が10%超の逸脱を示すべきではないというルールを生成する。そのような一例においては、データストリームのデルタ値が10%超の変動を示すとすぐに、ルールが違反されていると判定される。一実装形態においては、ルールは、そのルールによって設定された条件が満足されたまたは満たされた場合に、違反されていると判定するように構成できる。
【0042】
[0042] 一実装形態においては、ルール生成モジュール122は、事前に定められた持続時間におけるしきい値違反をモニタするために少なくとも1つのルールを生成する。例えば、ルール生成モジュール122は、データストリームのデルタ値が午後2時〜午後4時の間に10%超逸脱するというルールを生成する。したがって、デルタ値が午後2時と午後4時との間に10%超の変動を示した場合には、ルールが違反されているとみなされる。別の実装形態においては、ルール生成モジュール122は、しきい値違反の連続した事象をモニタするために少なくとも1つのルールを生成する。例えば、ルール生成モジュール122は、データストリームのデルタ値が5つの連続したデータ値の間に10%超逸脱するというルールを生成する。したがって、デルタ値が5つの連続したデータ値の間に10%超の変動を示した場合には、ルールが違反されているとみなされる。さらに別の実装形態においては、ルール生成モジュール122は、上述の条件の任意の組合せを伴うルールを生成することができる。
【0043】
[0043] 一実装形態においては、ルール生成モジュール122は、複数のデータストリームの間における少なくとも1つの関係を利用する複雑なルールを生成することもできる。例えば、ルール生成モジュール122は、データストリーム1のデルタ値Aが10%逸脱し、データストリーム2のデルタ値Bが5%逸脱するというルールを生成することができる。したがって、これらの条件が両方とも満たされた場合に、ルールが違反されているとみなされる。
【0044】
[0044] 少なくとも1つのルールの違反に際して、ルール生成モジュール122は、少なくとも1つのルールの違反を示すための通知をユーザに提供することができる。一実装形態においては、その通知は、ルール違反に関連する詳細、アクション、およびルール違反を克服するための提案を含むことができるが、それらには限定されない。アクションは、通知を受け入れること、拒否すること、または無視することによってユーザが通知に応答することを可能にする「受け入れ」、「拒否」、および「無視」タブを含むことができるが、それらには限定されない。さらに、ユーザが提案を受け入れた場合には、それは、少なくとも1つのルールが正確で有効であるということを示すことができる。同様に、ユーザが提案を拒否した場合には、それは、少なくとも1つのルールが不正確で無効であるということを示すことができる。一実装形態においては、ルール生成モジュール122に関連する詳細は、ルール生成データ130内に格納される。
【0045】
[0045] さらに、更新モジュール124は、所定の時間期間にわたる少なくとも1つのルールの違反に関連するルール違反トレンドを特定することができる。ルール違反トレンドは、少なくとも1つのルールが違反されるパターンとして理解することが可能である。ユーザ応答、少なくとも1つのデータトレンド、少なくとも1つの関係、およびルール違反トレンドに基づいて、更新モジュール124は、少なくとも1つのルールを更新する。したがって、少なくとも1つのルールは、ルール違反トレンド、少なくとも1つの関係、少なくとも1つのデータトレンド、およびユーザ応答における変化に基づいて更新され続けることが可能である。一実装形態においては、更新モジュール124は、ルールの自動化された生成および更新に関連する詳細をユーザに提供するためのパフォーマンスレポートを生成する。パフォーマンスレポートは、少なくとも1つのデータトレンド、少なくとも1つのデルタ値、少なくとも1つの関係、少なくとも1つのルール、少なくとも1つのルール違反トレンド、および、少なくとも1つのルールの改訂に関連する詳細を含むことができるが、それらには限定されない。一実装形態においては、更新モジュール124に関連する詳細は、ルール生成データ130内に格納される。
【0046】
[0046]
図2は、本発明の主題の一実施形態による、データトレンド分析に基づくルールの自動化された生成および動的な更新のための方法200を示している。方法200は、いくつかの異なるやり方で多様なコンピューティングシステムにおいて実現することが可能である。例えば、ここで説明する方法200は、上述のようなルール生成システム102を使用して実装されることが可能である。
【0047】
[0047] 方法200は、完全にまたは部分的に、コンピュータ実行可能命令という一般的なコンテキストにおいて説明されることが可能である。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャー、モジュール、機能などを含むことができる。この方法のステップは、プログラムされたコンピュータによって実行可能ということを当業者なら容易に認識するであろう。本明細書においては、いくつかの実施形態はまた、プログラムストレージデバイス、例えば、デジタルデータストレージメディアをカバーすることを意図されており、それらは、マシンまたはコンピュータによって読み取り可能であり、命令のマシンによって実行可能なまたはコンピュータによって実行可能なプログラムをエンコードし、前記命令は、説明されている方法200のステップのうちのいくつかまたはすべてを実行する。
【0048】
[0048] 方法200が説明されている順序は、限定として解釈されることを意図されておらず、この方法または代替方法を実装するために任意の数の説明されている方法ブロックが任意の順序で組み合わされることが可能である。加えて、本明細書において説明されている主題の趣旨および範囲から逸脱することなく、個々のブロックがこの方法から削除されることが可能である。さらに、これらの方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せにおいて実装されることが可能である。方法200は、システム102を参照して説明されているが、その説明は、その他のシステムにも拡張されることが可能であるということが理解されるであろう。
【0049】
[0049] 方法200は、データトレンド分析に基づくルールの自動化された生成および動的な更新を容易にすることができる。一実装形態においては、検索メタデータに基づいて少なくとも1つのデータソースからデータが検索される。少なくとも1つのデータソースは、外部データベース、インハウスデータベース、およびオンラインポータルを含むことができるが、それらには限定されない。さらに、検索メタデータは、データベース名、テーブル名、データベースIP、データベースポート、データベースのタイプ、データベースユーザ名、データベースパスワード、データを検索するための少なくとも1つのクエリー、および検索頻度を含むことができるが、それらには限定されない。一実装形態においては、環境のモニタリングのためにデータのサンプルが利用される。
【0050】
[0050] 一実装形態においては、技術的な問題に起因して、ある期間に渡ってデータを検索することができない可能性が存在する。そのような一実装形態においては、見つからないデータを、かかるデータの以前のトレンドに基づいて推定することが可能である。例えば、データが検索されなかった期間に関連する詳細を埋めるために、技術的な問題の前に受信されたデータと、技術的な問題の後に受信されたデータとの平均が計算されて考慮されることが可能である。したがって、データの検索におけるいかなる不整合も、全体的な分析を妨げることはない。
【0051】
[0051] 別の実装形態においては、少なくとも1つのデータソースから検索されるデータは、システム102が認識可能なフォーマットへと変換される。一実装形態においては、データは、生のフォーマットで取得され、次いで少なくとも1つのデータストリームへと変換される。データストリームは、時間の順に並べられたデータとして理解することが可能である。それぞれのデータストリームは、タイムスタンプ、データ値、およびデータのタイプを含むことができるが、それらには限定されない。
【0052】
[0052] 一実装形態においては、上記のような変換中に、それぞれのデータストリームに一意の識別情報を提供するために識別メタデータがそれぞれのデータストリームに割り当てられる。識別メタデータは、環境名、アプリケーション、サーバ、およびその他の構成アイテムに関連する詳細をさらに含むことができるが、それらには限定されない。少なくとも1つのデータストリームへのデータの変換に続いて、少なくとも1つのデータストリームに関連する少なくとも1つのデータトレンドが特定される。少なくとも1つのデータトレンドは、事前に定められた期間の間に少なくとも1つのデータストリームによって辿られるパターンを示している。少なくとも1つのデータソースから新たなデータが検索された場合には、少なくとも1つのデータトレンドを更新することが可能である。
【0053】
[0053] ブロック202において、少なくとも1つのデータストリームに関連する少なくとも1つのデルタ値の計算のために、少なくとも1つのデータトレンドを入手する。少なくとも1つのデルタ値は、特定の時間インスタンスにおける少なくとも1つのデータトレンドに対する少なくとも1つのデータストリームの逸脱を示している。一実装形態においては、少なくとも1つのデルタ値は、少なくとも1つのデータストリームのうちのデータ値の割合という形式で計算される。一実装形態においては、システム102のルール生成モジュール122は、少なくとも1つのデータトレンドを入手することができる。
【0054】
[0054] ブロック204において、少なくとも1つのデルタ値の計算に際して、複数のデータストリームの間における少なくとも1つの関係を特定する。少なくとも1つのデータトレンドと、それぞれのデータストリームに対応する識別メタデータとに基づいて、少なくとも1つの関係を特定することが可能である。一実装形態においては、複数のデータストリームの間における少なくとも1つの関係を確立するために、それぞれのデータストリームに関連する識別メタデータが比較される。一実装形態においては、別々のデータトレンド上でのルールの違反の影響を判定する際に支援を行うための、少なくとも1つのデータトレンドと、以前に生成されたルールとの間における少なくとも1つの関係を特定する。
【0055】
[0055] 一実装形態においては、システム102のルール生成モジュール122は、少なくとも1つのデータトレンドおよび識別メタデータに基づいて複数のデータストリームの間における少なくとも1つの関係を特定することができる。
【0056】
[0056] ブロック206において、少なくとも1つのデルタ値の計算、および少なくとも1つの関係の特定に基づいて、少なくとも1つのルールが生成される。その少なくとも1つのルールは、少なくとも1つのデータストリーム内の逸脱を追跡するためにユーザによって設定された条件として理解することが可能である。一実装形態においては、ユーザは、対応する分野における専門家、およびステークホルダを含むことができるが、それらには限定されない。一例においては、特定の時間インスタンスにおけるしきい値違反をモニタするために少なくとも1つのルールが生成される。例えば、データストリームのデルタ値が15%超の逸脱を示すというルールが生成される。したがって、データストリームのデルタ値が15%超の変動を示すとすぐに、ルールが違反されているとみなされる。なぜなら、条件が満たされたからである。同様に、事前に定められた持続時間におけるしきい値違反をモニタするために少なくとも1つのルールを生成することが可能である。さらに、しきい値違反の連続した発生をモニタするために少なくとも1つのルールが生成される。一実装形態においては、少なくとも1つのルールは、上述の条件の任意の組合せを伴って生成されることが可能である。別の実装形態においては、複数のデータストリームの間における少なくとも1つの関係を利用する複雑なルールが生成される。
【0057】
[0057] 少なくとも1つのルールの違反に際して、少なくとも1つのルールの違反を示すための通知がユーザに提供される。一実装形態においては、その通知は、ルール違反に関連する詳細、アクション、およびルール違反を克服するための提案を含むことができるが、それらには限定されない。アクションは、通知を受け入れること、拒否すること、または無視することによってユーザが通知に応答することを可能にする「受け入れ」、「拒否」、および「無視」タブを含むことができるが、それらには限定されない。さらに、ユーザ応答に基づいて少なくとも1つのルールの有効性および正確さが確立される。一実装形態においては、システム102のルール生成モジュール122は、少なくとも1つのデルタ値および少なくとも1つの関係に基づいて少なくとも1つのルールを生成することができる。
【0058】
[0058] ブロック208において、所定の時間期間にわたる少なくとも1つのルールの違反に関連するルール違反トレンドが特定される。ルール違反トレンドは、少なくとも1つのルールが違反されるパターンとして理解される。一実装形態においては、システム102の更新モジュール124は、ルール違反トレンドを特定することができる。
【0059】
[0059] ブロック210において、ユーザ応答、少なくとも1つのデータトレンド、少なくとも1つの関係、およびルール違反トレンドに基づいて、少なくとも1つのルールが更新される。さらに、少なくとも1つのルールは、ルール違反トレンド、少なくとも1つの関係、少なくとも1つのデータトレンド、およびユーザ応答における変化に基づいて更新を続けることが可能である。一実装形態においては、ルールの自動化された生成および更新に関連する詳細をユーザに提供するためのパフォーマンスレポートが生成される。パフォーマンスレポートは、少なくとも1つのデータトレンド、少なくとも1つのデルタ値、少なくとも1つの関係、少なくとも1つのルール、少なくとも1つのルール違反トレンド、および、少なくとも1つのルールの改訂に関連する詳細を含むことができるが、それらには限定されない。
【0060】
[0060] データトレンド分析に基づくルールの自動化された生成および更新のための方法の実装形態が、構造的な特徴および/または方法に特有の言葉で説明されているが、本発明の主題は、それらの説明されている特定の特徴または方法に必ずしも限定されるものではないことが理解される。