KR20220152916A - 프로세스들에 대한 병목 검출 - Google Patents

프로세스들에 대한 병목 검출 Download PDF

Info

Publication number
KR20220152916A
KR20220152916A KR1020217038908A KR20217038908A KR20220152916A KR 20220152916 A KR20220152916 A KR 20220152916A KR 1020217038908 A KR1020217038908 A KR 1020217038908A KR 20217038908 A KR20217038908 A KR 20217038908A KR 20220152916 A KR20220152916 A KR 20220152916A
Authority
KR
South Korea
Prior art keywords
segment
particular segment
identified segments
metric
execution
Prior art date
Application number
KR1020217038908A
Other languages
English (en)
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 KR20220152916A publication Critical patent/KR20220152916A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1734Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/02Payment architectures, schemes or protocols involving a neutral party, e.g. certification authority, notary or trusted third party [TTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/042Payment circuits characterized in that the payment protocol involves at least one cheque
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/10Payment architectures specially adapted for electronic funds transfer [EFT] systems; specially adapted for home banking systems
    • G06Q20/102Bill distribution or payments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/32Payment architectures, schemes or protocols characterised by the use of specific devices or networks using wireless devices
    • G06Q20/326Payment applications installed on the mobile devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Economics (AREA)
  • Finance (AREA)
  • Human Resources & Organizations (AREA)
  • Development Economics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Educational Administration (AREA)
  • Computer Hardware Design (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

병목을 식별하기 위해 프로세스의 복수의 실행 인스턴스에 대한 이벤트 로그를 분석하기 위한 시스템들 및 방법들이 제공된다. 프로세스의 복수의 실행 인스턴스에 대한 이벤트 로그가 수신되고, 복수의 실행 인스턴스 중 하나 이상 동안 실행된 세그먼트들이 이벤트 로그로부터 식별된다. 세그먼트들은 프로세스의 활동들의 쌍을 나타낸다. 식별된 세그먼트 중 각각의 특정 세그먼트에 대해, 성능의 척도가 이벤트 로그에 기초하여 특정 세그먼트의 하나 이상의 실행 인스턴스 각각에 대해 계산되고, 특정 세그먼트의 하나 이상의 실행 인스턴스 각각은 계산된 성능의 척도들에 기초하여 분류되고, 하나 이상의 메트릭들이 특정 세그먼트의 분류된 하나 이상의 실행 인스턴스에 기초하여 특정 세그먼트에 대해 계산된다. 식별된 세그먼트들은 병목을 가질 가능성이 가장 높은 식별된 세그먼트 중의 하나를 식별하기 위해 하나 이상의 메트릭에 기초하여 서로 비교된다.

Description

프로세스들에 대한 병목 검출
관련 출원들에 대한 상호 참조
본 출원은 2020년 3월 11일자로 출원된 미국 실용신안 특허 출원 제16/816,184호에 대해 우선권을 주장하며, 그 개시내용 전체가 본 명세서에 참고로 통합된다.
기술 분야
본 발명은 일반적으로 프로세스 마이닝(process mining)에 관한 것으로, 특히 프로세스들에 대한 병목 검출에 관한 것이다.
프로세스들은 제품들 또는 서비스들을 제공하기 위해 수행되는 활동들의 시퀀스들이다. 프로세스 마이닝에서, 프로세스들은 효율성을 개선하고 프로세스들의 더 나은 이해를 얻기 위해 트렌드들, 패턴들, 및 다른 프로세스 분석 척도들을 식별하기 위해 분석된다. 그러나, 현재의 프로세스 마이닝 기술들은 프로세스들에서의 병목들의 식별을 가능하게 하기 위한 프로세스들의 성능에 대한 충분한 분석 데이터를 제공하지 못한다. 그러한 병목들은 프로세스들의 성능을 제한하고, 불필요한 지연들, 수익의 손실, 및 사용자 불만족을 초래할 수 있다.
발명의 간단한 요약
하나 이상의 실시예들에 따르면, 병목을 식별하기 위해 프로세스를 분석하기 위한 시스템들 및 방법들이 제공된다. 프로세스의 다수의 실행 인스턴스 동안 이벤트 로그가 유지된다. 이벤트 로그는 다수의 실행 인스턴스 동안 실행되는 세그먼트를 식별하고, 세그먼트 각각은 프로세스의 활동들의 쌍을 나타낸다. 식별된 세그먼트 각각에 대한 메트릭이 계산되고, 병목을 가질 가능성이 가장 높은 식별된 세그먼트들 중 하나가 메트릭들에 기초하여 식별된다. 프로세스는 로봇 프로세스 자동화 프로세스일 수 있다.
일 실시예에서, 프로세스의 복수의 실행 인스턴스에 대한 이벤트 로그가 수신되고, 복수의 실행 인스턴스 중 하나 이상 동안 실행된 세그먼트들이 이벤트 로그로부터 식별된다. 세그먼트들은 프로세스의 활동들의 쌍을 나타내고, 활동들의 쌍은 소스 활동 및 목적지 활동을 포함하고, 목적지 활동의 실행은 이벤트 로그에서 소스 활동의 실행에 바로 후속한다. 식별된 세그먼트 중 각각의 특정 세그먼트에 대해, 성능의 척도가 이벤트 로그에 기초하여 특정 세그먼트의 하나 이상의 실행 인스턴스 각각에 대해 계산되고, 특정 세그먼트의 하나 이상의 실행 인스턴스 각각은 성능의 계산된 척도들에 기초하여 분류되고, 하나 이상의 메트릭들이 특정 세그먼트의 분류된 하나 이상의 실행 인스턴스에 기초하여 특정 세그먼트에 대해 계산된다. 식별된 세그먼트들은 병목을 가질 가능성이 가장 높은 식별된 세그먼트들 중 하나를 식별하기 위해 하나 이상의 메트릭에 기초하여 서로 비교된다.
일 실시예에서, 성능의 척도는 활동들의 쌍 사이의 시간 간격이다.
일 실시예에서, 특정 세그먼트의 하나 이상의 실행 인스턴스 각각은 Jenks Natural Breaks Optimization 알고리즘을 사용하여 복수의 클래스 중 하나로 분류된다. 특정 세그먼트에 대한 하나 이상의 메트릭들은 1) 특정 세그먼트의 클래스들 간의 평균 차이를 나타내는 특정 세그먼트에 대한 효과 크기 메트릭, 2) 특정 세그먼트의 최고 성능 클래스와 다른 클래스들 간의 시간 차이를 나타내는 특정 세그먼트에 대한 손실 시간 메트릭, 및 3) 전체 성능에 대한 특정 세그먼트의 기여를 나타내는 가중 영향 메트릭을 계산함으로써 계산된다.
일실시예에서, 식별된 세그먼트들은 하나 이상의 메트릭에 기초하여 식별된 세그먼트들의 순위화함으로써 서로 비교된다. 식별된 세그먼트들은 효과 크기 메트릭, 손실 시간 메트릭, 및 가중 영향 메트릭 각각에 대해 식별된 세그먼트의 개별 순위를 결정하고, 개별 순위들을 결합하여 식별된 세그먼트들의 종합 순위를 결정함으로써 순위화될 수 있다. 병목을 가질 가능성이 가장 높은 세그먼트들 중 하나가 종합 순위에 기초하여 식별될 수 있다.
일 실시예에서, 비교 결과들이 디스플레이된다.
본 발명의 이들 및 다른 이점들은 이하의 상세한 설명 및 첨부 도면들을 참조함으로써 이 분야의 통상의 기술자들에게 명백할 것이다.
도 1은 본 발명의 하나 이상의 실시예들에 따른, 병목 검출을 위해 분석될 수 있는 예시적인 프로세스를 도시한다.
도 2는 본 발명의 하나 이상의 실시예들에 따른, 병목 검출을 위한 프로세스를 분석하기 위한 방법을 도시한다.
도 3은 본 발명의 하나 이상의 실시예들에 따른, 도 1의 프로세스의 예시적인 이벤트 로그를 도시한다.
도 4는 본 발명의 하나 이상의 실시예들에 따른, 세그먼트를 순위화하는 예시적인 표를 도시한다.
도 5는 본 발명의 하나 이상의 실시예들에 따른, 세그먼트 개요의 대시보드를 도시한다.
도 6은 본 발명의 하나 이상의 실시예들에 따른, 프로세스의 분석의 시간 관점의 대시보드를 도시한다.
도 7은 본 발명의 하나 이상의 실시예들에 따른, 프로세스의 분석의 사례 관점의 대시보드를 도시한다.
도 8은 본 발명의 하나 이상의 실시예들에 따른, 프로세스의 분석의 조직 관점의 대시보드를 도시한다.
도 9는 하나 이상의 실시예들에 따른, 프로세스의 분석의 제어 흐름 관점의 대시보드를 도시한다.
도 10은 하나 이상의 실시예들에 따른, 프로세스의 분석의 제어 흐름 관점에 대한 에지 횡단률을 보여주는 프로세스의 결합도의 대시보드를 도시한다.
도 11은 하나 이상의 실시예들에 따른, 프로세스의 분석의 제어 흐름 관점에 대한 평균 처리량 시간을 보여주는 프로세스들의 결합도의 대시보드를 도시한다.
도 12는 본 발명의 실시예에 따른 컴퓨팅 시스템의 블록도이다.
프로세스들은 다수의 상이한 애플리케이션에 대한 제품들 또는 서비스들을 제공하기 위해 이용될 수 있다. 그러한 프로세스들의 예시적인 애플리케이션들은 관리 애플리케이션들(예를 들어, 새로운 직원의 온보딩), 결제 처리 애플리케이션들(예를 들어, 구매, 송장 관리, 및 결제 용이화), 및 정보 기술 애플리케이션들(예를 들어, 티켓팅 시스템들)을 포함한다. 예시적인 프로세스(100)가 도 1에 도시된다. 프로세스(100)는 송장들을 처리하고 결제하기 위한 비즈니스 프로세스이다. 일 실시예에서, 프로세스(100)는 하나 이상의 RPA 로봇을 사용하여 작업을 자동으로 수행하기 위한 로봇 프로세스 자동화(RPA) 작업흐름으로서 구현될 수 있다.
프로세스(100)는 프로세스(100) 내의 단계들의 사전 정의된 시퀀스를 나타내는 활동들(102-114)을 포함한다. 도 1에 도시된 바와 같이, 프로세스(100)는, 각각의 활동(102-114)이 노드로서 표현되고, 활동들(102-114) 사이의 각각의 전이가 노드들을 연결하는 에지들로서 표현되는 유향 그래프로서 모델링된다. 활동들 사이의 전이는 소스 활동으로부터 목적지 활동으로의 프로세스(100)의 실행을 나타낸다. 프로세스(100)는 송장 수신 활동(102)에서 시작하여, 수신된 송장 체크 활동(104)으로 진행한다. 수신된 송장이 수신된 송장 체크 활동(104)에서 정보를 누락한 것으로 결정되는 경우, 프로세스(100)는 송장 최종 체크 활동(110)으로 진행하기 전에 데이터 요청 활동(106) 및 계약 조건 체크 활동(108)으로 진행한다. 수신된 송장이 수신된 송장 체크 활동(104)에서 정보를 누락하지 않은 것으로 결정되는 경우, 프로세스(100)는 송장 최종 체크 활동(110)으로 직접 진행한다. 이어서, 프로세스(100)는 송장 승인 활동(112) 및 송장 결제 활동(114)으로 진행한다. 프로세스(100)의 실행은 이벤트 로그의 형태로 기록된다.
때때로, 프로세스(100)의 실행은 병목으로 인해 방해될 수 있다. 본 명세서에서 사용될 때, 병목은 프로세스(100)의 실행에 부정적인 영향을 미치는 프로세스(100)의 하나 이상의 활동들의 세트를 지칭한다. 프로세스(100)의 실행은 예를 들어 처리량(즉, 실행) 시간, 자원 사용량, 수익, 지원 해결 시간 또는 임의의 다른 성능 표시자와 같은 임의의 적절한 메트릭에 기초하여 부정적인 영향을 받을 수 있다. 예를 들어, 프로세스(100)의 실행은 최대 처리량 시간, 최소 자원 사용량, 최소 수익 증가, 수익 증가, 지원 해결 시간 등과 같은 임의의 메트릭에 기초하여 부정적인 영향을 받을 수 있다. 그러한 병목들은 프로세스(100)의 실행을 제한하고, 불필요한 지연, 수익 손실 및 사용자 불만족을 유발할 수 있다.
본 발명의 실시예들에 따르면, 프로세스들(예를 들면, 프로세스(100))은 프로세스들에서 병목들을 식별하기 위해 분석된다. 분석의 다양한 양태들은 병목들의 근본 원인의 식별을 용이하게 하기 위해 하나 이상의 대시보드들에서 시각화될 수 있다. 유리하게, 본 발명의 실시예들에 따른 병목들을 식별하기 위한 프로세스들의 분석은 그러한 병목들의 근본 원인이 완화되거나 제거될 수 있게 하고, 그에 의해 프로세스들의 효율 및 성능을 개선한다.
도 2는 하나 이상의 실시예들에 따른, 병목 식별을 위한 프로세스를 분석하기 위한 방법(200)을 도시한다. 도 2는 도 1의 프로세스(100)를 계속 참조하여 설명될 것이다. 일 실시예에서, 방법(200)의 단계들은 병목 검출을 위한 프로세스(100)를 분석하기 위해 수행된다. 방법(200)의 단계들은, 예를 들어, 도 12의 컴퓨터(1200)와 같은 임의의 적합한 컴퓨팅 디바이스에 의해 수행될 수 있다.
단계 202에서, 프로세스의 복수의 실행 인스턴스에 대한 이벤트 로그가 수신된다. 이벤트 로그는 프로세스의 복수의 실행 인스턴스 동안 발생하는 이벤트들을 기록함으로써 프로세스의 복수의 실행 인스턴스 동안 유지될 수 있다. 이벤트는 특정 시간에서의 그리고 특정 사례에 대한 활동의 실행을 지칭한다. 사례는 프로세스의 단일 실행 인스턴스에 대응하고 사례 식별자(ID)에 의해 식별된다. 일 실시예에서, 각각의 이벤트는 실행된 활동의 라벨, 활동의 실행의 타임 스탬프, 및 실행된 활동의 실행 인스턴스를 식별하는 사례 ID를 포함하는 튜플로서 표현될 수 있다.
도 3은 하나 이상의 실시예들에 따른, 도 1의 프로세스(100)의 예시적인 이벤트 로그(300)를 도시한다. 이벤트 로그(300)는 이벤트 로그(300) 내의 사례 ID 1 및 사례 ID 2에 대응하는, 프로세스(100)의 2개의 실행 인스턴스 동안 발생하는 이벤트들을 기록한다. 도 3에 도시된 바와 같이, 이벤트 로그(300)는 행들(302) 및 열들(304)이 교차하는 셀에서 이벤트에 각각 대응하는 행들(302) 및 이벤트의 속성을 각각 식별하는 열들(304)을 갖는 표로서 포맷된다. 특히, 각각의 행(302)은 활동(102-114)의 실행을 나타내는 이벤트(열 304-B에서 식별됨), 활동(102-114)의 실행의 타임 스탬프(열 304-C에서 식별됨), 및 실행된 활동(102-114)의 실행 인스턴스를 식별하는 사례 ID(열 304-A에서 식별됨)와 연관된다. 일 실시예에서, 열 304-C에서 식별된, 활동(102-114)의 실행의 타임 스탬프는 활동(102-114)의 실행이 완료된 시간을 지칭하지만, 대안적으로 활동(104-114)의 실행이 시작된 시간을 지칭할 수 있다. 일 실시예에서, 도 3에 도시된 바와 같이, 이벤트 로그(300)는 실행된 활동의 라벨, 활동의 실행의 타임 스탬프, 및 각각의 이벤트에 대한 실행된 활동의 실행 인스턴스를 식별하는 사례 ID만을 식별한다. 그러나, 이벤트 로그(300)는 임의의 적절한 포맷일 수 있고, 이벤트들의 다른 속성들을 식별하는 추가적인 열들(304)을 포함할 수 있다는 것이 이해되어야 한다.
단계 204에서, 프로세스의 복수의 실행 인스턴스 중 하나 이상 동안 실행된 세그먼트들이 이벤트 로그로부터 식별된다. 각각의 세그먼트는 프로세스에서의 활동들의 쌍을 나타낸다. 활동들의 쌍은 본 명세서에서 <소스 활동, 목적지 활동>으로 표시되는 소스 활동 및 목적지 활동을 포함하며, 목적지 활동의 실행은 이벤트 로그에서 소스 활동의 실행에 바로 후속한다. 세그먼트들은 활동들의 쌍들을 식별하기 위해 이벤트 로그에서 각각의 실행 인스턴스를 횡단함으로써 식별된다. 일례에서, 아래의 세그먼트들이 도 3의 이벤트 로그(300)에서 식별될 수 있다: <송장 수신, 수신된 송장 체크>, <수신된 송장 체크, 송장의 최종 체크>, <수신된 송장 체크, 데이터 요청>, <데이터 요청, 계약 조건 체크>, <계약 조건 체크, 송장의 최종 체크>, <송장 최종 체크, 송장 승인>및 <송장 승인, 송장 결제>.
단계 206에서, 이벤트 로그에 기초하여, 식별된 세그먼트들 중 특정 세그먼트의 하나 이상의 실행 인스턴스 각각에 대해 성능의 척도가 계산된다. 일 실시예에서, 특정 세그먼트의 특정 실행 인스턴스에 대한 성능의 척도는 해당 특정 실행 인스턴스에 대한 세그먼트의 소스 활동과 목적지 활동 사이의 시간 간격이다. 시간 간격은 이벤트 로그로부터 특정 실행 인스턴스에 대한 소스 활동의 실행의 타임 스탬프 및 목적지 활동의 실행의 타임 스탬프를 추출하고 목적지 활동의 실행의 타임 스탬프와 소스 활동의 실행의 타임 스탬프 사이의 차이를 결정함으로써 계산될 수 있다. 예를 들어, 사례 ID 1의 실행 인스턴스에 대한 세그먼트 <수신된 송장 체크, 송장의 최종 체크>와 연관되는 시간 간격은 도 3의 이벤트 로그(300)로부터 2일, 3시간, 및 10초로서 계산될 수 있다. 다른 예에서, 사례 ID 1의 실행 인스턴스에 대한 세그먼트 <송장의 최종 체크, 송장의 승인>과 연관되는 시간 간격은 도 3의 이벤트 로그(300)로부터 1일, 20시간, 및 35분, 및 3초로서 계산될 수 있다. 시간 간격은 예를 들어 초, 분, 시간, 일, 달, 및/또는 년과 같은 임의의 적절한 포맷일 수 있다. 예를 들어, 자원 사용량 값, 수익 값들, 점유율, 또는 수치 값에 기초하고 소스 활동 및 목적지 활동에 대해 개별적으로 계산/측정될 수 있는 임의의 다른 적절한 척도와 같은 다른 성능 척도들이 또한 이용될 수 있다.
단계 208에서, 특정 세그먼트의 하나 이상의 실행 인스턴스 각각은 계산된 성능 척도들에 기초하여 복수의 클래스 중 하나로 분류된다. 일 실시예에서, 특정 세그먼트의 하나 이상의 실행 인스턴스 각각은 각각의 클래스 내의 분산을 최소화함으로써 동작하는 공지된 Jenks Natural Breaks Optimization 알고리즘을 이용하여 복수의 클래스 중 하나로 분류된다. Jenks Natural Breaks Optimization 알고리즘은 George F. Jenks의 "Optimal Data Classification for Choropleth Maps"에서 설명된다. 임의의 다른 적절한 데이터 클러스터링 알고리즘이 또한 이용될 수 있다.
Jenks Natural Breaks Optimization 알고리즘은 특정 세그먼트의 하나 이상의 실행 인스턴스의 성능 척도들을 포함하는 데이터 세트
Figure pct00001
를, 클래스들을 묘사하는 상이한 중단점들을 이용하여 데이터 세트를 반복적으로 분할함으로써 유사한 성능의 n개의 클래스
Figure pct00002
로 분할한다. 예를 들어, 7600, 3480, 220, 500, 1500, 및 1700의 시간 간격들을 갖는 6개의 실행 인스턴스 동안 실행되는 세그먼트 <송장 수신, 수신된 송장 체크>를 고려한다. 데이터 세트
Figure pct00003
이 주어지면, Jenks Natural Breaks Optimization 알고리즘은
Figure pct00004
를 n개의 미리 결정된 수의 클래스로 최적 분할하려고 시도한다. 이 예에서, n=3이다. Jenks Natural Breaks Optimization 알고리즘은 다음과 같이 단계 1-5를 적용한다.
단계 1: 데이터세트
Figure pct00005
를 정렬하고 임의로(예를 들어, 무작위로) 중단점들을 선택한다. 따라서, 임의로 선택된 중단점들을 갖는 정렬된 데이터세트
Figure pct00006
은 클래스들
Figure pct00007
을 유발한다.
단계 2: 각각의 클래스
Figure pct00008
에 대해 어레이 평균에 대한 제곱 편차들의 합(SDAM)을 계산한다. SDAM은 수학식 1에 따라 계산될 수 있다.
Figure pct00009
여기서
Figure pct00010
이다.
수학식 1을 정렬된 데이터세트
Figure pct00011
에 적용하면 다음과 같은 결과가 나온다.
Figure pct00012
단계 3: 모든 클래스
Figure pct00013
에 대해 클래스들 간의 제급 편차들의 합(SDBC)을 계산한다. SDBC는 수학식 2에 따라 모든 클래스
Figure pct00014
에 대해 계산될 수 있다.
Figure pct00015
여기서
Figure pct00016
이다.
수학식 2를 각각의 클래스
Figure pct00017
에 적용하면 다음과 같은 결과가 나온다.
Figure pct00018
단계 4: 모든 클래스
Figure pct00019
에 대해 클래스 평균에 대한 제곱 편차들의 합(SDCM)을 계산한다. SDCM은 수학식 3에 따라 모든 클래스
Figure pct00020
에 대해 계산될 수 있다.
Figure pct00021
수학식 3의 적용은
Figure pct00022
을 유발한다.
단계 5: 모든 가능한 중단점 조합에 대해 단계 2-4를 반복한다. 최고 SDCM을 갖는 중단점 조합이 선택된다. 따라서, 특정 세그먼트의 하나 이상의 실행 인스턴스 각각은 최고 SDCM을 갖는 중단점 조합에 의해 정의되는 복수의 클래스 중 하나로 분류된다.
일 실시예에서, 클래스들의 최적 수(n)는 상이한 수의 클래스들에 대해 데이터세트
Figure pct00023
에 대해 Jenks Natural Breaks Optimization 알고리즘을 반복적으로 수행함으로써 결정될 수 있다. 예를 들어, Jenks Natural Breaks Optimization 알고리즘은 n=1, ..., x의 클래스들의 수에 대해 반복적으로 수행될 수 있고, 여기서 x는 데이터세트
Figure pct00024
내의 항목들의 수이다. 이 예에서, x=6이다. Jenks Natural Breaks Optimization 알고리즘은 클래스들의 각각의 수에 대한 GVF(Goodness of Variance Fit) 척도를 제공한다. GVF 척도는
Figure pct00025
으로서 계산될 수 있고, 여기서 0의 GVF 척도는 비적합(no fit)을 나타내고, 1의 GVF 척도는 완벽한 적합(perfect fit)을 나타낸다. GVF를 최대화하는 것은 항상 클래스들의 최적 수가 데이터세트
Figure pct00026
내의 항목들의 수와 동일하게 할 것이다(즉, GVF=1). 따라서, n개의 클래스에 대한 GVF와 n+1개의 클래스에 대한 GVF 사이의 변화율을 나타내는 RGVFC(Rate of Goodness-of-Variance-Fit Change) 척도가 계산된다. n개의 클래스에 대한 RGVFC는
Figure pct00027
으로서 계산된다. 클래스들의 최적 수는 최대 GVF 값을 갖지만 RGVFC 임계값을 초과하지 않는 RGVFC 값을 갖는 클래스들의 수(n)로서 선택된다. 일 실시예에서, RGVFC 임계값은 2.5% 내지 10%이지만, 임의의 적합한 값이 이용될 수 있다.
단계 210에서, 특정 세그먼트의 분류된 하나 이상의 실행 인스턴스에 기초하여 특정 세그먼트에 대해 하나 이상의 메트릭이 계산된다. 하나 이상의 메트릭은 특정 세그먼트를 특징짓는 임의의 적절한 메트릭을 포함할 수 있다. 일 실시예에서, 하나 이상의 메트릭은 효과 크기, 손실 시간 및 가중 영향을 포함한다. 예를 들어, 클래스 크기, 클래스 방향(클래스들이 증가/감소함), 클래스 분포 등과 같은 임의의 다른 적절한 메트릭도 이용될 수 있다.
효과 크기: 효과 크기는 특정 세그먼트 내의 2개의 클래스 간의 차이의 정량적 척도이다. 일 실시예에서, 효과 크기는 공지된 Cohen의 d 방법에 따라 계산되지만, 임의의 다른 적절한 접근법이 이용될 수 있다. Cohen의 d 방법은 Jacob Cohen의 "Statistical Power Analysis for the Behavioral Sciences"에 설명되어 있다. 클래스들
Figure pct00028
Figure pct00029
의 Cohen의 d 값은 수학식 4에 따라 계산된다.
Figure pct00030
여기서,
Figure pct00031
Figure pct00032
는 각각
Figure pct00033
Figure pct00034
의 평균이고, s는 합동 표준 편차이다. 합동 표준 편차 s는 수학식 5에서 정의된다.
Figure pct00035
여기서,
Figure pct00036
Figure pct00037
는 각각
Figure pct00038
Figure pct00039
의 크기이고,
Figure pct00040
Figure pct00041
는 각각
Figure pct00042
Figure pct00043
의 분산들이다.
Figure pct00044
Figure pct00045
는 각각 수학식 6 및 7에서 정의된다.
Figure pct00046
Figure pct00047
Cohen의 d 값은 2개의 클래스가 상이한 표준 편차들의 수를 나타낸다. 예를 들어, 1의 Cohen의 d 값은 2개의 클래스가 1 표준 편차만큼 상이함을 나타내고, 2의 Cohen의 d 값은 2개의 클래스가 2 표준 편차만큼 상이함을 나타내고, 기타 등등이다.
Cohen의 d 방법은 한번에 2개의 클래스 사이의 효과 크기(즉, Cohen의 d 값)만을 계산한다. 2개보다 많은 클래스들을 가질 수 있는 특정 세그먼트의 Cohen의 d 값을 계산하기 위해, 클래스들의 쌍들의 모든 조합의 효과 크기가 평균화된다. 특히, 첫째, N개의 클래스들을 갖는 특정 세그먼트에 대해, 클래스들의 모든 쌍
Figure pct00048
가 식별되고, 여기서
Figure pct00049
Figure pct00050
이다. 둘째, 클래스들의 모든 쌍
Figure pct00051
에 대해 Cohen의 d 값이 계산된다. 마지막으로, 클래스들의 모든 쌍
Figure pct00052
에 대한 Cohen의 d 값의 합을 클래스들의 쌍들의 총 수로 나누어 특정 세그먼트의 Cohen의 d 값을 제공한다.
손실 시간: 손실 시간은 특정 세그먼트에서의 최상 성능(예를 들어, 가장 빠른) 클래스와 다른 클래스들 사이의 시간 차이를 나타낸다. 특정 세그먼트의 손실 시간은 특정 세그먼트에서 각각의 클래스
Figure pct00053
의 중앙값을 먼저 계산함으로써 계산되며, 여기서
Figure pct00054
는 클래스 번호이다. 둘째, 클래스 1의 중앙값은 최적 시간으로 설정된다(Jenks Natural Breaks Optimization 알고리즘의 특성으로 인해, 클래스 1은 항상 최저 중앙값(즉, 가장 빠른 시간)을 가질 것이다). 셋째, 특정 세그먼트에서의 각각의 클래스
Figure pct00055
에 대한 손실 시간은
Figure pct00056
로서 계산된다. 마지막으로, 각각의 클래스
Figure pct00057
에 대한 손실 시간은 특정 세그먼트의 손실 시간을 제공하기 위해
Figure pct00058
로서 합산되며, 여기서 N은 특정 세그먼트 내의 클래스들의 수이다.
클래스들의 중앙값은 두 가지 이유로 손실 시간을 계산하는 데 사용된다: 1) Jenks Natural Breaks Optimization 알고리즘의 특성으로 인해, 클래스 1은 항상 최저 중앙값을 가질 것이고, 2) 클래스의 중앙값은 클래스의 평균에 비해 불균형 데이터에 의해 덜 왜곡된다. 손실 시간은 특정 세그먼트의 하나 이상의 실행 인스턴스가 특정 세그먼트에서 가장 빠른 가능한 시간보다 느린 크기를 나타낸다. 따라서, 세그먼트 A가 세그먼트 B에 비해 상대적으로 작은 손실 시간을 갖는다는 것은 세그먼트 B를 개선하는 데 초점을 맞추는 것이 더 유리하다는 것을 나타낸다.
가중 영향: 가중 영향은 특정 세그먼트의 세그먼트 성능에 의해 야기되는 특정 세그먼트의 전체 성능의 백분율 기여를 나타낸다. 세그먼트 S에 대한 총 가중 영향(TWI)은 수학식 8에서와 같이 계산된다.
Figure pct00059
여기서, C는 세그먼트 S 내의 클래스들의 수이고,
Figure pct00060
는 세그먼트 S 내의 클래스
Figure pct00061
의 세그먼트 성능이고,
Figure pct00062
는 세그먼트 S 내의 클래스
Figure pct00063
의 전체 성능이고,
Figure pct00064
는 세그먼트 S를 통과하는 사례들의 수를 나타내고,
Figure pct00065
는 클래스
Figure pct00066
내에 있는 사례들의 수를 나타낸다. 세그먼트 성능은 세그먼트 S의 성능(예로서, 총 시간 간격)이다. 전체 성능은 세그먼트 S를 갖는 사례들의 총 처리량 시간이다.
단계 212에서, 식별된 세그먼트들의 임의의 나머지 세그먼트들이 있는지가 결정된다. 나머지 세그먼트들이 있는 것으로 결정되는 경우, 방법(200)은 단계 206으로 복귀하고, 단계 206-210이 다음의 나머지 세그먼트를 특정 세그먼트로서 사용하여 반복된다. 따라서, 식별된 세그먼트 중 각각의 세그먼트에 대해 단계 206-210이 수행된다. 나머지 세그먼트들이 없는 것으로 결정되는 경우, 방법(200)은 단계 214로 진행한다.
단계 214에서, 식별된 세그먼트들은 식별된 세그먼트들 중 적어도 하나에서 병목을 식별하기 위해 하나 이상의 메트릭에 기초하여 서로 비교된다. 일 실시예에서, 식별된 세그먼트들은 하나 이상의 메트릭에 기초하여 식별된 세그먼트 각각을 순위화함으로써 서로 비교된다. 일 실시예에서, 식별된 세그먼트의 개별 순위는 하나 이상의 메트릭 각각에 대해 먼저 결정된다. 예를 들어, 식별된 세그먼트들의 효과 크기 순위가 효과 크기 메트릭에 대해 결정될 수 있고, 식별된 세그먼트들의 손실 시간 순위가 잠재적인 손실 시간 메트릭에 대해 결정될 수 있고, 식별된 세그먼트들의 가중 영향 순위가 총 가중 영향 메트릭에 대해 결정될 수 있다. 그 후, 하나 이상의 메트릭에 대한 개별 순위들에 기초하여 종합 순위가 계산된다. 예를 들어, 종합 순위는 개별 순위들의 누적 순위, 개별 순위들의 가중 순위, 또는 개별 순위들을 집계하는 임의의 다른 적합한 순위를 포함할 수 있다. 일 실시예에서, 누적 순위는 하나 이상의 메트릭에 대한 개별 순위들의 합계 또는 평균으로서 계산될 수 있다. 종합 순위는 세그먼트가 다른 세그먼트들에 비해 병목을 가질 상대적 가능성을 나타낸다. 최고 종합 순위를 갖는 세그먼트는 다른 세그먼트들에 비해 병목을 가질 가능성이 가장 높은 세그먼트인 반면, 최저 누적 순위를 갖는 세그먼트는 다른 세그먼트들에 비해 병목을 가질 가능성이 가장 낮은 세그먼트이다. 식별된 세그먼트를 서로 비교하는 것은 사용자에 의한 식별된 세그먼트들에서의 병목의 식별을 용이하게 한다. 예를 들어, 최고 종합 순위를 갖는 세그먼트는 병목을 가질 가능성이 가장 높은 세그먼트이며, 이는 세그먼트가 병목을 갖는지를 결정하도록 사용자에 의한 추가 분석이 권장된다는 것을 나타낼 수 있다. 일부 실시예들에서, 순위들은 또한 동작 비용에 기초할 수 있고, 사용자는 그 후 최고의 잠재적 위험을 갖는 세그먼트들을 볼 수 있다.
도 4는 하나 이상의 실시예들에 따른 세그먼트를 순위화하기 위한 예시적인 표(400)를 도시한다. 표(400)의 열(402)에 도시된 바와 같이, 이벤트 로그에서 7개의 세그먼트가 식별된다. 열들(404, 406, 408)에 각각 도시된 바와 같이, 각각의 세그먼트에 대해 효과 크기, 잠재적 손실 시간 및 총 가중 영향 메트릭들이 계산된다. 열들(410, 412, 416)에 각각 도시된 바와 같이, 효과 크기, 잠재적 손실 시간 및 총 가중 영향 메트릭들 각각에 대해 세그먼트들의 개별 순위가 결정된다. 세그먼트들의 개별 순위들은 1에서 7까지의 범위이며, 1의 개별 순위를 갖는 세그먼트는 최저 순위 세그먼트이고, 7의 개별 순위를 갖는 세그먼트는 최고 순위 세그먼트이다. 예를 들어, 세그먼트 <C, E>는 열(404)에서 최저 효과 크기를 갖고, 따라서 열(410)에서 최저(1)로 순위화되는 반면, 세그먼트 <A, B>는 열(404)에서 최고 효과 크기를 갖고, 따라서 열(410)에서 최고(7)로 순위화된다. 세그먼트 <D, E>는 열(406)에서 최저의 잠재적 손실 시간을 갖고, 따라서 열(412)에서 최저(1)로 순위화되는 반면, 세그먼트 <A, B>는 열(406)에서 최고의 잠재적 손실 시간을 갖고, 따라서 열(412)에서 최고(7)로 순위화된다. 세그먼트 <A, C>는 열(408)에서 최저 총 가중 영향을 갖고, 따라서 열(414)에서 최저(1)로 순위화되는 반면, 세그먼트 <B, C>는 열(408)에서 최고 총 가중 영향을 갖고, 따라서 열(414)에서 최고(7)로 순위화된다. 열들(410-141)에서의 각각의 메트릭에 대한 개별 순위들은 열(416)에 도시된 바와 같이 누적 순위를 계산하기 위해 각각의 세그먼트에 대해 함께 가산된다. 세그먼트 <A, B>는 최고 누적 순위를 갖고, 병목을 가질 가능성이 가장 높은 세그먼트로서 식별된다. 일부 실시예들에서, 예를 들어, 최고 효과 크기, 최고의 잠재적 손실 시간 및 최고 총 가중 영향을 갖는 세그먼트들이 최저로 순위화되는 경우, 최저 누적 순위를 갖는 세그먼트는 병목을 가질 가능성이 가장 높은 세그먼트일 수 있다.
단계 216에서, 단계 214의 비교의 결과들이 출력된다. 예를 들어, 비교의 결과들은 비교의 결과들을 컴퓨터 시스템의 디스플레이 디바이스에 디스플레이하거나, 비교의 결과들을 컴퓨터 시스템의 메모리 또는 저장소에 저장하거나, 비교의 결과들을 원격 컴퓨터 시스템에 전송함으로써 출력될 수 있다.
일부 실시예들에서, 비교의 결과들은 예를 들어 도 5-11에 도시된 대시보드들과 같은 하나 이상의 사용자 인터페이스를 통해 디스플레이 디바이스 상에 식별된 세그먼트들의 비교의 결과들을 디스플레이함으로써 출력될 수 있다. 대시보드들은 예를 들어 시간 관점, 사례 관점, 조직 관점 및 제어 흐름 관점을 포함하는 다수의 관점에서 결과들을 시각화한다. 그러한 대시보드들은 사용자에게 근본 원인 병목 분석을 위한 세그먼트들의 분석을 용이하게 하기 위한 분석 도구들을 제공한다.
도 5는 하나 이상의 실시예들에 따른, 세그먼트 개요에 대한 대시보드(500)를 도시한다. 대시보드(500)는 영역 1(502)에서 사용자에게 각각의 세그먼트 및 그의 메트릭들의 개요를 제시한다. 영역 1(502) 내의 개요는 표 포맷으로 도시되어 있고, 여기서 각각의 행은 세그먼트에 대응하고, 각각의 열은 속성에 대응한다. 다음과 같은 속성들이 도시되어 있다: 세그먼트의 명칭, 해당 세그먼트 내의 사례들의 수, 해당 세그먼트 내의 클래스들의 수, 효과 크기 순위, 잠재적 손실 시간 순위, 총 가중 영향 순위, 및 누적 순위. 영역 1(502) 내의 세그먼트들은 그들의 누적 순위에 기초하여 가장 높은 것부터 가장 낮은 것으로 순서화된다. 그러나, 영역 1(502)과 상호작용하는 사용자는 (예를 들어, 열을 클릭함으로써) 열들 중 임의의 열의 속성에 기초하여 표를 정렬할 수 있다. 영역 2(504)는 (예를 들어, 호버링될 때) 각각의 메트릭이 계산되는 방법에 대한 설명을 제공하는 아이콘을 도시한다.
도 6은 하나 이상의 실시예들에 따른, 시간 관점에 대한 대시보드(600)를 도시한다. 시간 관점은 이벤트들의 타이밍 및 빈도와 관련된다. 타이밍 정보는 병목을 발견하고, 서비스 레벨을 측정하는 것 등을 위해 사용될 수 있다. 대시보드(600)는 선택된 세그먼트의 상세 뷰를 제시한다. 영역 1(602)은 사용자가 세그먼트를 선택할 수 있는 선택기를 도시한다. 영역 2(604)는 적층된 바(stacked bar)를 도시하고, 여기서 각각의 섹션(610, 612, 및 614)은 각각 효과 크기 메트릭, 손실된 시간 메트릭, 및 가중 영향 메트릭의 값을 나타낸다. 영역 2(604)는 선택된 세그먼트가 다른 세그먼트들에 비해 어떻게 순위화되었는지를 신속하게 체크하고 선택된 세그먼트에 관한 일반적인 통찰력을 얻는 능력을 사용자에게 제공한다. 영역 3(606)은 클래스마다의, 선택된 세그먼트의 각각의 사례에 대한 총 처리량 시간의 분포를 도시한다. 영역 3(606)은 사용자가 클래스들을 시각적으로 비교하여 각각의 클래스의 전체 성능의 이해를 생성하는 것을 허용한다. 영역 4(608)는 각각의 클래스에 대한 중간 처리량 시간 및 처리량 시간이 어떻게 세분되는지를 도시한다. 특히, 영역 4(608)는 경과된 시간(사례의 시작부터 세그먼트에 도달할 때까지의 시간), 세그먼트 시간(사례가 세그먼트에서 소비한 시간), 및 나머지 시간(사례가 세그먼트에서 나가는 것과 사례의 종료 사이에 소비한 시간)을 도시한다. 영역 4(608)는 세그먼트 성능이 전체 성능과 어떻게 관련되는지를 보여주므로 가중 영향 메트릭을 시각화하여, 사용자에게 세그먼트가 프로세스 전체에 대해 미치는 영향에 대한 통찰력을 제공한다.
도 7은 하나 이상의 실시예들에 따른, 사례 관점에 대한 대시보드(700)를 도시한다. 대시보드(700)는 사례 속성들의 분석을 제시하여, 사용자가 예를 들어 가장 빠른 클래스에 비해 가장 느린 클래스의 사례 속성들 사이의 불일치들을 식별할 수 있게 하며, 이는 불일치들이 있는 이유를 드러낼 수 있다. 영역 1(702)은 분석될 세그먼트 및 분석될 클래스들의 세트를 사용자에 의해 선택하기 위한 선택기들을 도시한다. 영역 2(704)는 분석이 수행될 사례 속성을 선택하기 위한 사례 속성 선택기 및 이전의 연구에 기초하여 예상된 것과 상당히 상이한 속성들만을 보여주기 위한 "중요한 것만 보여주기" 옵션을 도시한다. 영역 3(706)은, 라인(710)이 선택된 사례 속성의 예상 빈도를 나타내고, 바들이 선택된 사례 속성의 관찰된 빈도를 나타내는 차트를 도시한다. 영역 4(708)는 선택된 사례 속성이 모든 클래스들에 걸쳐 어떻게 분포되는지를 나타내는 표를 도시한다. 영역 4(708)는 분포를 백분율 또는 수(카운트)로서 디스플레이하기 위한 백분율/카운트 선택기를 포함한다.
도 8은 하나 이상의 실시예들에 따른, 조직 관점에 대한 대시보드(800)를 도시한다. 조직 관점은 자원들, 즉 어느 액터들(예컨대, 사람들, 시스템들, 역할들, 부서들)이 수반되는지 및 이들이 어떻게 관련되는지와 관련된다. 영역 1(802)은 분석할 세그먼트를 선택하기 위한 선택기를 도시한다. 영역 2(804)는 분석될 이벤트 속성을 선택하기 위한 이벤트 속성 선택기, 및 분포들을 백분율 또는 수(카운트)로서 디스플레이하기 위한 백분율/카운트 선택기를 도시한다. 영역 3(806)은 세그먼트 활동에 기초하여, 클래스마다의, 선택된 이벤트 속성의 분포들을 나타내는 표를 도시한다. "백분율"이 선택되는 경우, 모든 행은 합이 100%로 되어, 사용자가 세그먼트의 이벤트 속성 빈도들을 검사하고 상이한 클래스들 사이에서 이벤트 속성 빈도들을 비교하는 것을 허용한다. 영역 4(808)는 전체 프로세스에 대하여, 클래스마다의, 선택된 이벤트 속성의 분포들을 나타내는 표를 도시한다.
도 9는 하나 이상의 실시예들에 따른, 제어 흐름 관점에 대한 대시보드(900)를 도시한다. 대시보드(900)는 사용자가 다른 클래스들에 대한 하나의 클래스의 흐름 간의 차이들을 발견할 수 있게 한다. 제어 흐름 관점은 활동들의 순서화와 관련된다. 영역 1(902)은 분석할 세그먼트를 선택하기 위한 선택기를 도시한다. 영역 2(904)는 프로세스 흐름 분석 도구들을 도시한다. 특히, 영역 2(904)는 클래스들을 선택하기 위한 선택기를 도시하는 영역 2a(906), 모든 에지가 그것을 횡단하는 사례들의 백분율을 보여주는 선택된 클래스의 프로세스 흐름을 보여주는 영역 2b(908), 및 프로세스 이용률, 사례들의 수를 설명하는 범례를 보여주는 영역 2c(910)를 포함하고, 드문 활동들 및 에지들을 숨기거나 보여주기 위한 임계값을 설정하기 위한 사용자 조절가능 슬라이더들을 포함한다. 영역 3(912)은 다른 프로세스 흐름 분석 도구를 도시한다. 영역 3(912)은 영역 3a(914), 3b(916) 및 3c(918)를 포함하고, 이들은 영역 2a(906), 2b(908) 및 2c(910)와 유사하지만 다른 프로세스에 대한 것이다. 영역 4(920)는 대시보드(900)에 도시된 바와 같이 사이드-바이-사이드 뷰로, 또는 결합된 뷰로 프로세스들을 보여주는 것 중에서 선택하기 위한 버튼들을 도시한다. 도 10 및 도 11은 하나 이상의 실시예들에 따른, 프로세스들의 결합된 뷰를 보여주는 제어 흐름 관점에 대한 대시보드(1000) 및 대시보드(1100)를 각각 도시한다. 프로세스들은 대시보드(1000) 및 대시보드(1100)에서 컬러로 도시되고, 따라서 프로세스 A, 프로세스 B, 및 양쪽 프로세스들은 상이한 컬러들로 표현된다. 대시보드(1000)에서의 각각의 에지는 컬러에 의해 각각의 프로세스에 대한 에지 횡단률을 나타내는 백분율을 포함한다. 대시보드(1100)에서의 각각의 에지는 컬러에 의해 각각의 프로세스에 대한 평균 처리량 시간을 포함한다. 다른 통계들도 에지들 상에 표현될 수 있다.
도 2의 방법(200)을 다시 참조하면, 일 실시예에서, 단계 202에서 수신된 이벤트 로그는 도 3의 이벤트 로그(300)에 도시된 바와 같이, 실행된 활동, 활동의 실행의 단일 타임 스탬프, 및 사례 ID만을 식별하는 표준 포맷이다. 그러나, 다른 실시예들에서, 단계 202에서 수신된 이벤트 로그는 비표준 포맷이고 표준 포맷으로 변환된다.
비표준 포맷의 이벤트 로그의 일례는 각각의 이벤트에 대응하는 행들 및 이벤트들 각각에 대한 실행 시작 시간에 대한 타임 스탬프 및 실행 완료 시간에 대한 타임 스탬프를 식별하는 열들을 포함하는 이벤트 로그이다. 이러한 비표준 포맷의 이벤트 로그는 각각의 이벤트를 2개의 개별 이벤트들(즉, 2개의 개별 행들) - 실행 시작 시간에 대응하는 제1 이벤트 및 실행 완료 시간에 대응하는 제2 이벤트 -로 분할하는 것에 의해 표준 포맷으로 변환된다. 이러한 예에서, 실행 시작 시간과 실행 완료 시간에 기초하여 분석되는 세그먼트들의 타입들 사이를 구별하는 것이 가능하다. 예를 들어, 특정 활동에 대한 실행 시작 시간에 대응하는 이벤트로부터 동일한 활동에 대한 실행 완료 시간에 대응하는 이벤트까지의 세그먼트는 처리 시간을 나타낼 수 있는 반면, 활동에 대한 실행 완료 시간에 대응하는 이벤트로부터 다음 활동에 대한 실행 시작 시간에 대응하는 이벤트까지의 세그먼트는 대기 시간을 나타낼 수 있다. 따라서, 검출된 병목은 타입에 의해(즉, 처리 시간으로 인해 또는 대기 시간으로 인해) 구별될 수 있다.
비표준 포맷의 이벤트 로그의 다른 예는 각각의 이벤트에 대응하는 행들 및 각각의 이벤트에 대한 활동 라이프사이클 정보를 식별하는 열들을 포함하는 이벤트 로그이다. 활동 라이프사이클 정보는 이벤트와 연관된 활동의 상태를 나타낸다. 상태는 예를 들어 시작, 완료, 중단 또는 재개일 수 있다. 이러한 비표준 포맷의 이벤트 로그는 라이프사이클 정보를 포함하도록 활동의 라벨(즉, 이름)을 수정하고 활동 라이프사이클 정보를 식별하는 열을 제거함으로써 표준 포맷으로 변환된다. 예를 들어, "송장 수신"의 활동 라벨을 식별하는 열 및 "시작"의 활동 라이프사이클 정보를 식별하는 열을 갖는 비표준 이벤트 로그는 "송장 수신 + 시작"의 활동 라벨을 식별하는 열을 갖고 활동 라이프사이클 정보를 식별하는 열을 제거하도록 변환될 수 있다. 따라서, 활동 라이프사이클 정보에 기초하여 세그먼트들의 타입들을 구별하는 것이 가능하다. 예를 들어, 활동에 대한 실행 시작에 대응하는 이벤트로부터 활동에 대한 실행 중단에 대응하는 이벤트까지의 세그먼트는 처리 시간을 나타낼 수 있고, 활동에 대한 실행 중단에 대응하는 이벤트로부터 활동에 대한 실행 재개에 대응하는 이벤트까지는 대기 시간을 나타낼 수 있고, 활동에 대한 실행 재개에 대응하는 이벤트로부터 활동에 대한 실행 완료에 대응하는 이벤트까지는 처리 시간을 나타낼 수 있다. 따라서, 검출된 병목은 타입에 의해(즉, 처리 시간으로 인해 또는 대기 시간으로 인해) 구별될 수 있다.
도 12는 본 발명의 일 실시예에 따른, 도 1-2를 포함하여 본 명세서에서 설명된 방법들, 작업흐름들, 및 프로세스들을 실행하도록 구성된 컴퓨팅 시스템(1200)을 나타내는 블록도이다. 일부 실시예들에서, 컴퓨팅 시스템(1200)은 본 명세서에 도시 및/또는 설명된 컴퓨팅 시스템들 중 하나 이상일 수 있다. 컴퓨팅 시스템(1200)은 정보를 통신하기 위한 버스(1202) 또는 다른 통신 메커니즘, 및 정보를 처리하기 위해 버스(1202)에 결합된 프로세서(들)(1204)를 포함한다. 프로세서(들)(1204)는 중앙 처리 유닛(CPU), 주문형 집적회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 그래픽 처리 유닛(GPU), 이들의 복수의 인스턴스, 및/또는 이들의 임의의 조합을 포함하는 임의의 타입의 범용 또는 특수 목적 프로세서일 수 있다. 프로세서(들)(1204)는 또한 다수의 처리 코어를 가질 수 있고, 코어들 중 적어도 일부는 특정 기능들을 수행하도록 구성될 수 있다. 일부 실시예들에서는, 다중 병렬 처리가 사용될 수 있다.
컴퓨팅 시스템(1200)은 프로세서(들)(1204)에 의해 실행될 명령어들 및 정보를 저장하는 메모리(1206)를 추가로 포함한다. 메모리(1206)는 RAM(Random Access Memory), ROM(Read Only Memory), 플래시 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 저장소, 또는 임의의 다른 타입의 비일시적 컴퓨터 판독가능 매체들 또는 이들의 조합들의 임의의 조합으로 이루어질 수 있다. 비일시적 컴퓨터 판독가능 매체들은 프로세서(들)(1204)에 의해 액세스될 수 있는 임의의 이용가능한 매체들일 수 있고, 휘발성 매체들, 비휘발성 매체들, 또는 둘 다를 포함할 수 있다. 매체들은 또한 이동식, 비이동식, 또는 둘 다일 수 있다.
추가적으로, 컴퓨팅 시스템(1200)은 임의의 현존하는 또는 미래에 구현될 통신 표준 및/또는 프로토콜에 따라 무선 및/또는 유선 접속을 통해 통신 네트워크에 대한 액세스를 제공하기 위한 트랜시버와 같은 통신 디바이스(1208)를 포함한다.
프로세서(들)(1204)는 사용자에게 정보를 디스플레이하기에 적합한 디스플레이(1210)에 버스(1202)를 통해 더 결합된다. 디스플레이(1210)는 또한 터치 디스플레이 및/또는 임의의 적합한 햅틱 I/O 디바이스로서 구성될 수 있다.
키보드(1212) 및 커서 제어 디바이스(1214), 예를 들어 컴퓨터 마우스, 터치패드 등이 사용자로 하여금 컴퓨팅 시스템과 인터페이스할 수 있게 하기 위해 버스(1202)에 추가로 결합된다. 그러나, 특정 실시예들에서, 물리적 키보드 및 마우스가 존재하지 않을 수 있고, 사용자는 디스플레이(1210) 및/또는 터치패드(도시되지 않음)를 통해서만 디바이스와 상호작용할 수 있다. 설계 선택에 따라 임의의 타입 및 조합의 입력 디바이스들이 사용될 수 있다. 특정 실시예들에서, 물리적 입력 디바이스 및/또는 디스플레이가 존재하지 않는다. 예를 들어, 사용자는 컴퓨팅 시스템(1200)과 통신하는 다른 컴퓨팅 시스템을 통해 그와 원격으로 상호작용할 수 있거나, 컴퓨팅 시스템(1200)은 자율적으로 동작할 수 있다.
메모리(1206)는 프로세서(들)(1204)에 의해 실행될 때 기능을 제공하는 소프트웨어 모듈들을 저장한다. 모듈들은 컴퓨팅 시스템(1200)을 위한 운영 체제(1216) 및 본 명세서에 설명되는 프로세스들의 전부 또는 일부 또는 그 파생물들을 수행하도록 구성되는 하나 이상의 추가적인 기능 모듈들(1218)을 포함한다.
이 분야의 기술자는 "시스템"이 본 발명의 범위로부터 벗어나지 않고 서버, 내장 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, PDA(personal digital assistant), 셀 전화, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 임의의 다른 적절한 컴퓨팅 디바이스, 또는 디바이스들의 조합으로서 구현될 수 있다는 것을 알 것이다. "시스템"에 의해 수행되는 것으로서 전술된 기능들을 제시하는 것은 어떠한 방식으로도 본 발명의 범위를 제한하고자 하는 것이 아니라, 본 발명의 많은 실시예들의 일례를 제공하기 위한 것이다. 실제로, 본 명세서에 개시된 방법들, 시스템들, 및 장치들은 클라우드 컴퓨팅 시스템을 포함하는 컴퓨팅 기술과 일치하는 국지화된 그리고 분산된 형태들로 구현될 수 있다.
본 명세서에 설명된 시스템 특징들 중 일부는 그들의 구현 독립성을 더 구체적으로 강조하기 위해 모듈들로서 제시되었다는 점에 유의해야 한다. 예를 들어, 모듈은 맞춤형 VLSI(very large scale integration) 회로들 또는 게이트 어레이들, 기성품 반도체들, 예를 들어 로직 칩들, 트랜지스터들, 또는 다른 개별 컴포넌트들을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 필드 프로그래머블 게이트 어레이들, 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스들, 그래픽 처리 유닛들 등과 같은 프로그래머블 하드웨어 디바이스들로서 구현될 수 있다. 모듈은 또한 다양한 타입들의 프로세서들에 의한 실행을 위해 소프트웨어로 적어도 부분적으로 구현될 수 있다. 예를 들어, 실행가능 코드의 식별된 유닛은, 예를 들어, 객체, 절차, 또는 함수로서 조직될 수 있는 컴퓨터 명령어들의 하나 이상의 물리적 또는 논리적 블록들을 포함할 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행파일들은 물리적으로 함께 위치될 필요가 없지만, 논리적으로 함께 결합될 때, 모듈을 포함하고 모듈에 대한 언급된 목적을 달성하는 상이한 위치들에 저장된 이질적인 명령어들을 포함할 수 있다. 또한, 모듈들은, 예를 들어, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 본 발명의 범위로부터 벗어나지 않고 데이터를 저장하는 데 사용되는 임의의 다른 그러한 비일시적 컴퓨터 판독가능 매체일 수 있는 컴퓨터 판독가능 매체 상에 저장될 수 있다. 실제로, 실행가능 코드의 모듈은 단일 명령어, 또는 많은 명령어들일 수 있고, 심지어 몇몇 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 사이에, 그리고 몇몇 메모리 디바이스들에 걸쳐 분산될 수 있다. 유사하게, 동작 데이터는 모듈들 내에서 식별되고 본 명세서에서 예시될 수 있고, 임의의 적합한 형태로 구현되고 임의의 적합한 타입의 데이터 구조 내에 조직될 수 있다. 동작 데이터는 단일 데이터 세트로서 수집될 수 있거나, 상이한 저장 디바이스들을 포함하는 상이한 위치들에 걸쳐 분산될 수 있고, 적어도 부분적으로, 단지 시스템 또는 네트워크 상의 전자 신호들로서 존재할 수 있다.
전술한 것은 단지 본 개시의 원리들을 예시한다. 따라서, 이 분야의 기술자들은 본 명세서에서 명시적으로 설명되거나 도시되지는 않았지만, 본 개시의 원리들을 구현하고 본 개시의 사상 및 범위 내에 포함되는 다양한 배열들을 고안할 수 있을 것이라는 점이 이해될 것이다. 또한, 본 명세서에 기재된 모든 예들 및 조건부 언어는 주로 독자가 본 개시의 원리들 및 이 분야를 발전시키기 위해 발명자에 의해 기여된 개념들을 이해하는 것을 돕기 위한 교육적 목적들만을 위한 것으로 의도되고, 그러한 구체적으로 기재된 예들 및 조건들에 제한되지 않는 것으로 해석되어야 한다. 더욱이, 본 명세서에서 본 개시의 원리들, 양태들, 및 실시예들뿐만 아니라, 그것의 특정 예들을 기재하는 모든 진술들은 그것의 구조적 및 기능적 등가물들 둘 다를 포함하는 것으로 의도된다. 또한, 그러한 등가물들 현재 알려진 등가물들은 물론, 미래에 개발된 등가물들을 모두 포함하는 것으로 의도된다.

Claims (25)

  1. 병목을 식별하기 위해 프로세스의 복수의 실행 인스턴스에 대한 이벤트 로그를 분석하기 위한 컴퓨터 구현 방법으로서,
    상기 이벤트 로그로부터 상기 복수의 실행 인스턴스 중 하나 이상 동안 실행된 세그먼트를 식별하는 단계 - 상기 세그먼트 각각은 상기 프로세스의 활동들의 쌍을 나타냄 -;
    상기 식별된 세그먼트 중 각각의 특정 세그먼트에 대해:
    상기 이벤트 로그에 기초하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각에 대한 성능의 척도(measure of performance)를 계산하는 단계,
    상기 계산된 성능의 척도에 기초하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각을 분류하는 단계, 및
    상기 특정 세그먼트의 상기 분류된 하나 이상의 실행 인스턴스에 기초하여 상기 특정 세그먼트에 대한 하나 이상의 메트릭를 계산하는 단계; 및
    상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 서로 비교하여 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 활동들의 쌍은 소스 활동 및 목적지 활동을 포함하고, 상기 목적지 활동의 실행은 상기 이벤트 로그에서 상기 소스 활동의 실행에 바로 후속하는, 컴퓨터 구현 방법.
  3. 제1항에 있어서, 상기 성능의 척도는 상기 활동들의 쌍 사이의 시간 간격인, 컴퓨터 구현 방법.
  4. 제1항에 있어서, 상기 계산된 성능의 척도에 기초하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각을 분류하는 단계는,
    Jenks Natural Breaks Optimization 알고리즘을 이용하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각을 복수의 클래스 중 하나로 분류하는 단계를 포함하는, 컴퓨터 구현 방법.
  5. 제1항에 있어서, 상기 특정 세그먼트의 상기 분류된 하나 이상의 실행 인스턴스에 기초하여 상기 특정 세그먼트에 대한 하나 이상의 메트릭을 계산하는 단계는,
    1) 상기 특정 세그먼트의 클래스 간의 평균 차이를 나타내는 상기 특정 세그먼트에 대한 효과 크기 메트릭, 2) 상기 특정 세그먼트의 최고 성능 클래스와 다른 클래스 간의 시간 차이를 나타내는 상기 특정 세그먼트에 대한 손실 시간 메트릭, 및 3) 전체 성능에 대한 상기 특정 세그먼트의 기여를 나타내는 가중 영향 메트릭을 계산하는 단계를 포함하는, 컴퓨터 구현 방법.
  6. 제5항에 있어서, 상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 서로 비교하여 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 단계는,
    상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 순위화(ranking)하는 단계를 포함하는, 컴퓨터 구현 방법.
  7. 제6항에 있어서, 상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 순위화하는 단계는,
    상기 효과 크기 메트릭, 상기 손실 시간 메트릭, 및 상기 가중 영향 메트릭 각각에 대한 상기 식별된 세그먼트의 개별 순위를 결정하는 단계; 및
    상기 개별 순위에 기초하여 상기 식별된 세그먼트의 종합 순위(aggregate ranking)를 결정하는 단계를 포함하는, 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    상기 종합 순위에 기초하여 상기 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 비교의 결과를 디스플레이하여 상기 병목을 식별하게 하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  10. 제1항에 있어서, 상기 프로세스는 로봇 프로세스 자동화 프로세스인, 컴퓨터 구현 방법.
  11. 장치로서,
    프로세스의 복수의 실행 인스턴스에 대한 이벤트 로그를 분석하여 병목을 식별하기 위한 컴퓨터 명령어들을 저장하는 메모리; 및
    상기 컴퓨터 명령어들을 실행하도록 구성된 적어도 하나의 프로세서를 포함하고,
    상기 컴퓨터 명령어들은 상기 적어도 하나의 프로세서로 하여금:
    상기 이벤트 로그로부터 상기 복수의 실행 인스턴스 중 하나 이상 동안 실행된 세그먼트를 식별하는 동작 - 상기 세그먼트 각각은 상기 프로세스의 활동들의 쌍을 나타냄 -;
    상기 식별된 세그먼트 중 각각의 특정 세그먼트에 대해:
    상기 이벤트 로그에 기초하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각에 대한 성능의 척도를 계산하는 동작,
    상기 계산된 성능의 척도에 기초하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각을 분류하는 동작, 및
    상기 특정 세그먼트의 상기 분류된 하나 이상의 실행 인스턴스에 기초하여 상기 특정 세그먼트에 대한 하나 이상의 메트릭을 계산하는 동작; 및
    상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 서로 비교하여 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 동작을 포함하는 동작들을 수행하게 하도록 구성되는, 장치.
  12. 제11항에 있어서, 상기 활동들의 쌍은 소스 활동 및 목적지 활동을 포함하고, 상기 목적지 활동의 실행은 상기 이벤트 로그에서 상기 소스 활동의 실행에 바로 후속하는, 장치.
  13. 제11항에 있어서, 상기 성능의 척도는 상기 활동들의 쌍 사이의 시간 간격인, 장치.
  14. 제11항에 있어서, 상기 계산된 성능의 척도에 기초하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각을 분류하는 동작은,
    Jenks Natural Breaks Optimization 알고리즘을 이용하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각을 복수의 클래스 중 하나로 분류하는 동작을 포함하는, 장치.
  15. 프로세스의 복수의 실행 인스턴스에 대한 이벤트 로그를 분석하여 병목을 식별하기 위한 비일시적 컴퓨터 판독 가능 매체 상에 구현된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금:
    상기 이벤트 로그로부터 상기 복수의 실행 인스턴스 중 하나 이상 동안 실행된 세그먼트를 식별하는 동작 - 상기 세그먼트 각각은 상기 프로세스의 활동들의 쌍을 나타냄 -;
    상기 식별된 세그먼트 중 각각의 특정 세그먼트에 대해:
    상기 이벤트 로그에 기초하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각에 대한 성능의 척도를 계산하는 동작,
    상기 계산된 성능의 척도에 기초하여 상기 특정 세그먼트의 상기 하나 이상의 실행 인스턴스 각각을 분류하는 동작, 및
    상기 특정 세그먼트의 상기 분류된 하나 이상의 실행 인스턴스에 기초하여 상기 특정 세그먼트에 대한 하나 이상의 메트릭을 계산하는 동작; 및
    상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 서로 비교하여 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 동작을 포함하는 동작들을 수행하게 하도록 구성되는, 컴퓨터 프로그램.
  16. 제15항에 있어서, 상기 특정 세그먼트의 상기 분류된 하나 이상의 실행 인스턴스에 기초하여 상기 특정 세그먼트에 대한 하나 이상의 메트릭을 계산하는 동작은,
    1) 상기 특정 세그먼트의 클래스 간의 평균 차이를 나타내는 상기 특정 세그먼트에 대한 효과 크기 메트릭, 2) 상기 특정 세그먼트의 최고 성능 클래스와 다른 클래스 간의 시간 차이를 나타내는 상기 특정 세그먼트에 대한 손실 시간 메트릭, 및 3) 전체 성능에 대한 상기 특정 세그먼트의 기여를 나타내는 가중 영향 메트릭을 계산하는 동작을 포함하는, 컴퓨터 프로그램.
  17. 제16항에 있어서, 상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 서로 비교하여 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 동작은,
    상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 순위화하는 동작을 포함하는, 컴퓨터 프로그램.
  18. 제17항에 있어서, 상기 하나 이상의 메트릭에 기초하여 상기 식별된 세그먼트를 순위화하는 동작은,
    상기 효과 크기 메트릭, 상기 손실 시간 메트릭, 및 상기 가중 영향 메트릭 각각에 대한 상기 식별된 세그먼트의 개별 순위를 결정하는 동작; 및
    상기 개별 순위에 기초하여 상기 식별된 세그먼트의 종합 순위를 결정하는 동작을 포함하는, 컴퓨터 프로그램.
  19. 제18항에 있어서, 상기 동작들은,
    상기 종합 순위에 기초하여 상기 병목을 가질 가능성이 가장 높은 상기 세그먼트 중의 하나를 식별하는 동작을 더 포함하는, 컴퓨터 프로그램.
  20. 제15항에 있어서, 상기 프로세스는 로봇 프로세스 자동화 프로세스인, 컴퓨터 프로그램.
  21. 방법으로서,
    프로세스의 다수의 실행 인스턴스 동안 이벤트 로그를 유지하는 단계 - 상기 이벤트 로그는 상기 다수의 실행 인스턴스 동안 실행된 세그먼트를 식별하고, 상기 세그먼트 각각은 상기 프로세스의 활동들의 쌍을 나타냄 -;
    상기 식별된 세그먼트 각각에 대한 메트릭을 계산하는 단계; 및
    상기 메트릭에 기초하여 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 단계를 포함하는, 방법.
  22. 제21항에 있어서, 상기 식별된 세그먼트 각각에 대한 메트릭을 계산하는 단계는,
    상기 식별된 세그먼트 중 각각의 특정 세그먼트에 대해:
    상기 이벤트 로그에 기초하여 상기 특정 세그먼트의 상기 다수의 실행 인스턴스 각각에 대한 성능의 척도를 계산하는 단계,
    상기 계산된 성능의 척도에 기초하여 상기 특정 세그먼트의 상기 다수의 실행 인스턴스 각각을 분류하는 단계, 및
    상기 특정 세그먼트의 상기 분류된 다수의 실행 인스턴스에 기초하여 상기 특정 세그먼트에 대한 상기 메트릭을 계산하는 단계를 포함하는, 방법.
  23. 제22항에 있어서, 상기 성능의 척도는 상기 활동들의 쌍 간의 시간 간격인, 방법.
  24. 제21항에 있어서, 상기 메트릭에 기초하여 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 단계는,
    상기 메트릭에 기초하여 상기 식별된 세그먼트를 서로 비교하여, 상기 병목을 가질 가능성이 가장 높은 상기 식별된 세그먼트 중의 하나를 식별하는 단계를 포함하는, 방법.
  25. 제21항에 있어서, 상기 활동들의 쌍은 소스 활동 및 목적지 활동을 포함하고, 상기 목적지 활동의 실행은 상기 이벤트 로그에서 상기 소스 활동의 실행에 바로 후속하는, 방법.
KR1020217038908A 2020-03-11 2020-09-16 프로세스들에 대한 병목 검출 KR20220152916A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/816,184 US11314561B2 (en) 2020-03-11 2020-03-11 Bottleneck detection for processes
US16/816,184 2020-03-11
PCT/US2020/050932 WO2021183180A1 (en) 2020-03-11 2020-09-16 Bottleneck detection for processes

Publications (1)

Publication Number Publication Date
KR20220152916A true KR20220152916A (ko) 2022-11-17

Family

ID=77664870

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217038908A KR20220152916A (ko) 2020-03-11 2020-09-16 프로세스들에 대한 병목 검출

Country Status (6)

Country Link
US (2) US11314561B2 (ko)
EP (1) EP4118598A1 (ko)
JP (1) JP2023517404A (ko)
KR (1) KR20220152916A (ko)
CN (1) CN113906404A (ko)
WO (1) WO2021183180A1 (ko)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001073666A1 (en) 2000-03-28 2001-10-04 Seebeyond Technology Corporation Systems and methods for analyzing business processes
US6856847B2 (en) 2002-06-19 2005-02-15 Taiwan Semiconductor Manufacturing Co., Ltd Method of identifying bottlenecks and improving throughput in wafer processing equipment
JP2005148856A (ja) 2003-11-11 2005-06-09 Hitachi Ltd Itシステムの投資効果測定方法およびプログラム並びにシステム
US8225291B2 (en) 2008-01-04 2012-07-17 International Business Machines Corporation Automated detection of application performance bottlenecks
US9052967B2 (en) * 2010-07-30 2015-06-09 Vmware, Inc. Detecting resource deadlocks in multi-threaded programs by controlling scheduling in replay
US20120259792A1 (en) 2011-04-06 2012-10-11 International Business Machines Corporation Automatic detection of different types of changes in a business process
US9665474B2 (en) 2013-03-15 2017-05-30 Microsoft Technology Licensing, Llc Relationships derived from trace data
GB2515118A (en) 2013-06-14 2014-12-17 Univ Warwick Method and System for Healthcare Pathway Modelling
EP3038018A1 (en) 2014-12-27 2016-06-29 Dassault Systèmes Clustering database queries for runtime prediction
CN106209893B (zh) 2016-07-27 2019-03-19 中国人民解放军信息工程大学 基于业务过程模型挖掘的内部威胁检测系统及其检测方法
US11074528B2 (en) * 2017-08-31 2021-07-27 Accenture Global Solutions Limited Robotic operations control system for a blended workforce
CA3082110A1 (en) 2017-11-13 2019-05-16 Shruti AHUJA-COGNY Knowledge process modeling and automation

Also Published As

Publication number Publication date
EP4118598A1 (en) 2023-01-18
US20210286658A1 (en) 2021-09-16
US11314561B2 (en) 2022-04-26
US11836536B2 (en) 2023-12-05
WO2021183180A1 (en) 2021-09-16
CN113906404A (zh) 2022-01-07
US20220206878A1 (en) 2022-06-30
JP2023517404A (ja) 2023-04-26

Similar Documents

Publication Publication Date Title
US11379475B2 (en) Analyzing tags associated with high-latency and error spans for instrumented software
US7290048B1 (en) Method of semi-automatic data collection, data analysis, and model generation for the performance analysis of enterprise applications
US10218808B2 (en) Scripting distributed, parallel programs
US8200659B2 (en) Method of incorporating DBMS wizards with analytical models for DBMS servers performance optimization
CN107766568B (zh) 使用列式数据库中的直方图进行有效查询处理
US7389211B2 (en) System and method of predictive modeling for managing decisions for business enterprises
US20160210332A1 (en) Expediting pattern matching queries against time series data
US9195700B1 (en) Systems and methods for storing time-series data
US9311617B2 (en) Processing event instance data in a client-server architecture
US7941742B1 (en) Visualizing growing time series data in a single view
US8725461B2 (en) Inferring effects of configuration on performance
KR20220152916A (ko) 프로세스들에 대한 병목 검출
US20210312365A1 (en) Analysis of resources utilized during execution of a process
US9928152B2 (en) Computer implemented system and method to non-intrusive sensing and instrumentation of work process
JP2023507688A (ja) プロセスのエッジテーブル表現
US7571394B2 (en) Retrieving data based on a region in a graphical representation
US20170199911A1 (en) Method and Query Processing Server for Optimizing Query Execution
US11226947B1 (en) Systems and methods for storing time-series data
US20210318944A1 (en) Influence analysis of processes for reducing undesirable behavior
US11675814B2 (en) Ad hoc data exploration tool
US20200160272A1 (en) Human resource capital relocation system
CN117787774A (zh) 一种效能度量方法、系统、设备及存储介质