(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-03
(45)【発行日】2024-12-11
(54)【発明の名称】プロセスのためのボトルネック検出
(51)【国際特許分類】
G06Q 10/0633 20230101AFI20241204BHJP
【FI】
G06Q10/0633
(21)【出願番号】P 2021569980
(86)(22)【出願日】2020-09-16
(86)【国際出願番号】 US2020050932
(87)【国際公開番号】W WO2021183180
(87)【国際公開日】2021-09-16
【審査請求日】2023-09-14
(32)【優先日】2020-03-11
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520262319
【氏名又は名称】ユーアイパス,インコーポレイテッド
【氏名又は名称原語表記】UiPath,Inc.
【住所又は居所原語表記】1 Vanderbilt Avenue, 60th Floor, New York, NY 10017, United States of America
(74)【代理人】
【識別番号】100180781
【氏名又は名称】安達 友和
(74)【代理人】
【識別番号】100182903
【氏名又は名称】福田 武慶
(72)【発明者】
【氏名】コピエール,マルティン
(72)【発明者】
【氏名】スチープンス,ローランド ヨハナス
【審査官】山崎 雄司
(56)【参考文献】
【文献】米国特許出願公開第2003/0236585(US,A1)
【文献】米国特許出願公開第2009/0177642(US,A1)
【文献】中国特許出願公開第103218692(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
ボトルネックを識別するためにプロセスの複数の実行インスタンスについてイベントログを解析するためのコンピュータ実装方法であって、
前記複数の実行インスタンスのうちの1つまたは複数の間に実行されたセグメントを前記イベントログから識別するステップであって、前記セグメントの各々が前記プロセスの一対のアクティビティを表す、ステップと、
前記識別されたセグメントの特定のセグメントごとに、
前記イベントログに基づいて前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々の性能の尺度を計算するステップと、
前記計算された性能の尺度に基づいて前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々を分類するステップと、
前記特定のセグメントの前記分類された1つまたは複数の実行インスタンスに基づいて、前記特定のセグメントについての1つまたは複数のメトリックを計算するステップと、
ボトルネックを有する可能性が最も高い前記識別されたセグメントのうちの1つを識別するために、前記1つまたは複数のメトリックに基づいて前記識別されたセグメントを互いに比較するステップと、を含む、コンピュータ実装方法。
【請求項2】
前記一対のアクティビティは、送信元アクティビティおよび宛先アクティビティを含み、前記宛先アクティビティの実行が、前記イベントログにおける前記送信元アクティビティの実行に直接続く、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記性能の尺度は、前記一対のアクティビティ間の時間間隔である、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記計算された性能の尺度に基づいて前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々を分類するステップは、
Jenks自然分類最適化アルゴリズムを用いて、前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々を複数のクラスのうちの1つに分類するステップと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記特定のセグメントの前記分類された1つまたは複数の実行インスタンスに基づいて、前記特定のセグメントについての1つまたは複数のメトリックを計算するステップは、
1)前記特定のセグメントのクラス間の平均差を表す前記特定のセグメントについての効果量メトリック、2)前記特定のセグメントの最良性能クラスと他のクラスとの間の時間差を表す前記特定のセグメントについての損失時間メトリック、および3)前記特定のセグメントの全体性能に対する寄与を表す重み付き影響メトリックを計算するステップを含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
ボトルネックを有する可能性が最も高い前記識別されたセグメントのうちの1つを識別するために、前記1つまたは複数のメトリックに基づいて前記識別されたセグメントを互いに比較するステップは、
前記1つまたは複数のメトリックに基づいて前記識別されたセグメントをランク付けするステップを含む、請求項5に記載のコンピュータ実装方法。
【請求項7】
前記1つまたは複数のメトリックに基づいて前記識別されたセグメントをランク付けするステップは、
前記効果量メトリック、前記損失時間メトリック、および前記重み付き影響メトリックの各々について前記識別されたセグメントの個々のランク付けを決定するステップと、
前記個々のランク付けに基づいて前記識別されたセグメントの総合ランク付けを決定するステップと、を含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記総合ランク付けに基づいて、前記ボトルネックを有する可能性が最も高い前記識別されたセグメントのうちの前記1つを識別するステップをさらに含む、
請求項7に記載のコンピュータ実装方法。
【請求項9】
前記ボトルネックを識別するために、前記比較の結果を表示させるステップをさらに含む、
請求項1に記載のコンピュータ実装方法。
【請求項10】
前記プロセスは、ロボティックプロセスオートメーションプロセスである、請求項1に記載のコンピュータ実装方法。
【請求項11】
ボトルネックを識別するためにプロセスの複数の実行インスタンスについてイベントログを解析するためのコンピュータ命令を格納するメモリと、
前記コンピュータ命令を実行するように構成された少なくとも1つのプロセッサと、を含み、前記コンピュータ命令は、前記少なくとも1つのプロセッサに、
前記複数の実行インスタンスのうちの1つまたは複数の間に実行されたセグメントを前記イベントログから識別するステップであって、前記セグメントの各々が前記プロセスの一対のアクティビティを表す、ステップと、
前記識別されたセグメントの特定のセグメントごとに、
前記イベントログに基づいて前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々の性能の尺度を計算するステップと、
前記計算された性能の尺度に基づいて前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々を分類するステップと、
前記特定のセグメントの前記分類された1つまたは複数の実行インスタンスに基づいて、前記特定のセグメントについての1つまたは複数のメトリックを計算するステップと、
ボトルネックを有する可能性が最も高い前記識別されたセグメントのうちの1つを識別するために、前記1つまたは複数のメトリックに基づいて前記識別されたセグメントを互いに比較するステップと、
の動作を実行させるように構成される、装置。
【請求項12】
前記一対のアクティビティは、送信元アクティビティおよび宛先アクティビティを含み、前記宛先アクティビティの実行が、前記イベントログにおける前記送信元アクティビティの実行に直接続く、請求項11に記載の装置。
【請求項13】
前記性能の尺度は、前記一対のアクティビティ間の時間間隔である、請求項11に記載の装置。
【請求項14】
前記計算された性能の尺度に基づいて前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々を分類するステップは、
Jenks自然分類最適化アルゴリズムを用いて、前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々を複数のクラスのうちの1つに分類するステップと、を含む、請求項11に記載の装置。
【請求項15】
ボトルネックを識別するためにプロセスの複数の実行インスタンスについてイベントログを解析するための、非一時的コンピュータ可読媒体上に格納されたコンピュータプログラムであって、前記コンピュータプログラムは、少なくとも1つのプロセッサに、
前記複数の実行インスタンスのうちの1つまたは複数の間に実行されたセグメントを前記イベントログから識別するステップであって、前記セグメントの各々が前記プロセスの一対のアクティビティを表す、ステップと、
前記識別されたセグメントの特定のセグメントごとに、前記イベントログに基づいて前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々の性能の尺度を計算するステップと、
前記計算された性能の尺度に基づいて前記特定のセグメントの前記1つまたは複数の実行インスタンスの各々を分類するステップと、
前記特定のセグメントの前記分類された1つまたは複数の実行インスタンスに基づいて、前記特定のセグメントについての1つまたは複数のメトリックを計算するステップと、
ボトルネックを有する可能性が最も高い前記識別されたセグメントのうちの1つを識別するために、前記1つまたは複数のメトリックに基づいて前記識別されたセグメントを互いに比較するステップと、
を含む動作を実行させるように構成される、コンピュータプログラム。
【請求項16】
前記特定のセグメントの前記分類された1つまたは複数の実行インスタンスに基づいて、前記特定のセグメントについての1つまたは複数のメトリックを計算するステップは、
1)前記特定のセグメントのクラス間の平均差を表す前記特定のセグメントについての効果量メトリック、2)前記特定のセグメントの最良性能クラスと他のクラスとの間の時間差を表す前記特定のセグメントについての損失時間メトリック、および3)前記特定のセグメントの全体性能に対する寄与を表す重み付き影響メトリックを計算するステップを含む、請求項15に記載のコンピュータプログラム。
【請求項17】
ボトルネックを有する可能性が最も高い前記識別されたセグメントのうちの1つを識別するために、前記1つまたは複数のメトリックに基づいて前記識別されたセグメントを互いに比較するステップは、
前記1つまたは複数のメトリックに基づいて前記識別されたセグメントをランク付けするステップを含む、請求項16に記載のコンピュータプログラム。
【請求項18】
前記1つまたは複数のメトリックに基づいて前記識別されたセグメントをランク付けするステップは、
前記効果量メトリック、前記損失時間メトリック、および前記重み付き影響メトリックの各々について前記識別されたセグメントの個々のランク付けを決定するステップと、
前記個々のランク付けに基づいて前記識別されたセグメントの総合ランク付けを決定するステップと、を含む、請求項17に記載のコンピュータプログラム。
【請求項19】
前記動作は、
前記総合ランク付けに基づいて、前記ボトルネックを有する可能性が最も高い前記セグメントのうちの前記1つを識別するステップをさらに含む、請求項18に記載のコンピュータプログラム。
【請求項20】
前記プロセスは、ロボティックプロセスオートメーションプロセスである、請求項15に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2020年3月11日に出願された米国実用特許出願第16/816,184号の優先権を主張し、その開示はその全体が参照により本明細書に組み込まれる。
【0002】
本発明は、一般に、プロセスマイニングに関し、より詳細には、プロセスのボトルネック検出に関する。
【背景技術】
【0003】
プロセスは、製品またはサービスを提供するために実行される一連のアクティビティである。プロセスマイニングでは、効率を改善し、プロセスのより良い理解を得るために、傾向、パターン、および他のプロセス解析尺度を識別するためにプロセスが解析される。しかしながら、現在のプロセスマイニング技術は、プロセスにおけるボトルネックの識別を可能にするためのプロセスの性能に関する十分な解析データを提供しない。そのようなボトルネックは、プロセスの性能を制限し、不必要な遅延、収益の損失、およびユーザの不満をもたらす可能性がある。
【発明の概要】
【0004】
1つまたは複数の実施形態によれば、ボトルネックを識別するためにプロセスを解析するためのシステムおよび方法が提供される。イベントログは、プロセスの複数の実行インスタンスの間に維持される。イベントログは、複数の実行インスタンスの間に実行されたセグメントを識別し、セグメントの各々はプロセスの一対のアクティビティを表す。識別されたセグメントの各々のメトリックが計算され、ボトルネックを有する可能性が最も高い識別されたセグメントのうちの1つが、メトリックに基づいて識別される。プロセスは、ロボティックプロセスオートメーションプロセスであってもよい。
【0005】
一実施形態では、プロセスの複数の実行インスタンスについてのイベントログが受信され、複数の実行インスタンスのうちの1つまたは複数の間に実行されたセグメントがイベントログから識別される。セグメントは、プロセスの一対のアクティビティを表し、一対のアクティビティは、送信元アクティビティおよび宛先アクティビティを含み、宛先アクティビティの実行は、イベントログにおける送信元アクティビティの実行に直接続く。識別されたセグメントの各特定のセグメントについて、イベントログに基づいて特定のセグメントの1つまたは複数の実行インスタンスの各々について性能の尺度が計算され、計算された性能の尺度に基づいて特定のセグメントの1つまたは複数の実行インスタンスの各々が分類され、特定のセグメントの分類された1つまたは複数の実行インスタンスに基づいて特定のセグメントについての1つまたは複数のメトリックが計算される。識別されたセグメントは、1つまたは複数のメトリックに基づいて互いに比較され、ボトルネックを有する可能性が最も高い識別されたセグメントのうちの1つを識別する。
【0006】
一実施形態では、性能の尺度は一対のアクティビティ間の時間間隔である。
【0007】
一実施形態では、特定のセグメントの1つまたは複数の実行インスタンスの各々は、Jenks自然分類最適化アルゴリズムを使用して複数のクラスのうちの1つに分類される。特定のセグメントの1つまたは複数のメトリックは、1)特定のセグメントのクラス間の平均差を表す特定のセグメントについての効果量メトリック、2)特定のセグメントの最良性能クラスと他のクラスとの間の時間差を表す特定のセグメントについての損失時間メトリック、および3)特定のセグメントの全体性能に対する寄与を表す重み付き影響メトリックを計算することによって計算される。
【0008】
一実施形態では、識別されたセグメントは、1つまたは複数のメトリックに基づいて識別されたセグメントをランク付けすることによって互いに比較される。識別されたセグメントは、効果量メトリック、損失時間メトリック、および重み付き影響メトリックの各々について識別されたセグメントの個々のランク付けを決定し、個々のランク付けを組み合わせることによって識別されたセグメントの総合ランク付けを決定することによってランク付けされ得る。ボトルネックを有する可能性が最も高いセグメントの1つが、総合ランク付けに基づいて識別され得る。
【0009】
一実施形態では、比較の結果が表示される。
【0010】
本発明のこれらおよび他の利点は、以下の詳細な説明および添付の図面を参照することによって当業者に明らかになるであろう。
【図面の簡単な説明】
【0011】
【
図1】本発明の1つまたは複数の実施形態による、ボトルネック検出のために解析され得る例示的なプロセスを示す図である。
【0012】
【
図2】本発明の1つまたは複数の実施形態による、ボトルネック検出のためのプロセスを解析するための方法を示す図である。
【0013】
【
図3】本発明の1つまたは複数の実施形態による、
図1のプロセスの例示的なイベントログを示す図である。
【0014】
【
図4】本発明の1つまたは複数の実施形態による、セグメントをランク付けするための例示的な表を示す図である。
【0015】
【
図5】本発明の1つまたは複数の実施形態による、セグメント概要のダッシュボードを示す図である。
【0016】
【
図6】本発明の1つまたは複数の実施形態による、プロセスの解析の時間的観点のダッシュボードを示す図である。
【0017】
【
図7】本発明の1つまたは複数の実施形態による、プロセスの解析の事例的観点のダッシュボードを示す図である。
【0018】
【
図8】本発明の1つまたは複数の実施形態による、プロセスの解析の組織的観点のダッシュボードを示す図である。
【0019】
【
図9】1つまたは複数の実施形態による、プロセスの解析の制御フロー的観点のダッシュボードを示す図である。
【0020】
【
図10】1つまたは複数の実施形態による、プロセスの解析の制御フロー的観点からエッジ横断率を示すプロセスの結合ビューのダッシュボードを示す図である。
【0021】
【
図11】1つまたは複数の実施形態による、プロセスの解析の制御フロー的観点からの平均スループット時間を示すプロセスの結合ビューのダッシュボードを示す図である。
【0022】
【
図12】本発明の一実施形態によるコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【0023】
プロセスは、いくつかの異なるアプリケーションのための製品またはサービスを提供するために利用され得る。そのようなプロセスの例示的なアプリケーションには、管理アプリケーション(例えば、新しい従業員の新人研修)、調達支払アプリケーション(例えば、購入、請求書管理、および支払いの円滑化)、および情報技術アプリケーション(例えば、発券システム)が含まれる。例示的なプロセス100が
図1に示されている。プロセス100は、請求書を処理および支払いするためのビジネスプロセスである。一実施形態では、プロセス100は、1つまたは複数のRPAロボットを使用してタスクを自動的に実行するためのロボティックプロセスオートメーション(RPA)ワークフローとして実施されてもよい。
【0024】
プロセス100は、プロセス100における所定のシーケンスのステップを表すアクティビティ102~114を含む。
図1に示すように、プロセス100は、各アクティビティ102~114がノードとして表され、アクティビティ102~114間の各遷移がノードをリンクするエッジとして表される有向グラフとしてモデル化されている。アクティビティ間の遷移は、送信元アクティビティから宛先アクティビティへのプロセス100の実行を表す。プロセス100は、請求書受信アクティビティ102で開始し、受信請求書確認アクティビティ104に進む。受信した請求書が、受信請求書確認アクティビティ104において情報が欠落していると判定された場合には、プロセス100は、請求書最終確認アクティビティ110に進む前に、データ要求アクティビティ106および契約条件確認アクティビティ108に進む。受信した請求書が、受信請求書確認アクティビティ104において情報が欠落していないと判定された場合には、プロセス100は、請求書最終確認アクティビティ110に直接進む。次に、プロセス100は、請求書承認アクティビティ112および請求書支払アクティビティ114に進む。プロセス100の実行は、イベントログの形態で記録される。
【0025】
時には、プロセス100の実行がボトルネックに起因して妨げられることがある。本明細書で使用される場合、ボトルネックは、プロセス100の実行に悪影響を及ぼすプロセス100の一組の1つまたは複数のアクティビティを指す。プロセス100の実行は、例えば、スループット(すなわち、実行)時間、リソース使用量、収益、サポート解決時間、または任意の他の性能インジケータなどの任意の適切なメトリックに基づいて悪影響を受ける可能性がある。例えば、プロセス100の実行は、最大スループット時間、最小リソース使用量、最小収益成長率、収益成長率、サポート解決時間などの任意のメトリックに基づいて悪影響を受ける可能性がある。そのようなボトルネックは、プロセス100の実行を制限し、不必要な遅延、収益の損失、およびユーザの不満をもたらす可能性がある。
【0026】
本発明の実施形態によれば、プロセス(例えば、プロセス100)は、プロセスにおけるボトルネックを識別するために解析される。ボトルネックの根本原因の特定を容易にするために、解析の様々な態様を1つまたは複数のダッシュボードで視覚化することができる。有利には、本発明の実施形態によるボトルネックを識別するためのプロセスの解析は、そのようなボトルネックの根本原因を軽減または排除することを可能にし、それによってプロセスの効率および性能を改善する。
【0027】
図2は、1つまたは複数の実施形態による、ボトルネック識別のためのプロセスを解析するための方法200を示す。
図2は、引き続き
図1のプロセス100を参照して説明される。一実施形態では、方法200のステップは、ボトルネック検出のためにプロセス100を解析するために実行される。方法200のステップは、例えば
図12のコンピュータ1200などの任意の適切なコンピューティングデバイスによって実行することができる。
【0028】
ステップ202において、プロセスの複数の実行インスタンスについてのイベントログが受信される。イベントログは、プロセスの複数の実行インスタンスの間に発生するイベントを記録することによって、プロセスの複数の実行インスタンスの間に維持されてもよい。イベントは、特定の時間および特定の事例におけるアクティビティの実行を指す。事例は、プロセスの単一の実行インスタンスに対応し、事例識別子(ID)によって識別される。一実施形態では、各イベントは、実行されたアクティビティのラベル、アクティビティの実行のタイムスタンプ、および実行されたアクティビティの実行インスタンスを識別する事例IDを含むタプルとして表すことができる。
【0029】
図3は、1つまたは複数の実施形態による、
図1のプロセス100の例示的なイベントログ300を示す。イベントログ300は、イベントログ300内の事例ID1および事例ID2に対応する、プロセス100の2つの実行インスタンス中に発生したイベントを記録する。
図3に示すように、イベントログ300は、各々がイベントに対応する行302と、各々が行302と列304とが交差するセルにおけるイベントの属性を識別する列304と、を有する表としてフォーマットされる。具体的には、各行302は、アクティビティ102~114の実行を表すイベント(列304-Bで識別される)、アクティビティ102~114の実行のタイムスタンプ(列304-Cで識別される)、および実行されたアクティビティ102~114の実行インスタンスを識別する事例ID(列304-Aで識別される)に関連する。一実施形態では、列304-Cで識別されるアクティビティ102-114の実行のタイムスタンプは、アクティビティ102-114の実行が完了した時刻を指すが、あるいはアクティビティ104-114の実行が開始された時刻を指してもよい。一実施形態では、イベントログ300は、
図3に示すように、各イベントについて、実行されたアクティビティのラベル、アクティビティの実行のタイムスタンプ、および実行されたアクティビティの実行インスタンスを識別する事例IDのみを識別する。しかしながら、イベントログ300は、任意の適切なフォーマットであってもよく、イベントの他の属性を識別する追加の列304を含んでもよいことを理解されたい。
【0030】
ステップ204において、プロセスの複数の実行インスタンスのうちの1つまたは複数の間に実行されたセグメントがイベントログから識別される。各セグメントは、プロセスにおける一対のアクティビティを表す。一対のアクティビティは、本明細書では<送信元アクティビティ、宛先アクティビティ>として示される送信元アクティビティおよび宛先アクティビティを含み、宛先アクティビティの実行はイベントログ内の送信元アクティビティの実行に直接続く。セグメントは、一対のアクティビティを識別するためにイベントログにおける各実行インスタンスをトラバースすることによって識別される。一例では、
図3のイベントログ300において、以下のセグメントが識別され得る。すなわち、<請求書受信、受信請求書確認>、<受信請求書確認、請求書最終確認>、<受信請求書確認、データ要求>、<データ要求、契約条件確認>、<契約条件確認、請求書最終確認>、<請求書最終確認、請求書承認>、および<請求書承認、請求書支払>である。
【0031】
ステップ206において、イベントログに基づいて、識別されたセグメントのうちの特定のセグメントの1つまたは複数の実行インスタンスの各々について、性能の尺度が計算される。一実施形態では、特定のセグメントの特定の実行インスタンスの性能の尺度は、その特定の実行インスタンスのセグメントの送信元アクティビティと宛先アクティビティとの間の時間間隔である。時間間隔は、イベントログから特定の実行インスタンスについての送信元アクティビティの実行のタイムスタンプおよび宛先アクティビティの実行のタイムスタンプを抽出し、宛先アクティビティの実行のタイムスタンプと送信元アクティビティの実行のタイムスタンプとの間の差を判定することによって計算され得る。例えば、事例ID1の実行インスタンスのセグメント<受信請求書確認、請求書最終確認>に関連する時間間隔は、
図3のイベントログ300から2日、3時間、および10秒として計算され得る。別の例では、事例ID1の実行インスタンスのセグメント<請求書最終確認、請求書承認>に関連する時間間隔は、
図3のイベントログ300から1日、20時間、35分、および3秒として計算され得る。時間間隔は、例えば、秒、分、時間、日、月、および/または年などの任意の適切なフォーマットであってもよい。例えば、リソース使用量、収益値、占有率、あるいは数値に基づいており、送信元アクティビティおよび宛先アクティビティに対して個別に計算/測定することができる任意の他の適切な尺度などの、他の性能の尺度も使用することができる。
【0032】
ステップ208において、特定のセグメントの1つまたは複数の実行インスタンスの各々は、計算された性能の尺度に基づいて複数のクラスのうちの1つに分類される。一実施形態では、特定のセグメントの1つまたは複数の実行インスタンスの各々は、各クラス内の変動を最小化することによって機能する周知のJenks自然分類最適化アルゴリズムを使用して、複数のクラスのうちの1つに分類される。Jenks自然分類最適化アルゴリズムは、George F.Jenksによる「Optimal Data Classification for Choropleth Maps」に記載されている。任意の他の適切なデータクラスタリングアルゴリズムを使用することもできる。
【0033】
Jenks自然分類最適化アルゴリズムは、特定のセグメントの1つまたは複数の実行インスタンスの性能の尺度を含むデータセットQを、クラスを描写する異なるブレークポイントを使用してデータセットを反復的に分割することによって、同様の性能のn個のクラスQiに分割する。例えば、7600、3480、220、500、1500、および1700の時間間隔を有する6つの実行インスタンスの間に実行されるセグメント<請求書受信、受信請求書確認>を考える。所与のデータセット
Q=[7600、3480、220、500、1500、1700]の場合、Jenks自然分類最適化アルゴリズムは、Qのn個の所定数のクラスへの最適分割を作成しようと試みる。この例では、n=3である。Jenks自然分類最適化アルゴリズムは、以下のようにステップ1~5を適用する。
【0034】
ステップ1:データセットQをソートし、任意に(例えば、ランダムに)ブレークポイントを選択する。したがって、ソートされたデータセットQ=[220,500,1500,1700,3480,7600]
任意に選択されたブレークポイントにより、クラスQbp=[220]、[500,1500,1700,3480]、[7600]が得られる。
【0035】
ステップ2:各クラスQ
bpについての配列平均(SDAM)についての偏差の二乗和を計算する。SDAMは、式1に従って計算することができる。
【数1】
ソートされたデータセットQに式1を適用すると、以下が得られる。
SDAM=(220-2500)
2+(500-2500)
2+(1500-2500)
2+(1700-2500)
2
+(3480-2500)
2+(7600-2500)
2=37,808,800
【0036】
ステップ3:各クラスQ
bpについてクラス間の偏差の二乗和(SDBC)を計算する。SDBCは、式2に従ってクラスQ
bpごとに計算することができる。
【数2】
式2を各クラスQ
bpに適用すると、以下が得られる。
SDBC=(220-220)
2
+{(500-1795)
2+(1500-1795)
2+(1700-1795)
2
+(3480-1795)
2}+(7600-7600)
2=4,612,300
【0037】
ステップ4:各クラスQbpについてクラス平均(SDCM)の偏差の二乗和を計算する。SDCMは、式3に従ってクラスQbpごとに計算することができる。
SDCM=SDAM-SDBC. (式3)
式3を適用すると、SDCM=37,808,800-4,612,300=33,196,500となる。
【0038】
ステップ5:すべての可能なブレークポイントの組み合わせについてステップ2~4を繰り返す。SDCMが最も高いブレークポイントの組み合わせが選択される。したがって、特定のセグメントの1つまたは複数の実行インスタンスの各々は、最も高いSDCMとのブレークポイントの組み合わせによって定義される複数のクラスのうちの1つに分類される。
【0039】
一実施形態では、クラスの最適な数nは、異なる数のクラスのデータセットQに対してJenks自然分類最適化アルゴリズムを繰り返し実行することによって決定することができる。例えば、Jenks自然分類最適化アルゴリズムは、n=1,...,xのいくつかのクラスに対して繰り返し実行されてもよく、xはデータセットQ内の項目の数である。この例では、x=6である。Jenks自然分類最適化アルゴリズムは、クラスの数ごとに適合度(GVF)尺度を提供する。GVF測定値は、GVF=(SDAM-SCDM)/SDAMとして計算することができ、0のGVF尺度は適合なしを示し、1のGVF尺度は完全な適合を示す。GVFを最大化すると、データセットQ内の項目の数と等しいクラスの最適な数が常にもたらされる(すなわち、GVF=1)。したがって、n個のクラスのGVFとn+1個のクラスのGVFとの間の変化率を示す適合度変化(RGVFC)尺度が計算される。n個のクラスのRGVFCは、RGVFC=(GVFn+1-GVFn)/GVFnとして計算される。最適なクラス数は、最大GVF値を有するがRGVFCしきい値を超えないRGVFC値を有するクラス数nとして選択される。一実施形態では、RGVFCしきい値は2.5%~10%であるが、任意の適切な値が用いられてもよい。
【0040】
ステップ210において、分類された特定のセグメントの1つまたは複数の実行インスタンスに基づいて、特定のセグメントについて1つまたは複数のメトリックが計算される。1つまたは複数のメトリックは、特定のセグメントを特徴付ける任意の適切なメトリックを含むことができる。一実施形態では、1つまたは複数のメトリックは、効果量、損失時間、および重み付き影響を含む。例えば、クラスサイズ、クラス方向(クラスの増加/減少)、クラス分布などの任意の他の適切なメトリックも使用することができる。
【0041】
効果量:効果量は、特定のセグメントにおける2つのクラス間の差の定量的尺度である。一実施形態では、効果量は、周知のCohenのd法に従って計算されるが、任意の他の適切な手法を使用してもよい。Cohenのd法は、Jacob Cohenによる「Statistical Power Analysis for the Behavioral Sciences」に記載されている。クラスX
1およびX
2のCohenのd値は、式4に従って計算される。
【数3】
ここで、μ
1およびμ
2はそれぞれX
1およびX
2の平均であり、sはプールされた標準偏差である。プールされた標準偏差sは、式5で定義される。
【数4】
ここで、n
1およびn
2はそれぞれX
1およびX
2のサイズであり、
および
はそれぞれX
1およびX
2の変動であり、
および
はそれぞれ式6および式7で定義される。
【数5】
【0042】
Cohenのd値は、2つのクラスが異なる標準偏差の数を表す。例えば、1のCohenのd値は、2つのクラスが1標準偏差だけ異なることを示し、2のCohenのd値は、2つのクラスが2標準偏差だけ異なることを示すなどである。
【0043】
Cohenのd法は、一度に2つのクラス間の効果量(すなわち、Cohenのd値)のみを計算する。3つ以上のクラスを有し得る特定のセグメントのCohenのd値を計算するために、クラスのペアのすべての組み合わせの効果量が平均化される。特に、まず、N個のクラスを有する特定のセグメントについて、クラスのすべてのペア(Ti、Tj)が識別され、ここでi<jおよびi,j≦Nである。次に、クラスのすべてのペア(Ti、Tj)についてCohenのd値が計算される。最後に、クラスのペア(Ti、Tj)ごとのCohenのd値の合計をクラスのペアの総数で除算して、特定のセグメントのCohenのd値を提供する。
【0044】
損失時間:損失時間は、特定のセグメント内の最良性能(例えば、最も速い)クラスと他のクラスとの間の時間差を表す。特定のセグメントの損失時間は、最初に特定のセグメント内の各クラスC
iの中央値を計算することによって計算され、iはクラス番号である。第2に、クラス1の中央値を最適時間(Jenks自然分類最適化アルゴリズムの性質により、クラス1は常に最小中央値(すなわち、最も速い時間)を有する)とする。第3に、特定のセグメント内の各クラスC
iの損失時間は、C
i損失時間=(中央値(C
i)-最適時間)×サイズ(C)として計算される。最後に、各クラスC
iの損失時間は、
【数6】
として合計され、ここでNは特定のセグメント内のクラスの数であり、特定のセグメントの損失時間を提供する。
【0045】
クラスの中央値は、以下の2つの理由のために損失時間を計算するために使用される:1)Jenks自然分類最適化アルゴリズムの性質のために、クラス1は常に最低の中央値を有する、および2)クラスの中央値は、クラスの平均と比較して不均衡なデータによる歪みが少ない。損失時間は、特定のセグメントの1つまたは複数の実行インスタンスが特定のセグメントにおける可能な最速時間よりも遅い大きさを表す。したがって、セグメントBと比較して損失時間が比較的小さいセグメントAは、セグメントBの改善に集中する方が収益性が高いことを示す。
【0046】
重み付き影響:重み付き影響は、特定のセグメントのセグメント性能によって引き起こされる特定のセグメントの全体性能の寄与率を表す。セグメントSの重み付き影響(TWI)は、式8のように計算される。
【数7】
ここで、CはセグメントS内のクラスの数であり、SP(S
i)はセグメントS内のクラスS
iのセグメント性能であり、OP(S
i)はセグメントS内のクラスS
iの全体性能であり、|S|はセグメントSを通過する事例の数を表し、|S
i|はクラスS
i内の事例の数を表す。セグメント性能は、セグメントSの性能(例えば、総時間間隔)である。全体性能は、セグメントSを有する事例の総スループット時間である。
【0047】
ステップ212で、識別されたセグメントの残りのセグメントがあるかどうかが判定される。残りのセグメントがあると判定された場合には、方法200はステップ206に戻り、次の残りのセグメントを特定のセグメントとして使用してステップ206~210が繰り返される。したがって、ステップ206~210は、識別されたセグメントの各セグメントに対して実行される。残りのセグメントがないと判定された場合には、方法200はステップ214に進む。
【0048】
ステップ214において、識別されたセグメントは、識別されたセグメントのうちの少なくとも1つにおけるボトルネックを識別するために、1つまたは複数のメトリックに基づいて互いに比較される。一実施形態では、識別されたセグメントは、1つまたは複数のメトリックに基づいて識別されたセグメントの各々をランク付けすることによって互いに比較される。一実施形態では、識別されたセグメントの個々のランク付けは、1つまたは複数のメトリックのそれぞれについて最初に決定される。例えば、識別されたセグメントの効果量ランク付けは、効果量メトリックに対して決定されてもよく、識別されたセグメントの損失時間ランク付けは、潜在的な損失時間メトリックに対して決定されてもよく、識別されたセグメントの重み付けされた影響ランク付けは、総重み付き影響メトリックに対して決定されてもよい。次いで、総合ランク付けが、1つまたは複数のメトリックの個々のランク付けに基づいて計算される。例えば、総合ランク付けは、個々のランク付けの累積ランク付け、個々のランク付けの重み付けランク付け、または個々のランク付けを集約する任意の他の適切なランク付けを含むことができる。一実施形態では、累積ランク付けは、1つまたは複数のメトリックの個々のランク付けの合計または平均として計算することができる。総合ランク付けは、セグメントが他のセグメントと比較してボトルネックを有する相対的尤度を表す。総合ランク付けが最も高いセグメントは、他のセグメントと比較してボトルネックを有する可能性が最も高いセグメントであり、累積ランク付けが最も低いセグメントは、他のセグメントと比較してボトルネックを有する可能性が最も低いセグメントである。識別されたセグメントを互いに比較することにより、ユーザによる識別されたセグメントにおけるボトルネックの識別が容易になる。例えば、最も高い総合ランク付けを有するセグメントは、ボトルネックを有する可能性が最も高いセグメントであり、これは、セグメントがボトルネックを有するかどうかを判定するためにユーザによるさらなる解析が推奨されることを示すことができる。いくつかの実施形態では、ランク付けはまた、運用コストに基づくことができ、ユーザは、潜在的なリスクが最も高いセグメントを見ることができる。
【0049】
図4は、1つまたは複数の実施形態による、セグメントをランク付けするための例示的な表400を示す。表400の列402に示すように、イベントログでは、7つのセグメントが識別される。効果量、潜在的な損失時間、および総重み付き影響メトリックは、それぞれ列404,406および408に示すように、セグメントごとに計算される。セグメントの個々のランクは、それぞれ列410,412および416に示すように、効果量、潜在的な損失時間、および総重み付き影響メトリックのそれぞれについて決定される。セグメントの個々のランクは1~7の範囲であり、個々のランクが1のセグメントが最も低いランクのセグメントであり、個々のランクが7のセグメントが最も高いランクのセグメントである。例えば、セグメント<C,E>は、列404において最も低い効果量を有し、したがって、列410において最も低い(1)にランク付けされ、セグメント<A,B>は、列404において最も高い効果量を有し、したがって、列410において最も高い(7)にランク付けされる。
セグメント<D,E>は、列406において最も低い潜在的な損失時間を有し、したがって、列412において最も低い(1)にランク付けされ、セグメント<A,B>は、列406において最も高い潜在的な損失時間を有し、したがって、列412において最も高い(7)にランク付けされる。
セグメント<A,C>は、列408において最も低い総重み付き影響を有し、したがって、列414において最も低い(1)にランク付けされ、セグメント<B,C>は、列408において最も高い総重み付き影響を有し、したがって列414において最も高い(7)にランク付けされる。
列416に示すように、各メトリックの列410~141の個々のランク付けは、セグメントごとに加算されて累積ランク付けを計算する。
セグメント<A,B>は、累積ランク付けが最も高く、ボトルネックを有する可能性が最も高いセグメントとして識別される。いくつかの実施形態では、例えば、最も高い効果量、最も高い潜在的損失時間、および最も高い総重み付き影響を有するセグメントが最も低くランク付けされる場合、累積ランク付けが最も低いセグメントは、ボトルネックを有する可能性が最も高いセグメントであり得る。
【0050】
ステップ216において、ステップ214の比較の結果が出力される。例えば、比較の結果をコンピュータシステムのディスプレイデバイス上に表示することによって、比較の結果をコンピュータシステムのメモリまたはストレージ上に記憶することによって、または比較の結果をリモートコンピュータシステムに送信することによって、比較の結果を出力することができる。
【0051】
いくつかの実施形態では、比較の結果は、例えば、
図5~
図11に示すダッシュボードなどの1つまたは複数のユーザインターフェースを介してディスプレイデバイスに識別されたセグメントの比較の結果を表示することによって出力されてもよい。
ダッシュボードは、例えば、時間的観点、事例的観点、組織的観点、および制御フロー的観点を含む、いくつかの観点からの結果を視覚化する。そのようなダッシュボードは、根本原因のボトルネック解析のためのセグメントの解析を容易にするための解析ツールをユーザに提供する。
【0052】
図5は、1つまたは複数の実施形態による、セグメント概要のためのダッシュボード500を示す。ダッシュボード500は、各セグメントおよびそのメトリックの概要を領域1 502内のユーザに提示する。
領域1 502の概要は表形式で示されており、各行はセグメントに対応し、各列は属性に対応する。以下の属性、すなわち、セグメントの名称、そのセグメントにおける事例数、そのセグメントにおけるクラス数、効果量のランク付け、潜在的損失時間のランク付け、総重み付き影響のランク付け、および累積ランク付けが示される。領域1 502内のセグメントは、累積ランク付けに基づいて、最高から最低まで順序付けられている。しかしながら、領域1 502と対話するユーザは、(例えば、列をクリックすることにより)任意の列の属性に基づいて表をソートすることができる。領域2 504は、(例えば、ホバリングすると)各メトリックがどのように計算されるかの説明を提供するアイコンを示す。
【0053】
図6は、1つまたは複数の実施形態による、時間的観点からのダッシュボード600を示す。時間的観点は、イベントのタイミングおよび頻度に関する。タイミング情報を使用して、ボトルネックの発見、サービスレベルの測定などを行うことができる。ダッシュボード600は、選択されたセグメントの詳細なビューを提示する。領域1 602は、ユーザがセグメントを選択することができるセレクタを示す。領域2 604は積み重ねられたバーを示し、各セクション610,612、および614は、それぞれ効果量メトリック、損失時間メトリック、および重み付き影響メトリックの値を表す。領域2604は、選択されたセグメントが他のセグメントに対してどのようにランク付けされたかを迅速に確認し、選択されたセグメントに関する一般的な洞察を得る能力をユーザに提供する。領域3 606は、クラスごとの、選択されたセグメントの各事例の総スループット時間の分布を示す。領域3 606は、ユーザがクラスを視覚的に比較して、各クラスの全体性能の理解を生み出すことを可能にする。領域4 608は、各クラスのスループット時間の中央値と、スループット時間がどのように細分化されるかを示す。特に、領域4 608は、経過時間(事例の開始からセグメントに到達するまでの時間)、セグメント時間(事例がセグメントに費やされた時間)、および残り時間(セグメントを出るときと事例の終了時との間に事例が費やす時間)を示す。領域4 608は、セグメント性能が全体性能にどのように関連するかを示すので、重み付き影響メトリックを視覚化し、それによってセグメントがプロセス全体に及ぼす影響に関する洞察をユーザに提供する。
【0054】
図7は、1つまたは複数の実施形態による、事例の観点のためのダッシュボード700を示す。ダッシュボード700は、事例属性の解析を提示し、それにより、ユーザが、例えば、最も速いクラスと比較して最も遅いクラスの事例属性間の不一致を識別することを可能にし、それにより、不一致が存在する理由を明らかにすることができる。領域1 702は、ユーザによって解析されるセグメントおよび解析されるクラスのセットを選択するためのセレクタを示す。領域2 704は、解析が実行される事例属性を選択するための事例属性セレクタと、以前の研究に基づいて予想されたものとは著しく異なる属性のみを示すための「有意のみを示す」オプションと、を示す。領域3 706は、線710が選択された事例属性の予想される頻度を表し、棒が選択された事例属性の観測された頻度を表すグラフを示す。領域4 708は、選択された事例属性がすべてのクラスにどのように分布するかを示す表を示す。領域4 708は、分布をパーセンテージまたは数(カウント)として表示するためのパーセンテージ/カウントセレクタを含む。
【0055】
図8は、1つまたは複数の実施形態による、組織的観点からのダッシュボード800を示す。組織的観点は、リソース、すなわちどの当事者(例えば、人々、システム、役割、部門)が関与し、それらがどのように関連しているかに関する。領域1 802は、解析するセグメントを選択するためのセレクタを示す。領域2 804には、解析対象のイベント属性を選択するためのイベント属性セレクタと、分布をパーセンテージまたは数(カウント)として表示するためのパーセンテージ/カウントセレクタと、が示されている。領域3 806は、セグメントアクティビティに基づくクラスごとの選択されたイベント属性の分布を示す表を示す。「パーセンテージ」が選択された場合、各行の合計は100%になり、ユーザはセグメントのイベント属性頻度を検査し、異なるクラス間のイベント属性頻度を比較することができる。領域4 808は、プロセス全体のクラスごとの選択されたイベント属性の分布を示す表を示す。
【0056】
図9は、1つまたは複数の実施形態による、制御フロー的観点からのダッシュボード900を示す。ダッシュボード900は、ユーザが、あるクラスのフローと他のクラスとの間の違いを発見することを可能にする。制御フロー的観点は、アクティビティの順序付けに関する。領域1 902は、解析するセグメントを選択するためのセレクタを示す。領域2 904は、プロセスフロー解析ツールを示す。特に、領域2 904は、クラスを選択するためのセレクタを示す領域2a 906と、すべてのエッジがそれを横切る事例の割合を示す選択されたクラスのプロセスフローを示す領域2b 908と、プロセス利用率、事例数を説明する凡例を示す領域2c 910と、を含み、まれなアクティビティおよびエッジを非表示または表示するためのしきい値を設定するためのユーザ調整可能スライダを含む。領域3 912は、別のプロセスフロー解析ツールを示す。領域3 912は、領域3a 914、領域3b 916、および領域3c 918を含み、これらは領域2a 906、領域2b 908、および領域2c 910と同様であるが、別のプロセス用である。領域4 920は、ダッシュボード900に示すように、プロセスを並べて表示するか、または組み合わせて表示するかを選択するためのボタンを示す。
図10および
図11は、1つまたは複数の実施形態による、プロセスの合成ビューを示す制御フロー的観点からのダッシュボード1000およびダッシュボード1100をそれぞれ示す。プロセスは、プロセスA、プロセスB、および両方のプロセスが異なる色で表されるように、ダッシュボード1000およびダッシュボード1100に色で示されている。ダッシュボード1000内の各エッジは、色によって各プロセスのエッジ横断率を表すパーセンテージを含む。ダッシュボード1100内の各エッジは、色による各プロセスの平均スループット時間を含む。他の統計もまた、エッジ上に表され得る。
【0057】
図2の方法200に戻って参照すると、一実施形態では、ステップ202で受信されたイベントログは、
図3のイベントログ300に示すように、実行されたアクティビティ、アクティビティの実行の単一のタイムスタンプ、および事例IDのみを識別する標準フォーマットである。
しかしながら、他の実施形態では、ステップ202で受信されたイベントログは、非標準フォーマットであり、標準フォーマットに変換される。
【0058】
非標準フォーマットのイベントログの一例は、各イベントに対応する行と、各イベントの実行開始時刻のタイムスタンプおよび実行完了時刻のタイムスタンプを識別する列と、を含むイベントログである。このような非標準フォーマットのイベントログは、各イベントを実行開始時刻に対応する第1のイベントと実行完了時刻に対応する第2のイベントとの2つの別々のイベント(すなわち、2つの別々の行)に分割することで、標準フォーマットに変換される。この例では、実行開始時刻と実行完了時刻とに基づいて、解析対象のセグメントのタイプを区別することができる。例えば、特定のアクティビティの実行開始時間に対応するイベントから、同じアクティビティの実行完了時間に対応するイベントまでのセグメントは、処理時間を表すことができ、アクティビティの実行完了時間に対応するイベントから、次のアクティビティの実行開始時間に対応するイベントまでのセグメントは、待ち時間を表すことができる。したがって、検出されたボトルネックは、タイプ(すなわち、処理時間に起因するか、待ち時間に起因するか)によって区別され得る。
【0059】
非標準フォーマットのイベントログの他の例は、各イベントに対応する行と、各イベントに対するアクティビティライフサイクル情報を特定する列と、を含むイベントログである。アクティビティライフサイクル情報は、イベントに関連するアクティビティのステータスを表す。ステータスは、例えば、開始、完了、中断、または再開であってもよい。このような非標準フォーマットのイベントログは、ライフサイクル情報を含むようにアクティビティのラベル(すなわち、名称)を変更し、アクティビティライフサイクル情報を特定する列を削除することで、標準フォーマットに変換される。例えば、「請求書受信」というアクティビティラベルを識別する列と「開始」というアクティビティライフサイクル情報を特定する列とを有する非標準イベントログは、「請求書受信+開始」というアクティビティラベルを識別する列を有するように変換され、アクティビティライフサイクル情報を特定する列を削除することができる。したがって、アクティビティライフサイクル情報に基づいてセグメントのタイプを区別することができる。例えば、アクティビティの開始実行に対応するイベントからアクティビティの中断実行に対応するイベントまでのセグメントは処理時間を表してもよく、アクティビティの中断実行に対応するイベントからアクティビティの再開実行に対応するイベントまでは待ち時間を表してもよく、アクティビティの再開実行に対応するイベントからアクティビティの完全な実行に対応するイベントまでは処理時間を表してもよい。したがって、検出されたボトルネックは、タイプ(すなわち、処理時間に起因するか、待ち時間に起因するか)によって区別され得る。
【0060】
図12は、本発明の一実施形態による、
図1~
図2を含む、本明細書に記載の方法、ワークフロー、およびプロセスを実行するように構成されたコンピューティングシステム1200を示すブロック図である。いくつかの実施形態では、コンピューティングシステム1200は、本明細書に図示および/または記載されたコンピューティングシステムのうちの1つまたは複数であってもよい。コンピューティングシステム1200は、情報を通信するためのバス1202または他の通信機構と、情報を処理するためにバス1202に結合されたプロセッサ1204と、を含む。プロセッサ1204は、中央処理装置(CPU)、特定用途集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、グラフィックスプロセッシングユニット(GPU)、それらの複数のインスタンス、および/またはそれらの任意の組み合わせを含む、任意のタイプの汎用または専用プロセッサであってもよい。プロセッサ1204はまた、複数の処理コアを有してもよく、コアの少なくともいくつかは、特定の機能を実行するように構成されてもよい。いくつかの実施形態では、複数並列処理が使用されてもよい。
【0061】
コンピューティングシステム1200は、プロセッサ1204によって実行される情報および命令を格納するためのメモリ1206をさらに含む。
メモリ1206は、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、キャッシュ、磁気もしくは光ディスクなどの静的ストレージ、または任意の他のタイプの非一時的コンピュータ可読媒体、またはそれらの組み合わせの任意の組み合わせで構成することができる。非一時的コンピュータ可読媒体は、プロセッサ1204によってアクセス可能な任意の利用可能な媒体であってもよく、揮発性媒体、不揮発性媒体、またはその両方を含んでもよい。媒体はまた、取り外し可能、取り外し不能、またはその両方であってもよい。
【0062】
さらに、コンピューティングシステム1200は、任意の現在存在する、または将来実施される通信規格および/またはプロトコルに従って、無線および/または有線接続を介して通信ネットワークへのアクセスを提供するためのトランシーバなどの通信デバイス1208を含む。
【0063】
プロセッサ1204は、バス1202を介して、ユーザに情報を表示するのに適したディスプレイ1210にさらに結合される。ディスプレイ1210はまた、タッチディスプレイおよび/または任意の適切な触覚I/Oデバイスとして構成されてもよい。
【0064】
キーボード1212およびコンピュータマウス、タッチパッドなどのカーソル制御デバイス1214は、ユーザがコンピューティングシステムとインターフェースすることを可能にするためにバス1202にさらに結合される。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しなくてもよく、ユーザは、ディスプレイ1210および/またはタッチパッド(図示せず)のみを介してデバイスと対話することができる。入力デバイスの任意のタイプおよび組み合わせを、設計上の選択事項として使用することができる。特定の実施形態では、物理的入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム1200と遠隔で対話することができ、またはコンピューティングシステム1200は自律的に動作することができる。
【0065】
メモリ1206は、プロセッサ1204によって実行されると機能を提供するソフトウェアモジュールを格納する。
モジュールは、コンピューティングシステム1200のためのオペレーティングシステム1216と、本明細書に記載のプロセスまたはその派生物の全部または一部を実行するように構成された1つまたは複数の追加の機能モジュール1218と、を含む。
【0066】
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバ、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、もしくは任意の他の適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして提示することは、本発明の範囲を決して限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図している。実際、本明細書に開示する方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化された形態および分散された形態で実装されてもよい。
【0067】
本明細書に記載されたシステム特徴のいくつかは、それらの実装の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。モジュールはまた、様々なタイプのプロセッサによって実行するためのソフトウェアに少なくとも部分的に実装されてもよい。遂行可能コードの識別されたユニットは、例えば、オブジェクト、プロシージャ、または関数として編成することができるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に共に配置される必要はないが、論理的に共に結合されたときにモジュールを含み、モジュールの記載された目的を達成する異なる場所に格納された異なる命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、それは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または本発明の範囲から逸脱することなくデータを格納するために使用される任意の他のそのような非一時的コンピュータ可読媒体であってもよい。実際、遂行可能コードのモジュールは、単一の命令、または多くの命令であってもよく、いくつかの異なるコードセグメント、異なるプログラム、およびいくつかのメモリデバイスに分散されてもよい。同様に、動作データは、本明細書ではモジュール内で識別および図示されてもよく、任意の適切な形態で具現化され、任意の適切なタイプのデータ構造内に編成されてもよい。動作データは、単一のデータセットとして収集されてもよく、または異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、システムまたはネットワーク上の電子信号としてのみ存在してもよい。
【0068】
上記は、本開示の原理を例示しているにすぎない。したがって、当業者は、本明細書に明示的に記載または図示されていないが、本開示の原理を具現化し、その趣旨および範囲内に含まれる様々な構成を考案することができることが理解されよう。さらに、本明細書に列挙されたすべての例および条件付き言語は、主に、読者が本開示の原理および本技術を促進するために本発明者によって寄与された概念を理解するのを助けるための教育目的のためのものにすぎず、そのような具体的に列挙された例および条件に限定されないと解釈されるべきである。さらに、本開示の原理、態様、および実施形態、ならびにその特定の例を列挙する本明細書のすべての記述は、その構造的および機能的均等物の両方を包含することを意図している。さらに、そのような均等物は、現在知られている均等物および将来開発される均等物の両方を含むことが意図される。