KR20210045299A - 로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우 - Google Patents

로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우 Download PDF

Info

Publication number
KR20210045299A
KR20210045299A KR1020200107709A KR20200107709A KR20210045299A KR 20210045299 A KR20210045299 A KR 20210045299A KR 1020200107709 A KR1020200107709 A KR 1020200107709A KR 20200107709 A KR20200107709 A KR 20200107709A KR 20210045299 A KR20210045299 A KR 20210045299A
Authority
KR
South Korea
Prior art keywords
robot
workflow
document processing
user
rpa
Prior art date
Application number
KR1020200107709A
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 KR20210045299A publication Critical patent/KR20210045299A/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/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/338Presentation of query results
    • 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/93Document management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K15/00Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers
    • G06K15/02Arrangements for producing a permanent visual presentation of the output data, e.g. computer output printers using printers
    • G06K15/18Conditioning data for presenting it to the physical printing elements
    • G06K15/1848Generation of the printable image
    • G06K15/1856Generation of the printable image characterized by its workflow
    • G06K9/00483
    • G06K9/344
    • 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/06311Scheduling, planning or task assignment for a person or group
    • G06Q10/063114Status monitoring or status determination for a person or group
    • 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
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/235Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/95Hardware or software architectures specially adapted for image or video understanding structured as a network, e.g. client-server architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/148Segmentation of character regions
    • G06V30/153Segmentation of character regions using recognition of characters or words
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/412Layout analysis of documents structured with printed lines or input boxes, e.g. business forms or tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/418Document matching, e.g. of document images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Automation & Control Theory (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템 및 방법이 제공된다. 입력 문서는 RPA 워크플로우의 하나 이상의 문서 프로세싱 활동을 실행하는 제1 로봇에 의해 프로세싱된다. 문서 프로세싱 활동은 광학 문자 인식, 디지털화, 분류, 또는 데이터 추출을 포함할 수도 있다. RPA 워크플로우의 유저 유효성 확인 활동에 응답하여 제1 로봇에 의해 RPA 워크플로우 실행이 중지된다. 유저 유효성 확인 활동은 하나 이상의 문서 프로세싱 활동의 결과의 유저 유효성 확인을 제공한다. 엔드 유저에게 결과의 유효성 확인을 요청하는 유저 요청이 생성되고 유저 요청이 엔드 유저에게 송신된다. RPA 워크플로우의 실행은 엔드 유저로부터 수신되는 유효성 확인에 기초하여 제2 로봇에 의해 재개된다.

Description

로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우{LONG RUNNING WORKFLOWS FOR DOCUMENT PROCESSING USING ROBOTIC PROCESS AUTOMATION}
본 발명은 일반적으로 로봇 프로세스 자동화에 관한 것으로, 특히, 로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우에 관한 것이다.
로봇 프로세스 자동화(robotic process automation; RPA)는 소프트웨어 로봇을 사용하여 워크플로우를 자동화하는 프로세스 자동화의 한 형태이다. RPA는 반복적이고 및/또는 노동 집약적인 태스크를 자동화하고, 그에 의해, 비용을 감소시키고 효율성을 증가시키도록 구현될 수도 있다. RPA의 하나의 예시적인 애플리케이션은 문서 프로세싱이다. 문서 프로세싱은, 문서 내의 정보 중 일부 또는 모두를 구조화하기 위해 문서에 대해 수행되는 동작을 가리킨다.
종종, 문서 프로세싱은 광학 문자 인식 프로세스 또는 다른 문서 프로세싱 방법에 기인하여 에러로 나타난다. 따라서, 문서 프로세싱의 결과는 통상적으로 유저에 의해 수동으로 유효성이 확인된다(validated). 종래에, RPA 개발자에 의해 그러한 수동의 유효성 확인(manual validation)을 RPA 워크플로우에 통합하는 것은 노동 집약적인 프로세스이다. 특히, 종래에는, 수동의 유효성 확인을 RPA 워크플로우에 통합하는 것은, RPA 개발자가, 문서 프로세싱 워크플로우, 유저 유효성 확인 워크플로우 및 사후 프로세싱 워크플로우와 같은 다수의 별개의 워크플로우를 동기화하는 것, 또는 유효성 확인을 수행하는 유저에게 문서 프로세싱 워크플로우 및 사후 프로세싱 워크플로우를 대기할 것을 요구하는 하나의 큰 복잡한 워크플로우를 RPA 개발자가 생성하는 것을 수반한다. 따라서, RPA 워크플로우에서 수동의 유효성 확인을 통합하는 것은 어렵다.
하나 이상의 실시형태에 따르면, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템 및 방법이 제공된다. 입력 문서는 RPA 워크플로우의 하나 이상의 문서 프로세싱 활동을 실행하는 제1 로봇에 의해 프로세싱된다. 문서 프로세싱 활동은 광학 문자 인식, 디지털화, 분류, 또는 데이터 추출을 포함할 수도 있다. RPA 워크플로우의 유저 유효성 확인 활동(user validation activity)에 응답하여 제1 로봇에 의해 RPA 워크플로우 실행이 중지된다. 유저 유효성 확인 활동은 하나 이상의 문서 프로세싱 활동의 결과의 유저 유효성 확인을 제공한다. 엔드 유저에게 결과의 유효성 확인을 요청하는 유저 요청이 생성되고 유저 요청이 엔드 유저에게 송신된다. 결과의 유효성 확인이 요청되었음을 나타내는 통지가 엔드 유저로 또한 송신될 수도 있다. RPA 워크플로우의 실행은 엔드 유저로부터 수신되는 유효성 확인에 기초하여 제2 로봇에 의해 재개된다. 제1 로봇 및 제2 로봇은 동일한 로봇일 수도 있거나 또는 상이한 로봇일 수도 있다.
하나의 실시형태에서, 엔드 유저로부터 수신되는 결과의 유효성 확인은, 결과가 정확한지의 여부의 표시, 또는 하나 이상의 문서 프로세싱 활동의 보정된 결과일 수도 있다.
하나의 실시형태에서, 입력 문서 및 엔드 유저에게 제시하기 위한 결과를 묘사하는 유저 인터페이스가 디스플레이되게 된다. 입력 데이터 및 하나 이상의 문서 프로세싱 활동의 결과는 좌우 구성(side-by-side configuration)으로 디스플레이될 수도 있다. 특정한 결과의 선택이 엔드 유저로부터 수신될 수도 있으며 특정한 결과 및 입력 문서에서의 대응하는 원본 데이터가 하이라이트 처리되게(highlighted) 될 수도 있다.
본 발명의 이들 및 다른 이점은 다음의 상세한 설명 및 첨부하는 도면을 참조하여 기술 분야의 숙련된 자에게 명백할 것이다.
도 1은, 본 발명의 한 실시형태에 따른, 로봇 프로세스 자동화 시스템을 예시하는 아키텍쳐 다이어그램(architectural diagram)이다;
도 2는, 본 발명의 한 실시형태에 따른, 배치된 로봇 프로세스 자동화 시스템의 한 예를 예시하는 아키텍쳐 다이어그램이다;
도 3은, 본 발명의 한 실시형태에 따른, 로봇 프로세스 자동화 시스템의 단순화된 배치 예를 예시하는 아키텍쳐 다이어그램이다;
도 4는, 본 발명의 한 실시형태에 따른, 입력 문서로부터 데이터를 추출하기 위한 예시적인 장기 실행 워크플로우를 도시한다;
도 5는, 본 발명의 한 실시형태에 따른, 문서 프로세싱을 위한 장기 실행 로봇 프로세싱 자동화 워크플로우를 실행하기 위한 방법을 도시한다;
도 6은, 본 발명의 한 실시형태에 따른, 장기 실행 워크플로우의 데이터 추출 문서 프로세싱 활동의 유효성을 확인하기 위한 예시적인 유저 인터페이스를 도시한다; 그리고
도 7은, 본 발명의 한 실시형태에 따른, 컴퓨팅 시스템의 블록도이다.
로봇 프로세스 자동화(RPA)는 워크플로우를 자동화하기 위해 사용된다. 도 1은, 하나 이상의 실시형태에 따른, RPA 시스템(100)의 아키텍쳐 다이어그램이다. 도 1에서 도시되는 바와 같이, RPA 시스템(100)은 개발자가 워크플로우를 사용하여 자동화 프로세스를 설계하는 것을 허용하는 디자이너(designer; 102)를 포함한다. 더 구체적으로, 디자이너(102)는 워크플로우에서 활동을 수행하기 위한 워크플로우 및 로봇의 개발 및 배치를 용이하게 한다. 디자이너(102)는 애플리케이션 통합뿐만 아니라, 써드파티 애플리케이션, 관리 정보 기술(Information Technology; IT) 태스크, 및 연락 센터 운영(contact center operation)을 위한 비즈니스 프로세스를 자동화하기 위한 솔루션을 제공할 수도 있다. 디자이너(102)의 실시형태의 하나의 상업적인 예는 UiPath Studio™이다.
규칙 기반 프로세스의 자동화를 설계함에 있어서, 개발자는, 본원에서 "활동(activity)"으로 정의되는, 워크플로우에서 개발되는 커스텀 세트(custom set)의 단계 사이의 실행 순서 및 관계를 제어한다. 각각의 활동은, 버튼 클릭, 파일 판독, 로그 패널에 대한 기록, 등등과 같은 액션을 포함할 수도 있다. 몇몇 실시형태에서, 워크플로우는 네스트화되거나 또는 임베딩될 수도 있다.
몇몇 타입의 워크플로우는 시퀀스, 플로우차트, 유한 상태 머신(Finite State Machine; FSM), 및/또는 전역적 예외 핸들러를 포함할 수도 있지만 그러나 이들로 제한되지는 않는다. 시퀀스는 선형 프로세스에 특히 적합할 수도 있어서, 워크플로우를 흩뜨리지 않으면서 하나의 활동으로부터 다른 활동으로의 흐름을 가능하게 할 수도 있다. 플로우차트는 더욱 복잡한 비즈니스 로직에 특히 적합할 수도 있어서, 다수의 분기 로직 연산자를 통해 의사 결정의 통합 및 활동의 연결을 더욱 다양한 방식으로 가능하게 할 수도 있다. FSM은 대규모 워크플로우에 특히 적합할 수도 있다. FSM은, 조건(즉, 전이) 또는 활동에 의해 트리거되는 그들의 실행에서 유한한 수의 상태를 사용할 수도 있다. 전역적 예외 핸들러는, 실행 에러를 조우하는 경우 워크플로우 거동을 결정하는 데 그리고 프로세스를 디버깅하는 데 특히 적합할 수도 있다.
일단 워크플로우가 디자이너(102)에서 개발되면, 비즈니스 프로세스의 실행은 컨덕터(104)에 의해 편성되는데(orchestrate), 컨덕터(104)는, 디자이너(102)에서 개발되는 워크플로우를 실행하는 하나 이상의 로봇(106)을 편성한다. 컨덕터(104)의 실시형태의 하나의 상업적인 예는 UiPath Orchestrator™이다. 컨덕터(220)는 RPA 환경에서의 리소스의 생성, 모니터링 및 배치의 관리를 용이하게 한다. 하나의 예에서, 컨덕터(104)는 웹 애플리케이션이다. 컨덕터(104)는 또한 써드파티 솔루션 및 애플리케이션과의 통합 지점으로서 기능할 수도 있다.
중앙 집중식 지점으로부터 로봇(106)을 연결하고 실행하는 것에 의해, 컨덕터(104)는 일단의(a fleet of) 로봇(106)을 관리할 수도 있다. 컨덕터(104)는, 프로비저닝(provisioning), 배치, 구성, 큐잉, 모니터링, 로깅, 및/또는 상호 연결성의 제공을 포함하는, 그러나 이들로 제한되지는 않는 다양한 성능을 가질 수도 있다. 프로비저닝은 로봇(106)과 컨덕터(104)(예를 들면, 웹 애플리케이션) 사이의 연결의 생성 및 유지 보수를 포함할 수도 있다. 배치는 실행을 위한 할당된 로봇(106)에 패키지 버전의 정확한 전달을 보장하는 것을 포함할 수도 있다. 구성은 로봇 환경 및 프로세스 구성의 유지 보수 및 전달을 포함할 수도 있다. 큐잉은 큐 및 큐 아이템의 관리를 제공하는 것을 포함할 수도 있다. 모니터링은 로봇 식별 데이터를 계속 추적하는 것 및 유저 퍼미션을 유지하는 것을 포함할 수도 있다. 로깅은 데이터베이스(예를 들면, SQL 데이터베이스) 및/또는 다른 스토리지 메커니즘(예를 들면, 대규모 데이터세트를 저장하고 빠르게 조회하는 능력을 제공하는 ElasticSearch®)에 로그를 저장하고 인덱싱하는 것을 포함할 수도 있다. 컨덕터(104)는 써드파티 솔루션 및/또는 애플리케이션에 대한 통신의 중앙 집중식 지점으로서 작용하는 것에 의해 상호 연결성을 제공할 수도 있다.
로봇(106)은 디자이너(102)에 내장되는 워크플로우를 실행하는 실행 에이전트이다. 로봇(106)의 몇몇 실시형태의 하나의 상업적 예는 UiPath Robots™이다. 로봇(106)의 타입은 유인 로봇(attended robot)(108) 및 무인 로봇(unattended robot)(110)을 포함할 수도 있지만, 그러나 이들로 제한되지 않는다. 유인 로봇(108)은 유저 또는 유저 이벤트에 의해 트리거되고 동일한 컴퓨팅 시스템 상에서 인간 유저 옆에서 동작한다. 유인 로봇(108)은 인간 유저가 다양한 태스크를 수행하도록 도울 수도 있고, 인간 유저에 의해 및/또는 유저 이벤트에 의해 직접적으로 트리거될 수도 있다. 유인 로봇의 경우, 컨덕터(104)는 중앙 집중식 프로세스 배치 및 로깅 매체를 제공할 수도 있다. 소정의 실시형태에서, 유인 로봇(108)은, 오로지, "로봇 트레이"로부터 또는 웹 애플리케이션의 커맨드 프롬프트로부터 시작될 수 있다. 무인 로봇(110)은 가상 환경에서 무인 모드로 동작하며, 예를 들면, 다량의, 백엔드 프로세스 및 등등과 같은 많은 프로세스를 자동화하기 위해 사용될 수 있다. 무인 로봇(110)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐에 대한 지원의 제공을 담당할 수도 있다. 유인 및 무인 로봇 둘 모두는, 메인 프레임, 웹 애플리케이션, VM, 엔터프라이즈 애플리케이션(예를 들면, SAP®, SalesForce®(세일즈포스), Oracle®(오라클), 등등에 의해 생성되는 애플리케이션), 및 컴퓨팅 시스템 애플리케이션(예를 들면, 데스크탑 및 랩탑 애플리케이션, 모바일 디바이스 애플리케이션, 웨어러블 컴퓨터 애플리케이션, 등등)을 포함하는, 그러나 이들로 제한되지는 않는 다양한 시스템 및 애플리케이션을 자동화할 수도 있다.
몇몇 실시형태에서, 로봇(106)은, 디폴트로, Microsoft Windows®(마이크로소프트 윈도우즈) 서비스 제어 관리자(Service Control Manager; SCM) 관리 서비스를 설치한다. 결과적으로, 그러한 로봇(106)은 로컬 시스템 계정 하에서 상호 작용식 Windows®(윈도우즈) 세션을 열 수 있고, Windows® 서비스의 권한을 가질 수 있다. 몇몇 실시형태에서, 로봇(106)은 주어진 로봇(106)이 설치된 유저와 동일한 권한을 가지고 유저 모드에서 설치될 수 있다.
몇몇 실시형태에서 로봇(106)은 여러 가지 컴포넌트로 분할되는데, 각각은 특정한 자동화 태스크에 전용된다. 몇몇 실시형태에서 로봇 컴포넌트는, SCM 관리 로봇 서비스, 유저 모드 로봇 서비스, 실행기(executor), 에이전트, 및 커맨드 라인을 포함하지만, 그러나 이들로 제한되지는 않는다. SCM 관리 로봇 서비스는 Windows® 세션을 관리 및 모니터링하고 컨덕터(104)와 실행 호스트(즉, 로봇(106)이 실행되는 컴퓨팅 시스템) 사이의 프록시로서 역할을 한다. 이들 서비스는 로봇(106)에 대한 자격 증명(credential)을 사용하여 신뢰되고 그 자격 증명을 관리한다. 콘솔 애플리케이션은 로컬 시스템 하에서 SCM에 의해 론칭된다. 몇몇 실시형태에서, 유저 모드 로봇 서비스는 Windows® 세션을 관리 및 모니터링하고 컨덕터(104)와 실행 호스트 사이의 프록시로서 역할을 한다. 유저 모드 로봇 서비스는 로봇(106)에 대한 자격 증명을 사용하여 신뢰될 수도 있고 그 자격 증명을 관리할 수도 있다. SCM 관리 로봇 서비스가 설치되지 않은 경우 Windows® 애플리케이션이 자동적으로 론칭될 수도 있다. 실행기는 Windows® 세션 하에서 주어진 작업을 실행할 수도 있고(예를 들면, 그들은 워크플로우를 실행할 수도 있음) 그들은 모니터당 인치당 도트(dots per inch; DPI) 설정을 알고 있을 수도 있다. 에이전트는 시스템 트레이 윈도우(system tray window)에서 이용 가능한 작업을 디스플레이하는 Windows® 프리젠테이션 파운데이션(Windows® Presentation Foundation; WPF) 애플리케이션일 수도 있다. 에이전트는 서비스의 클라이언트일 수도 있다. 에이전트는 작업을 시작 또는 중지할 것을 그리고 설정을 변경할 것을 요청할 수도 있다. 커맨드 라인은 서비스의 클라이언트이며 작업 시작을 요청할 수 있고 그들의 출력을 대기하는 콘솔 애플리케이션이다. 로봇 컴포넌트를 분할하는 것은 개발자를 도울 수 있고, 유저를 지원할 수 있고, 컴퓨팅 시스템이 각각의 로봇 컴포넌트가 실행하고 있는 것을 더욱 쉽게 실행, 식별 및 추적하는 것을 가능하게 할 수 있다. 예를 들면, 실행기 및 서비스에 대해 상이한 방화벽 규칙을 셋업하는 것과 같은 특수한 거동이 로봇 컴포넌트마다 구성될 수도 있다. 또 다른 예로서, 실행기는, 몇몇 실시형태에서, 모니터당 DPI 설정을 인식할 수도 있고, 결과적으로, 워크플로우가 생성된 컴퓨팅 시스템의 구성에 관계없이, 그들은 임의의 DPI에서 실행될 수도 있다.
도 2는, 하나 이상의 실시형태에 따른, RPA 시스템(200)을 도시한다. RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수도 있거나, 또는 그 일부일 수도 있다. "클라이언트 측", "서버 측", 또는 둘 모두는 본 발명의 범위를 벗어나지 않으면서 임의의 소망되는 수의 컴퓨팅 시스템을 포함할 수도 있다는 것을 유의해야 한다.
이 실시형태에서 클라이언트 측에서 도시되는 바와 같이, 컴퓨팅 시스템(202)은 하나 이상의 실행기(204), 에이전트(206), 및 디자이너(208)를 포함한다. 다른 실시형태에서, 디자이너(208)는 동일한 컴퓨팅 시스템(202) 상에서 실행되고 있지 않을 수도 있다. 실행기(204)(이것은 상기에서 설명되는 바와 같은 로봇 컴포넌트일 수도 있음)는 프로세스를 실행하고, 몇몇 실시형태에서, 다수의 비즈니스 프로세스가 동시에 실행될 수도 있다. 이 예에서, 에이전트(206)(예를 들면, Windows® 서비스)는 실행기(204)를 관리하기 위한 단일의 접촉 지점이다.
몇몇 실시형태에서, 로봇은 머신 이름과 유저명 사이의 관련화(association)를 나타낸다. 로봇은 동시에 다수의 실행기를 관리할 수도 있다. 동시에 실행되는 다수의 상호 작용식 세션을 지원하는 컴퓨팅 시스템(예를 들면, Windows® Server(윈도우즈 서버) 2012) 상에서, 다수의 로봇이 동시에 실행될 수도 있는데(예를 들면, 고밀도(high density; HD) 환경), 각각은 고유의 유저명을 사용하여 별개의 Windows® 세션 내에 있다.
에이전트(206)는 또한, 로봇의 상태를 전송하는 것(예를 들면, 로봇이 여전히 기능하고 있다는 것을 나타내는 "하트비트(heartbeat)" 메시지를 주기적으로 전송함) 및 실행될 패키지의 필요한 버전을 다운로드하는 것을 담당한다. 에이전트(206)와 컨덕터(212) 사이의 통신은 몇몇 실시형태에서 에이전트(206)에 의해 개시된다. 통지 시나리오의 예에서, 에이전트(206)는, 커맨드를 로봇으로 전송하기 위해(예를 들면, 시작, 정지, 등등) 컨덕터(212)에 의해 나중에 사용되는 WebSocket(웹소켓) 채널을 개방할 수도 있다.
이 실시형태에서 서버 측에서 도시되는 바와 같이, 프리젠테이션 계층은 웹 애플리케이션(214), 개방 데이터 프로토콜(Open Data Protocol; OData) 대표 상태 전송(Representative State Transfer; REST) 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 엔드포인트(216) 및 통지 및 모니터링 API(218)를 포함한다. 서버 측의 서비스 계층은 API 구현/비즈니스 로직(220)을 포함한다. 서버 측의 지속성 계층(persistence layer)은 데이터베이스 서버(222) 및 인덱서 서버(224)를 포함한다. 컨덕터(212)는 웹 애플리케이션(214), OData REST API 엔드포인트(216), 통지 및 모니터링 API(218), 및 API 구현/비즈니스 로직(220)을 포함한다.
다양한 실시형태에서, 유저가 컨덕터(212)의 인터페이스에서 (예를 들면, 브라우저(210)를 통해) 수행하는 대부분의 액션은 다양한 API를 호출하는 것에 의해 수행된다. 그러한 액션은, 로봇 상에서 작업을 시작하는 것, 큐에서 데이터를 추가/제거하는 것, 무인으로 실행할 작업을 스케줄링하는 것, 및 등등을 포함할 수도 있지만, 그러나, 이들로 제한되지는 않는다. 웹 애플리케이션(214)은 서버 플랫폼의 시각적 계층(visual layer)이다. 이 실시형태에서, 웹 애플리케이션(214)은 하이퍼텍스트 마크업 언어(Hypertext Markup Language; HTML) 및 JavaScript(자바스크립트)(JS)를 사용한다. 그러나, 본 발명의 범위를 벗어나지 않으면서, 임의의 소망되는 마크업 언어, 스크립트 언어, 또는 임의의 다른 포맷이 사용될 수도 있다. 유저는, 컨덕터(212)를 제어하기 위한 다양한 액션을 수행하기 위해, 이 실시형태에서 브라우저(210)를 통해 웹 애플리케이션(214)으로부터의 웹 페이지와 상호 작용한다. 예를 들면, 유저는 로봇 그룹을 생성할 수도 있고, 로봇에 패키지를 할당할 수도 있고, 로봇마다 및/또는 프로세스마다 로그를 분석할 수도 있고, 로봇을 시작 및 중지할 수도 있고, 등등을 할 수도 있다.
웹 애플리케이션(214)에 추가하여, 컨덕터(212)는 또한 OData REST API 엔드포인트(216)를 노출하는 서비스 계층을 포함한다(또는 다른 엔드포인트가 본 발명의 범위를 벗어나지 않으면서 구현될 수도 있음). REST API는 웹 애플리케이션(214) 및 에이전트(206) 둘 모두에 의해 소비된다. 에이전트(206)는 이 예시적인 구성에서 클라이언트 컴퓨터 상의 하나 이상의 로봇의 감독자(supervisor)이다.
이 실시형태에서의 REST API는 구성, 로깅, 모니터링 및 큐잉 기능성을 포괄한다. 구성 REST 엔드포인트는, 몇몇 실시형태에서, 애플리케이션 유저, 퍼미션, 로봇, 자산, 릴리스, 및 환경을 정의하고 구성하기 위해 사용될 수도 있다. 로깅 REST 엔드포인트는, 예를 들면, 에러, 로봇에 의해 전송되는 명시적 메시지, 및 다른 환경 고유의 정보와 같은 상이한 정보를 로깅하는 데 유용할 수도 있다. 배치 REST 엔드포인트는, 작업 시작 커맨드가 컨덕터(212)에서 사용되는 경우 실행되어야 하는 패키지 버전을 조회하기 위해 로봇에 의해 사용될 수도 있다. 큐잉 REST 엔드포인트는, 큐 및 큐 아이템 관리, 예컨대 데이터를 큐에 추가하는 것, 큐로부터 트랜잭션을 획득하는 것, 트랜잭션의 상태를 설정하는 것, 등등을 담당할 수도 있다. 모니터링 REST 엔드포인트는 웹 애플리케이션(214) 및 에이전트(206)를 모니터링한다. 통지 및 모니터링 API(218)는, 에이전트(206)를 등록하기 위해, 구성 설정을 에이전트(206)에 전달하기 위해, 그리고 서버 및 에이전트(206)로부터의 통지를 전송/수신하기 위해 사용되는 REST 엔드포인트일 수도 있다. 통지 및 모니터링 API(218)는 또한, 몇몇 실시형태에서, WebSocket 통신을 사용할 수도 있다.
서버 측 상의 지속성 계층은, 이 예시적인 실시형태에서, 한 쌍의 서버 - 데이터베이스 서버(222)(예를 들면, SQL 서버) 및 인덱서 서버(224) - 를 포함한다. 이 실시형태에서의 데이터베이스 서버(222)는 로봇, 로봇 그룹, 관련된 프로세스, 유저, 역할, 스케줄, 등등의 구성을 저장한다. 이 정보는 몇몇 실시형태에서 웹 애플리케이션(214)을 통해 관리된다. 데이터베이스 서버(222)는 큐 및 큐 아이템을 또한 관리할 수도 있다. 몇몇 실시형태에서, 데이터베이스 서버(222)는 (인덱서 서버(224)에 추가하여 또는 그것을 대신하여) 로봇에 의해 로깅되는 메시지를 저장할 수도 있다. 몇몇 실시형태에서 옵션 사항인(optional) 인덱서 서버(224)는 로봇에 의해 로깅되는 정보를 저장 및 인덱싱한다. 소정의 실시형태에서, 인덱서 서버(224)는 구성 설정을 통해 디스에이블될 수도 있다. 몇몇 실시형태에서, 인덱서 서버(224)는 오픈 소스 프로젝트 풀텍스트 검색 엔진(open source project full-text search engine)인 ElasticSearch®를 사용한다. (예를 들면, 메시지 로깅(log message) 또는 라인 기록(write line)과 같은 활동을 사용하여) 로봇에 의해 로깅되는 메시지는 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(224)로 전송될 수도 있는데, 여기서 그들은 미래의 활용을 위해 인덱싱된다.
도 3은, 하나 이상의 실시형태에 따른, RPA 시스템(300)의 단순화된 배치 예를 예시하는 아키텍쳐 다이어그램이다. 몇몇 실시형태에서, RPA 시스템(300)은, 각각, 도 1 및/또는 도 2의 RPA 시스템(100 및/또는 200)일 수도 있거나 또는 그들을 포함할 수도 있다. RPA 시스템(300)은 로봇을 실행하는 다수의 클라이언트 컴퓨팅 시스템(302)을 포함한다. 컴퓨팅 시스템(302)은 컨덕터 컴퓨팅 시스템(304)과 그 상에서 실행되는 웹 애플리케이션을 통해 통신할 수 있다. 컨덕터 컴퓨팅 시스템(304)은, 결국에는, 데이터베이스 서버(306) 및 옵션 사항인 인덱서 서버(308)와 통신한다. 도 2 및 도 3과 관련하여, 웹 애플리케이션이 이들 실시형태에서 사용되는 동안, 본 발명의 범위를 벗어나지 않으면서 임의의 적절한 클라이언트/서버 소프트웨어가 사용될 수도 있다는 것을 유의해야 한다. 예를 들면, 컨덕터는 클라이언트 컴퓨팅 시스템 상의 웹 기반이 아닌 클라이언트 소프트웨어 애플리케이션과 통신하는 서버 측 애플리케이션을 실행할 수도 있다.
하나의 실시형태에서, RPA 시스템(300)은 장기 실행 워크플로우를 실행하도록 구현될 수도 있다. 본원에서 사용되는 바와 같이, 장기 실행 워크플로우는, 활동을 완료하기 위해 외부 이벤트 발생에 의존하는 하나 이상의 활동을 포함하는 워크플로우이다. 특정한 장기 실행 워크플로우의 외부 이벤트는, 특정한 장기 실행 워크플로우 실행으로부터 유래하지 않는 임의의 이벤트이다. 장기 실행 워크플로우는 시간의 상대적으로 긴 기간(예를 들면, 몇 시간 또는 며칠)에 걸쳐 수행되며 외부 이벤트 발생을 대기하기 위해 임의의 시점에 중지 및 재개될 수도 있고, 그에 의해, 워크플로우에 장기 실행 거동을 제공할 수도 있다. 대조적으로, 비장기(non-long) 실행 워크플로우의 활동은 외부 이벤트를 대기하지 않고 연속적인 방식으로 실행된다.
하나의 특히 유리한 실시형태에 따르면, RPA 시스템(300)은 문서 프로세싱을 위한 장기 실행 워크플로우를 실행하도록 구현될 수도 있다. 문서 프로세싱은, 문서 내의 정보 중 일부 또는 모두를 구조화하기 위해 문서에 대해 수행되는 동작을 가리킨다. 예시적인 문서 프로세싱 동작은 디지털화, 분류, 및 데이터 추출을 포함한다. 자동화된 문서 프로세싱으로부터 유래하는 잠재적인 에러를 해결하기 위해, 장기 실행 워크플로우는, 유저가 문서 프로세싱의 결과의 유효성을 확인하는 것을 허용하기 위한 유저 유효성 확인 활동을 포함할 수도 있다.
도 4는, 하나 이상의 실시형태에 따른, 입력 문서로부터 데이터를 추출하기 위한 예시적인 장기 실행 워크플로우(400)를 도시한다. 장기 실행 워크플로우(400)는 로봇 활동(402, 404, 및 408) 및 유저 활동(406)을 포함한다. 로봇 활동(402)은 문서에 대해 광학 문자 인식(optical character recognition; OCR)을 수행하는 로봇을 정의한다. 로봇 활동(404)은 OCR 결과로부터 데이터를 추출하는 로봇을 정의한다. 유저 활동(406)은 추출된 데이터의 유효성을 확인하는 유저를 정의한다. 로봇 활동(408)은 유효성이 확인된 추출된 데이터를 사용하여 시스템을 업데이트하는 로봇을 정의한다.
장기 실행 워크플로우(400)에서, 유저 활동(406)은 데이터 추출의 결과의 유효성을 확인하는 유저의 외부 이벤트의 발생에 의존한다. 장기 실행 워크플로우(400)의 실행은, 데이터 프로세싱 결과의 유효성을 확인하는 유저 입력을 대기하는 동안 중지될 수도 있고, 일단 유저 입력이 수신되면, 재개될 수도 있다. 장기 실행 워크플로우(400)를 실행하는 로봇은, 장기 실행 워크플로우(400)의 실행이 중지되는 경우 다른 워크플로우를 실행할 것을 할당받을 수도 있고, 그에 의해, 리소스를 최적화할 수도 있다. 장기 실행 워크플로우(400)의 실행은, 동일한 또는 상이한 로봇을 사용한 활동(406)의 완료시 활동(408)에서 재개될 수도 있다.
예를 들면, 도 4의 장기 실행 워크플로우(400)와 같은 장기 실행 워크플로우는, 예를 들면, 도 1의 디자이너(102) 또는 도 2의 디자이너(208)를 사용하여 유저(예를 들면, RPA 개발자)에 의해 생성될 수도 있다. 예를 들면, 유저는 디자이너(102) 또는 디자이너(208)와 상호 작용하여 다수의 단편화된 활동(단편화된 더 짧은 실행 워크플로우를 포함함)을 함께 연결하여 장기 실행 워크플로우를 생성할 수도 있다. 하나의 실시형태에서, 유저는 (예를 들면, 도 1의 디자이너(102) 또는 도 2의 디자이너(208)에서) 새로운 프로젝트를 생성하는 것 및 활동을 선택하는 것(예를 들면, 이용 가능한 활동 및/또는 워크플로우의 세트로부터 드래그 앤 드랍하는 것)에 의해 장기 실행 워크플로우를 생성한다.
도 5는, 하나 이상의 실시형태에 따른, 문서 프로세싱을 위한 장기 실행 RPA 워크플로우를 실행하기 위한 방법(500)을 도시한다. 방법(500)의 단계는 컴퓨팅 디바이스(예를 들면, 도 7의 컴퓨팅 시스템(700)) 상에서 실행되는 하나 이상의 로봇(예를 들면, 도 1의 유인 로봇(108) 또는 무인 로봇(110) 또는 도 3의 로봇(302))에 의해 수행될 수도 있다. 방법(500)은 도 4의 장기 실행 워크플로우(400)를 참조하여 설명될 것이다.
단계(502)에서, 장기 실행 워크플로우의 하나 이상의 문서 프로세싱 활동이 제1 로봇에 의해 실행되어 입력 문서를 프로세싱한다. 제1 로봇은 RPA 워크플로우를 실행하기 위한 임의의 적절한 로봇일 수도 있다. 하나의 실시형태에서, 제1 로봇은 무인 로봇이다. 문서 프로세싱 활동은, 예를 들면, OCR, 디지털화, 분류, 및 데이터 추출과 같은, 직렬화 가능한 문서를 프로세싱하기 위한 임의의 로봇 활동일 수도 있다. 하나의 예에서, 문서 프로세싱 활동은 OCR에 대한 로봇 활동(402) 및 장기 실행 워크플로우(400)에서 데이터 추출을 위한 로봇 활동(404)이다. 활동은 비동기식의 비차단(non-blocking) 방식으로 호출될 수도 있다. 하나의 실시형태에서, 활동은 동기식의 차단 방식으로 또는 비동기식의 차단 방식으로 호출될 수도 있는 비 UI(non-UI) 활동을 포함한다. 비 UI 활동은, 예를 들면, 외부 시스템에 대한 호출(예를 들면, 데이터를 검색하기(retrieve) 위한 SAP(Systems Applications and Products; 시스템 애플리케이션 및 제품) 시스템에 대한 API 호출)을 포함할 수도 있다. 호출은 비동기 방식으로 실행될 수도 있는데, API에 대한 호출이 수행되고 반환된 데이터의 핸들링이 동시에 정의되며, 스레드가 다른 로직으로 진행된다는 것을 의미한다. 다른 한편, 동기식 호출은 호출을 실행하고, 데이터가 수신될 때까지 스레드를 대기하고 차단하며, 그 다음, 데이터 핸들링을 진행한다.
단계(504)에서, 장기 실행 워크플로우의 유저 유효성 확인 활동에 응답하여, 장기 실행 워크플로우의 실행이 제1 로봇에 의해 중지된다. 유저 유효성 확인 활동은 하나 이상의 문서 프로세싱 활동의 결과의 유효성을 확인하기 위한 것이다. 하나의 예에서, 유저 유효성 확인 활동은 장기 실행 워크플로우(400)에서 추출된 데이터의 유효성을 확인하기 위한 유저 활동(406)이다. 장기 실행 워크플로우는, 엔드 유저의 하나 이상의 문서 프로세싱 활동의 결과의 유효성 확인의 형태의 유저 입력을 대기하기 위해 시간의 무기한 기간 동안 중지된다.
장기 실행 워크플로우의 실행을 중지하기 위해, 중지시 장기 실행 워크플로우의 현재 컨텍스트는 직렬화된다. 장기 실행 워크플로우의 현재 컨텍스트의 직렬화는, 장기 실행 워크플로우의 현재 상태(데이터 변수 및 그들의 값)를, 저장될 수 있고 나중에 재구성될 수 있는 포맷으로 변환하는 프로세스를 가리킨다. 장기 실행 워크플로우의 현재 컨텍스트는, 예를 들면, 도 2의 데이터베이스 서버(222) 또는 도 3의 데이터베이스 서버(306)와 같은 중앙의 영구적 스토리지에 저장된다.
단계(506)에서, 엔드 유저에게 결과의 유효성 확인을 요청하는 유저 요청이 생성된다. 유저 요청은 입력 문서, 입력 문서의 디지털화된 버전, 입력 문서와 관련되는 분류 정보, 및 하나 이상의 문서 프로세싱 활동의 결과를 포함할 수도 있다. 하나의 실시형태에서, 유저 요청은 엔드 유저가 하나 이상의 문서 프로세싱 활동의 결과의 유효성을 확인하는 것을 가능하게 하는 유저 인터페이스를 포함할 수도 있다. 유저 인터페이스는, 유효성 확인을 완료함에 있어서 유저를 가장 잘 지원하기 위해 유저 요청의 정보의 표시를 허용한다. 유저 인터페이스는 비즈니스 사용 사례 요구에 따라 구성될 수도 있다. 예시적인 유저 인터페이스가 도 6에서 도시되어 있으며, 하기에서 더 상세하게 설명된다.
단계(508)에서, 유저 요청은 엔드 유저로 송신된다. 유저 요청은, 하나 이상의 문서 프로세싱 활동의 결과의 유효성을 확인하기 위해 유저 입력이 필요하다는 것을 엔드 유저에게 통지한다. 유저 요청에 응답하여, 엔드 유저는, 문서 프로세싱의 결과를 선택하고, 문서 프로세싱 결과를 입력 문서와 비교하고, 문서 프로세싱 결과를 보정하는 것에 의해, 하나 이상의 문서 프로세싱 활동의 결과의 유효성을 확인하기 위해 유저 요청과 상호 작용할 수도 있다.
하나의 실시형태에서, 하나 이상의 문서 프로세싱 활동의 결과의 유효성 확인이 요청된다는 것을 나타내는 통지가 또한 엔드 유저에게 또한 송신된다. 통지는, 엔드 유저가 결과의 유효성을 확인하는 것을 가능하게 하기 위해 유저 인터페이스에 대한 링크를 포함할 수도 있거나, 또는 다르게는 엔드 유저를 그 유저 인터페이스로 안내할 수도 있다. 통지는 모바일 디바이스 통지, 문자 메시지, 전자 메일, 등등일 수도 있다.
단계(510)에서, 엔드 유저로부터 수신되는 유효성 확인에 기초하여 장기 실행 워크플로우의 실행이 제2 로봇에 의해 재개된다. 예를 들면, 장기 실행 워크플로우(400)의 실행은, 데이터 추출의 결과의 유효성을 확인하는 유저 활동(406)에 대해 수신되는 유저 입력에 기초하여 시스템을 업데이트하기 위한 로봇 활동(408)을 실행하는 것에 의해 재개될 수도 있다. 엔드 유저로부터 수신되는 하나 이상의 문서 프로세싱 활동의 결과의 유효성 확인은, 하나 이상의 문서 프로세싱의 결과가 정확하거나 또는 정확하지 않다는 표시 및/또는 하나 이상의 문서 프로세싱 활동의 보정된 결과를 포함할 수도 있다.
제2 로봇은 RPA 워크플로우를 실행하기 위한 임의의 적절한 로봇(예를 들면, 무인 로봇)일 수도 있다. 제1 로봇 및 제2 로봇은 동일한 로봇일 수도 있거나 또는 상이한 로봇일 수도 있다. 하나의 실시형태에서, 제2 로봇은 장기 실행 워크플로우와 관련되는 이용 가능한 로봇의 풀(pool)에서 제1 이용 가능한 로봇이다.
하나의 실시형태에서, 장기 실행 워크플로우의 실행은 중앙의 영구적 스토리지(예를 들면, 도 2의 데이터베이스 서버(222) 또는 도 3의 데이터베이스 서버(306))로부터 장기 실행 워크플로우의 현재 컨텍스트를 검색하는 것에 의해 재개된다. 따라서, 장기 실행 워크플로우가 나중에 업데이트되거나 또는 보정되더라도(예를 들면, 장기 실행 워크플로우의 실행의 중지 이후), 중앙의 영구적 스토리지에 저장된 중지의 시간에서의 워크플로우 상태(데이터 변수 및 그들의 값)를 사용하여 장기 실행 워크플로우의 실행은 재개된다.
장기 실행 워크플로우는 임의의 수의 인스턴스에서 중지될 수도 있다. 따라서, 방법(500)은, 장기 실행 워크플로우의 실행이 완료될 때까지 유저 유효성 확인 활동에 응답하여 재개된 장기 실행 워크플로우가 중지될 때마다 단계(504)로 복귀하는 것에 의해 반복될 수도 있다.
방법(500)의 단계가 하나 이상의 로봇에 의해 수행될 수도 있지만, 그들 단계의 조정은, 예를 들면, 도 1의 컨덕터(104), 도 2의 컨덕터(212), 또는 도 3의 컨덕터(304)와 같은 오케스트레이터(orchestrator)에 의해 관리된다. 구체적으로, 방법(500)과 관련하여, 오케스트레이터는 단계(502)를 수행하기 위해 하나 이상의 문서 프로세싱 활동을 실행하기 위한 표시를 제1 로봇에 송신하고, 장기 실행 워크플로우의 실행을 중지하기 위한 표시를 제1 로봇에 송신하여 단계(504)를 수행하고, 제1 로봇으로부터 (단계(506)에서 생성되는) 생성된 유저 요청을 수신하고 생성된 유저 요청을 엔드 유저로 송신하여 단계(508)를 수행하고, 유저 요청에 응답하여 엔드 유저로부터 하나 이상의 문서 프로세싱 활동의 결과의 유효성 확인을 수신하고, 장기 실행 워크플로우의 실행을 재개하기 위한 표시를 제2 로봇으로 송신하여 단계(510)를 수행한다. 따라서, 장기 실행 워크플로우는 오케스트레이터에 의해 중앙 집중식 방식으로 조정되지만, 그러나, 상이한 로봇에 의해 탈집중화된 방식(decentralized manner)으로 실행될 수도 있다.
유익하게는, 장기 실행 워크플로우의 중지 및 재개는, 로봇에 의한 지속적인 모니터링 또는 대기에 대한 필요 없이, 장기 실행 워크플로우를 수행하기 위한 최적의 리소스 할당을 허용한다.
도 6은, 하나 이상의 실시형태에 따른 입력 문서에 대해 수행되는 장기 실행 워크플로우의 데이터 추출 문서 프로세싱 활동의 유효성을 확인하기 위한 유저 인터페이스(600)를 도시한다. 다른 문서 프로세싱 활동(예를 들면, OCR, 디지털화, 분류, 등등)에 대해 유사한 유저 인터페이스가 제공될 수도 있다. 유저 인터페이스(600)는, 엔드 유저가 데이터 추출의 결과의 유효성 확인을 요청하는 유저 요청과 상호 작용하는 것에 응답하여, 엔드 유저에게 제시될 수도 있다. 하나의 실시형태에서, 유저 요청은 도 5의 방법(500)의 단계(508)에서 엔드 유저로 송신되었을 수도 있다.
유저 인터페이스는 데이터 추출의 결과를 나타내는 뷰(602) 및 하나 이상의 문서 프로세싱 활동이 적용되는 입력 문서를 나타내는 뷰(604)를 포함한다. 하나의 실시형태에서, 뷰(602 및 604)는, 엔드 유저에 의한 하나 이상의 문서 프로세싱 활동의 결과의 유효성 확인을 용이하게 하기 위해 좌우 구성으로 유저 인터페이스(600)에서 도시된다. 도 6에서 도시되는 바와 같이, 뷰(602 및 604)는, 좌우 구성이지만, 그러나 다른 구성도 가능하다(예를 들면, 상하, 등등).
뷰(602)는, 뷰(604)에서 묘사되는, 입력 문서의 각각의 대응하는 원본 데이터(608-A 내지 608-E)(일괄적으로 원본 데이터(608)로 칭해짐)로부터 추출되는 추출된 문서 타입 데이터(606-A), 추출된 송장 번호 데이터(606-B), 추출된 송장 날짜 데이터(606-C), 추출된 회사 이름 데이터(606-D), 및 추출된 총 금액 데이터(606-E)(일괄적으로 추출된 데이터(606)로 칭해짐)를 묘사한다. 유저 인터페이스(600)는, 뷰(604)에서 원본 데이터(608)와 나란히 뷰(602)에서 추출된 데이터(606)를 나타내도록 구성되는데, 이것은 엔드 유저가 자동적으로 결정된 추출된 데이터(606)의 유효성을 확인하는 것을 가능하게 한다.
엔드 유저는 추출된 데이터(606)의 유효성 확인을 용이하게 하기 위해 뷰(602 및/또는 604)와 상호 작용할 수도 있다. 하나의 실시형태에서, 엔드 유저는 뷰(602) 내의 추출된 데이터(606) 및 뷰(604) 내의 그것에 대응하는 원본 데이터(608)를 하이라이트 처리하기 위해 뷰(602) 내의 추출된 데이터(606)를 선택할 수도 있다(또는 유사하게, 유저는 원본 데이터(608) 및 그것의 대응하는 추출된 데이터(606)를 하이라이트 처리하기 위해 뷰(604) 내의 원본 데이터(608)를 선택할 수도 있음). 예를 들면, 도 6에서 도시되는 바와 같이, 추출된 송장 번호 데이터(606-B) 및 그것의 대응하는 원본 데이터(608-B)를 하이라이트 처리하기 위해, 추출된 송장 번호 데이터(606-B)가 엔드 유저에 의해 선택된다. 도 6에서 도시되는 바와 같이, 추출된 송장 번호 데이터(606-B)는 뷰(602)에서 송장 번호로서 추출되지만, 그러나 뷰(604)에서 세금 ID로서 원본 데이터(608-B)로부터 추출된다. 따라서, 추출된 송장 번호 데이터(606-B) 및 그것의 대응하는 원본 데이터(608-B)는, 유저가 유저 인터페이스(600)를 사용하여 보정할 수도 있는 잘못된 데이터 추출의 예이다. 하나의 실시형태에서, 유저는 뷰(604) 내의 입력 문서로부터의 워드 또는 워드의 시퀀스를 원본 데이터(608)로서 선택하고 뷰(604) 내의 추출된 데이터(606)로서의 필드에 대한 값으로서 그 선택을 할당할 수도 있고, 따라서, 데이터를 추출된 데이터(606)에 추가 또는 변경할 수도 있다. 추출된 송장 번호 데이터(606-B) 및 그것의 대응하는 원본 데이터(608-B)가 도 6에서 하이라이트 처리되는 것으로 설명되지만, 선택된 추출된 데이터(606) 및 원본 데이터(608)는, 예를 들면, 폰트, 폰트 스타일(예를 들면, 볼드체, 이탤릭체), 폰트 사이즈, 폰트 컬러, 등등과 같은, 엔드 유저의 주목을 끌기 위한 임의의 적절한 방식으로 유저 인터페이스(600)에서 묘사될 수도 있다는 것이 이해되어야 한다.
하나의 실시형태에서, 엔드 유저는, 추출된 데이터(606)를 원본 데이터(608)와 비교하고 추출된 데이터(606)를 보정하는 것에 의해, 예를 들면, 비교에 기초하여 추출된 데이터(606)를 삭제, 추가, 보정, 및/또는 대체하는 것에 의해, 추출된 데이터(606)의 유효성을 확인할 수도 있다. 다른 실시형태에서, 엔드 유저는, 추출된 데이터(606)가 정확한지의 여부의 표시를 제공하는 것에 의해, 추출된 데이터(606)의 유효성을 확인할 수도 있다. 일단 유효성이 확인되면, 엔드 유저는 유효성이 확인된 추출된 데이터(606)를 제출하고 유효성 확인을 오케스트레이터로 송신할 수도 있고, 그에 의해, 장기 실행 워크플로우의 실행을 재개할 수도 있다.
도 7은, 본 발명의 한 실시형태에 따른, 도 4를 참조하여 설명되는 방법을 실행하도록 구성되는 컴퓨팅 시스템(700)을 예시하는 블록도이다. 몇몇 실시형태에서, 컴퓨팅 시스템(700)은 본원에서 묘사되는 및/또는 설명되는 컴퓨팅 시스템 중 하나 이상일 수도 있다. 컴퓨팅 시스템(700)은 정보를 전달하기 위한 버스(702) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위한 버스(702)에 커플링되는 프로세서(들)(704)를 포함한다. 프로세서(들)(704)는 중앙 프로세싱 유닛(Central Processing Unit; CPU), 주문형 집적 회로(Application Specific Integrated Circuit; ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA), 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU), 이들의 다수의 인스턴스, 및/또는 이들의 임의의 조합을 비롯한, 임의의 타입의 범용 또는 특수 목적의 프로세서일 수도 있다. 프로세서(들)(704)는 또한 다수의 프로세싱 코어를 가질 수도 있고, 코어 중 적어도 일부는 특수 기능을 수행하도록 구성될 수도 있다. 몇몇 실시형태에서, 다중 병렬 프로세싱이 사용될 수도 있다.
컴퓨팅 시스템(700)은 프로세서(들)(704)에 의해 실행될 정보 및 명령어를 저장하기 위한 메모리(706)를 더 포함한다. 메모리(706)는 랜덤 액세스 메모리(Random Access Memory; RAM), 리드 온리 메모리(Read Only Memory; ROM), 플래시 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 스토리지, 또는 임의의 다른 타입의 비일시적 컴퓨터 판독 가능 매체 또는 이들의 조합의 임의의 조합으로 구성될 수 있다. 비일시적 컴퓨터 판독 가능 매체는 프로세서(들)(704)에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수도 있고, 휘발성 매체, 불휘발성 매체, 또는 둘 모두를 포함할 수도 있다. 매체는 또한 착탈식일 수도 있거나, 비착탈식일 수도 있거나, 또는 둘 모두일 수도 있다.
추가적으로, 컴퓨팅 시스템(700)은 임의의 현재 존재하는 또는 미래 구현될 통신 표준 및/또는 프로토콜에 따라 무선 및/또는 유선 연결을 통해 통신 네트워크에 대한 액세스를 제공하기 위해 트랜스시버와 같은 통신 디바이스(708)를 포함한다.
프로세서(들)(704)는 버스(702)를 통해 유저에게 정보를 디스플레이하기에 적절한 디스플레이(710)에 추가로 커플링된다. 디스플레이(710)는 터치 디스플레이 및/또는 임의의 적절한 햅틱 I/O 디바이스로서 또한 구성될 수도 있다.
키보드(712) 및 커서 제어 디바이스(714), 예컨대 컴퓨터 마우스, 터치패드, 등등은 유저가 컴퓨팅 시스템과 인터페이싱하는 것을 가능하게 하기 위해 버스(702)에 추가로 커플링된다. 그러나, 소정의 실시형태에서, 물리적 키보드 및 마우스가 존재하지 않을 수도 있고, 유저는 오로지 디스플레이(710) 및/또는 터치패드(도시되지 않음)를 통해서만 디바이스와 상호 작용할 수도 있다. 입력 디바이스의 임의의 타입 및 조합이 설계 선택의 문제로서 사용될 수도 있다. 소정의 실시형태에서, 어떠한 물리적 입력 디바이스 및/또는 디스플레이도 존재하지 않는다. 예를 들면, 유저는 컴퓨팅 시스템(700)과 통신하는 다른 컴퓨팅 시스템을 통해 컴퓨팅 시스템(700)과 원격으로 상호 작용할 수도 있거나, 또는 컴퓨팅 시스템(700)은 자율적으로 동작할 수도 있다.
메모리(706)는 프로세서(들)(704)에 의해 실행될 때 기능성을 제공하는 소프트웨어 모듈을 저장한다. 모듈은 컴퓨팅 시스템(700)을 위한 운영 체제(716) 및 본원에서 설명되는 프로세스의 모두 또는 일부 또는 그 파생물을 수행하도록 구성되는 하나 이상의 추가적인 기능 모듈(718)을 포함한다.
기술 분야의 숙련된 자는, "시스템"이, 본 발명의 범위를 벗어나지 않으면서, 서버, 임베딩된 컴퓨팅 시스템, 퍼스널 컴퓨터, 콘솔, 개인 휴대형 정보 단말(personal digital assistant; PDA), 셀 폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 임의의 다른 적절한 컴퓨팅 디바이스, 또는 디바이스의 조합으로서 구현될 수도 있다는 것을 인식할 것이다. "시스템"에 의해 수행되는 것으로 상기에서 설명된 기능을 제시하는 것은, 어떠한 방식으로든 본 발명의 범위를 제한하도록 의도되는 것이 아니라, 본 발명의 많은 실시형태의 하나의 예를 제공하도록 의도된다. 실제로, 본원에서 개시되는 방법, 시스템, 및 장치는, 클라우드 컴퓨팅 시스템을 비롯하여, 컴퓨팅 기술과 일치하는 국소화되고 분산된 형태로 구현될 수도 있다.
본 명세서에서 설명되는 시스템 피쳐 중 일부는, 그들의 구현 독립성을 특히 강조하기 위해, 모듈로서 제시되었다는 것을 유의해야 한다. 예를 들면, 모듈은 주문형(custom) 대규모 집적(very large scale integration; VLSI) 회로 또는 게이트 어레이, 로직 칩과 같은 기성의(off-the-shelf) 반도체, 트랜지스터, 또는 다른 별개의 컴포넌트를 포함하는 하드웨어 회로로서 구현될 수도 있다. 모듈은 또한, 필드 프로그래머블 게이트 어레이, 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스, 그래픽 프로세싱 유닛, 또는 등등과 같은 프로그래머블 하드웨어 디바이스에서 구현될 수도 있다. 모듈은 또한 다양한 타입의 프로세서에 의한 실행을 위해 소프트웨어로 적어도 부분적으로 구현될 수도 있다. 실행 가능 코드의 식별된 단위는, 예를 들면, 객체, 프로시져, 또는 함수로서 편제될 수도 있는, 예를 들면, 컴퓨터 명령어의 하나 이상의 물리적 또는 논리적 블록을 포함할 수도 있다. 그럼에도 불구하고, 식별된 모듈의 실행 파일은 물리적으로 함께 위치될 필요는 없지만, 그러나 논리적으로 함께 결합될 때, 모듈을 포함하며 모듈에 대한 지정된 목적을 달성하는 상이한 위치에 저장되는 별개의 명령어를 포함할 수도 있다. 게다가, 모듈은, 예를 들면, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 본 발명의 범위를 벗어나지 않으면서 데이터를 저장하기 위해 사용되는 임의의 다른 그러한 비일시적 컴퓨터 판독 가능 매체일 수도 있는 컴퓨터 판독 가능 매체 상에 저장될 수도 있다. 실제로, 실행 가능 코드의 모듈은 단일의 명령어, 또는 다수의 명령어일 수 있으며, 심지어 몇몇 상이한 코드 세그먼트에 걸쳐, 상이한 프로그램 사이에서, 그리고 몇몇 메모리 디바이스에 걸쳐 분산될 수도 있다. 유사하게, 동작 데이터는 본원에서 모듈 내에서 식별되고 예시될 수도 있으며, 임의의 적절한 형태로 구체화되고 임의의 적절한 타입의 데이터 구조 내에서 편제될 수도 있다. 동작 데이터는 단일의 데이터 세트로서 수집될 수도 있거나, 또는 상이한 저장 디바이스에 걸치는 것을 비롯하여 상이한 위치에 걸쳐 분산될 수도 있으며, 적어도 부분적으로는, 단지, 시스템 또는 네트워크 상의 전자 신호로서 존재할 수도 있다.
전술한 내용은 단지 본 개시의 원리를 예시한다. 따라서, 기술 분야의 숙련된 자는, 본원에서 명시적으로 설명되거나 또는 도시되지 않지만, 본 개시의 원리를 구체화하고 그 취지 및 범위 내에 포함되는 다양한 배열을 고안할 수 있을 것이다는 것이 인식될 것이다. 더욱이, 본원에서 기재되는 모든 예 및 조건부 언어는, 본 개시의 원리 및 기술 분야를 촉진하는 데 본 발명자에 의해 기여되는 개념을 이해함에 있어서 독자를 돕기 위한 교육적 목적을 위한 것이 되도록 의도되며, 그러한 구체적으로 기재된 예 및 조건에 대한 제한이 없는 것으로서 해석되어야 한다. 더욱이, 본 개시의 원리, 양태, 및 실시형태뿐만 아니라, 그 특정한 예를 기재하는 본원에서의 모든 진술은 그 구조적 및 기능적 등가물 둘 모두를 포괄하도록 의도된다. 추가적으로, 그러한 등가물은 현재 알려진 등가물뿐만 아니라 미래에 개발된 등가물 둘 모두를 포함하도록 의도된다.

Claims (30)

  1. 문서 프로세싱을 위한 로봇 프로세스 자동화(robotic process automation; RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법에 있어서,
    입력 문서를 프로세싱하기 위해 제1 로봇에 의해 상기 RPA 워크플로우의 하나 이상의 문서 프로세싱 활동을 실행하는 단계;
    상기 RPA 워크플로우의 유저 유효성 확인 활동(user validation activity) - 상기 유저 유효성 확인 활동은 상기 하나 이상의 문서 프로세싱 활동의 결과의 유효성을 확인하기 위한 것임 - 에 응답하여 상기 제1 로봇에 의해 상기 RPA 워크플로우의 실행을 중지하는 단계;
    엔드 유저에게 상기 결과의 유효성 확인을 요청하는 유저 요청을 생성하는 단계;
    상기 유저 요청을 상기 엔드 유저로 송신하는 단계; 및
    상기 엔드 유저로부터 수신되는 상기 유효성 확인에 기초하여 제2 로봇에 의해 상기 RPA 워크플로우의 상기 실행을 재개하는 단계
    를 포함하는, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 엔드 유저로부터 수신되는 상기 유효성 확인은 상기 결과가 정확한지의 여부의 표시를 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 엔드 유저로부터 수신되는 상기 유효성 확인은 상기 하나 이상의 문서 프로세싱 활동의 보정된 결과를 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 단계를 더 포함하는, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  5. 제4항에 있어서,
    상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 단계는:
    상기 입력 문서 및 상기 결과의 디스플레이를 좌우 구성(side-by-side configuration)으로 야기하는 단계
    를 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  6. 제4항에 있어서,
    상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 단계는:
    상기 엔드 유저로부터 상기 하나 이상의 문서 프로세싱 활동의 상기 결과의 특정한 결과의 선택을 수신하는 단계; 및
    상기 특정한 결과 및 상기 입력 문서에서의 대응하는 원본 데이터로 하여금 하이라이트 처리되게 하는 단계
    를 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 문서 프로세싱 활동은 광학 문자 인식, 디지털화, 분류, 또는 데이터 추출 중 하나 이상을 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    상기 결과의 유효성 확인이 요청되었음을 나타내는 통지를 상기 엔드 유저에게 송신하는 단계를 더 포함하는, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 제1 로봇 및 상기 제2 로봇은 동일한 로봇인 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  10. 제1항에 있어서,
    상기 제1 로봇 및 상기 제2 로봇은 상이한 로봇인 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 컴퓨터 구현 방법.
  11. 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템에 있어서,
    컴퓨터 명령어를 저장하는 메모리; 및
    상기 컴퓨터 명령어를 실행하도록 구성되는 적어도 하나의 프로세서
    를 포함하되, 상기 컴퓨터 명령어는 상기 적어도 하나의 프로세서로 하여금 동작을 수행하게 하도록 구성되며, 상기 동작은:
    입력 문서를 프로세싱하기 위해 제1 로봇에 의해 상기 RPA 워크플로우의 하나 이상의 문서 프로세싱 활동을 실행하는 동작;
    상기 RPA 워크플로우의 유저 유효성 확인 활동 - 상기 유저 유효성 확인 활동은 상기 하나 이상의 문서 프로세싱 활동의 결과의 유효성을 확인하기 위한 것임 - 에 응답하여 상기 제1 로봇에 의해 상기 RPA 워크플로우의 실행을 중지하는 동작;
    엔드 유저에게 상기 결과의 유효성 확인을 요청하는 유저 요청을 생성하는 동작;
    상기 유저 요청을 상기 엔드 유저로 송신하는 동작; 및
    상기 엔드 유저로부터 수신되는 상기 유효성 확인에 기초하여 제2 로봇에 의해 상기 RPA 워크플로우의 상기 실행을 재개하는 동작
    을 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  12. 제11항에 있어서,
    상기 엔드 유저로부터 수신되는 상기 유효성 확인은 상기 결과가 정확한지의 여부의 표시를 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  13. 제11항에 있어서,
    상기 엔드 유저로부터 수신되는 상기 유효성 확인은 상기 하나 이상의 문서 프로세싱 활동의 보정된 결과를 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  14. 제11항에 있어서,
    상기 동작은, 상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 동작을 더 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  15. 제14항에 있어서,
    상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 동작은, 상기 입력 문서 및 상기 결과의 디스플레이를 좌우 구성으로 야기하는 동작을 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  16. 제14항에 있어서,
    상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 동작은:
    상기 엔드 유저로부터 상기 하나 이상의 문서 프로세싱 활동의 상기 결과의 특정한 결과의 선택을 수신하는 동작; 및
    상기 특정한 결과 및 상기 입력 문서에서의 대응하는 원본 데이터로 하여금 하이라이트 처리되게 하는 동작
    을 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  17. 제11항에 있어서,
    상기 하나 이상의 문서 프로세싱 활동은 광학 문자 인식, 디지털화, 분류, 또는 데이터 추출 중 하나 이상을 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  18. 제11항에 있어서,
    상기 동작은, 상기 결과의 유효성 확인이 요청되었음을 나타내는 통지를 상기 엔드 유저에게 송신하는 동작을 더 포함하는 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  19. 제11항에 있어서,
    상기 제1 로봇 및 상기 제2 로봇은 동일한 로봇인 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  20. 제11항에 있어서,
    상기 제1 로봇 및 상기 제2 로봇은 상이한 로봇인 것인, 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 시스템.
  21. 문서 프로세싱을 위한 로봇 프로세스 자동화(RPA) 워크플로우를 실행하기 위한 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 동작을 수행하게 하도록 구성되고, 상기 동작은:
    입력 문서를 프로세싱하기 위해 제1 로봇에 의해 상기 RPA 워크플로우의 하나 이상의 문서 프로세싱 활동을 실행하는 동작;
    상기 RPA 워크플로우의 유저 유효성 확인 활동 - 상기 유저 유효성 확인 활동은 상기 하나 이상의 문서 프로세싱 활동의 결과의 유효성을 확인하기 위한 것임 - 에 응답하여 상기 제1 로봇에 의해 상기 RPA 워크플로우의 실행을 중지하는 동작;
    엔드 유저에게 상기 결과의 유효성 확인을 요청하는 유저 요청을 생성하는 동작;
    상기 유저 요청을 상기 엔드 유저로 송신하는 동작; 및
    상기 엔드 유저로부터 수신되는 상기 유효성 확인에 기초하여 제2 로봇에 의해 상기 RPA 워크플로우의 상기 실행을 재개하는 동작
    을 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  22. 제21항에 있어서,
    상기 엔드 유저로부터 수신되는 상기 유효성 확인은 상기 결과가 정확한지의 여부의 표시를 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  23. 제21항에 있어서,
    상기 엔드 유저로부터 수신되는 상기 유효성 확인은 상기 하나 이상의 문서 프로세싱 활동의 보정된 결과를 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  24. 제21항에 있어서,
    상기 동작은, 상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 것을 동작을 더 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  25. 제24항에 있어서,
    상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 동작은:
    상기 입력 문서 및 상기 결과의 디스플레이를 좌우 구성으로 야기하는 동작
    을 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  26. 제24항에 있어서,
    상기 엔드 유저에 대한 표시를 위해 상기 입력 문서 및 상기 결과를 묘사하는 유저 인터페이스의 디스플레이를 야기하는 동작은:
    상기 엔드 유저로부터 상기 하나 이상의 문서 프로세싱 활동의 상기 결과의 특정한 결과의 선택을 수신하는 동작; 및
    상기 특정한 결과 및 상기 입력 문서에서의 대응하는 원본 데이터로 하여금 하이라이트 처리되게 하는 동작
    을 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  27. 제21항에 있어서,
    상기 하나 이상의 문서 프로세싱 활동은 광학 문자 인식, 디지털화, 분류, 또는 데이터 추출 중 하나 이상을 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  28. 제21항에 있어서,
    상기 동작은, 상기 결과의 유효성 확인이 요청되었음을 나타내는 통지를 상기 엔드 유저에게 송신하는 것을 더 포함하는 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  29. 제21항에 있어서,
    상기 제1 로봇 및 상기 제2 로봇은 동일한 로봇인 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
  30. 제21항에 있어서,
    상기 제1 로봇 및 상기 제2 로봇은 상이한 로봇인 것인, 비일시적 컴퓨터 판독 가능 매체 상에서 구체화되는 컴퓨터 프로그램.
KR1020200107709A 2019-10-16 2020-08-26 로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우 KR20210045299A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/654,653 US10860905B1 (en) 2019-10-16 2019-10-16 Long running workflows for document processing using robotic process automation
US16/654,653 2019-10-16

Publications (1)

Publication Number Publication Date
KR20210045299A true KR20210045299A (ko) 2021-04-26

Family

ID=72521479

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200107709A KR20210045299A (ko) 2019-10-16 2020-08-26 로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우

Country Status (5)

Country Link
US (3) US10860905B1 (ko)
EP (1) EP3809319A1 (ko)
JP (1) JP2021064353A (ko)
KR (1) KR20210045299A (ko)
CN (1) CN112668386A (ko)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11138539B2 (en) * 2017-08-25 2021-10-05 Target Brands, Inc. Robtic business process automation system utilizing reusable task-based microbots
US11446818B2 (en) * 2019-10-01 2022-09-20 UiPath, Inc. Resuming robotic process automation workflows based on external triggers
US11334465B2 (en) 2019-10-16 2022-05-17 UiPath, Inc. Long running workflows for robotic process automation
US10860905B1 (en) * 2019-10-16 2020-12-08 UiPath, Inc. Long running workflows for document processing using robotic process automation
KR20210048865A (ko) * 2019-10-24 2021-05-04 삼성에스디에스 주식회사 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법
US11232454B2 (en) 2019-11-14 2022-01-25 Bank Of America Corporation Authentication framework for real-time document processing
US11110601B2 (en) * 2019-11-20 2021-09-07 UiPath, Inc. Scheduling robots for robotic process automation
US11321124B2 (en) 2019-12-23 2022-05-03 UiPath, Inc. On-demand cloud robots for robotic process automation
US10654166B1 (en) 2020-02-18 2020-05-19 UiPath, Inc. Automation windows for robotic process automation
US11233861B2 (en) 2020-02-18 2022-01-25 UiPath, Inc. Inter-session automation for robotic process automation (RPA) robots
US11392477B2 (en) 2020-07-09 2022-07-19 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session
US11232170B1 (en) 2020-09-08 2022-01-25 UiPath, Inc. Application-specific graphical element detection
US11507259B2 (en) * 2020-09-08 2022-11-22 UiPath, Inc. Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
US11288064B1 (en) * 2020-09-14 2022-03-29 Sap Se Robotic process automation for interactive documentation
US20220197249A1 (en) * 2020-12-18 2022-06-23 UiPath Inc. Dynamic Cloud Deployment of Robotic Process Automation (RPA) Robots
US20230107316A1 (en) 2021-10-05 2023-04-06 UiPath, Inc. Automatic data transfer between a source and a target using semantic artificial intelligence for robotic process automation
US11816621B2 (en) * 2021-10-26 2023-11-14 Bank Of America Corporation Multi-computer tool for tracking and analysis of bot performance
CN113938658A (zh) * 2021-11-29 2022-01-14 京北方信息技术股份有限公司 一种机器人实时监控方法、装置、存储介质及电子设备
US20230339102A1 (en) 2022-04-20 2023-10-26 UiPath, Inc. System, apparatus, and method for deploying robotic process automations across multiple operating systems
US20240142917A1 (en) 2022-10-27 2024-05-02 UiPath, Inc. Semantic automation builder for robotic process automation

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1256900A1 (en) * 2001-05-09 2002-11-13 Requisite Technology Inc. Database entry system and method employing optical character recognition
US20050147054A1 (en) * 2003-10-23 2005-07-07 Loo Rose P. Navigational bar
JP2006345318A (ja) * 2005-06-09 2006-12-21 Canon Inc 画像処理システム及び画像処理方法
US8457448B2 (en) * 2008-02-04 2013-06-04 Hewlett-Packard Development Company, L.P. Removing inserted text from an image using extrapolation for replacement pixels after optical character recognition
US20100064357A1 (en) 2008-09-09 2010-03-11 Kerstin Baird Business Processing System Combining Human Workflow, Distributed Events, And Automated Processes
US9754231B2 (en) 2009-03-11 2017-09-05 International Business Machines Corporation Human task integration into BPEL process via presence driven delivery
US8375389B2 (en) 2010-10-20 2013-02-12 Microsoft Corporation Ordered scheduling of suspended processes based on resumption events
US10372508B2 (en) 2016-03-17 2019-08-06 Wipro Limited Method and system for dynamically integrating bots
US11295228B2 (en) 2016-03-21 2022-04-05 Wipro Limited Methods for creating automated dynamic workflows of interoperable bots and devices thereof
US11107090B2 (en) * 2016-06-06 2021-08-31 Epiance Software Pvt. Ltd. System and method for automated content generation
EP3437038A4 (en) 2016-07-20 2019-08-28 Hewlett-Packard Development Company, L.P. CREATING DIGITAL WORKERS IN ORGANIZATIONS
US10339027B2 (en) 2016-09-06 2019-07-02 Accenture Global Solutions Limited Automation identification diagnostic tool
US10402163B2 (en) 2017-02-14 2019-09-03 Accenture Global Solutions Limited Intelligent data extraction
US10682761B2 (en) * 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
US10489502B2 (en) * 2017-06-30 2019-11-26 Accenture Global Solutions Limited Document processing
US11562143B2 (en) * 2017-06-30 2023-01-24 Accenture Global Solutions Limited Artificial intelligence (AI) based document processor
US11003796B2 (en) * 2017-06-30 2021-05-11 Accenture Global Solutions Limited Artificial intelligence based document processor
US11074528B2 (en) 2017-08-31 2021-07-27 Accenture Global Solutions Limited Robotic operations control system for a blended workforce
US10474755B2 (en) * 2017-11-03 2019-11-12 Bank Of America Corporation Robotics assisted production support utility
US20190155225A1 (en) 2017-11-21 2019-05-23 Accenture Global Solutions Limited Bot management framework for robotic process automation systems
US11709854B2 (en) * 2018-01-02 2023-07-25 Bank Of America Corporation Artificial intelligence based smart data engine
US10726045B2 (en) * 2018-03-19 2020-07-28 Accenture Global Solutions Limited Resource-efficient record processing in unified automation platforms for robotic process automation
US11366857B2 (en) * 2018-08-21 2022-06-21 Directly, Inc. Artificial intelligence communications agent
US10698745B2 (en) * 2018-08-29 2020-06-30 Accenture Global Solutions Limited Adapter extension for inbound messages from robotic automation platforms to unified automation platform
US11687827B2 (en) * 2018-10-04 2023-06-27 Accenture Global Solutions Limited Artificial intelligence (AI)-based regulatory data processing system
US11367027B2 (en) * 2018-10-25 2022-06-21 Nintex UK Ltd. Titanium task-engine system
US11429433B2 (en) * 2019-01-16 2022-08-30 Epiance Software Pvt. Ltd. Process discovery and automatic robotic scripts generation for distributed computing resources
US10599722B1 (en) * 2019-05-17 2020-03-24 Fmr Llc Systems and methods for automated document comparison
US10963231B1 (en) * 2019-10-15 2021-03-30 UiPath, Inc. Using artificial intelligence to select and chain models for robotic process automation
US10860905B1 (en) * 2019-10-16 2020-12-08 UiPath, Inc. Long running workflows for document processing using robotic process automation
US11233861B2 (en) * 2020-02-18 2022-01-25 UiPath, Inc. Inter-session automation for robotic process automation (RPA) robots
US10654166B1 (en) * 2020-02-18 2020-05-19 UiPath, Inc. Automation windows for robotic process automation
US11392477B2 (en) * 2020-07-09 2022-07-19 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session

Also Published As

Publication number Publication date
US20210117742A1 (en) 2021-04-22
US10860905B1 (en) 2020-12-08
EP3809319A1 (en) 2021-04-21
US20220156540A1 (en) 2022-05-19
CN112668386A (zh) 2021-04-16
US11593599B2 (en) 2023-02-28
US11288557B2 (en) 2022-03-29
JP2021064353A (ja) 2021-04-22

Similar Documents

Publication Publication Date Title
US11593599B2 (en) Long running workflows for document processing using robotic process automation
US11704224B2 (en) Long running workflows for robotic process automation
KR102339757B1 (ko) 로봇 프로세스 자동화를 위한 로봇 스케줄링
US11442837B2 (en) Monitoring long running workflows for robotic process automation
KR20220083976A (ko) 액션 센터, 인공 지능(ai)/머신 학습(ml) 모델 재트레이닝 하드웨어 제어, 및 ai/ml 모델 설정 관리를 통한 ai/ml 모델들의 보충
JP2022552466A (ja) ロボティック・プロセス・オートメーション・ワークフローのための再構成可能なワークベンチパイプライン
CN116483487A (zh) 基于浏览器的机器人过程自动化机器人设计界面
US11507059B1 (en) System and computer-implemented method for seamless consumption of automations
US11797770B2 (en) Self-improving document classification and splitting for document processing in robotic process automation
US11494713B2 (en) Robotic process automation analytics platform
US11966566B2 (en) Mapping interactive UI elements to RPA object repositories for RPA development
US20230101948A1 (en) Generation of rpa platform design components for configuring rpa platforms
US20230102809A1 (en) Preconfigured robots for robotic process automation
US11971705B2 (en) Autoscaling strategies for robotic process automation
US20220191167A1 (en) Organizational modelling for routing rpa related services of an rpa cloud suite
US20220066794A1 (en) Robotic process automation data connector
US20220091908A1 (en) Filter instantiation for process graphs of rpa workflows