(57)【特許請求の範囲】
【請求項１】
実行時にビジネスプロセスロギング情報をフィルタリングするためのコンピュータ実施方法であって、
少なくとも1つのエンティティの実行に関連するロギング情報のセットを受け取るステップであって、前記少なくとも1つのエンティティが、定義されたビジネスプロセスを実施するためのビジネスプロセスエンティティのセットを定義するビジネスプロセスモデルに関連する、ステップと、
前記少なくとも1つのエンティティに関連するプロセスログフィルタ規則を識別するステップであって、前記少なくとも1つのエンティティに関連する前記プロセスログフィルタ規則が、前記ビジネスプロセスモデルの特定の実行インスタンス内の各エンティティに関連するプロセスログフィルタ規則を含み、前記プロセスログフィルタ規則が、前記ビジネスプロセスモデルの前記特定の実行インスタンスに関連するランタイムコンテキストに少なくとも一部基づき、前記ランタイムコンテキストは、実行時のシステム内のランタイム状況に関する情報を示す、ステップと、
前記識別されたプロセスログフィルタ規則を、前記受け取られたロギング情報セットに適用して、前記少なくとも1つのエンティティの実行に関連するフィルタリングされたロギング情報のセットを生成するステップと、
前記フィルタリングされたロギング情報セットを、前記少なくとも1つのエンティティの前記実行に関連するプロセスログに格納するステップとを含み、
前記少なくとも1つのエンティティにロギング粒度が設計時に割り当てられ、前記少なくとも1つのエンティティに関連する前記プロセスログフィルタ規則を識別するステップが、設計時に前記少なくとも1つのエンティティに割り当てられた前記ロギング粒度に少なくとも一部基づいて、プロセスログフィルタ規則のセットから特定のプロセスログフィルタ規則を識別するステップを含み、前記ロギング粒度は、前記ビジネスプロセスモデル内に含まれる特定のエンティティの相対的な重要度に基づく、方法。
【請求項２】
前記少なくとも1つのエンティティに関連するプロセスログフィルタ規則を識別するステップが、
前記少なくとも1つのエンティティに関連する少なくとも1つのエンティティプロパティを識別するステップと、
前記少なくとも1つの識別されたエンティティプロパティに対応する少なくとも1つのプロセスログフィルタ規則を決定するステップとを含む、請求項1に記載の方法。
【請求項３】
前記フィルタリングされたロギング情報セットが、前記少なくとも1つのエンティティの実行に関連する空のロギング情報セットを備え、前記受け取られたロギング情報セットが前記識別されたプロセスログフィルタ規則によってフィルタリングされると、前記空のロギング情報セットが生成され、前記空のロギング情報セットは、前記プロセスログフィルタ規則の要件または仕様を満たさないロギング情報が、前記ロギング情報セットから取り除かれ、無視され、または廃棄されたロギング情報セットである、請求項1に記載の方法。
【請求項４】
前記フィルタリングされたロギング情報セットを前記プロセスログに格納するステップが、
前記少なくとも1つのエンティティに関連する識別子を生成するステップと、
前記フィルタリングされたロギング情報セットを前記プロセスログに格納するステップとを含み、前記フィルタリングされたロギング情報セットが、前記少なくとも1つのエンティティに関連する前記生成された識別子を含む、請求項1に記載の方法。
【請求項５】
前記少なくとも1つのエンティティに関連する前記プロセスログフィルタ規則が、前記ビジネスプロセスモデル内の各エンティティに関連するプロセスログフィルタ規則を含む、請求項1に記載の方法。
【請求項６】
前記ビジネスプロセスモデルの前記特定の実行インスタンスに関連する前記ランタイムコンテキストが、前記ビジネスプロセスモデルの前記特定の実行インスタンスの目的に関する情報を含む、請求項1に記載の方法。
【請求項７】
有形の非一時的な媒体上で具現化されたコンピュータ読取り可能命令を備える、実行時にビジネスプロセスロギング情報をフィルタリングするためのコンピュータプログラムであって、前記命令が、実行されたとき、
少なくとも1つのエンティティの実行に関連するロギング情報のセットを受け取るステップであって、前記少なくとも1つのエンティティが、定義されたビジネスプロセスを実施するためのビジネスプロセスエンティティのセットを定義するビジネスプロセスモデルに関連する、ステップと、
前記少なくとも1つのエンティティに関連するプロセスログフィルタ規則を識別するステップであって、前記少なくとも1つのエンティティに関連する前記プロセスログフィルタ規則が、前記ビジネスプロセスモデルの特定の実行インスタンス内の各エンティティに関連するプロセスログフィルタ規則を含み、前記プロセスログフィルタ規則が、前記ビジネスプロセスモデルの前記特定の実行インスタンスに関連するランタイムコンテキストに少なくとも一部基づき、前記ランタイムコンテキストは、実行時のシステム内のランタイム状況に関する情報を示す、ステップと、
前記識別されたプロセスログフィルタ規則を、前記受け取られたロギング情報セットに適用して、前記少なくとも1つのエンティティの実行に関連するフィルタリングされたロギング情報のセットを生成するステップと、
前記フィルタリングされたロギング情報セットを、前記少なくとも1つのエンティティの前記実行に関連するプロセスログに格納するステップとを行うように動作可能であり、
前記少なくとも1つのエンティティにロギング粒度が設計時に割り当てられ、前記少なくとも1つのエンティティに関連する前記プロセスログフィルタ規則を識別するステップが、設計時に前記少なくとも1つのエンティティに割り当てられた前記ロギング粒度に少なくとも一部基づいて、プロセスログフィルタ規則のセットから特定のプロセスログフィルタ規則を識別するステップを含み、前記ロギング粒度は、前記ビジネスプロセスモデル内に含まれる特定のエンティティの相対的な重要度に基づく、コンピュータプログラム。
【請求項８】
前記少なくとも1つのエンティティに関連するプロセスログフィルタ規則を識別するステップが、
前記少なくとも1つのエンティティに関連する少なくとも1つのエンティティプロパティを識別するステップと、
前記少なくとも1つの識別されたエンティティプロパティに対応する少なくとも1つのプロセスログフィルタ規則を決定するステップとを含む、請求項7に記載のコンピュータプログラム。
【請求項９】
前記フィルタリングされたロギング情報セットが、前記少なくとも1つのエンティティの実行に関連する空のロギング情報のセットを備え、前記受け取られたロギング情報セットが前記識別されたプロセスログフィルタ規則によってフィルタリングされると、前記空のロギング情報セットが生成され、前記空のロギング情報セットは、前記プロセスログフィルタ規則の要件または仕様を満たさないロギング情報が、前記ロギング情報セットから取り除かれ、無視され、または廃棄されたロギング情報セットである、請求項7に記載のコンピュータプログラム。
【請求項１０】
前記フィルタリングされたロギング情報セットを前記プロセスログに格納するステップが、
前記少なくとも1つのエンティティに関連する識別子を生成するステップと、
前記フィルタリングされたロギング情報セットを前記プロセスログに格納するステップとを含み、前記フィルタリングされたロギング情報セットが、前記少なくとも1つのエンティティに関連する前記生成された識別子を含む、請求項7に記載のコンピュータプログラム。
【請求項１１】
前記少なくとも1つのエンティティに関連する前記プロセスログフィルタ規則が、前記ビジネスプロセスモデル内の各エンティティに関連するプロセスログフィルタ規則を含む、請求項7に記載のコンピュータプログラム。
【請求項１２】
前記ビジネスプロセスモデルの前記特定の実行インスタンスに関連する前記ランタイムコンテキストが、前記ビジネスプロセスモデルの前記特定の実行インスタンスの目的に関する情報を含む、請求項7に記載のコンピュータプログラム。
【請求項１３】
複数のビジネスプロセスモデルを格納するように動作可能なメモリであって、それぞれのビジネスプロセスモデルが、定義されたビジネスプロセスを実施するためのビジネスプロセスエンティティのセットを定義する、メモリと、
少なくとも1つのエンティティの実行に関連するロギング情報のセットを受け取るステップであって、前記少なくとも1つのエンティティが、前記複数のビジネスプロセスモデルからの特定のビジネスプロセスモデルに関連する、ステップと、
前記少なくとも1つのエンティティに関連するプロセスログフィルタ規則を識別するステップであって、前記少なくとも1つのエンティティに関連する前記プロセスログフィルタ規則が、前記ビジネスプロセスモデルの特定の実行インスタンス内の各エンティティに関連するプロセスログフィルタ規則を含み、前記プロセスログフィルタ規則が、前記ビジネスプロセスモデルの前記特定の実行インスタンスに関連するランタイムコンテキストに少なくとも一部基づき、前記ランタイムコンテキストは、実行時のシステム内のランタイム状況に関する情報を示す、ステップと、
前記識別されたプロセスログフィルタ規則を、前記受け取られたロギング情報セットに適用して、前記少なくとも1つのエンティティの実行に関連するフィルタリングされたロギング情報セットを生成するステップと、
前記フィルタリングされたロギング情報セットを、前記少なくとも1つのエンティティの前記実行に関連するプロセスログに格納するステップと
を行うように動作可能な1つまたは複数のプロセッサと
を備え、
前記少なくとも1つのエンティティにロギング粒度が設計時に割り当てられ、前記少なくとも1つのエンティティに関連する前記プロセスログフィルタ規則を識別するステップが、設計時に前記少なくとも1つのエンティティに割り当てられた前記ロギング粒度に少なくとも一部基づいて、プロセスログフィルタ規則のセットから特定のプロセスログフィルタ規則を識別するステップを含み、前記ロギング粒度は、前記ビジネスプロセスモデル内に含まれる特定のエンティティの相対的な重要度に基づく、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、高性能で目的駆動型のビジネスプロセスのロギングのためのソフトウェア、コンピュータシステムおよびコンピュータ実施方法に関する。
【背景技術】
【０００２】
組織は、たとえば取引先、流通センタ、アウトソーシング企業、コンプライアンス監査役、銀行およびロジスティクスプロバイダなど、外部の事業体と事業活動を行うことによって、それ自体の組織内と企業境界間の両方で運営、取引およびビジネスプロセスを実施する。多くのビジネスモデルは、単一の企業ビジネスモデルから、相互接続されネットワーク化されたビジネスモデルへと発展してきた。実行の過程において、ビジネスプロセスは、その操作をプロセスログに記録する。個々のプロセス参加者、事業体およびユーザは、実行されたビジネスプロセスの様々な操作の有効性および成功を判断するために、プロセスログを調査することができる。
【０００３】
ビジネスプロセスモデリング表記(BPMN: business process modeling notation)は、ビジネスプロセスモデリングのための規格であり、様々な技術的知識および能力の個人が一般的に理解できる形で詳細なビジネスプロセスを設計し作成するために使用することができる。一般に、BPMNの目的は、ビジネスユーザにとって直観的に分かるものであるが、複雑なプロセス意味論を表現できる表記法を提供することによって、技術系ユーザとビジネスユーザの両方のためのビジネスプロセス管理をサポートすることである。さらに、BPMN仕様は、ビジネスプロセス実行言語(BPEL: Business Process Execution Language)エンジンと共に使用して、実行言語の基礎となる構成体に表記法の図形間の対応付けを行うことができる。他の場合では、BPMNを解釈し、処理し、理解するために、BPMNベースのプロセス実行ランタイムを使用することができる。BPMNは技術系ユーザとビジネスユーザの両方によって理解可能であるので、BPMNを使用して、ネットワーク化されたビジネスプロセスを記述することができ、様々なエンティティからのユーザのための理解の共通点が提供される。BPMN設計型のビジネスプロセスは、開発または生産の実行環境においてシステムの操作および/または任意の人間対話を実行時に記録するために、ロギング機構またはモジュールに関連付けることができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、実行時にビジネスプロセスロギング情報をフィルタリングするためのシステム、ソフトウェアおよびコンピュータ実施方法を含む。あるプロセスは、少なくとも1つのエンティティの実行に関連するロギング情報のセットを受け取るステップであって、少なくとも1つのエンティティが、定義されたビジネスプロセスを実施するためのビジネスプロセスエンティティのセットを定義するビジネスプロセスモデルに関連する、ステップと、エンティティに関連するプロセスログフィルタ規則を識別するステップと、エンティティの実行に関連する、フィルタリングされたロギング情報のセットを生成するために、受け取られたロギング情報セットに、識別されたプロセスログフィルタ規則を適用するステップと、エンティティの実行に関連するプロセスログにフィルタリングされたロギング情報セットを格納するステップとを含む。エンティティに関連するプロセスログフィルタ規則を識別するステップは、エンティティプロパティを識別し、識別されたエンティティプロパティに対応する少なくとも1つのプロセスログフィルタ規則を決定するステップを含んでよい。
【０００５】
それぞれのデータを処理し変形させる有形の媒体で具現化されたコンピュータ実施ソフトウェアとして一般的に述べられているが、諸態様の一部またはすべては、コンピュータ実施方法であってもよいし、それぞれのシステム、または述べられたこの機能性を実施するための他のデバイスにさらに含まれてもよい。本開示のこれら他の態様および実施形態の詳細は、添付の図面および下記の説明に示されている。本開示の他の特徴、目的および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【０００６】
【図１】ビジネスプロセスのための高性能で目的駆動型のロギングを提供するシステムの様々な特徴を実施するための例示的な環境を示す図である。
【図２Ａ】図1に述べられたシステムなど、適切なシステム内のビジネスプロセスエンティティうちの1つまたは複数に特定のロギング粒度を自動的に割り当てる前のビジネスプロセスモデル表記法(BPMN)に示された例示的なビジネスプロセスのブロック図である。
【図２Ｂ】例示的なビジネスプロセスの様々なビジネスプロセスエンティティにロギング粒度のセットが割り当てられた後の、図2Aに示された例示的なビジネスプロセスのブロック図である。
【図３】設計時に1つまたは複数のビジネスプロセスエンティティにプロセスロギング粒度を適用するための例示的なプロセスのフローチャートである。
【図４】特定のビジネスプロセスエンティティに適用する動的なプロセスロギング粒度を実行時に決定するための例示的なプロセスのフローチャートである。
【図５】特定のビジネスプロセスの実行の間に受け取られた少なくとも1つのプロセスログ情報セットに実行時プロセスログフィルタを適用するための例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【０００７】
本開示は一般に、ビジネスプロセスのための高性能で目的駆動型のロギング、ならびに実行時のビジネスプロセスロギングの結果に関連する柔軟なフィルタリング基準の適用を提供するためのコンピュータシステム、ソフトウェア、およびコンピュータ実施方法について述べる。本開示は、それぞれ異なるタイプのビジネスプロセスエンティティによって生成された情報のロギング、ならびに関連するプロセスログ内に持続するその情報のレベル、量、詳細および/または粒度を向上させるためのツールおよびプロセスを提供する。一般に、ビジネスプロセスログは、プロセスの実行の事後検査、ならびに「生きている」(すなわち、まだ終了していない)プロセスインスタンスの実行の検査を可能にする。プロセスログ内に格納された情報は、接続されたまたは関連したアプリケーションおよびシステム内でビジネスプロセスがもたらした効果を理解し、プロセスおよび実施されたそのエンティティがビジネスプロセスの実行中に生じた誤りおよび予想外の振舞いをどのように検出したかについての監査証跡を提供し、プロセスによって消費されたリソースを識別し、ユーザ対話をレビューし、実行されたプロセスステップのタイムリーな順序を確認するために使用することができる。一部のシステムでは、ビジネスプロセス自体に関連して実行された各エンティティについて類似のレベルおよび深さの情報が収集されるように、ビジネスプロセスのために単一のレベルのプロセスロギング粒度が提供されてよい。しかし、場合によっては、特定のビジネスプロセスエンティティ(またはビジネスプロセス全体)で必要な粒度のレベルは、とりわけ、他のプロセス、プロセスエンティティ、プロセスインスタンスとは異なることがある。さらに、プロセスログが使用されている目的によって、その目的を適切に実施するのにロギングプロセスによって生成する必要がある情報のレベルが決まることもある。様々な目的のために、ロギングされたビジネスプロセスイベントの頻度、数、詳細レベルを含めて、プロセスロギング粒状のレベルが異なることがある。さらに、プロセス固有のロギング粒度は、現在処理されているビジネスプロセスエンティティ(すなわちアクティビティ、ゲートウェイ、イベントなど)、ビジネスプロセス実行に関連する意味論的プロセスフラグメント、または他のコンテキスト関連パラメータなど、他の影響に依存することもある。プロセスロギング粒度の細かいレベルは、ビジネスプロセス全体の完全なプロセスログおよび/または実行証跡を提供できるが、いくつかの性能関連の不利益を含めて、基礎となるシステムにおける追加の問題の原因となり得る。たとえば、ビジネスプロセス内のすべてのエンティティが細かい粒度でロギングされる場合、ログエントリ格納のためのデータベース空間の消費と、プロセス実行速度の両方が悪化する。さらに、ロギングのために情報を組み立て準備することは、CPUサイクルおよびメインメモリを含めて、大きい実行時リソースを消費することがある。したがって、システムのトータルコストオブオーナーシップ(TCO: total cost of ownership)は、プロセスログの必要とされる実際の要件により正当であると認められることなしに増加する。
【０００８】
本開示は、部分的には、ビジネスプロセスインスタンス全体に関連する設計時決定と実行時決定の組合せ、ならびに個々のビジネスプロセスエンティティ自体に関連する規則および決定の1つまたは複数のセットに基づいて、ビジネスプロセスインスタンス内のそれぞれ異なるエンティティにそれぞれ異なるプロセスロギング粒度を自動的に割り当てることができる機構およびツールを提供することによって、これらの問題に対処する。様々なロギング粒度の自動割当てに加えて、適切なレベルのアクセスを有するユーザおよび管理者が、特定のビジネスプロセスインスタンスの特定の必要性または関心に従って自動割当てを手動で修正することができる。場合によっては、これらの変更は、監視され、自動割当てに関連する1つまたは複数の規則セットをさらに修正するためのフィードバックとして使用されてよく、したがって、本開示の学習要素が提供される。
【０００９】
本開示のツールは、2つのレベルのプロセスロギング拡張を提供する。まず、ビジネスプロセスモデル(BPM)およびその関連するエンティティのために、設計時ベースの粒度概念が導入される。たとえばBPMエンティティは、ビジネスプロセスインスタンスが実行される前に、1つまたは複数の属性、およびエンティティに関連する情報に基づいて、設計時に特定の粒度レベルに関連付けられる。低、中および高の粒度レベルや、「情報」、「警告」および「エラー」などの重大度ベースの粒度レベルなど、様々なレベルのロギング粒度が提供されてよい。例に述べられた3つのレベルより多いまたは少ないレベルを含めて、追加および異なる粒度レベルを、様々な実装形態で割り当て、または使用することができる。粒度決定は、(関連するBPMに関連する1つまたは複数の規則に基づいて)基礎となるメタモデルエンティティ割当てから自動的に導出することができ、プロセスエンティティタイプ(たとえばアクティビティ、イベント、ゲートウェイなど)および他の属性など、プロセスモデルで使用可能な情報に基づいて導出された、自動的に導出された粒度は、特定のビジネスプロセスに関連する技術者またはユーザによって手動で修正し上書きすることができる。それぞれ異なるタイプの操作が、それぞれ異なる粒度に適宜、関連付けられてよい。たとえば、決定ゲートウェイエンティティは、結果またはそれに関連付けられた関連アクションをほとんどもたないことがあるので、低レベルのプロセスロギング粒度に関連付けられてよい。逆に、特定のビジネスプロセスインスタンスの実行に対して直接の影響を有するユーザタスクは、たとえば監査のために、ユーザおよび管理者がユーザタスクの操作および効果を後にレビューできることを保証するために、高い粒度レベルのプロセスロギングに関連付けられてよい。場合によっては、プロセスロギング粒度は、1つまたは複数の実行時コンテキスト固有の値に応じて、実行時に最終的に決定される1組の動的な値として割り当てられてよい。たとえば、ユーザタスクが特定の入出力Aをもたらす場合は、関連するユーザタスクの粒度は、「中」と設定されてよく、ユーザタスクが特定の入出力Bをもたらす場合は、そのタスクの粒度は、「高」と設定されてよい。換言すると、設計時に、重大度または粒度レベルが決定される。その決定は、静的割当てであってもよいし、モデルデータを考慮に入れてもよい。実行時、その重大度または粒度レベルは、ログレベルに対して突き合わされ、このログレベルは、プロセスインスタンスに割り当てられてもよいし、ユーザによって定義された規則から計算されてもよい
【００１０】
第2の部分として、本開示で述べられたツールは、異なるロギング粒度、またはロギングされた情報内に含まれた特定の情報のための追加のフィルタとして働くビジネスプロセス管理スイート(BPMS: business process management suite)ランタイムのロギングレベルを構成することをさらに提供する。具体的には、実行時フィルタは、(ロギングイベントを引き起こしたプロセスエンティティの)重大度または粒度レベルが所定のかつ/または事前定義された値またはログレベル以上であるかどうかの事実に基づいて、イベントがロギングされるかどうか決定する。実行時ログレベルフィルタは、初期プロセスロギング粒度割当てが行われた後に受け取られまたは適用された規則または情報の第2のセットに基づいてよい。実行時フィルタのログレベルは、同じビジネスプロセスのそれぞれ異なるインスタンスのロギングを特定の実行環境に、または特定のユーザに適応させるために使用することができる。一例では、実行時フィルタの関連するログレベルは、ロギングされた情報の特定のセットがエラー関連情報またはカテゴリの特定のセットに対応する場合など、ビジネスエンティティのロギング情報に関連する事前定義されたパラメータが満たされる場合にだけ情報を格納するように適応されてよい。一般に、実行時フィルタのログレベルは、ログレベルおよび受け取られたロギング情報に関連する情報に基づいて静的であってもよいし、実行時に動的であってもよい。
【００１１】
2つの手法、(1)プロセスモデルまたはインスタンスに適用された設計時ロギング粒度/重大度、および(2)特定のプロセスインスタンスおよびロギングイベントに適用されたログレベル実行時フィルタは、一般には別々に適用されるが、それらは、実行時に収集された情報量をさらに精緻化しながら設計時に特定のプロセスロギング粒度を適用するために補足的なやり方で適用することができる。第1の手法は、特定のビジネスプロセスエンティティについて最初に記録または監視されたデータ量を減少させることができるが、第2の手法は、関連するデータベースまたはデータウェアハウスに格納されたロギング情報の頻度を減らすことができ、それによって、全体的なロギングおよびシステム性能への利益が生じる。ある場合では、手法の組合せは、(1)イベントがロギングされるかどうかのはい/いいえの判定をもたらす純粋なフィルタ、および(2)特定のイベントのログに至る詳細レベルに関する決定を含んでよい。
【００１２】
ログレベルは、様々なやり方で構成することができる。たとえば、同じロギングレベルは、(1)特定のBPMSに関連するすべてのビジネスプロセス、(2)特定のビジネスプロセステンプレートまたはバージョン、あるいは(3)特定のプロセスインスタンス内のエンティティに適用されてよい。あるいは、ログレベルは、コンポーネント階層のレベル(すなわち、プロセステンプレートが、それぞれ異なるプロジェクトまたはパッケージへと編成される)について定義されてよく、それぞれ異なるタイプのログレベルが、コンポーネントサブツリーまたはネストされたコンポーネントおよびアクション全体に下方に伝播する。さらに、ログレベルは、プロセス使用法の依存性から導出することができ、サブフローは、そのロギングレベルを親フローから継承する。さらに、特定のエンティティのためのログレベルは、プロセステンプレート、データコンテキスト、特定のプロセスインスタンス、特定のプロセスインスタンスと対話する関与する人またはシステム、ならびに他の適切な情報を含めて、いずれかの使用可能なコンテキストデータに作用できる特定のビジネス規則から決定することができる。設計時に提供された初期ログレベルと、実行時に適用された実行時フィルタの両方が、同じビジネスプロセスのそれぞれ異なるインスタンスを含めて、それぞれ異なる実装形態のビジネスプロセスの一部またはすべてに関連付けられてよい。
【００１３】
本開示には多くの利点がある。まず、本明細書に述べられたツールは、事前定義された規則または規則セットに基づいて初期設定のロギング粒度または重大度を設計時に自動的に割り当てることを可能にし、この規則または規則セットは、ビジネスプロセス内に定義されたイベントに関連するロギング粒度または重大度レベルを決定する1つまたは複数の規則に、ビジネスプロセスおよび関連するエンティティを定義する情報を適用することができる。さらに、初期設定のロギング粒度の自動割当ては、(必要に応じたロギング要件により)特定のビジネスプロセスをカスタマイズするために、適切なユーザまたはエンティティによって手動で修正することができる。手動の修正は、学習機構に組み込むこともでき、この学習機構は、一部の実装形態では、将来の使用に備えて事前定義された規則のうちの1つまたは複数を更新するために使用することができる。実行時フィルタは、プロセスログに格納されるログエントリに関連する詳細量をパージし、かつ/または制限し、したがってデータベース量増大を減少させ、性能全体を向上させることができる。一例では、実行時フィルタは、法的規制によってこうしたアクションが禁止されている場合など、ロギングされないイベントから機密情報(すなわちクレジットカード番号など)を取り除くための規則を実行することができる。この解決策は、とりわけ誤り探索、監査証跡および追跡を含めた様々なロギング使用のケースにまとめて対処し、プロセスログに格納される集中的な情報セットに基づいて、よりユーザフレンドリーなプロセスログを提供することができる。
【００１４】
図1は、ビジネスプロセスのための高性能で目的駆動型のロギングを提供するシステムの様々な特徴を実施するための例示的な環境100を示している。示された環境は、少なくとも1つのビジネスプロセスサーバ102と、1つまたは複数のクライアント150、171とを含み、またはそれに通信可能に結合される。クライアント150、171およびビジネスプロセスサーバ102のうちの少なくとも一部は、ネットワーク177を横断して、またはそれを介して通信することができる。一般に、環境100は、より高いシステム性能およびより集中的なビジネスプロセスロギング能力を提供する目的駆動型のビジネスプロセスロギングプロセスを提供できるシステムの例示的な構成を示している。一代替実施形態では、ビジネスプロセスサーバ102および/またはクライアント150、171内に示された要素は、異なるおよび/または追加のサーバ、クライアント、ネットワーク、あるいは図1に示されたもの以外の位置に含まれてもよいし、それに関連付けられてもよい。たとえば、ビジネスプロセスサーバ102内に示されたコンポーネントは、複数のサーバ、クラウドベースのネットワーク、またはビジネスプロセスサーバ102から(たとえば直接に、またはネットワーク177を介して)アクセス可能な他の位置に含まれてもよい。
【００１５】
一般に、ビジネスプロセスサーバ102は、1つまたは複数のビジネスプロセスアプリケーション132を介してビジネスプロセスを格納し実行する任意のサーバであり、ビジネスプロセスアプリケーション132が、ビジネスプロセスモデル114の少なくとも1つのインスタンスに関連付けられる。たとえば、それぞれのサーバ102は、Enterprise Java（登録商標）Beans (EJB)、J2EE Connector Architecture (JCA)、Java（登録商標） Messaging Service (JMS)、Java（登録商標） Naming and Directory Interface (JNDI)およびJava（登録商標） Database Connectivity (JDBC)など、Java（登録商標）技術を含むJava（登録商標） 2 Platform, Enterprise Edition (J2EE)準拠のアプリケーションサーバであってよい。一部の例では、各ビジネスプロセスサーバ102は、複数の様々な他のアプリケーションを格納することができ、他の場合では、各ビジネスプロセスサーバ102は、特定のビジネスプロセスアプリケーション132およびその関連する機能性を格納し実行するための専用のサーバ、ならびに1組の特定のビジネスプロセスアプリケーション132であってよい。場合によっては、ビジネスプロセスサーバ102は、ウェブサーバを備えてもよいし、ウェブサーバに通信可能に結合されてもよく、そのサーバ102に関連する特定のビジネスプロセスアプリケーション132が、対応するビジネスプロセスアプリケーション132のプログラムされたタスクまたは操作を実施し、ビジネスプロセスとのユーザ対話を提供するために関連するクライアント150、171のうちの1つまたは複数のクライアント上でアクセスされ実行されるウェブベース(またはウェブアクセス可能な)アプリケーションを表す。
【００１６】
ハイレベルでは、ビジネスプロセスサーバ102は、環境100に関連するデータおよび情報を受信し、送信し、処理し、格納し、または管理するように動作可能な電子コンピューティングデバイスを備える。図1に示されたビジネスプロセスサーバ102は、1つまたは複数のクライアント150、171(ならびにビジネスプロセスサーバ102と対話する他のいずれかのエンティティまたはシステム)からアプリケーション要求を受信し、受信された要求に、関連するビジネスプロセスアプリケーション132で前記要求を処理することによって応答し、ビジネスプロセスアプリケーション132から、要求側クライアント150、171または他の要求側システムに適切な応答を返送する役割を担うことができる。ビジネスプロセスアプリケーション132は、関連するビジネスプロセスサーバ102にローカルにアクセスするユーザからのローカルの要求を処理し応答することもできる。したがって、図1に示された外部クライアント150、171からの要求に加えて、特定のビジネスプロセスアプリケーション132に関連する要求を、内部ユーザ、外部または第三者の顧客、および他の関連するビジネスプロセスアプリケーション、ならびに他の任意の適切なエンティティ、個人、システムまたはコンピュータから送ることもできる。場合によっては、ビジネスプロセスアプリケーション132は、ネットワーク化された、またはクラウドベースのビジネスプロセスに関連する機能性を実行するウェブベースのアプリケーションであってよい。
【００１７】
本開示では、用語「コンピュータ」は、任意の適切な処理デバイスを包含するものである。たとえば、図1は、単一のビジネスプロセスサーバ102を示しているが、環境100は、任意の数のサーバ、ならびにサーバプールを含めて、サーバ以外のコンピュータを使用して実装することができる。確かに、ビジネスプロセスサーバ102は、たとえばブレードサーバ、汎用パーソナルコンピュータ(PC: personal computer)、マッキントッシュ、ワークステーション、UNIX（登録商標）ベースのワークステーション、または他の任意の適切なデバイスなど、任意のコンピュータまたは処理デバイスであってよい。換言すると、本開示は、汎用コンピュータ以外のコンピュータ、ならびに従来型のオペレーティングシステム伴わないコンピュータを企図する。さらに、示されたビジネスプロセスサーバ102は、Linux（登録商標）、UNIX（登録商標）、Windows（登録商標）、Mac OSまたは他の任意の適切なオペレーティングシステムを含めて、任意のオペレーティングシステムを実行するように適応されてよい。
【００１８】
図1に示された実装形態では、ビジネスプロセスサーバ102は、インターフェース105と、プロセッサ108と、メモリ111と、ビジネスプロセスアプリケーション132とを含む。示されたビジネスプロセスサーバ102は、ビジネスプロセスモデル粒度割当てエンジン138、ログフィルタエンジン141および解析規則更新エンジン144を含めて、いくつかの追加のコンポーネントをさらに含む。場合によっては、ビジネスプロセスサーバ102およびそのコンポーネントは、設計時ツール(粒度割当てエンジン138はその一部である)、および実行時エンジン(ログフィルタエンジン141はその一部である)へと物理的に分離することができる。図1の例示的な環境100では単一のコンポーネントとして示されているが、代替実装形態は、ビジネスプロセスサーバ102を、それに応じて複数の部品または部分を備えるものとして示してもよい。
【００１９】
インターフェース105は、ネットワーク177に接続された(環境100内を含めた)クライアントサーバまたは他の分散環境内の他のシステム(たとえば関連するクライアント150、171、ならびにネットワーク177に通信可能に結合された他のシステム)と通信するために、ビジネスプロセスサーバ102によって使用される。図1は、サーバとクライアントの両方の環境を示しているが、クラウドコンピューティングネットワークをも表し得る。ビジネスプロセスアプリケーション132、ならびにビジネスプロセスアプリケーション132に関連付けられた、または関連する他のアプリケーションの1つまたは複数の追加または代替のインスタンスを実施または実行する複数のビジネスプロセスサーバ102を含めて、基礎となるシステムの柔軟性向上を可能にするために、示された環境100の様々な他の実装形態が提供されてよい。それらの場合では、それぞれ異なるビジネスプロセスサーバ102は、クラウドベースのネットワークを介して、またはネットワーク177によって提供された接続によって互いに通信することができる。示された環境に戻ると、インターフェース105は一般に、適切な組合せのソフトウェアおよび/またはハードウェアで符号化されており、ネットワーク177と通信するように動作可能な論理を備える。より具体的には、インターフェース105は、示された環境100の中または外でネットワーク177またはインターフェースのハードウェアが物理信号を通信できるように、通信に関連する1つまたは複数の通信プロトコルをサポートするソフトウェアを備えてよい。
【００２０】
一般に、ビジネスプロセスサーバ102は、ネットワーク177に通信可能に結合することができ、このネットワーク177は、環境100のコンポーネント間(すなわちビジネスプロセスサーバ102と、クライアント150、171のうちの1つまたは複数との間)、ならびに図1に示されていないものを含めて、ネットワーク177に通信可能に結合された追加のクライアント、サーバまたは他のデバイスなど、他の任意のローカルまたはリモートコンピュータとの無線または有線通信を円滑に進める。示された環境では、ネットワーク177は、単一のネットワークとして示されているが、ネットワーク177の少なくとも一部が送信側と受信者の間の通信を円滑に進めることができる限り、本開示の範囲から逸脱せずに、2つ以上のネットワークで構成されてよい。場合によっては、ビジネスプロセスサーバ102に関連するコンポーネントのうちの1つまたは複数は、1つまたは複数のクラウドベースのサービスまたは操作としてネットワーク177内に含まれてよい。ネットワーク177は、企業またはセキュリティ保護されたネットワークのすべてまたは一部であってよいが、別の場合では、ネットワーク177の少なくとも一部は、インターネットへの接続を表すことができる。場合によっては、ネットワーク177の一部は、仮想プライベートネットワーク(VPN: virtual private network)であってよい。さらに、ネットワーク177のすべてまたは一部は、有線リンクを備えてもよいし、無線リンクを備えてもよい。例示的な無線リンクは、802.11a/b/g/n、802.20、WiMaxおよび/または他の適切な無線リンクを含んでよい。換言すると、ネットワーク177は、示された環境100内外の様々なコンピューティングコンポーネント間の通信を円滑に進めるように動作可能な任意の内部または外部ネットワーク、複数のネットワーク、サブネットワーク、またはその組合せを包含する。ネットワーク177は、たとえば、インターネットプロトコル(IP: Internet Protocol)パケット、フレームリレーフレーム、非同期転送モード(ATM: Asynchronous Transfer Mode)セル、音声、ビデオ、データ、および他の適切な情報をネットワークアドレス間で通信してよい。ネットワーク177は、1つまたは複数のローカルエリアネットワーク(LAN: local area network)、無線アクセスネットワーク(RAN: radio access network)、メトロポリタンエリアネットワーク(MAN: metropolitan area network)、広域ネットワーク(WAN: wide area network)、インターネットのすべてまたは一部、ならびに/あるいは1つまたは複数の位置の1つまたは複数の他の任意の通信システムを含むこともできる。しかし、ネットワーク177は、本開示のすべての実装形態において必要なコンポーネントであるとは限らない。
【００２１】
図1に示されたように、ビジネスプロセスサーバ102は、プロセッサ108を含む。ビジネスプロセスサーバ102内の単一のプロセッサ108として示されているが、特定のニーズ、要望、または環境100の特定の実施形態に従って2つ以上のプロセッサが、ビジネスプロセスサーバ102内で使用されてもよい。プロセッサ108は、中央制御装置(CPU: central processing unit)、ブレード、特定用途向け集積回路(ASIC: application specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA: field-programmable gate array)または別の適切なコンポーネントであってよい。一般に、プロセッサ108は、ビジネスプロセスサーバ102の操作、具体的には対応するビジネスプロセスアプリケーション132に関連する機能性を実施するために命令を実行し、データを操作する。一実装形態では、サーバのプロセッサ108は、1つまたは複数のクライアント150、171からの要求および命令を受け取り、それに応答するのに必要な機能性、ならびに関連するビジネスプロセスアプリケーション132、BPM粒度割当てエンジン138、ログフィルタエンジン141、および解析規則更新エンジン144の操作を実施するのに必要な機能性を実行する。
【００２２】
特定の実装形態に関係なく、「ソフトウェア」は、実行されるとき、少なくとも本明細書に述べられたプロセスおよび操作を実施するように動作可能な有形の非一時的な媒体内のコンピュータ読取り可能命令、ファームウェア、有線またはプログラムされたハードウェア、あるいはその任意の組合せを含んでよい。確かに、それぞれのソフトウェアコンポーネントは、C、C++、Java（登録商標）、Visual Basic、アセンブラ、Perl、第4世代言語の任意の適切なバージョン、ならびにその他を含めて、任意の適切なコンピュータ言語で完全にまたは部分的に書かれてよい。図1に示されたソフトウェアの一部は、様々なオブジェクト、方法または他のプロセスによって様々な特徴および機能性を実装する個々のモジュールとして示されているが、ソフトウェアはそうではなく、いくつかのサブモジュール、第三者サービス、コンポーネント、ライブラリなどを適宜含んでよいことが理解されよう。逆に、様々なコンポーネントの特徴および機能性は、単一のコンポーネントへと適宜組み合わせることができる。示された環境100では、それぞれのプロセッサ108は、関連するビジネスプロセスサーバ102上に格納された対応するビジネスプロセスアプリケーション132を実行する。場合によっては、特定のビジネスプロセスサーバ102が、2つ以上のビジネスプロセスアプリケーション132、ならびに2つ以上のビジネスプロセスサーバ102に渡って実行される1つまたは複数の分散アプリケーションの実行に関連付けられてよい。
【００２３】
ハイレベルでは、それぞれのビジネスプロセスアプリケーション132は、特定のビジネスプロセスサーバ102に関連する情報を実行し、変更し、削除し、生成し、別のやり方で管理できる任意のアプリケーション、プログラム、モジュール、プロセスまたは他のソフトウェアであり、また場合によっては、ビジネスプロセス関連イベントを実施し実行するビジネスプロセスである。具体的には、ビジネスプロセスは、イベントを送受信するために他のユーザ、アプリケーション、システムおよびコンポーネントと通信する。場合によっては、特定のビジネスプロセスアプリケーション132は、関連するクライアント150、171から受信された1つまたは複数の要求に応答して、またそれに関連して動作することができる。さらに、特定のビジネスプロセスアプリケーション132は、別のビジネスプロセスサーバ102に関連するビジネスプロセスアプリケーションを含めて、他のビジネスプロセスアプリケーション132から受信された1つまたは複数の要求に応答して、またそれに関連して動作してよい。場合によっては、それぞれのビジネスプロセスアプリケーション132は、ネットワーク177を介して(たとえばインターネットによって、ビジネスプロセスアプリケーション132に関連する1つまたは複数のクラウドベースのサービスを介して)、リモートクライアント150、171によってアクセスされ実行されたウェブベースのアプリケーションを表してよい。さらに、ビジネスプロセスサーバ102の内部にあるように示されているが、特定のビジネスプロセスアプリケーション132に関連する1つまたは複数のプロセスは、リモートで格納され、参照されまたは実行されてよい。たとえば、特定のビジネスプロセスアプリケーション132の一部は、リモートで呼び出されるビジネスプロセスアプリケーション132に関連するウェブサービスであってよく、ビジネスプロセスアプリケーション132の別の部分は、リモートクライアント150、171で処理するためにバンドルされたインターフェースオブジェクトまたはエージェントであってよい。さらに、特定のビジネスプロセスアプリケーション132のいずれかまたはすべては、本開示の範囲から逸脱せずに、別のソフトウェアモジュールまたは企業アプリケーション(図示せず)の子またはサブモジュールであってよ
い。さらに、特定のビジネスプロセスアプリケーション132の一部は、ビジネスプロセスサーバ102上で直接動作するユーザによって、また対応するクライアント150、171上で遠隔から実行され、またはアクセスされてよい。ビジネスプロセスアプリケーション132は、実行時ロギングモジュール135を含むものとして示されている。実行時ロギングモジュール135は、特定のビジネスプロセスインスタンスの実行の間に生成されたプロセスロギング情報の収集および格納に関連する操作を実施する。
【００２４】
ビジネスプロセスアプリケーション132は、任意の適切な表記法で表すことができるが、多くのビジネスプロセスアプリケーション132は、図2に示されたようにビジネスプロセスモデリング表記法(BPMN)で表すことができる。BPMN(現行版2.0)は、イベント、アクティビティ、決定、リソース、役割/ユーザ割当て、制御フロー、メッセージフロー、データフロー、および特定のプロセス全体の中で、またはそれに関連して実施される他のアイテムを表すよく知られている図形表記法を提供している。BPMNは、特定の基礎となるプログラミング言語に必ずしも結び付けられておらず、とりわけJAVA（登録商標）、ABAPまたはC++を含めた任意の適切なプログラミング言語と共に使用されてよい。いくつかのビジネスプロセスサーバ102は、BPMNをネイティブに、すなわちBPMNベースのプロセスモデルを別のプログラミング言語に変換することなしに実行することができる。
【００２５】
図2A〜図2Bは、ビジネスプロセスインスタンス201を含む例示的なビジネスプロセスアプリケーション132を具体的に示している。ビジネスプロセスインスタンス201は、BPMN規格の一部である様々な図形要素によって表されたビジネスプロセスモデルを含む。示されたビジネスプロセスインスタンス201に関連する開始イベント205は、ビジネスプロセスインスタンス201を始めるようにトリガされる。示されたように、インバウンドエージェント250は、開始イベント205をトリガし、ビジネスプロセスインスタンス201を初期化するために、内部または外部のソース(別のビジネスプロセスアプリケーション、ビジネスプロセスサーバ102に関連したユーザ132などを含めて)内部または外部ソースから受信された情報を解釈することができる。
【００２６】
開始イベント205がトリガされた後、第1のアクティビティ210が実施される。第1のアクティビティ210など、BPMN内のアクティビティは、モデル化されたビジネスプロセスまたはインスタンス内で実施される特定のプロセスまたはインスタンス内で実施される特定の作業またはプロセスを表す。示された例では、第1のアクティビティ210は、(アクティビティラベルの下の「+」符号によって示されるように)少なくとも1つのネストされたイベントまたはプロセスを含む。場合によっては、ネストされたイベントまたはプロセスは、1つまたは複数の追加のサブフロー、サブプロセス、または第1のアクティビティ210に関連する他のイベントをそれ自体が表す複数の様々グラフィカルな要素を含んでよい。
【００２７】
次に、第1のアクティビティ210に関連するデータ、または第1のアクティビティ210の結果は、中間イベント215に提供される。中間イベントは、開始イベントと終了イベントの間に生じるイベントを表し、対応する終了イベントの前にビジネスプロセスがビジネスプロセスの外側に情報を送り、またはビジネスプロセスの外からの情報を受け取る機会を提供することができる。たとえば、図2Aに示されたように、中間イベント215は、アウトバンドエージェント260に提供される特定の信号またはメッセージに関連付けることができ、アウトバンドエージェント260が、出ていく信号またはメッセージを適切な位置に向ける。環境100内では、アウトバウンドエージェント260は、中間イベント215によって提供された信号またはメッセージを処理し、さらなる処理のためにビジネスプロセスモデル201の外部の関連ビジネスプロセスまたは他のアクティビティにその情報を送ってよい。他の場合では、アウトバウンドエージェント260は、ビジネスプロセスサーバ102上で、またはそこから離れて同じ(または別の)ビジネスプロセスアプリケーション132内で実行される別のビジネスプロセスインスタンスに信号またはメッセージを直接送ることができる。場合によっては、第2のインバウンドエージェント(図示せず)は、図2Aに示されたように、中間メッセージングイベント215が「スロー側」または「送信側」の中間メッセージングイベント215に対して「キャッチ側」の中間メッセージングイベント215を表すように、ビジネスプロセスモデル201の中間メッセージングイベント215に追加の情報を提供することができる。
【００２８】
中間イベント215の操作を実施すると、ビジネスプロセスモデル201は、第2のアクティビティ220で継続し、この第2のアクティビティ220で、追加の処理または操作が実施される。ビジネスプロセスモデル201は、第2のアクティビティ220の後、第2の中間イベント225を含み、この第2のアクティビティ220で再び、ビジネスプロセスモデル201の現在の状況および状態に関連する情報が、アウトバウンドエージェント260に提供される。場合によっては、中間イベント225によって送られた信号またはメッセージは、前の中間イベント215と同じ位置、あるいは異なる位置または受信側に送ることができる。場合によっては、信号またはメッセージは、同じ位置に送られ得るが、異なる受信者に中継されてよい。
【００２９】
第2の中間イベント225の後に、決定ステップ230が提供される。決定ステップ230は、ゲートウェイと呼ばれることもあり、関連するビジネスプロセスモデル201内のデータフローに基づいて、ビジネスプロセスモデル201の制御フローをどのようにフォークし、分割し、他のやり方で指示するか決定するために使用することもできる。一部の場合(ここに図示せず)では、同時に実施される操作が別のアクティビティを実施するために組み合わされるときなど、ビジネスプロセスインスタンス201内の別個のフローを併合するために、ゲートウェイを使用することができる。決定ステップ230で受け取られた条件に基づいて、ビジネスプロセスモデル201は、第3のアクティビティ235または第4のアクティビティ240で継続する。しかし、他の場合では、決定ステップ230は、第3のアクティビティ235および第4のアクティビティ240の両方が実施されるように2つの別個の処理スレッドを生じさせるのではなく、ゲートウェイステップを表してよい。正確なアクティビティに関連する操作が実施される(または適切な場合は両方のアクティビティは実施される)と、ビジネスプロセスモデル201は、終了イベント245でビジネスプロセスを完了する。終了イベント245は、プロセスの結果を表し、また中間イベントに類似して、プロセスの結果を返すことができる。この例では、終了イベント245は、アウトバウンドエージェント260にプロセスの結果を提示し、次いで、このアウトバウンドエージェント260は、それらの結果をいずれかの適切な位置または受信側に転送することができる。場合によっては、示された単一のアウトバウンドエージェント260の代わりに、複数のアウトバウンドエージェントが使用されてよい。
【００３０】
図1に戻ると、ビジネスプロセスサーバ102内に、BPM粒度割当てエンジン138と、ログフィルタエンジン141と、解析規則更新エンジン144とを含む追加のモジュールが示されている。他のビジネスプロセスサーバ102に、モジュールのすべてが含まれることも、一部が含まれることもあり、いずれも含まれないこともある。さらに、モジュールの一部またはすべては、互いに組み合わせ、また別のコンポーネントによって提供された機能性へと統合することもできる。BPM粒度割当てエンジン138は、ビジネスプロセスアプリケーション132でインスタンス化され、それによって実行される1つまたは複数のビジネスプロセスモデル114に関連するそれぞれ異なるビジネスプロセスインスタンスに特定のロギング粒度を割り当てるために、ビジネスプロセスアプリケーション132と対話する。BPM粒度割当てエンジン138は、メモリ111に格納されたプロセス粒度規則セット120にアクセスし、特定のビジネスプロセスモデル114内のエンティティを識別し、設計時に、そのビジネスプロセスモデル114内に含まれたエンティティにプロセスロギング粒度の1つまたは複数のレベルを割り当てる。BPM粒度割当てエンジン138の操作は一般に、設計時に、設計時コンポーネントとして実施される。ロギング粒度レベルは、実装形態間で変化することがある。場合によっては、マルチレベルロギング粒度は、低、中および高を含むことができ、ビジネスプロセスモデル114内に含まれた特定のエンティティの相対的な重要度に基づくことができる。他の場合では、ロギング粒度は、特定のエンティティのビジネスプロセスに対する影響の重大度で関連付けることができる。それらの場合、ロギング粒度は、「情報」、「警告」および「誤り」のレベルに対応してよい。ロギング粒度の様々なレベルによって、実行時に各エンティティで収集された情報の量およびタイプを決定することができる。たとえば、下位の粒度レベルは、エンティティの名前および/またはIDなど、一般的な情報、ならびにその操作が成功したかどうかについての情報を含んでよい。より高い粒度レベルは、より高いロギング粒度が割り当てられたエンティティに関連する追加のロギング情報を提供するために、実行されたエンティティまたは要素についてのより綿密で詳細な情報を提供することが
できる。
【００３１】
場合によっては、プロセス粒度規則セット120は、特定のビジネスプロセスモデル114内の各エンティティ(または要素)について特定のプロセスロギング粒度を定義してよい。プロセス粒度規則セット120は、(メモリ111に示された)モデルエンティティマップ117に関連して粒度割当てエンジン138によって使用することができ、このモデルエンティティマップ117は、特定のエンティティに関連する説明または追加の情報、ならびに様々なエンティティタイプおよび/またはメタデータを提供することができる。プロセス粒度規則セット120は、モデルエンティティマップ117内の特定のエンティティを定義する情報に対して比較することができ、粒度割当てエンジン138が、対応するロギング粒度を決定し、関連するエンティティインスタンスに割り当てることを可能にする。あるいは、プロセス粒度規則セット120は、ビジネスプロセスモデル114全体、または特定のビジネスプロセスモデルテンプレートまたはバージョンに特定のロギング粒度レベルを適用するために使用することができる。さらに、BPM粒度割当てエンジン138が特定のビジネスプロセスモデル114を解析し、粒度割当てエンジン138が識別する各エンティティにそれぞれ異なるレベルの粒度を割り当てることができるように、それぞれ異なるタイプのエンティティ(すなわちアクティビティ、ユーザタスク、メッセージングイベント、ゲートウェイ、決定など)を、それぞれ異なるプロセスロギング粒度に関連付けることができる。場合によっては、粒度割当てエンジン138(または別のコンポーネント)は、クライアント150、171のうちの1つまたは複数によって、またはビジネスプロセスサーバ102上のローカルインタフェースを介して、エンジン138によって行われた1つまたは複数の粒度割当てをユーザまたは管理者が修正または上書きするためのインターフェースを提供することができる。
【００３２】
ビジネスプロセスサーバ102は、ログフィルタエンジン141をさらに含む。ログフィルタエンジン141は、ロギング情報が(メモリ111内の)プロセスログ126内に格納される前、実行時に使用することができる。たとえば、ログフィルタエンジン141は、特定のエンティティおよびビジネスプロセスインスタンスに関連するロギングされた情報のどれがプロセスログ126に持続するか決定する第2の規則セットに関連付けられてよい。この追加のフィルタを提供することによって、プロセスログ126に格納されたデータ量は、特定の実行時またはビジネスプロセスインスタンスに関係または関連する情報に制限されてよい。さらに、プロセスログに格納されたデータは、性能を向上させ、より記憶空間の占有を減少させるために、より少ない情報をプロセスログに格納するための第2の規則セットに基づいてさらに制限することができる。ログフィルタエンジン141は、ビジネスプロセスアプリケーション132の実行時ロギングモジュール135によって収集された情報を傍受するために置くことができる。換言すると、収集されたロギング情報は、情報がプロセスログ126に格納される前に、ログフィルタエンジン141に通される。ログフィルタエンジン141は、プロセスログ126に格納される情報のサブセットを決定するために、ビジネスプロセスアプリケーション132に関連する現在のビジネスプロセスインスタンスに関連するフィルタログ規則セット123にアクセスすることができる。
【００３３】
ログフィルタエンジン141によって、様々なタイプのフィルタが適用されてよい(またフィルタログ規則セット123に含まれてよい)。ある場合では、静的なフィルタは、実行時に収集されたビジネスプロセスインスタンスロギングデータに適用することができる。静的なフィルタは、ビジネスプロセスインスタンスおよびそのエンティティの実行中に返された実際のロギング情報セットのうちのどれを実行時にプロセスログに格納するか決定するために、設計時に(すなわち、ビジネスプロセスモデル114およびプロセス粒度規則セット120に基づいて)提供または決定された定義されたロギング粒度を、実行時フィルタ用に定義されたログレベルと比較することができる。たとえば、設計時に割り当てられたロギング粒度レベルが低、中および高である場合、ビジネスプロセスインスタンス内の特定のエンティティには、「中」のロギング粒度が割り当てられてよい。静的な規則セットは、実行時フィルタ規則で特定のビジネスプロセスエンティティ(またはビジネスプロセス自体に)に割り当てられた粒度の比較に基づいてログフィルタリングを提供することができる。一例では、特定のビジネスプロセスインスタンスに関連する静的なフィルタ規則は、「低」に設定されてよい。それらの場合では、ログフィルタエンジン141は、「中」粒度に関連するビジネスプロセスインスタンスからのエンティティを「低」粒度レベルと比較し、その結果、特定の「中」エンティティに関連するロギングされた情報のどれもプセスログ126に格納されない。それらの場合では、「高」粒度エンティティだけが、プロセスログ内にそのロギング情報が格納される。異なる例では、実行時フィルタ規則は、「中」に設定されてよい。それらの例では、エンティティが「中」の粒度レベルを有する場合、ログフィルタエンジン141は、「中」のエンティティのロギング情報をプロセスログ126に格納するが、「低」粒度レベルはロギングされない。第3の例では、ランタイム規則が「高」として構成される場合、実行時規則より低い粒度を含めて、特定のビジネスプロセスインスタンスの実行についての完全な情報セットを提供するために、すべてのアクティビティがロギングされる。
【００３４】
様々なタイプのフィルタおよびフィルタログ規則セット123をシステム内で使用し、または適用することができる。場合によっては、規則は、特定のエンティティまたはエンティティタイプについて個々に定義することができる。たとえば、アクティビティには「高」実行時ロギングレベルが提供される(すなわちすべての情報が収集される)が、決定/ゲートウェイには、「低」実行時ロギングレベルが提供される(すなわち、「高」設計時ロギング粒度を有する決定/ゲートウェイだけが、プロセスログ126内にその情報が格納される)。場合によっては、フィルタログ規則セット123は、エンティティタイプに基づいて、特定のエンティティについて格納された情報量を減少させるように働くことができる。換言すると、いくらかの情報がプロセスログ126に格納されているが、エンティティ(および/またはフィルタログ規則セット123によって決定された情報)に関連する最も重要な情報だけがプロセスログ126に格納される。他の場合では、ロギングレベルは、設計時に個々のエンティティに適用されてよく、設定された実行時ロギングレベルが、プロセスインスタンス全体に適用されてよい。
【００３５】
他の場合では、1つまたは複数の動的な実行時フィルタを、ログフィルタエンジン141を介して受け取られたロギングデータに適用することができる。プロセスインスタンスおよび関連するエンティティは、ビジネスプロセスインスタンス、特定のエンティティ、および/または環境全体の実行時コンテキストに関連する情報を含むデータオブジェクトに関連付けることができる。データオブジェクトは、実行時に、システム内の現在のランタイム状況に関係する情報で満たすことができる。フィルタログ規則セット123は、実行時にロギング情報のセット(または一部)をプロセスログ126内に格納すべきかどうか判定するための適切なフィルタリングログレベルまたは量を決定するために、データオブジェクトおよび/または他のランタイム位置から取り出された様々なタイプのデータおよびコンテキスト情報に関連する1つまたは複数の論理式(または他の動的な決定)を定義することができる。動的なフィルタで使用される例示的な表現は、特定のフィールドが、解析者、管理者および他のユーザが追跡および解析用の特定の情報を識別できるようにする特定の顧客またはイベントIDを含む場合に対応してよい。適用される(特定の)フィルタのタイプ(動的対静的ならびに他のバリエーション)は、フィルタログ規則セット123に従ってエンティティごとに、また特定のビジネスプロセスインスタンスに基づいて、または実行時に導出された他の情報に基づいて決定することができる。
【００３６】
ビジネスプロセスサーバ102は、解析規則更新エンジン144をさらに含む。解析規則更新エンジン144は、特定のビジネスプロセスインスタンスに適用された自動的に割り当てられたロギング粒度およびフィルタに対してユーザによって行われた手動の変更および修正を識別する。次いで、解析規則更新エンジン144は、基礎となるプロセス粒度規則セット120および/またはフィルタログ規則セット123を修正すべきかどうか決定するためにそれらの変更、および変更の頻度を解析することができる。解析規則更新エンジン144は、メモリ111の粒度フィルタリングメタデータコンポーネント129内に格納された修正に関する情報を使用することができる。場合によっては、自動的に割り当てられた値への変更に関する情報は、粒度割当てエンジン138またはログフィルタエンジン141によって粒度フィルタリングメタデータコンポーネント129内に格納することができ、他の場合では、解析規則更新エンジン144は、関連するメタデータ129を更新し定義することができる。解析規則更新エンジン144は、手動の更新を収集することができ、それらの更新の頻度が(生の数値の、または変更のパーセンテージに基づく)所定のしきい値に達すると、解析規則更新エンジン144は、対応する規則セット120、123を修正することができる。場合によっては、ユーザがプロセスインスタンスのログレベルを修正し、または結果としてログレベルを決定する規則を変更することにより間接的にそうすると、変更されたログレベルについての情報は、システムの全体に渡って一貫性を提供するために、影響を受けるすべてのプロセスインスタンスに即時に伝播されてよい。
【００３７】
ビジネスプロセスサーバ102は、データおよびプログラム命令を格納するためのメモリ111をも含む。メモリ111は、任意のメモリまたはデータベースモジュールを含むことができ、それに限定されないが、磁気媒体、光媒体、ランダムアクセスメモリ(RAM: random access memory)、読取り専用メモリ(ROM: read-only memory)、取外し可能媒体または他の任意の適切なローカルまたはリモートのメモリーコンポーネントを含めて、揮発性または不揮発性メモリの形をとってよい。メモリ111は、クラス、フレームワーク、アプリケーション、バックアップデータ、ビジネスオブジェクト、ジョブ、ウェブページ、ウェブページテンプレート、データベーステーブル、プロセスコンテキスト、ビジネスプロセスサーバ102にとってローカルなサービスを格納するレポジトリを含めて様々なオブジェクトまたはデータ、ならびにサーバ102およびそのビジネスプロセスアプリケーション132の目的に関連する任意のパラメータ、変数、アルゴリズム、命令、規則、制約またはそれへの参照を含めて他の任意の適切な情報を格納することができる。クラウドベースのシステムを含めて一部の実装形態では、メモリ111のうちの一部またはすべてを、ビジネスプロセスサーバ102から離れて格納し、使用のためにビジネスプロセスサーバ102に通信可能に結合することができる。示されたように、メモリ111は、1組のビジネスプロセスモデル114と、モデルエンティティマップ117と、プロセス粒度規則セット120と、フィルタログ規則セット123と、プロセスログ126と、粒度フィルタリングメタデータ129とを含む。
【００３８】
図2Aに戻ると、ビジネスプロセスアプリケーションのBPM粒度割当てエンジン138との関連性が示されている。粒度割当てエンジン138は、設計時に特定のビジネスプロセスモデル201にアクセスして、ビジネスプロセスモデル201に含まれたビジネスプロセスエンティティを解析し、それらのエンティティをモデルエンティティマップ117(各エンティティまたはエンティティタイプおよびその関連するメタデータの記述を提供する)およびプロセス粒度規則セット120と比較して、割り当てるべき適切なロギング粒度を決定する。図2Bは、BPM粒度割当てエンジン138が基礎となるビジネスプロセスモデル201に1組の様々なロギング粒度を割り当てた後の特定のビジネスプロセスインスタンス202の一例を示している。様々なエンティティへの特定の粒度割当ては、図2Aに述べられ示されたように、BPM粒度割当てエンジン138によって設計時に行われた決定および割当てに基づいている。
【００３９】
図2Bでは、示されたビジネスプロセスインスタンス202内のそれぞれ異なるエンティティには、それぞれ異なるロギング粒度が割り当てられている。たとえば、開始イベント205は、「高」のロギング粒度を有し、第1のアクティビティ210は、「中」のロギング粒度を有し、第1および第2の中間イベント215、225は、「高」のロギング粒度を有し、第2のアクティビティ220は、「高」のロギング粒度を有し、決定230は、「中」のロギング粒度を有し、第3のアクティビティ235は、「高」のロギング粒度を有し、第4のアクティビティ240は、「中」のロギング粒度を有し、終了イベント245は、「高」のロギング粒度を有する。
【００４０】
図2Bに示されたように、示されたビジネスプロセスインスタンス202の第1のアクティビティ210は、ビジネスプロセスモデル201からの少なくとも1つのネストされたイベントを含む。場合によっては、第1のアクティビティ210の一部として含まれたそれらのネストされたイベントまたはプロセスにはそれぞれ、第1のアクティビティ210と同じロギング粒度レベルが割り当てられてもよいし、異なるロギング粒度レベルが割り当てられてもよい。場合によっては、ロギング粒度レベルは、ビジネスプロセスモデル201またはインスタンス202内の特定の階層レベルに適用されてよく、より低い(または子の)プロセスが、より高い(または親の)プロセスまたはエンティティと同じロギング粒度レベルを受け取る。他の場合では、ネストされたイベントまたはプロセスのうちの1つまたは複数には、(図2Aに示された粒度割当てエンジン138によって決定された)第1のアクティビティ210とは異なるロギング粒度レベルが提供されてよい。
【００４１】
図2Bは、ビジネスプロセスインスタンス202の実行の間、実行時に動作しているコンポーネントの一部、具体的には、実行されたビジネスプロセスインスタンス202に関連するロギング情報をフィルタリングするために使用されるコンポーネントを示している。実行時ロギングモジュール135は一般に、ビジネスプロセスアプリケーション132によって、示されたビジネスプロセスインスタンス202内に含まれた様々なエンティティからのロギング情報を監視し収集するために使用することができる。実行時ロギングモジュール135は一般に、メモリ111に示されたプロセスログ126にロギング情報を返すことができる。しかし、図2Bに示されたように、実行時ロギングモジュール135によって収集された情報は、いずれかの情報がプロセスログ126内に格納される前に、ログフィルタエンジン141に提供される。ログフィルタエンジン141は、(フィルタログ規則セット123に定義された)1つまたは複数の規則、および特定の実行時インスタンスにどの規則が適用されるかについての決定に基づいて、情報を受信し(または傍受し)、ロギング情報をフィータリングする。割り当てられたロギング粒度レベルに類似して、ユーザ情報、プロセス関連メタデータ、およびユーザ、個人、または特定のビジネスプロセスインスタンスの実行に関連するエンティティを含めた他の要因を含めて、実行時情報に基づいて、それぞれ異なるフィルタをそれぞれ異なる実行時インスタンスに適用することができる。
【００４２】
図3は、設計時に1つまたは複数のビジネスプロセスエンティティにプロセスロギング粒度を適用するための例示的なプロセス300のフローチャートである。提示を明確にするために、下記の説明では、方法300について、図1に示された環境100の文脈で一般的に述べている。しかし、方法300は、たとえば他の適切なシステム、環境によって、または適宜システムと環境の組合せによって実施できることが理解されよう。
【００４３】
305で、ビジネスプロセスモデルが識別される。場合によっては、ビジネスプロセスモデルを識別することは、図2A〜図2Bのビジネスプロセスモデル201およびビジネスプロセスインスタンス202など、ビジネスプロセスモデルの特定のインスタンスを作成し実行するように求める、ユーザまたは他のエンティティからの要求を受け取ることを含んでよい。ビジネスプロセスモデル201をモデル化する設計時、およびビジネスプロセスモデル201のインスタンス202を実行する実行時は、別々に定義することができる。たとえば、ビジネスプロセスモデル201は、特定の実行環境またはコンポーネントに展開することができ、次いで、ビジネスプロセスインスタンス202(ビジネスプロセスモデル201の実行時インスタンス)が実行される。説明のために、これらの部分
【００４４】
310で、識別されたビジネスプロセスモデルに関連するロギング粒度規則セットが識別される。場合によっては、ロギング粒度規則セットは、対応するビジネスプロセスIDに基づいて識別することができ、ビジネスプロセスモデルのIDが、ビジネスプロセスモデルに関連する適切な規則セットを識別するためにロギング粒度規則セットと比較される。場合によっては、IDではなく、プロセスカテゴリが、適切なロギング粒度規則セットを決定するために使用されてよい。一例では、販売プロセス、製造プロセス、およびサポートプロセスは、適切な場合、それぞれ異なる規則セットに関連付けることができる。さらに、識別された粒度規則セットは、識別されたビジネスプロセスモデル内の様々なエンティティに適用される特定のロギング粒度を定義する情報と共に、2つ以上のビジネスプロセスモデルに適用されてよい。他の場合では、特定のロギング粒度規則は、ビジネスプロセスモデル内の各エンティティに、単一の共通のロギング粒度を関連付けることができる。別の場合では、特定のビジネスプロセスモデル内のエンティティのそれぞれ異なるパッケージまたはサブセットに様々なレベルの粒度を割り当てることができ、ネストされたプロセスまたはイベントおよびサブフローは、親のエンティティまたはイベントのロギング粒度のうちの1つまたは複数を継承する。
【００４５】
315で、識別されたビジネスプロセスモデルおよびその様々なエンティティが解析される。ビジネスプロセスモデルおよびそのエンティティを解析することによって、エンティティのカタログまたはリスト、階層レベル、および識別されたビジネスプロセスモデルに関連する他の情報が生成されてよい。320で、ビジネスプロセスモデルおよびそのエンティティの解析に基づいて、解析されたビジネスプロセスモデル内の特定のエンティティに関連する1つまたは複数のプロパティを識別することができる。場合によっては、主要なエンティティプロパティは、エンティティがゲートウェイか、アクティビティか、イベントか、それとも別のエンティティタイプかなど、エンティティタイプであってよい。さらなるプロパティは、特定のエンティティがどんなタイプのゲートウェイ、アクティビティまたはイベントかであってよい。識別されたプロパティは、特定のエンティティに直接関連付けられてよい(またはその中で定義されてよい)。さらに、またはあるいは、特定のエンティティに関連する1つまたは複数のプロパティは、ビジネスプロセスモデル全体に関連するプロパティに基づいてよい。次いで、325で、これらのプロパティを使用して、特定のエンティティにロギング粒度レベルを割り当てることができる。
【００４６】
325で、粒度レベルは、エンティティの識別されたプロパティのうちの少なくとも1つに少なくとも一部基づいてエンティティに割り当てられる。場合によっては、ロギング粒度規則セットからの1つまたは複数の規則は、エンティティの様々なプロパティに対応してよい。場合によっては、ロギング粒度規則セットは、階層上のより高い、またはより高くランク付けされた規則が、より低い規則の前に割り当てられるように、階層またはランク付けされた規則セットを定義してよい。あるいは、エンティティに適したロギング粒度を決定する際の助けとするために、全体的なビジネスプロセスモデルまたは特定のBPMインスタンスに関連する1つまたは複数のプロパティを使用することができる。場合によっては、ビジネスプロセスモデルの分類またはカテゴリを含めて、特定のビジネスプロセスモデル全体およびその関連する属性は、割り当てる適切なロギング粒度を決定するために使用されるエンティティのプロパティであってよい。さらに、エンティティに適用する正確なロギング粒度規則を識別するために、エンティティに関連する複数のプロパティの組合せを使用することができる。
【００４７】
330で、割り当てられたロギング粒度への手動の修正が、ユーザから受け取られるかどうか判定される。ユーザ、管理者、ならびに適切な許可および承認を有する他のユーザは、特定のモデルの必要性および要望に従って、自動的に割り当てられたロギング粒度を手動で変更することができる。それらの場合では、変更は、ビジネスプロセスアプリケーションに関連する情報、モデル、および、ロギング粒度を提示するグラフィカルユーザインターフェースを介して行うことができる。修正が受け取られない場合は、方法300は、345で継続する。しかし、エンティティのロギング粒度への修正が受け取られる場合は、方法300は、335に移り、エンティティのロギング粒度割当てが、提供された手動割当てに従って修正される。340で、エンティティおよびロギング粒度規則セットに関連するメタデータが、将来の使用に備えて更新されてよい。場合によっては、この情報は、コンピュータ学習機構で使用することができ、このコンピュータ学習機構は、特定の割当てに対して適切なまたはしきい値の数の修正が行われる場合、ビジネスプロセスアプリケーション(および/または図1に示された解析規則更新エンジン144)がロギング粒度規則セットを更新することを可能にすることができる。メタデータは、ユーザによって取られる1つまたは複数のアクションに従って、1つまたは複数のロギング粒度規則をいつ修正し、変更しまたは更新するか計算し、かつ/または決定するために定期的、周期的またはリアルタイムに解析することができる。たとえば、特定のアクティビティについてのロギング粒度規則が第1の粒度をアクティビティに割り当てるが、ユーザが、割当てを特定のしきい値の使用パーセンテージ(たとえばケースの65%)の第2の粒度に手動で変更する場合、ロギング粒度規則は、システムによって、特定のアクティビティを第2の粒度割当てに自動的に割り当てるように修正することができる。メタデータが更新されると、方法300は、345で継続する。
【００４８】
345で、エンティティに関連するロギング粒度割当てが格納される。場合によっては、ロギング粒度割当ては、エンティティロギング粒度割当てプロセスの完了まで、一時記憶領域またはキャッシュに格納されてよい。場合によっては、ロギング粒度割当ては、特定のビジネスプロセスモデル内の特定のエンティティに、または特定のエンティティを定義するメタデータのエントリまたは一部として関連付けることができる。ロギング割当てを格納する代替方法が、適宜使用されてよい。場合によっては、ロギング粒度割当ては、ビジネスプロセスモデルの一部として格納されてよい。
【００４９】
350で、プロセス300に関連するビジネスプロセスモデル内で追加のエンティティに依然としてロギング粒度を割り当てるべきかどうか判定される。割り当てるべき追加のエンティティがある場合は、方法300は、320に戻り、ビジネスプロセスモデルまたはインスタンス内の次のエンティティのための操作を実施する。場合によっては、ロギング粒度割当てプロセスは、ビジネスプロセスモデル内の各エンティティについて同時にまたは並列に実施することができ、他の場合では、割当ては、順次に行われてよい。場合によっては、エンティティのロギング粒度のうちの1つまたは複数が、ビジネスプロセスモデルの操作またはフロー内でそれらのエンティティの前に位置する1つまたは複数のエンティティの割当てに依存する場合、順次割当てが、より適切となり得る。さらに、プロセスは、ビジネスプロセスモデルと共に、追加され、かつ/または更新された各エンティティごとに増分的に実行されてよい。割り当てるべき追加のエンティティがない場合、この方法300は、360で継続する。
【００５０】
355で、更新されたビジネスプロセスモデルが、格納されてよい。場合によっては、基礎となるビジネスプロセスモデルは、モデル自体に含まれたロギング粒度割当てと共に格納することができ、他の場合では、粒度割当ては、基礎となるビジネスプロセスモデルが変化しないままであるように、別個のファイルまたは位置内に格納することができる。あるいは、ロギング粒度割当ては、ビジネスプロセスモデルの一部として(またはビジネスプロセスモデルの特定のバージョンで)格納することができ、したがって、割当ては、ビジネスプロセスモデルの将来のすべての使途のために使用することができる。
【００５１】
360で、ビジネスプロセスモデル(または特定の関連したインスタンス)が更新または修正されるかどうか判定される。更新が行われていない場合は、方法300は、更新または修正をチェックし続ける。しかし、更新または修正が識別される場合は、方法300は、310に戻ることができ、ビジネスプロセスモデルが再解析され、様々なエンティティに粒度を割り当てる操作が繰り返され、またビジネスプロセスモデルに適用する適切なロギング粒度規則セットに関する決定が行われる。場合によっては、ビジネスプロセスモデル内の修正または更新されたエンティティだけが、方法300の操作によって完全に処理されてよい。他の場合では、述べられた操作のセット全体が実施されてよい。
【００５２】
図4は、特定のビジネスプロセスエンティティの実行に関連する特定のロギングされたイベントに適用するプロセスロギングレベルを実行時に決定するための例示的なプロセス400のフローチャートである。述べられたように、ビジネスプロセスモデルまたはインスタンス内の1つまたは複数のエンティティに、実行時に決定される動的なロギングレベルを割り当てることができる。プロセス400は、関連するエンティティまたはビジネスプロセスモデルに割り当てられた、以前に割り当てられたロギング粒度レベルに少なくとも一部基づいて、関連するエンティティに割り当てられる適切なロギングレベルを決定する際に実行時に実施される操作について述べている。
【００５３】
405で、ビジネスプロセスモデルの特定のインスタンスが実行される。410で、そのエンティティに割り当てられた(たとえば、図3に述べられたプロセス300によって割り当てられた)ロギング粒度についての情報を含め、実行される第1のエンティティのインスタンスが識別される。415で、識別されたエンティティインスタンスに関連するログレベルが識別される。ログレベルは、ビジネスプロセスインスタンスに関連する1つまたは複数の規則セットのレビューに基づいて識別することができる。さらに、適切なログレベルは、エンティティの以前に割り当てられたロギング粒度レベルに基づいて決定することができる。420で、エンティティのログレベルが実行時に動的に決定されるか、それとも静的な値か判定する。識別されたエンティティのログレベルが静的である場合、方法400は、422で継続し、静的なログレベルが、識別されたエンティティインスタンスに関連付けられる。静的なログレベルがエンティティインスタンスに関連付けられると、方法400は、440で継続する。しかし、420で、現在のエンティティが動的なログレベルに関連すると判定される場合は、この方法は、425で継続する。
【００５４】
425で、エンティティの動的なログレベルに関連する基準が決定される。場合によっては、動的なログレベルは、1つまたは複数の実行時コンテキスト変数または情報、設計時に割り当てられたロギング粒度レベル、および/または他の関連データを評価する論理式によって定義することができる。論理式の評価に基づいて、適切な動的なログレベルを決定することができる。ビジネスプロセスインスタンス内の1つまたは複数の前のエンティティまたはイベントの実行中に収集されたデータまたは情報に関連付けられてよい基準を含めて、他の適切な動的なランタイム関連のログレベル基準を定義することができる。さらに他の場合では、動的なログレベルは、ビジネスプロセスインスタンスを開始するユーザまたは管理者や、ビジネスプロセスインスタンスの目的など、ビジネスプロセスインスタンス自体について定義された情報に関連付けられてもよい。特定のエンティティに適したログレベルを決定するとき、とりわけ消費されたリソース、受け取られたイベント、前のプロセス実行過程、およびプロセスインスタンスの現在の状態を含めて、追加のコンテキスト情報を考慮することができる。
【００５５】
430で、識別された基準が、ビジネスプロセスインスタンスに関連する情報、あるいはビジネスプロセスインスタンスまたはエンティティのインスタンスの実行に関連する他のメタデータまたは情報と比較される。435で、比較の結果を使用して、エンティティに適したログレベルが設定される。440で、現在のエンティティインスタンスのログレベルに対応するロギング情報が収集される。
【００５６】
445で、ビジネスプロセスインスタンスの実行の間に処理すべき追加のエンティティを依然として処理すべきかどうか判定される。追加のエンティティが残っている場合は、方法400は、410に戻り、それに応じて次のエンティティを処理する。しかし、追加のエンティティが残っていない場合は、方法400は、450で継続し、ビジネスプロセスインスタンスの実行が完了する。図4に示されていないが、440でのロギング情報の収集は、1つまたは複数のフィルタリング規則(図1および2Bに示されたログフィルタエンジン141など)に基づいてロギング情報をフィルタリングするために、プロセスログ(図1に示されたプロセスログ126など)またはロギングシステム内のコンポーネントにロギング情報を提供することを含んでよい。
【００５７】
図5は、特定のビジネスプロセスインスタンスの実行の間に受け取られた、少なくとも1つのプロセスログ情報セットに実行時プロセスログフィルタを適用するための例示的なプロセス500のフローチャートである。場合によっては、方法500は、収集され、プロセスログに格納されたロギング情報の量を制限するための機能性を組み合わせて、それぞれ図3および4の方法300および400と共に使用することができる。示された方法の様々な組合せ、置換物および派生物を適宜使用することもできる。
【００５８】
505で、ビジネスプロセスモデルのインスタンスの実行が開始される。場合によっては、ビジネスプロセスモデル内の少なくとも1つのエンティティはロギング粒度割当てを含む。510で、ビジネスプロセスモデルの実行インスタンス内の少なくとも1つのエンティティの実行に関連するロギング情報が受け取られる。ロギング情報は、エンティティに関連するイベントに関するデータ、ならびにエンティティまたはイベントのロギング粒度レベルを含んでよい。場合によっては、ロギング情報は、実行時ロギングモジュール(たとえば図1の実行時ロギングモジュール135)によって最初に受け取られ、フィルタリングエンジンまたはコンポーネント(たとえば図1のログフィルタエンジン141)に通され、またはそれに送られてよい。場合によっては、ロギング情報は、生成された、または実行されたエンティティに関連する情報のサブセットを表してよく、情報のサブセットが、本明細書に述べられたものに類似の方法またはプロセスからのロギング粒度割当てに少なくとも一部基づいて収集された1組のロギング情報を表す。
【００５９】
515で、エンティティのロギング粒度が決定される。場合によっては、割り当てられたロギング粒度は、どのまたはどんなロギング情報をフィルタリングすべきかどうかに関する決定の一環として使用することができる。他の場合では、フィルタリング操作は、エンティティに割り当てられた特定のロギング粒度とは別個の、または異なるものであってよい。さらに、特定のエンティティは、割り当てられたロギング粒度を有さないことがある。それらの場合では、プロセス500のために、初期設定の割り当てられたロギング粒度を想定することも、使用することもできる。
【００６０】
520で、エンティティに関連する実行時プロセスログフィルタが識別される。実行時プロセスログフィルタは、フィルタログ規則セットからの1つまたは複数の規則に基づくエンティティに関連付けられてよい。場合によっては、関連するフィルタ規則は、特定のエンティティタイプ、特定のエンティティインスタンス、特定のビジネスプロセスモデル、特定のビジネスプロセスモデルインスタンスまたはエンティティ実行の特定の目的(すなわち、ビジネスプロセスインスタンスに関連する情報の追跡、ビジネスプロセスインスタンスの操作のテスト、または他の任意の関連するアクティビティ)に関連付けられてよい。さらに、特定のエンティティに適用されるフィルタリング規則は、上記の自動ロギング粒度割当てプロセスによるものであれ、手動で割り当てられた(または初期設定の)ロギング粒度であれ、設計時にその特定のエンティティに割り当てられた特定のロギング粒度に少なくとも一部基づくことができる。さらに、特定のエンティティの実行時コンテキストに関連する論理式を含めて、動的なログフィルタが、特定のエンティティに関連付けられてよい。たとえば、ある式は、特定のメタデータセットが、プロセスログに格納されるロギング情報のセットについて単語「エラー」を含むことを求め得る。単語「エラー」が含まれない場合は、実行時ログフィルタエンジンは、ロギング情報を無視し、次のエンティティに続くことができる。あるいは、ログフィルタ規則は、エンティティから受け取られた情報からプロセスログに格納される情報のタイプをさらに制限することができる。換言すると、実行時に特定のエンティティから受け取られたロギング情報が要素X、YおよびZを含む場合、フィルタログ規則は、要素Zが特定の値であるならば、要素YおよびZだけが格納され、そうでない場合は、要素X、YおよびZのそれぞれが格納されてよいと示すことができる。場合によっては、実行時プロセスログフィルタのログレベルが特定のレベルまたは値を超える場合は、一般的なフィルタ規則が適用されてよい。一般的なフィルタ規則が適用された後に格納された特定の情報は、ロギング情報セット(または「イベントペイロード」)からどんな情報をロギングすべきかに関する規則または決定に少なくとも一部基づいて決定することができる。任意の適切なフィルタリング規則を特定のエンティティに、また場合によっては複数のエンティティに関連付けることができる。
【００６１】
525で、実行時プロセスログフィルタ規則が、エンティティに関連する受け取られたロギング情報に適用される。換言すると、実行されたエンティティに関連すると判定されたフィルタ規則が評価され、ログフィルタ規則のその要件または仕様を満たすロギング情報が保持または維持され、残りの情報は、ロギング情報セットから取り除かれ、無視され、または別のやり方で廃棄されてよい。530で、エンティティについてのフィルタリングされたロギング情報は、実行されたビジネスプロセスインスタンスに関連するプロセスログ(すなわち図のプロセスログ126)に格納される。場合によっては、フィルタリングされたロギング情報をプロセスログ内に格納することは、調査を行うユーザまたはシステムが、ロギングされた情報が特定のプロセスインスタンス実行に関連するということを理解できるようにするプロセスインスタンス識別子または他の識別情報を追加することを含む。次いで、プロセスインスタンス識別子は、さもなければ互いに分離されて、完全な監査証跡を提供できない連続したロギングイベント間のコヒーレンスおよび関係を提供することができる。プロセスインスタンス識別子を使用して、複数のエンティティおよびイベントからの情報は、互いに関連付けられ、特定のインスタンスの実行のための完全な情報セットを提供するように集約されてよい。さらに、テストの理由、開始側の個人、システムまたはエンティティ、ならびに他の適切な情報など、実行のタイプに関する情報が、プロセスログに含まれてよい。
【００６２】
535で、ビジネスプロセスインスタンスに追加のエンティティが含まれているかどうか、およびそれらが実行されるかどうか判定される。追加のエンティティが含まれており、ビジネスプロセスインスタンスのデータフローで実行される場合は、方法500は、520に戻り、次のエンティティに適した規則が決定される。しかし、追加のエンティティが実行されない場合は、方法500は、540で終了し、実行ビジネスプロセスインスタンスのためのプロセスログが更新され終了される。すべてのロギング情報が530の複数のインスタンスによってロギングされた場合は、540で、更新も終了も不要となり得る。場合によっては、540の操作は、複数のプロセスエンティティが同じトランザクションで実行される、ロギング結果のバッチ処理を可能にすることができる。
【００６３】
上記の図および付随する説明は、例示的なプロセス、およびコンピュータ実施可能の技法を示している。しかし、環境100(あるいはそのソフトウェアまたは他のコンポーネント)は、これら他のタスクを実施するための任意の適切な技法を使用し、実施または実行することを企図している。これらのプロセスは、例示するためのものにすぎず、述べられたまたは類似の技法を、同時に、個々に、または組合せとして含めて、任意の適切なときに実施できることが理解されよう。さらに、これらのプロセス内の諸ステップの多くは、同時、共に、かつ/または示されたのとは異なる順序で行われてもよい。さらに、環境100は、方法が適切なままである限り、追加のステップ、より少ないステップ、および/または異なるステップを有するプロセスを使用することができる。
【００６４】
換言すると、本開示について特定の実施形態、および一般的に関連する方法について述べられているが、これらの実施形態および方法の変更および置換が当業者には明らかであろう。したがって、例示的な実施形態についての上記の説明は、本開示を定義するものでも、限定するものでもない。本開示の精神および範囲から逸脱せずに、他の変更、置換および修正も可能である。
【符号の説明】
【００６５】
100  環境
102  ビジネスプロセスサーバ/サーバ
105  インターフェース
108  プロセッサ
111  メモリ
114  ビジネスプロセスモデル
117  モデルエンティティマップ
120  プロセス粒度規則セット/規則セット
123  フィルタログ規則セット/規則セット
126  プロセスログ
129  粒度フィルタリングメタデータコンポーネント/粒度フィルタリングメタデータ/メタデータ
132  ビジネスプロセスアプリケーション
135  実行時ロギングモジュール
138  BPM粒度割当てエンジン
141  ログフィルタエンジン/エンジン
144  解析規則更新エンジン
150  クライアント
171  クライアント
177  ネットワーク
201  ビジネスプロセスインスタンス/ビジネスプロセスモデル
205  開始イベント
210  第1のアクティビティ
215  中間イベント/中間メッセージングイベント
215  中間イベント
230  決定/決定ステップ
235  第3のアクティビティ
240  第4のアクティビティ
245  終了イベント
250  インバウンドエージェント
260  アウトバウンドエージェント
【図１】
0006276908.tif 000002
【図２Ａ】
0006276908.tif 000003
【図２Ｂ】
0006276908.tif 000004
【図３】
0006276908.tif 000005
【図４】
0006276908.tif 000006
【図５】
0006276908.tif 000007