KR20230062243A - 로그 기반 업무 프로세스 추출 방법 및 그 장치 - Google Patents

로그 기반 업무 프로세스 추출 방법 및 그 장치 Download PDF

Info

Publication number
KR20230062243A
KR20230062243A KR1020210147310A KR20210147310A KR20230062243A KR 20230062243 A KR20230062243 A KR 20230062243A KR 1020210147310 A KR1020210147310 A KR 1020210147310A KR 20210147310 A KR20210147310 A KR 20210147310A KR 20230062243 A KR20230062243 A KR 20230062243A
Authority
KR
South Korea
Prior art keywords
trace
activity
task
unit
unit task
Prior art date
Application number
KR1020210147310A
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 삼성에스디에스 주식회사
Priority to KR1020210147310A priority Critical patent/KR20230062243A/ko
Publication of KR20230062243A publication Critical patent/KR20230062243A/ko

Links

Images

Classifications

    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • 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
    • 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/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • 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/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Educational Administration (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 개시는 업무 프로세스를 추출하는 방법 및 그 장치에 관한 것이다. 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 방법은, 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 로그(log)로부터 제1 이벤트를 식별하는 단계, 상기 제1 이벤트의 식별 순서에 기초하여, 제1 액티비티 시퀀스를 생성하는 단계, 상기 제1 액티비티 시퀀스의 패턴 분석에 기초하여, 제1 트레이스를 추출하는 단계 - 상기 제1 트레이스는, 상기 제1 액티비티 시퀀스의 일부 문자열임 - , 상기 제1 트레이스에 대응되는 제1 단위 업무를 식별하는 단계 - 상기 제1 단위 업무는, 상기 제1 이벤트를 포함하는 반복 업무의 기본 단위임 - 및 상기 제1 단위 업무를 포함하는 반복 업무의 프로세스 그래프를 사용자 단말에 전송하는 단계를 포함할 수 있다.

Description

로그 기반 업무 프로세스 추출 방법 및 그 장치{APPARATUS FOR EXTRACTING WORK PROCESS USING LOG DATA AND METHOD THEREOF}
본 개시는 업무 프로세스를 추출하는 방법 및 그 장치에 관한 것이다. 보다 자세하게는, 사용자가 업무를 수행하는 과정에서 발생하는 로그(log)를 분석하여, 사용자가 수행하는 반복 업무를 동적으로 추출하고, 추출된 반복 업무가 어떤 업무인지를 사용자가 쉽게 이해할 수 있는 프로세스 그래프를 생성하는 방법 및 그 장치에 관한 것이다.
사용자가 반복적으로 수행하는 업무를 자동화하는 기술인, 로봇 프로세스 자동화 기술(Robotic Process Automation, 이하, RPA)은, 최근 큰 관심을 받아온 IT(Information Technology) 기술 중 하나이다. 이러한, RPA 관련 시장은 꾸준한 증가 추세로 앞으로의 시장 전망 또한 밝을 것으로 예상된다.
RPA 기술 분야에 있어서, RPA가 적용되어 자동화될 반복 업무를 결정하고, 결정된 반복 업무를 실제 봇(bot)을 통해 자동화하는 데에는, 많은 비용 및 시간이 소모되므로, RPA가 적용되어 자동화될 반복 업무를 결정하는 프로세스 발굴(Process Discovery, PD) 기술이 요구된다.
그러나, RPA와 관련된 종래 기술은, RPA가 적용되어 자동화될 반복 업무를 동적으로 발굴하는 기술이 없었다.
한국 등록특허 제2160344호 "로봇 프로세스 자동화 시스템 및 방법"
본 개시의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, RPA가 적용되어 자동화될 반복 업무를 동적으로 발굴하는 방법 및 그 장치를 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, RPA가 적용되어 자동화될 반복 업무를 프로세스 그래프의 형태로 사용자에게 시각화하는 방법 및 그 장치를 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 사용자가 수행한 여러 업무가 혼재되어 기록된 로그를 이용하여, RPA가 적용되어 자동화될 반복 업무를 발굴하는 방법 및 그 장치를 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, RPA가 적용되어 자동화될 반복 작업을 결정하는데 소모되는 비용 및 시간을 감소시키는 방법 및 그 장치를 제공하는 것이다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 로그에 업무와 관련된 이벤트 외의 노이즈 이벤트가 기록된 경우에도, RPA가 적용되어 자동화될 반복 작업을 정확하게 추출할 수 있는 방법 및 그 장치를 제공하는 것이다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 방법은, 컴퓨팅 장치에 의해 수행되는 방법에 있어서, 로그(log)로부터 제1 이벤트를 식별하는 단계, 상기 제1 이벤트의 식별 순서에 기초하여, 제1 액티비티 시퀀스를 생성하는 단계, 상기 제1 액티비티 시퀀스의 패턴 분석에 기초하여, 제1 트레이스를 추출하는 단계 - 상기 제1 트레이스는, 상기 제1 액티비티 시퀀스의 일부 문자열임 - , 상기 제1 트레이스에 대응되는 제1 단위 업무를 식별하는 단계 - 상기 제1 단위 업무는, 상기 제1 이벤트를 포함하는 반복 업무의 기본 단위임 - 및 상기 제1 단위 업무를 포함하는 반복 업무의 프로세스 그래프를 사용자 단말에 전송하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 제1 이벤트를 식별하는 단계는, 상기 로그를 파싱(parsing)하는 단계를 포함하고, 상기 제1 액티비티 시퀀스를 생성하는 단계는, 상기 파싱의 결과를 이용하여, 상기 제1 이벤트에 대응되는 제1 액티비티 키를 결정하는 단계 - 상기 제1 액티비티 키는 상기 제1 이벤트에 대응되는 문자임 - 및 상기 제1 액티비티 키를 상기 제1 이벤트의 식별 순서에 따라 나열하여, 상기 제1 액티비티 시퀀스를 생성하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 제1 트레이스를 추출하는 단계는, 상기 제1 액티비티 시퀀스를 포함하는 복수의 액티비티 시퀀스의 공통 패턴을 결정하는 단계 및 상기 공통 패턴에 대응되도록, 상기 제1 액티비티 시퀀스의 일부 문자열을 상기 제1 트레이스로 추출하는 단계를 포함할 수 있다. 여기서, 상기 공통 패턴을 결정하는 단계는, 상기 복수의 액티비티 시퀀스의 최장 공통 부분 시퀀스(LCS, Longest Common Subsequence)를 결정하는 단계, 상기 최장 공통 부분 시퀀스에 포함된 복수의 최소 패턴 각각의 빈도를 산출하는 단계 - 상기 최소 패턴은, 길이가 2인 문자열임 - 및 상기 복수의 최소 패턴 각각의 빈도 및 상기 복수의 최소 패턴 사이의 겹침 여부에 기초하여, 상기 공통 패턴을 결정하는 단계를 포함할 수 있다. 또한, 상기 제1 액티비티 시퀀스의 일부 문자열을 상기 제1 트레이스로 추출하는 단계는, 상기 공통 패턴에 포함되지 않은 문자를 디폴트(default) 문자로 치환하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 제1 트레이스에 대응되는 제1 단위 업무를 식별하는 단계는, 상기 제1 트레이스를 포함하는 복수의 트레이스를 클러스터링(clustering)하는 단계 및 상기 클러스터링의 결과를 이용하여, 상기 제1 트레이스에 대응되는 제1 단위 업무 클러스터를 식별하는 단계 - 상기 제1 단위 업무 클러스터는, 상기 제1 단위 업무에 대응되는 트레이스의 집합임 - 를 포함할 수 있다. 여기서, 상기 복수의 트레이스를 클러스터링하는 단계는, 상기 복수의 트레이스 사이의 시퀀스 유사도에 기초하여, 상기 복수의 트레이스를 클러스터링하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 제1 단위 업무와 논리적 연결 관계를 갖는 제2 단위 업무를 식별하는 단계 및 상기 제1 단위 업무 및 상기 제2 단위 업무를 포함하는 상기 반복 업무를 결정하는 단계를 더 포함할 수 있다. 여기서, 상기 제2 단위 업무를 식별하는 단계는, 상기 제1 단위 업무에 기준 횟수 이상 선행하는 단위 업무를 상기 제2 단위 업무로 식별하는 단계를 포함하거나 상기 제1 단위 업무에 기준 횟수 이상 후행하는 단위 업무를 상기 제2 단위 업무로 식별하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 반복 업무의 프로세스 그래프를 사용자 단말에 전송하는 단계는, 상기 제1 단위 업무를 포함하는 복수의 단위 업무가 표시되는 제1 프로세스 그래프를 상기 사용자 단말에 전송하는 단계 - 상기 복수의 단위 업무는, 상기 반복 업무에 포함되는 단위 업무임 - 및 상기 제1 단위 업무에 대응되는 복수의 트레이스가 표시되는 제2 프로세스 그래프를 상기 사용자 단말에 전송하는 단계 - 상기 복수의 트레이스는, 상기 제1 단위 업무에 대응되는 트레이스임 - 를 포함할 수 있다. 여기서, 상기 제2 프로세스 그래프를 상기 사용자 단말에 전송하는 단계는, 상기 제1 트레이스 및 상기 복수의 트레이스에 포함된 제2 트레이스의 공통 노드를 결정하는 단계 - 상기 공통 노드는, 상기 제1 트레이스 및 상기 제2 트레이스 각각에 공통으로 포함된 액티비티 키임 - 및 상기 제1 트레이스 및 상기 제2 트레이스 각각의 문자열의 순서에 기초하여, 상기 공통 노드에 포함되지 않은 개별 노드가 상기 공통 노드와 간선으로 연결되는 상기 제2 프로세스 그래프를 생성하는 단계를 포함할 수 있다.
몇몇 실시예에서, 상기 반복 업무의 프로세스 그래프에 대한 수정 입력에 응답하여, 상기 제1 트레이스에 누락된 추천 액티비티 키를 결정하는 단계 및 상기 추천 액티비티 키가 상기 프로세스 그래프에 표시되도록, 수정 프로세스 그래프를 상기 사용자 단말에 전송하는 단계를 더 포함할 수 있다. 여기서, 상기 추천 액티비티 키를 결정하는 단계는, 상기 제1 트레이스와의 거리가 기준 거리 이내에 위치한 횟수가 최다인 액티비티 키를, 상기 추천 액티비티 키로 결정하는 단계를 포함할 수 있다.
본 개시의 다른 몇몇 실시예에 따른 업무 프로세스 추출 장치는, 프로세서, 네트워크 인터페이스, 메모리 및 상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 로그(log)로부터 제1 이벤트를 식별하는 인스트럭션(instruction), 상기 제1 이벤트의 식별 순서에 기초하여, 제1 액티비티 시퀀스를 생성하는 인스트럭션, 상기 제1 액티비티 시퀀스의 패턴 분석에 기초하여, 제1 트레이스를 추출하는 인스트럭션 - 상기 제1 트레이스는, 상기 제1 액티비티 시퀀스의 일부 문자열임 - , 상기 제1 트레이스에 대응되는 제1 단위 업무를 식별하는 인스트럭션 - 상기 제1 단위 업무는, 상기 제1 이벤트를 포함하는 반복 업무의 기본 단위임 - 및 상기 제1 단위 업무를 포함하는 반복 업무의 프로세스 그래프를 사용자 단말에 전송하는 인스트럭션을 포함할 수 있다.
도 1은 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 장치가 적용될 수 있는 예시적인 환경을 도시한다.
도 2는 도 1을 참조하여 설명된 업무 프로세스 추출 장치의 예시적인 블록도이다.
도 3은 도 2를 참조하여 설명된 액티비티 시퀀스 생성 모듈의 동작을 보다 구체적으로 설명하기 위한 예시적인 도면이다.
도 4는 도 2를 참조하여 설명된 트레이스 추출 모듈의 동작을 보다 구체적으로 설명하기 위한 예시적인 도면이다.
도 5는 도 2를 참조하여 설명된 단위 업무 식별 모듈의 동작을 보다 구체적으로 설명하기 위한 예시적인 도면이다.
도 6은 도 2를 참조하여 설명된 반복 업무 결정 모듈의 동작을 보다 구체적으로 설명하기 위한 예시적인 도면이다.
도 7은 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 방법을 나타내는 예시적인 순서도이다.
도 8은 도 7을 참조하여 설명된 이벤트의 식별 동작 및 액티비티 시퀀스의 생성 동작을 보다 구체적으로 설명하기 위한 예시적인 순서도이다.
도 9는 도 7을 참조하여 설명된 트레이스 추출 동작을 보다 구체적으로 설명하기 위한 예시적인 순서도이다.
도 10은 도 9를 참조하여 설명된 공통 패턴의 결정 동작을 보다 구체적으로 설명하기 위한 예시적인 순서도이다.
도 11은 도 7을 참조하여 설명된 단위 업무의 식별 동작을 보다 구체적으로 설명하기 위한 예시적인 순서도이다.
도 12는 도 7을 참조하여 설명된 프로세스 그래프의 전송 동작을 보다 구체적으로 설명하기 위한 예시적인 순서도이다.
도 13은 도 12를 참조하여 설명된 제2 프로세스 그래프의 전송 동작을 보다 구체적으로 설명하기 위한 예시적인 순서도이다.
도 14는 본 개시의 몇몇 실시예에서 참조될 수 있는 파싱 로그의 예시적인 도면이다.
도 15는 본 개시의 몇몇 실시예에서 참조될 수 있는 이벤트 테이블의 예시적인 도면이다.
도 16은 본 개시의 몇몇 실시예에서 참조될 수 있는 최장 공통 부분 시퀀스의 결정 동작을 보다 구체적으로 설명하기 위한 예시적인 도면이다.
도 17은 본 개시의 몇몇 실시예에서 참조될 수 있는 공통 패턴의 결정 동작을 보다 구체적으로 설명하기 위한 예시적인 도면이다.
도 18은 본 개시의 몇몇 실시예에서 참조될 수 있는 액티비티 시퀀스를 트레이스 단위로 변환한 일례를 도시한다.
도 19는 본 개시의 몇몇 실시예에서 참조될 수 있는 제1 프로세스 그래프의 일례를 도시한다.
도 20은 본 개시의 몇몇 실시예에서 참조될 수 있는 제2 프로세스 그래프의 생성 동작을 보다 구체적으로 설명하기 위한 예시적인 도면이다.
도 21은 본 개시의 몇몇 실시예에서 참조될 수 있는 제2 프로세스 그래프의 일례를 도시한다.
도 22 및 도 23은 본 개시의 몇몇 실시예에서 참조될 수 있는 프로세스 그래프의 수정 동작을 보다 구체적으로 설명하기 위한 예시적인 도면이다.
도 24는 본 개시의 다양한 실시예에 따른 장치 및/또는 시스템을 구현할 수 있는 예시적인 컴퓨팅 장치를 도시한다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
본 명세서에서 사용되는 "이벤트"는, 사용자의 업무 수행 과정에서 발생하는 동작의 최소 단위를 의미할 수 있다. 예를 들어, A 아이콘을 좌클릭하는 동작, B 아이콘을 우클릭하는 동작 및 인터넷 주소창에 C 주소를 입력하는 동작 등이 이벤트에 포함될 수 있다. 이러한, "이벤트"는 사용자가 사용자 단말을 이용하여 업무를 수행하는 과정에서 기록된 로그(log)로부터 추출될 수 있으며, 다양한 "이벤트"가 사전에 정의되어 테이블의 형태로 관리될 수도 있다.
본 명세서에서 사용되는 "액티비티 키"는, 앞서 설명된 "이벤트"에 대응되도록 결정된 문자일 수 있다. 예를 들어, A 아이콘을 좌클릭하는 동작에 대응하는 액티비티 키로 a가 결정될 수 있고, B 아이콘을 우클릭하는 동작에 대응하는 액티비티 키로 b가 결정될 수 있으며, 인터넷 주소창에 C 주소를 입력하는 동작에 대응하는 액티비티 키로 c가 결정될 수 있다. 이러한 "액티비티 키"는 이벤트와의 대응 관계가 사전에 정의되어 관리될 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니고, 신규 액티비티 키가 사전에 정의된 액티비티 키와 중복되지 않게 결정되는 다양한 방식들이 본 개시의 범위에 포함될 수 있다.
본 명세서에서 사용되는 "액티비티 시퀀스"는, "액티비티 키"가 로그에 기록된 "이벤트"의 순서대로 나열된 문자열을 의미할 수 있다. 앞서 "액티비티 키"와 관련된 예시를 그대로 이용하여 설명하면, A 아이콘을 좌클릭하는 동작, B 아이콘을 우클릭하는 동작 및 인터넷 주소창에 C 주소를 입력하는 동작이 순서대로 로그에 기록된 경우, 본 예시에 따라 생성될 수 있는 "액티비티 시퀀스"는 {a, b, c}일 수 있다.
본 명세서에서 사용되는 "트레이스"는, "액티비티 시퀀스" 중 적어도 일부의 문자가 제거된 문자열을 의미할 수 있다. 추후, RPA(Robotic Process Automation, 이하, RPA)로 전환하기 적합(e.g., 노이즈 이벤트에 대응되는 "액티비티 키"가 제거된)한 "액티비티 키"들로 구성된 문자열을 "트레이스"로 추출하는 본 개시의 다양한 실시예들을 구체적으로 설명하기로 한다.
본 명세서에서 사용되는 "단위 업무"는 적어도 하나의 "이벤트"를 포함하는 후술될 "반복 업무"의 기본 단위일 수 있다. 예를 들어, 휴지통에 삭제된 파일을 복원하는 단위 업무는, 1) 휴지통 아이콘을 우클릭하는 동작, 2) 복원 버튼으로 마우스 포인터를 이동하는 동작 및 3) 복원 버튼을 좌클릭하는 동작으로 구성될 수 있다.
본 개시의 몇몇 실시예에 따르면, 하나의 "단위 업무"에 적어도 하나의 "트레이스"가 대응될 수 있다. 여기서, 이러한 "트레이스"들의 집합을 "단위 업무 클러스터"라 할 수 있다. 구체적으로, "트레이스"는 로그로부터 추출된 문자열일 수 있으며, "트레이스"에 포함된 문자열은 실제 단위 업무와 관련성이 낮은 노이즈 이벤트를 포함할 수도 있다. 예를 들어, 휴지통에 삭제된 파일을 복원하는 단위 업무에 마우스 포인터를 X 위치로 이동하는 동작 또는 마우스 포인터를 Y 위치로 이동하는 동작 등 단위 업무와 관련성이 낮은 노이즈 이벤트가 포함될 수도 있다. 본 개시의 몇몇 실시예에 따르면, 이러한 노이즈 이벤트가 포함된 "트레이스"도 동일한 "단위 업무"로 식별할 수 있으며, 상술한 바와 같이, 하나의 "단위 업무"에 적어도 하나의 "트레이스"가 대응될 수 있다. "단위 업무"의 식별 동작과 관련된 보다 구체적인 설명은 추후 명세서의 기재를 통해 설명하기로 한다.
본 명세서에서 사용되는 "반복 업무"는 적어도 하나의 "단위 업무"를 포함하는 하나의 완결된 업무로 이해될 수 있다. 여기서, "반복 업무"는 RPA로 전환될 수 있는 업무의 기본 단위일 수 있다. 즉, 논리적으로 연결 관계를 갖는 복수의 "단위 업무"를 연결하여, "반복 업무"로 계층화할 수 있다. "반복 업무"의 결정 동작과 관련된 보다 구체적인 설명은 추후 명세서의 기재를 통해 설명하기로 한다.
이하, 본 개시의 다양한 실시예들에 대하여 첨부된 도면에 따라 상세하게 설명한다.
도 1은 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 장치(100)가 적용될 수 있는 예시적인 환경을 도시한다. 도 1은 제1 사용자 단말(300) 및 제2 사용자 단말(400)을 포함하는 2개의 사용자 단말(300, 400)에 업무 프로세스 추출 장치(100)가 적용된 일례를 도시하고 있으나, 이는 이해의 편의를 제공하기 위한 것일 뿐이고, 사용자 단말(300, 400)의 개수는 얼마든지 달라질 수 있다.
한편, 도 1은 본 개시의 목적을 달성하기 위한 바람직한 실시예를 도시하고 있을 뿐이며, 필요에 따라 일부 구성 요소가 추가되거나 삭제될 수 있다. 또한, 도 1에 도시된 예시적인 환경의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 예를 들어, 업무 프로세스 추출 장치(100)와 데이터베이스(200)는 동일한 컴퓨팅 장치 내에 서로 다른 로직(logic)의 형태로 구현될 수도 있다.
이하, 도 1에 도시된 각 구성 요소에 대해 보다 구체적으로 설명하기로 한다.
우선, 업무 프로세스 추출 장치(100)는, 사용자가 업무를 수행함에 따라 발생된 로그를 획득하여, RPA로 전환하여 봇(bot)으로 자동화될 반복 업무를 결정할 수 있다. 예를 들어, 업무 프로세스 추출 장치(100)는 사용자 단말(300, 400)로부터 획득된 로그를 이용하여 반복 업무를 결정할 수 있으나, 본 개시의 범위가 이에 한정되는 것은 아니고, 데이터베이스(200)에 저장된 로그를 이용하여 반복 업무를 결정할 수도 있다. 또한, 업무 프로세스 추출 장치(100)는, 반복 업무를 사용자가 이해하기 용이한 프로세스 그래프의 형태로 생성할 수 있다. 이렇게 생성된 프로세스 그래프는 사용자 단말로 전송되어, 사용자에게 시각화될 수 있다. 업무 프로세스 추출 장치(100)가 반복 업무를 결정하고, 프로세스를 시각화 하는 방법 및 동작들에 관하여서는, 도 2 이하의 도면을 참조하여 추후에 구체적으로 설명하기로 한다.
한편, 우선, 업무 프로세스 추출 장치(100)는 하나 이상의 컴퓨팅 장치로 구현될 수 있다. 예를 들어, 우선, 업무 프로세스 추출 장치(100)의 모든 기능은 단일 컴퓨팅 장치에서 구현될 수 있다. 다른 예로써, 우선, 업무 프로세스 추출 장치(100)의 제1 기능은 제1 컴퓨팅 장치에서 구현되고, 제2 기능은 제2 컴퓨팅 장치에서 구현될 수도 있다. 여기서, 상기 컴퓨팅 장치는, 노트북, 데스크톱(desktop), 랩탑(laptop) 등이 될 수 있으나, 이에 국한되는 것은 아니며 컴퓨팅 기능이 구비된 모든 종류의 장치를 포함할 수 있다. 다만, 우선, 업무 프로세스 추출 장치(100)가 다양한 사용자 단말(300, 400)과 연동하여, RPA로 전환될 반복 업무를 결정해야 되는 환경이라면, 우선, 업무 프로세스 추출 장치(100)는 고성능의 서버급 컴퓨팅 장치로 구현되는 것이 바람직할 수 있다. 컴퓨팅 장치의 일 예에 대해서는 도 24를 참조하도록 한다.
다음으로, 데이터베이스(200)는 업무 프로세스 추출 장치(100)가 수행하는 동작에 따른 결과물(e.g., 액티비티 시퀀스, 트레이스, 프로세스 그래프 등)을 저장 및 관리할 수 있다. 또한, 데이터베이스(200)는 사용자 단말(300, 400)로부터 획득되는 데이터(e.g., 로그 등)들을 저장 및 관리할 수도 있다. 데이터베이스(200)가 본 개시의 다양한 데이터들을 저장 및 관리하기 위해, 데이터베이스(200)와 관련된 공지된 모든 기술이 본 개시에 적용될 수 있음을 유의해야 한다.
다음으로, 사용자 단말(300, 400)은 사용자가 업무를 수행함에 따라 로그를 생성할 수 있다. 여기서, 사용자 단말(300, 400)은 생성된 로그를 업무 프로세스 추출 장치(100) 또는 데이터베이스(200)에 전송할 수 있다. 또한, 사용자 단말(300, 400)은 반복 업무로 결정된 업무에 대응되는 프로세스 그래프를 업무 프로세스 추출 장치(100)로부터 획득할 수 있으며, 여기서, 사용자 단말(300, 400)의 화면에 프로세스 그래프를 디스플레이할 수 있다. 나아가, 사용자 단말(300, 400)은 반복 업무로 결정된 업무에 대응되는 RPA 스크립트를 업무 프로세스 추출 장치(100)로부터 획득할 수도 있으며, 여기서, 획득된 RPA 스크립트를 이용하면 봇을 통해 반복 업무가 자동적으로 실행될 수 있다.
한편, 사용자 단말(300, 400)은 프로세스 그래프를 디스플레이하거나 RPA 스크립트를 실행하기 위하여, 웹 브라우저(Web browser) 또는 전용 애플리케이션이 설치되어 있을 수 있으며, 예를 들어, 사용자 단말(300, 400)은 데스크탑(Desktop), 워크스테이션(Workstation), 랩탑(Laptop), 태블릿(Tablet) 및 스마트폰(Smart Phone) 중 어느 하나로 구현될 수 있으나, 이에 한정되지 않고, 컴퓨팅 기능이 구비된 모든 종류의 장치를 포함할 수 있다.
지금까지 도 1을 참조하여 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 장치(100)가 적용될 수 있는 예시적인 환경에 대하여 설명하였다. 이하에서는, 도 2 내지 도 6을 참조하여, 업무 프로세스 추출 장치(100)의 구성 및 동작에 대하여 설명하기로 한다.
도 2에 도시된 바와 같이, 업무 프로세스 추출 장치(100)는 액티비티 시퀀스 생성 모듈(110), 트레이스 추출 모듈(120), 단위 업무 식별 모듈(130), 반복 업무 결정 모듈(140), 프로세스 그래프 생성 모듈(150), 프로세스 그래프 전송 모듈(160) 및 프로세스 그래프 수정 모듈(170)을 포함할 수 있다. 다만, 도 2에는 본 개시의 실시예와 관련 있는 구성 요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술 분야의 통상의 기술자라면 도 2에 도시된 구성 요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다. 또한, 도 2에 도시된 업무 프로세스 추출 장치(100)의 각각의 구성 요소들은 기능적으로 구분되는 기능 요소들을 나타낸 것으로서, 복수의 구성 요소가 실제 물리적 환경에서는 서로 통합되는 형태로 구현될 수도 있음에 유의한다. 이하, 각 구성 요소에 대해서 설명한다.
우선, 액티비티 시퀀스 생성 모듈(110)은 로그로부터 이벤트를 식별할 수 있다. 또한, 액티비티 시퀀스 생성 모듈(110)은 이벤트의 식별 순서에 기초하여, 액티비티 시퀀스를 생성할 수 있다. 액티비티 시퀀스 생성 모듈(110)과 관련된 보다 구체적인 설명을 위해 도 3을 참조하여 설명하기로 한다.
도 3에 도시된 바와 같이, 액티비티 시퀀스 생성 모듈(110)은 로그(10)로부터 이벤트를 식별하여, 이벤트의 식별 순서에 기초하여, 액티비티 시퀀스(20)를 생성할 수 있다. 도 3에는 액티비티 시퀀스 생성 모듈(110)에 로그 파싱 모듈(111) 및 액티비티 키 결정 모듈(112)이 포함된 것을 도시하고 있으나, 도 3에 도시된 일부 구성 요소가 생략되거나 다른 범용적인 구성 요소가 추가될 수 있음을 유의해야 한다. 추후 설명될 도 4 내지 도 6에서도 도 3과 마찬가지로, 각각의 도면에 도시된 일부 구성 요소가 생략되거나 다른 범용적인 구성 요소가 추가될 수 있음을 유의해야 한다.
도 3에 도시된 로그 파싱 모듈(111)은, 로그(10)를 파싱(parsing)할 수 있다. 여기서, 파싱이란 로그를 이루고 있는 구성 성분을 분해하고, 각 구성 성분의 관계를 정의하여 로그를 분석하는 행위를 의미할 수 있다. 예를 들어, 파싱은 일련의 로그에 관한 문자열을 의미있는 토큰으로 분석하는 행위를 의미할 수 있다.
로그의 파싱과 관련된 보다 구체적인 설명을 위해 도 14를 참조하여 설명하기로 한다. 도 14에는 '작업 표시줄의 Internet Explorer 바로 가기를 클릭'이라는 이벤트를 수행하여 발생된 로그를 파싱한 일례가 도시된다. 여기서, 기준 항목인 'Application_ProcessName'에 매핑된 데이터는 'explorer'이고, 기준 항목인 'Target_TimeStamp'에 매핑된 데이터는 '05/19/2020 09:20:15'이고, 기준 항목인 'Mouse_point'에 매핑된 데이터는 '35, 32'이다. 이처럼 로그를 통해, 다양한 데이터를 파싱할 수 있다.
로그의 파싱과 관련하여, 몇몇 실시예에서는, 로그 파싱 모듈(111)이 기준 항목 중 적어도 일부(e.g., 식별성 기준 항목)에 매핑된 데이터를 이용하여, 이벤트를 식별할 수 있다. 구체적으로, 기준 항목은 이벤트를 식별할 수 있는 기준 항목과 이벤트를 식별할 수 없는 기준 항목으로 구분될 수 있다. 도 14에 도시된 바와 같이, 'Application_ProcessName' 기준 항목은 '작업 표시줄의 Internet Explorer 바로 가기를 클릭'하는 동일한 이벤트를 수행할 때마다 동일하게 'explorer'로 매핑될 것이므로, 이벤트를 식별할 수 있는 식별성 기준 항목(11)일 수 있다. 이에 반해, 'Target_TimeStamp'나 'Mouse_point' 기준 항목은 '작업 표시줄의 Internet Explorer 바로 가기를 클릭'하는 동일한 이벤트를 수행하더라도 수행 시마다 서로 다르게 매핑될 수 있으므로, 이벤트를 식별할 수 없는 비식별성 기준 항목(12, 13)이다. 즉, 로그 파싱 모듈(111)은 이벤트에 대응되는 식별성 기준 항목(11)을 이용하여, 로그로부터 이벤트를 식별할 수 있다. 이러한, 로그 파싱 모듈(111)이 이벤트를 식별하기 위해, 이벤트와 식별성 기준 항목(11)의 대응 관계가 사전에 테이블의 형태로 저장되어 관리될 수 있다.
다시 도 3을 참조하여 설명하기로 한다.
도 3에 도시된 액티비티 키 결정 모듈(112)은, 파싱의 결과를 이용하여 이벤트에 대응되는 액티비티 키를 결정할 수 있다.
액티비티 키의 결정과 관련된 보다 구체적인 설명을 위해 도 15를 참조하여 설명하기로 한다.
도 15는 이벤트(i.e., 액티비티)와 액티비티 키의 대응 관계를 나타내는 이벤트 테이블(15)의 일례를 도시한다. 도 15에 도시된 바와 같이, 이벤트와 도 14에 도시된 식별성 기준 항목(11)의 대응 관계가 이벤트 테이블(15)에 함께 저장되어 관리될 수도 있다. 도 15에 도시된 일례에 따르면, '바탕 화면에서 휴지통 아이콘을 우클릭'하는 이벤트에 대응되는 액티비티 키는 'b'일 수 있고, '작업 표시줄의 Internet Explorer 바로 가기를 클릭'하는 이벤트에 대응되는 액티비티 키는 'c'일 수 있다. 도 15에 도시되지 않은 예시들에서도, 이벤트와 액티비티 키의 대응 관계에 따라 액티비티 키가 결정될 수 있음을 유의해야 한다.
또한, 액티비티 키 결정 모듈(112)은, 액티비티 키를 이벤트의 식별 순서에 따라 나열하여, 액티비티 시퀀스를 생성할 수 있다. 도 15에 도시된 일례에 따르면, '바탕 화면에서 휴지통 아이콘을 우클릭'하는 이벤트와 '작업 표시줄의 Internet Explorer 바로 가기를 클릭'하는 이벤트가 연이어 로그에 기록되면, 로그에 대응되는 액티비티 시퀀스는 {b, c}로 생성될 수 있다.
즉, 액티비티 키 결정 모듈(112)은 식별된 이벤트와 대응되는 액티비티 키를 이벤트의 식별 순서에 따라 문자열로 나열함으로써, 액티비티 시퀀스를 생성할 수 있다. 이렇게 생성된 액티비티 시퀀스는, 사용자가 업무를 수행하는 과정에서 발생한 일련의 이벤트들이 문자열의 형태로 추상화된 것으로 이해될 수 있다.
다시 도 2를 참조하여 설명하기로 한다.
다음으로, 트레이스 추출 모듈(120)은 액티비티 시퀀스의 패턴 분석에 기초하여, 액티비티 시퀀스로부터 트레이스를 추출할 수 있다. 여기서, 트레이스는, 액티비티 시퀀스에 포함된 일부 문자가 제거된 문자열을 의미할 수 있으며, 업무와 관련성이 낮은 노이즈 이벤트에 대응되는 액티비티 키가 액티비티 시퀀스에서 제거되는 것이 바람직할 수 있다. 트레이스 추출 모듈(120)과 관련된 보다 구체적인 설명을 위해 도 4를 참조하여 설명하기로 한다.
도 4에 도시된 바와 같이, 공통 패턴 탐색 모듈(121)은 액티비티 시퀀스(20)의 공통 패턴을 결정하기 위해, 복수의 액티비티 시퀀스를 이용할 수 있다. 여기서, 공통 패턴 탐색 모듈(121)은 액티비티 시퀀스를 기준 길이로 분리함으로써, 복수의 액티비티 시퀀스를 획득할 수 있다. 예를 들어, 로그를 이용한 액티비티 시퀀스의 생성 결과 144개의 문자를 포함하는 문자열이 생성된 경우, 12개의 문자열 단위로 액티비티 시퀀스를 분리할 수 있다. 이 경우, 12개의 액티비티 시퀀스가 생성됨을 이해할 수 있다. 이외에도 공통 패턴 탐색 모듈(121)이 복수의 액티비티 시퀀스를 획득하기 위한 공지된 다양한 방법이 본 개시의 범위에 포함될 수 있으며, 예를 들어, 공통 패턴 탐색 모듈(121)이 미리 저장된 액티비티 시퀀스를 획득하거나 복수의 사용자로부터 수집된 로그가 변환된 액티비티 시퀀스를 획득할 수도 있다.
또한, 공통 패턴 탐색 모듈(121)은 복수의 액티비티 시퀀스로부터 공통 패턴을 결정할 수 있다. 구체적으로, 공통 패턴 탐색 모듈(121)은 복수의 액티비티 시퀀스의 최장 공통 부분 시퀀스(LCS, Longest Common Subsequence)를 결정할 수 있다. 이와 관련된 구체적인 설명을 위해 도 16을 참조하여 설명하기로 한다.
도 16은, 길이 12를 갖는 3개의 액티비티 시퀀스 사이에서 결정된 최장 공통 부분 시퀀스(25a, 25b, 25c, 25d, 25e, 25f)의 일례들을 정리한 표(25)를 도시한다. 여기서, 표(25)를 참조하면, 제1열의 액티비티 시퀀스와 제2열 및 제3열의 액티비티 시퀀스 각각의 최장 공통 부분 시퀀스가 결정됨을 이해할 수 있으며, 3개의 액티비티 시퀀스를 이용하면, 6개의 최장 공통 부분 시퀀스(25a, 25b, 25c, 25d, 25e, 25f)가 결정됨을 이해할 수 있다. 도 16에 도시된 바와 같이, 최장 공통 부분 시퀀스를 결정하기 위한 공지된 모든 알고리즘이 본 개시에 적용될 수 있음을 유의해야 하며, 본 발명의 논지를 흐리지 않기 위해, 최장 공통 부분 시퀀스를 결정하는 알고리즘에 대한 자세한 설명은 생략하기로 한다.
또한, 공통 패턴 탐색 모듈(121)은 최장 공통 부분 시퀀스에 포함된 복수의 최소 패턴 각각의 빈도를 산출할 수 있다. 여기서, 최소 패턴은 최장 공통 부분 시퀀스에 포함된 길이가 2 인 문자열을 의미할 수 있다. 다만, 최소 패턴의 길이는 2 와 달리 얼마든지 달라질 수 있으나, 개별적으로 분리되어 있는 문자를 공통 패턴에서 제외하고, 다양한 최장 공통 부분 시퀀스에서 중복되는 공통 패턴을 탐색하기 위해 최소 패턴의 길이는 2가 바람직할 수 있다. 이와 관련된 구체적인 설명을 위해 도 17을 참조하여 설명하기로 한다.
도 17에는, 최장 공통 부분 시퀀스(27) 및 최장 공통 부분 시퀀스(27)에 대응되는 최소 패턴의 빈도 산출 표(35)의 일례를 도시한다. 도 17에 도시된 3 개의 최장 공통 부분 시퀀스(27)로부터, 중복을 허용하여 연속된 길이가 2 인 문자열을 선택하면, 최소 패턴의 빈도 산출 표(35)에 기재된 바와 같다. 구체적으로, 최장 공통 부분 시퀀스(27)가 {_h_abcd_eceg}인 경우, 'h'는 개별적으로 분리되어 있으므로 최소 패턴을 형성할 수 없으며, 중복을 허용하여, {ab}, {bc}. {cd}, {ec}, {ce} 및 {eg}가 선택될 수 있다. 이렇게 최장 공통 부분 시퀀스(27)마다 최소 패턴이 선택되어 그 빈도가 산출될 수 있다.
또한, 공통 패턴 탐색 모듈(121)은 복수의 최소 패턴 각각의 빈도 및 복수의 최소 패턴 사이의 겹침 여부에 기초하여, 공통 패턴을 결정할 수 있다. 구체적으로, 빈도가 임계치 이상인 최소 패턴이 결정될 수 있다. 여기서, 임계치는 본 개시가 적용될 수 있는 다양한 환경에서 얼마든지 변형되어 적용될 수 있음을 유의해야 한다. 또한, 빈도가 임계치 이상인 최소 패턴이라도 다른 최소 패턴과 겹침이 발생하는 경우, 빈도가 더 높은 최소 패턴이 공통 패턴으로 결정될 수 있다. 만약, 빈도가 동일한 경우, 겹침이 발생하는 최소 패턴들 중 어느 하나가 무작위로 선택될 수 있다. 다만, 다수의 액티비티 시퀀스에서 공통 패턴을 탐색해야 되는 환경이라면, 최소 패턴의 빈도가 동일한 경우는 극히 희박한 경우일 수 있다.
도 17에 도시된 예시에 따라 설명하면, 임계치가 2 이상인 빈도를 갖는 최소 패턴을 공통 패턴으로 결정하면, 우선, {ab}, {bc}, {cd}, {ce} 및 {eg}가 공통 패턴으로 결정될 수 있다. 그러나 여기서, {ab}와 {bc}에 겹침이 발생하고, {ce}와 {eg}에 겹침 발생하므로, 겹침이 발생한 최소 패턴들 중 어느 하나를 선택해야 한다. 전자의 경우, 빈도 수가 높은 {ab}가 공통 패턴으로 결정될 수 있으며, 후자의 경우, 빈도 수가 동일하므로 무작위로 선택된 하나의 최소 패턴이 공통 패턴으로 결정될 수 있다. 따라서, {ab}, {cd}, {ce}가 공통 패턴으로 결정될 수 있다.
공통 패턴과 관련하여, 몇몇 실시예에서는, 공통 패턴 탐색 모듈(121)이 공통 패턴에 포함된 최소 패턴을 재구성할 수 있다. 도 17에 도시된 예시에 따라 설명하면, 공통 패턴인 {ab}에 {cd}가 기준 횟수 이상 후행하는 경우, 공통 패턴을 {abcd}로 재구성할 수 있다. 여기서, 기준 횟수는 본 개시가 적용될 수 있는 다양한 환경에서 얼마든지 변형되어 적용될 수 있음을 유의해야 한다. 본 실시예에 따르면, 액티비티 키의 연결 관계가 강한, 다시 말하면 노이즈 이벤트에 대응되는 액티비티 키가 포함되지 않은, 트레이스가 추출될 수 있다.
도 4에 도시된 공통 패턴 탐색 모듈(121)은, 결정된 공통 패턴에 대응되도록 액티비티 시퀀스에서 트레이스(30)를 추출할 수 있다. 예를 들어, 공통 패턴에 포함되지 않은 액티비티 시퀀스의 문자를 디폴트(default) 문자로 치환할 수 있다. 이와 관련된 구체적인 설명을 위해 도 16 및 도 17을 참조하여 설명하기로 한다. 도 16에는 최장 공통 부분 시퀀스(25a, 25b, 25c, 25d, 25e, 25f)의 일부 문자가 디폴트 문자(_)로 치환된 일례를 도시하고 있고, 도 17에는 공통 패턴에 포함되지 않은 문자가 디폴트 문자(_)로 치환된 트레이스(37)의 일례를 도시하고 있다. 본 실시예에 따르면, 노이즈 이벤트에 대응되는 액티비티 키의 존재 위치를 식별할 수 있다.
공통 패턴 탐색 모듈(121)과 관련하여, 몇몇 실시예에서는, 공통 패턴 탐색 모듈(121)이 액티비티 시퀀스의 기준 길이를 변경하거나 최소 패턴의 길이를 변경함으로써, 누락될 수 있는 공통 패턴을 보완할 수도 있다. 본 실시예에 따르면, 패턴의 누락 없이 액티비티 시퀀스에서 자주 반복되는 패턴이 식별될 수 있다.
지금까지 설명된 도 4의 공통 패턴 탐색 모듈(121)은, 액티비티 시퀀스(20)에서 자주 반복되는 패턴(i.e., 공통 패턴)을 식별하여 트레이스(30)로 추출함으로써, 액티비티 시퀀스에서 노이즈 이벤트에 대응되는 액티비티 키를 제거할 수 있다. 특히, 최소 패턴을 이용하여 분석함으로써, 인접된 액티비티 키 사이의 관계를 고려하여 효율적으로 노이즈 이벤트에 대응되는 액티비티 키를 제거할 수 있다.
다시 도 2를 참조하여 설명하기로 한다.
다음으로, 단위 업무 식별 모듈(130)은 트레이스에 대응되는 단위 업무를 식별할 수 있다. 단위 업무 식별 모듈(130)과 관련된 보다 구체적인 설명을 위해 도 5를 참조하여 설명하기로 한다.
도 5에 도시된 바와 같이, 클러스터링 모듈(131)은 추출된 복수의 트레이스를 클러스터링하여, 어느 하나의 트레이스(30)에 대응되는 단위 업무(40)를 식별할 수 있다. 여기서, 클러스터링 모듈(131)은 클러스터링의 결과를 이용하여, 어느 하나의 트레이스(30)에 대응되는 단위 업무 클러스터를 식별하고, 단위 업무 클러스터에 대응되는 단위 업무(40)를 식별함으로써, 어느 하나의 트레이스(30)에 대응되는 단위 업무(40)를 식별할 수 있다. 이때, 단위 업무 클러스터는, 동일한 단위 업무에 대응되는 트레이스들의 집합을 의미할 수 있다.
클러스터링 모듈(131)과 관련하여, 몇몇 실시예에서는, 클러스터링 모듈(131)이 복수의 트레이스 사이의 시퀀스 유사도에 기초하여, 복수의 트레이스를 클러스터링할 수 있다. 예를 들어, 편집 거리를 이용한 알고리즘 또는 해밍(Hamming) 거리를 이용한 알고리즘이 이용되어, 시퀀스의 유사도가 산출될 수 있다. 본 실시예에 따르면, 동일한 단위 업무에 대응됨에 따라 서로 유사한 액티비티 키를 포함하는 트레이스들이, 하나의 클러스터로 클러스터링될 수 있다.
다시 도 2를 참조하여 설명하기로 한다.
다음으로, 반복 업무 결정 모듈(140)은 제1 단위 업무와 논리적 연결 관계를 갖는 다른 단위 업무인 제2 단위 업무를 식별하고, 적어도 제1 단위 업무와 제2 단위 업무를 포함하는 반복 업무를 결정할 수 있다. 이와 관련된 구체적인 설명을 위해 도 6을 참조하여 설명하기로 한다.
도 6에 도시된 논리적 연결 관계 판정 모듈(141)은, 복수의 단위 업무(45) 중 논리적 연결 관계를 갖는 복수의 단위 업무를 식별하고, 반복 업무(50)를 결정할 수 있다.
구체적으로, 논리적 연결 관계 판정 모듈(141)은 로그에서, 제1 단위 업무에 기준 횟수 이상 선행하는 단위 업무를 제2 단위 업무로 식별하거나 제1 단위 업무에 기준 횟수 이상 후행하는 단위 업무를 제2 단위 업무로 식별할 수 있다. 도 18을 참조하여 보다 구체적으로 설명하기로 한다. 여기서, 기준 횟수는 논리적 연결 관계 판정 모듈(141)이 적용될 수 있는 다양한 환경에 따라 얼마든지 변형될 수 있다.
도 18은 액티비티 시퀀스를 트레이스 단위로 변환한 일례를 도시한다. 여기서, 'A1', 'A2' 및 'A3'는 단위 업무 A에 대응되는 트레이스들이고, 'B1', 'B2' 및 'B3'는 단위 업무 B에 대응되는 트레이스들이고, 'C1', 'C2' 및 'C3'는 단위 업무 C에 대응되는 트레이스들이고, 'E'는 트레이스에 포함되지 않은 노이즈 이벤트에 대응되는 액티비티 키들이다. 즉, 액티비티 시퀀스(39a)에서 노이즈 이벤트에 대응되는 액티비티 키를 제거한 유효 시퀀스(39b)를 기준으로, 단위 업무 사이의 논리적 연결 관계를 식별할 수 있다. 도 18에 도시된 일례에 따르면, 단위 업무 B는 항상 단위 업무 A에 후행하므로, 논리적 연결 관계 판정 모듈(141)은 단위 업무 A와 단위 업무 B는 논리적 연결 관계를 가진다고 판정할 수 있다. 이 경우, 단위 업무 A와 단위 업무 B를 제1 반복 업무로 결정할 수 있다. 이에 반해, 단위 업무 A 및/또는 단위 업무 B와 논리적 연결 관계를 가지지 않는 단위 업무 C는 반복 업무에 포함되지 않을 수 있다.
지금까지 설명된 논리적 연결 관계 판정 모듈(141)에 따르면, 복수의 단위 업무(45) 중 논리적 연결 관계를 갖는 복수의 단위 업무를 식별함으로써, 단위 업무를 상위 계층화한 반복 업무를 결정할 수 있다. 이처럼 논리적 연결 관계를 갖는 복수의 단위 업무는, RPA 전환 시 함께 봇에 의해 수행되는 것이 적절할 수 있으므로, 하나의 반복 업무로 결정되는 것이 바람직할 수 있다.
다시 도 2를 참조하여 설명하기로 한다.
다음으로, 프로세스 그래프 생성 모듈(150)은 단위 업무를 포함하는 반복 업무의 프로세스 그래프를 생성할 수 있다. 여기서, 프로세스 그래프 생성 모듈(150)이 프로세스 그래프를 생성하는 동작에는, 예를 들어, 'alpha miner' 및 'heuristics flexible miner' 등의 공지된 모든 프로세스 마이닝 기술이 적용될 수 있다.
다음으로, 프로세스 그래프 생성 모듈(150)이 생성한 프로세스 그래프를 사용자 단말에 전송할 수 있다. 또한, 프로세스 그래프 생성 모듈(150)은, 프로세스 그래프를 사용자 단말에 전송하는 외에도 도 1에 도시된 환경의 각 구성 요소와 다양한 데이터를 송수신할 수도 있다.
이하, 프로세스 그래프 생성 모듈(150)과 관련하여, 본 개시의 다양한 실시예들에 대해 설명하기로 한다.
프로세스 그래프 생성 모듈(150)과 관련하여, 몇몇 실시예에서는, 프로세스 그래프 생성 모듈(150)이 반복 업무에 포함되는 복수의 단위 업무가 표시되는 제1 프로세스 그래프를 생성할 수 있다. 이와 관련된 구체적인 설명을 위해 도 19를 참조하여 설명하기로 한다. 도 19에 도시된 바와 같이, 제1 단위 업무(41)인 '단위 업무 A'와 제2 단위 업무(43)인 '단위 업무 B'가 표시되도록 제1 프로세스 그래프(60)가 생성될 수 있다. 본 실시예에 따르면, 반복 업무를 구성하는 단위 업무를 직관적으로 이해할 수 있는 제1 프로세스 그래프가 사용자에게 제공될 수 있다. 사용자는 RPA 전환의 대상이 될 반복 업무를 구성하는 단위 업무를 쉽게 파악할 수 있다.
프로세스 그래프 생성 모듈(150)과 관련하여, 다른 몇몇 실시예에서는, 프로세스 그래프 생성 모듈(150)이 단위 업무에 포함되는 복수의 트레이스가 표시되는 제2 프로세스 그래프를 생성할 수 있다. 이와 관련된 구체적인 설명을 위해 도 20 및 도 21을 참조하여 설명하기로 한다.
도 20은 제1 트레이스(31a) 및 제2 트레이스(31b)의 일례를 도시한다. 또한, 도 20은 제1 트레이스(31a) 및 제2 트레이스(31b)에 서열 정렬 알고리즘을 적용한 표(31)의 일례를 도시한다. 여기서, 복수의 트레이스(31a, 31b)의 서열 정렬을 위해, 예를 들어, 'Clustal W'와 같은 공지된 모든 서열 정렬 알고리즘이 본 개시에 적용될 수 있다. 서열 정렬 알고리즘을 적용한 표(31)에서, 서열이 공통되는 {a, b, d, e}는 공통 노드로 결정되고, 공통 노드 외의 다른 노드는 개별 노드로 결정됨을 이해할 수 있다. 도 21은 도 20에 도시된 서열 정렬 알고리즘을 적용한 표(31)에 기초하여, 복수의 트레이스(31a, 31b)가 표시되는 제2 프로세스 그래프(70)의 일례를 도시한다. 도 20에 따르면, 하나의 단위 업무에 포함된 제1 트레이스와 제2 트레이스의 공통 노드(70a)가 결정될 수 있고, 공통 노드(70a)와 개별 노드(70b)가 제1 트레이스와 제2 트레이스 각각의 문자열의 순서에 기초하여, 간선(70b, 70c)으로 연결될 수 있다.
지금까지 설명된 프로세스 그래프 생성 모듈(150)의 제2 프로세스의 생성과 관련된 실시예에 따르면, 하나의 단위 업무에 대응되는 복수의 트레이스가 표시된 제2 프로세스 그래프를 신속하게 생성할 수 있다. 또한, 제2 프로세스 그래프가 신속하게 생성됨에 따라, 단위 업무를 구성하는 트레이스를 직관적으로 이해할 수 있는 제2 프로세스 그래프가 사용자에게 제공될 수 있다. 사용자는 RPA 전환의 대상이 될 단위 업무를 구성하는 트레이스를 쉽게 파악할 수 있다.
다시 도 2를 참조하여 설명하기로 한다.
다음으로, 프로세스 그래프 수정 모듈(170)은 반복 업무의 프로세스 그래프에 대한 수정 입력에 응답하여, 프로세스 그래프를 수정할 수 있다. 여기서, 프로세스 그래프 수정 모듈(170)은 수정 프로세스 그래프를 사용자 단말에 전송할 수도 있다.
구체적인 예를 들어 프로세스 그래프 수정 모듈(170)이 수행하는 동작을 설명하면, 프로세스 그래프 수정 모듈(170)은 사용자의 액티비티 키 삭제 입력에 응답하여, 프로세스 그래프에 표시된 특정 액티비티 키를 삭제할 수 있다. 다른 예를 들어, 프로세스 그래프 수정 모듈(170)은 사용자의 액티비티 키 추가 입력에 응답하여, 프로세스 그래프에 표시된 특정 트레이스에 사용자가 입력한 액티비티 키를 추가할 수 있다. 여기서, 사용자 단말을 통하여 사용자로부터 수신된 입력을 프로세스 그래프에 반영하기 위한 모든 공지된 사용자 인터페이스(UI, User Interface) 기술이 본 개시의 프로세스 그래프 수정 모듈(170)에 적용될 수 있음을 유의해야 한다.
프로세스 그래프 수정 모듈(170)과 관련하여, 몇몇 실시예에서는, 프로세스 그래프 수정 모듈(170)이 트레이스에 누락된 추천 액티비티 키를 결정할 수 있고, 추천 액티비티 키가 프로세스 그래프에 표시되도록, 수정 프로세스 그래프를 사용자 단말에 전송할 수 있다. 여기서, 프로세스 그래프 수정 모듈(170)이 트레이스에 누락된 추천 액티비티 키를 결정하기 위해, 트레이스로부터 기준 거리 이내에 위치한 횟수가 최다인 액티비티 키가 추천 액티비티 키로 결정될 수 있다. 본 실시예에 따르면, 트레이스에 누락된 액티비티 키 중 트레이스와 기준 거리 이내에 함께 위치한 횟수가 최다인 액티비티 키가 추천 액티비티 키로 결정됨으로써, 트레이스의 확장에 적절한 액티비티 키가 추천될 수 있다.
추천 액티비티 키의 결정과 관련된 몇몇 실시예를 보다 구체적으로 설명하기 위해 도 22 및 도 23을 참조하기로 한다. 도 22는 트레이스에서 누락된 액티비티 시퀀스의 일부를 나타내는 누락 시퀀스(85)의 일례를 도시한다. 만약, 누락 시퀀스(85)가 트레이스의 시작 액티비티 키 근처에 위치한 문자열이라면, 이벤트의 식별 순서의 역순으로 문자열이 표시될 수 있다. 구체적으로, 누락 시퀀스(85)가 트레이스의 시작 액티비티 키 근처에 위치한 문자열이라면, 누락 시퀀스 표(80)에 기재된 누락 시퀀스(85)의 역순이 이벤트의 식별 순서이므로, 누락 시퀀스(85)의 제1열(e.g., a, b, a, a)가 트레이스의 시작 액티비티 키 바로 근처의 액티비티 키를 의미할 수 있다. 반대로, 누락 시퀀스(85)가 트레이스의 종료 액티비티 키 근처에 위치한 문자열이라면, 이벤트의 식별 순서로 문자열이 표시될 수 있다. 구체적으로, 누락 시퀀스(85)가 트레이스의 종료 액티비티 키 근처에 위치한 문자열이라면, 누락 시퀀스 표(80)에 기재된 누락 시퀀스(85) 순서가 이벤트의 식별 순서이므로, 누락 시퀀스(85)의 제1열(e.g., a, b, a, a)이 트레이스의 종료 액티비티 키 바로 근처의 액티비티 키를 의미할 수 있다.
도 23에 도시된 바와 같이, 누락 시퀀스(85)에 포함된 각각의 액티비티 키의 인덱스 및 스코어가 산출될 수 있다. 도 23에 도시된 인덱스 및 스코어 표(90)를 참조하면, 누락 시퀀스(85)의 제1열에 위치할수록 스코어가 낮게 산출됨을 이해할 수 있다. 여기서, 액티비티 키 중 특정 누락 시퀀스(85)에 포함되지 않는 액티비티 키의 인덱스는 {0}으로 표시되고, 스코어 산출 시, 인덱스의 중간 값인 {2}로 산출됨을 이해할 수 있다.
지금까지 도 22 및 도 23을 참조하여 설명한 추천 액티비티 키의 결정 동작은, 트레이스의 시작 액티비티 키 또는 트레이스의 종료 액티비티 키 근처에 자주 위치한 액티비티 키를 결정하기 위한 동작으로 이해될 수 있다. 본 실시예에 따르면, 추천 액티비티 키를 이용한 트레이스의 확장을 통해 프로스세 그래프를 수정할 수 있다.
한편, 도 2 내지 도 6에 도시된 각 구성 요소는 소프트웨어(Software) 또는, FPGA(Field Programmable Gate Array)나 ASIC(Application-Specific Integrated Circuit)과 같은 하드웨어(Hardware)를 의미할 수 있다. 그렇지만, 상기 구성 요소들은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, 어드레싱(Addressing)할 수 있는 저장 매체에 있도록 구성될 수도 있고, 하나 또는 그 이상의 프로세서들을 실행시키도록 구성될 수도 있다. 상기 구성 요소들 안에서 제공되는 기능은 더 세분화된 구성 요소에 의하여 구현될 수 있으며, 복수의 구성 요소들을 합하여 특정한 기능을 수행하는 하나의 구성 요소로 구현될 수도 있다.
지금까지 도 2 내지 도 6 및 관련 예시 도면들을 참조하여 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 장치(100)의 구성 및 동작에 대하여 설명하였다. 이하에서는, 본 개시의 다양한 실시예에 따른 방법들에 대하여 상세하게 설명하도록 한다.
상기 방법들의 각 단계는 컴퓨팅 장치에 의해 수행될 수 있다. 다시 말하면, 상기 방법들의 각 단계는 컴퓨팅 장치의 프로세서에 의해 실행되는 하나 이상의 인스트럭션들로 구현될 수 있다. 상기 방법들에 포함되는 모든 단계는 하나의 물리적인 컴퓨팅 장치에 의하여 실행될 수도 있을 것이나, 상기 방법의 제1 단계들은 제1 컴퓨팅 장치에 의하여 수행되고, 상기 방법의 제2 단계들은 제2 컴퓨팅 장치에 의하여 수행될 수도 있다. 이하에서는, 상기 방법들의 각 단계가 도 1에 예시된 업무 프로세스 추출 장치(100)에 의해 수행되는 것을 가정하여 설명을 이어가도록 한다. 다만, 설명의 편의상, 상기 방법들에 포함되는 각 단계의 동작 주체는 그 기재가 생략될 수도 있다.
도 7은 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 방법을 나타내는 예시적인 순서도이다.
도 7을 참조하면, 단계 S100에서 로그로부터 이벤트가 식별될 수 있고, 단계 S200에서 이벤트의 식별 순서에 기초하여 액티비티 시퀀스가 생성될 수 있다. 이와 관련하여 도 8을 참조하면, 단계 S110에서 로그가 파싱될 수 있고, 단계 S210에서 이벤트에 대응되는 액티비티 키가 결정될 수 있으며, 단계 S220에서 이벤트의 식별 순서에 기초하여 액티비티 키가 나열될 수 있다. 지금까지 설명된 단계들에 대한 구체적인 설명은 앞서 도 2에 도시된 액티비티 시퀀스 생성 모듈(110)에 관한 설명을 참조하면 이해될 수 있을 것이다.
다시 도 7을 참조하면, 단계 S300에서 액티비티 시퀀스의 패턴 분석에 기초하여 트레이스가 추출될 수 있다. 이와 관련하여 도 9를 참조하면, 단계 S310에서 복수의 액티비티 시퀀스의 공통 패턴이 결정될 수 있고, 단계 S320에서 공통 패턴에 대응되도록, 트레이스가 추출될 수 있다. 단계 S310과 관련하여 도 10을 참조하면, 단계 S311에서 최장 공통 부분 시퀀스가 결정될 수 있고, 단계 S312에서 최장 공통 부분 시퀀스에 포함된 최소 패턴 각각의 빈도가 산출될 수 있고, 단계 S313에서 빈도 및 겹침 여부에 기초하여, 공통 패턴이 결정될 수 있다. 지금까지 설명된 단계들에 대한 구체적인 설명은 앞서 도 2에 도시된 트레이스 추출 모듈(120)에 관한 설명을 참조하면 이해될 수 있을 것이다.
다시 도 7을 참조하면, 단계 S400에서 트레이스에 대응되는 단위 업무가 식별될 수 있다. 이와 관련하여 도 11을 참조하면, 단계 S410에서 복수의 트레이스가 클러스터링될 수 있고, 단계 S420에서 클러스터링의 결과를 이용하여, 트레이스에 대응되는 단위 업무가 식별될 수 있다. 지금까지 설명된 단계들에 대한 구체적인 설명은 앞서 도 2에 도시된 단위 업무 식별 모듈(130)에 관한 설명을 참조하면 이해될 수 있을 것이다.
다시 도 7을 참조하면, 단계 S500에서 적어도 하나의 단위 업무를 포함하는 반복 업무가 결정될 수 있다. 이와 관련된 구체적인 설명은 앞서 도 2에 도시된 반복 업무 결정 모듈(140)에 관한 설명을 참조하면 이해될 수 있을 것이다.
다음으로, 단계 S600에서 반복 업무의 프로세스 그래프가 생성될 수 있고, 사용자 단말에 전송될 수 있다. 이와 관련하여 도 12를 참조하면, 단계 S610에서 복수의 단위 업무가 표시되는 제1 프로세스 그래프가 사용자 단말에 전송될 수 있고, 단계 S620에서 복수의 트레이스가 표시되는 제2 프로세스 그래프가 사용자 단말에 전송될 수 있다. 단계 S620과 관련하여 도 13을 참조하면, 단계 S621에서 단위 업무에 대응되는 트레이스 사이의 공통 노드가 결정될 수 있고, 단계 S622에서 공통 노드와 개별 노드가 간선으로 연결될 수 있다. 지금까지 설명된 단계들에 대한 구체적인 설명은 앞서 도 2에 도시된 프로세스 그래프 생성 모듈(150) 및 프로세스 그래프 전송 모듈(160)에 관한 설명을 참조하면 이해될 수 있을 것이다.
다시 도 7을 참조하면, 단계 S700에서 수정 입력에 응답하여, 수정 프로세스 그래프가 생성될 수 있고, 사용자 단말에 전송될 수 있다. 이와 관련된 구체적인 설명은 앞서 도 2에 도시된 프로세스 그래프 수정 모듈(170)에 관한 설명을 참조하면 이해될 수 있을 것이다.
지금까지 도 7 내지 도 12를 참조하여 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 방법에 대하여 설명하였다. 상술한 방법에 따르면, RPA가 적용되어 자동화될 반복 업무를 동적으로 발굴할 수 있다. 특히, RPA가 적용되어 자동화될 반복 업무를 프로세스 그래프의 형태로 사용자에게 제공됨으로써, 사용자는 보다 직관적으로 반복 업무를 파악할 수 있다.
이하, 도 24를 참조하여 본 개시의 몇몇 실시예에 따른 업무 프로세스 추출 장치를 구현할 수 있는 예시적인 컴퓨팅 장치(1500)를 보다 구체적으로 설명하기로 한다.
컴퓨팅 장치(1500)는 하나 이상의 프로세서(1510), 버스(1550), 통신 인터페이스(1570), 프로세서(1510)에 의하여 수행되는 컴퓨터 프로그램(1591)을 로드(load)하는 메모리(1530)와, 컴퓨터 프로그램(1591)을 저장하는 스토리지(1590)를 포함할 수 있다. 다만, 도 24에는 본 개시의 실시예와 관련 있는 구성 요소들 만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 24에 도시된 구성 요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(1510)는 컴퓨팅 장치(1500)의 각 구성의 전반적인 동작을 제어한다. 프로세서(1510)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(1510)는 본 개시의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(1500)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(1530)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1530)는 본 개시의 실시예들에 따른 방법을 실행하기 위하여 스토리지(1590)로부터 하나 이상의 프로그램(1591)을 로드 할 수 있다. 메모리(1530)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(1550)는 컴퓨팅 장치(1500)의 구성 요소 간 통신 기능을 제공한다. 버스(1550)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(1570)는 컴퓨팅 장치(1500)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(1570)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(1570)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다.
몇몇 실시예들에 따르면, 통신 인터페이스(1570)는 생략될 수도 있다.
스토리지(1590)는 상기 하나 이상의 프로그램(1591)과 각종 데이터를 비임시적으로 저장할 수 있다.
스토리지(1590)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(1591)은 메모리(1530)에 로드 될 때 프로세서(1510)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(1510)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.
지금까지 도 1 내지 도 24를 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 명세서의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 24을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (15)

  1. 컴퓨팅 장치에 의해 수행되는 방법에 있어서,
    로그(log)로부터 제1 이벤트를 식별하는 단계;
    상기 제1 이벤트의 식별 순서에 기초하여, 제1 액티비티 시퀀스를 생성하는 단계;
    상기 제1 액티비티 시퀀스의 패턴 분석에 기초하여, 제1 트레이스를 추출하는 단계 - 상기 제1 트레이스는, 상기 제1 액티비티 시퀀스의 일부 문자열임 - ;
    상기 제1 트레이스에 대응되는 제1 단위 업무를 식별하는 단계 - 상기 제1 단위 업무는, 상기 제1 이벤트를 포함하는 반복 업무의 기본 단위임 - ; 및
    상기 제1 단위 업무를 포함하는 반복 업무의 프로세스 그래프를 사용자 단말에 전송하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  2. 제1항에 있어서,
    상기 제1 이벤트를 식별하는 단계는,
    상기 로그를 파싱(parsing)하는 단계를 포함하고,
    상기 제1 액티비티 시퀀스를 생성하는 단계는,
    상기 파싱의 결과를 이용하여, 상기 제1 이벤트에 대응되는 제1 액티비티 키를 결정하는 단계 - 상기 제1 액티비티 키는 상기 제1 이벤트에 대응되는 문자임 - ; 및
    상기 제1 액티비티 키를 상기 제1 이벤트의 식별 순서에 따라 나열하여, 상기 제1 액티비티 시퀀스를 생성하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  3. 제1항에 있어서,
    상기 제1 트레이스를 추출하는 단계는,
    상기 제1 액티비티 시퀀스를 포함하는 복수의 액티비티 시퀀스의 공통 패턴을 결정하는 단계; 및
    상기 공통 패턴에 대응되도록, 상기 제1 액티비티 시퀀스의 일부 문자열을 상기 제1 트레이스로 추출하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  4. 제3항에 있어서,
    상기 공통 패턴을 결정하는 단계는,
    상기 복수의 액티비티 시퀀스의 최장 공통 부분 시퀀스(LCS, Longest Common Subsequence)를 결정하는 단계;
    상기 최장 공통 부분 시퀀스에 포함된 복수의 최소 패턴 각각의 빈도를 산출하는 단계 - 상기 최소 패턴은, 길이가 2인 문자열임 - ; 및
    상기 복수의 최소 패턴 각각의 빈도 및 상기 복수의 최소 패턴 사이의 겹침 여부에 기초하여, 상기 공통 패턴을 결정하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  5. 제3항에 있어서,
    상기 제1 액티비티 시퀀스의 일부 문자열을 상기 제1 트레이스로 추출하는 단계는,
    상기 공통 패턴에 포함되지 않은 문자를 디폴트(default) 문자로 치환하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  6. 제1항에 있어서,
    상기 제1 트레이스에 대응되는 제1 단위 업무를 식별하는 단계는,
    상기 제1 트레이스를 포함하는 복수의 트레이스를 클러스터링(clustering)하는 단계; 및
    상기 클러스터링의 결과를 이용하여, 상기 제1 트레이스에 대응되는 제1 단위 업무 클러스터를 식별하는 단계 - 상기 제1 단위 업무 클러스터는, 상기 제1 단위 업무에 대응되는 트레이스의 집합임 - 를 포함하는,
    업무 프로세스 추출 방법.
  7. 제6항에 있어서,
    상기 복수의 트레이스를 클러스터링하는 단계는,
    상기 복수의 트레이스 사이의 시퀀스 유사도에 기초하여, 상기 복수의 트레이스를 클러스터링하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  8. 제1항에 있어서,
    상기 제1 단위 업무와 논리적 연결 관계를 갖는 제2 단위 업무를 식별하는 단계; 및
    상기 제1 단위 업무 및 상기 제2 단위 업무를 포함하는 상기 반복 업무를 결정하는 단계를 더 포함하는,
    업무 프로세스 추출 방법.
  9. 제8항에 있어서,
    상기 제2 단위 업무를 식별하는 단계는,
    상기 제1 단위 업무에 기준 횟수 이상 선행하는 단위 업무를 상기 제2 단위 업무로 식별하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  10. 제8항에 있어서,
    상기 제2 단위 업무를 식별하는 단계는,
    상기 제1 단위 업무에 기준 횟수 이상 후행하는 단위 업무를 상기 제2 단위 업무로 식별하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  11. 제1항에 있어서,
    상기 반복 업무의 프로세스 그래프를 사용자 단말에 전송하는 단계는,
    상기 제1 단위 업무를 포함하는 복수의 단위 업무가 표시되는 제1 프로세스 그래프를 상기 사용자 단말에 전송하는 단계 - 상기 복수의 단위 업무는, 상기 반복 업무에 포함되는 단위 업무임 - ; 및
    상기 제1 단위 업무에 대응되는 복수의 트레이스가 표시되는 제2 프로세스 그래프를 상기 사용자 단말에 전송하는 단계 - 상기 복수의 트레이스는, 상기 제1 단위 업무에 대응되는 트레이스임 - 를 포함하는,
    업무 프로세스 추출 방법.
  12. 제11항에 있어서,
    상기 제2 프로세스 그래프를 상기 사용자 단말에 전송하는 단계는,
    상기 제1 트레이스 및 상기 복수의 트레이스에 포함된 제2 트레이스의 공통 노드를 결정하는 단계 - 상기 공통 노드는, 상기 제1 트레이스 및 상기 제2 트레이스 각각에 공통으로 포함된 액티비티 키임 - ; 및
    상기 제1 트레이스 및 상기 제2 트레이스 각각의 문자열의 순서에 기초하여, 상기 공통 노드에 포함되지 않은 개별 노드가 상기 공통 노드와 간선으로 연결되는 상기 제2 프로세스 그래프를 생성하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  13. 제1항에 있어서,
    상기 반복 업무의 프로세스 그래프에 대한 수정 입력에 응답하여, 상기 제1 트레이스에 누락된 추천 액티비티 키를 결정하는 단계; 및
    상기 추천 액티비티 키가 상기 프로세스 그래프에 표시되도록, 수정 프로세스 그래프를 상기 사용자 단말에 전송하는 단계를 더 포함하는,
    업무 프로세스 추출 방법.
  14. 제13항에 있어서,
    상기 추천 액티비티 키를 결정하는 단계는,
    상기 제1 트레이스와의 거리가 기준 거리 이내에 위치한 횟수가 최다인 액티비티 키를, 상기 추천 액티비티 키로 결정하는 단계를 포함하는,
    업무 프로세스 추출 방법.
  15. 프로세서;
    네트워크 인터페이스;
    메모리; 및
    상기 메모리에 로드(load)되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되,
    상기 컴퓨터 프로그램은,
    로그(log)로부터 제1 이벤트를 식별하는 인스트럭션(instruction);
    상기 제1 이벤트의 식별 순서에 기초하여, 제1 액티비티 시퀀스를 생성하는 인스트럭션;
    상기 제1 액티비티 시퀀스의 패턴 분석에 기초하여, 제1 트레이스를 추출하는 인스트럭션 - 상기 제1 트레이스는, 상기 제1 액티비티 시퀀스의 일부 문자열임 - ;
    상기 제1 트레이스에 대응되는 제1 단위 업무를 식별하는 인스트럭션 - 상기 제1 단위 업무는, 상기 제1 이벤트를 포함하는 반복 업무의 기본 단위임 - ; 및
    상기 제1 단위 업무를 포함하는 반복 업무의 프로세스 그래프를 사용자 단말에 전송하는 인스트럭션을 포함하는,
    업무 프로세스 추출 장치.
KR1020210147310A 2021-10-29 2021-10-29 로그 기반 업무 프로세스 추출 방법 및 그 장치 KR20230062243A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210147310A KR20230062243A (ko) 2021-10-29 2021-10-29 로그 기반 업무 프로세스 추출 방법 및 그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210147310A KR20230062243A (ko) 2021-10-29 2021-10-29 로그 기반 업무 프로세스 추출 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR20230062243A true KR20230062243A (ko) 2023-05-09

Family

ID=86409516

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210147310A KR20230062243A (ko) 2021-10-29 2021-10-29 로그 기반 업무 프로세스 추출 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR20230062243A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102160344B1 (ko) 2018-12-31 2020-09-25 주식회사 포스코아이씨티 로봇 프로세스 자동화 시스템 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102160344B1 (ko) 2018-12-31 2020-09-25 주식회사 포스코아이씨티 로봇 프로세스 자동화 시스템 및 방법

Similar Documents

Publication Publication Date Title
US10983660B2 (en) Software robots for programmatically controlling computer programs to perform tasks
US9152529B2 (en) Systems and methods for dynamically altering a user interface based on user interface actions
EP3472766A1 (en) Workflow visualization platform
CN108027721B (zh) 用于使用控件来配置通用程序的技术
CN106844181B (zh) 用于记录用户行为的方法、系统及移动终端
US11886895B2 (en) Enhanced target selection for robotic process automation
CN104216646A (zh) 基于手势创建应用程序的方法及装置
Tsao et al. SmartVNC: an effective remote computing solution for smartphones
US20160077831A1 (en) Accurate and performant code design using memoization
CN113688288A (zh) 数据关联分析方法、装置、计算机设备和存储介质
EP3635563B1 (en) Application analysis with flexible post-processing
CN113626017A (zh) 异构程序的分析方法、装置、计算机设备和存储介质
US8881152B2 (en) Working sets of sub-application programs of application programs currently running on computing system
CN104076940A (zh) 一种辅助输入方法和设备
US9250760B2 (en) Customizing a dashboard responsive to usage activity
KR20230062243A (ko) 로그 기반 업무 프로세스 추출 방법 및 그 장치
US7936356B2 (en) Information processing method for information registration, and information processing method for information retrieval
CN115390720A (zh) 包括自动文档滚动的机器人过程自动化(rpa)
CN114780330A (zh) 代码监控方法和装置
CN112699372A (zh) 漏洞处理方法、装置和计算机可读存储介质
CN115292194B (zh) 流程调试的方法、电子设备及计算机可读存储介质
CN116009849B (zh) 基于可视化编程平台的图形界面展示方法和装置
CN110659089A (zh) 一种寄宿应用推荐方法、设备和存储介质
CN116737278B (zh) 系统运行包的生成方法、装置、计算机设备及存储介质
JPH103410A (ja) ユーザインタフェース評価装置

Legal Events

Date Code Title Description
A201 Request for examination