KR20180073861A - 대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템 - Google Patents

대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템 Download PDF

Info

Publication number
KR20180073861A
KR20180073861A KR1020160177345A KR20160177345A KR20180073861A KR 20180073861 A KR20180073861 A KR 20180073861A KR 1020160177345 A KR1020160177345 A KR 1020160177345A KR 20160177345 A KR20160177345 A KR 20160177345A KR 20180073861 A KR20180073861 A KR 20180073861A
Authority
KR
South Korea
Prior art keywords
log
event
log file
storage system
divided
Prior art date
Application number
KR1020160177345A
Other languages
English (en)
Other versions
KR101914347B1 (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 부산대학교 산학협력단
Priority to KR1020160177345A priority Critical patent/KR101914347B1/ko
Priority to PCT/KR2017/013633 priority patent/WO2018117453A1/ko
Priority to US15/947,734 priority patent/US10146659B2/en
Publication of KR20180073861A publication Critical patent/KR20180073861A/ko
Application granted granted Critical
Publication of KR101914347B1 publication Critical patent/KR101914347B1/ko

Links

Images

Classifications

    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • G06F17/30194
    • 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/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • G06F11/3072Monitoring arrangements determined by the means or processing involved in reporting the monitored data where the reporting involves data filtering, e.g. pattern matching, time or event triggered, adaptive or policy-based reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9038Presentation of query results
    • G06F17/30126
    • G06F17/30144
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템이 개시된다. 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 방법은, 공정과, 상기 공정에 연이어 수행되는 차기 공정 전에 발생하는 이벤트 로그를 카운트하여, 로그파일로서 스토리지 시스템에 유지하는 단계와, 로그 재생 페이지에 대한 접속 명령이 발생 함에 따라, 상기 접속 명령에 포함되는 공정에 대응되는 로그파일을, 상기 스토리지 시스템에서 확인하는 단계, 및 상기 확인된 로그파일을 정해진 크기로 분할하여, 복수의 분할 로그파일을 생성하여, 상기 스토리지 시스템으로부터 획득하는 단계를 포함한다.

Description

대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템{METHOD FOR REPLAYING LARGE EVENT LOG, AND LARGE EVENT LOG REPLAYING SYSTEM}
본 발명은 프로세스 마이닝(Process Mining)에 사용되는 이벤트 로그(Event Log)를 재생하는 로그 재생(Log Replay) 과정에서, 이벤트 로그의 처리 시간을 줄이는 기술에 관한 것이다.
로그 재생이란, 이번의 로그기록을 프로세스 모델을 통해 시각화하여 재생하는 기술로서, 프로세스 수행에 따라 로그파일에 기록되는 이벤트 로그로부터 지식을 추출하는 프로세스 마이닝 분야에서 사용되고 있다.
기존의 로그 재생 기술에 따르면, 프로세스 수행에 따라 대량의 이벤트 로그가 발생되면, 이벤트 로그를 처리하여 토큰 애니메이션을 생성하고 real KPI를 계산하는 과정에서 병목과 편차가 발생하는 문제점이 생길 수 있다.
이에 따라, 로그 재생 과정에서 발생하는 병목과 편차 문제를 해결하고, 연산 처리 속도를 향상시킬 수 있는 기술이 요구되고 있다.
본 발명의 실시예는 맵 리듀스(MapReduce) 알고리즘을 이용하여, 분산 API 웹 서비스를 기반으로 대용량 이벤트 로그를 작은 파티션으로 분할 함으로써, 이벤트 로그를 재생하는 처리 속도를 향상시켜, 병목과 편차 문제를 해결하는 것을 목적으로 한다.
본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 방법은, 공정과, 상기 공정에 연이어 수행되는 차기 공정 전에 발생하는 이벤트 로그를 카운트하여, 로그파일로서 스토리지 시스템에 유지하는 단계와, 로그 재생 페이지에 대한 접속 명령이 발생 함에 따라, 상기 접속 명령에 포함되는 공정에 대응되는 로그파일을, 상기 스토리지 시스템에서 확인하는 단계, 및 상기 확인된 로그파일을 정해진 크기로 분할하여, 복수의 분할 로그파일을 생성하여, 상기 스토리지 시스템으로부터 획득하는 단계를 포함한다.
또한, 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템은, 공정과, 상기 공정에 연이어 수행되는 차기 공정 전에 발생하는 이벤트 로그를 카운트하여, 로그파일로서 스토리지 시스템에 유지하는 기록부와, 로그 재생 페이지에 대한 접속 명령이 발생 함에 따라, 상기 접속 명령에 포함되는 공정에 대응되는 로그파일을, 상기 스토리지 시스템에서 확인하는 확인부, 및 상기 확인된 로그파일을 정해진 크기로 분할하여, 복수의 분할 로그파일을 생성하여, 상기 스토리지 시스템으로부터 획득하는 획득부를 포함한다.
본 발명의 일실시예에 따르면, 이벤트 로그를 재생하는 로그 재생 과정에서, 맵 리듀스(MapReduce) 알고리즘을 이용하여, 분산 API 웹 서비스를 기반으로 대용량 이벤트 로그를 작은 파티션으로 분할 함으로써, 이벤트 로그를 재생하는 처리 속도를 향상시켜, 병목과 편차 문제를 해결할 수 있다.
또한, 본 발명의 일실시예에 따르면, 대용량 이벤트 로그를 분할하여 분산 API 웹 서비스 형태로 애니메이션을 생성해 Real KPI를 계산하고, 분할된 이벤트 로그를 순차적으로 클라이언트 웹 어플리케이션에 재생 함으로써, 대용량 이벤트 로그의 분할 및 분산 처리를 통해 로그 재생 처리 성능을 향상시킬 수 있다.
도 1은 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템의 구성을 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템의 내부 구성을 도시한 블록도이다.
도 3은 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템에서, 이벤트 로그 및 로그파일의 일례를 도시한 도면이다.
도 4는 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템에서, 이벤트 로그로부터 생성되는 프로세스 모델의 일례를 도시한 도면이다.
도 5a 및 5b는 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템에서, 로그 재생 페이지를 제공하는 일련의 과정을 도시한 흐름도이다.
도 6은, 도 5b에 도시한 단계(517)를 세부적으로 나타낸 상세흐름도이다.
도 7은, 도 5b에 도시한 단계(524)를 세부적으로 나타낸 상세흐름도이다.
도 8은 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템에서, 로그 재생 페이지를 시각화 하는 일례를 도시한 도면이다.
도 9는 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 방법의 순서를 도시한 흐름도이다.
이하, 첨부된 도면들을 참조하여 본 발명의 일실시예에 따른 응용프로그램 업데이트 장치 및 방법에 대해 상세히 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템(100)은, 웹 브라우저(110), HDFS(120) 및 SPARK(130)를 포함하여 구성될 수 있다.
웹 브라우저(110)는 관리자 단말에서 실행되는 웹 어플리케이션 중 하나로서, 일례로, 구글 사의 '크롬(Chrome)'을 예로 들 수 있다.
웹 브라우저(110)는 관리자 단말에서 로그 재생 페이지에 대한 접속 명령이 발생 함에 따라, 상기 접속 명령에 포함되는 공정(프로세스)에 대응되는 로그파일을, HDFS(120)에서 확인하고, 확인된 로그파일을 정해진 크기로 분할한 복수의 분할 로그파일을, HDFS(120)으로부터 순차적으로 획득할 수 있다.
웹 브라우저(110)는 REST_API 기반으로 상기 복수의 분할 로그파일 각각에 포함되는 일정 개수의 이벤트 로그를 처리하여, 공정 별 이벤트 발생 정도를 나타내는 로그 재생 페이지를 관리자 단말에 구현할 수 있다.
즉, 웹 브라우저(110)는 REST_API 기반으로 복수의 분할 로그파일 각각을 처리하여, 상기 로그 재생 페이지를 단계적으로 시각화하여 구현할 수 있다.
실시예에 따라, 웹 브라우저(110)는 HDFS(120)에 상기 접속 명령과 관련된 로그파일이 유지되지 않는 경우, SPARK(130)에서의 공정 수행에 따른 이벤트 로그의 발생을 대기할 수 있다.
여기서, SPARK(130)는 공정과, 상기 공정에 연이어 수행되는 차기 공정 전에 발생하는 이벤트 로그를 카운트하여, 로그파일로서 HDFS(120)에 유지할 수 있다.
SPARK(130)는 범용 고성능 분할 처리 플랫폼의 일례로서, 맵리듀스(MapReduce) 함수에 따라, 메모리 기반으로 프로세스를 분할 수행하여 데이터를 분산 처리하는 기능을 할 수 있다.
여기서, 맵리듀스(MapReduce)는 대용량 데이터 처리를 분산 병렬 컴퓨팅에서 처리하기 위한 목적으로 제작되었으며, 2004년 발표한 소프트웨어 프레임워크로서 함수형 프로그래밍에서 일반적으로 사용되는 Map과 Reduce라는 함수로 구성될 수 있다.
이에 따라, 본 발명의 대용량 이벤트 로그 재생 시스템(100)은 이벤트 로그를 재생하는 로그 재생 과정에서, 대용량 이벤트 로그를 작은 파티션으로 분할 함으로써, 이벤트 로그를 재생하는 처리 속도를 향상시킬 수 있다.
여기서, REST_API(Representational state transfer API)는, 인터넷 상의 컴퓨터 시스템들 사이에서 일방향의 정보 처리 상호 운용(interoperability)을 제공하며, 시스템들에 접근 요청을 허용하거나, 웹 리소스의 텍스트 표시를 제어하는 웹 서비스 API의 하나를 지칭할 수 있다.
HDFS(Hadoop File System)(120)는, 대량의 자료를 분산 처리하는 스토리지 시스템의 하나로서, 대용량 파일을 나눠서 저장하여 데이터 처리를 용이하게 할 수 있다.
도 2는 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템의 내부 구성을 도시한 블록도이다.
도 2를 참조하면, 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템(200)은, 기록부(210), 확인부(220), 획득부(230) 및 구현부(240)를 포함하여 구성할 수 있다.
기록부(210)는 공정과, 상기 공정에 연이어 수행되는 차기 공정 전에 발생하는 이벤트 로그를 카운트하여, 로그파일로서 스토리지 시스템에 유지한다.
즉, 기록부(210)는 분할 처리 플랫폼(예, 'SPARK')에 의한 프로세스 수행 과정에서 다양한 작업행위에 대해 발생되는 이벤트 로그를 발생순서에 따라 로그파일로서 기록할 수 있다.
기록부(210)는 로그파일을, 대량의 자료를 분산 처리하는 스토리지 시스템(예, 'HDFS')에 분산하여 저장 함으로써, 로그 재생 시 대용량 이벤트 로그의 처리가 보다 용이해지도록 할 수 있다.
예를 들어, 도 5a 및 5b를 참조하면, 기록부(210)는 로그 재생 알고리즘에 따라 프로세스를 처리하고, 처리한 결과를, HDFS에 유지하는 SPARK에 의해 구현될 수 있다.
여기서, 이벤트 로그는, 프로세스(공정)를 구성하는 단위 작업인 이벤트(예컨대, 작업의 시작, 종료, 취소 등)들의 집합으로서, 하나의 케이스와 관련을 가지며, 누가 언제 어디서 어떤 작업을 수행하였는지에 대한 정보를 나타낼 수 있도록, 다양한 부가적인 정보를 포함하여 로그파일로서 기록될 수 있다.
일례로, 이벤트 로그는 작업을 시작하거나 수행하는 리소스(예, 작업수행자, 시스템, 장비 등), 이벤트의 타임스탬프(timestamp, 이벤트 발생시간) 및 이벤트와 연관된 데이터(예컨대, '주문의 규모'), 이벤트의 액티비티(Activity) 중 적어도 하나의 여러 가지 부가적인 정보를 포함할 수 있다. 여기서, 액티비티는 프로세스를 구성하는 기본 단위로서 작업의 수행 등을 나타내는 정보일 수 있다.
확인부(220)는 로그 재생 페이지에 대한 접속 명령이 발생 함에 따라, 상기 접속 명령에 포함되는 공정에 대응되는 로그파일을, 상기 스토리지 시스템에서 확인한다.
확인부(220)는, 상기 접속 명령을 발생하는 관리자 단말에서 실행되는 웹 브라우저(예컨대, 구글 사의 '크롬(Chrome)')에 의해 구현될 수 있다.
확인부(220)는 상기 스토리지 시스템(예, 'HDFS')에 상기 접속 명령과 관련된 로그파일이 유지되지 않는 경우, 분할 처리 플랫폼(예, 'SPARK')에서의 공정 수행에 따른 이벤트 로그의 발생을 대기할 수 있다.
구체적으로, 획득부(230)는 상기 스토리지 시스템에 상기 접속 명령과 관련된 로그파일이 유지되지 않는 경우, 상기 분할 처리 플랫폼에서, 프로세스가 처리 됨에 따라 이벤트 로그가 생성되어, 상기 이벤트 로그를 기록한 로그파일이, 상기 스토리지 시스템 내에 유지되면, 상기 스토리지 시스템으로부터, 상기 생성된 로그파일을 획득할 수 있다.
예를 들어, 도 5b의 단계(514 내지 518)를 참조하면, HDFS에 유효한 데이터가 존재하지 않는 것으로 확인되면, SPARK는, 로그 재생 알고리즘에 따라 프로세스를 처리한 결과(로그파일)를 HDFS에 저장하고, HDFS는 저장된 HDFS 파일을 앱 서버 & REST API로 반환하여, 웹 브라우저에 JASON으로 응답할 수 있다.
보다 구체적으로, 도 6을 참조하면, 상기 분할 처리 플랫폼(SPARK)은, 이벤트 로그의 시퀀스로 구성된 케이스에 대한 리스트가 입력되면, 상기 각 케이스 내 모든 이벤트 로그를 맵(Map) 함수를 적용하여 이벤트 트랜지션으로 매핑하고, 상기 이벤트 트랜지션에 리듀스(Reduce) 함수를 적용하고, 소트(Sort) 함수를 이용하여 상기 이벤트 트랜지션을 생성시점에 따라 정렬하고, 파티션을 초기화하고, 인서트(Insert) 함수를 이용하여, 상기 파티션 각각에 일정 개수(예를 들어, '5,000개')의 이벤트 트랜지션을 삽입하고, 상기 각 파티션을 상기 스토리지 시스템에 유지하고, 상기 각 파티션에 대한 요약정보를 상기 스토리지 시스템에 유지할 수 있다.
획득부(230)는 상기 확인된 로그파일을 정해진 크기(파티션)로 분할하여, 복수의 분할 로그파일을 생성하여, 상기 스토리지 시스템(예, 'HDFS')으로부터 획득한다.
즉, 획득부(230)는 상기 스토리지 시스템으로 분할 명령을 전송하고, 상기 분할 명령에 따라, 상기 스토리지 시스템에서, 상기 로그파일을 파티션 단위로 분할하여 상기 복수의 분할 로그파일을 생성하도록 할 수 있다.
이때, 획득부(230)는 상기 공정의 종류 또는 상기 로그파일의 용량에 따라, 분할 로그파일이 갖는 크기를 정하고, 정해진 상기 크기에 비례하여, 상기 스토리지 시스템으로부터의, 상기 분할 로그파일 각각의 획득 간격을 조정할 수 있다.
상기 스토리지 시스템은, 상기 분할 명령에 의해 지정되는, 파티션 당 이벤트 로그의 개수 및 파티션의 개수 중 적어도 하나를 고려하여, 상기 로그파일을 분할할 수 있다.
일례로, 획득부(230)는 상기 로그파일 내에 위치하는 순서에 상응하여, 상기 복수의 분할 로그파일 각각을 순차적으로 획득할 수 있다. 예를 들어, 획득부(230)는 HDFS로부터 확인한 로그파일을 파티션 단위로 분할한 복수의 분할 로그파일을, HDFS로부터 순차적으로 획득할 수 있다.
또한, 상기 이벤트 로그는, 발생시점에 대응하여 상기 로그파일에 기록되고, 획득부(230)는 상기 복수의 분할 로그파일 중 제1 분할 로그파일에 포함되는 일정 개수의 이벤트 로그가 처리되는 동안, 상기 로그파일 내, 상기 제1 분할 로그파일 다음에 위치하는 제2 분할 로그파일을, 상기 스토리지 시스템으로부터 획득할 수도 있다.
또한, 획득부(230)는 상기 스토리지 시스템으로 분할 명령을 전송하고, 상기 분할 명령에 포함되는 토큰에 의해 식별되는 특정의 분할 로그파일을 상기 스토리지 시스템으로부터 획득할 수도 있다.
구현부(240)는 분할 로그파일 각각에 포함되는 일정 개수의 이벤트 로그에 대한 렌더링을 통해, 공정 별 이벤트 발생 정도를 나타내는 로그 재생 페이지를 구현한다.
즉, 구현부(240)는 REST_API 기반의 웹 어플리케이션('웹 브라우저')을 통해, 상기 복수의 분할 로그파일을 처리하여, 상기 로그 재생 페이지를 시각화 할 수 있다.
일례로, 구현부(240)는 스토리지 시스템(일례로, 하둡 파일 시스템 'HDFS')으로부터, 순차적으로 획득한 복수의 분할 로그파일 각각에 포함되는 일정 개수의 이벤트 로그에 대한 렌더링을 통해, 로그 재생 페이지를 도 8과 같이 관리자 단말에 구현할 수 있다.
도 8을 참조하면, 구현부(240)는 이벤트 로그에 포함된 액티비티('QW', 'PP', 'RC', 'SP', 'AN', 'PR', 'RW' 및 'WS')를 각각 노드로서 표시하고, 각 노드를 아크로 연결하고, 노드 사이에서 아크를 따라 움직이는 원을 통해 프로세스의 흐름을 표현하고, 원의 크기를 통해 프로세스의 흐름의 양을 나타냄으로써, 관리자 단말에서 로그 재생 페이지를 시각화 할 수 있다.
이와 같이, 본 발명의 일실시예에 따르면, 이벤트 로그를 재생하는 로그 재생 과정에서, 맵 리듀스(MapReduce) 알고리즘을 이용하여, 분산 API 웹 서비스를 기반으로 대용량 이벤트 로그를 작은 파티션으로 분할 함으로써, 이벤트 로그를 재생하는 처리 속도를 향상시켜, 병목과 편차 문제를 해결할 수 있다. 또한, 본 발명의 일실시예에 따르면, 대용량 이벤트 로그를 분할하여 분산 API 웹 서비스 형태로 애니메이션을 생성해 Real KPI를 계산하고, 분할된 이벤트 로그를 순차적으로 클라이언트 웹 어플리케이션에 재생 함으로써, 대용량 이벤트 로그의 분할 및 분산 처리를 통해 로그 재생 처리 성능을 향상시킬 수 있다.
도 3은 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템에서, 이벤트 로그의 구성 및 로그파일의 일례를 도시한 도면이다.
본 발명에서, 이벤트 로그(Event Log)는, 프로세스 마이닝(Process Mining)을 위한 투입으로 사용되는 이벤트들의 집합을 나타내고, 이벤트(Event)는 프로세스(공정)를 구성하는 단위 작업으로서, 작업의 시작, 종료, 취소 등과 같이 로그파일에 기록되는 행위를 나타낼 수 있다.
참고로, 프로세스 마이닝은 기계나 정보 관련 시스템에서 생성되는 이벤트 로그(transaction dataset)를 분석하여 지식을 추출하는 기법에 관한 것이다.
이벤트(이벤트 로그)는 하나의 케이스와 관련을 가지며, 케이스(Case)는 이벤트들의 시퀀스로서, 분석할 프로세스에 의해 처리된 개체들인 프로세스 인스턴스(Process Instance)를 지칭할 수 있다.
이벤트 로그는, 각 이벤트에 대해, 프로세스 마이닝 기법에 활용 가능한 다양한 부가적인 정보를 포함하여 구성될 수 있다.
일례로, 이벤트 로그는, 누가 언제 어디서 어떤 작업을 수행하였는지에 대한 정보를 나타낼 수 있도록, 작업을 시작하거나 수행하는 리소스(예, 작업수행자, 시스템, 장비 등), 이벤트의 타임스탬프(timestamp, 이벤트 발생시간) 및 이벤트와 연관된 데이터(예컨대, '주문의 규모'), 이벤트의 액티비티(Activity) 중 적어도 하나의 여러 가지 부가적인 정보를 포함할 수 있다. 여기서, 액티비티는 프로세스를 구성하는 기본 단위로서 작업의 수행 등을 나타내는 정보일 수 있다.
도 3의 (ⅰ)은 이벤트 로그('W[4]')의 구성의 일례를 나타내고 있다.
도 3의 (ⅰ)을 참조하면, 이벤트 로그('W[4]')는, 이벤트('e')의 집합('E')과, 이벤트 타입('et')의 집합('ET')과, 액티비티('a')의 집합('A')과, 리소스('r')의 집합('R')과, 케이스('c')의 집합('C')과, 각 이벤트에 타임스탬프를 할당하는 함수('t:E→iR0 +')와, 각 이벤트에 이벤트 타입을 할당하는 함수('et:E→ET')와, 각 이벤트를 액티비티에 연관시키는 함수('a:E→EA')와, 각 이벤트를 리소스에 연관시키는 함수('r:E→R∪{⊥}'), 및 각 이벤트를 케이스에 연관시키는 함수('c:E→C')로 구성될 수 있다.
이벤트 로그는, 프로세스 수행 과정에서 다양한 작업행위에 대해 발생되며, 발생순서에 따라 로그파일에 기록될 수 있다.
도 3의 (ⅱ)에 도시한 테이블은 이벤트 로그를 기록한 로그파일의 일례를 나타내고 있다.
도 3의 (ⅱ)를 참조하면, 이벤트 로그는, 각 이벤트를, 이벤트 식별정보(ID)와, 타임스탬프(이벤트 발생시간), 액티비티(이벤트의 작업), 리소스(예, 작업수행자, 시스템, 장비 등) 및 코스트 중 적어도 하나의 부가정보에 연관시켜 로그파일에 기록할 수 있다.
이때, 이벤트 로그(이벤트들)은 하나의 로그파일이 아닌, 서로 다른 데이터베이스에 흩어져 있는 로그파일에 기록될 수도 있다.
도 4는 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템에서, 이벤트 로그로부터 생성되는 프로세스 모델의 일례를 도시한 도면이다.
본 발명의 대용량 이벤트 로그 재생 시스템은, 프로세스 마이닝 기법에 따라 이벤트 로그에 대한 분석을 통해 프로세스 모델(Process Model)을 생성할 수 있다.
일례로, 본 발명의 대용량 이벤트 로그 재생 시스템은, 작업의 순서와 같은 프로세스의 흐름에 중점을 두고, 모든 가능한 경로의 특징을 파악 함으로써, 예를 들어 Petri net 모델이나, EPC, BPMN, UML activity diagram과 같은 프로세스 모델을 도출할 수 있다.
또한, 본 발명의 대용량 이벤트 로그 재생 시스템은, 이벤트 로그에 숨겨진 리소스에 대한 정보에 초점을 맞추어, 어떤 행위자(예, 작업자, 시스템, 역할, 부서)가 업무 수행에 관여하고, 그들이 어떻게 연결되어 있는지 파악하여, 역할이나 기능에 따라 사람들을 분류하여 조직 체계를 만들거나 사람들 사이의 소셜 네트워크를 보여주는 프로세스 모델을 도출할 수 있다.
또한, 본 발명의 대용량 이벤트 로그 재생 시스템은, 케이스의 특징에 초점을 맞추어, 프로세스 모델을 도출할 수 있다. 즉, 본 발명의 대용량 이벤트 로그 재생 시스템은, 프로세스 내에서의 경로 또는 케이스에 참여하는 작업자를 통해 케이스의 특성을 분석하거나, 케이스와 연관된 데이터의 값에 따라 케이스의 특성을 분석할 수도 있다. 예를 들어, 보충 주문을 나타내는 케이스가 있을 경우, 주문된 상품의 수량과 공급자는 유용한 정보가 될 수 있다.
또한, 본 발명의 대용량 이벤트 로그 재생 시스템은, 이벤트 로그에 포함되는 타임스탬프를 통해 이벤트의 시간과 빈도를 분석하여, 프로세스 모델을 도출할 수도 있다. 일례로, 본 발명의 대용량 이벤트 로그 재생 시스템은, 병목점 도출, 서비스의 레벨 측정, 리소스 활용도 모니터링 및 수행 중인 케이스의 잔여 시간 예측 등을 수행할 수 있다.
도 4의 (ⅰ)은 프로세스 모델('G')의 구성의 일례를 나타내고 있다.
도 4의 (ⅰ)을 참조하면, 프로세스 모델('G')은 노드(node)의 집합('N')과, 노드들을 연결하는 아크(arc)의 집합('E⊆N×N') 및 하나의 노드를 액티비티의 집합에 연관시키는 함수(na:N→P(A))로 구성될 수 있다.
도 4의 (ⅱ)는, 도 3의 (ⅱ)에 도시한 로그파일에 근거하여 도출한 프로세스 모델의 그래프를 나타내고 있다.
도 4의 (ⅱ)를 참조하면, 대용량 이벤트 로그 재생 시스템은, 도 3의 (ⅱ)에 도시한 액티비티(예컨대, 'register request', 'examine thoroughly', 'check ticket', 'decide', 'reject request', 'examine casually', 'pay compensation')를 각각 노드로서 생성하고, 상기 각 노드를 아크로 연결하여, 도시한 것과 같은 프로세스 모델의 그래프를 도출할 수 있다.
도 5a 및 5b는 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템에서, 로그 재생 페이지를 제공하는 일련의 과정을 도시한 흐름도이다.
도 5a를 참조하면, 단계(501 내지 502)에서, 웹 브라우저는, 관리자 단말로부터 로그 재생 페이지에 대한 오픈(open) 명령이 수신되면, 로그 재생 페이지를 앱 서버 & REST API로 요청한다.
단계(503 내지 505)에서, 웹 브라우저는, 앱 서버 & REST API로부터 HTML로 응답을 수신하면, 휴리스틱 마이너 API(heuristic miner API)를 호출하여, HDFS 파일(로그파일)을 요청한다.
단계(506)에서 HDFS는, HDFS 파일 요청이 수신되면, HDFS에 유효한 데이터가 존재하는지를 확인한다.
단계(506)에서의 확인 결과, HDFS에 유효한 데이터가 존재하는 경우, 단계(507)에서, HDFS는 HDFS 파일을 앱 서버 & REST API로 반환하고, 단계(508)에서 앱 서버 & REST API는, 웹 브라우저에 JASON으로 응답한다.
단계(506)에서의 확인 결과, HDFS에 유효한 데이터가 존재하지 않는 경우, 단계(509 내지 510)에서, SPARK는, 휴리스틱 마이너 알고리즘에 따라 프로세스를 처리하고, 처리한 결과(로그파일)를 HDFS에 저장한다. 단계(507)에서, HDFS는 저장된 HDFS 파일을 앱 서버 & REST API로 반환하고, 단계(508)에서, 앱 서버 & REST API는, 웹 브라우저에 JASON으로 응답한다.
여기서, JASON(JavaScript Object Notation)은 경량 데이터 교환 포맷으로서, 사람에게 있어서 읽고 쓰기가 쉽고, 기계에 있어서 파싱과 생성이 용이하며, 자바스크립트 프로그래밍 언어의 서브셋에 기반을 두고 있다.
단계(511)에서, 웹 브라우저는, 프로세스 모델을 렌더링하고, 사용자 인터액션 함수(User Interaction function)를 초기화 한다.
도 5b를 참조하면, 단계(512 내지 513)에서, 웹 브라우저는 로그 재생 페이지를 호출하여 HDFS 파일을 요청한다.
단계(514)에서 HDFS는, HDFS 파일 요청이 수신되면, HDFS에 유효한 데이터가 존재하는지를 확인한다.
단계(514)에서의 확인 결과, HDFS에 유효한 데이터가 존재하는 경우, 단계(515)에서, HDFS는 HDFS 파일을 앱 서버 & REST API로 반환하고, 단계(516)에서 앱 서버 & REST API는, 웹 브라우저에 JASON으로 응답한다.
단계(514)에서의 확인 결과, HDFS에 유효한 데이터가 존재하지 않는 경우, 단계(517 내지 518)에서, SPARK는, 로그 재생 알고리즘에 따라 프로세스를 처리하고, 처리한 결과(로그파일)를 HDFS에 저장한다. 단계(515)에서, HDFS는 저장된 HDFS 파일을 앱 서버 & REST API로 반환하고, 단계(516)에서, 앱 서버 & REST API는, 웹 브라우저에 JASON으로 응답한다.
단계(519)에서, 웹 브라우저는, 애니매이션을 초기화 하고, 모든 파티션을 리스팅한다.
구체적으로, 웹 브라우저는, 애니메이션 핸들링을 위해, 모 타임라인(parent timeline, 'tmp')을 초기화 한다.
단계(520 내지 521)에서, 웹 브라우저는, 파티션 API를 호출하여 파티션 Pi의 토큰 데이터를 획득하고, 단계(522)에서, HDFS는 상기 토큰 데이터를 이용해 HDFS 파일을 앱 서버 & REST API로 반환하고, 단계(523)에서, 앱 서버 & REST API는, 웹 브라우저에 JASON으로 응답한다.
단계(524 내지 526)에서, 웹 브라우저는, 파티션('Pi')의 토큰에 대한 애니메이션을 초기화 하고, 애니메이션을 재생한 후, 차기 파티션('Pi+1')을 획득한다.
도 6은, 도 5b에 도시한 단계(517)를 세부적으로 나타낸 상세흐름도이다.
도 6에는, SPARK에서 로그 재생 알고리즘에 따라 프로세스를 처리하고, 처리한 결과를 HDFS에 저장하는 상세한 과정이 도시되어 있다.
도 6을 참조하면, 단계(601)에서, SPARK는 케이스('C')의 리스트를 시스템으로부터 검색한다.
SPARK는 이벤트 로그('E')에서 이벤트 트랜지션('k')의 리스트를 매핑하는 것으로 시작한다. 케이스('C')의 리스트는 시스템으로부터 검색되고, 각 케이스('Ci')는 이벤트('e')의 시퀀스를 포함한다.
단계(602)에서, SPARK는 차기 케이스('Ci +1')가 존재하는지 확인한다.
상기 단계(602)에서의 확인 결과, 차기 케이스('Ci +1')가 존재하는 경우, 단계(603)에서, SPARK는, 케이스 내에 이벤트('e')를 리스팅 한다.
본 단계(602 내지 603)에서, SPARK는 이벤트('e')의 시퀀스를 검사하기 위해 각 케이스('Ci')를 반복한다.
단계(604)에서, SPARK는, 차기 이벤트('ei +1')가 존재하는지 확인한다.
상기 단계(604)에서의 확인 결과, 차기 이벤트('ei +1')가 존재하는 경우, 단계(605)에서, SPARK는, MAP 함수를 적용하여 이벤트 트랜지션(Ki +1) 속성 값을 설정한다. 여기서, 이벤트 트랜지션(Event Transition)은, 연속된 2개의 이벤트 간 변화를 나타낼 수 있다.
본 단계(604 내지 605)에서, SPARK는 이벤트 트랜지션('Kij') 속성을 설정하기 위해 케이스('Ci')에 이벤트('eij')의 시퀀스를 반복한다.
상기 단계(604)에서의 확인 결과, 차기 이벤트('ei +1')가 존재하지 않는 경우, SPARK는 단계(602)로 이동하여, 차기 케이스('Ci +1')가 존재하는지 재확인한다.
상기 단계(602)에서의 확인 결과, 차기 케이스('Ci +1')가 존재하지 않는 경우, 단계(606)에서, SPARK는, 이벤트 트랜지션('K')에 REDUCE 함수를 적용한다.
본 단계(606)에서, SPARK는 맵 함수를 완료한 후, 리듀스 함수를 실행하여, 전체 이벤트 트랜지션 데이터 K를 분산 시스템으로부터 수집한다.
단계(607)에서, SPARK는, 소트(SORT) 함수를 적용하여 이벤트 트랜지션('K')을 시작시간(start time)에 따라 정렬한다. 여기서, 결과값은 이벤트 트랜지션('K')의 시퀀스로서 형성되며, 이벤트 트랜지션('K') 데이터의 리스트는 시작시간에 따라 정렬된다.
단계(608)에서, SPARK는, 파티션('P')의 리스트를 초기화 하고, 단계(609)에서, SPARK는 차기 파티션('Pi+1')이 존재하는지 확인한다.
여기서, SPARK는 파티션('I') 당 제한되는 빈 슬롯 수를 포함하여 파티션('P')의 리스트를 반복적으로 초기화 한다.
상기 단계(609)에서의 확인 결과, 차기 파티션('Pi+1')이 존재하는 경우, 단계(610)에서, SPARK는 파티션('Pi')를 초기화 하고, 단계(611)에서, 빈 슬롯이 존재하는지 확인한다.
상기 단계(611)에서의 확인 결과, 빈 슬롯이 존재하는 경우, 단계(612)에서, SPARK는 빈 슬롯에 이벤트 트랜지션('K')를 입력한 후, 단계(611)로 이동하여 빈 슬롯이 존재하는지 재확인한다.
본 단계(611 내지 612)에서, SPARK는 각 파티션은 빈 슬롯을 포함하기 때문에, 이벤트 트랜지션('K') 속성을 빈 슬롯에 반복적으로 입력한다.
상기 단계(611)에서의 확인 결과, 빈 슬롯이 존재하지 않는 경우, 단계(613 내지 614)에서, SPARK는 파티션('Pi') 속성 값을 설정하고, HDFS로 파티션('Pi') 데이터를 저장한다.
여기서, SPARK는 차기 파티션('Pi+1')을 반복하기 전에, 파티션('Pi') 속성 값을 설정한 후 파티션 데이터를 HDFS에 저장할 필요가 있다.
상기 단계(609)에서의 확인 결과, 차기 파티션('Pi+1')이 존재하지 않는 경우, 단계(615 내지 616)에서, SPARK는 파티션 요약정보(Partitions Summary)('Ps') 속성 값을 설정하고, 파티션 요약정보('Ps') 데이터를 HDFS에 저장한다.
여기서, SPARK는 마지막 파티션에서 이벤트 트랜지션의 처리를 완료한 후에, 파티션 요약정보('Ps') 속성 값을 설정한 뒤, 그 데이터를 HDFS에 저장한다.
도 7은, 도 5b에 도시한 단계(524)를 세부적으로 나타낸 상세흐름도이다.
도 7에는 웹 브라우저에서 파티션('Pi')의 토큰에 대한 애니메이션을 초기화 하는 과정이 도시되어 있다.
도 7을 참조하면, 단계(701 내지 702)에서, 웹 브라우저는 모 타임라인('tmp')을 중지하고, 파티션('Pi')을 위한 애니메이션 핸들링을 위해, 자 타임라인(child time, 'tmci')을 초기화 한다.
단계(703 내지 704)에서, 웹 브라우저는 파티션('Pi')에서 토큰(K)을 리스팅하고, 같은 소스(source), 타겟, 개시 시간 및 완료 시간에 따라, 토큰(K)을 그룹핑 한다.
단계(705 내지 707)에서, 웹 브라우저는 파티션('Pi')에 그룹핑된 토큰(Kg)을 리스팅하고, 그룹핑된 토큰(Kg)을 위한 SVG를 생성하고, 생성한 KgiSVG를 타임라인(tmci)에 추가한다.
여기서, SVG(Scalable Vector Graphics)는 상호성(interactivity)과 애니매이션(animation)을 지원하는 2차원 그래픽 XML 기반의 벡터 이미지 포맷으로서, W3C(World Wide Web Consortium)에 의해 개발된 공개 표준으로서, 동적이고 상호적이라는 특징을 가진다.
단계(708)에서, 웹 브라우저는 차기 그룹핑된 토큰(Kgi + 1)이 존재하는지 확인하고, 차기 그룹핑된 토큰(Kgi + 1)이 존재하는 것으로 확인되면, 단계(706)으로 이동하여 차기 그룹핑된 토큰(Kg)을 위한 SVG를 생성한다.
차기 그룹핑된 토큰(Kgi + 1)이 존재하지 않는 것으로 확인되면, 단계(709)에서, 웹 브라우저는 모 타임라인('tmp')을 재개한다.
도 8은 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 시스템에서, 로그 재생 페이지를 시각화 하는 일례를 도시한 도면이다.
도 8을 참조하면, 본 발명의 실시예들에 따른 대용량 이벤트 로그 재생 시스템은, 로그 재생 페이지에 대한 접속 명령이 발생 함에 따라, 상기 접속 명령에 포함되는 공정(Process)에 대응되는 로그파일을 정해진 크기로 분할하여, 복수의 분할 로그파일을 생성할 수 있다.
대용량 이벤트 로그 재생 시스템은, 복수의 분할 로그파일 각각을 스토리지 시스템(일례로, 하둡 파일 시스템 'HDFS')으로부터 순차적으로 획득하고, 상기 복수의 분할 로그파일 각각에 포함되는 일정 개수의 이벤트 로그에 대한 렌더링을 통해, 로그 재생 페이지를 도 8과 같이 관리자 단말에 구현할 수 있다.
도 8을 참조하면, 대용량 이벤트 로그 재생 시스템은, 이벤트 로그에 포함된 액티비티('QW', 'PP', 'RC', 'SP', 'AN', 'PR', 'RW' 및 'WS')를 각각 노드로서 표시하고, 각 노드를 아크로 연결하고, 노드 사이에서 아크를 따라 움직이는 원을 통해 프로세스의 흐름을 표현하고, 원의 크기를 통해 프로세스의 흐름의 양을 나타냄으로써, 관리자 단말에서 로그 재생 페이지를 시각화 할 수 있다.
이하, 도 9에서는 본 발명의 실시예들에 따른 대용량 이벤트 로그 재생 시스템(200)의 작업 흐름을 상세히 설명한다.
도 9는 본 발명의 일실시예에 따른 대용량 이벤트 로그 재생 방법의 순서를 도시한 흐름도이다.
본 실시예에 따른 대용량 이벤트 로그 재생 방법은 상술한 대용량 이벤트 로그 재생 시스템(200)에 의해 수행될 수 있다.
도 9를 참조하면, 단계(910)에서, 대용량 이벤트 로그 재생 시스템(200)은, 공정과, 상기 공정에 연이어 수행되는 차기 공정 전에 발생하는 이벤트 로그를 카운트하여, 로그파일로서 스토리지 시스템에 유지한다.
대용량 이벤트 로그 재생 시스템(200)은 분할 처리 플랫폼(예, 'SPARK')에 의한 프로세스 수행 과정에서 다양한 작업행위에 대해 발생되는 이벤트 로그를 발생순서에 따라 로그파일로서 기록하고, 로그파일을, 대량의 자료를 분산 처리하는 스토리지 시스템(예, 'HDFS')에 분산하여 저장 함으로써, 로그 재생 시 대용량 이벤트 로그의 처리가 보다 용이해지도록 할 수 있다.
단계(920)에서, 대용량 이벤트 로그 재생 시스템(200)은, 관리자 단말에서 로그 재생 페이지에 대한 접속 명령이 발생하는지 판단한다.
단계(920)에서의 판단 결과, 로그 재생 페이지에 대한 접속 명령이 발생하는 경우, 단계(930)에서, 대용량 이벤트 로그 재생 시스템(200)은, 상기 접속 명령에 포함되는 공정에 대응되는 로그파일을, 상기 스토리지 시스템에서 확인한다.
단계(940)에서, 대용량 이벤트 로그 재생 시스템(200)은, 확인된 로그파일을 정해진 크기(파티션)로 분할하여, 복수의 분할 로그파일을 생성하여, 상기 스토리지 시스템(예, 'HDFS')으로부터 획득한다.
일례로, 대용량 이벤트 로그 재생 시스템(200)은 상기 스토리지 시스템으로 분할 명령을 전송하고, 상기 분할 명령에 따라, 상기 스토리지 시스템에서, 상기 로그파일을 파티션 단위로 분할하여 상기 복수의 분할 로그파일을 생성하도록 할 수 있다.
이때, 대용량 이벤트 로그 재생 시스템(200)은, 상기 공정의 종류 또는 상기 로그파일의 용량에 따라, 분할 로그파일이 갖는 크기를 정하고, 정해진 상기 크기에 비례하여, 상기 스토리지 시스템으로부터의, 상기 분할 로그파일 각각의 획득 간격을 조정할 수 있다.
대용량 이벤트 로그 재생 시스템(200)은, 복수의 분할 로그파일을 HDFS로부터 순차적으로 획득할 수 있다. 즉, 대용량 이벤트 로그 재생 시스템(200)은, 상기 복수의 분할 로그파일 중 제1 분할 로그파일에 포함되는 일정 개수의 이벤트 로그가 처리되는 동안, 상기 로그파일 내, 상기 제1 분할 로그파일 다음에 위치하는 제2 분할 로그파일을, 상기 스토리지 시스템으로부터 획득할 수 있다.
단계(950)에서, 대용량 이벤트 로그 재생 시스템(200)은, 분할 로그파일 각각에 대한 처리를 통해, 로그 재생 페이지를 웹 기반으로 시각화 한다.
즉, 대용량 이벤트 로그 재생 시스템(200)은, REST_API 기반의 웹 어플리케이션('웹 브라우저')을 통해, 상기 복수의 분할 로그파일을 처리하여, 공정 별 이벤트 발생 정도를 나타내는 로그 재생 페이지를 시각화 할 수 있다.
실시예에 따라, 대용량 이벤트 로그 재생 시스템(200)은, 상기 스토리지 시스템(예, 'HDFS')에 상기 접속 명령과 관련된 로그파일이 유지되지 않는 것으로 확인되면, 분할 처리 플랫폼(예, 'SPARK')에서의 공정 수행에 따른 이벤트 로그의 발생을 대기할 수 있다.
구체적으로, 대용량 이벤트 로그 재생 시스템(200)은, 상기 스토리지 시스템에 상기 접속 명령과 관련된 로그파일이 유지되지 않는 경우, 상기 분할 처리 플랫폼에서, 프로세스가 처리 됨에 따라 이벤트 로그가 생성되어, 상기 이벤트 로그를 기록한 로그파일이, 상기 스토리지 시스템 내에 유지되면, 상기 스토리지 시스템으로부터, 상기 생성된 로그파일을 획득할 수 있다.
보다 구체적으로, 도 6을 참조하면, 상기 분할 처리 플랫폼(SPARK)은, 이벤트 로그의 시퀀스로 구성된 케이스에 대한 리스트가 입력되면, 상기 각 케이스 내 모든 이벤트 로그를 맵(Map) 함수를 적용하여 이벤트 트랜지션으로 매핑하고, 상기 이벤트 트랜지션에 리듀스(Reduce) 함수를 적용하고, 소트(Sort) 함수를 이용하여 상기 이벤트 트랜지션을 생성시점에 따라 정렬하고, 파티션을 초기화하고, 인서트(Insert) 함수를 이용하여, 상기 파티션 각각에 일정 개수(예를 들어, '5,000개')의 이벤트 트랜지션을 삽입하고, 상기 각 파티션을 상기 스토리지 시스템에 유지하고, 상기 각 파티션에 대한 요약정보를 상기 스토리지 시스템에 유지할 수 있다.
본 발명의 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
200: 대용량 이벤트 로그 재생 시스템
210: 기록부
220: 확인부
230: 획득부
240: 구현부

Claims (15)

  1. 공정과, 상기 공정에 연이어 수행되는 차기 공정 전에 발생하는 이벤트 로그를 카운트하여, 로그파일로서 스토리지 시스템에 유지하는 단계;
    로그 재생 페이지에 대한 접속 명령이 발생 함에 따라,
    상기 접속 명령에 포함되는 공정에 대응되는 로그파일을, 상기 스토리지 시스템에서 확인하는 단계; 및
    상기 확인된 로그파일을 정해진 크기로 분할하여, 복수의 분할 로그파일을 생성하여, 상기 스토리지 시스템으로부터 획득하는 단계
    를 포함하는 대용량 이벤트 로그 재생 방법.
  2. 제1항에 있어서,
    상기 복수의 분할 로그파일을 이용하여, 공정 별 이벤트 발생 정도를 나타내는 상기 로그 재생 페이지를 구현하는 단계로서, 분할 로그파일 각각에 포함되는 일정 개수의 이벤트 로그에 대한 렌더링을 통해, 상기 로그 재생 페이지를 구현하는 단계
    를 더 포함하는 대용량 이벤트 로그 재생 방법.
  3. 제2항에 있어서,
    상기 로그 재생 페이지를 구현하는 단계는,
    REST_API 기반의 웹 어플리케이션을 통해, 상기 복수의 분할 로그파일을 처리하여, 상기 로그 재생 페이지를 시각화 하는 단계
    를 포함하는 대용량 이벤트 로그 재생 방법.
  4. 제1항에 있어서,
    상기 공정의 종류 또는 상기 로그파일의 용량에 따라, 분할 로그파일이 갖는 크기를 정하는 단계; 및
    정해진 상기 크기에 비례하여, 상기 스토리지 시스템으로부터의, 상기 분할 로그파일 각각의 획득 간격을 조정하는 단계
    를 더 포함하는 대용량 이벤트 로그 재생 방법.
  5. 제1항에 있어서,
    상기 스토리지 시스템으로 분할 명령을 전송하는 단계; 및
    상기 분할 명령에 따라, 상기 스토리지 시스템에서, 상기 로그파일을 파티션 단위로 분할하여 상기 복수의 분할 로그파일을 생성하는 단계
    를 더 포함하는 대용량 이벤트 로그 재생 방법.
  6. 제5항에 있어서,
    상기 복수의 분할 로그파일을 생성하는 단계는,
    상기 분할 명령에 의해 지정되는, 파티션 당 이벤트 로그의 개수 및 파티션의 개수 중 적어도 하나를 고려하여, 상기 로그파일을 분할하는 단계
    를 포함하는 대용량 이벤트 로그 재생 방법.
  7. 제1항에 있어서,
    상기 스토리지 시스템으로 분할 명령을 전송하는 단계; 및
    상기 분할 명령에 포함되는 토큰에 의해 식별되는 특정의 분할 로그파일을 상기 스토리지 시스템으로부터 획득하는 단계
    를 더 포함하는 대용량 이벤트 로그 재생 방법.
  8. 제1항에 있어서,
    상기 획득하는 단계는,
    상기 로그파일 내에 위치하는 순서에 상응하여, 상기 복수의 분할 로그파일 각각을 순차적으로 획득하는 단계
    를 포함하는 대용량 이벤트 로그 재생 방법.
  9. 제1항에 있어서,
    상기 이벤트 로그는, 발생시점에 대응하여 상기 로그파일에 기록되고,
    상기 획득하는 단계는,
    상기 복수의 분할 로그파일 중 제1 분할 로그파일에 포함되는 일정 개수의 이벤트 로그가 처리되는 동안, 상기 로그파일 내, 상기 제1 분할 로그파일 다음에 위치하는 제2 분할 로그파일을, 상기 스토리지 시스템으로부터 획득하는 단계
    를 포함하는 대용량 이벤트 로그 재생 방법.
  10. 제1항에 있어서,
    상기 스토리지 시스템에 상기 접속 명령과 관련된 로그파일이 유지되지 않는 경우,
    분할 처리 플랫폼에서의 공정 수행에 따른 이벤트 로그의 발생을 대기하는 단계
    를 더 포함하는 대용량 이벤트 로그 재생 방법.
  11. 공정과, 상기 공정에 연이어 수행되는 차기 공정 전에 발생하는 이벤트 로그를 카운트하여, 로그파일로서 스토리지 시스템에 유지하는 기록부;
    로그 재생 페이지에 대한 접속 명령이 발생 함에 따라,
    상기 접속 명령에 포함되는 공정에 대응되는 로그파일을, 상기 스토리지 시스템에서 확인하는 확인부; 및
    상기 확인된 로그파일을 정해진 크기로 분할하여, 복수의 분할 로그파일을 생성하여, 상기 스토리지 시스템으로부터 획득하는 획득부
    를 포함하는 대용량 이벤트 로그 재생 시스템.
  12. 제11항에 있어서,
    분할 로그파일 각각에 포함되는 일정 개수의 이벤트 로그에 대한 렌더링을 통해, 공정 별 이벤트 발생 정도를 나타내는 로그 재생 페이지를 구현하는 구현부
    를 더 포함하는 대용량 이벤트 로그 재생 시스템.
  13. 제11항에 있어서,
    상기 획득부는,
    상기 공정의 종류 또는 상기 로그파일의 용량에 따라, 분할 로그파일이 갖는 크기를 정하고, 정해진 상기 크기에 비례하여, 상기 스토리지 시스템으로부터의, 상기 분할 로그파일 각각의 획득 간격을 조정하는
    대용량 이벤트 로그 재생 시스템.
  14. 제11항에 있어서,
    상기 획득부는,
    상기 스토리지 시스템으로 분할 명령을 전송하고,
    상기 분할 명령에 따라, 상기 스토리지 시스템에서, 상기 로그파일을 파티션 단위로 분할하여 상기 복수의 분할 로그파일을 생성하도록 하는
    대용량 이벤트 로그 재생 시스템.
  15. 제11항에 있어서,
    상기 이벤트 로그는, 발생시점에 대응하여 상기 로그파일에 기록되고,
    상기 획득부는,
    상기 복수의 분할 로그파일 중 제1 분할 로그파일에 포함되는 일정 개수의 이벤트 로그가 처리되는 동안, 상기 로그파일 내, 상기 제1 분할 로그파일 다음에 위치하는 제2 분할 로그파일을, 상기 스토리지 시스템으로부터 획득하는
    대용량 이벤트 로그 재생 시스템.
KR1020160177345A 2016-12-23 2016-12-23 대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템 KR101914347B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020160177345A KR101914347B1 (ko) 2016-12-23 2016-12-23 대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템
PCT/KR2017/013633 WO2018117453A1 (ko) 2016-12-23 2017-11-28 대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템
US15/947,734 US10146659B2 (en) 2016-12-23 2018-04-06 Large event log replay method and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160177345A KR101914347B1 (ko) 2016-12-23 2016-12-23 대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템

Publications (2)

Publication Number Publication Date
KR20180073861A true KR20180073861A (ko) 2018-07-03
KR101914347B1 KR101914347B1 (ko) 2018-11-01

Family

ID=62626677

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160177345A KR101914347B1 (ko) 2016-12-23 2016-12-23 대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템

Country Status (3)

Country Link
US (1) US10146659B2 (ko)
KR (1) KR101914347B1 (ko)
WO (1) WO2018117453A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102007126B1 (ko) * 2018-12-27 2019-08-02 부산대학교 산학협력단 결손된 운영 데이터의 복원 방법 및 복원 장치

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111639059A (zh) * 2020-05-28 2020-09-08 深圳壹账通智能科技有限公司 日志信息的存储及定位方法、电子设备及存储介质
US11586532B2 (en) * 2021-07-02 2023-02-21 Grammatech, Inc. Software test environment with automated configurable harness capabilities, and associated methods and computer readable storage media
CN117194566B (zh) * 2023-08-21 2024-04-19 泽拓科技(深圳)有限责任公司 多存储引擎数据复制方法、系统、计算机设备

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3616997B2 (ja) * 2001-07-26 2005-02-02 住友重機械工業株式会社 射出成形機の過去の動作状態の記憶・出力方法
KR100528001B1 (ko) 2002-12-20 2005-11-09 삼성에스디에스 주식회사 Mpeg 파일의 분산 관리 시스템 및 방법
KR20070015871A (ko) * 2005-08-01 2007-02-06 소니 가부시끼 가이샤 정보 처리장치, 콘텐츠 재생장치, 정보 처리방법, 이벤트로그 기록 방법, 및 컴퓨터 프로그램
KR100912868B1 (ko) 2006-08-29 2009-08-19 삼성전자주식회사 서비스 분산을 위한 장치 및 방법
CN101192227B (zh) * 2006-11-30 2011-05-25 阿里巴巴集团控股有限公司 一种基于分布式计算网络的日志文件分析方法和系统
CN101582064B (zh) * 2008-05-15 2011-12-21 阿里巴巴集团控股有限公司 一种大数据量数据处理方法及系统
KR101005866B1 (ko) * 2008-09-03 2011-01-05 충남대학교산학협력단 룰기반 웹아이디에스 시스템용 웹로그 전처리방법 및 시스템
US8666818B2 (en) * 2011-08-15 2014-03-04 Logobar Innovations, Llc Progress bar is advertisement
KR101341441B1 (ko) 2011-11-04 2013-12-13 방한민 멀티미디어 콘텐츠 분할 및 분산 방법
US9069704B2 (en) * 2011-11-07 2015-06-30 Sap Se Database log replay parallelization
US8880479B2 (en) * 2011-12-29 2014-11-04 Bmc Software, Inc. Database recovery progress report
US8977909B2 (en) * 2012-07-19 2015-03-10 Dell Products L.P. Large log file diagnostics system
US9842053B2 (en) * 2013-03-15 2017-12-12 Sandisk Technologies Llc Systems and methods for persistent cache logging
US9098453B2 (en) * 2013-07-11 2015-08-04 International Business Machines Corporation Speculative recovery using storage snapshot in a clustered database
KR101559206B1 (ko) * 2013-11-29 2015-10-13 건국대학교 산학협력단 로그 데이터 처리 방법 및 이를 수행하는 시스템
US9734021B1 (en) * 2014-08-18 2017-08-15 Amazon Technologies, Inc. Visualizing restoration operation granularity for a database
KR101556541B1 (ko) * 2014-10-17 2015-10-02 한국과학기술정보연구원 고부하 경로 기반의 복합 이벤트 처리 장치 및 그 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102007126B1 (ko) * 2018-12-27 2019-08-02 부산대학교 산학협력단 결손된 운영 데이터의 복원 방법 및 복원 장치
US11113268B2 (en) 2018-12-27 2021-09-07 Pusan National University Industry-University Cooperation Foundation Method and device for restoring missing operational data

Also Published As

Publication number Publication date
US20180225189A1 (en) 2018-08-09
KR101914347B1 (ko) 2018-11-01
US10146659B2 (en) 2018-12-04
WO2018117453A1 (ko) 2018-06-28

Similar Documents

Publication Publication Date Title
KR101914347B1 (ko) 대용량 이벤트 로그 재생 방법 및 대용량 이벤트 로그 재생 시스템
CN104281468B (zh) 分布式虚拟机图像管理的方法和系统
CN102638456B (zh) 基于云计算的海量实时视频码流智能分析方法及其系统
US20150032759A1 (en) System and method for analyzing result of clustering massive data
CN104834599B (zh) Web安全检测方法和装置
US11789846B2 (en) Method and system for using stacktrace signatures for bug triaging in a microservice architecture
EP3182298B1 (en) Smart elastic scaling based on application scenarios
Fan et al. Microservices vs Serverless: A Performance Comparison on a Cloud-native Web Application.
CN109828823A (zh) 一种基于容器虚拟化技术的无人机算法仿真系统扩展方法
Pourbafrani et al. Interactive process improvement using simulation of enriched process trees
US11860887B2 (en) Scalable real-time analytics
WO2018058707A1 (zh) 任务处理方法和分布式计算框架
US20230229438A1 (en) Kernels as a service
CN110909072B (zh) 一种数据表建立方法、装置及设备
CN112148202A (zh) 训练样本读取方法及装置
Kumar et al. CloudSDV enabling static driver verifier using Microsoft azure
Anderson Performance modelling of reactive web applications using trace data from automated testing
KR102063834B1 (ko) 클라우드 인프라스트럭처를 활용한 협업 시스템 및 이에 적용되는 이벤트 기반 협업 흐름 제어 방법
KR102620994B1 (ko) 라이브 커머스에서의 데이터 처리 시스템
Alghamdi et al. Big Data Management and Analytics as a Cloud Service
Fariz et al. Improving MapReduce process by mobile agents
WO2017191295A1 (en) A method and apparatus for processing data
US20230359958A1 (en) Distributed Actor-Based Information System and Method
WO2021047575A1 (zh) 负载测试方法、装置、电子设备及计算机可读存储介质
US20170063597A1 (en) Api provider insights collection

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right