(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】構造化ログイベントを用いたワークフローの支援および自動化
(51)【国際特許分類】
G06F 16/33 20190101AFI20241210BHJP
G06Q 10/06 20230101ALI20241210BHJP
G06F 21/57 20130101ALI20241210BHJP
【FI】
G06F16/33
G06Q10/06
G06F21/57 370
(21)【出願番号】P 2022548191
(86)(22)【出願日】2020-12-30
(86)【国際出願番号】 IB2020062537
(87)【国際公開番号】W WO2021161092
(87)【国際公開日】2021-08-19
【審査請求日】2023-05-25
(32)【優先日】2020-02-13
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【氏名又は名称】太佐 種一
(74)【代理人】
【識別番号】100120710
【氏名又は名称】片岡 忠彦
(72)【発明者】
【氏名】ソフェー,オデッド
(72)【発明者】
【氏名】マルガリット,オデッド
(72)【発明者】
【氏名】アロウシュ,ヤイア
【審査官】早川 学
(56)【参考文献】
【文献】中国特許出願公開第103218692(CN,A)
【文献】米国特許第09122694(US,B1)
【文献】米国特許第10467635(US,B1)
【文献】米国特許出願公開第2018/0089602(US,A1)
【文献】米国特許出願公開第2016/0189203(US,A1)
【文献】米国特許出願公開第2019/0261956(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06Q 10/00-99/00
G06F 21/00-21/88
(57)【特許請求の範囲】
【請求項1】
プロセッサを含む
コンピュータ・システムであって、前記プロセッサは、
セキュリティ・インシデントを調査するためのシステムとユーザとの間のユーザインタフェース
を介したやり取りを監視して、
前記ユーザが前記システムを用いて実行したステップフローを含む活動ログを生成することと、
前記活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された前記特徴および前記共通変数に基づいて、構造化ログイベントを生成することと、
前記構造化ログイベントに基づいて
、複数のセキュリティ・インシデント調査が開始した共通の開始イベントを検出して、前記共通の開始イベントに関連する複数のプロセスを統合することにより、ワークフロー・モデルを生成することと、
生成された前記ワークフロー・モデルに基づいてワークフローを自動化または支援すること
を行うためのものである、
コンピュータ・システム。
【請求項2】
プロセッサを含むコンピュータ・システムであって、前記プロセッサは、
ユーザインタフェースを監視して、ステップフローを含む活動ログを生成することと、
前記活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された前記特徴および前記共通変数に基づいて、構造化ログイベントを生成することと、
前記構造化ログイベントに基づいてワークフロー・モデルを生成することであって、前記プロセッサが、
監視されるプロセスの中の共通の開始イベントを検出することと、
前記共通の開始イベントに基づいて前記プロセスを統合して最適化することと、
前記プロセスの中の共通のサブプロセスを検出することと、
統合された前記プロセスの中の各プロセスの遷移規則を検出することと、
分類を実行してコンテキストを検出することと、
前記開始イベント、前記遷移規則、前記共通のサブプロセスおよび前記コンテキストに基づいて、最適化されたフローモデルを生成することと
を行うことを含む、
前記ワークフロー・モデルを生成することと、
生成された前記ワークフロー・モデルに基づいてワークフローを自動化または支援すること
を行うためのものである、コンピュータ・システム。
【請求項3】
前記プロセッサは、ユーザフィードバックに基づいて最適化された前記フローモデルを調整するためのものである、請求項
2に記載の
コンピュータ・システム。
【請求項4】
前記構造化ログイベントは、自然言語理解ユニットを介して生成され、前記プロセッサは、前記構造化ログイベントを、開始イベント、ステップフローおよび終了イベントに変換するためのものである、請求項1
~3のいずれか1項に記載の
コンピュータ・システム。
【請求項5】
前記プロセッサは、横断する顧客をクラスタ化し、クラスタにおける各顧客に提示すべき改良されたワークフローを生成するためのものである、請求項1~4のいずれか1項に記載の
コンピュータ・システム。
【請求項6】
前記プロセッサは、ユーザの手動プロセスのための次のステップを示唆する予測分析を対話的に実行するためのものである、請求項1~5のいずれか1項に記載の
コンピュータ・システム。
【請求項7】
前記自動化または支援されたワークフローは、セキュリティ上のベストプラクティスなワークフロー、フォレンジック・プロセス・ワークフロー、システム・チューニング・ワークフローまたはリスク緩和プロセス・ワークフローを含む、請求項1~6のいずれか1項に記載の
コンピュータ・システム。
【請求項8】
コンピュータ実装方法であって、
コンピュータ・システムが、
プロセッサを介して、
セキュリティ・インシデントを調査するためのシステムとユーザとの間のユーザインタフェース
を介したやり取りを監視して、
前記ユーザが前記システムを用いて実行したステップフローを含む活動ログを生成するステップと、
前記プロセッサを介して、前記活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された前記特徴および前記共通変数に基づいて、構造化ログイベントを生成するステップと、
前記プロセッサを介して、前記構造化ログイベントに基づいて
、複数のセキュリティ・インシデント調査が開始した共通の開始イベントを検出して、前記共通の開始イベントに関連する複数のプロセスを統合することにより、ワークフロー・モデルを生成するステップと、
前記プロセッサを介して、生成された前記ワークフロー・モデルに基づいてワークフローを自動化または支援するステップと
を実行する、コンピュータ実装方法。
【請求項9】
コンピュータ実装方法であって、コンピュータ・システムが、
プロセッサを介して、ユーザインタフェースを監視して、ステップフローを含む活動ログを生成するステップと、
前記プロセッサを介して、前記活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された前記特徴および前記共通変数に基づいて、構造化ログイベントを生成するステップと、
前記プロセッサを介して、前記構造化ログイベントに基づいてワークフロー・モデルを生成するステップと、
前記プロセッサを介して、生成された前記ワークフロー・モデルに基づいてワークフローを自動化または支援するステップと
を実行し、前記ワークフロー・モデルを生成するステップは、
監視されるプロセスの中の共通の開始イベントを検出するステップと、
前記共通の開始イベントに基づいて前記プロセスを統合して最適化するステップと、
前記プロセスの中の共通のサブプロセスを検出するステップと、
統合された前記プロセスの中の各プロセスの遷移規則を検出するステップと、
分類を実行してコンテキストを検出するステップと、
前記開始イベント、前記遷移規則、前記共通のサブプロセスおよび前記コンテキストに基づいて、最適化されたフローモデルを生成するステップと
を含む
、コンピュータ実装方法。
【請求項10】
前記ワークフロー・モデルを生成するステップは、
ユーザフィードバックに基づいて最適化された前記フローモデルを調整するステップを含む、請求項
9に記載のコンピュータ実装方法。
【請求項11】
前記コンピュータ・システムが、前記構造化ログイベントを、開始イベント、ステップフローおよび終了イベントに変換するステップを含む、請求項
8~10のいずれか1項に記載のコンピュータ実装方法。
【請求項12】
前記コンピュータ・システムが、横断する顧客をクラスタ化するステップと、クラスタにおける各顧客に推奨すべき改良されたワークフローを生成するステップとを含む、請求項8~11のいずれか1項に記載のコンピュータ実装方法。
【請求項13】
前記コンピュータ・システムが、ユーザの手動プロセスのための次のステップを示唆する予測分析を対話的に実行するステップをさらに含む、請求項8~12のいずれか1項に記載のコンピュータ実装方法。
【請求項14】
前記コンピュータ・システムが、前記構造化ログイベントに基づいて追加のワークフロー・モデルを生成するステップと、自動的に前記追加のワークフロー・モデルを実行して、提示すべき複数の結果を生成するステップとを含む、請求項8~13のいずれか1項に記載のコンピュータ実装方法。
【請求項15】
ワークフローを自動化または支援するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、プロセッサに、
セキュリティ・インシデントを調査するためのシステムとユーザとの間のユーザインタフェース
を介したやり取りを監視して、
前記ユーザが前記システムを用いて実行したステップフローを含む活動ログを生成することと、
前記活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された前記特徴および前記共通変数に基づいて、構造化ログイベントを生成することと、
前記構造化ログイベントに基づいて
、複数のセキュリティ・インシデント調査が開始した共通の開始イベントを検出して、前記共通の開始イベントに関連する複数のプロセスを統合することにより、ワークフロー・モデルを生成することと、
生成された前記ワークフロー・モデルに基づいてワークフローを自動化または支援すること
を実行させるためのものである、コンピュータ・プログラム。
【請求項16】
ワークフローを自動化または支援するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムは、プロセッサに、
ユーザインタフェースを監視して、ステップフローを含む活動ログを生成することと、
前記活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された前記特徴および前記共通変数に基づいて、構造化ログイベントを生成することと、
前記構造化ログイベントに基づいてワークフロー・モデルを生成することであって、
監視されるプロセスの中の共通の開始イベントを検出することと、
前記共通の開始イベントに基づいて前記プロセスを統合して最適化することと、
前記プロセスの中の共通のサブプロセスを検出することと、
統合された前記プロセスの中の各プロセスの遷移規則を検出することと、
分類を実行してコンテキストを検出することと、
前記開始イベント、前記遷移規則、前記共通のサブプロセスおよび前記コンテキストに基づいて、最適化されたフローモデルを生成することと
を含む、前記ワークフロー・モデルを生成することと、
生成された前記ワークフロー・モデルに基づいてワークフローを自動化または支援すること
を実行させるためのものである、コンピュータ・プログラム。
【請求項17】
前記コンピュータ・プログラムは、前記プロセッサに、ユーザフィードバックに基づいて最適化された前記フローモデルを調整することを実行させる、請求項
16に記載のコンピュータ・プログラム。
【請求項18】
前記コンピュータ・プログラムは、前記プロセッサに、さらに、前記構造化ログイベントを開始イベント、ステップフローおよび終了イベントに変換することを実行させる、請求項15
~17のいずれか1項に記載のコンピュータ・プログラム。
【請求項19】
前記コンピュータ・プログラムは、前記プロセッサに、横断する顧客をクラスタ化し、クラスタにおける各顧客に推奨すべき改良されたワークフローを生成することを実行させる、請求項15~18のいずれか1項に記載のコンピュータ・プログラム。
【請求項20】
前記コンピュータ・プログラムは、前記プロセッサに、ユーザ手動プロセスのための次のステップを示唆する予測分析を対話的に実行することを実行させる、請求項15~19のいずれか1項に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本技術は、ワークフローに関する。より具体的には、本技術は、ワークフローの自動化に関する。
【発明の概要】
【0002】
本明細書で説明される実施形態によれば、システムは、ユーザインタフェースを監視して、ステップフローを含む活動ログを生成することを行うためのプロセッサを含み得る。プロセッサは、また、活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された特徴および共通変数に基づいて、構造化ログイベントを生成してもよい。プロセッサは、また、構造化ログイベントに基づいてワークフロー・モデルを生成してもよい。プロセッサは、また、生成されたワークフロー・モデルに基づいてワークフローを自動化または支援してもよい。
【0003】
本明細書で説明される別の実施形態によれば、方法は、プロセッサを介して、ユーザインタフェースを監視して、ステップフローを含む活動ログを生成するステップを含む。方法は、さらに、プロセッサを介して、活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された特徴および共通変数に基づいて、構造化ログイベントを生成するステップを含む。方法は、また、プロセッサを介して、構造化ログイベントに基づいてワークフロー・モデルを生成するステップを含む。方法は、また、プロセッサを介して、生成されたワークフロー・モデルに基づいてワークフローを自動化または支援するステップを含む。
【0004】
本明細書で説明される別の実施形態によれば、ワークフローを自動化または支援するためのコンピュータ・プログラム製品は、プログラムコードが具現化されたコンピュータ可読ストレージ媒体を含む。コンピュータ可読ストレージ媒体は、一時的な信号自体ではない。プログラムコードは、プロセッサによって実行可能であり、プロセッサが、ユーザインタフェースを監視して、ステップフローを含む活動ログを生成することを実行するようにする。プログラムコードは、また、プロセッサが、活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された特徴および共通変数に基づいて、構造化ログイベントを生成するようにする。プログラムコードは、また、プロセッサが、構造化ログイベントに基づいてワークフロー・モデルを生成するようにする。プログラムコードは、また、プロセッサが、生成されたワークフロー・モデルに基づいてワークフローを自動化または支援するようにする。
【図面の簡単な説明】
【0005】
【
図1】構造化ログイベントを使用してワークフローを自動化し、また、支援するための例示的なシステムのブロック図。
【
図2】構造化ログイベントを用いてワークフローを自動化し、また、支援することができる例示的な方法のブロック図。
【
図3】ワークフローを自動化または支援するためのワークフロー・モデルを生成することができる例示的な方法のブロック図。
【
図4】構造化ログイベントを用いてワークフローを自動化し、また支援することができる例示的なコンピューティング・デバイスのブロック図。
【
図5】本明細書で説明される実施形態によるクラウド・コンピューティング環境の例を示す図。
【
図6】本明細書に記載の実施形態による例示的な抽象化モデル・レイヤの図。
【
図7】構造化ログイベントを使用してワークフローを自動化し、また支援することができる、例示的な有形的、非一時的なコンピュータ可読媒体を示す。
【発明を実施するための形態】
【0006】
セキュリティ動作は、非常に高コストであり、限定されている。セキュリティ調査において不審な全てのイベントを検討し、調査することは困難であり、一方で、これらのイベントの各々は、標的化された組織での深刻な含意を伴うセキュリティ・インシデントを示すかもしれない。加えて、全ての不審なイベントに対してブレイン・ストーミングおよびプロセス計画を行うことは、コストが法外となる可能性がある。さらに、所与の時間に実行する何千ものこのようなプロセスが存在する可能性もある。
【0007】
いくつかの自動化されたイベント調査ソリューションが事前に構築される。例えば、セキュリティ専門家は、自動化されたイベント調査のために、「直ぐに使える(out-of-the box)」レシピを設計することができる。しかしながら、これらのアプローチは、非常に限定されており、今日の困難なサイバーセキュリティのランドスケープを満たさない可能性がある。例えば、攻撃者の迅速かつ動的な独創力が、検出を阻止する可能性がある。加えて、技術が頻繁に更新されると、このような設計が急速に無効になる可能性がある。さらに、ベンダからのドメイン専門知識の欠如により、そのような設計が最初から効果がない可能性がある。最後に、法人固有のケースが、他の状況でうまく機能しない可能性がある。例えば、攻撃者は、顧客に特有の脆弱性を利用する可能性がある。特定の顧客が特定のアーキテクチャ、構成またはコードを有し、ベンダがリリースしているプロセスがこれらのケースをカバーしない場合もある。加えて、シグネチャを有しない攻撃に対しては、このような攻撃を修正するための効率的な根かニズムを自動的に構築するための簡単な方法がない可能性がある。
【0008】
本開示の実施形態によれば、システムは、ワークフローを自動的に支援し、またはワークフローを自動化するために、構造化ログイベントを使用することができる。例示的なシステムは、ユーザインタフェースを監視して、ステップフローを含む活動ログを生成するプロセッサを含む。プロセッサは、活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された特徴および共通変数に基づいて、構造化ログイベントを生成するためのものである。プロセッサは、構造化ログイベントに基づいてワークフロー・モデルを生成するためのものである。プロセッサは、生成されたワークフロー・モデルに基づいて、ワークフローを自動化または支援するためのものである。ひいては、本開示の実施形態は、監視されたユーザの活動から生成されたモデルワークフローに基づいてワークフローのサポートを自動化または支援することを可能とする。
【0009】
ここで、
図1を参照すると、ブロック図は、構造化ログイベントを使用してワークフローを自動化し、また支援するための例示的なシステムを示す。例示的なシステムは、概して、参照番号100によって参照され、
図2および
図3の方法200および300を使用して、
図4および
図5のコンピューティング・デバイス400またはコンピュータ可読媒体500を使用して実装することができる。
【0010】
図1の例では、システム100は、複数のユーザ・アプリケーション・プログラミング・インタフェース(API)102を含む。システム100は、また、ユーザAPI102に通信可能に結合される、緩和プラットフォーム104と、インシデント調査プラットフォーム106と、セキュリティ警報システム108とを含む。システム100は、さらに、ユーザAPI102に通信可能に結合される活動モニタ110を含む。システム100は、また、活動モニタ110に通信可能に結合されるイベントログ・ストレージ112をさらに含む。システム100は、イベントログ・ストレージ112に通信可能に結合される自然言語理解(NLU)エンジン114も含む。システム100は、NLUエンジン114に通信可能に結合されるプロセス・マイニング・エンジン116をさらに含む。システム100は、また、プロセス・マイニング・エンジン116、ユーザAPI102およびインシデント調査プラットフォーム106に通信可能に結合されるサーバ118を含む。
【0011】
さらに、
図1を参照すると、システム100は、ドメイン専門家の知識および熟練を活用することによって、セキュリティ・ベストプラクティス・ビルダー、フォレンジック・プロセス、システム・チューニングおよびリスク緩和プロセスを自動化するために使用することができる。特に、システム100は、NLUおよびプロセス・マイニングの組み合わせを使用して、これらのプロセスを実行する際にドメイン専門家によって使用されるワークフローを構築する。システム100は、次いで、これらのプロセスを適用する際にユーザを支援するために、構築ワークフローを利用することができる。例えば、システム100は、到来する不審なイベントに対する緩和対策を、そのような緩和対策をサポートするための情報を含めて、提案することができる。システム100は、イベント調査、システム・チューニングおよびリスク緩和プロセスを自動化するために、構築ワークフローを利用することもできる。
【0012】
図1の例では、システム100は、調査手順を適用するためにドメイン専門家によって使用されるユーザAPI102を含む。一例として、ドメイン専門家は、システム・オン・チップ(SoC)アナリストであってもよい。種々の例では、これらのユーザAPI102は、単純なSQLクエリを適用するためのシンプルなユーザインタフェースから、システムに自由な言語で質問をして回答を得ることが可能なNLUベースのUIまでに及んでもよい。例えば、ユーザAPI102は、あらゆる不審なイベントを調査するために必要な作業を簡略化するための高度なNLU技術を備えたチャットボットを実装することができる。いくつかの例では、ユーザとのチャットは、基本的な遷移規則を設定するために使用され得る、データを照会するためのRestAPIに変換されてもよい。本明細書で使用されるように、遷移規則は、プロセスのステップに対する、別のステップに移動するための1または複数の条件を含む。例えば、ユーザは、不審なユーザが過去3日のうちにN回以上ログインに失敗したか否かをシステムに尋ねることができる。ユーザは、「はいの場合には、ステップAをとる」こと、「いいえの場合はステップBを取る」ことを指定してもよい。よって、この例の遷移規則は、過去3日内の失敗したログインの数に基づいており、次のステップを決定するためにシステム100によって使用される。種々の例では、ユーザとのチャットからのデータは、種々のアクションを実行するために使用されてもよい。例えば、アクションは、次のN時間、不審なユーザに対してアクセスをブロックすることを含んでもよい。いくつかの例では、アクションは、不審なユーザの上司に通知を送信することを含んでもよい。種々の例では、アクションは、不審なユーザに対する監査の分解能(resolution)を増大させることを含んでもよい。いくつかの例では、アクションは、不審なユーザのアクションをバイオレーション・システムにログ記録することを含んでもよい。いくつかの例では、アクションはチケットを開くことを含んでもよい。例えば、チケットは、マニュアルでのレビューのために不審なユーザのアクションにフラグを立てるために使用されてもよい。種々の例では、アクションは、不審なユーザの検出が偽陽性であったことを検出することに応答して、ケースを閉じることを含んでもよい。
【0013】
セキュリティ警報システム108は、セキュリティ・イベントの検出に応答して、セキュリティ警報を発生してもよい。例えば、セキュリティ・イベントは、データ・ファイアウォール、侵入検出システム(IDS)、セキュリティ情報およびイベント管理(SIEM)またはセキュリティ・イベント検出のための他の適切な技術を介して検出されてもよい。いくつかの例では、セキュリティ警報システム108は、複数のセキュリティ警報システムを含んでもよい。
【0014】
インシデント調査プラットフォーム106は、セキュリティ・インシデントを調査するために使用してもよい。例えば、セキュリティ・インシデントは、SIEM、マルウェア分析エンジン、データベース活動分析エンジンなどから受信してもよい。種々の例では、インシデント調査プラットフォーム106は、ユーザが内部データベースおよび外部データベースを照会することを可能にする検索エンジンを含む。
【0015】
緩和プラットフォーム104は、組織のセキュリティシステムに構成チューニングおよび緩和コマンドを適用するために使用してもよい。例えば、緩和プラットフォーム104は、ファイアウォールのブラックリストにインターネット・プロトコル(IP)アドレスを追加するために使用されてもよい。別の例として、緩和プラットフォーム104は、あるサービスについてユーザのクレデンシャルを無効にしてもよい。
【0016】
活動モニタ110は、1または複数のシステムとのドメイン専門家のやり取りを監視し、ドメイン専門家によって実行されるステップフローを含む活動ログを生成してもよい。種々の例では、活動モニタ110の監視は、クライアント・サイドであってもよく、あるいは、サーバ・サイドであってもよい。いくつかの例では、最も包括的な監視される手順のレコードを取得ために、活動モニタ110は、プロセス中のすべてのドメイン専門家の活動を監視してもよい。したがって、いくつかの例では、活動モニタ110は、外部プラットフォームに適用されるクエリを監視してもよい。例えば、活動モニタ110は、ウェブ・プラットフォーム上のクエリを監視してもよい。加えて、いくつかの例では、活動モニタ110は、受動的モニタリングまたは能動的モニタリングを行ってもよい。例えば、受動的モニタリングは、ドメイン専門家のようなユーザに対して透過的であってもよい。能動的なモニタリングでは、活動モニタ110は、特定のワークフローについての洞察を得るためにユーザとやり取りをしてもよい。例えば、活動モニタ110は、調査手順における次のステップに導く、いくつかの応答の一部を強調表示ようにユーザに依頼してもよい。種々の例では、活動モニタ110は、プロセス・マイニングを改善するために、遷移規則を決定し、トークンを埋めるためにユーザに助けを求めるプロアクティブなモニタリングを適用してもよい。本明細書で使用されるように、トークンは、後続のステップで使用されて、よって格納されるパラメータおよびパラメータ値のリストを参照する。例えば、パラメータ値は、プロセスの後続のステップにおける実行時パラメータ値として使用されてもよい。よって、トークンは、後続のステップのためのコンテキストとして働き得る。種々の例では、活動モニタ110は、ユーザが、続くクエリに導かれるか、またはインシデント結論に導かれるシステム応答におけるアーチファクトを強調表示することを可能にしてもよい。
【0017】
種々の例において、イベントログ・ストレージ112は、活動モニタ110によって生成された活動ログを格納するために使用されるデータベースである。例えば、イベントログ・ストレージ112は、内部データベースであっても、または外部データベースであってもよい。
【0018】
NLUエンジン114は、活動ログ内の非構造化データから特徴および共通変数を抽出するために使用されるモデルであってもよい。例えば、特徴は、ユーザ、ファイルまたは監視されるシステムの他の特徴であってもよい。NLUエンジン114は、非構造化データを、プロセス・マイニング・エンジン116によって処理可能な構造化ログイベントに変換することができる。変数は、特定のエラータイプ、時間などであってもよい。NLUエンジン114は、構造化ログイベントを、イベントログ・ストレージ112のようなデータベースに格納してもよい。
【0019】
プロセス・マイニング・エンジン116は、イベントログ・ストレージ112からドメイン専門家のログを受信し、ドメイン専門家のログに基づいて、ワークフロー・モデルを構築してもよい。ワークフロー・モデルを構築するために、プロセス・マイニング・エンジン116は、プロセス・マイニング手順を実行してもよい。プロセス・マイニング手順は、例えば、
図3の方法300を使用して実装することができる。例えば、プロセス・マイニング手順において、プロセス・マイニング・エンジン116は、プロセスを、開始->ステップフロー->終了に変換してもよい。プロセス・マイニング・エンジン116は、共通の「開始ステップ」を識別してもよい。例えば、共通の開始ステップは、複数の調査が開始した共通の開始不審イベントであってもよい。種々の例において、開始ステップは、プロセス・マイニング・エンジン116を実行して、開始ステップに関連するこれらのプロセスを統合し、最適化するために使用されてもよい。プロセス・マイニング・エンジン116は、次いで、全てのプロセスの中での共通のサブプロセスを識別してもよい。プロセス・マイニング・エンジン116は、すべてのプロセスの遷移規則をさらに識別してもよい。例えば、プロセス・マイニング・エンジン116は、すべてのプロセスの遷移規則を識別するための事前定義された構文を設定してもよい。種々の例では、プロセス・マイニング・エンジン116は、分類を実行してステップのコンテキストを識別してもよい。ステップのコンテキストは、トークンと参照され得る。分類の目的で、プロセス・マイニング・エンジン116は、どの部分が変数であり、どこから変数を抽出するかを学習することができる。どの部分が変数であり、どこから変数を抽出するかを学習することは、非常に複雑である可能性があるため、いくつかの例では、プロセス・マイニング・エンジン116は、ユーザに選択肢を提示して、手動での選択や変数の調整を可能にしてもよい。一例として、不審なイベントが特定のデータベースのテーブルに関連する場合、第2のステップは、このデータベース・テーブルに関連する症状(symptoms)を警告することができる。次のステップは、このデータベースに対する第1の調査ステップを実行することができる。分類の目的は、自動化が、<table:”table name”>を定数ではなく実行パラメータとして設定することを知るように、<entity:value>のペアを識別することである。プロセス・マイニング・エンジン116は、次いで、最適化されたフローを生成してもよい。例えば、プロセス・マイニング・エンジン116は、最適化されたフローを生成する際に、開始イベント、遷移規則および共通サブプロセスを考慮に入れてもよい。種々の例では、フローの最適化は、同一の法人のユーザ内で行ってもよいし、複数の法人を横断して行ってさえもよい。いくつかの例では、プロセス・マイニング・エンジン116は、ユーザが、生産ワークフロー・モデルをカスタマイズしかつ強化することを可能にすることによって、ワークフロー・モデルを調整してもよい。種々の例では、プロセス・マイニング手順の結果は、NLUに基づいて自動的に生成される、自動化された最適な統合済みのプロセスフローである。いくつかの例では、結果として得られる最適な統合済みプロセスフローは、多くの顧客間で共有されてもよい。
【0020】
種々の例において、サーバ118は、構築されたワークフローを入力として受信し、構築されたワークフローを使用して、ユーザがイベント調査手順を適用することを支援するか、または、全体的または部分的のいずれかにおいて調査手順を自動化するモデルを含んでもよい。いくつかの例では、自動化されたプロセスは、組織の警報システムの1つによって検出されたインシデントによってトリガされてもよいし、または定期的にトリガされてもよい。例えば、ユーザは、脅威分析プロセスをEx2として記録し、脅威分析プロセスをN時間毎に自動的に実行するようにスケジュールしてもよい。種々の例では、サーバ118は、スクリプトからエンティティを識別し、次いで、プロセスの実行時パラメータに使用するためのトークンを探すための分類アルゴリズムを含んでもよい。いくつかの例では、プロセスは、その遷移規則およびトークンを用いて自動的に定義される。例えば、サーバ118は、ユーザが、第1のステップから動的に生成されるトークンに含まれるべきであり、その後のすべてのステップを通じて使用されることを識別することができる。追加のパラメータ値は、後続のステップで使用するべき、後のステップにおけるトークンに追加されてもよい。
【0021】
種々の例では、ユーザがより多くのプロセスを実行することを継続する仮定すると、プロセス・マイニング・エンジン116は、同一の開始イベントに対するより多くのプロセスおよび共通のサブプロセスを識別するために定期的に動作することができる。プロセス・マイニング・エンジン116は、特定のプロセス・マイニング・アルゴリズムを実行して、多数のワークフロー・プロセスを、最適化されたプロセスに最適化してもよい。例えば、プロセス・マイニング・エンジン116は、フェーズ・マイニング・アルゴリズムを実行してもよい。プロセス・マイニング・エンジン116は、すべての可能な遷移規則でプロセスを識別し、最適化することができる。一例として、ユーザがCOMMAND=GRANTに関係する外れ値(Outlier)を実行し、しばらくしてから、同一ユーザまたは別のユーザが、COMMAND=SELECTに対して上記の脅威分析プロセスEx2と同様のプロセスを実行する第1のプロセスの場合、次いで、2つのプロセスは、遷移規則を用いて、1つの最適化されたプロセスに統合され得る。
【0022】
このようにして、サーバ118は、最も適合した最適化されたプロセスを適用するだけでなく、所与のインシデントのために使用されなかった他のプロセスを適用してもよい。種々の例において、サーバ118は、サーバとセキュリティ専門家との間の反復を容易にするユーザインタフェースを含む。例えば、ユーザインタフェースは、セキュリティ分析者に対する提案を提示してもよいし、または、自動化プロセスにセキュリティ分析者のフィードバックを提供するなどしてもよい。種々の例では、サーバ118は、横断する顧客をクラスタ化し、すべての顧客にかれらのプロセスの改善を推奨することができる。例えば、顧客は、最近傍アルゴリズムを実行することによってクラスタ化されてもよい。いくつかの例では、サーバ118は、ユーザのマニュアルでの処理に対する次のステップを示唆する予測分析を対話的に実行してもよい。
【0023】
1つのプロセス例Ex1として、新たなコマンド外れ値”GRANT”が検出されてもよい。セキュリティ分析者は、要求:カテゴリ”New Command”の最上位の外れ値を有するユーザを発見する(find the user with top outlier of Category ”New Command”)、を送信してもよい。システムは、このユーザを表示することによって応答し、この外れ値コマンドに関する詳細を提供することができる。結果は、NLUエンジン114によって処理されて、特徴をトークンに抽出する。例えば、これらの特徴は、後続のステップの分析に使用され、ステップに共通の特徴を発見するために用いられる。NLUエンジン114は、category=”New Command”およびuser=<user found(見つかったユーザ)>を識別してもよい。これら2つの動的パラメータは、後で使用するためにトークンにコピーされてもよい。セキュリティ分析者は、次いで、このユーザに対する外れ値がタイプGRANTのNew Commandである場合、GRANTEEがDORMANT USER(休眠ユーザ)であるかどうかをチェックすることを要求してもよい。システムは、”True、this user is dormant user(真、このユーザは休眠ユーザである。)”を応答することができ、とりわけ、削除されたGRANTコマンドについての情報を提供することができる。NLUエンジン114は、次いで、特徴マッピングを実行し、関連するAPIを実行し、トークンを実行時パラメータにマッピングし、command=GRANT & grantee=<user who received the Privilege(特権を受領したユーザ)>をトークンに追加することができる。セキュリティ分析者は、次に、GRANTEEを取得し、GRANTEEの活動を検索すること(Get the GRANTEE and search the Activities of the GRANTEE)を要求することができる。システムは、”GRANTEE is John Smith(GRANTEEはジョン・スミスである。)”を応答し、ユーザJohn Smithのリストされた活動を提供することができる。このとき、NLUエンジン114は、それに応じて、トークンに、<user=John Smith>&activities=<list of activities found(発見された活動のリスト)>を加えることができる。セキュリティ分析者は、さらに、機微なオブジェクトがあるかどうかをチェックする(Check if there is Sensitive Object)ことを要求することができる((フィルタ<GRANTEE>および<sensitiveObject>でフリーテキスト形式の検索を実行するRestAPI))。システムは、”8 records found…(8レコードがみつかりました。)”と応答し、発見された結果を提供することができる。NLUエンジン114は、したがって、sensitiveObject=<list of objects found(発見されたオブジェクトのリスト)>をトークンに追加することができる。セキュリティ分析者は、次に、”Check if there are more than 1 occurrences of this activities(1より多いこの活動の発生があるかどうかを確認する)(フィルタCount>1でフリーテキスト形式の検索を実行するRestAPI)”。システムは、”False”で応答することができる。セキュリティ分析者は、次に、RECORD AFFECTEDの数が1より大きいかどうかをチェックする(フィルタ RecordAffected>1およびCount>1でフリーテキスト形式の検索を実行するRestAPI)ことを要求してもよい。システムは、”True,number of RECORD AFFECTED is 6(真、RECORD AFFECTEDの数は6である。)”と応答することができ、検索結果を提供する。このとき、NLUエンジン114は、パラメータRecordsAffected=6をトークンに追加することができる。次いで、セキュリティ分析者は、コマンド”Add this USER to the WATCH LIST(このユーザをWATCH LISTに加える)(WatchListに<user>を加えるRestAPI)”を送信し、”Open a TICKET in ServiceNow and assign the user’manager(ServiceNow内のTICKETを開き、ユーザの上司に割り当てる)”(ServiceNowにおいてTICKETを開き、そのプロセスの出力スクリプトをテキストとしてチケットに加えるRestAPI)。NLUエンジン114は、したがって、ServiceNow.ticketIdをトークンに追加することができる。
【0024】
第2の例示的なプロセスEx2においては、新たなコマンド外れ値”SELECT”が検出されてもよい。例えば、セキュリティ分析者は、カテゴリ”New Command”の最上位の外れ値を有するユーザを発見する(find me the user with top outlier of Category ”New Command”)、要求をしてもよい。このシステムは、このユーザを表示し、この外れ値についての詳細を提供することによって応答することができる。セキュリティ分析者は、次に、”retrieve the outliers where the New Command is SELECT(NewCommandがSELECTである外れ値を検索する)”を要求することができる。このシステムは、NewCommandがSELECTである外れ値のリストに応答することができる。セキュリティ分析者は、”Run generic Search for this USER and look for word OUT_FILE,UTL_HTTP(このユーザに対する汎用検索を実行し、単語OUT_FILE,UTL_HTTPを見つける)”を要求することができる。システムは、”True”と応答し、検索結果を提供することができる。セキュリティ分析者は、次いで、コマンド”Open a ticket for this user,(このユーザに対するチケットを開き、)”、”set priority HIGH SEVERITY,(優先度をHIGH SEVERITYに設定し、)”および”text the user name found and export into a file or http.(見つかったユーザ名をテキスト化し、ファイルまたはHTTPにエクスポートする。)”のコマンドを送信することができる。
【0025】
これらの2つの例示的なプロセスの場合、プロセス・マイニング・エンジン116は、NLUエンジン114から、2つの対応するワークフロー(WF)を受信し、2つのワークフローが共通の開始点を有することを検出することができる。プロセス・マイニング・エンジン116は、次いで、アルゴリズムを実行して、2つのワークフローを結合するための最適なワークフローを発見することができる。いくつかの例では、プロセス・マイニング・エンジン116のアルゴリズムは、ステップ1から開始する、両方のワークフローに共通である新しいワークフローを生成し、次いで、2つのユースケースをカバーするためのネストされたワークフローを生成することができる。
【0026】
図1のブロック図は、システム100が
図1に示された全てのコンポーネントを含むものであることを示すことを意図するものではない。むしろ、システム100は、
図1に示されていない、より少ないまたは追加のコンポーネント(例えば、追加のクライアント・デバイス、または追加のリソース・サーバなど)を含んでもよいことを理解すべきである。
【0027】
図2は、構造化ログイベントを使用してワークフローを自動化し、また支援することができる例示的な方法のプロセスフロー図である。方法200は、
図3のコンピューティング・デバイス300のような任意の適切なコンピューティング・デバイスを用いて実装することができ、
図1のシステム100を参照して説明する。例えば、以下に説明する方法は、
図4のコンピューティング・デバイス400によって実装することができる。
【0028】
ブロック202において、プロセッサは、ユーザインタフェースを監視し、ステップフローを含む活動ログを生成する。例えば、プロセッサは、ユーザとサーバ上のサービスとの間の双方向の会話を監視してもよい。例えば、サービスは、仮想アシスタント、ウェブサイトまたはアプリケーションを介してアクセスされるチャットボットであってもよい。チャットボットは、音声技術またはテキスト技術を介してユーザとの会話を行うことができる。種々の例では、ユーザは、セキュリティ・ワークフロー、フォレンジック・プロセス、システム・チューニングまたはリスク緩和プロセスの一部として、要求をサービスに送信してもよい。いくつかの例では、モニタリングは、受動的モニタリングまたは能動的モニタリングであってもよい。
【0029】
ブロック204においては、プロセッサは、活動ログをデータベースに格納する。例えば、データベースは、プロセッサにとって直接アクセス可能な内部データベースであってもよいし、またはネットワークを介してアクセスし得る外部データベースであってもよい。
【0030】
ブロック206において、プロセッサは、活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された特徴および共通変数に基づいて構造化ログイベントを生成する。例えば、プロセッサは、訓練済み自然言語理解モデルを用いて特徴および共通変数を抽出してもよい。種々の例では、抽出された特徴は、トークン上に格納されてもよい。種々の例では、抽出された特徴は、他のタイプの中でも、ユーザ、サーバ、サービス、時間、コマンド、テーブル、フィールド、応答時間、影響を受けたレコード、クライアント・インターネット・プロトコル・アドレス、エラータイプ、エラーコード、違反タイプ、違反の重大性を含んでもよい。
【0031】
ブロック208において、プロセッサは、構造化ログイベントに基づいてワークフロー・モデルを生成する。例えば、プロセッサは、種々のタイプのワークフローに対して最適化されたワークフロー・モデルを生成してもよい。いくつかの例では、プロセッサは、ワークフローのタイプに対して複数のワークフロー・モデルを生成してもよい。例えば、ワークフロー・モデルは、特定のタスクに実際に使用されなかった可能性のあるプロセスまたはサブプロセスを含む、異なるプロセスを統合してもよい。いくつかの例では、プロセッサは、横断する顧客をクラスタ化し、クラスタ内の各顧客に推奨されるべき改善されたワークフローを生成してもよい。例えば、プロセッサは、特定の顧客に対してまたは複数の顧客を横断してマイン(mine)の複数のワークフローを処理することができ、複数の顧客を横断してデータおよび学習を共有する。
【0032】
ブロック210においては、プロセッサは、生成されたワークフロー・モデルに基づいて、ワークフローを自動化または支援する。いくつかの例では、プロセッサは、特定の生成されたワークフロー・モデルを自動的に実行してもよい。例えば、プロセッサは、特定のタスクに対して最適化されたワークフロー・モデルを実行してもよい。いくつかの例では、プロセッサは、特定のタスクのために複数のワークフロー・モデルを実行し、結果をユーザに提示してもよい。例えば、プロセッサは、構造化ログイベントに基づいて追加のワークフロー・モデルを生成し、追加ワークフロー・モデルを自動的に実行して、提示されるべき複数の結果を生成してもよい。種々の例においては、プロセッサは、最適化されたワークフローに基づいて、特定のタスクを実行するユーザを支援することができる。例えば、プロセッサは、ユーザがタスクの特定のステップにあることを検出し、次に実行するステップを示唆してもよい。種々の例では、プロセッサは、ユーザのマニュアルでの処理のための次のステップを示唆するために、対話的に予測分析を実行してもよい。いくつかの例では、ワークフローの自動化は、警報システムからの検出されたインシデントによってトリガされてもよい。種々の例では、ワークフローの自動化は、定期的に実行されてもよい。例えば、自動化されたワークフローは、所定の時間間隔で自動的に実行されるようにスケジュールされてもよい。
【0033】
図2のプロセスフロー図は、方法200の動作が任意の特定の順序で実行されるべきとか、あるいは、方法200の全ての動作が全ての場合に含まれることを示すことを意図するものではない。さらに、方法200は、任意の適切な数の追加の動作を含んでもよい。
【0034】
図3は、ワークフローを自動化または支援するためのワークフロー・モデルを生成することができる例示的な方法のプロセスフロー図である。方法300は、
図3のコンピューティング・デバイス300のような任意の適切なコンピューティング・デバイスで実装することができ、
図1のシステム100を参照しながら説明する。例えば、方法300は、
図1のプロセス・マイニング・エンジン116、
図4のコンピューティング・デバイス400のプロセス・マイナ・モジュール430または
図7のプロセス・マイナ・モジュール712によって実装されてもよい。
【0035】
ブロック302においては、プロセッサは、構造化ログイベントを、開始イベント、ステップフローおよび終了イベントに変換する。開始イベントは、特定の監視されるプロセスを開始するイベントである。例えば、開始イベントは、調査を開始する不審なイベントである可能性がある。ステップフローは、開始イベントから終了イベントへ接続する一連のステップを含んでもよい。終了イベントは、特定の監視されたプロセスを終了させるイベントを含んでもよい。
【0036】
ブロック304において、プロセッサは、監視されるプロセスの中での共通の開始イベントを検出する。例えば、プロセッサは、2以上のプロセスの開始イベントによって共有される1または複数の特徴に基づいて、共通の開始イベントを検出することができる。一例として、2つのワークフロー・プロセスが、”Get me top anomaly in last N days(最後のN日に最上位の以上を取得)”コマンドを含むステップから開始する可能性がある。
【0037】
ブロック306において、プロセッサは、共通の開始イベントに基づいて、プロセスを統合し、最適化する。例えば、プロセッサは、2つのプロセスを1つの最適化されたプロセスにマージすることによってプロセスを統合することができる。一例として、プロセッサは、2つの開始ステップを統合してもよい。プロセッサは、任意の適切なプロセス・マイニング技術によってプロセスを最適化してもよい。
【0038】
ブロック308においては、プロセッサは、異なるプロセスの中で共通のサブプロセスを検出する。例えば、共通のサブプロセスは、共有される開始ステップ、特徴、変数などに基づいて検出されてもよい。
【0039】
ブロック310において、プロセッサは、統合されたプロセスの中の各プロセスの遷移規則を検出する。いくつかの例では、プロセッサは、遷移規則を検出するために事前定義された構文を設定してもよい。事前定義された構文は、種々の単語または句を特定の特徴または変数に関連付けるためにプロセッサによって使用される辞書または例のセットであってもよい。
【0040】
ブロック312において、プロセッサは、各プロセスの各ステップについてコンテキストを検出するための分類を実行する。例えば、プロセッサは、変数であり、また、そのような変数の位置である、各プロセスにおける各ステップの部分を識別するように訓練された分類器を使用してもよい。プロセッサは、可変パラメータをトークンに抽出することができる。トークンは、各プロセスのステップを横断して、抽出されたパラメータを追跡するために使用されてもよい。
【0041】
ブロック314においては、プロセッサは、開始イベント、遷移規則、共通のサブプロセスおよびコンテキストに基づいて、最適化されたフローモデルを生成する。いくつかの例では、最適化されたフローモデルは、特定の組織の各ユーザに対して生成されてもよい。種々の例においては、最適化されたフローモデルは、特定の組織に対して生成されてもよい。いくつかの例では、プロセッサは、複数の組織によって使用できる最適化されたフローモデルを生成してもよい。
【0042】
ブロック316においては、プロセッサは、ユーザフィードバックに基づいて最適化されたフローモデルを調整する。例えば、プロセッサは、ユーザが、生成された最適化済みフローモデルをカスタマイズし、強化することを可能とする。
【0043】
図3のプロセスフロー図は、方法300の動作が任意の特定の順序で実行されること、あるいは、方法300の全ての動作が全ての場合に含まれることを示すことを意図するものではない。加えて、方法300は、任意の適切な数の追加の動作を含んでもよい。例えば、ユーザが追加のプロセスを実行することを継続すると仮定すると、プロセッサは、共通の開始イベントおよび共通のサブプロセスで、追加のプロセスを定期的に識別してもよい。プロセッサは、次いで、最適化されたフローモデルを更新し、これらの共通のサブプロセスのための追加の遷移規則を含めることができる。
【0044】
いくつかのシナリオでは、本明細書で説明される技術は、クラウド・コンピューティング環境において実装されてもよい。以下、少なくとも
図4~
図7を参照しながら詳細を議論するように、構造化ログイベントを用いてワークフローを自動化するよう構成されたコンピューティング・デバイスは、クラウド・コンピューティング環境において実装されてもよい。この開示は、クラウド・コンピューティングについての説明を含み得るが、本明細書で詳述される教示の実装は、クラウド・コンピューティング環境に限定されないことに理解されたい。むしろ、本発明の実施形態は、現時点で知られた、またはこれから開発される他の任意のタイプのコンピューティング環境と併せて実装可能である。
【0045】
クラウド・コンピューティングは、最小の管理労力またはサービス・プロバイダとの対話で迅速にプロビジョニングおよびリリースされ得る、構成可能なコンピューティング・リソース(例えば、ネットワーク、ネットワーク帯域、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの便利なオンデマンドのネットワーク・アクセスを可能とする、サービス配布のモデルである。このクラウド・モデルは、少なくとも5つの特性、少なくとも3つのサービス・モデルおよび少なくとも4つのデプロイメント・モデルを含む可能性がある。
【0046】
特性は、以下の通りである。
【0047】
オンデマンド・セルフ・サービス:クラウド・コンシューマは、サービス・プロバイダとの人的な対話を必要とせずに自動的に必要なだけ、サーバ時間およびネットワーク・ストレージなどのコンピュータ能力を一方的にプロビジョニングすることができる。
【0048】
広帯域ネットワーク・アクセス:能力は、ネットワーク越しに利用可能であり、異種シン・クライアントまたはシック・クライアント・プラットフォーム(例えば、モバイルフォン、ラップトップ、PDA)による使用を促進する標準的なメカニズムを介して、アクセスされる。
【0049】
リソース・プーリング:プロバイダのコンピューティング・リソースは、マルチ・テナント・モデルを用いて複数のコンシューマに提供するためにプールされ、種々の物理的および仮想的リソースが需要に従って動的に割り当てられ、また、再割り当てられる。コンシューマは、一般的に、提供されるリソースの正確な場所を管理したり、知識を有したりせず、しかし、より高度な抽象レベル(例えば国、州、またはデータセンタ)にて場所を指定することが可能であるという意味で、場所の独立感がある。
【0050】
迅速な弾力性:能力は、迅速かつ柔軟に、いくつかの場合では自動的に、プロビジョニングされて素早くスケール・アウトすることができ、また、迅速にリリースされて素早くスケール・インすることができる。コンシューマにとって、プロビジョニング利用可能な能力は、しばしば外面的には無制限のように見え、任意の時間に任意の量を購入することができる。
【0051】
測量されたサービス:クラウドシステムは、サービスのタイプにとって適切なある抽象レベル(例えば、ストレージ、処理、帯域幅、アクティブ・ユーザ数)での計量能力を利用することによって、自動的にリソース使用を制御し、また最適化する。リソース使用量は、監視され、制御されおよび報告されて、利用サービスのプロバイダおよびコンシューマの双方に対する透明性を提供する。
【0052】
サービス・モデルは、以下の通りである。
【0053】
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される能力は、クラウド・インフラストラクチャ上で稼働するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ(例えばウェブベースの電子メール)などのシン・クライアント・インタフェースを介して種々のクライアント・デバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、限定されたユーザ固有のアプリケーション構成設定の潜在的な例外を除いて個々のアプリケーション能力すらも含む下層のインフラストラクチャを管理または制御しない。
【0054】
プラットフォーム・アズ・ア・サービス(PaaS):コンシューマに提供される能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作成された、コンシューマ作成または獲得のアプリケーションをクラウド・インフラストラクチャ上にデプロイすることである。コンシューマは、ネットワーク、サーバ、オペレーティング・システムまたはストレージを含む下層のクラウド・インフラストラクチャを管理または制御しないが、デプロイされたアプリケーションおよび場合によってはアプリケーション・ホスティング環境の構成への制御を有する。
【0055】
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および、コンシューマが、オペレーティング・システムおよびアプリケーションを含み得る任意のソフトウェアをデプロイし、稼働させることができる他の基本的なコンピューティング・リソースを提供することである。コンシューマは、下層のクラウド・インフラストラクチャを管理または制御しないが、オペレーティング・システム、ストレージ、デプロイされたアプリケーションに対する制御、および、場合によっては、選択したネットワーキング・コンポーネント(例えば、ホストファイアウォール)の限定された制御を有する。
【0056】
デプロイメント・モデルは、以下の通りである。
【0057】
プライベート・クラウド:クラウド・インフラストラクチャは、1つの組織のためだけに使用される。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスが存在し得る。
【0058】
コミュニティ・クラウド:クラウド・インフラストラクチャは、いくつかの組織により共有され、共通の懸念(例えば、ミッション、セキュリティ要件、ポリシーおよびコンプライアンスに関する考慮事項)を有する特定のコミュニティをサポートする。これは、組織または第三者によって管理されてもよく、オンプレミスまたはオフプレミスが存在し得る。
【0059】
パブリック・クラウド:クラウド・インフラストラクチャは、一般公衆、または、大きな業界団体が利用可能であり、クラウド・サービスを販売する組織によって所有される。
【0060】
ハイブリッド・クラウド:クラウド・インフラストラクチャは、2以上のクラウド(プライベート、コミュニティまたはパブリック)の混成であり、これらのクラウドは、固有のエンティティのままであるが、しかし、データおよびアプリケーションのポータビリティを可能とする標準化されたまたは独自の技術(例えばクラウド間の負荷分散のためのクラウド・バースティング)によって結合される。
【0061】
クラウド・コンピューティング環境は、ステートレス性、低結合、モジュール性および意味論的な相互運用性に重点を置いたサービス指向である。クラウド・コンピューティングの核心は、相互接続された複数のノードのネットワークを含むインフラストラクチャである。
【0062】
図4は、構造化されたログイベントを用いてワークフローを自動化し、支援することができる一例のコンピューティング・デバイスのブロック図である。コンピューティング・デバイス400は、例えば、サーバ、デスクトップ・コンピュータ、ラップトップ・コンピュータ、タブレット・コンピュータまたはスマートフォンであってもよい。いくつかの例では、コンピューティング・デバイス400は、クラウド・コンピューティング・ノードであってもよい。コンピューティング・デバイス400は、コンピュータ・システムによって実行されるプログラム・モジュールのようなコンピュータ・システム実行可能命令の一般的な文脈において説明され得る。一般に、プログラム・モジュールは、特定のタスクを実行するかまたは特定の抽象データタイプを実装する、ルーチン、プログラム、オブジェクト、コンポーネント、ロジック、データ構造などを含む。コンピューティング・デバイス400は、通信ネットワークを介してリンクされた遠隔処理デバイスによってタスクが実行される分散型クラウド・コンピューティング環境で実施してもよい。分散型クラウド・コンピューティング環境では、プログラム・モジュールは、メモリ・ストレージ・デバイスを含むローカルおよび遠隔のコンピュータ・システム・ストレージ媒体の両方に配置されてもよい。
【0063】
コンピューティング・デバイス400は、格納された命令を実行するためのプロセッサ402と、動作中に前記命令の動作のための一時的メモリ空間を提供するためのメモリデバイス404とを含んでもよい。プロセッサは、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティング・クラスタ、または任意の数の他の構成とすることができる。メモリ404は、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ、フラッシュメモリまたは他の適切なメモリシステムを含んでもよい。
【0064】
プロセッサ402は、コンピューティング・デバイス400を1以上のI/Oデバイス410に接続するように適合された入出力(I/O)デバイス・インタフェース408にシステム相互接続406(例えば、PCI(登録商標)、PCI-Express(登録商標)など)を介して接続されてもよい。I/Oデバイス410は、例えば、キーボードおよびポインティング・デバイスを含むことができ、ポインティング・デバイスは、これらの中でも、タッチパッドまたはタッチスクリーンを含んでもよい。I/Oデバイス410は、コンピューティング・デバイス400の内蔵のコンポーネントであってもよいし、コンピューティング・デバイス400に外部接続されたデバイスであってもよい。
【0065】
プロセッサ402は、また、コンピューティング・デバイス400をディスプレイ・デバイス414に接続するように適合されたディスプレイ・インタフェース412にシステム相互接続406を介してリンクされてもよい。ディスプレイ・デバイス414は、コンピューティング・デバイス400の内蔵コンポーネントである表示スクリーンを備える。ディスプレイ・デバイス414は、コンピューティング・デバイス400に外部接続されたコンピュータ・モニタ、テレビジョンまたはプロジェクタを含んでいてもよい。加えて、ネットワーク・インタフェース・コントローラ(NIC)416は、システム相互接続406を介してコンピューティング・デバイス400をネットワーク418に接続するように適合されてもよい。いくつかの実施形態では、NIC416は、中でもインターネット・スモール・コンピュータ・システム・インタフェースのような任意の適切なインタフェースまたはプロトコルを使用してデータを送信することができる。ネットワーク418は、セルラー・ネットワーク、無線ネットワーク、ワイド・エリア・ネットワーク(WAN)、ローカル・エリア・ネットワーク(LAN)、またはインターネットであってもよい。外部コンピューティング・デバイス420は、ネットワーク418を介してコンピューティング・デバイス400に接続してもよい。いくつかの例では、外部コンピューティング・デバイス420は、外部ウェブ・サーバ420であってもよい。いくつかの例では、外部コンピューティング・デバイス420は、クラウド・コンピューティング・ノードであってもよい。
【0066】
プロセッサ402は、また、ハードドライブ、光学ドライブ、USBフラッシュドライブ、ドライブのアレイ、またはそれらの任意の組み合わせを含んでよいストレージ・デバイス422にシステム相互接続406を介してリンクされてもよい。いくつかの例では、ストレージ・デバイスは、活動モニタ・モジュール424、活動ロガー・モジュール426、自然言語理解(NLU)モジュール428、プロセス・マイナ・モジュール430およびワークフロー・アシスタおよびオートメータ432を含むことができる。活動モニタ・モジュール424は、ユーザインタフェースを監視して、ステップフローを含む活動ログを生成することができる。例えば、ステップフローは、ユーザによって特定のタスクを完了するためにとられたステップを含む。活動ロガー・モジュール426は、データベースに活動ログを格納することができる。例えば、データベースは、内部データベースまたは外部データベースであってもよい。NLUモジュール428は、活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された特徴および共通変数に基づいて、構造化ログイベントを生成することができる。プロセス・マイナ・モジュール430は、構造化ログイベントに基づいてワークフロー・モデルを生成することができる。例えば、プロセス・マイナ・モジュール430は、構造化ログイベントを、開始イベント、ステップフローおよび終了イベントに変換することができる。プロセス・マイナ・モジュール430は、次いで、監視されるプロセスの中の共通の開始イベントを検出することができる。プロセス・マイナ・モジュール430は、共通の開始イベントに基づいて、プロセスを統合して最適化することができる。プロセス・マイナ・モジュール430は、さらに、プロセスの中の共通のサブプロセスを検出することができる。プロセス・マイナ・モジュール430は、また、プロセスの中の各プロセスの遷移規則を検出することができる。プロセス・マイナ・モジュール430は、分類を実行してコンテキストを検出することができる。プロセス・マイナ・モジュール430は、次いで、開始イベント、遷移規則、共通のサブプロセスおよびコンテキストに基づいて、最適化されたフローモデルを生成することができる。いくつかの例において、プロセス・マイナ・モジュール430は、ユーザフィードバックに基づいて最適化されたフローモデルを調整することができる。いくつかの例において、プロセス・マイナ・モジュール430は、また、横断する顧客をクラスタ化し、クラスタにおける各顧客に提示すべき改良されたワークフローを生成することができる。種々の例において、プロセス・マイナ・モジュール430は、ユーザ手動プロセスのための次のステップを示唆する予測分析を対話的に実行することができる。ワークフロー・アシスタおよびオートメータ432は、生成されたワークフロー・モデルに基づいて、ワークフローを自動化または支援することができる。例えば、自動化または支援されたワークフローは、セキュリティ上のベストプラクティスなワークフロー、フォレンジック・プロセス・ワークフロー、システム・チューニング・ワークフローまたはリスク緩和プロセス・ワークフローであってもよい。
【0067】
図4のブロック図は、コンピューティング・デバイス400が、
図4に示された全てのコンポーネントを含むものであることを示すことを意図するものではない。むしろ、コンピューティング・デバイス400は、より少ない、または、
図4に示されていない追加のコンポーネント(例えば、追加のメモリ・コンポーネント、組み込みコントローラ、モジュール、追加のネットワーク・インタフェースなど)を含んでもよいことを理解すべきである。さらに、活動モニタ・モジュール424、活動ロガー・モジュール426、NLUモジュール428、プロセス・マイナ・モジュール430およびワークフロー・アシスタおよびオートメータ432のうちの任意の機能は、部分的または完全に、ハードウェアもしくはプロセッサ402またはその両方においてで実装されてもよい。例えば、機能は、特定用途向け集積回路、組み込みコントローラで実現されるロジック、またはプロセッサ402内で実現されるロジックによって実現されてもよい。いくつかの実施形態では、活動モニタ・モジュール424、活動ロガー・モジュール426、NLUモジュール428、プロセス・マイナ・モジュール430およびワークフロー・アシスタおよびオートメータ432の機能は、ロジックで実装することができ、ロジックは、本明細書で参照されるように、任意の適切なハードウェア(例えば、プロセッサなど)、ソフトウェア(例えば、アプリケーションなど)、ファームウェア、または、ハードウェア、ソフトウェアおよびファームウェアの任意の適切な組み合わせを含んでもよい。
【0068】
ここで、
図5を参照すると、例示的なクラウド・コンピューティング環境500が示されている。図示するように、クラウド・コンピューティング環境500は、1以上のクラウド・コンピューティング・ノード502を含み、これと、例えば、PDAまたは携帯電話504A、デスクトップ・コンピュータ504B、ラップトップ・コンピュータ504Cもしくは自動車コンピュータ・システム504Nまたはその組み合わせなどの、クラウド・コンシューマによって使用されるローカル・コンピューティング・デバイスが通信してもよい。ノード502は、互いに通信してもよい。これらは、プライベート、コミュニティ、パブリックもしくはハイブリッド・クラウドなど上述したような、またはその組み合わせなどの1以上のネットワークにおいて、物理的にまたは仮想的にグループ化(図示しない)されてもよい。これは、クラウド・コンピューティング環境500が、インフラストラクチャ、プラットフォームもしくはソフトウェアまたはその組み合わせをサービスとして提供することを可能とし、これらについては、クラウド・コンシューマは、リソースをローカル・コンピューティング・デバイス上で維持する必要がない。
図5に示されるコンピューティング・デバイス504A~504Nのタイプは、説明する目的のみであり、コンピューティング・ノード502およびクラウド・コンピューティング環境500が、任意のタイプのネットワーク、ネットワークアドレス可能な接続(例えば、ウェブ・ブラウザを使用して)またはこれらの両方を介して、任意のタイプのコンピュータ化されたデバイスと通信することができることが理解される。
【0069】
ここで、
図6を参照すると、クラウド・コンピューティング環境500(
図5)によって提供される機能抽象レイヤのセットが示される。
図6に示すコンポーネント、層および機能は、説明する目的のみであり、本発明の実施形態は、これらに限定されないことを事前に理解されるべきである。示すように、以下の層および対応する機能が提供される。
【0070】
ハードウェアおよびソフトウェア・レイヤ600は、ハードウェアおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの例には、メインフレーム、一例ではIBM(登録商標)zSeries(登録商標)Systems、RISC(縮約命令セットコンピュータ)アーキテクチャに基づくサーバ、一例においてはIBM(登録商標)pSeries(登録商標)Systems,IBM(登録商標)xSeries(登録商標)Systems,IBM(登録商標)BladeCenter(登録商標)Systems、ストレージ・デバイス、ネットワークおよびネットワーキング・コンポーネントを含む。ソフトウェア・コンポーネントの例は、一例では、IBM(登録商標)WebSphere(登録商標)アプリケーション・サーバ・ソフトウェアおよびデータベース・ソフトウェア、一例では、IBM(登録商標)DB2(登録商標)データベース・ソフトウェアを含み得る。(IBM,zSeries,pSeries,xSeries,BladeCenter,WebSphereおよびDB2は、世界中の多くの管轄地域で登録されたインターナショナル・ビジネス・マシーンズ・コーポレーションの商標である。)
【0071】
仮想化レイヤ602は、抽象化レイヤを提供し、そこから仮想化サーバ、仮想化ストレージ、バーチャル・プライベート・ネットワークを含む仮想化ネットワーク、仮想化アプリケーションおよびオペレーティング・システムおよび仮想クライアントなどの仮想化エンティティの例が提供される。一例においては、管理レイヤ604は、以下に説明する機能を提供してもよい。リソース・プロビショニングは、クラウド・コンピューティング環境内でタスクを実行するために利用されるコンピューティング・リソースおよび他のリソースの動的な調達を提供する。メータリングおよびプライシングは、リソースがクラウド・コンピューティング環境内で利用されるコストの追跡およびこれらのソースの消費に対する請求またはインボイスの送付を提供する。一例においては、これらのリソースは、アプリケーション・ソフトウェアのライセンスを含んでもよい。セキュリティは、クラウド・コンシューマおよびタスクについての本人確認、並びに、データおよび他のリソースに対する保護を提供する。ユーザポータルは、コンシューマおよびシステム管理者に対しクラウド・コンピューティング環境へのアクセスを提供する。サービス・レベル・マネジメントは、要求されるサービス・レベルを満たすようにクラウド・コンピューティング・リソースの割り当ておよび管理を提供する。サービス・レベル合意(SLA)の計画と履行は、SLAに従って、将来の要求が予期されるクラウド・コンピューティグ・リソースの事前配置および調達を提供する。
【0072】
ワークロード・レイヤ606は、クラウド・コンピューティング環境が利用される機能性の例を提供する。ワークロードおよびこのレイヤから提供される機能の例には、マッピングおよびナビゲーション、ソフトウェア開発およびライフサイクル管理、仮想クラスルーム教育配信、データ・アナリティクス処理、トランザクション処理、ワークフロー自動化が含まれる。
【0073】
本発明は、任意の可能な統合の技術的詳細のレベルにおけるシステム、方法もしくはコンピュータ・プログラム製品またはその組み合わせであってよい。コンピュータ・プログラム製品は、プロセッサに本発明の側面を実行させるためのコンピュータ可読プログラム命令をその上に有するコンピュータ可読ストレージ媒体を含んでもよい。
【0074】
コンピュータ可読ストレージ媒体は、命令実行デバイスによって使用するための命令を保持し格納する有形のデバイスであってよい。コンピュータ可読ストレージ媒体は、例えば、これに限定されるものではないが、電子的ストレージ・デバイス、磁気ストレージ・デバイス、光学ストレージ・デバイス、電磁気ストレージ・デバイス、半導体ストレージ・デバイスまたは上記の任意の適切な組み合わせであってよい。コンピュータ可読ストレージ媒体のより具体的な例示の非網羅的リストとしては、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、リード・オンリー・メモリ(ROM)、消去可能プログラマブル・リード・オンリー・メモリ(EPROMまたはフラッシュメモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク・リード・オンリー・メモリ(CD-ROM)、デジタル・バーサタイル・ディスク(DVD)、メモリースティック、フロッピーディスク(登録商標)、パンチカードまたは記録された命令を有する溝内の隆起構造のような機械的エンコードされたデバイス、および上記の任意の適切な組み合わせが含まれる。コンピュータ可読ストレージ媒体は、本明細書で使用されるように、電波、自由伝搬する電磁波、導波路または他の伝送媒体を伝搬する電磁波(たとえば、ファイバ光ケーブルを通過する光パルス)または、ワイヤを通して伝送される電気信号のような、それ自体が一時的な信号として解釈されるものではない。
【0075】
本明細書で説明されるコンピュータ可読プログラム命令は、コンピュータ可読ストレージ媒体からそれぞれのコンピュータ/処理デバイスに、または、例えばインターネット、ローカル・エリア・ネットワーク、ワイド・エリア・ネットワークもしくは無線ネットワークまたはその組み合わせといったネットワークを介して外部コンピュータまたは外部ストレージ・デバイスにダウンロードすることができる。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータもしくはエッジサーバまたはその組み合わせを含んでもよい。各コンピュータ/処理デバイスにおけるネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読ストレージ媒体に格納するために転送する。
【0076】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、1以上のプログラミング言語の任意の組み合わせで書かれたコードあるいはオブジェクト・コードであってよく、1以上のプログラミング言語は、Smalltalk(登録商標)、C++またはこれらに類するもなどのオブジェクト指向言語、Cプログラミング言語または類似のプログラミング言語などの従来型の手続型言語を含む。コンピュータ可読プログラム命令は、スタンド・アローンのソフトウェア・パッケージとして、全体としてユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上かつ部分的に遠隔のコンピュータ上で、または、完全に遠隔のコンピュータまたはサーバ上で実行されてもよい。後者のシナリオでは、遠隔のコンピュータは、ユーザのコンピュータに、ローカル・エリア・ネットワーク(LAN)またはワイド・エリア・ネットワーク(WAN)を含む任意のタイプのネットワークを通じて接続されてもよく、あるいは接続は、(例えば、インターネット・サービス・プロバイダを用いてインターネットを通じて)外部コンピュータになされてもよい。いくつかの実施形態においては、電気的回路は、本発明の側面を実行するために、コンピュータ可読プログラム命令の状態情報を利用して、電気的回路を個別化することによって、コンピュータ可読プログラム命令を実行してもよく、この電気的回路は、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む。
【0077】
本発明の側面は、本明細書において、本技術の実施形態に従った方法、装置(システム)およびコンピュータ・プログラム製品のフローチャート図もしくはブロック図またはその両方を参照しながら、説明される。フローチャート図もしくはブロック図またはその両方の各ブロック、および、フローチャート図もしくはブロック図またはその両方における複数のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装されてもよいことが理解されよう。
【0078】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、特定目的コンピュータのプロセッサまたは他のプログラマブル・データ処理装置に提供され、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置を介して実行される命令が、フローチャート図もしくはブロックまたはその両方のブロックまたは複数のブロックにおいて特定される機能/作用を実装するための手段を作成するように、マシンを生成する。これらのコンピュータ可読プログラム命令は、また、コンピュータ、プログラマブル・データ処理装置もしくは他のデバイスまたはその組み合わせに特定のやり方で機能するよう指示できるコンピュータ可読ストレージ媒体に格納され、それに格納された命令を有するコンピュータ可読ストレージ媒体に、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装する命令を含む製品が含まれるようにする。
【0079】
コンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイスにロードされ、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で一連の動作ステップを実行させて、コンピュータ、他のプログラマブル・データ処理装置または他のデバイス上で実行される命令が、フローチャートもしくはブロックまたはその両方のブロックまたは複数のブロックで特定される機能/作用の側面を実装するように、コンピュータ実装処理を生成することもできる。
【0080】
図7を参照すると、構造化されたログイベントを用いてワークフローを自動化し、支援することができる一例の有形の非一時的なコンピュータ可読媒体700のブロック図が示されている。有形の非一時的なコンピュータ可読媒体700は、プロセッサ702によってコンピュータ相互接続704を介してアクセスされてもよい。さらに、有形の非一時的なコンピュータ可読媒体700は、プロセッサ702に、
図2および
図3の方法200および300の動作を実行させるように指示するコードを含んでもよい。
【0081】
本明細書で説明する種々のソフトウェア・コンポーネントは、例えば、
図7に示すように、有形的、非一時的なコンピュータ可読媒体700に格納されてもよい。例えば、活動モニタ706は、ユーザインタフェースを監視して、ステップフローを含む活動ログを生成するためのコードを含む。自然言語理解モジュール710は、活動ログ内の非構造化データから特徴および共通変数を抽出し、抽出された特徴および共通変数に基づいて、構造化ログイベントを生成するためのコードを含む。プロセス・マイナ・モジュール712は、構造化ログイベントに基づいてワークフロー・モデルを生成するためのコードを含む。いくつかの例において、プロセス・マイナ・モジュール712は、構造化ログイベントを、開始イベント、ステップフローおよび終了イベントに変換するためのコードを含む。種々の例において、プロセス・マイナ・モジュール712は、監視されるプロセスの中の共通の開始イベントを検出するためのコードを含む。プロセス・マイナ・モジュール712は、共通の開始イベントに基づいてプロセスを統合して最適化するためのコードを含んでもよい。プロセス・マイナ・モジュール712は、さらに、プロセスの中の共通のサブプロセスを検出するためのコードを含んでもよい。プロセス・マイナ・モジュール712は、また、プロセスの中の各プロセスの遷移規則を検出するためのコードを含んでもよい。プロセス・マイナ・モジュール712は、分類を実行してコンテキストを検出するためのコードを含んでもよい。プロセス・マイナ・モジュール712は、また、開始イベント、遷移規則、共通のサブプロセスおよびコンテキストに基づいて、最適化されたフローモデルを生成するためのコードを含んでもよい。いくつかの例において、プロセス・マイナ・モジュール712は、ユーザフィードバックに基づいて最適化されたフローモデルを調整するためのコードを含んでもよい。種々の例において、プロセス・マイナ・モジュール712は、また、横断する顧客をクラスタ化し、クラスタにおける各顧客に推奨すべき改良されたワークフローを生成するためのコードを含む。ワークフロー・アシスタおよびオートメータ714は、生成されたワークフロー・モデルに基づいてワークフローを自動化または支援するためのコードを含む。いくつかの例において、ワークフロー・アシスタおよびオートメータ714は、ユーザ手動プロセスのための次のステップを示唆する予測分析を対話的に実行するためのコードを含む。特定の用途に応じて、
図7に示されない任意の数の追加のソフトウェア・コンポーネントが、有形の非一時的なコンピュータ可読媒体700内に含まれてもよいことを理解されたい。
【0082】
図面におけるフローチャートおよびブロック図は、本発明の種々の実施形態に従ったシステム、方法およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能および動作を示す。この点に関して、フローチャートまたはブロック図の各ブロックは、特定の論理機能を実装するための1以上の実行可能な命令を含む、モジュール、セグメントまたは命令の部分を表す可能性がある。いくつかの代替の実装では、ブロックにおいて言及された機能は、図面に示された順序から外れて生じる可能性がある。例えば、連続して示される2つのブロックは、実際には、実質的に同時に実行されてもよく、あるいは、複数のブロックは、関与する機能性に応じて逆の順序で実行されてもよい。ブロック図もしくはフローチャート図またはその両方の各ブロックおよびブロック図もしくはフローチャート図またはその両方の複数のブロックの組み合わせが、特定の機能または作用を実行し、または、特別な目的のハードウェアおよびコンピュータ命令の組み合わせを実施する、特定目的ハードウェアベースのシステムによって実装されてもよいことに留意されたい。特定の用途に応じて、
図7に示されない任意の数の追加のソフトウェア・コンポーネントが、有形の非一時的なコンピュータ可読媒体700内に含まれてもよいことを理解されたい。
【0083】
本技術の種々の実施形態の説明が、説明のために提示されたが、しかしながら、網羅的であること、または、開示される実施形態に限定されることを意図するものではない。説明される実施形態の範囲を逸脱することなく、多くの変更および変形が当業者にとって明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の応用または市場で発見される技術に対する技術的改善を最もよく説明するために、あるいは、他の当業者が、本明細書で開示される実施形態を理解できるように選ばれたものである。