KR20150132122A - 데이터 처리 애플리케이션의 검사 - Google Patents

데이터 처리 애플리케이션의 검사 Download PDF

Info

Publication number
KR20150132122A
KR20150132122A KR1020157023555A KR20157023555A KR20150132122A KR 20150132122 A KR20150132122 A KR 20150132122A KR 1020157023555 A KR1020157023555 A KR 1020157023555A KR 20157023555 A KR20157023555 A KR 20157023555A KR 20150132122 A KR20150132122 A KR 20150132122A
Authority
KR
South Korea
Prior art keywords
data
module
application
amount
records
Prior art date
Application number
KR1020157023555A
Other languages
English (en)
Other versions
KR101989330B1 (ko
Inventor
레리 폴 로시
Original Assignee
아브 이니티오 테크놀로지 엘엘시
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 아브 이니티오 테크놀로지 엘엘시 filed Critical 아브 이니티오 테크놀로지 엘엘시
Publication of KR20150132122A publication Critical patent/KR20150132122A/ko
Application granted granted Critical
Publication of KR101989330B1 publication Critical patent/KR101989330B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/41Billing record details, i.e. parameters, identifiers, structure of call data record [CDR]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F17/30289
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/43Billing software details
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/70Administration or customization aspects; Counter-checking correct charges
    • H04M15/725Administration or customization aspects; Counter-checking correct charges by the operator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/70Administration or customization aspects; Counter-checking correct charges
    • H04M15/73Validating charges

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

방법은 복수 개의 모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 스트림으로부터, 데이터 레코드의 그룹 중 데이터 레코드의 제 1 양을 결정하는 단계를 포함한다. 이러한 방법은, 애플리케이션의 모듈 중 하나 이상에 대하여, 데이터 레코드의 그룹의 처리 도중에 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하는 단계를 포함한다. 이러한 방법은 데이터 레코드의 제 1 양 및 제 2 양이 규칙을 만족하는지 여부를 결정하는 단계를 포함한다. 규칙은 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 애플리케이션의 하나 이상의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시한다.

Description

데이터 처리 애플리케이션의 검사{AUDITING OF DATA PROCESSING APPLICATIONS}
본 명세서는 데이터 처리 애플리케이션의 검사에 관한 것이다.
이동 전화 통신 시스템에서, 통신(예를 들어, 전화 통화)을 나타내는 데이터는 통신 데이터를 과금 데이터로 변환하기 위하여 데이터 처리 애플리케이션에 의하여 처리된다.
일반적 양태에서, 방법은 복수 개의 모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 스트림으로부터, 데이터 레코드의 그룹 중 데이터 레코드의 제 1 양을 결정하는 단계를 포함한다. 이러한 방법은, 애플리케이션의 모듈 중 하나 이상에 대하여, 데이터 레코드의 그룹의 처리 도중에 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하는 단계를 포함한다. 이러한 방법은 데이터 레코드의 제 1 양 및 제 2 양이 규칙을 만족하는지 여부를 결정하는 단계를 포함한다. 규칙은 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 애플리케이션의 하나 이상의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시한다.
구현형태들은 다음 중 하나 이상을 포함할 수도 있다.
이러한 방법은 규칙이 만족되는지 여부를 표시하는 보고를 제공하는 단계를 포함한다.
애플리케이션은 복수 개의 출력 포트를 포함하는 특정 컴포넌트를 포함하고, 상기 타겟 관련성은 상기 모듈에 의하여 수신되는 레코드의 양이 특정 모듈의 각각의 출력 포트를 통해서 출력되는 레코드의 양과 동일하다는 표시를 포함한다.
애플리케이션은 레코드의 각각의 수신된 입력량에 대해 레코드의 출력량을 출력하는 특정 모듈을 포함하고, 입력량은 상기 출력량과 상이하며, 타겟 관련성은 입력량과 출력량 사이의 비율의 표시를 포함한다.
이러한 방법은 규칙을 특정하는 단계를 포함한다.
방법은 규칙의 사양을 수신하는 단계를 포함한다.
애플리케이션의 특정 모듈에 의하여 출력되는 데이터 레코드의 제 2 양을 결정하는 단계는, 특정 모듈로부터 출력되는 데이터 레코드를 카운트하는 단계를 포함한다.
애플리케이션의 특정 모듈에 의하여 출력되는 데이터 레코드의 제 2 양을 결정하는 단계는, 특정 모듈의 제 1 출력 포트로부터 출력되는 데이터 레코드를 카운트하는 단계; 및 제 1 출력 포트로부터 출력되는 데이터 레코드의 개수 및 특정 모듈로 입력되는 데이터 레코드의 개수에 기초하여 특정 모듈의 제 2 출력 포트로부터 출력되는 데이터 레코드의 개수를 계산하는 단계를 포함한다.
이러한 방법은 애플리케이션의 레이턴시를, 애플리케이션이 데이터 레코드의 그룹 중 상기 데이터 레코드를 수신하는 시작 시간 및 애플리케이션이 데이터 레코드의 그룹 내의 데이터 레코드의 처리를 종료한 종료 시간에 기초하여 결정하는 단계를 포함한다. 몇 가지 경우들에서, 애플리케이션은 제 1 양 및 제 2 양이 상기 규칙을 만족하는 경우 데이터 레코드의 처리를 완료한 바 있다.
방법은 데이터 레코드의 그룹 중 데이터 레코드의 특정한 하나가 애플리케이션의 모듈 중 특정한 하나에 의하여 처리되는 시간을 기록하는 단계를 포함한다.
방법은 기록된 시간에 기초하여 특정 모듈의 레이턴시를 결정하는 단계를 포함한다.
방법은 데이터 레코드를 이동 전화 시스템으로부터 수신하는 단계를 포함한다.
데이터 레코드는 이동 전화 시스템의 제 1 타입의 스위치에 의하여 처리되는 제 1 데이터 레코드 및 이동 전화 시스템의 제 2 타입의 스위치에 의하여 처리되는 제 2 데이터 레코드를 포함한다.
일반적 양태에서, 소프트웨어는 컴퓨터-판독가능 매체에 저장된다. 소프트웨어는 컴퓨팅 시스템이 복수 개의 모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 스트림으로부터, 데이터 레코드의 그룹 중 데이터 레코드의 제 1 양을 결정하게 하는 명령을 포함한다. 명령은 컴퓨팅 시스템이 애플리케이션의 모듈 중 하나 이상에 대하여, 데이터 레코드의 그룹의 처리 도중에 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하게 한다. 명령은 컴퓨팅 시스템이 데이터 레코드의 제 1 양 및 제 2 양이 규칙을 만족하는지 결정하게 하는데, 규칙은 상기 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 애플리케이션의 하나 이상의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시한다.
일반적 양태에서, 컴퓨팅 시스템은 복수 개의 모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 스트림으로부터, 데이터 레코드의 그룹 중 데이터 레코드의 제 1 양을 결정하도록 구성되는 적어도 하나의 프로세서를 포함한다. 프로세서는, 애플리케이션의 모듈 중 하나 이상에 대하여, 데이터 레코드의 그룹의 처리 도중에 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하도록 구성된다. 프로세서는 데이터 레코드의 제 1 양 및 제 2 양이 규칙을 만족하는지 결정하도록 구성되는데, 규칙은 상기 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 애플리케이션의 하나 이상의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시한다.
일반적 양태에서, 컴퓨팅 시스템은 복수 개의 모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 스트림으로부터, 데이터 레코드의 그룹 중 데이터 레코드의 제 1 양을 결정하기 위한 수단; 애플리케이션의 모듈 중 하나 이상에 대하여, 데이터 레코드의 그룹의 처리 도중에 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하기 위한 수단; 및 데이터 레코드의 제 1 양 및 제 2 양이 규칙을 만족하는지 여부를 결정하기 위한 수단을 포함하는데, 규칙은 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 애플리케이션의 하나 이상의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시한다.
양태들은 후속하는 장점들 중 하나 이상을 포함할 수 있다.
이동 전화 시스템에서, 전화 통화 또는 다른 통신에 대응하는 데이터 레코드가 과금 레코드를 생성하기 위하여 사용된다. 본 명세서에서 설명된 기법들은 데이터 처리 시스템 내로 스트리밍되는 데이터 레코드의, 손실되거나 데이터 처리 시스템에 의하여 거절되는 양을 감소시키도록 도울 수 있다. 예를 들면, 데이터 레코드를 과금 레코드로 변환하는 애플리케이션에 대하여, 데이터 레코드 손실을 최소화시키면 과금 레코드가 실제 활동을 더 정확하게 반영할 수 있게 하도록 보장하는 것을 도울 수 있어서, 이동 전화 회사에 대하여 증가된 수익을 초래한다. 추가적으로, 본 명세서에서 설명된 기법들은 어떤 시간 기간 동안의 데이터량에 대한 정보를 제공할 수 있어서, 따라서 이동 전화 회사가 통신 용량 기반구조로의 업그레이드를 더 양호하게 계획할 수 있게 한다. 더욱이, 본 명세서에서 설명된 기법들은 애플리케이션의 레이턴시에 대한 정보를 제공할 수 있고, 애플리케이션 개발자가 애플리케이션의 성능을 개선하도록 돕는다.
다른 특징들, 및 이점들은 후속하는 상세한 설명 및 청구항들로부터 명확하게 될 것이다.
도 1 은 데이터 처리 애플리케이션의 검사를 위한 시스템의 블록도이다.
도 2 는 예시적인 검사 모듈의 블록도이다.
도 3 은 예시적인 조정(reconciliation) 동작의 도면이다.
도 4 내지 도 7 은 예시적인 데이터 처리 애플리케이션의 블록도들이다.
도 8 및 도 9 는 예시적인 조정 보고이다.
도 10 은 예시적인 레이턴시 보고이다.
도 11 은 흐름도이다.
도 12 는 모바일 폰 레코드의 검사를 위한 시스템의 블록도이다.
도 13a 내지 도 13c 는 예시적인 데이터량 보고이다.
데이터 처리 애플리케이션, 예컨대 이동 전화 통신 레코드를 과금 레코드로 변환하는 애플리케이션은 처리하기 위하여 데이터 레코드의 스트림을 수신한다. 데이터 레코드 중 일부는 분실되고 데이터 처리 애플리케이션의 모듈에 의하여 거절되거나, 그렇지 않으면 데이터 처리 애플리케이션에 의하여 처리되지 않을 수도 있다. 모니터링 데이터 처리 애플리케이션에 의하여 수신되고 이에 의하여 출력되는 데이터 레코드의 양은 이러한 손실의 규모를 식별하는 것을 도울 수 있다. 이러한 모니터링 데이터는 데이터 처리 애플리케이션이 정확하게 동작하는지 여부를 결정하도록 사용될 수 있고, 적합한 수익이 이동 전화 통신으로부터 수집될 수 있도록 보장하도록 돕는다. 추가적으로, 시간이 지남에 따라서 데이터 처리 애플리케이션에 의하여 처리되는 데이터 레코드의 양을 모니터링하는 것은 전화 시스템 용량 기반구조에서의 변화 또는 이에 대한 업그레이드에 대한 결정을 통지하는 것을 도울 수 있다.
도 1 은 데이터 처리 애플리케이션의 검사를 위한 기법이 사용될 수 있는 예시적인 데이터 처리 시스템(100)을 도시한다. 시스템(100)은 스토리지 디바이스와 같은 데이터의 하나 이상의 소스 또는 온라인 데이터 스트림으로의 접속을 포함할 수도 있는 데이터 소스(102)를 포함하는데, 이들 각각은 데이터를 다양한 포맷(예를 들어, 데이터베이스 표, 스프레드쉬트 파일, 평텍스트(flat text) 파일, 또는 메인프레임에 의하여 사용되는 네이티브 포맷) 중 임의의 것 내에 저장하거나 제공할 수도 있다. 실행 환경(104)은 검사 모듈(106) 및 실행 모듈(112)을 포함한다. 실행 환경(104)은, 예를 들어 버전 적합한 운영 체제, 예컨대 UNIX 운영 체제의 버전의 제어 하의 하나 이상의 범용 컴퓨터에 호스팅될 수도 있다. 예를 들어, 실행 환경(104)은 로컬이거나(예를 들어, SMP(symmetric multi-processing) 컴퓨터와 같은 다중프로세서 시스템), 또는 국지적으로 분산형이거나(예를 들어, 클러스터 또는 MPP(massively parallel processing) 시스템으로서 커플링되는 다중 프로세서), 또는 원격의, 또는 원격으로 분산형이거나(예를 들어, 근거리 네트워크(LAN) 및/또는 광역 네트워크(WAN)를 통해 커플링되는 다중 프로세서), 또는 이들의 임의의 조합인 다중 중앙 처리 유닛(CPU) 또는 프로세서 코어를 사용하는 컴퓨터 시스템의 구성을 포함하는 다중-노드 병렬 컴퓨팅 환경을 포함할 수 있다.
실행 모듈(112)은 데이터를 데이터 소스(102)로부터 판독한다. 데이터 소스(102)를 제공하는 스토리지 디바이스는, 예를 들어 실행 환경(104)을 호스팅하는 컴퓨터에 연결된 스토리지 매체(예를 들어, 하드 드라이브(108)에 저장되는 실행 환경(104)에 국부적으로 속할 수도 있고, 또는 원격 접속(예를 들어, 클라우드 컴퓨팅 기반구조에 의하여 제공됨)을 거쳐 실행 환경(104)을 호스팅하는 컴퓨터와 통신하는 원격 시스템(예를 들어, 메인프레임(110)에 호스팅되는 실행 환경(104)에 대해 원격일 수도 있다.
실행 모듈(112)은 하나 이상의 데이터 처리 애플리케이션을 실행하여 데이터 소스(102)로부터 판독된 데이터를 처리한다. 데이터 처리 애플리케이션은 하나 이상의 모듈을 포함하고, 이들 각각은 그 모듈에 의하여 수신되는 데이터 레코드에 처리를 실행한다. 데이터 처리 애플리케이션에 의하여 생성되는 출력 데이터(114)는 실행 환경(104)에 액세스가능한 데이터 소스(102) 내에 또는 데이터 스토리지 시스템(116) 내에 저장되거나, 그렇지 않으면 사용될 수도 있다.
검사 모듈(106)은 실행 모듈(112)에 의하여 실행된 데이터 처리 애플리케이션의 모듈에 의한 데이터 레코드의 처리를 모니터링한다. 검사 모듈(106)은 또한 모니터링의 결과를 분석하여 데이터 처리 애플리케이션의 성능을 표시하는 정보를 결정한다. 예를 들면, 검사 모듈(106)은 데이터 처리 애플리케이션의 하나 이상의 모듈에 의하여 거절되는 데이터 레코드의 양을 결정할 수도 있다. 검사 모듈(106)은 주어진 시간 기간에 걸쳐 데이터 처리 애플리케이션에 의하여 처리되는 데이터 레코드의 볼륨을 결정할 수도 있다. 검사 모듈(106)은 데이터 처리 애플리케이션에 의한 데이터 레코드의 처리와 연관되는 레이턴시를 결정할 수도 있다. 데이터 처리 애플리케이션의 성능의 다른 표시도 역시 검사 모듈(106)에 의하여 결정될 수도 있다. 검사 모듈(106)에 의하여 결정된 성능 정보에 기초하여, 처리에서의 오류(예를 들어, 손상된 데이터 레코드에 기인한 오류, 의도된 바와 같이 기능하지 않는 데이터 처리 애플리케이션의 모듈에 기인한 오류 등)가 식별될 수 있고, 시간이 지남에 따르는 데이터 처리 볼륨에서의 경향이 검사될 수 있으며, 또는 다른 분석이 실행될 수 있다.
데이터 스토리지 시스템(116)은 또한 개발자(120)가 실행 모듈(112)을 구성하고 모니터링할 수 있는 개발 환경(118)에 액세스가능할 수도 있다. 몇 가지 구현형태들에서, 개발 환경(118)은 애플리케이션을 꼭지점들 사이의 디렉팅된 링크(작업 엘리먼트, 즉 데이터의 흐름을 나타냄)에 의하여 연결된 꼭지점들(데이터 처리 컴포넌트 또는 데이터셋을 나타냄)을 포함하는 데이터흐름 그래프로서 개발하기 위한 시스템이다. 예를 들어, 이러한 환경은 발명의 명칭이 "Managing Parameters for Graph-Based Applications"인 미국 공개 특허 번호 제 2007/0011668 호에 더욱 상세하게 설명되며, 이것은 원용에 의해 본 명세서에 포함된다. 이러한 그래프-기초 계산을 실행하기 위한 시스템은 미국 특허 제 5,966,072 호인 "EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS"에서 설명되는데, 이것은 원용에 의해 본 명세서에 포함된다. 본 시스템에 따라서 만들어진 데이터흐름 그래프는 정보를 프로세스들 사이에서 이동시키기 위하여, 그리고 그 프로세스에 대한 실행 순서를 정의하기 위하여 그래프 컴포넌트에 의하여 표현되는 개개의 프로세스 내에 집어넣고 그리고 그 밖으로 끄집어내기 위한 방법을 제공한다. 이러한 시스템은 임의의 가능한 방법 중 인터프로세스 통신 방법을 선택하는 알고리즘을 포함한다(예를 들어, 그래프의 링크에 따르는 통신 경로는 TCP/IP 또는 UNIX 도메인 소켓을 사용할 수 있거나 공유 메모리를 사용하여 데이터를 프로세스들 사이에서 전달할 수 있음).
실행 모듈(112)은 데이터 소스(102)를 구현할 수도 있는, 상이한 형태의 데이터베이스 시스템을 포함하는 다양한 타입의 시스템으로부터 데이터를 수신할 수 있다. 데이터는 널(null) 값을 포함하는 것도 가능하며 개별적인 필드("속성" 또는 "열"이라고도 불림)에 대한 값을 가지는 레코드로서 조직화될 수도 있다. 우선 데이터를 데이터 소스로부터 독출하면, 실행 모듈은 통상적으로 그 데이터 소스 내의 레코드들에 대한 몇몇 초기 포맷 정보와 함께 시작한다. 또는 몇몇 상황에서, 데이터 소스의 레코드 구조는 처음에 공지되지 않을 수도 있고 대신에 데이터 소스 또는 데이터의 분석 이후에 결정될 수도 있다. 예를 들어, 레코드에 대한 초기 정보는 별개의 값을 나타내는 비트수, 레코드 내의 필드의 순서, 및 그 비트에 의하여 표현되는 값의 타입(예를 들어, 스트링, 부호/무부호 정수)을 포함할 수 있다.
도 2 를 참조하면, 검사 모듈(106)은 데이터 처리 애플리케이션에 의하여 처리되는 데이터 레코드의 양, 한 세트의 데이터 레코드의 처리와 연관된 시간적 정보(예를 들어, 클록 시간), 또는 양자 모두를 모니터링하는 모니터링 엔진(200)을 포함한다. 분석 엔진(202)은 모니터링의 결과를 분석하여 데이터 처리 애플리케이션의 성능을 표시하는 정보, 예컨대 데이터 처리 애플리케이션이 정상적으로 동작하거나 오류가 있는지 여부의 표시, 데이터 처리 애플리케이션의 레이턴시의 표시, 또는 데이터 처리 애플리케이션의 성능의 다른 표시를 생성한다.
모니터링 엔진(200)은 데이터 처리 애플리케이션에 의하여 수신되는 데이터 레코드의 양을 결정할 수도 있다. 예를 들면, 모니터링 엔진(200)은 본 명세서에서 "레코드 세트"라고 지칭되는 데이터 레코드의 그룹을 식별할 수도 있는데, 이에 대한 데이터 처리 애플리케이션의 처리가 모니터링된다. 처음에 데이터 처리 애플리케이션에 의하여 수신되는 데이터 레코드의 양은 레코드 세트 내의 데이터 레코드의 양일 수도 있다. 모듈에 의하여 전송되거나, 모듈에 의하여 거절되거나, 또는 그렇지 않으면 데이터 처리 애플리케이션의 모듈에 의하여 처리되는 데이터 레코드의 양은 각각의 레코드 세트에 대하여 모니터링될 수도 있다.
몇 가지 예들에서, 데이터 레코드는 하나 이상의 파일로부터 데이터 처리 애플리케이션에 의하여 수신될 수도 있다. 각각의 파일 내의 데이터 레코드는 레코드 세트로서 식별될 수도 있다. 몇 가지 예들에서, 데이터 레코드는 처리 애플리케이션에 의하여 데이터 레코드의 스트림으로서 수신될 수도 있다. 예를 들면, 데이터 처리 애플리케이션은 데이터 레코드의 실질적으로 연속 스트림을 데이터 처리 애플리케이션으로 제공하는 뷰에 구독할 수도 있다. 모니터링 엔진(200)은, 예를 들어 레코드 세트의 정의에 기초하여 데이터 레코드의 스트림의 서브세트를 레코드 세트로서 식별할 수도 있다. 몇 가지 경우들에서, 레코드 세트는 고정된 개수의 데이터 레코드를 포함하도록 정의될 수도 있다(예를 들어, 스트림 내의 1000 개의 데이터 레코드의 각각의 연속적인 그룹이 레코드 세트로서 식별될 수도 있다). 몇 가지 경우들에서, 레코드 세트는 고정된 시간 기간 동안 데이터 처리 애플리케이션으로 스트리밍되는 데이터 레코드를 포함하도록 정의될 수도 있다(예를 들어, 각각의 연속적인 10 분의 시간 기간 동안 스트리밍되는 데이터 레코드가 레코드 세트로서 식별될 수도 있다). 레코드 세트 내의 데이터 레코드의 양은 고정될 수도 있고 또는, 예를 들어 스트리밍 레이트 또는 단위 시간마다 스트리밍되는 데이터 레코드의 개수에 영향을 주는 다른 인자에 의존하여 각각의 레코드 세트에서 변동할 수도 있다. 레코드 세트에 대한 다른 정의도 역시 가능하다. 레코드 세트의 정의는 고정될 수도 있고 또는, 예를 들어 데이터 처리 애플리케이션의 사용자 또는 개발자에 의하여 특정될 수도 있다.
모니터링 엔진(200)은 데이터 처리 애플리케이션 밖으로 전송되는, 레코드 세트로부터의 데이터 레코드의 양을 결정할 수도 있다. 모듈은 데이터 레코드를 모듈의 정상 동작의 일부로서 데이터 처리 애플리케이션 밖으로 전송할 수도 있다. 예를 들면, 필터 모듈은 필터 기준을 만족하지 않는 데이터 레코드를 밖으로 전송(즉, 출력)할 수도 있다. 이러한 예에서, 모니터링 엔진은, 필터 모듈 밖으로 전송되는, 모니터링되는 중인 레코드 세트 내의 데이터 레코드의 양을 결정할 수도 있다. 데이터 처리 애플리케이션 내의 마지막 모듈은, 예를 들어 데이터 레코드를 큐에 등재(publishing)함으로써, 데이터 레코드를 파일에 기록함으로써, 등에 의하여 데이터 처리 애플리케이션 밖으로 전송(즉, 출력)할 수도 있다. 이러한 예에서, 모니터링 엔진은 데이터 처리 애플리케이션의 마지막 모듈 밖으로 전송되는 레코드 세트 내의 데이터 레코드의 양을 결정할 수도 있다.
모니터링 엔진(200)은 오류가 있는 데이터 처리 애플리케이션의 모듈에 의하여 거절되는, 레코드 세트로부터의 데이터 레코드의 양을 결정할 수도 있다. 예를 들면, 모듈은 거절된 데이터 레코드 내의 오류(예를 들어, 포맷 오류, 손상된 데이터 레코드, 또는 다른 데이터 레코드 오류), 데이터 레코드의 처리 중의 오류(예를 들어, 모듈에 의한 데이터 레코드의 처리 도중의 오동작 또는 다른 처리 오류), 또는 다른 타입의 오류에 기인하여 데이터 레코드를 거절할 수도 있다.
모니터링 엔진(200)은 데이터 레코드의 처리 도중에 발생하는, 데이터 레코드의 양에서의 변화를 모니터링할 수도 있다. 예를 들면, 롤업(rollup) 모듈 또는 결합(join) 모듈은 다수의 입력 레코드를 단일 출력 레코드로 결합할 수도 있다. 분할(divide) 모듈은 각각의 입력 레코드를 다수의 출력 레코드로 분할할 수도 있다. 몇 가지 예들에서, 입력 레코드의 양과 출력 레코드의 양 사이의 비율은 고정된다(예를 들어, 네 개의 입력 레코드들 마다 단일 출력 레코드로 결합하는 4:1 롤업 모듈). 몇 가지 예들에서, 비율은 가변이다(예를 들어, 공통 결합 키를 공유하며 특정 시간 범위 내에 있는 임의의 입력 레코드를 단일 출력 레코드로 결합하는 결합 모듈).
몇 가지 예들에서, 모니터링 엔진(200)은 데이터 처리 애플리케이션 내의 특정 포인트에서 레코드의 양을 결정하는 데이터 처리 애플리케이션의 하나 이상의 검사 모듈로부터 데이터를 수신할 수도 있다. 예를 들면, 검사 모듈은 데이터 처리 애플리케이션으로의 각각의 입력에, 데이터 처리 애플리케이션으로부터의 각각의 전송 출력에, 데이터 처리 애플리케이션으로부터의 각각의 거절 출력에, 그리고 데이터 레코드의 양을 변경하는 각각의 모듈에 배치될 수도 있다. 검사 모듈은 각각의 포인트에서 데이터 레코드의 양을 결정할 수도 있다. 몇 가지 예들에서, 검사 모듈은 데이터 처리 애플리케이션의 별개의 모듈이다. 몇 가지 예들에서, 검사 기능이 처리 모듈 자체의 로직 내에 포함된다.
몇 가지 예들에서, 모니터링 엔진(200)은 한 레코드 세트의 데이터 레코드의 처리와 연관된 시간적 정보(예를 들어, 클록 시간)를 모니터링한다. 예를 들면, 모니터링 엔진(200)은 레코드 세트의 특정 데이터 레코드(예를 들어, 첫 번째 데이터 레코드, 마지막 데이터 레코드, 또는 하나 이상의 다른 특정 데이터 레코드)이 데이터 처리 애플리케이션의 특정 모듈에 의하여 수신되거나, 데이터 처리 애플리케이션의 특정 모듈 밖으로 전송되거나, 데이터 처리 애플리케이션의 특정 모듈에 의하여 거절되거나, 또는 그렇지 않으면 데이터 처리 애플리케이션의 특정 모듈에 의하여 처리되는 시간을 모니터링할 수도 있다. 몇 가지 예들에서, 모니터링 엔진(200)은 한 레코드 세트의 임의의 데이터 레코드를 처리하는 것과 연관된 가장 빠른 클록 시간 및 그 레코드 세트의 임의의 데이터 레코드를 처리하는 것과 연관된 가장 늦은 클록 시간을 모니터링한다.
몇 가지 예들에서, 모니터링의 결과(예를 들어, 데이터 처리 애플리케이션의 다양한 포인트에서의 데이터 레코드의 양, 데이터 레코드 처리와 연관된 시간, 등)는 모니터링 데이터베이스(204)와 같은 데이터 구조 내에 저장된다.
분석 엔진(202)은 한 레코드 세트의 처리의 모니터링의 결과를 분석하여(예를 들어, 모니터링 데이터베이스(204) 내에 저장된 결과들에 액세스함으로써) 데이터 처리 애플리케이션의 성능을 표시하는 정보, 예컨대 데이터 처리 애플리케이션이 정상적으로 동작하거나 오류가 있는지 여부의 표시, 데이터 처리 애플리케이션의 레이턴시의 표시, 또는 데이터 처리 애플리케이션의 성능의 다른 표시를 생성한다.
몇 가지 예들에서, 분석 엔진은 조정 규칙(reconciliation rule)을 모니터링 엔진(200)에 의하여 결정되는 데이터 레코드의 양에 적용한다. 조정 규칙은 데이터 처리 애플리케이션에 의하여 수신되는 데이터 레코드의 양, 데이터 처리 애플리케이션에 의하여 전송되는 데이터 레코드의 양, 데이터 처리 애플리케이션에 의하여 거절되는 데이터 레코드의 양, 등 간의 타겟 관련성을 반영하는 표현식(예를 들어, 수학식)이다. 특정 레코드 세트의 처리에 의하여 만족되지 않는 조정 규칙은 오류가 레코드 세트의 처리 도중에 발생했다는 것을 표시할 수도 있다. 특정 레코드 세트의 처리에 의하여 만족되는 조정 규칙은, 데이터 처리 애플리케이션이 레코드 세트의 처리 도중에 정확하게 동작했다는 것을 표시할 수도 있다. 몇 가지 예들에서, 레코드 세트의 처리에 대한 조정 규칙을 적용한 결과(예를 들어, 조정 규칙이 만족되었는지)는 모니터링 데이터베이스(204) 내에 저장될 수도 있다.
하나의 예시적인 조정 규칙은 데이터 처리 애플리케이션에 의하여 수신되는 데이터 레코드의 양이 데이터 처리 애플리케이션 밖으로 전송되는 데이터 레코드의 양에 데이터 처리 애플리케이션에 의하여 거절되는 데이터 레코드의 양과 같아야 한다고 특정할 수도 있다:
들어온 레코드 수 - 밖으로 전송된 레코드 수 - 거절된 레코드수 = 0.
이러한 조정 규칙이 특정 레코드 세트의 처리에 의하여 만족되지 않으면, 이것은 오류, 예컨대 오동작하는 모듈(예를 들어, 그렇게 하지 않아야 하는 때에 레코드를 수신하고, 밖으로 전송하며, 및/또는 거절하는 모듈), 모듈의 부정확한 구성, 또는 다른 성능 이슈를 표시할 수도 있다.
다른 예시적인 조정 규칙은 데이터 처리 애플리케이션에 의하여 수신되는 데이터 레코드의 양이 데이터 처리 애플리케이션에 의하여 밖으로 전송되는 데이터 레코드의 양과 동일해야 한다고 특정할 수도 있다:
들어온 레코드 수 - 밖으로 전송된 레코드 수 = 0.
이러한 조정 규칙은, 데이터 레코드가 오류에 의하여 데이터 처리 애플리케이션의 임의의 모듈로부터 거절된다면 만족되지 않을 수 있다. 이러한 조정 규칙을 만족시키지 않는 레코드 세트의 처리는, 하나 이상의 데이터 레코드에 있는 문제점(예를 들어, 포맷 문제 또는 손상된 데이터 레코드), 데이터 처리 애플리케이션의 어느 모듈의 부정확한 구성 또는 이것에서의 오동작, 또는 다른 성능 이슈를 표시할 수도 있다.
다른 조정 규칙도 역시 가능하다. 예를 들면, 4:1 롤업 모듈을 포함하는 데이터 처리 애플리케이션에 대한 조정 규칙은, 부분적으로, 롤업 모듈 앞의 데이터 레코드의 양이 롤업 모듈 뒤의 데이터 레코드의 양의 네 배라고 특정할 수도 있다.
데이터 처리 애플리케이션에 대한 조정 규칙은, 예를 들어 데이터 처리 애플리케이션의 개발자 또는 사용자에 의하여 특정될 수도 있다. 조정 규칙은, 예를 들어 데이터 처리 애플리케이션을 통한 데이터 레코드의 흐름의 분석에 기초하여, 분석 엔진(202)에 의하여 자동적으로 개발될 수도 있다. 특정 데이터 처리 애플리케이션과 연관된 조정 규칙은 데이터 구조, 예컨대 규칙 데이터베이스(206) 내에 저장될 수도 있다.
몇 가지 예들에서, 조정 규칙은 데이터 처리 애플리케이션의 각각의 개개의 모듈에 대한 조정 동작을 결합함으로써 발전될 수도 있다. 조정 동작은 또한 규칙 데이터베이스(206) 내에 저장될 수도 있다. 도 3 을 참조하면, 일 세트의 예시적인 조정 동작(300)이 도시되고, 이들 각각은 데이터 처리 애플리케이션 내에 포함될 수 있는 개개의 모듈에 대응한다. 예를 들면, 구독 동작(302)은 데이터 처리 애플리케이션으로 들어가는 데이터 레코드의 스트림을 큐로부터 판독하는 구독 모듈(subscribe module)에 대응한다. 구독 동작은 구독 모듈에 의하여 판독되는 데이터 레코드의 양을 조정 규칙 내에 추가하기 위한 명령을 포함한다. 필터 모듈에 대응하는 필터 동작(304)은 필터 모듈의 선택해제(deselect) 포트를 통해서 데이터 처리 애플리케이션 밖으로 전송되는 데이터 레코드의 양을 감산하기 위한 명령을 포함한다. 필터 동작(304)은 데이터 레코드 밖으로의 전송이 정상(즉, 비-오류) 동작인 명령을 더 포함한다. 전환 모듈에 대응하는 전환 동작(306)은 전환 모듈에 의하여 거절되는 데이터 레코드의 양을 감산하기 위한 그리고 이러한 감산을 오류 동작으로 표시하기 위한 명령을 포함한다.
몇 가지 예들에서, 분석 엔진(202)은 한 레코드 세트의 데이터 레코드의 처리와 연관된 시간을 분석하여 하나 이상의 레이턴시, 예컨대 전체로서의 데이터 처리 애플리케이션의 레이턴시("단-대-단 레이턴시"라고 명명됨), 데이터 처리 애플리케이션의 하나 이상의 모듈의 레이턴시, 등을 분석할 수도 있다. 예를 들면, 데이터 처리 애플리케이션에 의한 레코드 세트의 처리에 대한 단-대-단 레이턴시는 레코드 세트의 임의의 데이터 레코드와 연관된 가장 빠른 시간과 데이터 처리 애플리케이션에 대한 조정 규칙이 레코드 세트의 처리에 대하여 만족되는 시간(즉, 레코드 세트의 임의의 데이터 레코드와 연관된 가장 늦은 시간) 사이의 시간 차분으로서 정의될 수도 있다. 데이터 처리의 특정 모듈의 레이턴시는 또한, 예를 들어 특정 모듈에 의한 레코드 세트의 임의의 데이터 레코드의 처리와 연관된 가장 빠른 시간과 특정 모듈에 의한 레코드 세트의 임의의 데이터 레코드의 처리와 연관된 가장 늦은 시간 사이의 시간 차분을 결정함으로써 결정될 수도 있다. 몇 가지 예들에서, 레코드 세트의 처리를 위한 레이턴시를 표시하는 데이터가 모니터링 데이터베이스(204) 내에 저장될 수도 있다.
도 4 를 참조하면, 예시적인 데이터 처리 애플리케이션(400)의 성능은 검사 모듈(402a, 402b, 402c, 402d, 402e)(총괄하여 "402"라고 명명됨)에 의하여 검사될 수 있다. 각각의 검사 모듈(402)은 검사 모듈을 통과하여 지나가는 레코드의 양을 카운트하고 그 양을 표시하는 메시지를 검사 모듈(106)로 제공한다. 각각의 검사 모듈(402)은 또한 하나 이상의 특정 레코드(예를 들어, 각각의 레코드 세트의 첫 번째 레코드, 각각의 레코드 세트의 마지막 레코드, 매 100번 째의 레코드, 모든 레코드, 등)이 검사 모듈을 통과하여 지나가는 시간(들)을 기록한다.
예시적인 데이터 처리 애플리케이션(400)에서, 데이터 레코드의 스트림이 큐(404)로부터 수신된다. 데이터 레코드의 수신된 스트림은 검사 모듈(402a)을 통과하여 지나가는데, 이것이 각각의 레코드 세트 내의 레코드들의 양(A)을 카운트한다. 레코드 세트의 정의는 검사 모듈(402a)의 로직으로 통합될 수도 있고 또는 검사 모듈(106)에 의하여 검사 모듈(402a)로 통신될 수도 있다.
레코드 세트는 필터 모듈(406)에 의하여 처리되는데, 이것은 필터의 기준들을 만족하지 않는 데이터 레코드를 선택해제 포트(408)를 통해서 밖으로 전송한다. 밖으로 전송된 데이터 레코드는 검사 모듈(402b)을 통과하여 지나가는데, 이것은 각각의 레코드 세트 내의 밖으로 전송된 데이터 레코드의 양(B)을 카운트한다. 필터의 기준들을 만족하는 데이터 레코드는 출력 포트(410)를 통하여 필터 모듈(406)로부터 출력되고 재포맷 모듈(412)에 의하여 처리된다. 재포맷 모듈(412)에 의하여 특정되는 포맷 기준들을 만족하지 않는 임의의 데이터 레코드는 오류로 거절 포트(414)를 통해서 거절된다. 거절된 데이터 레코드는 검사 모듈(402c)을 통과하여 지나가는데, 이것은 각각의 레코드 세트 내의 밖으로 전송된 데이터 레코드의 양(C)을 카운트한다. 잔여 데이터 레코드가 출력 포트(416)를 통해서 재포맷 모듈(412)로부터 출력된다.
그러면 데이터 레코드가 전환 모듈(418)에 의하여 처리된다. 전환 모듈은 데이터 레코드를 밖으로 전송하거나 거절하지 않는다. 전환 모듈로 들어가는 데이터 레코드의 양이 전환 모듈 밖으로 나가는 데이터 레코드의 양과 정합되기 때문에, 전환 모듈에 대해서는 검사가 수행되지 않는다. 그러면 로직 모듈(420)이 데이터 레코드를 처리한다. 로직 모듈(420)은 데이터 레코드를 등재를 위하여 큐(422)로 전송한다. 큐(422)로 등재되기 이전에, 검사 모듈(402d)은 각각의 레코드 세트 내의 밖으로 전송된 데이터 레코드의 양(D)을 카운트한다. 검사 모듈(402e)은 오류로 큐(422)로부터 거절되는 임의의 데이터 레코드의 양(E)을 카운트한다.
데이터 처리 애플리케이션(400)에 대한 예시적인 조정 규칙은 다음과 같이 표현될 수 있다:
A - B - C - D - E = 0.
즉, 데이터 처리 애플리케이션에 의하여 수신되는 레코드 세트 내의 데이터 레코드의 양(A) 빼기 거절된 데이터 레코드의 양(C, E) 빼기 데이터 처리 애플리케이션의 밖으로 전송된 데이터 레코드의 양(B, D)은, 조정 규칙이 만족되려면 제로가 되어야 한다(즉, 평형을 이루어야 함). 그의 처리가 조정 규칙을 만족하는 레코드 세트는, 데이터 처리 애플리케이션이 정확하게 동작하고 있을 수도 있다는 것을 표시한다. 그의 처리가 조정 규칙을 만족시키지 못하는 레코드 세트는, 데이터 처리 애플리케이션의 실행 과정에 문제점이 있을 수도 있다는 것을 표시한다. 예를 들면, 조정 규칙이 평형을 이루지 못한다는 것은, 어떤 모듈(예를 들어, 전환 모듈(418))이 예상 밖으로 데이터 레코드를 거절하고 있음을 표시할 수도 있다. 조정 규칙이 평형을 이루지 못한다는 것은, 또한 어떤 모듈이 예를 들어 롤업 또는 결합 동작에 의하여 데이터 레코드의 양을 기대하지 않게 변경하고 있다는 것을 표시할 수도 있다. 다른 성능 이슈도 역시 조정 규칙이 평형을 이루지 못하는 것에 의하여 표시될 수도 있다.
데이터 처리 애플리케이션(400)에 대한 다른 예시적인 조정 규칙은 다음과 같이 표현될 수 있다:
A - B - D = 0.
즉, 데이터 처리 애플리케이션에 의하여 수신되는 레코드 세트 내의 데이터 레코드의 양(A) 빼기 정상 동작 하에서 밖으로 전송된 데이터 레코드의 양(B, D)은 조정 규칙이 만족되려면 제로가 되어야 한다. 그의 처리가 조정 규칙을 만족하는 레코드 세트는, 어떠한 데이터 레코드도 데이터 처리 애플리케이션의 임의의 모듈로부터 오류로 거절되고 있지 않다는 것을 표시한다(예를 들어, C 및 E는 제로임). 그의 처리가 조정 규칙을 만족하지 않는 레코드 세트는, 데이터 처리 애플리케이션의 하나 이상의 모듈로부터 오류로 거절되고 있는 데이터 레코드가 존재한다는 것을 표시할 수도 있다(예를 들어, C 및/또는 E는 제로가 아님). 다른 성능 이슈도 역시 조정 규칙이 평형을 이루지 못하는 것에 의하여 표시될 수도 있다.
도 5 를 참조하면, 결합 모듈(508)을 포함하는 예시적인 데이터 처리 애플리케이션(500)의 성능이 검사될 수 있다. 예시적인 데이터 처리 애플리케이션(500)에서, 제 1 레코드 세트의 데이터 레코드가 제 1 큐(504)로부터 수신되고 제 1 레코드 세트 내의 데이터 레코드의 양(A)이 검사 모듈(502a)에 의하여 카운트된다. 제 2 레코드 세트의 데이터 레코드가 제 2 큐(506)로부터 수신되고, 제 2 레코드 세트 내의 데이터 레코드의 양(B)은 검사 모듈(502b)에 의하여 카운트된다.
결합 모듈(508)은 제 1 레코드 세트로부터의 데이터 레코드 및 제 2 레코드 세트로부터의 데이터 레코드를 단일 세트의 데이터 레코드으로 결합한다. 예를 들면, 결합 모듈(508)은 두 개의 레코드 세트로부터의 관련된 데이터 레코드를 상관시킬 수도 있다. 상관 동작 도중에 거절되는 임의의 데이터 레코드는 거절 포트(510)를 통해서 오류로 거절된다. 거절된 데이터 레코드의 양C)은 검사 모듈(502c)에 의하여 카운트된다. 단일 세트의 상관된 데이터 레코드는 데이터 처리 애플리케이션(500) 밖으로 전송되어 출력 큐(512)에 등재된다. 검사 모듈(502d)은 결합 모듈에 의하여 밖으로 전송되는 데이터 레코드의 양(D)을 카운트한다.
데이터 처리 애플리케이션(500)에 대한 예시적인 조정 규칙은 다음과 같이 표현될 수 있다:
A + B - C - D = 0.
도 6 을 참조하면, 롤업 모듈(606)을 포함하는 예시적인 데이터 처리 애플리케이션(600)의 성능이 검사될 수 있다. 예시적인 데이터 처리 애플리케이션(600)에서, 데이터 레코드의 스트림은 데이터 처리 애플리케이션(600)에 의하여 큐(604)로부터 수신된다. 한 레코드 세트 내의 데이터 레코드의 양(A)이 검사 모듈(602a)에 의하여 카운트된다. 데이터 레코드는, 4 개의 데이터 레코드들의 각각의 연속적인 세트를 단일 데이터 레코드으로 결합하는 4:1 롤업 모듈(606)에 의하여 롤업된다. 롤업 모듈은, 롤업 모듈에 의하여 수신되는 데이터 레코드의 양(B') 및 출력되는 데이터 레코드의 양(B'') 사이의 매핑 관련성(예를 들어, 비율, 차분, 또는 다른 관련성)을 특정하는 메타데이터와 연관된다. 따라서, 4:1 롤업 모듈(606)에 대하여, B' = 4 이고 B'' = 1 이다.
롤업 모듈(606)은 롤업된 데이터 레코드를 데이터 처리 애플리케이션(600) 밖으로 전송하여 출력 큐(608)에 등재되게 한다. 검사 모듈(602b)은 롤업 모듈(606)에 의하여 밖으로 전송된 데이터 레코드의 양(B)을 카운트한다.
데이터 처리 애플리케이션(600)에 대한 예시적인 조정 규칙은 다음과 같이 표현될 수 있다:
A - B = 0,
여기에서 B = -B' + B''이다.
조정 규칙을 구축하는 유사한 접근법이 각각의 데이터 레코드를 다수의 데이터 레코드으로 분할하는 모듈을 포함하는 데이터 처리 애플리케이션에 대해서 취해질 수 있다.
도 7 을 참조하면, 롤업 모듈(706)을 포함하는 예시적인 데이터 처리 애플리케이션(700)의 성능이 검사될 수 있다. 예시적인 데이터 처리 애플리케이션(700)에서, 데이터 레코드의 스트림이 큐(704)로부터 수신된다. 데이터 레코드의 수신된 스트림은 검사 모듈(702a)을 통과하여 지나가는데, 이것이 각각의 레코드 세트 내의 레코드들의 양(A)을 카운트한다.
데이터 레코드는, 4 개의 데이터 레코드들의 세트를 결합 키(join key)에 기초하여 단일 데이터 레코드으로 결합하는 4:1 롤업 모듈(706)에 의하여 롤업된다. 즉, 예를 들면 공통 결합 키를 공유하는 각각의 4 개의 레코드가 단일 출력 데이터 레코드으로 롤업된다. 롤업 모듈은, 롤업 모듈에 의하여 수신되는 데이터 레코드의 양(B') 및 출력되는 데이터 레코드의 양(B'') 사이의 매핑 관련성을 특정하는 메타데이터와 연관된다. 따라서, 4:1 롤업 모듈(606)에 대하여, B' = 4 이고 B'' = 1 이다. 위에서 설명된 롤업 모듈(606)과는 달리, 롤업 모듈(706)은 롤업 모듈(706)의 동작 도중에 데이터 레코드가 거절될 수 있는 통로인 거절 포트(708)를 더 포함한다. 거절된 데이터 레코드의 양(C)은 검사 모듈(702b)에 의하여 카운트된다.
롤업 모듈(706)은 롤업된 데이터 레코드를 큐(708)에 등재되도록 밖으로 전송한다. 검사 모듈(702c)은 각각의 레코드 세트 내의 밖으로 전송된 데이터 레코드의 양(B)을 카운트한다.
데이터 처리 애플리케이션(700)에 대한 예시적인 조정 규칙은 다음과 같이 표현될 수 있다:
A - B - C = 0,
여기에서 B = -B' + B''이다.
롤업 모듈에 의하여 거절된 데이터 레코드의 실제량(C)이 어떻게 출력 데이터 레코드의 양(B)과 관련되는지를 결정하는 것은 복잡할 수 있다. 예를 들면, 어떤 데이터 레코드가 롤업 모듈(706)에 의하여 실행되는 초기화 프로세스 도중에 거절된다면, 그 데이터 레코드는 거절된다. 그러나, 예컨대 추후에 수신되는 데이터 레코드가 동일한 결합 키를 가지고 있는 것처럼, 거절된 데이터 레코드에 대응하는 출력 데이터 레코드가 여전히 생성될 수도 있다. 어떤 데이터 레코드가 롤업 모듈(706)에 의하여 실행되는 롤업 프로세스 도중에 거절된다면, 그 데이터 레코드는 거절된다. 그러나, 동일한 결합 키를 가지는 다른 데이터 레코드를 포함하는 출력 데이터 레코드가 여전히 생성될 수도 있다. 어떤 데이터 레코드가 롤업 모듈(706)에 의하여 실행되는 마감(finalization) 프로세스 도중에 거절된다면, 그 네 개의 롤업 입력 데이터 레코드에 대응하는 단일 출력 데이터 레코드는 거절된다.
일 예에서, 이러한 복잡성은 데이터 레코드를 롤업 모듈(706)로의 이력 및 그로부터의 출력에 매핑함으로써 다뤄질 수 있다. 예를 들면, 롤업 모듈(706)로 입력되는 각각의 데이터 레코드를 식별하는 각각의 데이터 레코드가 누적될 수 있다. 각각의 출력 데이터 레코드에 대응하는 입력 데이터 레코드가 식별되고 벡터에 의하여 식별되는 입력 데이터 레코드와 비교될 수 있다. 벡터에 의하여 식별되지만 출력 데이터 레코드에서 나타나지 않는 임의의 데이터 레코드는 거절된 것으로 간주될 수 있다.
일 예에서, 롤업 모듈(706)로 입력되는 각각의 데이터 레코드는 연관된 식별 메타데이터, 예컨대 헤더를 가질 수도 있다. 롤업 컴포넌트로 입력되는 각각의 데이터 레코드에 대한 식별 메타데이터(identifying metadata)는 하나의 벡터로 누적될 수 있다(예를 들어, V = {H1, H2, H3, …, Hn}). 각각의 출력 데이터 레코드는, 출력 데이터 레코드으로 롤업된 각각의 입력 데이터에 대한 식별 메타데이터를 포함하는 연관된 식별 메타데이터, 예컨대 헤더를 가질 수도 있다. 즉, 예를 들면, 입력 데이터 레코드 H1, H2, H3, 및 H4 를 롤업함으로써 형성되는 출력 데이터 레코드는 집합된 헤더 H1H2H3H4를 가질 수도 있다. 입력 데이터 레코드의 벡터를 각각의 출력 데이터 레코드에 대한 집합된 헤더와 비교함으로써, 롤업 모듈(706)의 실행 도중에 거절되었거나 분실되었던 데이터 레코드가 식별될 수 있다. 이러한 비교에 의하여 결정되는 거절되거나 분실된 데이터 레코드의 양은 롤업 모듈(706)에 의하여 거절되는 데이터 레코드의 양(C) 이라고 간주될 수 있다. 몇 가지 예들에서, 출력 데이터 레코드에 대한 집합된 헤더는 데이터 처리 애플리케이션(700)의 임의의 후속 모듈을 통해서 운반된다. 몇 가지 예들에서, 집합된 헤더는 롤업 모듈(706)에 대한 검사가 완료된 이후에 간략화된다. 예를 들면, 집합된 헤더 H1H2H3H4 는 롤업 모듈에 대한 검사 이후에 H1으로 간략화될 수도 있다.
다수의 레코드 세트에 걸친 데이터 처리 애플리케이션의 조정 성능은 데이터 처리 애플리케이션의 동작, 데이터 처리 애플리케이션의 동작에 수반되는 임의의 문제의 존재, 데이터 처리 애플리케이션의 동작에서의 시간-기초 변동, 및 데이터 처리 애플리케이션의 다른 동작 특징에 대한 직관을 제공할 수 있다.
도 8 을 참조하면, 예시적인 조정 보고(800)는 특정 데이터 처리 애플리케이션에 의하여 처리되는 1820 개의 레코드 세트에 대한 조정 상태의 파이 차트(802)를 포함한다. 방대한 양의 레코드 세트들이 성공적으로 조정된다는 것은, 데이터 처리 애플리케이션에 대한 조정 규칙이 레코드 세트를 처리한 이후에 만족되었다는 것을 의미한다(섹션 804). 8 개의 레코드 세트는 조정하지 못했고(섹션 806) 두 개의 레코드 세트는 파이 차트(802)가 디스플레이되었을 때에 여전히 조정에 부쳐져 있는 상태였다(섹션 808).
몇 가지 예들에서, 조정 보고(800)는 대화형 사용자 인터페이스에 제공될 수도 있다. 사용자는 파이 차트(802)의 한 섹션을 선택(예를 들어, 클릭하거나, 태핑하거나, 마우스를 이동시키거나, 그렇지 않으면 선택하여)하여 그 섹션에 의하여 표현되는 레코드 세트에 대한 더 많은 정보를 수신할 수도 있다. 예를 들면, 섹션 806 을 선택함으로써, 사용자에게는 조정하지 않았던 8 개의 레코드 세트에 대한 데이터 처리 애플리케이션 내의 각각의 검사 모듈에 의하여 카운트되는 데이터 레코드의 양의 목록 또는 표가 제공될 수도 있다. 이러한 정보에 기초하여, 사용자는 레코드 세트가 조정하지 않도록 했던 문제점이 발생된 데이터 처리 애플리케이션 내의 포인트를 식별할 수 있을 수도 있다. 사용자 인터페이스는 또한 사용자가 파이 차트에 디스플레이되는 조정의 타입(예를 들어, 단-대-단 조정 또는 특정 모듈의 조정)을 선택하고 조정 보고(800)의 다른 양태의 디스플레이를 제어하도록 할 수도 있다.
도 9 를 참조하면, 다른 예시적인 조정 보고(900)는 데이터 처리 애플리케이션의 특정 모듈로 그리고 그로부터 전송되는 데이터 레코드에 대한 집합 양(aggregate quantities)(보고(902)) 그리고 전체로서 데이터 처리 애플리케이션으로 그리고 그로부터 전송되는 데이터 레코드에 대한 집합 양(보고(904))을 나타낸다. 특정 모듈에 대한 조정 보고(902)는 1445 개의 데이터 레코드의 레코드 세트가 모듈에 의하여 수신되었고(906), 어떤 레코드도 모듈 밖으로(908) 또는 모듈 내로(910) 전송되지 않았으며, 1445 개의 레코드가 모듈에 의하여 출력되었다(912)는 것을 표시한다. 즉, 모듈 내로의 레코드의 양은 모듈 밖으로의 레코드, 및 그 모듈에 대하여 조정되는 레코드 세트의 양과 정합한다. 데이터 처리 애플리케이션의 단-대-단 조정에 대한 조정 보고(904)는, 729 개의 데이터 레코드의 레코드 세트가 수신되었고(914), 729 개의 데이터 레코드가 데이터 처리 애플리케이션의 밖으로 전송되었으며(916), 929 개의 데이터 레코드가 데이터 처리 애플리케이션 내로 전송되었고(918), 어떠한 레코드도 데이터 처리 애플리케이션 밖으로 출력되지 않았다(920)는 것을 표시한다. 데이터 처리 애플리케이션 내로의 레코드의 양이 데이터 처리 애플리케이션 밖으로의 레코드의 양과 정합하지 않기 때문에, 레코드 세트는 그 데이터 처리 애플리케이션에 대하여 조정하지 않았다.
도 10 을 참조하면, 레이턴시 보고(1000)는 데이터 처리 애플리케이션에 의하여 처리되는 레코드 세트에 대한 조정까지의 시간을 보여주는 막대 그래프(1002)를 포함한다. 다수의 레코드 세트가 1 분 내에 조정된다(막대 1004). 소수의 레코드 세트는 조정하는데 2 시간 만큼이 걸렸다(막대 1006). 레이턴시 보고가 대화형 사용자 인터페이스 상에 제공될 수도 있다. 사용자는 막대를 선택(예를 들어, 클릭하거나, 태핑하거나, 마우스를 이동시키거나, 그렇지 않으면 선택하여)하여 그 막대에 의하여 표현되는 레코드 세트에 대한 더 많은 정보를 수신할 수도 있다. 예를 들면, 도시된 예에서, 사용자는 10 분 안에 조정되는 레코드 세트를 표현하는 막대 1008 를 선택했다. 팝업 윈도우(1010)는 조정의 타입(단-대-단 조정), 조정 시간(10 분), 및 선택된 막대 1008 에 대한 데이터 레코드의 양(14772 개의 레코드)을 디스플레이한다. 레이턴시 보고(1000)는 또한 사용자가 막대 그래프 내에 디스플레이되는 조정의 타입(예를 들어, 단-대-단 조정 또는 특정 모듈의 조정)을 선택하고; 그 데이터를 레코드 카운트, 총 레코드의 퍼센티지, 또는 다른 디스플레이로서 디스플레이하며; 레이턴시 보고(1000)의 디스플레이의 다른 양태를 제어하도록 한다.
레이턴시 정보는 사용자가 데이터 처리 애플리케이션, 데이터 소스, 또는 양자 모두와 관련된 가능한 문제점을 이해하도록 도울 수 있다. 예를 들면, 높은 레이턴시는 데이터 처리 애플리케이션이 구독하는 큐가 데이터의 연속 스트림을 제공하고 있지 않다고 표시할 수도 있다. 높은 레이턴시는 또한 데이터 소스가 자신의 데이터를 충분히 빈번하게 제공하고 있지 않다는 것을 표시할 수도 있다. 예를 들어, 데이터 처리 애플리케이션의 모듈은 이것이 데이터 소스로부터 데이터를 수신할 때까지 자신의 연산을 실행할 수 없을 수도 있다; 그 데이터 소스가 데이터를 제공하는 데에 있어서 저속이라면, 그 모듈은 데이터 처리 애플리케이션에 레이턴시를 도입할 것이다.
다른 조정 보고 도 역시 디스플레이될 수 있다. 예를 들면, 시간이 지남에 따른 데이터 레코드 볼륨, 예컨대 입력 데이터 레코드, 거절된 데이터 레코드, 또는 다른 데이터 레코드의 볼륨의 그래프가 디스플레이될 수 있다. 위의 예에서 그래픽으로 디스플레이되는 데이터도 역시 표 포맷에서 또는 다른 포맷에서 디스플레이될 수 있다.
도 11 을 참조하면, 데이터 처리 애플리케이션의 검사로의 범용 접근법에서, 복수 개의 모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 그룹 중 데이터 레코드의 제 1 양이 결정될 수 있다(1100). 예를 들면, 레코드 세트가 식별되고 레코드 세트 내의 데이터 레코드의 양이 결정된다. 애플리케이션의 모듈 중 하나 이상에 대하여, 데이터 레코드의 그룹의 처리 도중에 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양이 결정될 수 있다(1102). 예를 들면, 모듈 밖으로 전송된 데이터 레코드의 양 또는 모듈에 의하여 거절되는 데이터 레코드의 양, 또는 양자가 결정된다.
데이터 레코드의 제 1 및 제 2 양이 규칙을 만족하는지 여부의 결정이 이루어질 수 있는데, 규칙은 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 그 애플리케이션의 각각의 컴포넌트에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시한다(1104). 예를 들면, 규칙은 애플리케이션에 의하여 수신되는 데이터 레코드의 양이, 예를 들어 밖으로 전송되거나 거절됨으로써 그 애플리케이션을 떠나는 데이터 레코드의 양과 동일하다는 것을 특정할 수도 있다. 다른 규칙은 애플리케이션에 의하여 수신되는 데이터 레코드의 양이 그 애플리케이션 밖으로 전송되는 데이터 레코드의 양과 동일하다는 것을 특정할 수도 있다. 다른 규칙은 데이터 레코드의 양을 변경시키는 애플리케이션의 모듈, 예컨대 롤업 모듈 또는 결합 모듈을 고려할 수도 있다.
몇 가지 예들에서는, 애플리케이션의 레이턴시도 역시, 애플리케이션이 데이터 레코드의 중 그 데이터 레코드를 수신하는 시작 시간 및 애플리케이션이 데이터 레코드의 그룹 중 그 데이터 레코드를 처리하는 것을 종료하는 종료 시간에 기초하여 결정될 수 있다(1106).
몇 가지 예들에서, 규칙이 만족되었는지 여부를 표시하는 보고가 제공될 수 있다(1108).
도 12 를 참조하면, 일 예에서, 본 명세서에서 설명되는 레코드 세트 조정을 위한 해결책은 이동 전화 레코드의 처리의 분석에 적용될 수 있다. 이동 전화 시스템(1200)에서, 이동 전화(1204) 또는 다른 통신 디바이스로부터의 전화 통화와 같은 통신(1202)이 하나 이상의 기지국(1206), 및 범용 패킷 무선 서비스(general packet radio service; GPRS) 코어 네트워크(1208) 상의 노드에 의하여 처리된다. GPRS 네트워크는 게이트웨이 GPRS 지원 노드(gateway GPRS support nodes; GGSN)(1210) 및 서빙 GPRS 지원 노드(1212)(serving GPRS support nodes; SGSN)를 포함하는데, 이들 중 어느 하나 또는 양자는 통신(1202)을 처리할 수도 있다. GGSN(1210) 및 SGSN(1212) 각각으로부터의 데이터(1214, 1216), 예컨대 통신(1202)의 시간, 지속기간, 위치 등에 대한 데이터는 서버(1220)에서 호스팅되는 데이터 분석 시스템(1218)으로 제공된다. 데이터 분석 시스템(1218)은 데이터(1214, 1216)를 처리하고 처리된 데이터(1222)를 검사 데이터(1223)와 함께 과금, 분석, 또는 다른 처리를 위하여 다운스트림 시스템(1224)으로 전송한다.
데이터 분석 시스템(1218)은 데이터(1214, 1216)를 처리하도록 하나 이상의 데이터 처리 애플리케이션을 실행하는 실행 모듈(1217)(예컨대, 위에서 도 1 에 대하여 설명되는 실행 모듈(112))을 포함한다. 예를 들면, 데이터 처리 애플리케이션은 데이터(1214, 1216)를 정렬 또는 필터링하고; SGSN(1212)으로부터의 데이터(1214)를 동일한 통신(1202)에 대응하는 GGSN(1214)으로부터의 데이터(1216)와 상관시키며; 또는 데이터(1214, 1216)에 다른 데이터 처리를 수행한다. 검사 모듈(1219)(예컨대, 위에서 도 1 및 2 에 대하여 설명된 검사 모듈(106))은 실행 모듈(1217)에 의하여 실행되는 데이터 처리 애플리케이션의 모듈에 의한 데이터(1214, 1216)의 처리를 모니터링한다. 검사 모듈(1219)은 또한 모니터링의 결과를 분석하여 데이터 처리 애플리케이션의 성능을 표시하는 정보를 결정한다. 검사 데이터(1226)는 또한 분석을 위하여, 예를 들어 데이터 분석 시스템(1218)의 성능의 분석을 위하여 다운스트림 시스템(1224)으로 전송된다.
예를 들면, 검사 모듈(1219)은 임의의 데이터(1214, 1216)가 데이터 분석 시스템(1218)에 의한 처리 도중에 오류로 분실되거나 거절되는지 여부를 결정할 수도 있다. 데이터가 처리 도중에 분실되면, 분실된 데이터에 의하여 표현되는 통신은 고객에게 과금될 수 없고, 결과적으로 전화기 회사의 순익 손실을 초래한다. 시스템 개발자는, 데이터 손실을 감소시키고 따라서 순익을 증가시키기 위하여, 분실되거나 손상된 데이터에 대한 검사 모듈(106)로부터의 정보를 사용하여 데이터 처리 애플리케이션에 변화 또는 개선을 이룬다.
검사 모듈(1219)은 또한 데이터 분석 시스템(1218)에 의하여 처리되는 데이터의 볼륨(본 명세서에서 "데이터량"이라고 명명됨)을 추적할 수도 있다. 예를 들면, 도 13a 를 참조하면, 일 예에서, 검사 모듈(1219)은 하루의 기간 동안 매 시간마다 데이터 분석 시스템(1218)에 의하여 처리되는 데이터의 볼륨을 나타내는 보고(10)를 생성할 수도 있다. 도 13b 를 참조하면, 일 예에서, 검사 모듈(1219)은 하루의 기간 동안 매 시간마다 GGSN(1210)에 의하여 처리되는 데이터의 볼륨(1214) 및 SGSN(1212)에 의하여 처리되는 데이터의 볼륨(1216)을 나타내는 보고(12)를 생성할 수도 있다. 도 13c 를 참조하면, 일 예에서, 검사 모듈(1219)은 특정한 날(도시된 예에서는 2012 년 5 월 9 일)의 특정한 한 시간(도시된 예에서는 11:00 시) 내에 GGSN(1210)에 의하여 처리되는 데이터의 볼륨(1214) 및 SGSN(1212)에 의하여 처리되는 데이터의 볼륨(1216)을 나타내는 보고(14)를 생성할 수도 있다. 특정 시간 기간 동안에 발생된 임의의 오류의 성질을 나타내는 보고(16)도 역시 생성될 수도 있다.
다른 시간 기간 동안의 데이터량도 역시 추적될 수도 있다. 예를 들면, 데이터량은 시간, 날짜, 달, 또는 다른 시간 기간에 의하여 추적되어 시간 기간 동안의 데이터량에서의 경향을 보여줄 수도 있다. 또한 데이터량은 데이터의 하나 이상의 특징, 예컨대 통신의 지리적 특징(예를 들어, 통신의 발신지의 위치, 통신의 목적지의 위치, 또는 통신을 처리하는 데에 수반된 임의의 또는 모든 기지국(1206) 또는 노드(1210, 1212)의 위치)에 의하여 추적되고 정렬될 수도 있다.
시간 기간 동안의 데이터량에서의 경향을 이해하면, 전화기 네트워크 용량 기반구조에 변경을 가하거나 업데이트 하는 것을 계획하는 것을 도울 수 있다. 일 예에서, 일 년의 기간 동안에 처리된 데이터의 볼륨에서의 증가는 회사에 의하여 사용되어, 추가적 용량 기반구조를 건축하는데 대한 결정을 통지할 수도 있다. 일 예에서, 지리적 지역에 의하여 처리된 데이터의 볼륨은 회사에 의하여 사용되어 추가적 용량 기반구조를 어디에 건축할지에 대한 결정을 통지할 수도 있다.
검사 모듈(1219)은 데이터 처리 애플리케이션의 레이턴시, 데이터 처리 애플리케이션 내의 하나 이상의 특정 모듈의 레이턴시, 또는 양자 모두를 더 결정할 수도 있다. 레이턴시 정보는, 예를 들어 데이터 처리 애플리케이션에서의 문제점, 데이터의 소스에 관련된 문제점, 또는 다른 문제점들을 식별하도록 사용될 수 있다.
일 예에서, 다시 도 12 를 참조하면, GGSN(1210)은 자신의 데이터(1214)를 매 분마다 데이터 분석 시스템(1218)으로 전송하는 반면, SGSN(1212)은 자신의 데이터(1216)를 매 15 분 마다 데이터 분석 시스템(1218)으로 전송한다. 이러한 예에서, 상관 GGSN 데이터(1214) 및 SGSN 데이터(1216)를 상관시키는 상관 모듈은 SGSN 데이터(1216)가 이것이 이미 수신한 GGSN 데이터(1214)와 상관하기에 최대 15 분을 대기해야 할 수도 있다. 이러한 대기가 데이터 처리 애플리케이션에 레이턴시를 도입한다. 시스템 개발자는 데이터 흐름으로부터 초래되는 레이턴시에 대한 이해를 사용하여, 예를 들면, 네트워크(1208)의 구조, 데이터 처리 애플리케이션, 또는 양자 모두에 변화를 가할 수 있다.
다른 예에서, 레이턴시는 시스템 신호두절의 결과로서 시스템 백로그(backlog)에 의하여 도입될 수도 있다. 예를 들면, 데이터 분석 시스템(1218)이 일반적으로 자신의 총 용량의 80% 에서 동작한다면(즉, 데이터 분석 시스템(1218)에 의하여 처리되는 데이터의 볼륨이 데이터 분석 시스템(1218)이 처리할 수 있는 데이터의 최대 볼륨의 약 80% 라면), 데이터 분석 시스템(1218)이 하루 신호두절되면 처리하기 위해서 5 일이 걸리는 데이터의 백로그가 생성될 수 있다. 회사는, 예를 들면, 용량 계획 결정을 통지하기 위하여 백로그-관련 레이턴시에 대한 이해를 사용할 수 있다.
몇 가지 예들에서, 데이터 레코드 양 대신에 또는 이에 추가적으로 다른 정보가 모니터링되고 분석될 수 있다. 예를 들면, 데이터 처리 애플리케이션을 통과하는 바이트 카운트가 추적될 수 있다; 이러한 정보는, 예를 들어 시스템 성능을 모니터링하고 장래의 용량 계획 결정을 통지하는 것을 돕도록 사용될 수 있다. 각각의 데이터 레코드 또는 각각의 레코드 세트와 연관된 수익금이 추적될 수 있다. 다른 정보도 역시 추적될 수 있다.
데이터 처리 애플리케이션의 검사를 위하여 본 명세서에서 설명되는 접근법은 적합한 소프트웨어를 실행하는 컴퓨팅 시스템을 사용하여 구현될 수 있다. 예를 들어, 소프트웨어는, 각각 적어도 하나의 프로세서, 적어도 하나의 데이터 스토리지 시스템(휘발성 및 비-휘발성 메모리 및/또는 스토리지 엘리먼트를 포함), 적어도 하나의 사용자 인터페이스(적어도 하나의 입력 디바이스 또는 포트를 사용하여 입력을 수신하고, 적어도 하나의 출력 디바이스 또는 포트를 사용하여 출력을 제공하기 위함)를 포함하는 하나 이상의 프로그래밍된 또는 프로그래밍가능한 컴퓨팅 시스템(분산형, 클라이언트/서버, 또는 그리드와 같은 다양한 아키텍처일 수 있음)에서 실행하는 하나 이상의 컴퓨터 프로그램 내의 프로시저를 포함할 수도 있다. 소프트웨어는, 예를 들어 데이터흐름 그래프의 디자인, 구성, 및 실행과 관련된 서비스를 제공하는 더 큰 프로그램의 하나 이상의 모듈을 포함할 수도 있다. 프로그램의 모듈(예를 들어, 데이터흐름 그래프의 엘리먼트)은 데이터 저장소 내에 저장되는 데이터 모델에 따르는 데이터 구조 또는 다른 조직된 데이터로서 구현될 수 있다.
소프트웨어는 유형의(tangible) 비-일시적 매체, 예컨대 CD-ROM 또는 컴퓨터-판독가능 매체(범용 또는 특수 목적 컴퓨팅 시스템 또는 디바이스에 의하여 독출가능함)에 제공되거나, 네트워크의 통신 매체를 거쳐 이것이 실행되는 컴퓨팅 시스템의 비일시적 매체로 전송(전파되는 신호로 인코딩됨)될 수도 있다. 처리의 일부 또는 전부는 특수 목적 컴퓨터에서, 또는 특수-목적 하드웨어, 예컨대 코프로세서 또는 필드-프로그래밍가능한 게이트 어레이(FPGAs) 또는 전용, 주문형 집적회로(ASICs)를 사용하여 수행될 수도 있다. 처리는 소프트웨어에 의하여 특정된 계산의 상이한 부분들이 상이한 컴퓨팅 엘리먼트에 의하여 수행되는 방식인 분산 방식으로 구현될 수도 있다. 각각의 이러한 컴퓨터 프로그램은 바람직하게는 스토리지 디바이스 매체가 본 명세서에서 설명되는 프로시저를 수행하기 위하여 컴퓨터에 의해 판독될 때 컴퓨터를 구성하고 작동시키기 위하여, 범용 또는 특수 목적 프로그래밍가능 컴퓨터에 의하여 스토리지 디바이스의 컴퓨터-판독가능 스토리지 매체(예를 들어, 매체의 고상 메모리(solid state memory) 또는 자기적 또는 광학적 매체)에 저장되거나 다운로드된다. 진보적인 시스템은 또한 컴퓨터 프로그램으로써 구성된 유형의 비일시적 매체로서 구현될 수 있다고 간주될 수도 있는데, 여기에서 이와 같이 구성된 매체는 컴퓨터가 본 명세서에서 설명된 처리 단계 중 하나 이상을 수행하기 위하여 특정하고 선정의된 방식으로 작동하도록 한다.
본 발명의 다수 개의 실시예들이 설명되었다. 그럼에도 불구하고, 앞선 설명이 예시하기 위하여 의도되고 후속하는 특허청구범위에 의하여 정의되는 본 발명의 범위를 한정하기 위한 것이 아님이 이해되어야 한다. 이에 상응하여, 다른 실시예들도 역시 후속하는 청구항들의 범위 내에 있다. 예를 들어, 다양한 변형이 본 발명의 범위로부터 벗어나지 않고서도 이루어질 수도 있다. 추가적으로, 위에서 설명된 단계들 중 일부는 순서 독립적일 수도 있고, 따라서 설명된 것과 상이한 순서로 수행될 수 있다.

Claims (18)

  1. 방법으로서,
    모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 제 1 양을 결정하는 단계;
    상기 애플리케이션의 모듈에 대하여, 상기 데이터 레코드의 처리 도중에 상기 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하는 단계; 및
    데이터 레코드의 제 1 양 및 제 2 양이, 상기 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 상기 애플리케이션의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시하는 규칙을 만족하는지 여부를 결정하는 단계; 및
    상기 애플리케이션의 모듈에 의한 데이터 레코드의 처리와 연관된 시간에 기초하여 상기 애플리케이션과 연관된 레이턴시를 결정하는 단계를 포함하는, 방법.
  2. 제 1 항에 있어서,
    상기 규칙이 만족되는지 여부를 표시하는 보고를 제공하는 단계를 포함하는, 방법.
  3. 제 1 항에 있어서,
    상기 애플리케이션은 복수 개의 출력 포트를 포함하는 모듈을 포함하고, 상기 타겟 관련성은 상기 모듈에 의하여 수신되는 레코드의 양이 상기 모듈의 출력 포트를 통해서 출력되는 레코드의 양과 동일하다는 표시를 포함하는, 방법.
  4. 제 1 항에 있어서,
    상기 모듈은 레코드의 각각의 수신된 입력량에 대해 레코드의 출력량을 출력하고, 상기 입력량은 상기 출력량과 상이하며, 상기 타겟 관련성은 입력량과 출력량 사이의 비율의 표시를 포함하는, 방법.
  5. 제 1 항에 있어서,
    규칙을 특정하는 단계를 포함하는, 방법.
  6. 제 1 항에 있어서,
    상기 규칙의 사양을 수신하는 단계를 포함하는, 방법.
  7. 제 1 항에 있어서,
    상기 애플리케이션의 모듈에 의하여 출력되는 데이터 레코드의 제 2 양을 결정하는 단계는, 상기 모듈로부터 출력되는 데이터 레코드를 카운트하는 단계를 포함하는, 방법.
  8. 제 1 항에 있어서,
    상기 애플리케이션의 모듈에 의하여 출력되는 데이터 레코드의 제 2 양을 결정하는 단계는,
    상기 모듈의 제 1 출력 포트로부터 출력되는 데이터 레코드를 카운트하는 단계; 및
    상기 제 1 출력 포트로부터 출력되는 데이터 레코드의 개수 및 상기 모듈로 입력되는 데이터 레코드의 개수에 기초하여 상기 모듈의 제 2 출력 포트로부터 출력되는 데이터 레코드의 개수를 계산하는 단계를 포함하는, 방법.
  9. 제 1 항에 있어서,
    상기 애플리케이션의 레이턴시를 결정하는 단계는,
    상기 애플리케이션이 데이터 레코드를 수신하는 시작 시간 및 상기 애플리케이션이 데이터 레코드의 처리를 종료하는 종료 시간에 기초하여 상기 레이턴시를 결정하는 단계를 포함하는, 방법.
  10. 제 9 항에 있어서,
    상기 애플리케이션은 상기 제 1 양 및 제 2 양이 상기 규칙을 만족하는 경우 데이터 레코드의 처리를 완료한 것인, 방법.
  11. 제 1 항에 있어서,
    상기 데이터 레코드 중 특정한 하나가 상기 애플리케이션의 모듈에 의하여 처리되는 시간을 기록하는 단계를 포함하는, 방법.
  12. 제 11 항에 있어서,
    기록된 시간에 기초하여 상기 모듈의 레이턴시를 결정하는 단계를 포함하는, 방법.
  13. 제 1 항에 있어서,
    이동 전화 시스템으로부터 상기 데이터 레코드를 수신하는 단계를 포함하는, 방법.
  14. 제 1 항에 있어서,
    상기 데이터 레코드는 이동 전화 시스템의 제 1 타입의 스위치에 의하여 처리되는 제 1 데이터 레코드 및 상기 이동 전화 시스템의 제 2 타입의 스위치에 의하여 처리되는 제 2 데이터 레코드를 포함하는, 방법.
  15. 컴퓨터-판독가능 매체에 저장되는 소프트웨어로서, 상기 소프트웨어는 명령을 포함하고, 상기 명령은 컴퓨팅 시스템으로 하여금:
    모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 제 1 양을 결정하고;
    상기 애플리케이션의 모듈에 대하여, 상기 데이터 레코드의 처리 도중에 상기 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하며;
    데이터 레코드의 제 1 양 및 제 2 양이 상기 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 상기 애플리케이션의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시하는 규칙을 만족하는지 여부를 결정하고; 그리고
    상기 애플리케이션의 모듈에 의한 데이터 레코드의 처리와 연관된 시간에 기초하여 상기 애플리케이션과 연관된 레이턴시를 결정하게 하는, 컴퓨터-판독가능 매체에 저장되는 소프트웨어.
  16. 컴퓨팅 시스템으로서,
    적어도 하나의 프로세서를 포함하고, 상기 프로세서는:
    모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 제 1 양을 결정하고;
    상기 애플리케이션의 모듈에 대하여, 상기 데이터 레코드의 처리 도중에 상기 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하며;
    데이터 레코드의 제 1 양 및 제 2 양이 상기 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 상기 애플리케이션의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시하는 규칙을 만족하는지 여부를 결정하고; 그리고
    상기 애플리케이션의 모듈에 의한 데이터 레코드의 처리와 연관된 시간에 기초하여 상기 애플리케이션과 연관된 레이턴시를 결정하도록 구성되는, 컴퓨팅 시스템.
  17. 컴퓨팅 시스템으로서,
    모듈을 가지는 애플리케이션에 의하여 수신되는 데이터 레코드의 제 1 양을 결정하기 위한 수단;
    상기 애플리케이션의 모듈에 대하여, 상기 데이터 레코드의 처리 도중에 상기 모듈에 의하여 출력되는 데이터 레코드의 개별적인 제 2 양을 결정하기 위한 수단; 및
    데이터 레코드의 제 1 양 및 제 2 양이 상기 애플리케이션에 의하여 수신되는 데이터 레코드의 양과 상기 애플리케이션의 모듈에 의하여 출력되는 데이터 레코드의 양 사이의 타겟 관련성을 표시하는 규칙을 만족하는지 여부를 결정하기 위한 수단; 및
    상기 애플리케이션의 모듈에 의한 데이터 레코드의 처리와 연관된 시간에 기초하여 상기 애플리케이션과 연관된 레이턴시를 결정하기 위한 수단을 포함하는, 컴퓨팅 시스템.
  18. 제 1 항에 있어서,
    상기 모듈에 의한 데이터 레코드의 출력과 연관된 시간에 기초하여 상기 애플리케이션과 연관된 레이턴시를 결정하는 단계를 포함하는, 방법.
KR1020157023555A 2013-03-15 2014-02-11 데이터 처리 애플리케이션의 검사 KR101989330B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/837,860 2013-03-15
US13/837,860 US9143624B2 (en) 2013-03-15 2013-03-15 Auditing of data processing applications
PCT/US2014/015762 WO2014149240A1 (en) 2013-03-15 2014-02-11 Auditing of data processing applications

Publications (2)

Publication Number Publication Date
KR20150132122A true KR20150132122A (ko) 2015-11-25
KR101989330B1 KR101989330B1 (ko) 2019-06-14

Family

ID=51529296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157023555A KR101989330B1 (ko) 2013-03-15 2014-02-11 데이터 처리 애플리케이션의 검사

Country Status (9)

Country Link
US (1) US9143624B2 (ko)
EP (1) EP2972959B1 (ko)
JP (1) JP6431894B2 (ko)
KR (1) KR101989330B1 (ko)
AU (1) AU2014238337B2 (ko)
CA (1) CA2900937A1 (ko)
HK (1) HK1216041A1 (ko)
SG (1) SG11201506257PA (ko)
WO (1) WO2014149240A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3210170A1 (en) * 2014-10-20 2017-08-30 AB Initio Technology LLC Specifying and applying rules to data
US11531539B2 (en) 2015-10-28 2022-12-20 Qomplx, Inc. Automated compliance and testing framework for software development
US11531538B2 (en) 2015-10-28 2022-12-20 Qomplx, Inc. Meta-indexing, search, compliance, and test framework for software development using smart contracts
US10740096B2 (en) * 2015-10-28 2020-08-11 Qomplx, Inc. Meta-indexing, search, compliance, and test framework for software development
US10360534B2 (en) * 2016-08-24 2019-07-23 WeighUp LLC Systems and methods for automating monitoring of the contents of a container
WO2020068927A2 (en) * 2018-09-25 2020-04-02 Ab Initio Technology Llc A dedicated audit port for implementing recoverability in outputting audit data
US11561992B1 (en) * 2019-10-21 2023-01-24 Palantir Technologies Inc. Systems and methods for visualizing one or more datasets

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1428125B1 (en) * 2001-09-19 2010-11-03 Hewlett-Packard Company Monitoring in component-based systems at runtime
US8051165B2 (en) * 2003-04-23 2011-11-01 Comptel Oyj Mediation system and method for processing event records

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2083532B1 (en) 2008-01-23 2013-12-25 Comptel Corporation Convergent mediation system with improved data transfer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1428125B1 (en) * 2001-09-19 2010-11-03 Hewlett-Packard Company Monitoring in component-based systems at runtime
US8051165B2 (en) * 2003-04-23 2011-11-01 Comptel Oyj Mediation system and method for processing event records

Also Published As

Publication number Publication date
US9143624B2 (en) 2015-09-22
SG11201506257PA (en) 2015-09-29
JP6431894B2 (ja) 2018-11-28
EP2972959A4 (en) 2016-11-23
EP2972959A1 (en) 2016-01-20
WO2014149240A1 (en) 2014-09-25
HK1216041A1 (zh) 2016-10-07
CN105051716A (zh) 2015-11-11
US20140273930A1 (en) 2014-09-18
JP2016517565A (ja) 2016-06-16
CA2900937A1 (en) 2014-09-25
AU2014238337A1 (en) 2015-08-20
KR101989330B1 (ko) 2019-06-14
EP2972959B1 (en) 2018-04-18
AU2014238337B2 (en) 2019-04-18

Similar Documents

Publication Publication Date Title
KR101989330B1 (ko) 데이터 처리 애플리케이션의 검사
US11030068B1 (en) Graphical user interface (GUI) for representing instrumented and uninstrumented objects in a microservices-based architecture
CN106815254B (zh) 一种数据处理方法和装置
US10742481B2 (en) Near real time analytics
US10411969B2 (en) Backend resource costs for online service offerings
CN110647447B (zh) 用于分布式系统的异常实例检测方法、装置、设备和介质
JP6423803B2 (ja) キュー監視及び視覚化
US8180716B2 (en) Method and device for forecasting computational needs of an application
CN110955685A (zh) 一种大数据基数估计方法、系统、服务器和存储介质
CA3060601A1 (en) Systems and methods for projecting data trends
US9009735B2 (en) Method for processing data, computing node, and system
CN113342744B (zh) 调用链的并行构建方法、装置、设备及存储介质
EP2770447A1 (en) Data processing method, computational node and system
US10528568B2 (en) Placement of services in stream computing applications
KR20170131007A (ko) 데이터 분산 서비스 기반의 실시간 통신 감시 시스템
CN105051716B (zh) 数据处理应用程序的稽核方法、系统及可读存储介质
CN109948927A (zh) 一种用于分布式账本的性能分析方法
CN113918662A (zh) 一种数据处理方法、装置、存储介质及电子设备
WO2022269573A1 (en) System and method facilitating monitoring of data quality
Matczak Verification of linear scalability of a business Big Data platform against the Queueing Networks model
WO2023077084A1 (en) Quantization of data streams of instrumented software and handling of delayed or late data
CN113657880A (zh) 一种针对海量数据的资源交易对比方法、装置以及设备
Osorio et al. An analytical approximation of the joint distribution of aggregate queue-lengths in an urban network
CN113763023A (zh) 用户识别的方法、装置、电子设备和存储介质
CN112445671A (zh) 链路跟踪方法、装置以及计算机系统

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant