KR20220079830A - 로봇 프로세스 자동화 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인 - Google Patents

로봇 프로세스 자동화 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인 Download PDF

Info

Publication number
KR20220079830A
KR20220079830A KR1020227010622A KR20227010622A KR20220079830A KR 20220079830 A KR20220079830 A KR 20220079830A KR 1020227010622 A KR1020227010622 A KR 1020227010622A KR 20227010622 A KR20227010622 A KR 20227010622A KR 20220079830 A KR20220079830 A KR 20220079830A
Authority
KR
South Korea
Prior art keywords
pipeline
component
workflow
components
rpa
Prior art date
Application number
KR1020227010622A
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 KR20220079830A publication Critical patent/KR20220079830A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/445Exploiting fine grain parallelism, i.e. parallelism at instruction level
    • G06F8/4452Software pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/045Explanation of inference; Explainable artificial intelligence [XAI]; Interpretable artificial intelligence
    • 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
    • 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/06315Needs-based resource requirements planning or 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/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/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
    • G06Q10/103Workflow collaboration or project management
    • 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
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • 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
    • G06Q30/00Commerce
    • G06Q30/04Billing or invoicing

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Data Mining & Analysis (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Educational Administration (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Human Computer Interaction (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

로보틱 프로세스 자동화(RPA) 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인이 개시된다. 상이한 사용자마다 상이한 워크벤치 파이프라인이 구축될 수 있다. 예를 들어, 처음에 글로벌 워크플로우(예컨대, 영수증 추출기)가 구축되고 사용될 수 있지만, 이 워크플로우는 소정의 사용자 또는 소정의 작업에 대해 최적으로 작동하지 않을 수도 아예 작동하지 않을 수도 있다. 주어진 작업에 대해 글로벌 워크플로우를 전문화하기 위해 머신 러닝(ML) 모델이 잠재적으로 휴먼인더루프(human-in-the-loop)와 함께 채택될 수 있다.

Description

로보틱 프로세스 자동화 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인
[관련 출원과의 상호 참조]
본원은 2019년 2월 9일에 출원한 미국 정식 특허출원 제16/707,977호 및 2019년 10월 15일에 출원한 미국 임시 특허출원 제62/915,413호에 대해 우선권의 혜택을 주장한다. 이들 선제출 출원의 주제는 참조에 의해 전체가 본원에 포함된다.
[분야]
본 발명은 개괄적으로 로보틱 프로세스 자동화(robotic process automation, RPA)에 관한 것이고, 보다 상세하게는 RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인에 관한 것이다.
현재의 RPA 워크플로우는 특성상 결정론적이며, 액티비티(activity)의 정적 파이프라인을 포함한다. 다시 말해, 워크플로우 실행시 로봇에 의해 단일의 논리적 플로우가 작성되고 적용된다. "파이프라인"은 데이터를 추출하고 또/또는 추출된 데이터에 기초하여 취해지는 소정의 액션을 추출하는 일련의 단계들을 지칭한다. 그러나, 그러한 정적 파이프라인은 모든 상황에서 최선일 수 없으며, 특히 시간에 따라 변하거나 특정 사용자에 대해 타겟팅된 경우가 그렇다. 따라서, 개선된 솔루션이 바람직할 수 있다.
본 발명의 소정의 실시형태는 현재의 RPA 기술에 의해 아직 완전히 식별되거나, 이해되거나 해결되지 못한 당업계의 문제 및 요구에 대한 솔루션을 제공할 수 있다. 예를 들어, 본 발명의 일부 실시형태는 RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인에 관한 것이다.
일 실시형태에서, ML를 사용하여 RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 제공하기 위한 컴퓨터 구현 방법은 RPA 로봇에 의해 글로벌 워크플로우를 실행하는 단계를 포함한다. 컴퓨터 구현 방법은 또한, 글로벌 워크플로우의 파이프라인이 시나리오에 맞게 정확하게 작동하고 있지 않다고 결정하는 단계와, AI-구동 테스팅(artificial intelligence-driven testing)을 채택하여, 시나리오에 맞게 글로벌 워크플로우를 보완하거나 글로벌 워크플로우를 전문화하기 위해 파이프라인에 적용될 그리고/또는 글로벌 워크플로우의 파이프라인에서 수정될 하나 이상의 ML 모델 또는 다른 컴포넌트를 식별하는 단계를 포함한다. 컴퓨터 구현 방법은 식별된 ML 모델 및/또는 다른 컴포넌트를 로컬 워크플로우의 파이프라인에서 구현하는 단계를 더 포함한다.
다른 실시형태에서, ML를 사용하여 RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 제공하는 컴퓨터 구현 방법은, 글로벌 워크플로우의 파이프라인이 시나리오에 맞게 정확하게 작동하고 있지 않다고 결정하는 단계와, AI-구동 테스팅을 채택하여, 시나리오에 맞게 글로벌 워크플로우를 보완하거나 글로벌 워크플로우를 전문화하기 위해 파이프라인에 적용될 그리고/또는 글로벌 워크플로우의 파이프라인에서 수정될 하나 이상의 ML 모델 또는 다른 컴포넌트를 식별하는 단계를 포함한다. 컴퓨터 구현 방법은 또한 식별된 ML 모델 및/또는 다른 컴포넌트를 로컬 워크플로우의 파이프라인에서 구현하는 단계를 더 포함한다.
또 다른 실시형태에서, ML를 사용하여 RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 제공하는 컴퓨터 구현 방법은, AI-구동 테스팅을 채택하여, 시나리오에 맞게 글로벌 워크플로우를 보완하거나 글로벌 워크플로우를 전문화하기 위해 파이프라인에 적용될 그리고/또는 글로벌 워크플로우의 파이프라인에서 수정될 하나 이상의 ML 모델 또는 다른 컴포넌트를 식별하는 단계와, 식별된 ML 모델 및/또는 다른 컴넌트를 로컬 워크플로우의 파이프라인에서 구현하는 단계를 포함한다. AI-구동 테스팅은 파이프라인의 제1 컴포넌트의 출력을 체크하는 것과, 제1 컴포넌트의 출력이 부정확할 경우, 제1 컴포넌트를 재구성하거나 대체하는 것을 포함한다. AI 테스팅은 또한 파이프라인의 출력이 정확하거나 모든 컴포넌트의 출력이 체크될 때까지 파이프라인에서 각각의 후속 컴포넌트의 출력을 체크하는 것과, 각각의 부정확하게 동작하는 컴포넌트를 재구성하거나 대체하는 것을 포함한다.
본 발명의 소정의 실시형태의 효과가 용이하게 이해될 수 있도록, 첨부하는 도면에 예시하는 소정의 실시형태들을 참조하여 앞에서 간략하게 설명한 본 발명의 보다 상세한 설명을 제공할 것이다. 이들 도면은 본 발명의 전형적인 실시형태만을 나타내고 그래서 그 범위를 제한하는 것으로 간주되어서는 안 된다는 것을 이해해야 할 것이며, 첨부 도면을 사용해 특이점 및 상세를 추가하여 본 발명을 설명할 것이다.
도 1은 본 발명의 일 실시형태에 따른 RPA 시스템을 예시하는 아키텍처도이다.
도 2는 본 발명의 일 실시형태에 따른 배포된 RPA 시스템을 예시하는 아키텍처도이다.
도 3은 본 발명의 일 실시형태에 따른, 디자이너, 액티비티, 및 드라이버 사이의 관계를 예시하는 아키텍처도이다.
도 4는 본 발명의 일 실시형태에 따른 RPA 시스템을 예시하는 컴퓨팅 시스템의 아키텍처도이다.
도 5는 본 발명의 일 실시형태에 따른, RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 구현하도록 구성된 컴퓨팅 시스템을 예시하는 아키텍처도이다.
도 6은 본 발명의 일 실시형태에 따른, 출력을 생산하지 않는(또는 정확한 출력을 생산하지 않은) 재구성 가능한 워크벤치 파이프라인 및 그것의 성능을 보정하는 동작을 예시한다.
도 7은 본 발명의 일 실시형태에 따른, ML을 사용하여 RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 구현하는 프로세스를 예시하는 흐름도이다.
일부 실시형태는 RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인에 관한 것이다. 일부 실시형태에서, 재구성 가능한 워크벤치 파이프라인은 머신 러닝(ML) 모델을 적용하여 파이프라인의 동작을 수정하거나 개선하려고 시도할 수 있다. 소정의 실시형태에서, 이것은 ML 모델보다는 규칙 기반의 동작일 수 있다. 일부 실시형태에서, 시스템은 주어진 사용 케이스를 충족시키기 위하여 모델 및/또는 변형 컴포넌트를 제안하는 컨트롤을 가질 수 있다.
예를 들면, 다양한 첨부물(예컨대, 인보이스, 구매 주문서 등)을 가질 수 있는 이메일이 수신되는 경우를 고려한다. 이메일에서 인보이스를 식별하고 플래깅한 다음 플래깅된 인보이스를, 인보이스를 프로세싱하기 위한 ML 모델에 전송하는 게이팅 함수로서 동작하는 컴포넌트를 파이라인에 구비하는 것이 바람직할 수 있다. 그러나, 파이프라인은 모든 케이스에서 정확하게 동작하지 못할 수도 있다. 파이프라인을 통해 인보이스를 실행하는 경우, 시스템은 그래서 파이프라인의 단부에서 출력이 있는지의 여부를 감시할 수 있다. 출력이 없는 경우, 시스템은 상이한 파이프라인 스테이지들에 일련의 변형을 적용함으로써 파이프라인에 대해 수정을 가할 수 있다. 일례로 시스템은 제1 스테이지에서 시작하고 각각의 후속 스테이지를 체크하여 잘못의 원인을 찾는다. 시스템은 파이프라인의 컴포넌트 1을 체크한 다음, 컴포넌트 2를, 그리고 컴포넌트 3을, 등등 체크한다. 파이프라인이 이메일에서 문서들을 적절하게 식별하는 것을 못하고 있다면, 시스템은 솔루션을 찾는 시도로 파이프라인 컴포넌트들의 상이한 인스턴스 및/또는 구성을 적용해 볼 수 있다. 솔루션을 찾을 수 없는 경우, 시스템은 RPA 개발자에게 통보할 수 있다.
일부 실시형태의 재구성 가능한 파이프라인은 문서 프로세싱, 기타 데이터 변환 파이프라인, 데이터 추출 파이프라인 등에 적용될 수 있다. 재구성 가능한 파이프라인은 인간 입력을 위한 컴포넌트 및/또는 분류, 추출 등등을 위한 전문화된 모델을 수반할 수 있다. 예를 들어, 처음에 글로벌 워크플로우(예컨대, 영수증 추출기)가 구축되고 사용될 수 있지만, 이 워크플로우는 소정의 사용자 또는 소정의 작업에 대해 적절하게 작동하지 않거나 아예 작동하지 않을 수도 있다. ML 모델은 주어진 작업에 대해 글로벌 워크플로우를 전문화하기 위해 잠재적으로 휴먼인더루프(human-in-the-loop)와 함께 채택될 수 있다. 일부 실시형태에서, 인간 입력이 추적되고 ML 모델을 재훈련시키는 데 사용될 수 있는데 ML 모델은 점점 더 많은 인간 입력이 수집되고 재훈련에 사용됨에 따라 보다 지능적이게 된다.
문서 프로세싱 및 기타 복잡한 AI(artificial intelligence) 애플리케이션의 상황에서는, 사용자들이 상이한 데이터, 사용 케이스, 인터랙션 가능한 시스템, 및 출력을 사용하는 경향이 있다. 예를 들어, Walmart®과 소매점 "맘 앤드 팜" 둘 다는 인보이스 프로세싱 솔루션의 효과를 볼 있지만, 이들의 요건은 상당히 다르다. 소매점용의 인보이스 프로세싱 솔루션은 수신 이메일로부터 인보이스를 리트리빙하는 것, 광학 문자 인식(OCR) 및 /또는 이미지 인식(예컨대, 이하에서 더 상세하게 설명하는 컴퓨터 비전(CV, computer vision) 기술을 사용함)을 사용하여 인보이스에 대해 텍스트 인식을 수행하는 것, OCR/CV에 의해 인식된 데이터로부터 인보이스 정보를 리트리빙하는 것, 및 리트리빙된 인보이스 정보를 QuickBooks®에 입력하는 것을 수빈할 수 있다.
그러나, Walmart®용의 인보이스 프로세싱 솔루션은 실질적으로 더 복잡할 수 있다. 이러한 대형 슈퍼마켓(retailer)은 상이한 시스템들로 이동해야 하는 대량의 상이한 유형의 인보이스들을 취급하고 영수증과는 다른 추가 아이템이 존재한다. 예를 들면, 다수의 문서 유형이 포함될 수 있고, 분류기를 사용하여 정확한 문서를 픽업하는 것이 필요할 수 있다. 그러므로 대형 슈퍼마켓은 분류기가 이 데이터에서 인보이스의 유형을 식별하고 그 유형에 기초하여 인보이스를 정확한 다운스트림 워크플로우로 전달하는 것을 바랄 수 있다. 또한 이러한 대형 슈퍼마켓은 상이한 언어로 작성된 인보이스를 받을 가능성이 있고, 그래서 언어 프로세서가 이들 인보이스를 예컨대 영어로 변환하는 것이 유리할 수도 있다.
일부 실시형태의 워크벤치 프로파일은 글로벌 요건으로부터 워크플로우를 로컬 애플리케이션으로 맞춤화(custom tailor)하기 위해 모델의 "블록" 또는 다른 로직을 워크플로우에 적용되게 한다. 이들 블록 및/또는 로직은 파이프라인의 스테이지(또는 컴포넌트)이다. 시작하면 일부 실시형태에 있어서 RPA 개발자는 지능이 내장되어 있는(예컨대, ML 모델의 호출을 통해) 소정의 애플리케이션에 대한 "글로벌 "워크플로우로서 초기 워크플로우를 작성한다. ML 모델은 실행 로봇의 행동을 모니터링하고, 소정의 액티비티가 워크플로우에 포함되어야 하는 것, 다른 액티비티와 대체되어야 하는 것, 또는 수정되어야 하는 것을 자동으로 결정할 수 있다. 예를 들어, 모니터링 ML 모델은, 로봇이 인보이스를 처리한 후에 사용자가 빈번하게 QuickBooks®로 이동하고 소정의 필드를 정정하는 것을 결정한다면, ML 모델은 상이한 텍스트 인식 모델 또는 CV 모델을 리트리빙하고(예컨대, 텍스트는 양식화된 단어 및 이미지가 포함된 회사 로고 내에 양식화되어 배치됨) 대신에 이 모델을 사용하기 위해 텍스트 인식 액티비티를 수정할 수 있다.
일부 실시형태에서, 베이스 ML 모델이 글로벌 워크플로우에 사용될 수 있고, 커스텀 모델은 나중에 추가될 수 있다. 이런 의미에서, 워크플로우는 초기 구현 후에 블록을 추가, 제거 및/또는 변경할 수 있는 플러그 앤 플레이 기능(plug-and-play functionality)을 가질 수 있다. 예를 들어, 글로벌 모델은 영수증 데이터 추출 모델일 수 있지만, 스페인어로 된 영수증을 파싱하기 위해 스페인어 번역기 모델이 로컬 모델로서 추가될 수 있다.
도 1은 본 발명의 일 실시형태에 따른 RPA 시스템(100)을 예시하는 아키텍처도이다. RPA 시스템(100)은 개발자가 워크플로우를 설계하고 구현할 수 있게 하는 디자이너(110)를 포함한다. 디자이너(110)는 애플리케이션 통합 솔루션뿐만 아니라 제3자 애플리케이션, 관리 정보 기술(IT) 작업, 및 비즈니스 IT 프로세스의 자동화를 제공할 수 있다. 디자이너(110)는 비즈니스 프로세스의 그래픽 표현인 자동화 프로젝트의 개발을 용이하게 할 수 있다. 간단히 말해서, 디자이너(110)는 워크플로우 및 로봇의 개발 및 배포를 용이하게 한다.
자동화 프로젝트는 여기에서 "액티비티(activity)"로서 정의되는, 워크플로우에서 개발된 커스텀 세트의 단계들 사이의 관계 및 실행 순서의 개발자 컨트롤을 부여함으로써 규칙 기반의 프로세스의 자동화를 가능하게 한다. 디자이너(110)의 실시형태의 하나의 상업적 예가 UiPath Studio™이다. 각각의 액티비티는 버튼을 클릭하는 것, 파일을 읽는 것, 로그 패널에 기록하는 것 등과 같은 액션을 포함할 수 있다. 일부 실시형태에서, 워크플로우는 네스팅될 수도 임베딩될 수도 있다.
일부 유형의 워크플로우는 시퀀스, 플로우차트, 유한 상태 머신(FSM, Finite State Machine), 및/또는 글로벌 예외 핸들러를 포함할 수 있지만 이들에 국한되지는 않는다. 시퀀스는 선형 프로세스에 특히 적합하여 워크플로우의 클러스터링 없이 하나의 액티비티로부터 다른 하나로의 흐름을 가능하게 한다. 플로우차트는 보다 복잡한 비즈니스 로직에 특히 적합하여 다중 브랜칭 로직 오퍼레이터를 통해 보다 다양한 방식으로 액티비티의 결정 및 연결의 통합을 가능하게 한다. FSM는 대규모 워크플로우에 특히 적합할 수 있다. FSM는 실행시 조건(즉, 전환) 또는 액티비티에 의해 트리거되는 유한 개의 상태를 사용할 수 있다. 글로벌 예외 핸들러는 실행 에러에 직면할 경우에 워크플로우 행동을 결정하고 프로세스를 디버깅하기에 특히 적합할 수 있다.
디자이너(110)에서 워크플로우가 개발되면, 디자이너(100)에서 개발된 워크플로우를 실행하는 하나 이상의 로봇(130)을 조율(orchestrate)하는 컨덕터(120)에 의해 비즈니스 프로세스의 실행이 조율된다. 컨덕터(120)의 실시형태의 하나의 상업적 예가 UiPath Orchestrator™이다. 컨덕터(120)는 일 실시형태에서 리소스의 생성, 모니터링, 및 배포의 관리를 용이하게 한다. 컨덕터(120)는 제3자 솔루션 및 애플리케이션과의 통합 포인트로서 역할할 수 있다.
컨덕터(120)는 다수의 로봇(130)을 관리하여 중앙집중화된 포인트로부터 로봇(130)을 연결하고 실행할 수 있다. 관리될 수 있는 로봇(130)의 유형은 유인 로봇(132), 무인 로봇(134), 개발 로봇(무인 로봇(134)과 유사하지만 개발 및 테스트 용도로 사용됨), 및 비생산 로봇(유인 로봇(132)과 유사하지만 개발 및 테스트 용도로 사용됨)를 포함하나 이들에 국한되지는 않는다. 유인 로봇(132)은 사용자 이벤트에 의해 트리거되고 동일한 컴퓨팅 시스템 상에서 인간과 함께 동작한다. 유인 로봇(132)은 중앙집중화된 프로세스 배포 및 로깅 매체에 대해 컨덕터(120)와 함께 사용될 수 있다. 유인 로봇(132)은 인간 사용자가 다양한 작업을 달성하도록 지원할 수 있고, 사용자 이벤트에 의해 트리거될 수 있다. 일부 실시형태에서, 프로세스는 이러한 유형의 로봇 상에서 컨덕터(120)로부터 시작될 수 없고 그리고/또는 잠금 화면에서 구동될 수 없다. 소정의 실시형태에서, 유인 로봇(132)은 로봇 트레이로부터만 또는 커맨드 프롬프트로부터만 시작될 수 있다. 유인 로봇(132)은 일부 실시형태에서는 인간 감독 하에서 구동되어야 한다.
무인 로봇(134)은 가상 환경에서 무인으로 구동되며 다수의 프로세스를 자동화할 수 있다. 유인 로봇(134)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐에 대한 지원 제공을 담당할 수 있다. 모든 로봇 유형에 대한 디버깅은 일부 실시형태에서는 디자이너(110)에서 행해질 수 있다. 유인 및 무인 로봇 둘 다는, 메인프레임, 웹 애플리케이션, VM, 엔터프라이즈 애플리케이션(예컨대, SAP®, SalesForce®, Oracle® 등에서 생산한 것), 및 컴퓨팅 시스템 애플리케이션(예컨대, 데스크탑 및 랩탑 애플리케이션, 모바일 디바이스 애플리케이션, 웨어러블 컴퓨터 애플리케이션 등)을 포함하나 이들에 국한되지 않은 다양한 시스템 및 애플리케이션을 자동화할 수 있다.
컨덕터(120)는, 프로비저닝, 배포, 구성화, 큐잉, 모니터링, 로깅, 및/또는 인터커넥트성(interconnectivity) 제공을 포함하나 이들에 국한되지 않은 다양한 기능을 가질 수 있다. 프로비저닝은 로봇(130)과 컨덕터(120)(예컨대, 웹 애플리케이션) 간의 접속의 생성 및 유지관리를 포함할 수 있다. 배포는 실행을 위해 할당된 로봇(130)에 패키지 버전의 정확한 전달을 보장하는 것을 포함할 수 있다. 구성화(configuration)는 로봇 환경 및 프로세스 구성의 유지관리 및 전달을 포함할 수 있다. 큐잉은 큐 및 큐 아이템의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터를 추적하고 사용자 권한을 관리하는 것을 포함할 수 있다. 로깅은 데이터베이스(예컨대, SQL 데이터베이스) 및/또는 다른 스토리지 메커니즘(예컨대, 대량의 데이터세트를 저장하고 신속하게 조회할 수 있는 능력을 제공하는 ElasticSearch®)에의 로그를 저장하고 인덱싱하는 것을 포함할 수 있다. 컨덕터(120)는 제3자 솔루션 및/또는 애플리케이션에 대한 중앙집중화된 통신 포인트로서 역할함으로써 인터커넥트성을 제공할 수 있다.
로봇(130)은 디자이너(100)에서 구축된 워크플로우를 운용하는 실행 에이전트이다. 로봇(130)의 실시형태의 하나의 상업적 예가 UiPath Robots™이다. 일부 실시형태에서, 로봇(130)은 디폴트로 관리되는 Microsoft Windows®의 SCM(Service Control Manager)를 인스톨한다. 그 결과로 로봇(130)은 로컬 시스템 계정 하에 인터랙티브 Windows® 세션을 오픈하고 Windows® 서비스의 권한을 가질 수 있다.
일부 실시형태에서, 로봇(130)은 사용자 모드에서 인스톨될 수 있다. 로봇(130)에게 이것은 주어진 로봇(130)이 인스톨된 상황에서 사용자와 동일한 권한을 갖는다는 것을 의미한다. 이 기능은 각 머신의 잠재력을 최대한 활용하는 고성능(HD, High Density) 로봇에도 사용 가능할 수 있다. 일부 실시형태에서, 임의의 유형의 로봇(130)은 HD 환경에서 구성될 수 있다.
일부 실시형태에서의 로봇(130)은 여러 컴포넌트로 분할되는데, 각각은 특정 자동화 작업에 전용된다. 일부 실시형태에서의 로봇 컴포넌트는 SCM-관리 로봇 서비스, 사용자 모드 로봇 서비스, 엑스큐터(executor), 에이전트 및 커맨드 라인을 포함하지만 이들에 국한되지 않는다. SCM-관리 로봇 서비스는 Windows® 세션을 관리 및 모니터링하고 컨덕터(120)와 실행 호스트(즉, 로봇(130)이 실행되고 있는 컴퓨팅 시스템) 사이에서 프록시로서 역할한다. 이들 서비스는 로봇(130)에 대한 자격증명(credential)을 위탁받고 관리한다. 콘솔 애플리케이션이 로컬 시스템에서 SCM에 의해 시작된다.
일부 실시형태에서의 사용자 모드 로봇 서비스는 Windows® 세션을 관리 및 모니터링하고 컨덕터(120)와 실행 호스트 사이에서 프록시로서 역할한다. 사용자 모드 로봇 서비스는 로봇(130)에 대한 자격증명을 위탁받고 관리할 수 있다. SCM-관리 로봇 서비스가 인스톨되지 않은 경우 Windows® 애플리케이션이 자동으로 실행될 수 있다.
엑스큐터는 Windows® 세션에서 주어진 작업을 실행할 수 있다(즉, 워크플로를 실행할 수 있다). 엑스큐터는 모니터별 DPI(인치당 도트 수, dots per inch) 설정을 인식할 수 있다. 에이전트는 시스템 트레이 윈도우에서 사용 가능한 작업을 디스플레이하는 WPF(Windows® Presentation Foundation) 애플리케이션일 수 있다. 에이전트는 서비스의 클라이언트일 수 있다. 에이전트는 작업의 시작 또는 중지 및 설정 변경을 요청할 수 있다. 커맨드 라인은 서비스의 클라이언트이다. 커맨드 라인은 작업 시작을 요청할 수 있고 해당 출력을 대기하는 콘솔 애플리케이션이다.
전술한 바와 같이 로봇(130)의 컴포넌트를 분할하면 개발자, 서포트 사용자, 및 컴퓨팅 시스템이 각 컴포넌트가 실행하고 있는 것을 보다 쉽게 구동, 식별 및 추적하는 데 도움이 된다. 엑스큐터 및 서비스에 대해 상이한 방화벽 규칙을 설정하는 것과 같은 특수 행동도 이러한 방식으로 컴포넌트별로 구성될 수 있다. 일부 실시형태에서는 엑스큐터가 모니터별 DPI 설정을 항상 인식할 수 있다. 결과적으로 워크플로우는 그것이 작성된 컴퓨팅 시스템의 구성에 관계 없이 어느 DPI에서도 실행될 수 있다. 디자이너(110)로부터의 프로젝트도 일부 실시형태에서의 브라우저 줌 레벨과 무관할 수 있다. DPI를 인식하지 못하거나 의도적으로 인식하지 못하는 것으로 표시되는 애플리케이션의 경우 일부 실시형태에서는 DPI가 비활성화될 수도 있다.
도 2는 본 발명의 일 실시형태에 따른 배포된 RPA 시스템(200)을 예시하는 아키텍처도이다. 일부 실시형태에서, RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수도 그것의 일부일 수도 있다. 클라이언트측, 서버측, 또는 둘 모두는 본 발명의 범위를 벗어나지 않고 임의의 원하는 수의 컴퓨팅 시스템을 포함할 수 있는 것을 알아야 한다. 클라이언트측에서, 로봇 애플리케이션(210)은 엑스큐터(212), 에이전트(214), 및 디자이너(216)를 포함한다. 그런데 일부 실시형태에서는 디자이너(216)가 컴퓨팅 시스템(210)에서 구동되지 않을 수도 있다. 엑스큐터(212)는 프로세스를 구동하고 있다. 도 2에 도시하는 바와 같이, 여러 비즈니스 프로젝트가 동시에 구동될 수 있다. 에이전트(214)(예컨대, Windows® 서비스)는 이 실시형태에서 모든 엑스큐터(212)에 대한 단일 접촉 포인트이다. 이 실시형태에서의 모든 메시지는 컨덕터(230)에 로그되는데 컨덕터(230)는 데이터베이스 서버(240), 인덱서 서버(250), 또는 둘 다를 통해서도 이들을 처리한다. 도 1과 관련하여 전술한 바와 같이, 엑스큐터(212)는 로봇의 컴포넌트일 수 있다.
일부 실시형태에서, 로봇은 머신 이름과 사용자 이름 사이의 연관관계(association)를 나타낸다. 로봇은 동시에 다수의 엑스큐터를 관리할 수 있다. 동시에 구동되는 다수의 인터랙티브 세션을 지원하는 컴퓨팅 시스템(예컨대, Windows® 서버 2012)에서는 다수의 로봇이 동시에 구동될 수 있고 각각은 별도의 Windows® 세션에서 고유한 사용자 이름을 사용한다. 이것이 앞에서는 HD 로봇이라고 칭해진다.
에이전트(214)는 또한 로봇의 상태를 전송하고(예컨대, 로봇이 여전히 기능중임을 나타내는 "하트비트" 메시지를 주기적으로 전송) 실행될 패키지의 필수 버전을 다운로드하는 역할을 한다. 에이전트(214)와 컨덕터(230) 사이의 통신은 일부 실시형태에서는 항상 에이전트(214)에 의해 개시된다. 통보 시나리오에서, 에이전트(214)는 로봇에 커맨드(예를 들어, 시작, 중지 등)을 전송하기 위해 나중에 컨덕터(230)에 의해 사용되는 WebSocket 채널을 오픈할 수 있다.
서버측에서는 프레젠테이션 계층(웹 애플리케이션(232), OData(Open Data Protocol) REST(Representative State Transfer) API(Application Programming Interface) 엔드포인트(234), 통보 및 모니터링 API(236)), 서비스 계층(API 구현/비즈니스 로직(238) 및 지속성 계층(데이터베이스 서버(240) 및 인덱서 서버(250))이 포함된다. 컨덕터(230)는 웹 애플리케이션(232), OData REST API 엔드포인트(234), 통보 및 모니터링 API(236), API 구현/비즈니스 로직(238)을 포함한다. 일부 실시형태에서는, 사용자가 컨덕터(220)의 인터페이스에서 (예컨대, 브라우저(220)를 통해) 수행하는 대부분의 액션이 다양한 API를 호출함으로써 수행된다. 이러한 액션은 본 발명의 범위를 벗어나지 않고서, 로봇에 대한 작업 시작, 큐에서의 데이터 추가/제거, 무인 구동을 위한 작업 스케줄링 등을 포함할 수 있지만 이에 국한되지는 않는다. 웹 애플리케이션(232)은 서버 플랫폼의 시각적 계층이다. 이 실시형태에서, 웹 애플리케이션(232)은 HTML(Hypertext Markup Language) 및 JS(JavaScript)를 사용한다. 그러나, 임의의 원하는 마크업 언어, 스크립트 언어, 또는 임의의 다른 포맷도 본 발명의 범위를 벗어나지 않고 사용될 수 있다. 사용자는 컨덕터(230)를 제어하기 위한 다양한 액션을 수행하기 위해 이 실시형태에서는 브라우저(220)를 통해 웹 애플리케이션(232)의 웹 페이지와 인터랙션한다. 예를 들어, 사용자는 로봇 그룹을 작성하고, 로봇에 패키지를 할당하고, 로봇별로 및/또는 프로세스별로 로그를 분석하고, 로봇을 시작 및 중지하는 등을 할 수 있다.
웹 애플리케이션(232)뿐만 아니라, 컨덕터(230)는 OData REST API 엔드포인트(234)를 노출시키는 서비스 계층도 포함한다. 그러나, 본 발명의 범위를 벗어나지 않고 다른 엔드포인트도 포함될 수 있다. REST API는 웹 애플리케이션(232)과 에이전트(214) 둘 다에서 소비된다. 에이전트(214)는 이 실시형태에서 클라이언트 컴퓨터 상의 하나 이상의 로봇의 감독자이다.
이 실시형태의 REST API는 구성화, 로깅, 모니터링 및 큐잉 기능을 망라한다. 구성화 엔드포인트는 일부 실시형태에서 애플리케이션 사용자, 권한, 로봇, 자산, 릴리스, 및 환경을 정의하고 구성하는 데 사용될 수 있다. 로깅 REST 엔드포인트는 예컨대 에러, 로봇이 보낸 명시적 메시지, 및 기타 환경별 정보와 같은 다양한 정보를 로그하는 데 사용될 수 있다. 배포 REST 엔드포인트는 작업 시작 커맨드가 컨덕터(230)에서 사용되는 경우 실행되어야 하는 패키지 버전을 로봇이 조회하는 데 사용될 수 있다. 큐잉 REST 엔드포인트는 큐에 데이터 추가, 큐로부터 트랜잭션 가져오기, 트랜잭션 상태 설정 등과 같이 큐 및 큐 아이템 관리를 담당할 수 있다.
모니터링 REST 엔드포인트는 웹 애플리케이션(232) 및 에이전트(214)를 모니터링할 수 있다. 통보 및 모니터링 API(236)는 에이전트(214)를 등록하고, 구성 설정을 에이전트(214)에 전달하고, 서버 및 에이전트(214)로부터 통보를 송수신하는 데 사용되는 REST 엔드포인트일 수 있다. 통보 및 모니터링 API(236)는 또한 일부 실시형태에서 WebSocket 통신을 사용할 수 있다.
지속성 계층은 이 실시형태에서 한 쌍의 서버 - 데이터베이스 서버(240)(예컨대, SQL 서버)와 인덱서 서버(250)를 포함한다. 이 실시형태에서 데이터베이스 서버(240)는 로봇, 로봇 그룹, 연관된 프로세스, 사용자, 역할, 스케줄 등의 구성을 저장한다. 이 정보는 일부 실시형태에서 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐 및 큐 아이템을 관리할 수 있다. 일부 실시형태에서, 데이터베이스 서버(240)는 (인덱서 서버(250)와 함께 또는 대신하여) 로봇에 의해 로그된 메시지를 저장할 수 있다.
일부 실시형태에서는 선택적인 인덱서 서버(250)가 로봇에 의해 로그된 정보를 저장하고 인덱싱한다. 소정의 실시형태에서, 인덱서 서버(250)는 구성 설정을 통해 비활성화될 수 있다. 일부 실시형태에서, 인덱서 서버(250)는 오픈 소스 프로젝트 전체 텍스트(full-text) 검색 엔진인 ElasticSearch®를 사용한다. (예컨대, 로그 메시지 또는 작성 줄(write line)과 같은 액티비티를 사용하여)로봇에 의해 로그된 메시지는 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(250)로 전송될 수 있으며, 인덱서 서버(250)에서는 향후 활용을 위해 메시지들이 인덱싱된다.
도 3은 본 발명의 일 실시형태에 따른 디자이너(310), 액티비티(320, 330), 및 드라이버(340) 사이의 관계(300)를 예시하는 아키텍처도이다. 앞의 내용에 따르면, 개발자는 디자이너(310)를 사용하여 로봇에 의해 실행되는 워크플로우를 개발한다. 워크플로우는 사용자 정의 액티비티(320) 및 UI 자동화 액티비티(330)를 포함할 수 있다. 일부 실시형태는 여기에서 컴퓨터 비전(CV)이라고 하는 이미지에서 비텍스트 시각적 컴포넌트(non-textual visual component)를 식별할 수 있다. 이러한 컴포넌트와 관련된 일부 CV 액티비티는 클릭, 타이프, 텍스트 가져오기, 호버, 엘리먼트 존재, 범위 새로고침, 하이라이트 등을 포함할 수 있으나 이들에 국한되지는 않는다. 일부 실시형태에서의 클릭은 예컨대 CV, 광학 문자 인식(OCR), 퍼지 텍스트 매칭, 다중 앵커 등을 사용하여 엘리먼트를 식별한 다음 그것을 클릭한다. 타이프는 전술한 것들을 사용하여 엘리먼트를 식별하고 엘리먼트에 타이핑할 수 있다. 텍스트 가져오기는 특정 텍스트의 위치를 식별한 다음 OCR을 사용하여 그것을 스캔할 수 있다. 호버(hover)는 엘리먼트를 식별하고 그 위에 마우스를 댈 수 있다. 엘리먼트 존재는 전술한 기술을 사용하여 화면 상에 엘리먼트가 존재하는지 체크할 수 있다. 일부 실시형태에서는, 디자이너(310)에서 구현될 수 있는 액티비티가 수백 개 또는 심지어 수천 개까지도 있을 수 있다. 그러나, 본 발명의 범위를 벗어나지 않고 임의의 수 및/또는 유형의 액티비티를 사용할 수 있다.
UI 자동화 액티비티(330)는 하위 레벨 코드로 작성된 특별한 하위 레벨 엑티비트(예컨대, CV 액티비티)의 서브세트이며 화면과의 인터랙션을 용이하게 한다. UI 자동화 액티비티(330)는 로봇이 원하는 소프트웨어와 인터랙션할 수 있게 하는 드라이버(340)를 통해 이들 인터랙션을 용이하게 한다. 예를 들어, 드라이버(340)는 OS 드라이버(342), 브라우저 드라이버(344), VM 드라이버(346), 엔터프라이즈 애플리케이션 드라이버(348) 등을 포함할 수 있다.
드라이버(340)는 후크를 찾고, 키를 모니터링하는 등 저 레벨에서 OS와 인터랙션할 수도 있다. 이들은 Chrome®, IE®, Citrix®, SAP® 등과의 통합을 용이하게 할 수 있다. 예를 들어 "클릭" 액티비티는 드라이버(340)를 통해 이들 상이한 애플리케이션에서 동일한 역할을 수행한다.
도 4는 본 발명의 일 실시형태에 따른 RPA 시스템(400)을 예시하는 아키텍처도이다. 일부 실시형태에서, RPA 시스템(400)은 도 1 및/또는 도 2의 RPA 시스템(100 및/또는 200)일 수도 이들을 포함할 수도 있다. RPA 시스템(400)은 로봇을 구동하는 다수의 클라이언트 컴퓨팅 시스템(410)을 포함한다. 컴퓨팅 시스템(410)은 구동되고 있는 웹 애플리케이션을 통해 컨덕터 컴퓨팅 시스템(420)과 통신할 수 있다. 컨덕터 컴퓨팅 시스템(420)은 차례로 데이터베이스 서버(430) 및 선택적인 인덱서 서버(440)와 통신할 수 있다.
도 1 및 도 3과 관련하여, 이들 실시형태에서 웹 애플리케이션이 사용되는 동안, 본 발명의 범위를 벗어나지 않고 임의의 적절한 클라이언트/서버 소프트웨어가 사용될 수 있는 것을 알아야 한다. 예를 들어, 컨덕터는 클라이언트 컴퓨팅 시스템에서 웹 기반이 아닌 클라이언트 소프트웨어 애플리케이션과 통신하는 서버측 애플리케이션을 구동할 수 있다.
도 5는 본 발명의 일 실시형태에 따른, RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 구현하도록 구성된 컴퓨팅 시스템(500)을 예시하는 아키텍처도이다. 일부 실시형태에서, 컴퓨팅 시스템(500)은 여기에 도시 및/또는 설명한 컴퓨팅 시스템 중 하나 이상일 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 기타 통신 메커니즘, 및 정보를 처리하기 위해 버스(505)에 결합된 프로세서(510)를 포함한다. 프로세서(510)는 CPU(Central Processing Unit), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), GPU(Graphics Processing Unit), 이들의 다수의 인스턴스, 및/또는 이들의 조합을 포함한 임의 유형의 범용 또는 특정 목적 프로세서일 수 있다. 프로세서(510)는 또한 다중 프로세싱 코어를 가질 수 있고, 이들 코어의 적어도 일부는 특정 기능을 수행하도록 구성될 수 있다. 일부 실시형태에서는 다중 병렬 프로세싱도 사용될 수 있다. 소정의 실시형태에서, 프로세서(510) 중 적어도 하나는 생물학적 뉴런을 모방한 프로세싱 엘리먼트를 포함하는 뉴로모픽 회로(neuromorphic circuit)일 수 있다. 일부 실시형태에서, 뉴로모픽 회로는 폰 노이만 컴퓨팅 아키텍처의 전형적인 컴포넌트를 필요로 하지 않을 수 있다.
컴퓨팅 시스템(500)은 프로세서(510)에 의해 실행될 정보 및 명령어를 저장하기 위한 메모리(515)를 더 포함한다. 메모리(515)는 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 플래시 메모리, 캐시, 자기적/광학적 디스크와 같은 스태틱 스토리지, 또는 임의의 다른 유형의 비일시적 컴퓨터 판독 가능 매체 또는 이들의 조합 중 임의의 조합으로 구성될 수도 있다. 비일시적 컴퓨터 판독 가능 매체는 프로세서(510)에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있고 휘발성 매체, 비휘발성 매체, 또는 둘 다를 포함할 수 있다. 매체는 또한 착탈식, 비이동식, 또는 둘 다일 수도 있다.
추가적으로, 컴퓨팅 시스템(500)은 무선 및/또는 유선 접속을 통해 통신 네트워크에 대한 액세스를 제공하기 위해 트랜시버와 같은 통신 디바이스(520)를 포함한다. 일부 실시형태서, 통신 디바이스(520)는 주파수 분할 다중 접속(FDMA), 단일 캐리어 FDMA(SC-FDMA), 시분할 다중 접속(TDMA), 코드 분할 다중 접속(CDMA), 직교 주파수 분할 다중화(OFDMA), 직교 주파수 분할 다중 접속(OFDMA), 모바일용 글로벌 시스템(GSM) 통신, GPRS(General Packet Radio Service), 범용 이동 통신 시스템(UMTS), cdma2000, W-CDMA(광대역 CDMA), 고속 다운링크 패킷 액세스(HSDPA), 고속 업링크 패킷 액세스(HSUPA), 고속 패킷 액세스(HSPA), LTE(Long Term Evolution), LTE-A(LTE Advanced), 802.11x, Wi-Fi, Zigbee, UWB(Ultra-WideBand), 802.16x, 802.15, HnB(Home Node-B), 블루투스, 무선 주파수 식별(RFID), IrDA(Infrared Data Association), NFC(Near-Field Communications), 5G(5세대), NR(New Radio), 이들의 조합, 및/또는 본 발명의 범위를 벗어나지 않으면서 기타 현재 존재하거나 미래에 구현되는 통신 표준 및/또는 프로토콜을 사용하도록 구성될 수 있다. 일부 실시형태에서, 통신 디바이스(520)는 본 발명의 범위를 벗어나지 않고 단일형, 어레이, 위상형, 스위칭, 빔포밍, 빔스티어링, 이들의 조합, 및/또는 임의의 다른 안테나 구성인 하나 이상의 안테나를 포함할 수 있다.
프로세서(510)는 버스(505)를 통해 플라즈마 디스플레이, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 전계 방출 디스플레이(FED), 유기 발광 다이오드(OLED) 디스플레이, 플렉서블 OLED 디스플레이, 플렉서블 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, 고선명 디스플레이, Retina® 디스플레이, IPS(In-Plane Switching) 디스플레이, 또는 사용자에게 정보를 디스플레이하기 위한 기타 적절한 디스플레이와 같은 디스플레이(525)에도 결합된다. 디스플레이(525)는 저항성, 용량성, 표면 탄성파(SAW) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, FTIR(frustrated total internal reflection) 등을 사용하는 터치(햅틱) 디스플레이, 3차원(3D) 터치 디스플레이, 다중 입력 터치 디스플레이, 다중 터치 디스플레이 등으로서 구성될 수 있다. 본 발명의 범위를 벗어나지 않고 임의의 적절한 디스플레이 디바이스 및 햅틱 I/O가 사용될 수 있다.
사용자가 컴퓨팅 시스템과 인터페이싱하는 것을 가능하게 하도록 컴퓨터 마우스, 터치패드 등과 같은 키보드(530) 및 커서 제어 디바이스(535)가 또한 버스(505)에 결합된다. 그러나, 소정의 실시형태에서, 물리적 키보드 및 마우스가 존재하지 않을 수도 있고, 사용자는 디스플레이(525) 및/또는 터치패드(도시 생략)를 통해서만 디바이스와 인터랙션할 수 있다. 설계 선택 사항으로서 모든 유형 및 조합의 입력 디바이스가 사용될 수 있다. 소정의 실시형태에서는, 물리적 입력 디바이스 및/또는 디스플레이가 존재하지 않는다. 예를 들어, 사용자는 통신 상태의 다른 컴퓨팅 시스템을 통해 원격으로 컴퓨팅 시스템(500)과 인터랙션할 수 있거나, 컴퓨팅 시스템(500)은 자율적으로 작동할 수 있다.
메모리(515)는 프로세서(510)에 의해 실행될 때 기능성을 제공하는 소프트웨어 모듈을 저장한다. 모듈은 컴퓨팅 시스템(500)을 위한 운영 체제(540)를 포함한다. 모듈은 여기에서 설명하는 프로세스 또는 그 파생물 전체 또는 일부를 수행하도록 구성되는 워크벤치 파이프라인 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가 기능성을 포함하는 하나 이상의 추가 기능 모듈(550)을 포함할 수도 있다.
당업자는, "시스템"이 본 발명의 범위를 벗어나지 않으면서, 서버, 임베디드 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, 퍼스널 디지털 어시스턴트(PDA), 휴대 전화, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 디바이스의 조합으로서 구현될 수 있는 것을 알 것이다. 전술한 기능을 "시스템"에 의해 수행되는 것으로 제시하는 것은 본 발명의 범위를 어떤 식으로든 제한하는 것이 아니며, 본 발명의 다수의 실시형태의 일례를 제공하려고 의도된 것이다. 실제로, 여기에 개시한 방법, 시스템 및 장치는 클라우드 컴퓨팅 시스템을 포함한 컴퓨팅 기술과 부합하는 로컬화되고 분산된 형태로 구현될 수 있다.
본 명세서에서 설명한 시스템 특징 중 일부는 그 구현 독립성을 보다 구체적으로 강조하기 위해 모듈로 제시되었다는 점을 알아야 한다. 예를 들어, 모듈은 커스텀 VLSI(Very Large Scale Integration) 회로 또는 게이트 어레이, 로직 칩, 트랜지스터 또는 기타 개별 컴포넌트와 같은 기성품 반도체를 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 필드 프로그래머블 게이트 어레이, 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스, 그래픽 프로세싱 유닛 등과 같은 프로그래머블 하드웨어 디바이스로 구현될 수 있다.
모듈은 또한 다양한 유형의 프로세서에 의한 실행을 위해 적어도 부분적으로 소프트웨어로 구현될 수도 있다. 실행 코드의 식별된 단위는 예를 들어 오브젝트, 프로시저, 또는 펑션으로 구성될 수 있는 컴퓨터 명령어의 하나 이상의 물리적 또는 논리적 블록을 포함할 수 있다. 그렇지만, 식별된 모듈의 실행 파일은 물리적으로 병치될 필요는 없지만, 논리적으로 함께 결합될 때 모듈을 구성하고 모듈에 대해 명시된 목적을 달성하는 상이한 위치에 저장된 상이한 명령어를 포함할 수 있다. 또한, 모듈은 컴퓨터 판독 가능 매체에 저장될 수 있으며, 이는 예컨대 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 본 발명의 범위에서 벗어나지 않고서 데이터를 저장하는 데 사용되는 임의의 기타 비일시적 컴퓨터 판독 가능 매체일 수 있다.
실제로, 실행 가능한 코드의 모듈은 단일 명령어 또는 다수의 명령어일 수 있으며, 여러 상이한 코드 세그먼트에 걸쳐, 상이한 프로그램 사이에서, 그리고 여러 메모리 디바이스에 걸쳐 분배될 수도 있다. 마찬가지로, 운용 데이터(operational data)는 여기서는 모듈 내에서 식별되는 것으로서 예시되지만, 임의의 적절한 형태로 구현되고 임의의 적절한 유형의 데이터 구조 내에서 구성될 수도 있다. 운용 데이터는 단일 데이터 세트로서 수집될 수 있거나, 다른 저장 디바이스를 포함하여 다른 위치에 분산될 수 있으며, 적어도 부분적으로는 시스템 또는 네트워크에서 전자 신호로만 존재할 수도 있다.
도 6은 본 발명의 일 실시형태에 따른, 출력을 생산하지 않는(또는 정확한 출력을 생산하지 않은) 재구성 가능한 워크벤치 파이프라인(600) 및 그것의 성능을 보정하는 동작을 예시한다. 초기 상태 A에서, 4개의 컴포넌트 1, 2, 3, 4가 연결되어 출력을 생산한다. 그러나 우측에 "X"로 표시된 대로 컴포넌트 2로부터의 출력으로 인해 출력이 없거나 잘못된 출력이 생산되고 있다. 워크벤치 파이프라인은 먼저 상태 B에서 컴포넌트 1의 입력 및 출력을 체크한다. 이들은 정확한 것으로 결정되고, 그래서 워크벤치 파이프라인은 상태 C에서 컴포넌트 2의 출력을 체크하는 것으로 진행된다. 이 컴포넌트 2의 출력은 이 사용 케이스에서 에러가 있는 것으로 결정된다.
그런 다음 시스템은 새 컴포넌트(예컨대, ML 모델, 조건부 논리 등)를 테스트하여 문제에 대한 솔루션을 찾으려고 한다. 이 예에서 시스템은 컴포넌트 5를 삽입하는 것이 파이프라인에 대해 정확한 출력을 제공한다고 결정하고 상태 D에서 컴포넌트 2를 컴포넌트 5로 대체한다. 이것은 정확한 출력을 생산하도록 파이프라인을 수정하는 것이며 그래서 파이프라인을 "보완(repair)"하고 파이프라인을 재구성 가능하게 만들 수 있다.
도 7은 본 발명의 일 실시형태에 따른, ML을 사용하여 RPA 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 구현하는 프로세스(700)를 예시하는 흐름도이다. 프로세스는 710에서 RPA 로봇에 의해 글로벌 워크플로우를 실행하는 것에서 시작된다. 그런 다음 720에서 글로벌 워크플로우의 파이프라인이 시나리오에 맞게 정확하게 작동하고 있지 않다고 결정된다(예컨대, RPA 로봇, 다른 소프트웨어 애플리케이션, 컴퓨팅 시스템 등에 의해) 730에서 AI-구동 테스팅이 채택되어, 시나리오에 맞게 글로벌 워크플로우를 보완하거나 글로벌 워크플로우를 전문화하기 위해 파이프라인에 적용될 그리고/또는 글로벌 워크플로우의 파이프라인에서 수정될 하나 이상의 ML 모델 또는 다른 컴포넌트를 식별한다.
일부 실시형태에서, 파이프라인에 적용될 모델 또는 다른 컴포넌트의 식별화는 도 6과 관련하여 전술한 프로세스와 유사할 수 있다. 예를 들어, 파이프파인이 출력을 생산하지 못하거나 정확한 출력을 생산하지 못하고 있다면, 제1 컴포넌트의 입력 및 출력을 체크할 수 있다. 입력과 출력 중 하나 또는 둘 다가 부정확하면, 보정 액션이 취해질 수 있다(예컨대, 입력 에러의 경우에는 데이터 소스를 분석하거나 출력 에러가 있는 경우에는 제1 컴포넌트를 대체함으로써). 데이터 소스를 분석하는 것은 입력을 생산하고 있는 소프트웨어, 시스템, 로봇 등에서 로직을 체크하는 것을 포함할 수 있다. 예를 들어, 데이터베이스 연산 중의 하나 이상의 SQL 커맨드가 부정확할 수 있다. 제1 컴포넌트를 재구성하는 것은, 컴포넌트에 대한 파라미터의 수정, 해당 로직의 변경, 컴포넌트가 상이한 ML 모델을 호출하게 하는 것, 이들의 조합 등을 포함할 수 있다. 제1 컴포넌트의 입력 및 출력이 정확하면, 제2 컴포넌트의 출력이 체크될 수 있고 그런 다음 파이프라인에서 제대로 작동하지 못하는 모든 컴포넌트가 식별되고 해결될 때까지 제3 컴포넌트의 출력 등등이 체크될 수 있다.
일부 실시형태에 있어서, 730에서 파이프라인에 대해 하나 이상의 ML 모델 및/또는 다른 컴포넌트가 결정될 수 없는 경우, 시스템은 732에서 파이프라인이 정확하게 기능하고 있지 않음을 RPA 개발자에게 통보하고(예를 들어, 해당 워크플로우, 제대로 기능하지 못하는 파이프라인 컴포넌트, 기존 컴포넌트에 대한 대체 컴포넌트 및/또는 수정이 시도된 것을 나타내는 로그 데이터, 또는 이들의 조합을 포함하는 통신을 전송함), 734에서 RPA 개발자로부터 가이던스를 수신한다. 일부 실시형태에서, RPA 개발자로부터의 가이던스는 파이프라인의 보완된 버전, 로컬 워크플로우, 새로운 파이프라인 컴포넌트, 이들의 임의의 조합 등을 포함할 수 있다. 그런 다음 시스템은 740에서 식별된 ML 모델 및/또는 다른 컴포넌트를 로컬 워크플로우의 파이프라인에서 구현한다. 그런 다음 750에서 로컬 워크플로우를 실행할 RPA 로봇의 새 버전이 생성된다. 760에서 RPA 로봇의 새 버전이 배포되고 770에서 로컬 워크플로우가 새 버전의 RPA 로봇에 의해 실행된다.
도 7에서 수행되는 프로세스 단계는 본 발명의 실시형태에 따라 도 7에서 설명된 프로세스(들)의 적어도 일부를 수행하도록 프로세서(들)에 대한 명령어를 인코딩한 컴퓨터 프로그램에 의해 수행될 수 있다. 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체 상에 수록될 수 있다. 컴퓨터 판독 가능 매체는 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하는 데 사용되는 임의의 다른 매체 또는 매체의 조합일 수 있지만 이에 국한되지 않는다. 컴퓨터 프로그램은 도 7에서 설명한 프로세스 단계의 전부 또는 일부를 구현하기 위해 컴퓨팅 시스템(예컨대, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510))의 프로세서(들)를 제어하기 위한 인코딩된 명령어를 포함할 수 있으며, 이 역시 컴퓨터 판독 가능 매체 상에 저장될 수 있다.
컴퓨터 프로그램은 하드웨어, 소프트웨어 또는 하이브리드 구현화로 구현될 수 있다. 컴퓨터 프로그램은, 서로 동작 가능하게 통신하며 디스플레이를 위해 정보 또는 지침을 전달하도록 설계되는 모듈들을 포함할 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 기타 적절한 디바이스 상에서 작동하도록 구성될 수 있다.
본 명세서의 도면에 일반적으로 설명되고 예시된 바와 같이, 본 발명의 다양한 실시형태의 컴포넌트는 각양 각색의 상이한 구성으로 배열 및 설계될 수 있다는 것을 쉽게 이해할 것이다. 따라서, 첨부한 도면에 나타낸 본 발명의 실시형태의 상세한 설명은 청구된 바와 같은 본 발명의 범위를 제한하려는 것이 아니라, 본 발명의 선택된 실시형태를 대표할 뿐이다.
본 명세서 전반에 걸쳐 설명된 본 발명의 특징, 구조 또는 특징은 하나 이상의 실시형태에서 임의의 적절한 방식으로 조합될 수 있다. 예를 들어, 본 명세서 전체에서 "소정의 실시형태", "일부 실시형태" 또는 유사한 표현에 대한 언급은 그 실시형태와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시형태에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸친 "소정의 실시형태에서", "일부 실시형태에서", "다른 실시형태에서" 또는 유사한 표현의 등장은 반드시 모두 동일한 그룹의 실시형태 및 설명된 특징, 구조 또는 특성을 지칭하는 것이 아니며, 즉 하나 이상의 실시형태에서 임의의 적절한 방식으로 결합될 수 있다.
본 명세서 전반에 걸쳐 특징, 이점 또는 유사한 표현에 대한 언급은 본 발명으로 실현할 수 있는 모든 특징 및 이점이 본 발명의 임의의 단일 실시형태에 있어야 하거나 있다는 것을 의미하지 않는다는 점을 알아야 한다. 오히려, 특징 및 이점을 언급하는 표현은 실시형태와 관련하여 설명한 특정 특징, 이점 또는 특성이 본 발명의 적어도 하나의 실시형태에 포함되는 것을 의미하는 것으로 이해된다. 따라서, 본 명세서 전반에 걸쳐 특징 및 이점, 그리고 유사한 표현에 대한 논의는 동일한 실시형태를 참조할 수 있지만 반드시 그런 것은 아니다.
더욱이, 본 발명의 설명한 특징, 이점, 및 특성은 하나 이상의 실시형태에서 임의의 적절한 방식으로 조합될 수 있다. 당업자라면 본 발명이 소정의 실시형태의 특정 특징 또는 이점이 하나 이상 없이도 실시될 수 있음을 인식할 것이다. 다른 예로 본 발명의 모든 실시형태에 존재하지 않을 수 있는 추가 특징 및 이점이 소정의 실시형태에서 인식될 수도 있다.
당업자라면 앞에서 논의한 본 발명이 상이한 순서의 단계 및/또는 개시한 바와는 상이한 구성의 하드웨어 엘리먼트로 실시될 수 있다는 것을 쉽게 이해할 것이다. 따라서, 본 발명이 이들 바람직한 실시형태에 기초하여 설명되었지만, 본 발명의 사상 및 범위 내에 있으면서 소정의 수정, 변형 및 대안적 구성이 명백할 것이라는 것이 당업자에게 명백할 것이다. 따라서 본 발명의 범위와 범위를 결정하기 위해서는 첨부한 청구범위를 참조해야 할 것이다.

Claims (20)

  1. 머신 러닝(ML, machine learning)을 사용하여 로보틱 프로세스 자동화(RPA, robotic process automation) 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 제공하는 컴퓨터 구현 방법에 있어서,
    RPA 로봇에 의해 글로벌 워크플로우를 실행하는 단계;
    상기 글로벌 워크플로우의 파이프라인이 시나리오에 맞게 정확하게 작동하고 있지 않다고 결정하는 단계;
    인공 지능(AI)-구동 테스팅(artificial intelligence-driven testing)을 채택하여, 상기 시나리오에 맞게 상기 글로벌 워크플로우를 보완(repair)하거나 상기 글로벌 워크플로우를 전문화하기 위해 상기 파이프라인에 적용될 그리고/또는 상기 글로벌 워크플로우의 파이프라인에서 수정될 하나 이상의 ML 모델 또는 다른 컴포넌트를 식별하는 단계;
    상기 식별된 ML 모델 및/또는 다른 컴포넌트를 로컬 워크플로우의 파이프라인에서 구현하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 로컬 워크플로우를 실행하도록 구성되는 상기 RPA 로봇의 새 버전을 생성하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 RPA 로봇의 새 버전을 배포하는 단계; 및
    상기 새 버전의 RPA 로봇에 의해, 상기 로컬 워크플로우를 실행하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  4. 제1항에 있어서, 상기 시나리오에 맞게 상기 글로벌 워크플로우를 보완하거나 상기 글로벌 워크플로우를 전문화하기 위해 상기 글로벌 워크플로우의 파이프라인에 적용될 하나 이상의 ML 모델 또는 다른 컴포넌트가 식별될 수 없는 경우, 상기 방법은:
    상기 파이프라인이 정확하게 기능하지 않고 있음을 RPA 개발자에게 통보하는 단계; 및
    상기 파이프라인을 보정할 방법에 관하여 상기 RPA 개발자로부터 가이던스를 수신하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  5. 제4항에 있어서, 상기 통보는, 상기 로컬 워크플로우, 제대로 기능하지 못하는 하나 이상의 파이프라인 컴포넌트, 기존 컴포넌트에 대한 대체 컴포넌트 및/또는 수정이 시도된 것을 나타내는 로그 데이터, 또는 이들의 조합을 포함하는 통신을 상기 RPA 개발자에게 전송하는 것을 포함하는, 컴퓨터 구현 방법.
  6. 제4항에 있어서, 상기 RPA 개발자로부터의 가이던스는, 상기 파이프라인의 보완 버전, 상기 로컬 워크플로우, 하나 이상의 새로운 파이프라인 컴포넌트, 또는 이들의 임의의 조합을 포함하는, 컴퓨터 구현 방법.
  7. 제1항에 있어서, 상기 AI-구동 테스팅은:
    상기 파이프라인의 제1 컴포넌트의 출력을 체크하는 것:
    상기 제1 컴포넌트의 출력이 부정확할 경우, 상기 제1 컴포넌트를 재구성하거나 대체하는 것;
    상기 파이프라인의 출력이 정확하거나 모든 컴포넌트의 출력이 체크될 때까지 상기 파이프라인 내의 각각의 후속 컴포넌트의 출력을 체크하고, 각각의 부정확하게 동작하는 컴포넌트를 재구성하거나 대체하는 것을 포함하는, 컴퓨터 구현 방법.
  8. 제7항에 있어서, 상기 재구성하는 것은, 각각의 컴포넌트에 대한 파라미터를 수정하는 것, 상기 각각의 컴포넌트의 로직을 변경하는 것, 상기 각각의 컴포넌트로 하여금 상이한 ML 모델을 호출하게 하는 것, 또는 이들의 임의의 조합을 포함하는, 컴퓨터 구현 방법.
  9. 제7항에 있어서,
    상기 제1 컴포넌트의 입력을 분석하는 단계; 및
    상기 제1 컴포넌트의 입력이 부정확할 경우, 상기 제1 컴포넌트의 입력의 데이터 소스를 분석하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  10. 머신 러닝(ML)을 사용하여 로보틱 프로세스 자동화(RPA) 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 제공하는 컴퓨터 구현 방법에 있어서,
    글로벌 워크플로우의 파이프라인이 시나리오에 맞게 정확하게 작동하고 있지 않다고 결정하는 단계;
    인공 지능(AI)-구동 테스팅을 채택하여, 상기 시나리오에 맞게 상기 글로벌 워크플로우를 보완하거나 상기 글로벌 워크플로우를 전문화하기 위해 상기 파이프라인에 적용될 그리고/또는 상기 글로벌 워크플로우의 파이프라인에서 수정될 하나 이상의 ML 모델 또는 다른 컴포넌트를 식별하는 단계;
    상기 식별된 ML 모델 및/또는 다른 컴포넌트를 로컬 워크플로우의 파이프라인에서 구현하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  11. 제10항에 있어서,
    상기 로컬 워크플로우를 실행하도록 구성된 RPA 로봇을 생성하는 단계;
    상기 RPA 로봇을 배포하는 단계;
    상기 RPA 로봇에 의해, 상기 로컬 워크플로우를 실행하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  12. 제10항에 있어서, 상기 시나리오에 맞게 상기 글로벌 워크플로우를 보완하거나 상기 글로벌 워크플로우를 전문화하기 위해 상기 글로벌 워크플로우의 파이프라인에 적용될 하나 이상의 ML 모델 또는 다른 컴포넌트가 식별될 수 없는 경우, 상기 방법은:
    상기 파이프라인이 정확하게 기능하지 않고 있음을 RPA 개발자에게 통보하는 단계를 더 포함하고,
    상기 통보는, 상기 로컬 워크플로우, 제대로 기능하지 못하는 하나 이상의 파이프라인 컴포넌트, 기존 컴포넌트에 대한 대체 컴포넌트 및/또는 수정이 시도된 것을 나타내는 로그 데이터, 또는 이들의 조합을 포함하는 통신을 상기 RPA 개발자에게 전송하는 것을 포함하는, 컴퓨터 구현 방법.
  13. 제12항에 있어서,
    상기 파이프라인을 보정할 방법에 관하여 상기 RPA 개발자로부터 가이던스를 수신하는 단계를 더 포함하고,
    상기 RPA 개발자로부터의 가이던스는, 상기 파이프라인의 보완 버전, 상기 로컬 워크플로우, 하나 이상의 새로운 파이프라인 컴포넌트, 또는 이들의 임의의 조합을 포함하는, 컴퓨터 구현 방법.
  14. 제10항에 있어서, 상기 AI-구동 테스팅은:
    상기 파이프라인의 제1 컴포넌트의 출력을 체크하는 것:
    상기 제1 컴포넌트의 출력이 부정확할 경우, 상기 제1 컴포넌트를 재구성하거나 대체하는 것;
    상기 파이프라인의 출력이 정확하거나 모든 컴포넌트의 출력이 체크될 때까지 상기 파이프라인 내의 각각의 후속 컴포넌트의 출력을 체크하는 것을 포함하는, 컴퓨터 구현 방법.
  15. 제14항에 있어서, 상기 재구성하는 것은, 각각의 컴포넌트에 대한 파라미터를 수정하는 것, 상기 각각의 컴포넌트의 로직을 변경하는 것, 상기 각각의 컴포넌트로 하여금 상이한 ML 모델을 호출하게 하는 것, 또는 이들의 임의의 조합을 포함하는, 컴퓨터 구현 방법.
  16. 제14항에 있어서,
    상기 제1 컴포넌트의 입력을 분석하는 단계; 및
    상기 제1 컴포넌트의 입력이 부정확할 경우, 상기 제1 컴포넌트의 입력의 데이터 소스를 분석하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  17. 머신 러닝(ML)을 사용하여 로보틱 프로세스 자동화(RPA) 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인을 제공하는 컴퓨터 구현 방법에 있어서,
    인공 지능(AI)-구동 테스팅을 채택하여, 시나리오에 맞게 글로벌 워크플로우를 보완하거나 상기 글로벌 워크플로우를 전문화하기 위해 파이프라인에 적용될 그리고/또는 상기 글로벌 워크플로우의 파이프라인에서 수정될 하나 이상의 ML 모델 또는 다른 컴포넌트를 식별하는 단계; 및
    상기 식별된 ML 모델 및/또는 다른 컴포넌트를 로컬 워크플로우의 파이프라인에서 구현하는 단계를 포함하고,
    상기 AI-구동 테스팅은:
    상기 파이프라인의 제1 컴포넌트의 출력을 체크하는 것:
    상기 제1 컴포넌트의 출력이 부정확할 경우, 상기 제1 컴포넌트를 재구성하거나 대체하는 것;
    상기 파이프라인의 출력이 정확하거나 모든 컴포넌트의 출력이 체크될 때까지 상기 파이프라인 내의 각각의 후속 컴포넌트의 출력을 체크하고, 각각의 부정확하게 동작하는 컴포넌트를 재구성하거나 대체하는 것을 포함하는, 컴퓨터 구현 방법.
  18. 제17항에 있어서,
    글로벌 워크플로우의 파이프라인이 시나리오에 맞게 정확하게 작동하고 있지 않다고 결정하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  19. 제17항에 있어서, 상기 시나리오에 맞게 상기 글로벌 워크플로우를 보완하거나 상기 글로벌 워크플로우를 전문화하기 위해 상기 글로벌 워크플로우의 파이프라인에 적용될 하나 이상의 ML 모델 또는 다른 컴포넌트가 식별될 수 없는 경우, 상기 방법은:
    상기 파이프라인이 정확하게 기능하지 않고 있음을 RPA 개발자에게 통보하는 단계를 더 포함하고,
    상기 통보는, 상기 로컬 워크플로우, 제대로 기능하지 못하는 하나 이상의 파이프라인 컴포넌트, 기존 컴포넌트에 대한 대체 컴포넌트 및/또는 수정이 시도된 것을 나타내는 로그 데이터, 또는 이들의 조합을 포함하는 통신을 상기 RPA 개발자에게 전송하는 것을 포함하는, 컴퓨터 구현 방법.
  20. 제17항에 있어서, 상기 재구성하는 것은, 각각의 컴포넌트에 대한 파라미터를 수정하는 것, 상기 각각의 컴포넌트의 로직을 변경하는 것, 상기 각각의 컴포넌트로 하여금 상이한 ML 모델을 호출하게 하는 것, 또는 이들의 임의의 조합을 포함하는, 컴퓨터 구현 방법.
KR1020227010622A 2019-10-15 2020-08-18 로봇 프로세스 자동화 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인 KR20220079830A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962915413P 2019-10-15 2019-10-15
US62/915,413 2019-10-15
US16/707,977 2019-12-09
US16/707,977 US11593709B2 (en) 2019-10-15 2019-12-09 Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows
PCT/US2020/046777 WO2021076224A1 (en) 2019-10-15 2020-08-18 Reconfigurable workbench pipeline for robotic process automation workflows

Publications (1)

Publication Number Publication Date
KR20220079830A true KR20220079830A (ko) 2022-06-14

Family

ID=75382977

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227010622A KR20220079830A (ko) 2019-10-15 2020-08-18 로봇 프로세스 자동화 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인

Country Status (6)

Country Link
US (1) US11593709B2 (ko)
EP (1) EP4046102A4 (ko)
JP (1) JP2022552466A (ko)
KR (1) KR20220079830A (ko)
CN (1) CN114556387A (ko)
WO (1) WO2021076224A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11593709B2 (en) * 2019-10-15 2023-02-28 UiPath, Inc. Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows
US11110601B2 (en) * 2019-11-20 2021-09-07 UiPath, Inc. Scheduling robots for robotic process automation
CN115061809B (zh) * 2022-08-08 2022-11-11 杭州实在智能科技有限公司 基于安卓的rpa多任务调度方法及系统

Family Cites Families (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363594B1 (en) * 2002-08-19 2008-04-22 Sprint Communications Company L.P. Workflow event editor
US7849052B2 (en) 2004-01-28 2010-12-07 Paul David Vicars Electronic document manager
US20060195817A1 (en) * 2005-02-28 2006-08-31 Microsoft Corporation Visual workflow modeling tools for user interface automation
US20070143736A1 (en) * 2005-12-09 2007-06-21 Microsystems Technology, Inc. Workflow Development Platform
US20070250335A1 (en) * 2006-01-31 2007-10-25 Brian Hodges Workflow applications
US8949772B1 (en) * 2009-06-01 2015-02-03 Amazon Technologies, Inc. Dynamic model based software application development
US20140025426A1 (en) 2012-07-23 2014-01-23 Markus Doehring Workflow adaptation using automated model transformation
GB2541625A (en) 2014-05-23 2017-02-22 Datarobot Systems and techniques for predictive data analytics
US9870295B2 (en) * 2014-07-18 2018-01-16 General Electric Company Automation of workflow creation and failure recovery
US10210463B2 (en) 2014-12-05 2019-02-19 Microsoft Technology Licensing, Llc Quick path to train, score, and operationalize a machine learning project
WO2016112209A1 (en) * 2015-01-09 2016-07-14 Ecorithm, Inc. Machine learning-based fault detection system
US10417577B2 (en) * 2015-06-05 2019-09-17 Facebook, Inc. Machine learning system interface
US10643144B2 (en) * 2015-06-05 2020-05-05 Facebook, Inc. Machine learning system flow authoring tool
US10395181B2 (en) * 2015-06-05 2019-08-27 Facebook, Inc. Machine learning system flow processing
KR102071335B1 (ko) * 2015-06-11 2020-03-02 한국전자통신연구원 워크플로우 모델 생성 방법과 워크플로우 모델 실행 방법 및 장치
US10664777B2 (en) * 2015-09-11 2020-05-26 Workfusion, Inc. Automated recommendations for task automation
US9772934B2 (en) * 2015-09-14 2017-09-26 Palantir Technologies Inc. Pluggable fault detection tests for data pipelines
US20170161855A1 (en) 2015-12-08 2017-06-08 C2C Solutions, Inc. Optimized small screen device to display visual elements in a real property dashboard involving predictive analytics
US11295228B2 (en) * 2016-03-21 2022-04-05 Wipro Limited Methods for creating automated dynamic workflows of interoperable bots and devices thereof
US10681062B2 (en) 2016-11-02 2020-06-09 Accenture Global Solutions Limited Incident triage scoring engine
US20180189679A1 (en) * 2017-01-03 2018-07-05 Electronics And Telecommunications Research Institute Self-learning system and method for automatically performing machine learning
US11157855B2 (en) * 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
US10682761B2 (en) * 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
US11748653B2 (en) * 2017-10-05 2023-09-05 DataRobot, Inc. Machine learning abstraction
US20190126463A1 (en) * 2017-10-31 2019-05-02 Bank Of America Corporation Robotic assisted action template generation based on profile
US11709854B2 (en) 2018-01-02 2023-07-25 Bank Of America Corporation Artificial intelligence based smart data engine
US11138535B2 (en) 2018-02-21 2021-10-05 Red Hat, Inc. Developing workflow-based recommendations based on organizational patterns and observed behavior
US10846204B2 (en) * 2018-04-20 2020-11-24 Microsoft Technology Licensing, Llc Remediation of design time and runtime workflow errors
US11042458B2 (en) * 2018-04-30 2021-06-22 Accenture Global Solutions Limited Robotic optimization for robotic process automation platforms
US10270644B1 (en) * 2018-05-17 2019-04-23 Accenture Global Solutions Limited Framework for intelligent automated operations for network, service and customer experience management
US11315014B2 (en) * 2018-08-16 2022-04-26 EMC IP Holding Company LLC Workflow optimization
US11003568B2 (en) * 2018-09-22 2021-05-11 Manhattan Engineering Incorporated Error recovery
US10565093B1 (en) * 2018-10-09 2020-02-18 International Business Machines Corporation Providing cognitive intelligence across continuous delivery pipeline data
US10710239B2 (en) * 2018-11-08 2020-07-14 Bank Of America Corporation Intelligent control code update for robotic process automation
US11269911B1 (en) * 2018-11-23 2022-03-08 Amazon Technologies, Inc. Using specified performance attributes to configure machine learning pipeline stages for an ETL job
US11537936B2 (en) * 2019-01-17 2022-12-27 Servicenow, Inc. Data set generation for testing of machine learning pipelines
US11636401B2 (en) * 2019-01-25 2023-04-25 Noodle.ai Artificial intelligence platform
US11074105B2 (en) * 2019-05-16 2021-07-27 Blue Prism Cloud, Inc. Systems and methods for digital workforce intelligent orchestration
US11392469B2 (en) * 2019-06-20 2022-07-19 Microsoft Technology Licensing, Llc Framework for testing machine learning workflows
US11514361B2 (en) * 2019-08-30 2022-11-29 International Business Machines Corporation Automated artificial intelligence radial visualization
US20210073026A1 (en) * 2019-09-05 2021-03-11 Microstrategy Incorporated Validating and publishing computing workflows from remote environments
US11556862B2 (en) * 2019-09-14 2023-01-17 Oracle International Corporation Techniques for adaptive and context-aware automated service composition for machine learning (ML)
US11681931B2 (en) * 2019-09-24 2023-06-20 International Business Machines Corporation Methods for automatically configuring performance evaluation schemes for machine learning algorithms
US11200539B2 (en) * 2019-10-15 2021-12-14 UiPath, Inc. Automatic completion of robotic process automation workflows using machine learning
US10963231B1 (en) * 2019-10-15 2021-03-30 UiPath, Inc. Using artificial intelligence to select and chain models for robotic process automation
US11593709B2 (en) * 2019-10-15 2023-02-28 UiPath, Inc. Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows
US11738453B2 (en) * 2019-10-15 2023-08-29 UiPath, Inc. Integration of heterogeneous models into robotic process automation workflows
KR20210048865A (ko) * 2019-10-24 2021-05-04 삼성에스디에스 주식회사 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법
US11334471B1 (en) * 2020-12-02 2022-05-17 UiPath Inc. Mocking robotic process automation (RPA) activities for workflow testing
US11429351B2 (en) * 2021-01-21 2022-08-30 Intuit Inc. Methods and systems for building custom automation workflows to integrate multiple applications

Also Published As

Publication number Publication date
EP4046102A4 (en) 2023-11-22
US20210110301A1 (en) 2021-04-15
JP2022552466A (ja) 2022-12-16
US11593709B2 (en) 2023-02-28
WO2021076224A1 (en) 2021-04-22
EP4046102A1 (en) 2022-08-24
CN114556387A (zh) 2022-05-27

Similar Documents

Publication Publication Date Title
KR102453988B1 (ko) 런타임시 디지털 프로세스에서의 동적 인공 지능/머신 러닝 모델 업데이트, 또는 재트레이닝 및 업데이트
US10963231B1 (en) Using artificial intelligence to select and chain models for robotic process automation
US20210109503A1 (en) Human-in-the-loop robot training for robotic process automation
KR102453990B1 (ko) 인공 지능(ai)을 사용한 미디어 대 워크플로우 생성
US11347613B2 (en) Inserting probabilistic models in deterministic workflows for robotic process automation and supervisor system
KR102412237B1 (ko) 로봇 프로세스 자동화를 위한 테스트 자동화
JP2022552468A (ja) ロボティック・プロセス・オートメーション及びワークフローのマイクロ最適化のためのプロセス進化
KR20220079830A (ko) 로봇 프로세스 자동화 워크플로우를 위한 재구성 가능한 워크벤치 파이프라인
KR20220079838A (ko) 로봇 프로세스 자동화의 강화 학습
EP4229571A1 (en) Task automation by support robots for robotic process automation (rpa)
US20210342736A1 (en) Machine learning model retraining pipeline for robotic process automation
KR20220083976A (ko) 액션 센터, 인공 지능(ai)/머신 학습(ml) 모델 재트레이닝 하드웨어 제어, 및 ai/ml 모델 설정 관리를 통한 ai/ml 모델들의 보충
EP3901864A1 (en) Test automation for robotic process automation
EP3901865A1 (en) Test automation for robotic process automation
JP2023523374A (ja) ロボティックプロセスオートメーションのための機械学習モデル再訓練パイプライン
US11650871B2 (en) System and computer-implemented method for verification of execution of an activity