KR20220084031A - 로봇 프로세스 자동화를 위한 인공 지능 기반 프로세스 식별, 추출 및 자동화 - Google Patents

로봇 프로세스 자동화를 위한 인공 지능 기반 프로세스 식별, 추출 및 자동화 Download PDF

Info

Publication number
KR20220084031A
KR20220084031A KR1020227010775A KR20227010775A KR20220084031A KR 20220084031 A KR20220084031 A KR 20220084031A KR 1020227010775 A KR1020227010775 A KR 1020227010775A KR 20227010775 A KR20227010775 A KR 20227010775A KR 20220084031 A KR20220084031 A KR 20220084031A
Authority
KR
South Korea
Prior art keywords
user
application
rpa
server
robot
Prior art date
Application number
KR1020227010775A
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 KR20220084031A publication Critical patent/KR20220084031A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3438Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment monitoring of user actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Business, Economics & Management (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Human Resources & Organizations (AREA)
  • Quality & Reliability (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Mechanical Engineering (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Robotics (AREA)
  • Economics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Computer Hardware Design (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Manufacturing & Machinery (AREA)
  • Automation & Control Theory (AREA)

Abstract

로봇 프로세스 자동화(RPA)를 위한 인공 지능(AI) 기반 프로세스 식별, 추출 및 자동화가 개시된다. 리스너는 사용자 액션과 관련된 데이터를 수집하기 위해 사용자 컴퓨팅 시스템에 배포될 수 있다. 리스너에 의해 수집된 데이터는 그 후 하나 이상의 서버로 전송되어 데이터베이스에 저장될 수 있다. 이 데이터는 AI 계층에 의해 분석되어 그 안의 사용자 행위 프로세스의 패턴을 인식할 수 있다. 그 후 이러한 인식된 프로세스는 각각의 RPA 워크플로우로 정제되고 배포되어 프로세스를 자동화할 수 있다.

Description

로봇 프로세스 자동화를 위한 인공 지능 기반 프로세스 식별, 추출 및 자동화
관련 출원에 대한 상호 참조
본 출원은 2020년 12월 9일자로 출원된 미국 정규 특허 출원 제16/707,564호 및 2019년 10월 15일자로 출원된 미국 가특허 출원 제62/915,340호에 이익을 주장한다. 이러한 이전 출원된 출원들의 주제는 그 전체가 참조에 의해 여기에 통합된다.
기술분야
본 발명은 일반적으로 로봇 프로세스 자동화(robotic process automation; RPA)에 관한 것이고, 보다 구체적으로는 RPA를 위한 인공 지능(artificial intelligence; AI) 기반 프로세스 식별, 추출 및 자동화에 관한 것이다.
기업은 RPA로부터 이익을 얻을 수 있는 프로세스를 인지하거나 인지하지 못할 수 있다. 고용인은 고용주가 직접 알지 못하는 다양한 작업을 수행하고, 이들 작업은 반복적이거나 자동화 대상일 수 있다. 또한, 기업은 자동화하고 싶은 것에 대한 아이디어는 있지만 자동화를 달성하기 위한 최상의 워크플로우를 알지 못할 수 있다. 예를 들어 사람이 비디오 녹화를 검토하여 사용자 액션 로그를 생성할 수 있지만 이는 사용자가 하고 있는 것을 효율적으로 정확하게 캡처하지 못하고 실용적으로 효과적이기 위해서는 너무 비싸고 시간이 많이 소요된다. 더욱이, 무엇이 일어나고 있는지에 대한 리뷰어의 설명이 정확하지 않을 수 있다(예를 들어, 주어진 시간에 사용자가 사용하고 있는 애플리케이션을 리뷰어가 잘못 식별할 수 있다). 따라서, 유익한 자동화를 식별하는 것, 계획된 자동화 또는 기존 자동화를 개선하는 것, 또는 둘 모두를 위한 개선된 메커니즘이 도움이 될 수 있다.
본 발명의 특정 실시예는 현재의 RPA 기술들에 의해 아직 완전히 식별, 인식, 또는 해결되지 않은 당업계의 문제들 및 요구들에 대한 솔루션들을 제공할 수 있다. 예를 들어, 본 발명의 일부 실시예는 RPA를 위한 AI 기반 프로세스 식별, 추출 및 자동화에 관한 것이다.
일 예에서, 시스템은 서버 및 각각의 리스너(listener) 애플리케이션을 포함하는 복수의 사용자 컴퓨팅 시스템을 포함한다. 리스너 애플리케이션은 각각의 사용자 컴퓨팅 시스템과의 사용자 상호작용을 포함하는 로그를 생성하고 로그로부터 서버로 로그 데이터를 전송하도록 구성된다. 서버는, 리스너로부터 수집된 로그 데이터에 액세스하고 적어도 하나의 AI 계층을 통해 로그 데이터를 실행하도록 구성된다. 적어도 하나의 AI 계층은 로그 데이터를 처리하고 잠재적인 RPA 프로세스를 식별하도록 구성된다. 이어서, 서버는 식별된 RPA 프로세스를 포함하는 RPA 워크플로우를 자동적으로 생성하도록 구성된다.
다른 예에서, 컴퓨터 프로그램이 비일시적 컴퓨터 판독가능 매체 상에 포함된다. 프로그램은 적어도 하나의 프로세서로 하여금, 복수의 사용자 컴퓨팅 시스템의 각각의 리스너 애플리케이션으로부터 수집된 로그 데이터에 액세스하도록 구성된다. 프로그램은 또한 적어도 하나의 프로세서로 하여금 적어도 하나의 AI 계층을 통해 로그 데이터를 실행하도록 구성된다. 적어도 하나의 AI 계층은 로그 데이터를 처리하고 그 안의 잠재적인 RPA 프로세스를 식별하도록 구성된다. 프로그램은 또한 적어도 하나의 프로세서로 하여금 식별된 RPA 프로세스를 포함하는 RPA 워크플로우를 자동적으로 생성하도록 구성된다.
또다른 예에서, 컴퓨터 구현 방법은, 리스너에 의해, 사용자 컴퓨팅 시스템과의 사용자 상호작용을 포함하는 로그를 생성하는 단계, 및 리스너에 의해 로그로부터 서버로 로그 데이터를 전송하는 단계를 포함한다. 로그 데이터는 사용자가 스크린 상에서 어떤 곳을 클릭하였는지와 어떤 애플리케이션에 있는지, 키스트로크, 어떤 버튼이 클릭되었는지, 사용자가 애플리케이션 간에 스위칭한 사례, 포커스 변경, 이메일이 전송되었다는 것과 이메일이 무엇에 관한 것인지, 또는 이들의 임의의 조합을 포함한다. 또한, 컴퓨터 구현 방법은 하나 이상의 추출된 프로세스를 사용하여 하나 이상의 각각의 워크플로우 및 로봇을 생성하는 단계를 포함한다.
본 발명의 특정 실시예의 이점들이 쉽게 이해될 수 있도록, 상기 간략히 설명된 본 발명의 보다 구체적인 설명이 첨부된 도면들에 예시된 특정 실시예를 참조하여 제공될 것이다. 이들 도면은 본 발명의 일반적인 실시예만을 도시하며, 따라서 본 발명의 범위를 제한하는 것으로 간주되어서는 안된다는 점이 이해되어야 하는 한편, 본 발명은 첨부한 도면들의 사용을 통해 추가적으로 구체적이고 상세하게 묘사되고 설명될 것이다.
도 1은 본 발명의 실시예에 따른, RPA 시스템을 예시하는 아키텍처도이다.
도 2는 본 발명의 실시예에 따른, 배포된 RPA 시스템을 예시하는 아키텍처도이다.
도 3은 본 발명의 실시예에 따른, 설계자, 액티비티, 및 드라이버 간의 관계를 예시하는 아키텍처도이다.
도 4는 본 발명의 실시예에 따른, RPA 시스템을 예시하는 아키텍처도이다.
도 5는 본 발명의 실시예에 따른, RPA를 위한 AI 기반 프로세스 식별, 추출 및/또는 자동화를 수행하도록 구성된 컴퓨팅 시스템을 예시하는 아키텍처도이다.
도 6은 본 발명의 실시예에 따른, RPA를 위한 AI 기반 프로세스 식별, 추출 및 자동화를 수행하도록 구성된 시스템을 예시하는 아키텍처도이다.
도 7은 본 발명의 실시예에 따른, RPA를 위한 AI 기반 프로세스 식별, 추출 및 자동화를 위한 프로세스를 예시하는 플로우차트이다.
도 8은 본 발명의 일 실시예에 따른, 로그 데이터에 기반하여 RPA 워크플로우을 개발 및 배포하는 프로세스를 예시하는 플로우차트이다.
도 9는 본 발명의 일 실시예에 따른, SME(Subject Matter Expert) 가이드 프로세스 추출을 위한 프로세스를 예시하는 플로우차트이다.
일부 실시예는 RPA를 위한 AI 기반 프로세스 식별, 추출 및 자동화에 관한 것이다. 리스너는 사용자 액션과 관련된 데이터를 수집하기 위해 사용자 컴퓨팅 시스템에 배포될 수 있다. 이어서, 리스너에 의해 수집된 데이터는 하나 이상의 서버로 전송되어 데이터베이스에 저장될 수 있다. 이 데이터는 AI 계층에 의해 분석되어 그 안의 사용자 행위 프로세스의 패턴을 인식할 수 있다. 이어서, 이러한 인식된 프로세스는 각각의 RPA 워크플로우로 정제되고 배포되어 프로세스를 자동화할 수 있다.
따라서, 이러한 다중 계층의 인텔리전스는 자동화할 새로운 프로세스의 발견 및 이미 존재하고 배포된 프로세스의 개선을 용이하게 할 수 있다. 따라서, 일부 실시예는 자동화에 적합한 후보인 사용자가 수행하는 프로세스를 찾은 후 이러한 프로세스를 자동화하는 "프로세스 마이너(process miner)"로서 기능한다. 특정 실시예에서, 사용자는 프로세스가 추출되고 자동화되고 있다는 것을 인식하지 못할 수 있으며, 데이터 수집 및 자동화는 사용자에 의한 어떠한 액션없이 발생할 수 있다.
도 1은 본 발명의 실시예에 따른, RPA 시스템(100)을 예시하는 아키텍처도이다. RPA 시스템(100)은, 개발자가 워크플로우를 설계하고 구현하는 것을 가능하게 하는 설계자(110)를 포함한다. 설계자(110)는 서드-파티 애플리케이션, 관리 IT(Information Technology) 테스크, 및 비지니스 IT 프로세스를 자동화하는 것 뿐만 아니라 애플리케이션 통합을 위한 솔루션을 제공할 수 있다. 설계자(110)는, 비지니스 프로세스의 그래픽적 표현인 자동화 프로젝트의 개발을 용이하게 할 수 있다. 간단히 말해서, 설계자(110)는 워크플로우 및 로봇의 개발 및 배포를 용이하게 한다.
자동화 프로젝트는, "액티비티"로서 본원에서 정의되는, 워크플로우에서 개발된 커스텀 세트(custom set)의 단계들 간의 실행 순서 및 관계의 개발자 제어를 줌으로써 규칙 기반 프로세스의 자동화를 가능하게 한다. 설계자(110)의 실시예의 한 상업적 예시는 UiPath Studio™이다. 각각의 액티비티는 버튼을 클릭하는 것, 파일을 판독하는 것, 로그 패널을 기록하는 것 등과 같은 액션을 포함할 수 있다. 일부 실시예에서, 워크플로우이 네스팅(nesting) 또는 임베딩(embedding)될 수 있다.
일부 유형의 워크플로우는 시퀀스, 플로우차트, FSM(Finite State Machine), 및/또는 글로벌 예외 처리기(global exception handler)를 포함할 수 있지만, 이에 제한되는 것은 아니다. 시퀀스는 선형 프로세스에 특히 적합할 수 있어, 워크플로우를 어지럽히지(clutter) 않고 한 액티비티로부터 다른 액티비티로의 플로우를 가능하게 한다. 플로우차트는 더 복잡한 비지니스 로직에 특히 적합할 수 있어, 다수의 브랜칭 로직 연산자를 통해 더 다양한 방식으로 결정들의 통합 및 액티비티의 연결을 가능하게 한다. FSM은 큰 워크플로우에 특히 적합할 수 있다. FSM은 조건[즉, 전환(transition)] 또는 액티비티에 의해 트리거되는 유한 수의 상태를 이들의 실행에서 사용할 수 있다. 글로벌 예외 처리기는, 실행 에러에 직면했을 때 그리고 디버깅 프로세스에 대해 워크플로우 거동을 결정하기 위해 특히 적합할 수 있다.
설계자(110)에서 워크플로우가 개발되면, 설계자(110)에서 개발된 워크플로우들을 실행하는 하나 이상의 로봇(130)을 지휘(orchestrate)하는 지휘자(conductor)(120)에 의해 비지니스 프로세스의 실행이 지휘된다. 지휘자(120)의 실시예의 한 상업적 예시는 UiPath Orchestrator™이다. 지휘자(120)는 환경에서의 리소스의 생성, 모니터링, 및 배포의 관리를 용이하게 한다. 지휘자(120)는 서드-파티 솔루션 및 애플리케이션과의 통합 지점으로서 역할할 수 있다.
중앙 지점으로부터 로봇(130)을 연결하고 실행하는 지휘자(120)가 로봇(130)의 플릿(fleet)을 관리할 수 있다. 관리될 수 있는 로봇(130)의 유형은 유인 로봇(132), 무인 로봇(unattended robot)(134), 개발 로봇[무인 로봇(134)과 유사하지만, 개발 및 테스트 목적을 위해 사용됨], 비생산 로봇[유인 로봇(132)과 유사하지만, 개발 및 테스트 목적을 위해 사용됨]을 포함하지만, 이에 제한되는 것은 아니다. 유인 로봇(132)은 사용자 이벤트에 의해 트리거되고 인간과 함께 동일한 컴퓨팅 시스템 상에서 동작한다. 유인 로봇(132)은 중앙집중형 프로세스 배포 및 로깅 매체에 대해 지휘자(120)와 함께 사용될 수 있다. 유인 로봇(132)은 인간 사용자가 다양한 테스크를 달성하는 것을 도울 수 있고, 사용자 이벤트에 의해 트리거될 수 있다. 일부 실시예에서, 프로세스가 이 유형의 로봇 상에서 지휘자(120)로부터 시작될 수 없고/없거나 이들이 잠긴 스크린 하에 실행될 수 없다. 특정 실시예에서, 유인 로봇(132)은 로봇 트레이(robot tray)로부터만 또는 명령 프롬프트로부터만 시작될 수 있다. 유인 로봇(132)은 일부 실시예에서 인간 감독 하에 실행되어야 한다.
무인 로봇(134)은 가상 환경에서 무인으로 실행될 수 있고 많은 프로세스를 자동화할 수 있다. 무인 로봇(134)은 원격 실행, 모니터링, 스케줄링, 및 워크 큐(work queue)에 대한 지원을 제공하는 것을 담당할 수 있다. 모든 로봇 유형에 대한 디버깅이 일부 실시예에서 설계자(110)에서 실행될 수 있다. 유인 로봇 및 무인 로봇 둘 다 메인프레임, 웹 애플리케이션, VM, 엔터프라이즈 애플리케이션(예를 들어, SAP®, SalesForce®, Oracle® 등에 의해 생산되는 것), 및 컴퓨팅 시스템 애플리케이션(예를 들어, 데스크탑 및 랩탑 애플리케이션, 모바일 디바이스 애플리케이션, 웨어러블 컴퓨터 애플리케이션 등)을 포함하지만 이에 제한되는 것은 아닌 다양한 시스템 및 애플리케이션을 자동화할 수 있다.
지휘자(120)는 프로비저닝(provisioning), 배포, 구성, 큐잉(queueing), 모니터링, 로깅, 및/또는 상호연결을 제공하는 것을 포함하지만 이에 제한되는 것은 아닌 다양한 능력을 가질 수 있다. 프로비저닝은 로봇(130)과 지휘자(120)(예를 들어, 웹 애플리케이션) 간의 연결의 생성 및 유지보수를 포함할 수 있다. 배포는 실행을 위한 할당된 로봇(130)에의 패키지 버전의 올바른 전달을 보증하는 것을 포함할 수 있다. 구성은 로봇 환경 및 프로세스 구성의 유지보수 및 전달을 포함할 수 있다. 큐잉은 큐 및 큐 항목의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터의 추적을 유지하는 것 및 사용자 허가(user permission)를 유지하는 것을 포함할 수 있다. 로깅은 데이터베이스(예를 들어, SQL 데이터베이스) 및/또는 다른 저장 메커니즘[예를 들어, 큰 데이터세트를 저장하고 빠르게 질의(query)하는 능력을 제공하는 ElasticSearch®]에 로그를 저장하고 인덱싱하는 것을 포함할 수 있다. 지휘자(120)는 서드-파티 솔루션 및/또는 애플리케이션에 대한 통신의 중앙 지점으로서 역할함으로써 상호연결을 제공할 수 있다.
로봇(130)은 설계자(110)에 구축된 워크플로우를 실행하는 실행 에이전트이다. 로봇(들)(130)의 일부 실시예의 한 상업적 예시는 UiPath Robots™이다. 일부 실시예에서, 로봇(130)은 Microsoft Windows® SCM(Service Control Manager)로 관리되는 서비스를 디폴트로 설치한다. 결과로서, 그러한 로봇(130)이 로컬 시스템 계정 하에 상호적 Windows® 세션을 열 수 있고, Windows® 서비스의 권한(right)을 가질 수 있다.
일부 실시예에서, 로봇(130)이 사용자 모드로 설치될 수 있다. 그러한 로봇(130)에 대해, 이는 이들이 사용자[이 사용자 하에 주어진 로봇(130)이 설치됨]와 동일한 권한을 갖는 것을 의미한다. 이 피처는 또한, 각각의 머신의 자신의 최대 잠재력에서의 전체 활용을 보장하는 HD(High Density) 로봇에 이용가능할 수 있다. 일부 실시예에서, 임의의 유형의 로봇(130)이 HD 환경에 구성될 수 있다.
일부 실시예에서의 로봇(130)은, 각각이 특정 자동화 테스크에 전용되는 여러 컴포넌트로 분할된다. 일부 실시예에서의 로봇 컴포넌트는 SCM으로 관리되는 로봇 서비스, 사용자 모드 로봇 서비스, 실행자, 에이전트, 및 명령 라인을 포함하지만 이에 제한되는 것은 아니다. SCM으로 관리되는 로봇 서비스는 Windows® 세션을 관리하고 모니터하며 지휘자(120)와 실행 호스트[즉, 로봇(130)이 실행되는 컴퓨팅 시스템] 간의 프록시로서 역할한다. 이 서비스는 로봇(130)에 대한 자격증명(credential)으로 신뢰되고 자격증명을 관리한다. 로컬 시스템 하에 SCM에 의해 콘솔 애플리케이션이 런칭(launching)된다.
일부 실시예에서의 사용자 모드 로봇 서비스은 Windows® 세션을 관리하고 모니터링하며 지휘자(120)와 실행 호스트 간의 프록시로서 역할한다. 사용자 모드 로봇 서비스는 로봇(130)에 대한 자격증명으로 신뢰될 수 있고 자격증명을 관리할 수 있다. Windows® 애플리케이션은, SCM으로 관리되는 로봇 서비스가 설치되지 않았으면 자동적으로 런칭될 수 있다.
실행자는 Windows® 세션 하에 주어진 일들을 실행할 수 있다(즉, 이들이 워크플로우를 실행할 수 있음). 실행자는 모니터별(per-monitor) DPI(dots per inch) 설정을 알고 있을 수 있다. 에이전트는 이용가능한 일들을 시스템 트레이 윈도우에 디스플레이하는 WPF(Windows® Presentation Foundation) 애플리케이션일 수 있다. 에이전트는 서비스의 클라이언트일 수 있다. 에이전트는 일들을 시작하거나 중지할 것을 요청할 수 있고 설정을 변경할 수 있다. 명령 라인은 서비스의 클라이언트일 수 있다. 명령 라인은, 일들을 시작할 것을 요청할 수 있고 이들의 출력을 대기하는 콘솔 애플리케이션이다.
로봇(130)의 컴포넌트를 위에서 해석된 바와 같이 분할되게 하는 것은, 개발자, 지원 사용자, 및 컴퓨팅 시스템이 각각의 컴포넌트가 실행하고 있는 것을 더 쉽게 실행하고, 식별하고, 추적하는 것을 돕는다. 실행자 및 서비스에 대해 상이한 방화벽 규칙(firewall rule)을 설정하는 것과 같이, 특별한 거동이 이 방식으로 컴포넌트별로 구성될 수 있다. 실행자는 일부 실시예에서 모니터별 DPI 설정을 항상 알고 있을 수 있다. 결과로서, 워크플로우는 이들이 생성된 컴퓨팅 시스템의 구성에 관계없이, 임의의 DPI에서 실행될 수 있다. 설계자(110)로부터의 프로젝트가 또한 일부 실시예에서 브라우저 줌 레벨과 독립적일 수 있다. DPI를 알고 있지 않거나 알고 있지 않는 것으로서 의도적으로 마킹된 애플리케이션에 대해, 일부 실시예에서 DPI가 디스에이블될 수 있다.
도 2는 본 발명의 실시예에 따른, 배치된 RPA 시스템(200)을 예시하는 아키텍처도이다. 일부 실시예에서, RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수 있거나 RPA 시스템(100)의 일부일 수 있다. 클라이언트측, 서버측, 또는 둘 다가 본 발명의 범위로부터 벗어나지 않는 임의의 원하는 수의 컴퓨팅 시스템을 포함할 수 있다는 점에 유념해야 한다. 클라이언트측 상에서, 로봇 애플리케이션(210)이 실행자(212), 에이전트(214), 및 설계자(216)를 포함한다. 그러나, 일부 실시예에서, 설계자(216)가 컴퓨팅 시스템(210) 상에서 실행되고 있지 않을 수 있다. 실행자(212)이 프로세스를 실행하고 있다. 도 2에 도시된 바와 같이, 몇몇 비지니스 프로젝트가 동시에 실행된다. 에이전트(214)(예를 들어, Windows® service)가 이 실시예에서 모든 실행자(212)에 대한 단일 접점(point of contact)이다. 이 실시예에서의 모든 메시지가 지휘자(230) 내로 로깅되고, 지휘자(230)는 이들을 데이터베이스 서버(240), 인덱서 서버(250), 또는 둘 다를 통해 더 처리된다. 도 1과 관련하여 위에서 논의된 바와 같이, 실행자(212)는 로봇 컴포넌트일 수 있다.
일부 실시예에서, 로봇이 머신명(machine name)과 사용자명 간의 연관성을 표현한다. 로봇은 다수의 실행자를 동시에 관리할 수 있다. 다수의 상호적 세션이 동시에 실행되는 컴퓨팅 시스템(예를 들어, Windows® Server 2012) 상에서, 고유한 사용자명을 사용하는 분리된 Windows® 세션에 각각이 있는 다수의 로봇이 동시에 실행될 수 있다. 이는 위에서 HD 로봇으로 지칭된다.
에이전트(214)는 또한, 로봇의 상태를 전송하는 것(예를 들어, 로봇이 여전히 기능하고 있음을 나타내는 "하트비트(heartbeat)" 메시지를 주기적으로 전송함) 및 실행될 패키지의 필요되는 버전을 다운로드하는 것을 담당한다. 에이전트(214)와 지휘자(230) 간의 통신이 일부 실시예에서 항상 에이전트(214)에 의해 개시된다. 통지 시나리오에서, 에이전트(214)는 명령들(예를 들어, 시작, 중지 등)을 로봇에 전송하기 위해 지휘자(230)에 의해 추후 사용되는 WebSocket 채널을 개방할 수 있다.
서버측 상에, 프레젠테이션 계층[웹 애플리케이션(232), OData(Open Data Protocol) REST(Representative State Transfer), API(Application Programming Interface), 엔드포인트(234), 및 통지 및 모니터링(236)], 서비스 계층[API 구현/비지니스 로직(238)], 및 퍼시스턴스 계층(persistence layer)[데이터베이스 서버(240) 및 인덱서 서버(250)]이 포함된다. 지휘자(230)는 웹 애플리케이션(232), OData REST API 엔드포인트(234), 통지 및 모니터링(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)에서 일 시작 명령(start job command)이 사용되면 실행되어야 하는 패키지 버전을 질의하기 위해 로봇에 의해 사용될 수 있다. 큐잉 REST 엔드포인트는 큐에 데이터를 추가하는 것, 큐로부터 트랜잭션(transaction)을 획득하는 것, 트랜잭션의 상태를 설정하는 것 등과 같은 큐 및 큐 항목 관리를 담당할 수 있다.
모니터링 REST 엔드포인트는 웹 애플리케이션(232) 및 에이전트(214)를 모니터링할 수 있다. 통지 및 모니터링 API(236)는, 에이전트(214)를 등록하고, 에이전트(214)에 구성 설정을 전달하기 위해, 그리고 서버 및 에이전트(214)로부터 통지를 전송/수신하는데 사용되는 REST 엔드포인트일 수 있다. 통지 및 모니터링 API(236)는 또한 일부 실시예에서 WebSocket 통신을 사용할 수 있다.
퍼시스턴스 계층은 이 실시예에서 한 쌍의 서버 - 데이터베이스 서버(240)(예를 들어, SQL 서버) 및 인덱서 서버(250)를 포함한다. 이 실시예에서의 데이터베이스 서버(240)는 로봇의 구성, 로봇 그룹, 연관된 프로세스, 사용자, 역할, 스케줄 등을 저장한다. 이 정보는 일부 실시예에서 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐 및 큐 항목을 관리할 수 있다. 일부 실시예에서, 데이터베이스 서버(240)는 [인덱서 서버(250)에 추가하여 또는 인덱서 서버(224)를 대신하여] 로봇에 의해 로깅된 메시지를 저장할 수 있다.
일부 실시예에서 선택적인 인덱서 서버(250)가 로봇에 의해 로깅된 정보를 저장하고 인덱싱한다. 특정 실시예에서, 인덱서 서버(250)가 구성 설정을 통해 디스에이블될 수 있다. 일부 실시예에서, 인덱서 서버(250)는 오픈 소스 프로젝트 전체 텍스트 서치 엔진인 ElasticSearch®를 사용한다. (예를 들어, 로그 메시지 또는 기록 라인과 같은 액티비티를 사용하여) 로봇에 의해 로깅된 메시지는, 이들이 미래 활용을 위해 인덱싱되는 인덱서 서버(250)에 로깅 REST 엔드포인트(들)를 통해 전송될 수 있다.
도 3은 본 발명의 실시예에 따른, 설계자(310), 액티비티(320, 330), 및 드라이버(340) 간의 관계(300)를 예시하는 아키텍처도이다. 위에 따라, 개발자는 로봇에 의해 실행되는 워크플로우를 개발하기 위해 설계자(310)를 사용한다. 워크플로우는 사용자 정의 액티비티(320) 및 UI 자동화 액티비티(330)를 포함할 수 있다. 일부 실시예는, 본원에서 CV(computer vision)로 불리우는, 이미지 내의 비텍스트 시각 컴포넌트(non-textual visual component)를 식별할 수 있다. 그러한 컴포넌트에 관한 일부 CV 액티비티는 클릭, 타이핑, 텍스트 획득, 호버(hover), 엘리먼트 이그지스트(element exists), 범위 새로고침, 하이라이팅 등을 포함할 수 있지만, 이에 제한되는 것은 아니다. 일부 실시예에서의 클릭은, 예를 들어 CV, OCR(optical character recognition), 퍼지 텍스트 매칭, 및 다중 앵커(multi-anchor)를 사용하여 엘리먼트를 식별하고, 이를 클릭한다. 타이핑은 위를 사용하여 엘리먼트를 식별할 수 있고 엘리먼트에 타이핑한다. 텍스트 획득은 특정 텍스트의 위치를 식별하고 이를 OCR을 사용하여 스캐닝할 수 있다. 호버는 엘리먼트를 식별하고 이 위에서 호버링할 수 있다. 엘리먼트 이그지스트는, 위에서 설명된 기술들을 사용하여 스크린 상에 엘리먼트가 존재하는지 여부를 체크할 수 있다. 일부 실시예에서, 설계자(310)에 구현될 수 있는 수백개 또는 심지어 수천개의 액티비티가 있을 수 있다. 그러나, 본 발명의 범위로부터 벗어나지 않는 임의의 수의 및/또는 유형의 액티비티가 이용가능할 수 있다.
UI 자동화 액티비티(330)는 하위 레벨 코드(예를 들어, CV 액티비티)로 기록되고 스크린과의 상호작용을 용이하게 하는 특별한, 하위 레벨 액티비티의 서브세트이다. UI 자동화 액티비티(330)은 이 상호작용을, 로봇이 원하는 소프트웨어와 상호작용하는 것을 가능하게 하는 드라이버(340)를 통해 용이하게 한다. 예를 들어, 드라이버(340)은 OS 드라이버(342), 브라우저 드라이버(344), VM 드라이버(346), 엔터프라이즈 애플리케이션 드라이버(348) 등을 포함할 수 있다.
드라이버(340)는 후크(hook)를 찾고, 키를 모니터링하는 등 하위 레벨에서 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을 참조하면, 이 실시예에서 웹 애플리케이션이 사용되는 한편, 본 발명의 범위로부터 벗어나지 않는 임의의 적합한 클라이언트/서버 소프트웨어가 사용될 수 있다는 점에 유념해야 한다. 예를 들어, 지휘자는 클라이언트 컴퓨팅 시스템 상의 비웹기반 클라이언트 소프트웨어 애플리케이션(non-web-based client software application)과 통신하는 서버측 애플리케이션을 실행할 수 있다.
도 5는 본 발명의 실시예에 따른, RPA를 위한 AI 기반 프로세스 식별, 추출 및/또는 자동화를 수행하도록 구성된 컴퓨팅 시스템(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(Random Access Memory), ROM(Read Only Memory), 플래시 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 스토리지의 임의의 조합, 또는 임의의 다른 유형의 비일시적 컴퓨터 판독가능 매체 또는 이들의 조합을 포함할 수 있다. 비일시적 컴퓨터 판독가능 매체는 프로세서(들)(510)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있고 휘발성 매체, 비휘발성 매체, 또는 둘 다를 포함할 수 있다. 매체는 또한 제거가능하거나, 비제거가능하거나, 또는 둘 다일 수 있다.
추가적으로, 컴퓨팅 시스템(500)은 무선 및/또는 유선 연결을 통한 통신 네트워크에의 액세스를 제공하기 위한 송수신기(transceiver)와 같은 통신 디바이스(520)를 포함한다. 일부 실시예에서, 통신 디바이스(520)는 FDMA(Frequency Division Multiple Access), SC-FDMA(Single Carrier FDMA), TDMA(Time Division Multiple Access), CDMA(Code Division Multiple Access), OFDM(Orthogonal Frequency Division Multiplexing), OFDMA(Orthogonal Frequency Division Multiple Access), GSM(Global System for Mobile) 통신, GPRS(General Packet Radio Service), UMTS(Universal Mobile Telecommunications System), cdma2000, W-CDMA(Wideband CDMA), HSDPA(High-Speed Downlink Packet Access), HSUPA(High-Speed Uplink Packet Access), HSPA(High-Speed Packet Access), LTE(Long Term Evolution), LTE-A(LTE Advanced), 802.11x, Wi-Fi, Zigbee, UWB(Ultra-WideBand), 802.16x, 802.15, HnB(Home Node-B), Bluetooth, RFID(Radio Frequency Identification), IrDA(Infrared Data Association), NFC(Near-Field Communications), 5G(fifth generation), NR(New Radio), 이들의 임의의 조합, 및/또는 본 발명의 범위로부터 벗어나지 않는 임의의 다른 현재 존재하거나 미래에 구현될 통신 기준 및/또는 프로토콜을 사용하도록 구성될 수 있다. 일부 실시예에서, 통신 디바이스(520)는 단일형, 어레이형, 위상형, 스위치형, 빔포밍, 빔스티어링, 이들의 조합, 및 또는 본 발명의 범위로부터 벗어나지 않는 임의의 다른 안테나 구성인 하나 이상의 안테나를 포함할 수 있다.
프로세서(들)(510)는 또한, 플라즈마 디스플레이, LCD(Liquid Crystal Display), LED(Light Emitting Diode) 디스플레이, FED(Field Emission Display), OLED(Organic Light Emitting Diode) 디스플레이, 플렉서블 OLED 디스플레이, 플렉서블 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, 고화질 디스플레이, Retina® 디스플레이, IPS(In-Plane Switching) 디스플레이, 또는 사용자에게 정보를 디스플레이하기 위한 임의의 다른 적합한 디스플레이와 같은 디스플레이(525)에 버스(505)를 통해 커플링된다. 디스플레이(525)는, 저항성, 용량성, SAW(surface-acoustic wave) 용량성, 적외선, 광학 이미징, 분산적 신호 기술(dispersive signal technology), 음향 펄스 인식(acoustic pulse recognition), 좌절형 내부 전반사(frustrated total internal reflection) 등을 사용하는 터치(햅틱) 디스플레이, 3D(three-dimensional) 터치 디스플레이, 다중 입력 터치 디스플레이, 다중 터치 디스플레이 등으로서 구성될 수 있다. 본 발명의 범위로부터 벗어나지 않는 임의의 적합한 디스플레이 디바이스 및 햅틱 I/O가 사용될 수 있다.
컴퓨터 마우스, 터치패드 등과 같은 커서 제어 디바이스(535) 및 키보드(530)가 또한, 사용자가 컴퓨팅 시스템(500)과 인터페이싱하는 것을 가능하게 하기 위해 버스(505)에 커플링된다. 그러나, 특정 실시예에서, 물리적 키보드 및 마우스가 존재하지 않을 수 있고, 사용자가 오로지 디스플레이(525) 및/또는 터치패드(도시되지 않음)를 통해 디바이스와 상호작용할 수 있다. 임의의 유형 및 조합의 입력 디바이스가 설계 선택의 사안으로서 사용될 수 있다. 특정 실시예에서, 물리적 입력 디바이스 및/또는 디스플레이가 존재하지 않는다. 예를 들어, 사용자가 통신 중인 다른 컴퓨팅 시스템을 통해 원격으로 컴퓨팅 시스템(500)과 상호작용할 수 있거나, 또는 컴퓨팅 시스템(500)이 자율적으로(autonomously) 동작할 수 있다.
메모리(515)는, 프로세서(들)(510)에 의해 실행될 때 기능을 제공하는 소프트웨어 모듈을 저장한다. 모듈은 컴퓨팅 시스템(500)용 운영 체제(540)를 포함한다. 모듈은 본원에서 설명된 프로세스 또는 이들의 파생물 중 일부 또는 모두를 수행하도록 구성된 프로세스 식별, 추출 및 자동화 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가 기능을 포함하는 하나 이상의 추가 기능적 모듈(550)을 포함할 수 있다.
당업자는, "시스템"이 서버, 임베디드 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, PDA(personal digital assistant), 셀 폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 임의의 다른 적합한 컴퓨팅 디바이스, 또는 본 발명의 범위로부터 벗어나지 않는 디바이스의 조합으로서 구현될 수 있다는 점을 인식할 것이다. 위에서 설명된 기능을 "시스템"에 의해 수행되는 것으로서 제시하는 것은 임의의 방식으로 본 발명의 범위를 제한하는 것으로 의도되는 것은 아니며, 본 발명의 많은 실시예의 일례를 제공하는 것으로 의도된다. 실제로, 본원에서 개시된 방법, 시스템, 및 장치는 클라우드 컴퓨팅 시스템을 포함한 컴퓨팅 기술과 일치하는 로컬화되고 분산된 형태들로 구현될 수 있다.
본 명세서에서 설명된 시스템 피처 중 일부가 이들의 구현 독립성을 더 특별히 강조하기 위해 모듈로서 제시되었다는 점에 유념해야 한다. 예를 들어, 모듈은 커스텀 VLSI(very large scale integration) 회로 또는 게이트 어레이, 로직 칩, 트랜지스터와 같은 기성 반도체(off-the-shelf semiconductor), 또는 다른 개별 컴포넌트를 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한, 필드 프로그래밍가능 게이트 어레이, 프로그래밍가능 어레이 로직, 프로그래밍가능 로직 디바이스, 그래픽스 처리 유닛 등과 같은 프로그래밍가능 하드웨어 디바이스에 구현될 수 있다.
모듈은 또한 다양한 유형의 프로세서에 의한 실행을 위해 소프트웨어에 적어도 부분적으로 구현될 수 있다. 예를 들어, 실행파일 코드(executable code)의 식별된 유닛이, 예를 들어 객체, 프로시저, 또는 함수로서 체계화(organize)될 수 있는 컴퓨터 명령어들의 하나 이상의 물리적 또는 로직적 블록을 포함할 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행파일이 물리적으로 함께 위치될 필요는 없지만, 로직적으로 함께 결합될 때 모듈을 포함하고 모듈에 대한 명시된 목적을 달성하는 상이한 위치에 저장된 이종 명령어(disparate instruction)를 포함할 수 있다. 또한, 모듈은, 예를 들어 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 본 발명의 범위로부터 벗어나지 않는 데이터를 저장하는데 사용되는 임의의 다른 그러한 비일시적 컴퓨터 판독가능 매체일 수 있는 컴퓨터 판독가능 매체 상에 저장될 수 있다.
실제로, 실행파일 코드의 모듈이 단일 명령어, 또는 많은 명령어들일 수 있고, 여러 상이한 코드 세그먼트들에 걸쳐, 상이한 프로그램들 사이에, 그리고 여러 메모리 디바이스들에 걸쳐 분산될 수도 있다. 유사하게, 동작 데이터가 모듈들 내에서 식별될 수 있고 본원에 예시될 수 있으며, 임의의 적합한 형태로 구현될 수 있고 임의의 적합한 유형의 데이터 구조 내에 체계화될 수 있다. 동작 데이터는 단일 데이터 세트로서 수집될 수 있거나, 또는 상이한 스토리지 디바이스에 걸치는 것을 포함하여 상이한 위치에 걸쳐 분산될 수 있으며, 시스템 또는 네트워크 상에 단지 전자 신호로서 적어도 부분적으로 존재할 수 있다.
도 6은 본 발명의 실시예에 따른, RPA를 위한 AI 기반 프로세스 식별, 추출 및 자동화를 수행하도록 구성된 시스템(600)을 예시하는 아키텍처도이다. 시스템(600)은 데스크탑 컴퓨터(602), 태블릿(604), 및 스마트 폰(606)과 같은 사용자 컴퓨팅 시스템을 포함한다. 그러나, 스마트 워치, 랩탑 컴퓨터, IoT(Internet-of-Things) 디바이스, 차량 컴퓨팅 시스템 등을 포함하지만 이에 제한되는 것은 아닌 본 발명의 범위로부터 벗어나지 않는 임의의 원하는 컴퓨팅 시스템이 사용될 수 있다.
각각의 컴퓨팅 시스템(602, 604, 606)은 그 상에 설치된 리스너(610)를 갖는다. 리스너(610)는 RPA 설계자 애플리케이션, 운영 체제의 일부, PC(personal computer) 또는 스마트폰용 다운로드가능 애플리케이션, 또는 본 발명의 범위로부터 벗어나지 않는 임의의 다른 소프트웨어 및/또는 하드웨어를 통해 생성된 로봇일 수 있다. 실제로, 일부 실시예에서, 리스너(610) 중 하나 이상의 로직이 물리적 하드웨어를 통해 부분적으로 또는 완전히 구현된다.
리스너(610)는 각자의 컴퓨팅 시스템(602, 604, 606)과의 사용자 상호작용의 로그를 생성하고, 로그 데이터를 네트워크(620)[예를 들어, LAN(local area network), 모바일 통신 네트워크, 위성 통신 네트워크, 인터넷, 이들의 임의의 조합 등]를 통해 서버(630)에 전송한다. 로그되는 데이터는 어떤 버튼이 클릭되는지, 마우스가 어떤 곳으로 이동되는지, 필드에 입력된 텍스트, 하나의 윈도우가 최소화되고 다른 윈도우가 열렸다는 것, 윈도우와 연관된 애플리케이션 등을 포함할 수 있지만, 이에 제한되지 않는다. 일부 실시예에서, 서버(630)는 지휘자 애플리케이션을 실행할 수 있고 데이터는 하트비트 메시지의 일부로서 주기적으로 전송될 수 있다. 특정 실시예에서, 로그 데이터는, 미리결정된 양의 로그 데이터가 수집되었을 때, 또는 미리결정된 기간(time period)이 경과된 후에, 또는 둘 모두에 서버(630)로 전송될 수 있다. 서버(630)는 리스너(610)로부터 수신된 로그 데이터를 데이터베이스(640)에 저장한다.
인간 사용자(예를 들어, RPA 엔지니어 또는 데이터 사이언티스트)에 의해 명령될 때, 미리결정된 양의 로그 데이터가 수집되었을 때, 마지막 분석 이래로 미리결정된 양의 시간이 지났을 때 등에, 서버(630)는 데이터베이스(640)로부터 리스너(610)에 의해 다양한 사용자로부터 수집된 로그 데이터에 액세스하고 다수의 AI 계층(632)을 통해 로그 데이터를 실행한다. AI 계층(632)은 로그 데이터를 처리하고 그 안의 하나 이상의 잠재적 프로세스를 식별한다. AI 계층(632)은 통계적 모델링(예를 들어, 은닉 마르코프 모델(hidden Markov model, HMM))을 수행하고 딥 러닝 기술(예를 들어, 장단기 메모리(long short term memory, LSTM) 딥 러닝, 이전 은닉 상태의 인코딩 등)을 활용하고 프로세스의 원자 인스턴스를 식별하기 위해 케이스(case) 식별을 수행할 수 있다. 예를 들어 인보이스 처리의 경우 하나의 인보이스 완료가 케이스일 수 있다. 따라서, 시스템은 하나의 케이스가 끝나고 다음 케이스가 시작되는 지점을 결정한다. 예를 들어, 이메일을 여는 것이 케이스의 시작일 수 있고, 케이스의 패턴이 분석되어 변형 및 공통성(commonality)을 결정할 수 있다.
일부 실시예에서, 식별된 프로세스는 사용자가 정독하도록 리스트될 수 있고, 주어진 프로세스가 RPA에 얼마나 적합한지를 나타내는 RPA 점수(예를 들어, 자동화의 복잡성, 실행 시간, 창출된 수익, 절감된 수익, 절감된 시간 등과 같은 주요 성과 지표에 대한 인지된 이점에 기초함), 프로세스 이름, 총 기록 시간, 프로세스를 실행한 사용자의 수, 프로세스 실행 시간(예를 들어, 최소 또는 대부분 시간) 등을 포함하지만 이에 제한되지 않는 다양한 인자에 의해 정렬될 수 있다. 사용자가 단계, 파라미터 및 상호연결을 포함하여 주어진 프로세스를 클릭할 때 프로세스 워크플로우가 디스플레이될 수 있다. 특정 실시예에서, 클러스터링 관점에서 중요한 것으로 보이는 프로세스 액티비티만이 사용될 수 있다.
유사한 프로세스가 이미 존재하는 경우, 서버(630)는 이러한 유사성을 식별하고 식별된 프로세스가 덜 최적으로 작동하는 유사한 자동화를 위해 기존 프로세스를 대체해야 한다는 것을 알 수 있다. 예를 들어, 프로세스 간의 유사성은 공통의 시작 및 종료, 및 사이에서 취하는 단계에서 일정량의 통계적 공통성에 의해 결정될 수 있다. 공통성은 엔트로피, 프로세스 검출 목적 함수의 최소화 등에 의해 결정될 수 있다. 목적 함수 문턱은 일부 실시예에서 자동적으로 설정될 수 있으며, 시스템에 의해 유사하지 않은 것으로 식별된 프로세스가 사용자에 의해 유사한 것으로 표시되는 경우 트레이닝 중에 수정될 수 있다. 이어서, 서버(630)는 식별된 프로세스를 포함하는 워크플로우를 자동적으로 생성할 수 있고, 워크플로우를 구현하는 로봇(또는 대체 로봇)을 생성할 수 있고, 생성된 로봇을 사용자 컴퓨팅 시스템(602, 604, 606) 상에서 실행되도록 사용자 컴퓨팅 시스템(602, 604, 606)에 푸시 아웃할 수 있다.
대안적으로, 특정 실시예에서, AI 계층(632)으로부터의 제안된 프로세스가 컴퓨팅 시스템(650) 상의 설계자 애플리케이션(652)을 통해 RPA 엔지니어에게 제시될 수 있다. RPA 엔지니어는 이어서 워크플로우를 검토할 수 있거나, 임의의 원하는 변경을 행할 수 있거나, 이어서 워크플로우를 로봇을 통해 컴퓨팅 시스템(602, 604, 606)에 배포할 수 있거나, 또는 로봇이 배포되게 할 수 있다. 예를 들어, 프로세스를 구현하는 로봇을 사용자 컴퓨팅 시스템(602, 604, 606)에 푸시 아웃할 수 있는, 서버(630) 또는 다른 서버 상에서 실행되는 지휘자 애플리케이션을 통해 배포가 발생할 수 있다. 일부 실시예에서, 이 워크플로우 배포가 설계자 애플리케이션에서 자동화 관리자 기능을 통해 실현될 수 있고, RPA 엔지니어가 로봇에 프로세스를 구현하기 위해 단지 버튼을 클릭할 수 있다.
리스너
컴퓨팅 시스템(602, 604, 606) 상에서 사용자에 의해 취해진 액션에 관한 데이터를 추출하기 위해, 리스너(610)가 화이트리스트 애플리케이션(whitelisted application)으로부터 데이터를 추출하기 위해 드라이버 레벨[예를 들어, 도 3의 드라이버(340)]에서 클라이언트측 상에서 이용될 수 있다. 예를 들어, 리스너(610)는, 사용자가 스크린 상에서 어떤 곳을 클릭하였는지와 어떤 애플리케이션에 있는지, 키스트로크, 어떤 버튼이 클릭되었는지, 사용자가 애플리케이션 간에 스위칭한 사례, 포커스 변경, 이메일이 전송되었다는 것과 이메일이 무엇에 관한 것인지 등을 기록할 수 있다. 그러한 데이터는 컴퓨팅 시스템(602, 604, 606)과의 사용자의 상호작용의 고충실도 로그(high-fidelity log)를 생성하기 위해 사용될 수 있다.
일부 실시예에서, 데이터는 원하는 사용자별 또는 전체 데이터 볼륨 및/또는 최대 기록 시간(사용자별 또는 전체)에 도달할 때까지 생성될 수 있다. 이것은 개별 사용자, 여러 사용자 또는 둘 다에 대해 설정할 수 있는 기록 목표를 구성할 수 있다. 특정 실시예에서, 리스너(610)는 개별 또는 그룹 데이터 기록 목표에 도달하면 기록을 중단할 수 있다. 이어서, 데이터는 서버(630)에 업로드되고 데이터베이스(640)에 저장될 수 있다.
특정 실시예에서, 사용자 상호작용이 로그될 애플리케이션이 화이트리스트될 수 있다. 즉, 어떤 특정 애플리케이션과의 상호작용에만 관심을 가질 수 있다. 예를 들어, 웹 브라우저 및 이메일 애플리케이션과의 상호작용은 기록될 수 있지만, 다른 애플리케이션과의 상호작용은 무시될 수 있다.
프로세스 추출을 위한 로그 데이터를 생성하는 것에 추가하여 또는 대안적으로, 일부 실시예는 사용자가 실제로 무엇을 하고 있는지에 대한 통찰력(insights)을 제공할 수 있다. 예를 들어, 리스너(610)는, 사용자가 실제로 어떤 애플리케이션을 사용하고 있는지, 사용자가 주어진 애플리케이션을 어떤 시간 비율로 사용하고 있는지, 사용자가 애플리케이션 내의 어떤 기능을 사용하고 있고 어떤 기능을 사용하지 않는지 등을 결정할 수 있다. 이 정보는, 애플리케이션에 대한 라이센스를 갱신할지 여부, 기능에 대한 라이센스를 갱신하지 않거나 기능이 없는 더 저렴한 버전으로 다운그레이드할지 여부, 사용자가 적절히 트레이닝될 수 있도록 다른 직원을 더 생산적이게 하는 경향이 있는 애플리케이션을 사용자가 사용하지 않는지 여부, 사용자가 업무외 액티비티(non-work activity)(예를 들어, 개인 이메일 체크 또는 웹 서핑)를 수행하는데 다량의 시간을 소비하는지 여부 또는 그들의 책상으로부터 떨어져 있는지(예를 들어, 컴퓨터 시스템과 상호작용하지 않음) 등에 관한 정보가 제공된 결정(informed decision)을 관리자가 행하도록 제공될 수 있다.
일부 실시예에서, 검출 업데이트가 리스너에 이들의 드라이버 레벨 사용자 상호작용 검출 및 캡처 프로세스를 향상시키기 위해 푸시될 수 있다. 특정 실시예에서, 리스너(610)가 자신의 검출에 AI를 이용할 수 있다. 특정 실시예에서, 자동화 워크플로우로부터 프로세스를 구현하는 로봇은 각자의 리스너(610)를 통해 컴퓨팅 시스템(602, 604, 606)에 자동적으로 푸시될 수 있다.
AI 계층
일부 실시예에서, 다수의 AI 계층이 사용될 수 있다. 각 AI 계층은 로그 데이터에 대해 실행되는 알고리즘(또는 모델)이고, AI 모델 자체는 트레이닝 데이터에서 트레이닝되는 트레이닝된 인공 "뉴런"의 딥 러닝 뉴럴 네트워크(deep learning neural network, DLNN)일 수 있다. 계층은 직렬로 또는 병렬로 실행될 수 있다.
AI 계층은 시퀀스 추출 계층, 클러스터링 검출 계층, 시각 컴포넌트 검출 계층, 텍스트 인식 계층(예를 들어, OCR), 오디오-텍스트 변환 계층, 또는 이들의 임의의 조합을 포함할 수 있지만, 이에 제한되지 않는다. 그러나, 본 발명의 범위로부터 벗어나지 않고, 임의의 소망되는 수 및 유형(들)의 계층이 사용될 수 있다. 다수의 계층을 사용하면 시스템이 스크린 또는 프로세스에서 어떤 일이 일어나고 있는지에 대한 전체적인 묘사를 전개하게 할 수 있다. 예를 들어, 하나의 AI 계층은 OCR을 수행할 수 있고, 또다른 계층은 버튼 등을 검출할 수 있다.
패턴은 AI 계층에 의해 개별적으로 또는 다수의 AI 계층에 의해 집합적으로 결정될 수 있다. 사용자 액션의 관점에서 출력 또는 확률이 사용될 수 있다. 예를 들어, 버튼의 상세, 버튼의 텍스트, 사용자가 클릭한 위치 등을 결정하기 위해, 시스템은 버튼의 위치, 버튼의 텍스트, 스크린에서의 위치결정 등을 알아야 할 수 있다.
주제 전문가 가이드 프로세스 추출
사용자가 가상 머신 환경에 의해 제공되는 일련의 이미지와 상호작용하고 사용자가 상호작용하는 실제 소프트웨어가 원격으로 실행되는, 또는 리스너(610)로부터의 드라이버-레벨 데이터가 사용자가 하고 있는 것을 정확하거나 완전히 캡처하지 않는 것과 같은 일부 실시예에서, 리스너(610)는 사용자가 특정 시간(예를 들어, 미리결정된 빈도로, 사용자가 특정 액션을 취할 때, 이들의 조합 등)에 하고 있는 것의 스크린샷을 캡처할 수 있다. 주제 전문가(subject matter expert, SME)는 기록된 스크린샷을 검토하고, 관련 스크린샷을 저장하고, 관련이 없는 스크린샷을 삭제할 수 있다.
관련 스크린샷이 식별된 후, 이러한 스크린샷은 비디오에서 사용자가 무엇을 하고 있었는지 식별하기 위해 AI를 사용하는 트레이닝된 컴퓨터 비전(computer vision, CV) 모델(예를 들어, 서버(630)에 의해 또는 사용자의 컴퓨팅 시스템에서 로컬로 실행됨)을 통해 공급될 수 있다. 추가적으로 또는 대안적으로, 스크린샷은 보다 정확한 검출을 위해 CV 모델을 트레이닝하기 위해 사용될 수 있다. 다수의 사용자로부터 많은 액션이 획득되면, 이어서 식별된 액션(예를 들어, 클릭된 버튼, 사용된 애플리케이션, 입력된 텍스트 등)이 AI 계층(632)에 공급되어 그로부터 프로세스를 추출할 수 있다. 대안적으로, 단일 사용자의 스크린샷으로부터 추출된 액션을 사용하여 워크플로우를 자동적으로 생성할 수 있으며, 이어서 SME는 일부 실시예에서 그것이 올바른지 확인하기 위해 편집할 수 있다. 이 정보는 특정 실시예에서 사용되어, 실질적으로 상세한 단계, 스크린샷, 및 플로우차트(들)를 포함하는 제품 정의 문서(product definition document, PDD)를 생성할 수 있다. 이러한 PDD는 예를 들어 제품 문서에 사용될 수 있다.
특정 실시예에서, PDD를 생성하기 위해 장면 변화가 검출될 수 있다. 예를 들어, 사용자가 수행하고 있는 20가지 상이한 액티비티가 상이한 장면일 수 있다. 이어서, 시스템은 이 정보와 로그 데이터를 사용하여 개발자 애플리케이션으로 가져올 수 있는 뼈대 로봇을 생성할 수 있고, 이어서 개발자는 워크플로우 콘텐츠를 플러시 아웃할 수 있다.
도 7은 본 발명의 일 실시예에 따른, RPA를 위한 AI 기반 프로세스 식별, 추출 및 자동화를 위한 프로세스(700)를 예시하는 플로우차트이다. 프로세스는 710에서 각각의 컴퓨팅 시스템과의 사용자 상호작용의 로그를 생성하는 리스너 애플리케이션(즉, 리스너)으로 시작한다. 일부 실시예에서, 리스너는 사용자가 스크린 상의 어느 곳을 클릭했는지와 어떤 애플리케이션에서인지, 키스트로크, 어떤 버튼이 클릭되었는지, 사용자가 애플리케이션 간에 스위칭한 사례, 포커스 변경, 이메일이 전송되었다는 것과 이메일이 무엇에 관한 것인지, 또는 이들의 임의의 조합을 기록하도록 구성된다. 특정 실시예에서, 리스너는 사용자가 실제로 어떤 애플리케이션을 사용하고 있는지, 사용자가 주어진 애플리케이션을 어떤 시간 비율로 사용하고 있는지, 사용자가 애플리케이션 내의 어떤 기능을 사용하고 있는지, 사용자가 어떤 기능을 사용하지 않는지, 또는 이들의 조합을 결정하도록 구성된다. 일부 실시예에서, 리스너는 그들의 컴퓨팅 시스템과의 사용자 상호작용을 검출하는데 AI를 사용하도록 구성된다.
일부 실시예에서, 사용자 컴퓨팅 시스템 중 하나 이상(또는 잠재적으로 모두)은 서버이다. 예를 들어, 로드 밸런싱, 서버 성능, 서버 문제가 발생할 때 관리자가 취한 수정 조치 등을 모니터링하기 위해 서버에 리스너를 배포하여 서버 관리를 위한 프로세스를 추출하는 것이 바람직할 수 있다. 이러한 방식으로, 로봇은 관리자를 모방하도록 트레이닝될 수 있고, 관리자가 일반적으로 스스로 해결해야 하는 문제를 자동적으로 교정할 수 있다.
리스너는 720에서 서버로 생성된 로그 데이터를 전송한다. 일부 실시예에서, 서버 또는 또다른 서버는 지휘자 애플리케이션을 실행하고, 로그 데이터는 하트비트 메시지의 일부로서 지휘자 애플리케이션으로 주기적으로 전송된다. 이 데이터에는 로봇 가동 시간, 실행 중인 워크플로우, 대시보드(예를 들어, 로봇 그룹 또는 특정 유형의 모든 로봇이 처리하는 총 금액)에서 특정 글로벌 정보를 제공하기 위해 지휘자 애플리케이션에서 사용할 수 있는 워크플로우 액티비티와 관련된 데이터(예를 들어, 인보이스로부터 검출된 총계)를 포함할 수 있지만 이에 제한되지 않는다. 하트비트 메시지는 3초마다, 5-10초마다, 1분마다 또는 기타 적절한 기간, 또는 본 발명의 범위를 벗어나지 않는 범위로 전송될 수 있다. 특정 실시예에서, 로그 데이터는 미리결정된 양의 로그 데이터가 수집될 때, 사전 결정된 기간이 경과한 후에, 또는 둘 모두에 서버로 전송된다. 이어서, 730에서 로그 데이터는 데이터베이스에 저장된다.
서버는 740에서 리스너로부터 수집된 저장된 로그 데이터에 액세스하고 적어도 하나의 AI 계층을 통해 로그 데이터를 실행한다. 일부 실시예에서, 시퀀스 추출 계층, 클러스터링 검출 계층, 시각 컴포넌트 검출 계층, 텍스트 인식 계층, 오디오-텍스트 변환 계층, 및/또는 이들의 임의의 조합을 포함하지만 이에 제한되지 않는 다중 AI 계층이 사용될 수 있다. AI 계층(들)은 750에서 로그 데이터를 처리하고 그 안의 잠재적인 RPA 프로세스(들)를 식별하도록 구성된다. 보다 구체적으로, 식별된 RPA 프로세스는 RPA 워크플로우에서 구현될 때 특정 사용자 액션을 자동화할 수 있는 프로세스이다. 서버는 760에서 기존 로봇(존재하는 경우)에 의해 구현된 기존 프로세스의 유사성을 식별하도록 구성된다. 예를 들어, 프로세스 간의 유사성은 공통의 시작 및 종료, 및 사이에 취하는 단계에서의 일정량의 통계적 공통성에 의해 결정될 수 있다. 이어서, 서버는 770에서 식별된 RPA 프로세스(들)를 포함하는 워크플로우(들)를 자동적으로 생성하고, 780에서 워크플로우(들)를 구현하는 로봇을 생성하고, 790에서 생성된 로봇(들)을 배포하도록(예를 들어, 그것들을 사용자의 컴퓨팅 시스템으로 푸시 아웃하고 그 위에서 로봇을 실행함으로써) 구성된다. 유사한 프로세스가 기존 로봇에 의해 구현되는 경우, 단계 790는 기존 로봇을 새로 생성된 로봇으로 대체하는 것을 포함할 수 있다.
도 8은 본 발명의 일 실시예에 따른, 로그 데이터에 기반하여 RPA 워크플로우를 개발 및 배포하는 프로세스를 예시하는 플로우차트이다. 프로세스는 810에서 잠재적인 RPA 프로세스(들)를 식별하기 위해 AI 계층(들)을 통해 데이터 처리를 시작한다. 식별된 프로세스(들)는 이어서 820에서 컴퓨팅 시스템 상의 설계자 애플리케이션을 통해 RPA 개발자에게 제시된다. 설계자 애플리케이션은 830에서 RPA 개발자에 의해 수행된 워크플로우에 대한 변경을 수신하고 구현한다. 이어서, 설계자 애플리케이션은 840에서 워크플로우로부터 로봇을 생성하고 850에서 로봇이 배포된다. 일부 실시예에서, 배포는 서버 상에 실행되는 지휘자 애플리케이션을 통해 발생할 수 있고, 이는 로봇을 사용자 컴퓨팅 시스템에 푸시 아웃하도록 구성된다. 일부 실시예에서, 이 워크플로우 배포는 RPA 개발자로부터의 입력에 응답하여 로봇에서 식별된 프로세스를 구현하는 설계자 애플리케이션의 자동화 관리자 기능을 통해 실현된다.
도 9는 본 발명의 일 실시예에 따른, SME(Subject Matter Expert) 가이드 프로세스 추출을 위한 프로세스를 예시하는 플로우차트이다. 프로세스는 910에서 사용자가 컴퓨팅 시스템과 상호작용하는 동안 사용자의 컴퓨팅 시스템으로부터 스크린샷을 캡처하는 리스너로 시작한다. 일부 실시예에서, 스크린샷은 미리결정된 빈도로, 사용자가 특정 액션을 취할 때, 또는 이들의 조합으로 캡처될 수 있다. 특정 실시예에서, 저장된 스크린샷은 비디오의 일부이다. 920에서 SME에 의해 관련성이 있는 것으로 식별된 스크린샷은 저장되고, 930에서 관련이 없는 것으로 식별되는 스크린샷은 삭제된다. 이러한 스크린샷은 관련이 없는 것으로 식별되고, SME에 의해, 트레이닝된 AI 모델에 의해, 관련이 있는 것으로 식별된 다른 것과 유사하지 않은 스크린샷을 찾는 이상 감지기에 의해 등으로 폐기될 수 있다.
이어서, 940에서 저장된 스크린샷은 사용자가 저장된 스크린샷에서 무엇을 하고 있었는지 식별하기 위해 AI를 사용하는 트레이닝된 CV 모델을 통해 공급된다. 950에서 저장된 스크린샷은 또한 보다 정확한 검출을 위해 CV 모델을 트레이닝시키는데 사용된다. 액션이 CV 모델에 의해 식별되면, 960에서 이러한 액션은 프로세스를 추출하기 위해 하나 이상의 AI 계층에 공급된다. 이어서, 970에서 추출된 프로세스(들)이 사용되어 각각의 워크플로우(들) 및 로봇(들)을 생성한다.
도 7 내지 도 9에서 수행된 프로세스 단계는, 본 발명의 실시예에 따라, 프로세서(들)가 도 7 내지 도 9에서 설명된 프로세스(들)의 적어도 일부를 수행하도록 명령어들을 인코딩한, 컴퓨터 프로그램에 의해 수행될 수 있다. 컴퓨터 프로그램은 비일시적 컴퓨터 판독가능 매체 상에 구현될 수 있다. 컴퓨터 판독가능 매체는 하드 디스크 드라이브, 플래시 드라이브, RAM, 테이프, 및/또는 데이터를 저장하는데 사용되는 임의의 다른 그러한 매체 또는 매체들의 조합일 수 있지만, 이에 제한되는 것은 아니다. 컴퓨터 프로그램은, 컴퓨터 판독가능 매체 상에 또한 저장될 수 있는, 도 7 내지 도 9에서 설명된 프로세스 단계 중 일부 또는 모두를 구현하도록 컴퓨팅 시스템의 프로세서(들)[예를 들어, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510)]를 제어하기 위한 인코딩된 명령어들을 포함할 수 있다.
컴퓨터 프로그램은 하드웨어에, 소프트웨어에, 또는 하이브리드 구현으로 구현될 수 있다. 컴퓨터 프로그램은, 서로 가동 통신(operative communication)하며 디스플레이를 위해 정보 또는 명령어들을 패스(pass)하도록 설계된 모듈로 구성될 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 임의의 다른 적합한 디바이스 상에서 동작하도록 구성될 수 있다.
본원의 도면들에서 일반적으로 설명되고 예시된 바와 같은, 본 발명의 다양한 실시예의 컴포넌트들이 매우 다양한 상이한 구성들로 배열되고 설계될 수 있다는 점이 쉽게 이해될 것이다. 따라서, 첨부된 도면들에 나타내어진 바와 같은, 본 발명의 실시예의 상세한 설명이 청구된 바와 같은 본 발명의 범위를 제한하도록 의도되는 것은 아니며, 본 발명의 선택된 실시예를 나타낼 뿐이다.
본 명세서 전반에 걸쳐 설명된 본 발명의 피처들, 구조들, 또는 특성들이 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다. 예를 들어, "특정 실시예", "일부 실시예", 또는 유사한 언어에 대한 본 명세서 전반에 걸친 참조는, 실시예와 관련하여 설명된 특정 피처, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸친 문구들 "특정 실시예에서", "일부 실시예에서", "다른 실시예에서", 또는 유사한 언어의 출현들이 반드시 모두 동일한 실시예의 그룹을 지칭하는 것은 아니며 설명된 피처들, 구조들, 또는 특성들이 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다.
피처들, 이점들, 또는 유사한 언어에 대한 본 명세서 전반에 걸친 참조가 본 발명으로 실현될 수 있는 피처들 및 이점들 모두가 본 발명의 임의의 단일 실시예에 있어야 하거나 있는 것을 의미하는 것은 아니라는 점에 유념해야 한다. 그 보다는, 피처들 및 이점들을 참조하는 언어는 실시예와 관련하여 설명된 특정 피처, 이점, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미하는 것으로 이해된다. 따라서, 본 명세서 전반에 걸친 피처들 및 이점들, 및 유사한 언어의 논의가 동일한 실시예를 참조할 수 있지만, 반드시 그런 것은 아니다.
또한, 본 발명의 설명된 피처들, 이점들, 및 특성들이 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다. 당업자는, 본 발명이 특정 실시예의 특정 피처들 또는 이점들 중 하나 이상 없이 실시될 수 있다는 점을 인식할 것이다. 다른 경우들에서, 추가 피처들 및 이점들이 본 발명의 모든 실시예에 존재하지 않을 수 있는 특정 실시예에서 인식될 수 있다.
당업자는, 위에서 논의된 바와 같은 본 발명이 상이한 순서에 있는 단계들로, 그리고/또는 개시된 것과는 상이한 구성들에 있는 하드웨어 요소들로 실시될 수 있다는 점을 쉽게 이해할 것이다. 따라서, 본 발명이 이 바람직한 실시예에 기초하여 설명되었지만, 특정 수정들, 변형들, 및 대안적인 구성들이 본 발명의 사상 및 범위 내에 남아 있으면서 명백할 것이라는 점이 당업자에게 명백할 것이다. 본 발명의 한계 및 경계를 결정하기 위해, 따라서, 첨부된 청구범위에 대한 참조가 행해져야 한다.
일 실시예에서, 시스템은 서버 및 각각의 리스너 애플리케이션을 포함하는 복수의 사용자 컴퓨팅 시스템을 포함한다. 리스너 애플리케이션은 그들 각각의 사용자 컴퓨팅 시스템과의 사용자 상호작용의 로그를 생성하고 로그 데이터를 서버로 전송하도록 구성된다. 서버는 리스너로부터 수집된 로그 데이터에 액세스하고 적어도 하나의 AI 계층을 통해 로그 데이터를 실행하도록 구성된다. 일부 실시예에서, 시퀀스 추출 계층, 클러스터링 검출 계층, 시각 컴포넌트 검출 계층, 텍스트 인식 계층, 오디오-텍스트 변환 계층, 및/또는 이들의 임의의 조합을 포함하여 다수의 AI 계층이 사용될 수 있다. 적어도 하나의 AI 계층은 로그 데이터를 처리하고 그 안의 잠재적인 RPA 프로세스를 식별하도록 구성된다. 이어서, 서버는 식별된 RPA 프로세스를 포함하는 워크플로우를 자동적으로 생성하고, 워크플로우를 구현하는 로봇을 생성하고, 생성된 로봇을 사용자 컴퓨팅 시스템 상에서 실행되도록 사용자 컴퓨팅 시스템에 푸시 아웃하도록 구성된다.
일부 실시예에서, 서버 또는 다른 서버는 지휘자 애플리케이션을 실행하고 로그 데이터는 하트비트 메시지의 일부로서 지휘자 애플리케이션에 주기적으로 전송된다. 특정 실시예에서, 로그 데이터는 미리결정된 양의 로그 데이터가 수집되었을 때, 미리결정된 기간이 경과된 후에, 또는 둘 모두에 서버로 전송된다. 일부 실시예에서, 서버는 데이터베이스에 리스너로부터 수신된 로그 데이터를 저장한다. 특정 실시예에서, 서버는 사용자 컴퓨팅 시스템 상에서 로봇에 의해 실행된 기존 RPA 프로세스 간의 유사성을 찾고 기존 로봇을 생성된 로봇으로 대체하도록 구성된다.
일부 실시예에서, 리스너는 사용자가 스크린 상에서 어떤 곳을 클릭하였는지와 어떤 애플리케이션에 있는지, 키스트로크, 어떤 버튼이 클릭되었는지, 사용자가 애플리케이션 간에 스위칭한 사례, 포커스 변경, 이메일이 전송되었다는 것과 이메일이 무엇에 관한 것인지, 또는 이들의 임의의 조합을 기록하도록 구성된다. 특정 실시예에서, 리스너는 사용자가 실제로 어떤 애플리케이션을 사용하고 있는지, 사용자가 주어진 애플리케이션을 어떤 시간 비율로 사용하고 있는지, 사용자가 애플리케이션 내의 어떤 기능을 사용하고 있는지, 사용자가 애플리케이션 내의 어떤 기능을 사용하지 않는지, 또는 이들의 임의의 조합을 결정하도록 구성된다. 일부 실시예에서, 리스너는 그들의 컴퓨팅 시스템과의 사용자 상호작용을 검출하는데 AI를 채용하도록 구성된다.
다른 실시예에서, 컴퓨터 구현 방법은 하나 이상의 잠재적인 RPA 프로세스를 식별하기 위해 적어도 하나의 AI 계층을 통해 서버에 의해 데이터를 처리하는 단계를 포함한다. 컴퓨터 구현 방법은 또한 식별된 잠재적 RPA 프로세스를 수신하는 단계, 및 하나 이상의 식별된 RPA 프로세스를 개발자 컴퓨팅 시스템 상의 설계자 애플리케이션을 통해 개발자에게 제시하는 단계를 포함한다. 컴퓨터 구현 방법은 설계자 애플리케이션에 의해 워크플로우에 대한 변경을 수신하고 구현하는 단계를 더 포함한다. 추가적으로, 컴퓨터 구현 방법은 설계자 애플리케이션에 의해 워크플로우로부터 로봇을 생성하는 단계를 포함한다. 이어서, 로봇은 하나 이상의 사용자 컴퓨팅 시스템에 배포될 수 있다. 일부 실시예에서, 배포는 로봇을 사용자 컴퓨팅 시스템에 푸시 아웃하도록 구성된 서버 상에서 실행되는 지휘자 애플리케이션을 통해 발생할 수 있다. 일부 실시예에서, 이 워크플로우 배포는 RPA 개발자로부터의 입력에 응답하여 로봇에서 식별된 프로세스를 구현하는 설계자 애플리케이션의 자동화 관리자 기능을 통해 실현된다.
또 다른 실시예에서, 컴퓨터 구현 방법은 사용자가 사용자 컴퓨팅 시스템과 상호작용하는 동안 사용자 컴퓨팅 시스템 상의 리스너에 의해 스크린샷을 캡처하는 단계를 포함한다. 일부 실시예에서, 스크린샷은 미리결정된 빈도로, 사용자가 특정 행동을 취할 때, 또는 이들의 조합으로 캡처될 수 있다. 특정 실시예에서, 저장된 스크린샷은 비디오의 일부이다. 컴퓨터 구현 방법은 또한 관련성이 있는 것으로 표시된 캡처된 스크린샷의 스크린샷을 저장하는 단계 및 관련성이 없는 것으로 식별된 캡처된 스크린샷의 스크린샷을 삭제하는 단계를 포함한다. 컴퓨터 구현 방법 은 저장된 스크린샷에서 사용자가 무엇을 하고 있었는지 식별하기 위해 AI를 사용하는 트레이닝된 CV 모델을 통해 저장된 스크린샷을 공급하는 단계 및 그로부터 하나 이상의 프로세스를 추출하기 위해 식별된 액션을 하나 이상의 AI 계층에 공급하는 단계를 더 포함한다. 일부 실시예에서, 저장된 스크린샷은 또한 미래에 보다 정확한 검출을 위해 CV 모델을 트레이닝하는데 사용된다. 추가적으로, 컴퓨터 구현 방법은 하나 이상의 추출된 프로세스를 사용하여 하나 이상의 각각의 워크플로우 및 로봇을 생성하는 단계를 포함한다.

Claims (20)

  1. 시스템에 있어서,
    서버; 및
    각각의 리스너(listener) 애플리케이션을 포함하는 복수의 사용자 컴퓨팅 시스템
    을 포함하고,
    상기 리스너 애플리케이션은 각각의 사용자 컴퓨팅 시스템과의 사용자 상호작용(user interaction)을 포함하는 로그를 생성하고 상기 로그로부터 상기 서버로 로그 데이터를 전송하도록 구성되고,
    상기 서버는,
    리스너로부터 수집된 로그 데이터에 액세스하고 적어도 하나의 인공 지능(artificial intelligence; AI) 계층을 통해 상기 로그 데이터를 실행하고 - 상기 적어도 하나의 AI 계층은 상기 로그 데이터를 처리하고 그 안의 잠재적 로봇 프로세스 자동화(robotic process automation; RPA) 프로세스를 식별하도록 구성됨 - ,
    상기 식별된 RPA 프로세스를 포함하는 RPA 워크플로우를 자동적으로 생성하도록 구성되는 것인, 시스템.
  2. 제 1 항에 있어서,
    상기 서버는 또한,
    상기 RPA 워크플로우를 구현하는 로봇을 생성하고,
    상기 생성된 로봇을 상기 사용자 컴퓨팅 시스템 상에서 실행되도록 상기 사용자 컴퓨팅 시스템에 푸시 아웃하도록 구성되는 것인, 시스템.
  3. 제 1 항에 있어서,
    상기 적어도 하나의 AI 계층은 시퀀스 추출 계층, 클러스터링 검출 계층, 시각 컴포넌트 검출 계층, 텍스트 인식 계층, 오디오-텍스트 변환 계층, 또는 이들의 임의의 조합을 포함하는 것인, 시스템.
  4. 제 1 항에 있어서,
    상기 서버는 지휘자(conductor) 애플리케이션을 포함하고, 상기 로그 데이터는 하트비트(heartbeat) 메시지의 일부로서 상기 복수의 사용자 컴퓨팅 시스템의 리스너에 의해 상기 지휘자 애플리케이션에 주기적으로 전송되는 것인, 시스템.
  5. 제 1 항에 있어서,
    상기 로그 데이터는, 미리결정된 양의 로그 데이터가 수집되었을 때, 미리결정된 기간이 경과된 후에, 또는 둘 모두에 상기 서버로 전송되는 것인, 시스템.
  6. 제 1 항에 있어서,
    상기 서버에 통신가능하게 커플링된 데이터베이스
    를 더 포함하고,
    상기 서버는 상기 리스너로부터 수신된 로그 데이터를 상기 데이터베이스에 저장하도록 구성되는 것인, 시스템.
  7. 제 1 항에 있어서,
    상기 서버는 또한,
    상기 식별된 RPA 프로세스와 상기 사용자 컴퓨팅 시스템 상에서 로봇에 의해 실행된 기존(previously existing) RPA 프로세스 간의 유사성을 결정하고,
    상기 기존 RPA 프로세스를 실행하는 상기 로봇의 RPA 워크플로우를 상기 식별된 RPA 프로세스로 대체하도록 구성되는 것인, 시스템.
  8. 제 7 항에 있어서,
    상기 식별된 RPA 프로세스와 상기 기존 RPA 프로세스 간의 유사성은 상기 RPA 프로세스에서 사이에 취하는 단계들에서 공통 시작, 공통 종료 및 미리결정된 양의 통계적 공통성에 의해 결정되는 것인, 시스템.
  9. 제 1 항에 있어서,
    상기 리스너는, 사용자가 스크린 상에서 어떤 곳을 클릭하였는지와 어떤 애플리케이션에 있는지, 키스트로크(keystroke), 어떤 버튼이 클릭되었는지, 상기 사용자가 애플리케이션 간에 스위칭한 사례, 포커스 변경, 이메일이 전송되었다는 것과 상기 이메일이 무엇에 관한 것인지, 또는 이들의 임의의 조합을 기록하도록 구성되는 것인, 시스템.
  10. 제 1 항에 있어서,
    상기 리스너는, 상기 사용자 컴퓨팅 시스템의 사용자가 어떤 애플리케이션을 사용하고 있는지, 상기 사용자가 주어진 애플리케이션을 어떤 시간 비율로 사용하고 있는지, 상기 사용자가 상기 애플리케이션 내의 어떤 기능을 사용하고 있는지, 상기 사용자가 상기 애플리케이션 내의 어떤 기능을 사용하지 않는지, 또는 이들의 임의의 조합을 결정하도록 구성되는 것인, 시스템.
  11. 비일시적 컴퓨터 판독가능 매체에 포함된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금,
    복수의 사용자 컴퓨팅 시스템의 각각의 리스너 애플리케이션으로부터 수집된 로그 데이터에 액세스하고;
    적어도 하나의 인공 지능(artificial intelligence; AI) 계층을 통해 상기 로그 데이터를 실행하고 - 상기 적어도 하나의 AI 계층은 상기 로그 데이터를 처리하고 그 안의 잠재적인 로봇 프로세스 자동화(robotic process automation; RPA) 프로세스를 식별하도록 구성됨 - ;
    상기 식별된 RPA 프로세스를 포함하는 RPA 워크플로우를 자동적으로 생성하게 하도록 구성되는 것인, 비일시적 컴퓨터 판독가능 매체에 포함된 컴퓨터 프로그램.
  12. 제 11 항에 있어서,
    상기 컴퓨터 프로그램은 상기 적어도 하나의 프로세서로 하여금,
    상기 RPA 워크플로우를 구현하는 로봇을 생성하고;
    상기 생성된 로봇을 상기 사용자 컴퓨팅 시스템 상에서 실행되도록 상기 사용자 컴퓨팅 시스템에 푸시 아웃하게 하도록 구성되는 것인, 비일시적 컴퓨터 판독가능 매체에 포함된 컴퓨터 프로그램.
  13. 제 11 항에 있어서,
    상기 적어도 하나의 AI 계층은 시퀀스 추출 계층, 클러스터링 검출 계층, 시각 컴포넌트 검출 계층, 텍스트 인식 계층, 오디오-텍스트 변환 계층, 또는 이들의 임의의 조합을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체에 포함된 컴퓨터 프로그램.
  14. 제 11 항에 있어서,
    상기 컴퓨터 프로그램은 또한 상기 적어도 하나의 프로세서로 하여금,
    상기 식별된 RPA 프로세스와 상기 사용자 컴퓨팅 시스템 상에서 로봇에 의해 실행된 기존 RPA 프로세스 간의 유사성을 결정하고,
    상기 기존 RPA 프로세스를 실행하는 상기 로봇의 RPA 워크플로우를 상기 식별된 RPA 프로세스로 대체하게 하도록 구성되는 것인, 비일시적 컴퓨터 판독가능 매체에 포함된 컴퓨터 프로그램.
  15. 제 11 항에 있어서,
    상기 식별된 RPA 프로세스와 상기 기존 RPA 프로세스 간의 유사성은 상기 RPA 프로세스에서 사이에 취하는 단계들에서 공통 시작, 공통 종료 및 미리결정된 양의 통계적 공통성에 의해 결정되는 것인, 비일시적 컴퓨터 판독가능 매체에 포함된 컴퓨터 프로그램.
  16. 컴퓨터 구현(computer-implemented) 방법에 있어서,
    리스너에 의해, 사용자 컴퓨팅 시스템과의 사용자 상호작용을 포함하는 로그를 생성하는 단계; 및
    상기 리스너에 의해, 상기 로그로부터 서버로 로그 데이터를 전송하는 단계
    를 포함하고,
    상기 로그 데이터는, 사용자가 스크린 상에서 어떤 곳을 클릭하였는지와 어떤 애플리케이션에 있는지, 키스트로크, 어떤 버튼이 클릭되었는지, 상기 사용자가 애플리케이션 간에 스위칭한 사례, 포커스 변경, 이메일이 전송되었다는 것과 상기 이메일이 무엇에 관한 것인지, 또는 이들의 임의의 조합을 포함하는 것인, 컴퓨터 구현 방법.
  17. 제 16 항에 있어서,
    상기 로그 데이터는 하트비트 메시지의 일부로서 상기 서버의 지휘자 애플리케이션에 주기적으로 전송되는 것인, 컴퓨터 구현 방법.
  18. 제 16 항에 있어서,
    상기 로그 데이터는, 미리결정된 양의 로그 데이터가 수집되었을 때, 미리결정된 기간이 경과된 후에, 또는 둘 모두에 상기 서버로 전송되는 것인, 컴퓨터 구현 방법.
  19. 제 16 항에 있어서,
    상기 사용자 상호작용은, 상기 사용자가 어떤 애플리케이션을 사용하고 있는지, 상기 사용자가 주어진 애플리케이션을 어떤 시간 비율로 사용하고 있는지, 상기 사용자가 상기 애플리케이션 내의 어떤 기능을 사용하고 있는지, 상기 사용자가 상기 애플리케이션 내의 어떤 기능을 사용하지 않는지, 또는 이들의 임의의 조합을 포함하는 것인, 컴퓨터 구현 방법.
  20. 제 16 항에 있어서,
    상기 사용자 상호작용은, 상기 사용자가 상기 애플리케이션 내의 어떤 기능을 사용하고 있는지 및 상기 사용자가 상기 애플리케이션 내의 어떤 기능을 사용하지 않는지를 포함하는 것인, 컴퓨터 구현 방법.
KR1020227010775A 2019-10-15 2020-08-13 로봇 프로세스 자동화를 위한 인공 지능 기반 프로세스 식별, 추출 및 자동화 KR20220084031A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962915340P 2019-10-15 2019-10-15
US62/915,340 2019-10-15
US16/707,564 US11440201B2 (en) 2019-10-15 2019-12-09 Artificial intelligence-based process identification, extraction, and automation for robotic process automation
US16/707,564 2019-12-09
PCT/US2020/046071 WO2021076206A1 (en) 2019-10-15 2020-08-13 Artificial intelligence-based process identification, extraction, and automation for robotic process automation

Publications (1)

Publication Number Publication Date
KR20220084031A true KR20220084031A (ko) 2022-06-21

Family

ID=75382611

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227010775A KR20220084031A (ko) 2019-10-15 2020-08-13 로봇 프로세스 자동화를 위한 인공 지능 기반 프로세스 식별, 추출 및 자동화

Country Status (6)

Country Link
US (4) US11440201B2 (ko)
EP (1) EP4046104A4 (ko)
JP (1) JP2022551833A (ko)
KR (1) KR20220084031A (ko)
CN (1) CN114556305A (ko)
WO (1) WO2021076206A1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11847040B2 (en) 2016-03-16 2023-12-19 Asg Technologies Group, Inc. Systems and methods for detecting data alteration from source to target
US11057500B2 (en) 2017-11-20 2021-07-06 Asg Technologies Group, Inc. Publication of applications using server-side virtual screen change capture
US10877740B2 (en) 2017-12-29 2020-12-29 Asg Technologies Group, Inc. Dynamically deploying a component in an application
US11611633B2 (en) 2017-12-29 2023-03-21 Asg Technologies Group, Inc. Systems and methods for platform-independent application publishing to a front-end interface
US11586463B2 (en) * 2018-04-17 2023-02-21 Oracle International Corporation Automated process flow learning
US11762634B2 (en) 2019-06-28 2023-09-19 Asg Technologies Group, Inc. Systems and methods for seamlessly integrating multiple products by using a common visual modeler
US20210034946A1 (en) * 2019-08-02 2021-02-04 Microsoft Technology Licensing, Llc Recognizing problems in productivity flow for productivity applications
US11366644B1 (en) * 2019-10-09 2022-06-21 Uipco, Llc Systems and methods for analyzing robotic process automation code
US11488015B2 (en) 2019-10-15 2022-11-01 UiPath, Inc. Artificial intelligence layer-based process extraction for robotic process automation
US20220075605A1 (en) * 2019-10-15 2022-03-10 UiPath, Inc. Training and using artificial intelligence (ai) / machine learning (ml) models to automatically supplement and/or complete code of robotic process automation workflows
US20210109503A1 (en) 2019-10-15 2021-04-15 UiPath, Inc. Human-in-the-loop robot training for robotic process automation
US11440201B2 (en) 2019-10-15 2022-09-13 UiPath, Inc. Artificial intelligence-based process identification, extraction, and automation for robotic process automation
US11941137B2 (en) 2019-10-18 2024-03-26 Asg Technologies Group, Inc. Use of multi-faceted trust scores for decision making, action triggering, and data analysis and interpretation
US11055067B2 (en) 2019-10-18 2021-07-06 Asg Technologies Group, Inc. Unified digital automation platform
US11269660B2 (en) 2019-10-18 2022-03-08 Asg Technologies Group, Inc. Methods and systems for integrated development environment editor support with a single code base
US11886397B2 (en) 2019-10-18 2024-01-30 Asg Technologies Group, Inc. Multi-faceted trust system
US11693982B2 (en) 2019-10-18 2023-07-04 Asg Technologies Group, Inc. Systems for secure enterprise-wide fine-grained role-based access control of organizational assets
US20210117895A1 (en) * 2019-10-18 2021-04-22 ASG Technologies Group, Inc. dba ASG Technologies Systems and Methods for Cross-Platform Scheduling and Workload Automation
US11849330B2 (en) 2020-10-13 2023-12-19 Asg Technologies Group, Inc. Geolocation-based policy rules
US20220284442A1 (en) * 2021-03-03 2022-09-08 Jpmorgan Chase Bank, N.A. Method and system for verification of business process adherence to standards
CN115019029B (zh) * 2022-08-08 2022-11-04 杭州实在智能科技有限公司 一种基于神经自动机的rpa元素智能定位方法
US20240142917A1 (en) * 2022-10-27 2024-05-02 UiPath, Inc. Semantic automation builder for robotic process automation
CN115988135A (zh) * 2023-03-16 2023-04-18 杭州实在智能科技有限公司 结合rpa技术的智能语音质检方法及系统

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060129367A1 (en) 2004-11-09 2006-06-15 Duke University Systems, methods, and computer program products for system online availability estimation
US20170060108A1 (en) 2010-05-26 2017-03-02 Automation Anywhere, Inc. Roi based automation recommendation and execution
US8930959B2 (en) * 2011-05-13 2015-01-06 Orions Digital Systems, Inc. Generating event definitions based on spatial and relational relationships
US20170206064A1 (en) 2013-03-15 2017-07-20 JIBO, Inc. Persistent companion device configuration and deployment platform
US10489361B2 (en) 2014-01-27 2019-11-26 Camelot Uk Bidco Limited System and methods for cleansing automated robotic traffic from sets of usage logs
US10225280B2 (en) * 2014-02-24 2019-03-05 Cyphort Inc. System and method for verifying and detecting malware
EP3112965A1 (en) 2015-07-02 2017-01-04 Accenture Global Services Limited Robotic process automation
CN104985599B (zh) 2015-07-20 2018-07-10 百度在线网络技术(北京)有限公司 基于人工智能的智能机器人控制方法、系统及智能机器人
EP3133539A1 (en) 2015-08-19 2017-02-22 Tata Consultancy Services Limited Method ans system for process automation in computing
US10365799B2 (en) 2016-02-09 2019-07-30 Wipro Limited System and methods for creating on-demand robotic process automation
EP3459022A4 (en) * 2016-05-16 2020-02-19 Purepredictive, Inc. PREDICTIVE DRIFT DETECTION AND CORRECTION
US20170372442A1 (en) * 2016-06-23 2017-12-28 Radicalogic Technologies, Inc. Healthcare workflow system
US10664765B2 (en) 2016-08-22 2020-05-26 International Business Machines Corporation Labelling intervals using system data to identify unusual activity in information technology systems
US10339027B2 (en) 2016-09-06 2019-07-02 Accenture Global Solutions Limited Automation identification diagnostic tool
US10613838B2 (en) 2016-10-26 2020-04-07 Soroco Private Limited Systems and methods for discovering automatable tasks
US20180144126A1 (en) * 2016-11-18 2018-05-24 Sap Se Task performance
US11157855B2 (en) 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
DE102017201452A1 (de) 2017-01-30 2018-08-02 Fresenius Medical Care Deutschland Gmbh Auswahl eines medizinischen Zubehörs
AU2018200877A1 (en) 2017-03-30 2018-10-18 Accenture Global Solutions Limited Closed loop nodal analysis
US10324457B2 (en) 2017-05-11 2019-06-18 Global Eprocure Robotic process automation for supply chain management operations
US10726038B2 (en) 2017-05-24 2020-07-28 MphasiS Limited System and method for optimizing aggregation and analysis of data across multiple data sources
US10802453B2 (en) 2017-06-02 2020-10-13 Bank Of America Corporation Robotics process automation macro bot
US10682761B2 (en) 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
US11282035B2 (en) 2017-06-21 2022-03-22 Accenture Global Solutions Limited Process orchestration
US10817358B2 (en) 2017-06-23 2020-10-27 Dynatrace Llc Method and system for real-time and scalable anomaly detection and classification of multi-dimensional multivariate high-frequency transaction data in a distributed environment
US10235192B2 (en) 2017-06-23 2019-03-19 Accenture Global Solutions Limited Self-learning robotic process automation
JP6981118B2 (ja) 2017-09-11 2021-12-15 富士フイルムビジネスイノベーション株式会社 情報処理装置、プログラム及び制御方法
US10327018B2 (en) 2017-10-17 2019-06-18 Tealium Inc. Engagement tracking in computer data networks
US10659482B2 (en) 2017-10-25 2020-05-19 Bank Of America Corporation Robotic process automation resource insulation system
US20190126463A1 (en) 2017-10-31 2019-05-02 Bank Of America Corporation Robotic assisted action template generation based on profile
US20190141125A1 (en) 2017-11-03 2019-05-09 Bank Of America Corporation Cross application access provisioning system
US20190155225A1 (en) 2017-11-21 2019-05-23 Accenture Global Solutions Limited Bot management framework for robotic process automation systems
US20190244149A1 (en) 2017-11-27 2019-08-08 Sankar Krishnaswamy Cognitive Intelligent Automation Systems for Actionable Business intelligence (CIASFABI©)
US10452674B2 (en) 2017-12-07 2019-10-22 Accenture Global Solutions Limited Artificial intelligence and robotic process automation for automated data management
US20190266254A1 (en) 2018-02-26 2019-08-29 Jeremy D. Blumenfeld System to process electronic records using a request orchestration platform
US10726045B2 (en) 2018-03-19 2020-07-28 Accenture Global Solutions Limited Resource-efficient record processing in unified automation platforms for robotic process automation
US20190303779A1 (en) 2018-04-03 2019-10-03 Walmart Apollo, Llc Digital worker management system
US11042458B2 (en) 2018-04-30 2021-06-22 Accenture Global Solutions Limited Robotic optimization for robotic process automation platforms
US11366857B2 (en) 2018-08-21 2022-06-21 Directly, Inc. Artificial intelligence communications agent
US10812627B2 (en) 2019-03-05 2020-10-20 Sap Se Frontend process mining
US20210110318A1 (en) 2019-10-15 2021-04-15 UiPath, Inc. Automatic analysis, prioritization, and robot generation for robotic process automation
US11488015B2 (en) 2019-10-15 2022-11-01 UiPath, Inc. Artificial intelligence layer-based process extraction for robotic process automation
US11440201B2 (en) 2019-10-15 2022-09-13 UiPath, Inc. Artificial intelligence-based process identification, extraction, and automation for robotic process automation
US20210109503A1 (en) 2019-10-15 2021-04-15 UiPath, Inc. Human-in-the-loop robot training for robotic process automation

Also Published As

Publication number Publication date
US20230001586A1 (en) 2023-01-05
US20230286168A1 (en) 2023-09-14
CN114556305A (zh) 2022-05-27
US11648686B2 (en) 2023-05-16
US20220032470A1 (en) 2022-02-03
US11541548B2 (en) 2023-01-03
WO2021076206A1 (en) 2021-04-22
EP4046104A4 (en) 2023-10-25
JP2022551833A (ja) 2022-12-14
EP4046104A1 (en) 2022-08-24
US11440201B2 (en) 2022-09-13
US20210107164A1 (en) 2021-04-15

Similar Documents

Publication Publication Date Title
US11648686B2 (en) Artificial intelligence-based process identification, extraction, and automation for robotic process automation
KR20220079831A (ko) 로봇 프로세스 자동화를 위한 휴먼 인 더 루프 로봇 트레이닝
US11919165B2 (en) Process evolution for robotic process automation and workflow micro-optimization
KR102453990B1 (ko) 인공 지능(ai)을 사용한 미디어 대 워크플로우 생성
KR20220079836A (ko) 머신 러닝을 사용한 로봇 프로세스 자동화 워크플로들의 자동 완성
US11836626B2 (en) Artificial intelligence layer-based process extraction for robotic process automation
US20210110318A1 (en) Automatic analysis, prioritization, and robot generation for robotic process automation
KR20220079838A (ko) 로봇 프로세스 자동화의 강화 학습
EP3809347A1 (en) Media-to-workflow generation using artificial intelligence (ai)
KR20210134484A (ko) 로봇 프로세스 자동화를 위한 머신 학습 모델 재훈련 파이프라인