(57)【特許請求の範囲】
【請求項１】
モジュールを有するアプリケーションで受け取られたデータ記録の第１の量を決定するステップと、
前記アプリケーションの前記モジュールに関し、前記データ記録の処理時に前記モジュールによって出力されたデータ記録のそれぞれの第２の量を決定するステップと、
データ記録の前記第１および第２の量が、前記アプリケーションで受け取られたデータ記録の量と、前記アプリケーションの前記モジュールによって出力されたデータ記録の量との間のターゲット関係を表す規則を満たすかどうかを判定するステップと、
前記アプリケーションの前記モジュールによって特定のデータ記録が出力として提供された時刻に基づいて、前記アプリケーションによるデータ記録のセットの処理に関連した待ち時間を決定するステップであって、前記出力として前記特定のデータ記録を提供することによって前記規則が満たされている、ステップと
を含む、方法。
【請求項２】
前記規則が満たされたかどうかを表す報告書を提供するステップを含む、請求項１に記載の方法。
【請求項３】
前記アプリケーションが、複数の出力ポートを含むモジュールを含み、前記ターゲット関係が、前記モジュールで受け取られた記録の量が前記モジュールの前記出力ポートを通して出力された記録の量と等しいことを表すものを含む、請求項１に記載の方法。
【請求項４】
前記モジュールが、受け取ったそれぞれの記録の入力量に対する記録の出力量を出力し、前記入力量が前記出力量と異なり、前記ターゲット関係が前記入力量と前記出力量の比を表すものを含む、請求項１に記載の方法。
【請求項５】
前記規則を指定するステップを含む、請求項１に記載の方法。
【請求項６】
前記規則の指定を受け取るステップを含む、請求項１に記載の方法。
【請求項７】
前記アプリケーションのモジュールから出力されたデータ記録の第２の量を決定するステップが、前記モジュールから出力された前記データ記録を数えるステップを含む、請求項１に記載の方法。
【請求項８】
前記アプリケーションのモジュールから出力されたデータ記録の第２の量を決定するステップが、
前記モジュールの第１の出力ポートから出力された前記データ記録を数えるステップと、
前記第１の出力ポートから出力されたデータ記録の数、および前記モジュールに入力されたデータ記録の数に基づいて、前記モジュールの第２の出力ポートから出力されたデータ記録の数を計算するステップと
を含む、請求項１に記載の方法。
【請求項９】
前記アプリケーションの前記待ち時間を決定するステップが、前記アプリケーションが前記データ記録を受け取るときの開始時刻と、前記アプリケーションが前記データ記録の処理を終了するときの終止時刻とに基づいて前記待ち時間を決定するステップを含む、請求項１に記載の方法。
【請求項１０】
前記アプリケーションが、前記第１の量および前記第２の量が前記規則を満たしたときに、前記データ記録の処理を終了している、請求項９に記載の方法。
【請求項１１】
前記データ記録のうちの特定の１つが前記アプリケーションの前記モジュールで処理されるときの時刻を記録するステップを含む、請求項１に記載の方法。
【請求項１２】
前記記録された時刻に基づいて前記モジュールの待ち時間を決定するステップを含む、請求項１１に記載の方法。
【請求項１３】
携帯電話システムから前記データ記録を受け取るステップを含む、請求項１に記載の方法。
【請求項１４】
前記データ記録が、携帯電話システムの第１のタイプのスイッチによって処理された第１のデータ記録と、前記携帯電話システムの第２のタイプのスイッチによって処理された第２のデータ記録とを含む、請求項１に記載の方法。
【請求項１５】
コンピュータ可読媒体に保存されたソフトウェアであって、コンピューティングシステムに、
モジュールを有するアプリケーションで受け取られたデータ記録の第１の量を決定させる、
前記アプリケーションの前記モジュールに関し、前記データ記録の処理時に前記モジュールから出力されたデータ記録のそれぞれの第２の量を決定させる、
データ記録の前記第１および第２の量が、前記アプリケーションで受け取られたデータ記録の量と、前記アプリケーションの前記モジュールによって出力されたデータ記録の量との間のターゲット関係を示す規則を満たすかどうかを判定させる、ならびに
前記アプリケーションの前記モジュールによって特定のデータ記録が出力として提供された時刻に基づいて、前記アプリケーションによるデータ記録のセットの処理に関連した待ち時間を決定させ、前記出力として前記特定のデータ記録を提供することによって前記規則が満たされている、
ようにするための命令を含む、ソフトウェア。
【請求項１６】
モジュールを有するアプリケーションで受け取られたデータ記録の第１の量を決定するように、
前記アプリケーションの前記モジュールに関し、前記データ記録の処理時に前記モジュールによって出力されたデータ記録のそれぞれの第２の量を決定するように、
データ記録の前記第１および第２の量が、前記アプリケーションで受け取られたデータ記録の量と、前記アプリケーションの前記モジュールにより出力されたデータ記録の量との間のターゲット関係を示す規則を満たすかどうかを判定するように、ならびに
前記アプリケーションの前記モジュールによって特定のデータ記録が出力として提供された時刻に基づいて、前記アプリケーションによるデータ記録のセットの処理に関連した待ち時間を決定し、前記出力として前記特定のデータ記録を提供することによって前記規則が満たされるように
構成された少なくとも１つのプロセッサを含む、コンピューティングシステム。
【請求項１７】
モジュールを有するアプリケーションで受け取られたデータ記録の第１の量を決定するための手段と、
前記アプリケーションの前記モジュールに関し、前記データ記録の処理時に前記モジュールによって出力されたデータ記録のそれぞれの第２の量を決定するための手段と、
データ記録の前記第１および第２の量が、前記アプリケーションで受け取られたデータ記録の量と、前記アプリケーションの前記モジュールによって出力されたデータ記録の量との間のターゲット関係を示す規則を満たすかどうかを判定するための手段と、
前記アプリケーションの前記モジュールによって特定のデータ記録が出力として提供された時刻に基づいて、前記アプリケーションによるデータ記録のセットの処理に関連した待ち時間を決定するための手段であって、前記出力として前記特定のデータ記録を提供することによって前記規則が満たされている、手段と
を含む、コンピューティングシステム。
【請求項１８】
前記モジュールによる前記データ記録の前記出力と関連付けられた時刻に基づいて、前記アプリケーションに関連した前記待ち時間を決定するステップを含む、請求項１に記載の方法。
【請求項１９】
前記プロセッサが、前記規則が満たされたかどうかを表す報告書を提供するように構成されている、請求項１６に記載のコンピューティングシステム。
【請求項２０】
前記アプリケーションが、複数の出力ポートを含むモジュールを含み、前記ターゲット関係が、前記モジュールで受け取られた記録の量が前記モジュールの前記出力ポートを通して出力された記録の量と等しいことを表すものを含む、請求項１６に記載のコンピューティングシステム。
【請求項２１】
前記モジュールが、受け取ったそれぞれの記録の入力量に対する記録の出力量を出力し、前記入力量が前記出力量と異なり、前記ターゲット関係が前記入力量と前記出力量の比を表すものを含む、請求項１６に記載のコンピューティングシステム。
【請求項２２】
前記プロセッサが、前記規則を指定するように構成されている、請求項１６に記載のコンピューティングシステム。
【請求項２３】
前記プロセッサが、前記規則の指定を受け取るように構成されている、請求項１６に記載のコンピューティングシステム。
【請求項２４】
前記アプリケーションのモジュールから出力されたデータ記録の第２の量を決定するステップが、前記モジュールから出力された前記データ記録を数えるステップを含む、請求項１６に記載のコンピューティングシステム。
【請求項２５】
前記アプリケーションのモジュールから出力されたデータ記録の第２の量を決定するステップが、
前記モジュールの第１の出力ポートから出力された前記データ記録を数えるステップと、
前記第１の出力ポートから出力されたデータ記録の数、および前記モジュールに入力されたデータ記録の数に基づいて、前記モジュールの第２の出力ポートから出力されたデータ記録の数を計算するステップと
を含む、請求項１６に記載のコンピューティングシステム。
【請求項２６】
前記アプリケーションの前記待ち時間を決定するステップが、前記アプリケーションが前記データ記録を受け取るときの開始時刻と、前記アプリケーションが前記データ記録の処理を終了するときの終止時刻とに基づいて前記待ち時間を決定するステップを含む、請求項１６に記載のコンピューティングシステム。
【請求項２７】
前記アプリケーションが、前記第１の量および前記第２の量が前記規則を満たしたときに、前記データ記録の処理を終了している、請求項２６に記載のコンピューティングシステム。
【請求項２８】
前記プロセッサが、前記データ記録のうちの特定の１つが前記アプリケーションの前記モジュールで処理されるときの時刻を記録するように構成されている、請求項１６に記載のコンピューティングシステム。
【請求項２９】
前記プロセッサが、前記記録された時刻に基づいて前記モジュールの待ち時間を決定するように構成されている、請求項２８に記載のコンピューティングシステム。
【請求項３０】
前記プロセッサが、携帯電話システムから前記データ記録を受け取るように構成されている、請求項１６に記載のコンピューティングシステム。
【請求項３１】
前記データ記録が、携帯電話システムの第１のタイプのスイッチによって処理された第１のデータ記録と、前記携帯電話システムの第２のタイプのスイッチによって処理された第２のデータ記録とを含む、請求項１６に記載のコンピューティングシステム。
【請求項３２】
前記プロセッサが、前記モジュールによる前記データ記録の前記出力と関連付けられた時刻に基づいて、前記アプリケーションに関連した前記待ち時間を決定するように構成されている、請求項１６に記載のコンピューティングシステム。
【請求項３３】
前記コンピューティングシステムに、前記規則が満たされたかどうかを表す報告書を提供させるようにするための命令を含む、請求項１５に記載のソフトウェア。
【請求項３４】
前記アプリケーションが、複数の出力ポートを含むモジュールを含み、前記ターゲット関係が、前記モジュールで受け取られた記録の量が前記モジュールの前記出力ポートを通して出力された記録の量と等しいことを表すものを含む、請求項１５に記載のソフトウェア。
【請求項３５】
前記モジュールが、受け取ったそれぞれの記録の入力量に対する記録の出力量を出力し、前記入力量が前記出力量と異なり、前記ターゲット関係が前記入力量と前記出力量の比を表すものを含む、請求項１５に記載のソフトウェア。
【請求項３６】
前記コンピューティングシステムに前記規則を指定させるようにするための命令を含む、請求項１５に記載のソフトウェア。
【請求項３７】
前記コンピューティングシステムに前記規則の指定を受け取らせるようにするための命令を含む、請求項１５に記載のソフトウェア。
【請求項３８】
前記アプリケーションのモジュールから出力されたデータ記録の第２の量を決定するステップが、前記モジュールから出力された前記データ記録を数えるステップを含む、請求項１５に記載のソフトウェア。
【請求項３９】
前記アプリケーションのモジュールから出力されたデータ記録の第２の量を決定するステップが、
前記モジュールの第１の出力ポートから出力された前記データ記録を数えるステップと、
前記第１の出力ポートから出力されたデータ記録の数、および前記モジュールに入力されたデータ記録の数に基づいて、前記モジュールの第２の出力ポートから出力されたデータ記録の数を計算するステップと
を含む、請求項１５に記載のソフトウェア。
【請求項４０】
前記アプリケーションの前記待ち時間を決定するステップが、前記アプリケーションが前記データ記録を受け取るときの開始時刻と、前記アプリケーションが前記データ記録の処理を終了するときの終止時刻とに基づいて前記待ち時間を決定するステップを含む、請求項１５に記載のソフトウェア。
【請求項４１】
前記アプリケーションが、前記第１の量および前記第２の量が前記規則を満たしたときに、前記データ記録の処理を終了している、請求項４０に記載のソフトウェア。
【請求項４２】
前記コンピューティングシステムに、前記データ記録のうちの特定の１つが前記アプリケーションの前記モジュールで処理されるときの時刻を記録させるようにするための命令を含む、請求項１５に記載のソフトウェア。
【請求項４３】
前記コンピューティングシステムに、前記記録された時刻に基づいて前記モジュールの待ち時間を決定させるようにするための命令を含む、請求項４２に記載のソフトウェア。
【請求項４４】
前記コンピューティングシステムに、携帯電話システムから前記データ記録を受け取らせるようにするための命令を含む、請求項１５に記載のソフトウェア。
【請求項４５】
前記データ記録が、携帯電話システムの第１のタイプのスイッチによって処理された第１のデータ記録と、前記携帯電話システムの第２のタイプのスイッチによって処理された第２のデータ記録とを含む、請求項１５に記載のソフトウェア。
【請求項４６】
前記コンピューティングシステムに、前記モジュールによる前記データ記録の前記出力と関連付けられた時刻に基づいて、前記アプリケーションに関連した前記待ち時間を決定させるようにするための命令を含む、請求項１５に記載のソフトウェア。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、データ処理アプリケーションの監査に関する。
【背景技術】
【０００２】
携帯電話通信システムでは、通信（たとえば、電話コール）を表すデータは、その通信データをビリングデータに変換するために、データ処理アプリケーションによって処理される。
【発明の概要】
【０００３】
一般的な態様では、方法は、複数のモジュールを有するアプリケーションで受け取られたデータ記録のストリームからの、データ記録の群中のデータ記録の第１の量を決定するステップを含む。方法は、アプリケーションのモジュールのうちの１つ以上に関して、データ記録の群の処理中にモジュールによって出力されたデータ記録のそれぞれの第２の量を決定するステップを含む。方法は、データ記録の第１および第２の量が規則を満たすかどうかを判定するステップを含む。この規則は、アプリケーションで受け取られたデータ記録の量と、アプリケーションの１つまたは複数のモジュールによって出力されたデータ記録の量との間のターゲット関係を表す。
【０００４】
実施形態は、以下のうちの１つ以上を含むことができる。
【０００５】
方法は、規則が満たされたかどうかを表す報告書を提供するステップを含む。
【０００６】
アプリケーションは、複数の出力ポートを含む特定の構成要素を含み、そのターゲット関係は、特定のモジュールで受け取られた記録の量が、特定のモジュールの各出力ポートを通して出力された記録の量と等しいことを表すものを含む。
【０００７】
アプリケーションは、受け取ったそれぞれの記録の入力量に対する記録の出力量を出力する特定のモジュールを含み、この入力量は出力量と異なっており、ターゲット関係は入力量と出力量の比を表すものを含む。
【０００８】
方法は、規則を指定するステップを含む。
【０００９】
方法は、規則の指定を受け取るステップを含む。
【００１０】
アプリケーションのモジュールから出力されたデータ記録の第２の量を決定するステップは、特定のモジュールから出力されたデータ記録を数えるステップを含む。
【００１１】
アプリケーションの特定のモジュールから出力されたデータ記録の第２の量を決定するステップは、特定のモジュールの第１の出力ポートから出力されたデータ記録を数えるステップと、第１の出力ポートから出力されたデータ記録の数、および特定のモジュールに入力されたデータ記録の数に基づいて、特定のモジュールの第２の出力ポートから出力されたデータ記録の数を計算するステップとを含む。
【００１２】
方法は、アプリケーションがデータ記録の群中のデータ記録を受け取るときの開始時刻と、アプリケーションがデータ記録の群中のデータ記録の処理を終了するときの終止時刻とに基づいてアプリケーションの待ち時間を決定するステップを含む。場合によっては、アプリケーションは、第１の量および第２の量が規則を満たしたときに、データ記録の処理を終了している。
【００１３】
方法は、データ記録の群のデータ記録のうちの特定の１つが、アプリケーションのモジュールのうちの特定の１つで処理されるときの時刻を記録するステップを含む。
【００１４】
方法は、記録された時刻に基づいて特定のモジュールの待ち時間を決定するステップを含む。
【００１５】
方法は、携帯電話システムからデータ記録を受け取るステップを含む。
【００１６】
データ記録は、携帯電話システムの第１のタイプのスイッチによって処理された第１のデータ記録と、携帯電話システムの第２のタイプのスイッチによって処理された第２のデータ記録とを含む。
【００１７】
一般的な態様では、ソフトウェアがコンピュータ可読媒体に保存される。ソフトウェアは、コンピューティングシステムに、複数のモジュールを有するアプリケーションで受け取られたデータ記録のストリームからの、データ記録の群のデータ記録の第１の量を決定させるようにするための命令を含む。命令はコンピューティングシステムに、アプリケーションのモジュールのうちの１つ以上に関して、データ記録の群の処理時にモジュールにより出力されたデータ記録のそれぞれの第２の量を決定させる。命令はコンピューティングシステムに、データ記録の第１および第２の量が、アプリケーションで受け取られたデータ記録の量と、アプリケーションの１つまたは複数のモジュールによって出力されたデータ記録の量との間のターゲット関係を表す規則を満たすかどうかを判定させる。
【００１８】
一般的な態様では、コンピューティングシステムが、複数のモジュールを有するアプリケーションで受け取られたデータ記録のストリームからの、データの群のデータ記録の第１の量を決定するように構成された少なくとも１つのプロセッサを含む。プロセッサは、アプリケーションのモジュールのうちの１つ以上に関して、データ記録の群の処理中にモジュールによって出力されたデータ記録のそれぞれの第２の量を決定するように構成される。プロセッサは、データ記録の第１および第２の量が、アプリケーションで受け取られたデータ記録の量と、アプリケーションの１つまたは複数のモジュールによって出力されたデータ記録の量との間のターゲット関係を表す規則を満たすかどうかを判定するように構成される。
【００１９】
一般的な態様では、コンピューティングシステムが、複数のモジュールを有するアプリケーションで受け取られたデータ記録のストリームからの、データ記録の群のデータ記録の第１の量を決定するための手段と、アプリケーションの１つまたは複数のモジュールに関して、データ記録の群の処理時にモジュールによって出力されたデータ記録のそれぞれの第２の量を決定するための手段と、データ記録の第１および第２の量が、アプリケーションで受け取られたデータ記録の量と、アプリケーションの１つまたは複数のモジュールによって出力されたデータ記録の量との間のターゲット関係を表す規則を満たすかどうかを判定するための手段とを含む。
【００２０】
諸態様は、以下の利点のうちの１つ以上を含むことができる。
【００２１】
携帯電話システムでは、電話コールまたは他の通信に対応するデータ記録が、ビリング記録を生成するために使用される。本明細書で説明される技法は、データ処理システムの中へ流されるデータ記録のうち、データ処理システムによって失われる、または拒否される量を低減させる助けになり得る。たとえば、データ記録をビリング記録に変換するアプリケーションでは、データ記録損失を最小限にすることが、ビリング記録が実際のアクティビティをより正確に反映して、携帯電話会社の収益の増大をもたらし得ることを確実にする助けになることができる。加えて、本明細書で説明される技法は、ある時間の周期にわたるデータ量についての情報を提供し、それによって、携帯電話会社が通信容量インフラストラクチャのアップグレードをより適切に計画することが可能になる。さらに、本明細書で説明される技法は、アプリケーションの待ち時間についての情報を提供して、アプリケーション開発者がアプリケーションの性能を改善する助けになることができる。
【００２２】
他の特徴および利点は、以下の説明、および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２３】
【図１】データ処理アプリケーションを監査するシステムのブロック図である。
【図２】例示的な監査モジュールのブロック図である。
【図３】例示的な照合調整操作の図である。
【図４】例示的なデータ処理アプリケーションのブロック図である。
【図５】例示的なデータ処理アプリケーションのブロック図である。
【図６】例示的なデータ処理アプリケーションのブロック図である。
【図７】例示的なデータ処理アプリケーションのブロック図である。
【図８】例示的な照合調整報告書の図である。
【図９】例示的な照合調整報告書の図である。
【図１０】例示的な待ち時間報告書である。
【図１１】流れ図である。
【図１２】携帯電話記録を監査するシステムのブロック図である。
【図１３Ａ】例示的なデータ量報告書の図である。
【図１３Ｂ】例示的なデータ量報告書の図である。
【図１３Ｃ】例示的なデータ量報告書の図である。
【発明を実施するための形態】
【００２４】
携帯電話通信記録をビリング記録に変換するアプリケーションなどのデータ処理アプリケーションは、処理するデータ記録のストリームを受信する。データ記録の一部は、失われたり、データ処理アプリケーションのモジュールによって拒否されたり、またはそれとは別にデータ処理アプリケーションによって処理されない可能性がある。データ処理アプリケーションによって受信および出力されるデータ記録の量を監視することが、これらの損失の程度を識別する助けになり得る。この監視データは、データ処理アプリケーションが適正に動作しているかどうかを判定するために使用して、携帯電話通信から適正な収益が回収できることを確実にする助けとすることができる。加えて、データ処理アプリケーションによって処理されるデータ記録の量を経時的に監視することが、電話システム容量インフラストラクチャの変更またはアップグレードについての決定を知らせる助けになり得る。
【００２５】
図１は、データ処理アプリケーションを監査するための技法を使用することができる例示的なデータ処理システム１００を示す。システム１００は、記憶デバイスまたはオンラインデータストリームとの接続など、１つまたは複数のデータの供給源を含むことができるデータ源１０２を含み、そのそれぞれが、様々な形式のいずれか（たとえば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、またはメインフレームで使用されるネイティブフォーマット）でデータを保存または供給することができる。実行環境１０４は、監査モジュール１０６および実行モジュール１１２を含む。実行環境１０４は、ＵＮＩＸ（登録商標）オペレーティングシステムの一バージョンなどの適切なオペレーティングシステムの制御のもとで、たとえば、１つまたは複数の汎用コンピュータでホストすることができる。たとえば、実行環境１０４は、多重ノード並列計算環境を含むことができ、この環境は、複数の中央処理装置（CPU）またはプロセッサコアを使用するコンピュータシステム、局所的な（たとえば、対称型マルチプロセッシング（SMP）コンピュータなどのマルチプロセッサシステム）または局所的に分散された（たとえば、クラスタもしくは超並列処理（MPP）として結合された複数のプロセッサ）システム、または遠隔の、もしくは遠隔に分散された（たとえば、ローカルエリアネットワーク（LAN）および／または広域ネットワーク（WAN）を介して結合された複数のプロセッサ）システム、またはこれらの任意の組合せ、からなる構成を含む。
【００２６】
実行モジュール１１２は、データ源１０２からデータを読み出す。データ源１０２になる記憶デバイスは、たとえば、実行環境１０４をホストするコンピュータに接続された記憶媒体に収納される、実行環境１０４に対して局所的なもの（たとえば、ハードドライブ１０８）とするか、または、遠隔接続（たとえば、クラウドコンピューティングインフラストラクチャによって提供される）を介して、たとえば、実行環境１０４をホストするコンピュータと通信する遠隔システムでホストされる、実行環境１０４に対して遠隔のもの（たとえば、メインフレーム１１０）とすることができる。
【００２７】
実行モジュール１１２は、１つまたは複数のデータ処理アプリケーションを実行して、データ源１０２から読み出されたデータを処理する。このデータ処理アプリケーションは、１つまたは複数のモジュールを含み、そのそれぞれが、モジュールで受信されたデータ記録に対しプロセスを実行する。データ処理アプリケーションによって生成された出力データ１１４は、元のデータ源１０２に保存するか、または実行環境１０４にアクセス可能なデータ記憶システム１１６に保存することができ、またはそれとは別に使用することができる。
【００２８】
監査モジュール１０６は、実行モジュール１１２で実行されるデータ処理アプリケーションのモジュールによるデータ記録の処理を監視する。監査モジュール１０６はまた、監視の結果を分析して、データ処理アプリケーションの性能を表す情報を決定する。たとえば、監査モジュール１０６は、データ処理アプリケーションの１つまたは複数のモジュールによって拒否されるデータ記録の量を決定することができる。監査モジュール１０６は、所与の時間の周期にわたってデータ処理アプリケーションによって処理されたデータ記録の量を決定することができる。監査モジュール１０６は、データ処理アプリケーションによってデータ記録を処理することに関連した待ち時間を決定することができる。データ処理アプリケーションの性能を表す他のものもまた、監査モジュール１０６によって決定することができる。監査モジュール１０６によって決定された性能情報に基づいて、処理の際のエラーを識別することができ（たとえば、破損したデータ記録によるエラー、意図したように機能しないデータ処理アプリケーションのモジュールによるエラーなど）、経時的なデータ処理量の傾向を調べることができ、あるいは他の分析を行うことができる。
【００２９】
データ記憶システム１１６にはまた、開発者１２０が実行モジュール１１２を構成し監視することができる開発環境１１８もアクセス可能である。開発環境１１８は、いくつかの実施態様では、指示されたリンク（作業要素すなわちデータの流れを表す）によって頂点間で接続された頂点（データ処理構成要素またはデータセットを表す）を含むデータフローグラフとしてアプリケーションを開発するためのシステムである。たとえば、そのような環境がより詳細に、参照により本明細書に組み込まれる「Managing Parameters for Graph-Based Applications」という名称の米国特許出願第２００７／００１１６６８号に記載されている。そのようなグラフベースの計算を実行するためのシステムが、参照により本明細書に組み込まれる「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」という名称の米国特許第５，９６６，０７２号に記載されている。このシステムにより作成されたデータフローグラフは、プロセスの間で情報を動かすため、およびプロセスの実行順序を規定するために、グラフ構成要素によって表された個々のプロセスに情報を出し入れするための方法を提供する。このシステムは、任意の利用可能な方法からプロセス間通信方法を選択するアルゴリズムを含む（たとえば、グラフのリンクによる通信経路は、TCP/IPまたはUNIX（登録商標）ドメインソケットを使用するか、または共有メモリを使用してデータをプロセス間で渡すことができる）。
【００３０】
実行モジュール１１２は、データベースシステムの異なる形を含む、データ源１０２を具現化できる様々なタイプのシステムからデータを受け取ることができる。このデータは、場合によりヌル値を含む、それぞれのフィールド（「属性」または「カラム」とも呼ばれる）の値を有する記録として編成することができる。最初にデータ源からデータを読み出すとき、実行モジュールは通常、そのデータ源中の記録についてのいくつかの初期フォーマット情報から開始する。状況によっては、データ源のレコード構造は、最初には知られていない可能性があり、それよりむしろデータ源またはデータの分析後に決定され得る。記録についての初期情報は、たとえば、異なる値を表すビットの数、レコード内のフィールドの順序、およびビットで表される値の種類（たとえば、文字列、符号付き／符号なし整数）を含み得る。
【００３１】
図２を参照すると、監査モジュール１０６は、データ処理アプリケーションによって処理されるデータ記録の量、データ記録のセットを処理することに関連する時間情報（たとえば、クロック時刻）、またはその両方を監視する監視エンジン２００を含む。分析エンジン２０２は監視結果を分析して、データ処理アプリケーションが正常に動作しているか、それともエラーを伴って動作しているかを表すもの、データ処理アプリケーションの待ち時間を表すもの、またはデータ処理アプリケーション性能を表す別のものなどの、データ処理アプリケーションの性能を表す情報を生成する。
【００３２】
監視エンジン２００は、データ処理アプリケーションで受け取られたデータ記録の量を決定することができる。たとえば、監視エンジン２００は、データ処理アプリケーションによる処理が監視されることになる、本明細書では［記録セット」と呼ばれるデータ記録の群を識別することができる。データ処理アプリケーションで最初に受け取られたデータ記録の量は、記録セット中のデータ記録の量であり得る。モジュールから転送されたデータ記録の量、モジュールによって拒否されたデータ記録の量、またはそれとは別にデータ処理アプリケーションのモジュールによって処理されたデータ記録の量は、それぞれの記録セットについて監視することができる。
【００３３】
いくつかの例では、データ記録は、１つまたは複数のファイルからデータ処理アプリケーションが受け取ることができる。各ファイル内のデータ記録は、記録セットとして識別することができる。いくつかの例では、データ記録は、データ記録のストリームとして処理アプリケーションが受け取ることができる。たとえば、データ処理アプリケーションは、データ記録の実質的に連続のストリームをデータ処理アプリケーションに供給する待ち行列にサブスクライブすることができる。監視エンジン２００は、たとえば記録セットの定義に基づいて、データ記録のストリームのサブセットを記録セットとして識別することができる。いくつかのケースでは、記録セットは、ある固定数のデータ記録を含むように定義することができる（たとえば、ストリーム内の１０００個のデータ記録の各連続群を１つの記録セットとして識別することができる。）。いくつかのケースでは、記録セットは、ある固定された時間の周期にわたってデータ処理アプリケーションに流されたデータ記録を含むように定義することができる（たとえば、それぞれ連続１０分間の時間周期中に流されるデータ記録を１つの記録セットとして識別することができる）。１つの記録セット中のデータ記録の量は、たとえばストリーミング速度、または単位時間当たりに流されるデータ記録の数に影響を及ぼす他の要因に応じて、記録セットごとに固定されても変化してもよい。記録セットについての他の定義もまた可能である。記録セットの定義は、たとえばユーザまたはデータ処理アプリケーションの開発者によって、固定されても指定されてもよい。
【００３４】
監視エンジン２００は、データ処理アプリケーションから転送される記録セットによりデータ記録の量を決定することができる。モジュールが、そのモジュールの通常動作の一部として、データ処理アプリケーションからデータ記録を転送することができる。たとえば、フィルタモジュールが、フィルタ基準を満たさないデータ記録を外へ転送する（すなわち、出力する）ことができる。この例では、監視エンジンは、フィルタモジュールから転送されることが監視されている記録セット中のデータ記録の量を決定することができる。データ処理アプリケーションの最後のモジュールは、たとえばデータ記録を待ち行列に向けて発行すること、データ記録をファイルに書き込むことなどによって、データ処理アプリケーションからデータ記録を転送（すなわち、出力）することができる。この例では、監視エンジンは、データ処理アプリケーションの最後のモジュールから転送される記録セット中のデータ記録の量を決定することができる。
【００３５】
監視エンジン２００は、データ処理アプリケーションのモジュールによって誤って拒否されるデータ記録の量を記録セットから決定することができる。たとえば、モジュールが、拒否されたデータ記録中のエラー（たとえば、フォーマットエラー、破損したデータ記録、または別のデータ記録エラー）、データ記録の処理の際のエラー（たとえば、モジュールによるデータ記録の処理時の誤動作、または別の処理エラー）、または別の種類のエラーにより、データ記録を拒否する可能性がある。
【００３６】
監視エンジン２００は、データ記録の処理時に発生するデータ記録の量の変化を監視することができる。たとえば、ロールアップモジュールまたは結合モジュールが、複数の入力記録を単一の出力記録に合体させることができる。分割モジュールが、各入力記録を複数の出力記録に分けることができる。いくつかの例では、入力記録の量と出力記録の量との比が固定される（たとえば、4つの入力記録ごとに単一の出力記録に合体させる4:1ロールアップモジュール）。いくつかの例では、この比は可変である（たとえば、共通結合キーを共有する特定の時間範囲内のいかなる入力記録も単一の出力記録に合体させる結合モジュール）。
【００３７】
いくつかの例では、監視エンジン２００は、データ処理アプリケーションの特定の点で記録の量を決定するデータ処理アプリケーションの１つまたは複数の監査モジュールからデータを受け取ることができる。たとえば、監査モジュールをデータ処理アプリケーションへの各入力部、データ処理アプリケーションからの各転送出力部、データ処理アプリケーションからの各拒否出力部、およびデータ記録の量を変える各モジュールに配置することができる。これらの監査モジュールは、各点でデータ記録の量を決定することができる。いくつかの例では、監査モジュールは、データ処理アプリケーションの別々のモジュールである。いくつかの例では、監査機能は、処理モジュール自体の論理回路に含まれる。
【００３８】
いくつかの例では、監視エンジン２００は、記録セットのデータ記録を処理することに関連した時間情報（たとえば、クロック時刻）を監視する。たとえば、監視エンジン２００は、記録セットの特定のデータ記録（たとえば、最初のデータ記録、最後のデータ記録、または1つもしくは複数の他の特定のデータ記録）が、データ処理アプリケーションの特定のモジュールで受け取られるとき、データ処理アプリケーションの特定のモジュールによって転送されるとき、データ処理アプリケーションの特定のモジュールによって拒否されるとき、またはそれとは別にデータ処理アプリケーションの特定のモジュールによって処理されるときの時刻を監視することができる。いくつかの例では、監視エンジン２００は、記録セットのいずれかのデータ記録を処理することと関連付けられた最も早期のクロック時刻と、記録セットのいずれかのデータ記録を処理することと関連付けられた最も後期のクロック時刻とを監視する。
【００３９】
いくつかの例では、監視結果（たとえば、データ処理アプリケーションの様々な点におけるデータ記録の量、データ記録処理に関連した時間など）が、監視データベース２０４などのデータ構造体に保存される。
【００４０】
分析エンジン２０２は、記録セットの処理の監視結果を分析して（たとえば、監視データベース２０４に保存された結果にアクセスすることによって）、データ処理アプリケーションが正常に動作しているか、それともエラーを伴って動作しているかを表すもの、データ処理アプリケーションの待ち時間を表すもの、またはデータ処理アプリケーション性能を表す別のものなど、データ処理アプリケーションの性能を表す情報を生成する。
【００４１】
いくつかの例では、分析エンジンは、監視エンジン２００によって決定されたデータ記録の量に照合調整規則を適用する。照合調整規則は、データ処理アプリケーションで受け取られたデータ記録の量、データ処理アプリケーションから転送されたデータ記録の量、データ処理アプリケーションによって拒否されたデータ記録の量などの間のターゲット関係を反映する式（たとえば、演算式）である。特定の記録セットの処理で満たされない照合調整規則は、記録セットの処理時にエラーが発生したことを表示し得る。特定の記録セットの処理で満たされる照合調整規則は、記録セットの処理時にデータ処理アプリケーションが適正に動作したことを表示し得る。いくつかの例では、記録セットの処理への照合調整規則の適用結果（たとえば、照合調整規則が満たされたかどうか）は、監視データベース２０４に保存することができる。
【００４２】
１つの例示的な照合調整規則は、データ処理アプリケーションで受け取られたデータ記録の量が、データ処理アプリケーションから転送されたデータ記録の量に、データ処理アプリケーションによって拒否されたデータ記録の量を加えたものに等しくなるべきことを指定することができる。
入った記録−転送された記録−拒否された記録＝０
【００４３】
この照合調整規則が特定の記録セットの処理で満たされない場合、これは、誤動作しているモジュール（たとえば、そうすべきでないときに記録を受け取る、転送する、かつ／または拒否するモジュール）、モジュールの不適正な構成、または別の性能上の問題などのエラーがあることを示している可能性がある。
【００４４】
別の例示的な照合調整規則は、データ処理アプリケーションで受け取られたデータ記録の量が、データ処理アプリケーションから転送されたデータ記録の量に等しくなるべきことを指定することができる。
入った記録−転送された記録＝０
【００４５】
この照合調整規則は、あるデータ記録がデータ処理アプリケーションのいずれかのモジュールから誤って拒否された場合には、満たされない可能性がある。この照合調整規則を満たさない記録セットの処理は、１つまたは複数のデータ記録の問題（たとえば、フォーマット問題、または破損したデータ記録）、データ処理アプリケーションのモジュールの不適正な構成または誤動作、または別の性能上の問題があることを示している可能性がある。
【００４６】
他の照合調整規則もまた実施可能である。たとえば、４：１ロールアップモジュールを含むデータ処理アプリケーションの照合調整規則では、部分的に、ロールアップモジュール前のデータ記録の量がロールアップモジュール後のデータ記録の量の４倍になることを指定することができる。
【００４７】
データ処理アプリケーションの照合調整規則は、たとえば、データ処理アプリケーションの開発者またはユーザが指定することができる。照合調整規則は、たとえばデータ処理アプリケーションを通るデータ記録の流れの分析に基づいて、分析エンジン２０２が自動的に開発することができる。特定のデータ処理アプリケーションと関連する照合調整規則は、規則データベース２０６などのデータ構造体に保存することができる。
【００４８】
いくつかの例では、照合調整規則は、データ処理アプリケーションの各個別モジュールの照合操作を合体させることによって開発することができる。照合調整操作はまた、規則データベース２０６に保存することもできる。図３を参照すると、データ処理アプリケーションに含めることができる個々のモジュールにそれぞれが対応する例示的な照合調整操作３００のセットが示されている。たとえば、サブスクライブ操作３０２は、データ記録のストリームを待ち行列からデータ処理アプリケーションの中に読み出すサブスクライブモジュールに対応する。サブスクライブ操作は、サブスクライブモジュールによって読み出されたデータ記録の量を照合調整規則に加える命令を含む。フィルタモジュールに対応するフィルタ操作３０４は、データ処理アプリケーションからフィルタモジュールの選択解除ポートを経由して転送されたデータ記録の量を引き算する命令を含む。フィルタ操作３０４はさらに、データ記録からの転送が正常（すなわち、無エラー）操作であることの命令を含む。翻訳モジュールに対応する翻訳操作３０６は、翻訳モジュールによって拒否されたデータ記録の量を引き算し、その引き算をエラー操作として表す命令を含む。
【００４９】
いくつかの例では、分析エンジン２０２は、記録セットのデータ記録を処理することに関連した時間を分析して、データ処理アプリケーション全体としての待ち時間（「終端間待ち時間」と呼ばれる）、データ処理アプリケーションの１つまたは複数のモジュールの待ち時間などの、１つまたは複数の待ち時間を決定することができる。たとえば、データ処理アプリケーションによる記録セットの処理に関する終端間待ち時間は、記録セットのいずれかのデータ記録と関連付けられた最も早期の時刻と、データ処理アプリケーションに対する照合調整規則が記録セットの処理に関して満たされたときの時刻（すなわち、記録セットのいずれかのデータ記録と関連付けられた最も後期の時刻）との間の時間差と定義することができる。データ処理の特定のモジュールの待ち時間もまた、たとえば記録セットのいずれかのデータ記録を特定のモジュールで処理することと関連付けられた最も早期の時刻と、記録セットのいずれかのデータ記録を特定のモジュールで処理することと関連付けられた最も後期の時刻との間の時間差を決定することによって、決定することができる。いくつかの例では、記録セットの処理の待ち時間を表すデータは、監視データベース２０４に保存することができる。
【００５０】
図４を参照すると、例示的なデータ処理アプリケーション４００の性能は、監査モジュール４０２ａ、４０２ｂ、４０２ｃ、４０２ｄ、４０２ｅ（一括して「４０２」と呼ばれる）によって監査することができる。各監査モジュール４０２は、監査モジュールを通過する記録の量を数え、その量を示すメッセージを監査モジュール１０６に与える。各監査モジュール４０２はまた、１つまたは複数の特定の記録（たとえば、各記録セットの最初の記録、各記録セットの最後の記録、１００番目の記録ごと、すべての記録など）が監査モジュールを通過する時刻を記録することもできる。
【００５１】
例示的なデータ処理アプリケーション４００では、データ記録のストリームが待ち行列４０４から受け取られる。受け取られたデータ記録のストリームは監査モジュール４０２ａを通過し、このモジュールは各記録セットの記録の量（A）を数える。記録セットの定義は、監査モジュール４０２ａの論理回路に組み込むか、または監査モジュール１０６によって監査モジュール４０２ａに伝えることができる。
【００５２】
記録セットは、フィルタモジュール４０６で処理され、このモジュールは、フィルタの基準を満たさないデータ記録を選択解除ポート４０８を通して転送する。転送されたデータ記録は監査モジュール４０２ｂを通過し、このモジュールは、各記録セット中の転送データ記録の量（B）を数える。フィルタの基準を満たすデータ記録は、フィルタモジュール４０６から出力ポート４１０を通して出力され、再フォーマットモジュール４１２で処理される。再フォーマットモジュール４１２で指定されるフォーマット基準を満たさないデータ記録はどれも、拒否ポート４１４を通して誤って拒否される。拒否されたデータ記録は監査モジュール４０２ｃを通過し、このモジュールは、各記録セット中の転送データ記録の量（C）を数える。残りのデータ記録は、再フォーマットモジュール４１２から出力ポート４１６を通して出力される。
【００５３】
次に、データ記録は翻訳モジュール４１８で処理される。翻訳モジュールは、データ記録を転送または拒否しない。翻訳モジュールに入るデータ記録の量は、翻訳モジュールから出るデータ記録の量と合致するので、翻訳モジュールに対する監査は行われない。次に、論理モジュール４２０がデータ記録を処理する。論理モジュール４２０は、待ち行列４２２への発行のためにデータ記録を転送する。待ち行列４２２への発行の前に、監査モジュール４０２ｄが、各記録セット中の転送されたデータ記録の量（D）を数える。監査モジュール４０２ｅが、待ち行列４２２から誤って拒否されるデータ記録の量（E）すべてを数える。
【００５４】
データ処理アプリケーション４００の例示的な照合調整規則は、次のように表現することができる。
Ａ−Ｂ−Ｃ−Ｄ−Ｅ＝０
つまり、データ処理アプリケーションで受け取られた記録セット中のデータ記録の量（A）から、拒否されたデータの量（C、E)を引いて、データ処理アプリケーションから転送されたデータ記録の量（B、D）を引くと、満たされるべき照合調整規則ではゼロになる（すなわち釣り合う）はずである。処理が照合調整規則を満たす記録セットは、データ処理アプリケーションが適正に動作している可能性があることを示す。処理が照合調整規則を満たさない記録セットは、データ処理アプリケーションの実行時に問題があり得ることを示す。たとえば、照合調整規則が釣り合わないことは、モジュール（たとえば、翻訳モジュール４１８）が予想外にデータ記録を拒否していることを示している可能性がある。照合調整規則が釣り合わないことはまた、モジュールが、たとえばロールアップ動作または結合動作によってデータ記録の量を予想外に変えていることを表示している可能性もある。他の性能上の問題もまた、照合調整規則が釣り合うことの失敗によって表示され得る。
【００５５】
データ処理アプリケーション４００の別の例示的な照合調整規則は、次のように表現することができる。
Ａ−Ｂ−Ｄ＝０
【００５６】
つまり、データ処理アプリケーションで受け取られた記録セット中のデータ記録の量（A）から、正常動作のもとで転送されたデータ記録の量（B、D）を引くと、満たされる照合調整規則ではゼロになるはずである。処理が照合調整規則を満たす記録セットは、データ処理アプリケーションのいずれかのモジュールから誤って拒否されているデータ記録がない（たとえば、CおよびEがゼロである）ことを示す。処理が照合調整規則を満たさない記録セットは、データ処理アプリケーションの１つまたは複数のモジュールから誤って拒否されているデータ記録がある（たとえば、Cおよび/またはEがゼロではない）ことを表示している可能性がある。他の性能上の問題もまた、照合調整規則が釣り合うことの失敗よって表示され得る。
【００５７】
図５を参照すると、結合モジュール５０８を含む例示的なデータ処理アプリケーション５００の性能を監査することができる。例示的なデータ処理アプリケーション５００では、データ記録の第１の記録セットが第１の待ち行列５０４から受け取られ、第１の記録セット中のデータ記録の量（A）が監査モジュール５０２ａで数えられる。データ記録の第２の記録セットが第２の待ち行列５０６から受け取られ、第２の記録セット中のデータ記録の量（B）が監査モジュール５０２ｂで数えられる。
【００５８】
結合５０８は、第１の記録セットからのデータ記録と第２の記録セットからのデータ記録とを単一セットのデータ記録に合体させる。たとえば、結合モジュール５０８は、２つの記録セットからの関連データ記録を相関させることができる。相関時に拒否されるデータ記録はどれも、拒否ポート５１０を通って誤って拒否される。拒否されたデータ記録（C）の量は、監査モジュール５０２ｃで数えられる。相関させたデータ記録の単一のセットは、出力待ち行列５１２に向けて発行されるようにデータ処理アプリケーション５００から転送される。監査モジュール５０２ｄは結合モジュールから転送されたデータ記録の量（D）を数える。
【００５９】
データ処理アプリケーション５００の例示的な照合調整規則は、次のように表現することができる。
Ａ＋Ｂ−Ｃ−Ｄ＝０
【００６０】
図６を参照すると、ロールアップモジュール６０６を含む例示的なデータ処理アプリケーション６００の性能を監査することができる。この例示的データ処理アプリケーション６００では、データ記録のストリームが、データ処理アプリケーション６００で待ち行列６０４から受け取られる。記録セット中のデータ記録の量（A）は、監査モジュール６０２ａで数えられる。データ記録は、４つのデータ記録の各連続セットを単一のデータ記録に合体させる４：１ロールアップモジュール６０６でロールアップされる。あるロールアップモジュールが、そのロールアップモジュールによって受け取られたデータ記録の量（B'）と出力されたデータ記録の量（B”）との間のマッピング関係（たとえば、比、差、または別の関係）を指定するメタデータと関連付けられる。したがって、４：１ロールアップモジュール６０６では、Ｂ’＝４、およびＢ”＝１になる。
【００６１】
ロールアップモジュール６０６は、出力待ち行列６０８に向けて発行されるように、ロールアップされたデータ記録をデータ処理アプリケーション６００から転送する。監査モジュール６０２ｂは、ロールアップモジュール６０６から転送されたデータ記録の量（B）を数える。
【００６２】
データ処理アプリケーション６００の例示的な照合調整規則は、次のように表現することができる。
Ａ−Ｂ＝０
ここでＢ＝−Ｂ’＋Ｂ”である。
【００６３】
照合調整規則を構築する同様の手法を、各データ記録を複数のデータ記録に分けるモジュールを含むデータ処理アプリケーションに対し取ることができる。
【００６４】
図７を参照すると、ロールアップモジュール７０６を含む例示的なデータ処理アプリケーション７００の性能を監査することができる。この例示的データ処理アプリケーション７００では、データ記録のストリームが待ち行列７０４から受け取られる。受け取られたデータ記録のストリームは監査モジュール７０２ａを通過し、このモジュールは、各記録セット中の記録の量（A）を数える。
【００６５】
データ記録は、結合キーに基づいて４つのデータ記録のセットを単一の出力データ記録に合体させる４：１ロールアップモジュール７０６によってロールアップされる。つまり、たとえば共通結合キーを共有する各４つの記録が単一の出力データ記録にロールアップされる。ロールアップモジュールは、受け取られたデータ記録の量（B'）と、ロールアップモジュールによって出力されたデータ記録の量（B"）との間のマッピング関係を指定するメタデータと関連付けられる。したがって、４：１ロールアップモジュール６０６では、Ｂ’＝４およびＢ”＝１になる。上述のロールアップモジュール６０６とは違って、ロールアップモジュール７０６はまた、ロールアップモジュール７０６の動作中にデータ記録が通って拒否され得る拒否ポート７０８を含むこともできる。拒否されたデータ記録の量（C）は、監査モジュール７０２ｂで数えられる。
【００６６】
ロールアップモジュール７０６は、待ち行列７０８に向けた発行のために、ロールアップされたデータ記録を転送する。監査モジュール７０２ｃは、各記録セット中の転送されたデータ記録の量（B）を数える。
【００６７】
データ処理アプリケーション７００の例示的な照合調整規則は、次のように表現することができる。
Ａ−Ｂ−Ｃ＝０
ここで、Ｂ＝−Ｂ’＋Ｂ”である。
【００６８】
ロールアップモジュールによって拒否されたデータ記録の実際の量（C）がどのように出力データ記録の量（B）と関係があるかを決定することは複雑になり得る。たとえば、ロールアップモジュール７０６で実行される初期化プロセス中にデータ記録が拒否された場合、そのデータ記録は拒否される。しかし、後で受け取られたデータ記録が同一の結合キーを有する場合などでは、拒否されたデータ記録に対応する出力データ記録が依然として生成され得る。ロールアップモジュール７０６で実行されるロールアッププロセス中にデータ記録が拒否された場合には、そのデータ記録は拒否される。しかし、同一の結合キーを有する他のデータ記録を含む出力データ記録は、依然として生成され得る。ロールアップモジュール７０６で実行される最終決定プロセス中にデータ記録が拒否された場合には、４つのロールアップされた入力データ記録に対応する単一の出力データは拒否される。
【００６９】
一例では、この複雑さは、ロールアップモジュール７０６に入力され出力されるデータ記録をマッピングすることによって対処することができる。たとえば、ロールアップモジュール７０６に入力される各データ記録を識別するベクトルを累算することができる。各出力データ記録に対応する入力データ記録は、識別し、ベクトルによって識別された入力データ記録と比較することができる。ベクトルによって識別されるいかなるデータ記録も、出力データ記録中に現われないものを除いて、拒否されると考えることができる。
【００７０】
一例では、ロールアップモジュール７０６に入力される各データ記録は、ヘッダなどの関連識別メタデータを有することができる。ロールアップ構成要素に入力される各データ記録の識別メタデータは、ベクトルに累算することができる（たとえば、V={H1,H2,H3,...,Hn})。各出力データ記録は、出力データ記録にロールアップされた各入力データの識別メタデータを含む、ヘッダなどの関連識別メタデータを有することができる。つまり、たとえば入力データ記録Ｈ１、Ｈ２、Ｈ３およびＨ４をロールアップすることによって形成された出力データ記録は、集合ヘッダＨ１Ｈ２Ｈ３Ｈ４を有することができる。入力データ記録のベクトルを各出力データ記録の集合ヘッダと比較することによって、ロールアップモジュール７０６の実行中に拒否されるかまたは失われたデータ記録を識別することができる。この比較に基づいて決定された拒否データ記録または損失データ記録の量は、ロールアップモジュール７０６によって拒否されたデータ記録の量（C）と考えることができる。いくつかの例では、出力データ記録の集合ヘッダは、データ処理アプリケーション７００の任意の後続のモジュールを通して搬送される。いくつかの例では、集合ヘッダは、ロールアップモジュール７０６の監査が完了した後に簡略化される。たとえば、集合ヘッダＨ１Ｈ２Ｈ３Ｈ４は、ロールアップモジュールの監査の後でＨ１に簡略化することができる。
【００７１】
複数の記録セットにわたるデータ処理アプリケーションの照合調整実施により、データ処理アプリケーションの動作、データ処理アプリケーションの動作に関する何らかの問題の存在、データ処理アプリケーションの動作の際の時間ベース変動、ならびにデータ処理アプリケーションの他の動作特性についての洞察を得ることができる。
【００７２】
図８を参照すると、例示的な照合調整報告書８００は、ある特定のデータ処理アプリケーションによって処理された１８２０個の記録セットの照合調整状態の円グラフ８０２を含む。記録セットの大部分はうまく照合調整されて、データ処理アプリケーションに対する照合調整規則が、記録セット（区域８０４）を処理した後に満たされたことを意味する。８つの記録セットで照合調整が失敗し（区域８０６）、２つの記録セットが、円グラフ８０２が表示された時刻になお照合調整を保留していた（区域８０８）。
【００７３】
いくつかの例では、照合調整報告書８００は、対話型ユーザインターフェースで提示することができる。ユーザは、円グラフ８０２の１つの区域を選択して（たとえば、クリックする、軽くたたく、上でマウスを動かす、または別の方法で選択することによって）、その区域で表された記録セットについてのより多くの情報を受け取ることができる。たとえば、区域８０６を選択することによって、ユーザには、照合調整が失敗した８つの記録セットについてデータ処理アプリケーションの各監査モジュールで数えられたデータ記録の量のリストまたは表が提示され得る。この情報に基づいて、ユーザは、記録セットが照合調整しなくなった問題が発生したデータ処理アプリケーション中の点を識別することが可能であり得る。ユーザインターフェースはまた、ユーザが、円グラフに表示された照合調整のタイプを選択すること（たとえば、ある特定のモジュールの終端間照合調整または照合調整）、ならびに照合調整報告書８００の表示の他の態様を制御することを可能にすることもできる。
【００７４】
図９を参照すると、別の例示的な照合調整報告書９００は、データ処理アプリケーションの特定のモジュールの内外に転送されたデータ記録（報告書９０２）と、データ処理アプリケーション全体として内外に転送されたデータ記録（報告書９０４）との集合量を示す。この特定のモジュールの照合調整報告書９０２は、１４４５個のデータ記録の記録セットがモジュール（９０６）で受け取られ、このモジュールから外に（９０８）またはモジュールの中に（９１０）転送された記録がなく、１４４５個の記録がモジュール（９１２）によって出力されたことを表示する。つまり、モジュールの中への記録の量は、モジュールから外への記録の量と合致し、記録セットは、このモジュールでは照合調整した。データ処理アプリケーションの終端間照合調整の照合調整報告書９０４は、７２９個のデータ記録の記録セットが受け取られ（９１４）、７２９個のデータ記録がデータ処理アプリケーションから外へ転送され（９１６）、９２９個のデータ記録がデータ処理アプリケーションの中に転送され（９１８）、データ処理アプリケーションによっては記録が出力されなかった（９２０）ことを示す。データ処理アプリケーションの中への記録の量は、データ処理アプリケーションから外への記録の量と合致しないので、このデータ処理アプリケーションでは、記録セットは照合調整が失敗した。
【００７５】
図１０を参照すると、待ち時間報告書１０００は、データ処理アプリケーションによって処理された記録セットについて照合調整に対する時間を示す棒グラフ１００２を含む。記録セットの大多数は一分以内に照合調整した（棒１００４）。少数の記録セットが、照合調整するのに２時間も要した（棒１００６）。待ち時間報告書は、対話型ユーザインターフェースについて提示することができる。ユーザは、棒を選択して（たとえば、クリックする、軽くたたく、上でマウスを動かす、または別の方法で選択することによって）、その棒で表された記録セットについてより多くの情報を受け取ることができる。たとえば、図示の例では、ユーザは、１０分以内に照合調整した記録セットを表す棒１００８を選択した。ポップアップウインドウ１０１０が、選択された棒１００８について照合調整のタイプ（終端間照合調整）、照合調整時間（１０分）、およびデータ記録の量（１４７７２個の記録）を表示する。待ち時間報告書１０００はまた、棒グラフで表示される照合調整のタイプを選択すること（たとえば、ある特定のモジュールの終端間照合調整または照合調整）、記録数、総記録との比率または他の表示としてデータを表示すること、ならびに待ち時間報告書１０００の表示の他の態様を、ユーザが制御することを可能にする。
【００７６】
待ち時間情報は、データ処理アプリケーション、データ源、またはその両方に関して起こり得る問題をユーザが理解する助けになり得る。たとえば、待ち時間が大きいことは、データ処理アプリケーションがサブスクライブする待ち行列が、連続的なデータのストリームを供給していないことを示している可能性がある。大きい待ち時間はまた、データ源がそのデータを十分な頻度で供給していないことを示している可能性もある。たとえば、データ処理アプリケーションのモジュールは、それがデータ源からデータを受け取るまでその計算を実行できない可能性があり、そのデータ源がデータを供給するのが遅い場合、そのモジュールがデータ処理アプリケーションに待ち時間を導入することになる。
【００７７】
他の照合調整報告書もまた表示することができる。たとえば、入力データ記録、拒否データ記録、または他のデータ記録の量など、経時的なデータ記録量のグラフを表示することができる。上記の例においてグラフで表示されたデータはまた、表形式または他の形式で表示することもできる。
【００７８】
図１１を参照すると、データ処理アプリケーションを監査する一般的な手法で、複数のモジュールを有するアプリケーションで受け取られたデータ記録の群のデータ記録の第１の量を決定することができる（１１００）。たとえば、ある記録セットが識別され、その記録セット中のデータ記録の量が決定される。アプリケーションモジュールのうちの１つまたはそれ以上について、データ記録の群の処理中にモジュールから出力されるデータ記録それぞれの第２の量を決定することができる（１１０２）。たとえば、モジュールによって転送されるデータ記録の量、もしくはモジュールによって拒否されるデータ記録の量、またはその両方が決定される。
【００７９】
データ記録の第１および第２の量が規則を満たすかどうかの決定を行うことができ、ここで規則は、アプリケーションで受け取られたデータ記録の量と、アプリケーションの各構成要素によって出力されたデータ記録の量との間のターゲット関係を示す（１１０４）。たとえば、ある規則は、アプリケーションで受け取られたデータ記録の量が、たとえば転送または拒否されることによってアプリケーションを出るデータ記録の量に等しいことを指定することができる。別の規則は、アプリケーションで受け取られたデータ記録の量が、アプリケーションから転送されたデータ記録の量に等しいことを指定することができる。別の規則は、ロールアップモジュールまたは結合モジュールなどの、データ記録の量を変えるアプリケーションのモジュールを考慮に入れることができる。
【００８０】
いくつかの例では、アプリケーションの待ち時間はまた、アプリケーションがデータ記録の群中のデータ記録を受け取るときの開始時刻と、アプリケーションがデータ記録の群中のデータ記録の処理を終了するときの終止時刻とに基づいて決定することもできる（１１０６）。
【００８１】
いくつかの例では、規則が満たされたかどうかを表示する報告書を提供することができる（１１０８）。
【００８２】
図１２を参照すると、一例では、本明細書で説明された記録セット照合調整の手法は、携帯電話記録の処理の分析に適用することができる。携帯電話システム１２００では、携帯電話１２０４または他の通信デバイスからの電話コールなどの通信情報１２０２は、１つまたは複数の基地局１２０６、および汎用パケット無線サービス（GPRS））コアネットワーク１２０８のノードで処理される。ＧＰＲＳネットワークは、ゲートウェイＧＰＲＳサポートノード（GGSN）１２１０、およびサービングＧＰＲＳサポートノード１２１２（SGSN）を含み、そのどちらかまたは両方で通信情報１２０２を処理することができる。ＧＧＳＮ  １２１０およびＳＧＳＮ  １２１２それぞれからの、通信情報１２０２の時刻、継続時間、位置などについてのデータなど、データ１２１４、１２１６は、サーバ１２２０でホストされるデータ分析システム１２１８に供給される。データ分析システム１２１８は、データ１２１４、１２１６を処理し、その処理データ１２２２を監査データ１２２３と共に、ビリング、分析またはさらなる処理のための下流システム１２２４へ送信する。
【００８３】
データ分析システム１２１８は、データ１２１４、１２１６を処理するために１つまたは複数のデータ処理アプリケーションを実行する実行モジュール１２１７（図１に関して上述した実行モジュール１１２など）を含む。たとえば、データ処理アプリケーションは、データ１２１４、１２１６をソートまたはフィルタリングすること、同じ通信情報１２０２に対応するＳＧＳＮ  １２１２からのデータ１２１４とＧＧＳＮ  １２１４からのデータ１２１６とを相関させること、またはデータ１２１４、１２１６に対し他のデータ処理を行うことができる。監査モジュール１２１９（図１および図３に関して上述した監査モジュール１０６など）は、実行モジュール１２１７で実行されるデータ処理アプリケーションのモジュールによるデータ１２１４、１２１６の処理を監視する。監査モジュール１２１９はまた、監視の結果を分析して、データ処理アプリケーションの性能を表す情報を決定する。監査データ１２２６はまた、分析のために、たとえばデータ分析システム１２１８の性能の分析のために、下流システム１２２４へ送信される。
【００８４】
たとえば、監査モジュール１２１９は、データ１２１４、１２１６でどれか処理時にデータ分析システム１２１８により誤って失われているか、または拒否されているかどうかを判定することができる。処理時にデータが失われる場合、その失われたデータで表された通信情報の料金は顧客に請求することができず、電話会社の収益の損失になる。システム開発者は、データ損失を低減させ、それによって収益を増大させるために、失われるかまたは破損したデータについての監査モジュール１０６からの情報を使用して、データ処理アプリケーションに変更または改善を加えることができる。
【００８５】
監査モジュール１２１９はまた、データ分析システム１２１８で処理されたデータの量（本明細書では「データ量」と呼ばれる）を追跡することもできる。たとえば、図１３Ａを参照すると、一例において監査モジュール１２１９は、データ分析システム１２１８で処理されたデータの量を１日の期間にわたって１時間ごとに示す報告書１０を生成することができる。図１３Ｂを参照すると、一例において監査モジュール１２１９は、ＧＧＳＮ  １２１０で処理されたデータ１２１４の量、およびＳＧＳＮ  １２１２で処理されたデータ１２１６の量を１日の期間にわたって１時間ごとに示す報告書１２を生成することができる。図１３Ｃを参照すると、一例において監査モジュール１２１９は、特定の日（描写された例では、2012/05/09）の特定の時刻（描写された例では、11:00）にＧＧＳＮ  １２１０で処理されたデータ１２１４の量、およびＳＧＳＮ  １２１２で処理されたデータ１２１６の量を示す報告書１４を生成することができる。特定の時間周期中に発生したあらゆるエラーの性質を示す報告書１６もまた、生成することができる。
【００８６】
他の時間周期にわたるデータ量もまた追跡することができる。たとえば、データ量は、時間、日、月、または別の時間周期で追跡して、ある時間の周期にわたるデータ量の傾向を示すことができる。データ量はまた、通信の地理的特性（たとえば、通信の起点の位置、通信の宛先の位置、または通信の処理に関わるどれかの、もしくはすべての基地局１２０６またはノード１２１０、１２１２の位置）などの、データの１つまたは複数の特性によって追跡およびソートすることもできる。
【００８７】
ある時間の周期にわたるデータ量の傾向を理解することは、電話ネットワーク容量インフラストラクチャの変更またはアップグレードを計画する際の助けになり得る。一例では、１年の期間にわたり処理されたデータの量の増大を会社で用いて、追加の容量インフラストラクチャを構築することについての決定を通知することができる。一例では、地理的領域で処理されたデータの量を会社で用いて、追加の容量インフラストラクチャをどこに構築するかについての決定を通知することができる。
【００８８】
監査モジュール１２１９はまた、データ処理アプリケーションの待ち時間、データ処理アプリケーションの１つもしくは複数の特定のモジュールの待ち時間、またはその両方を決定することもできる。待ち時間情報は、たとえば、データ処理アプリケーションの問題、データ源での問題、または他の問題を識別するのに使用することができる。
【００８９】
一例では、再び図１２を参照すると、ＧＧＳＮ  １２１０は、そのデータ１２１４を１分ごとにデータ分析システム１２１８に送信するが、ＳＧＳＮ  １２１２は、そのデータ１２１６を１５分ごとにデータ分析システム１２１８に送信する。この例では、ＧＧＳＮデータ１２１４とＳＧＳＮデータ１２１６を相関させる相関モジュールは、それがすでに受信しているＧＧＳＮデータ１２１４と相関させるために、ＳＧＳＮデータ１２１６を１５分間まで待たなければならない可能性がある。この待機により、待ち時間がデータ処理アプリケーションに導入される。システム開発者は、データの流れから生じる待ち時間についての知識を用いて、たとえばネットワーク１２０８の構造、データ処理アプリケーション、またはその両方に変更を加えることができる。
【００９０】
別の例では、待ち時間が、システム故障停止の結果としてのシステムバックログによって導入され得る。たとえば、データ分析システム１２１８が概してその総容量の８０％で動作する場合（すなわち、データ分析システム１２１８で処理されるデータの量は、データ分析システム１２１８が処理できるデータの最大量の約８０%である）、データ分析システム１２１８の１日の故障停止により、処理するのに５日を要するデータのバックログが発生し得る。会社がバックログ関連待ち時間についての知識を用いて、たとえば容量計画決定を通知することができる。
【００９１】
いくつかの例では、データ記録量の代わりに、またはそれに加えて、他の情報を監視および分析することができる。たとえば、データ処理アプリケーションによってバイト数を追跡することができ、この情報を使用して、たとえばシステム性能を監視すること、また将来の容量計画決定を通知するのを助けることができる。各データ記録または各記録セットと関連付けられた収益のドルを追跡することができる。他の情報もまた追跡することができる。
【００９２】
本明細書で説明されたデータ処理アプリケーションを監査する手法は、適切なソフトウェアを実行するコンピューティングシステムを使用して実装することができる。たとえば、ソフトウェアは、プログラムされた、またはプログラム可能な１つまたは複数のコンピューティングシステム（分散型、クライアント／サーバ、またはグリッドなどの様々なアーキテクチャとすることができる）によって実行される１つまたは複数のコンピュータプログラムの形の手順を含むことができ、コンピューティングシステムのそれぞれは、少なくとも１つのプロセッサ、少なくとも１つのデータ記憶システム（揮発性および／または不揮発性メモリ、および／または記憶要素を含む）、少なくとも１つのユーザインターフェース（少なくとも1つの入力デバイスまたは入力ポートを使用して入力を受け取り、少なくとも1つの出力デバイスまたは出力ポートを使用して出力を供給するためのもの）を含む。ソフトウェアは、たとえば、設計、構成、およびデータフローグラフの実行に関連したサービスを提供する、より大きいプログラムの１つまたは複数のモジュールを含むことができる。プログラムのモジュール（たとえば、データフローグラフの要素）は、データリポジトリに保存されたデータモデルに一致するデータ構造体または他の編成データとして実装することができる。
【００９３】
ソフトウェアは、ＣＤ−ＲＯＭまたは他のコンピュータ可読媒体（たとえば、汎用または特定目的のコンピューティングシステムまたはデバイスによって可読）などの有形の持続性媒体に用意すること、またはソフトウェアが実行されるコンピューティングシステムの有形の持続性媒体へネットワークの通信媒体を介して送り出す（たとえば、伝搬信号に符号化する）ことができる。処理の一部または全部は、特定目的コンピュータによって、またはコプロセッサもしくはフィールドプログラマブルゲートアレイ（FPGA）もしくは専用の特定用途向け集積回路（ASIC）などの特定目的ハードウェアを使用して、行うことができる。処理は、ソフトウェアによって指定された異なる計算部分が異なる計算要素によって行われる分散方式で実装することができる。このようなコンピュータプログラムのそれぞれが好ましくは、記憶デバイス媒体がコンピュータに読み出されて本明細書に記載の処理を行うときにコンピュータを構成し動作させるための、汎用または特定目的のプログラム可能コンピュータがアクセス可能な記憶デバイスのコンピュータ可読記憶媒体（たとえば、固体メモリもしくは固体媒体、または磁気媒体もしくは光媒体）に、保存またはダウンロードされる。本発明のシステムはまた、コンピュータプログラムで構成された有形の持続性媒体として実装されると考えることもでき、そのように構成された媒体により、本明細書に記載の処理ステップのうちの１つ以上を実行するようにコンピュータに特定の、および所定の方法で動作させる。
【００９４】
本発明のいくつかの実施形態について説明してきた。しかしながら、上記の説明は本発明を例示するものであり、添付の特許請求の範囲によって定義される本発明の範囲を限定するものではないことを理解されたい。したがって、他の実施形態もまた、添付の特許請求の範囲内にある。たとえば、本発明の範囲から逸脱することなく、様々な改変を加えることができる。加えて、上述の工程の一部は順序非依存性とすることができ、したがって、説明されたものと異なる順序で実行することができる。
【図１】
0006431894.tif 000002
【図２】
0006431894.tif 000003
【図３】
0006431894.tif 000004
【図４】
0006431894.tif 000005
【図５】
0006431894.tif 000006
【図６】
0006431894.tif 000007
【図７】
0006431894.tif 000008
【図８】
0006431894.tif 000009
【図９】
0006431894.tif 000010
【図１０】
0006431894.tif 000011
【図１１】
0006431894.tif 000012
【図１２】
0006431894.tif 000013
【図１３Ａ】
0006431894.tif 000014
【図１３Ｂ】
0006431894.tif 000015
【図１３Ｃ】
0006431894.tif 000016