KR20230168611A - 로봇 프로세스 자동화를 위한 오토스케일링 전략 - Google Patents

로봇 프로세스 자동화를 위한 오토스케일링 전략 Download PDF

Info

Publication number
KR20230168611A
KR20230168611A KR1020217040195A KR20217040195A KR20230168611A KR 20230168611 A KR20230168611 A KR 20230168611A KR 1020217040195 A KR1020217040195 A KR 1020217040195A KR 20217040195 A KR20217040195 A KR 20217040195A KR 20230168611 A KR20230168611 A KR 20230168611A
Authority
KR
South Korea
Prior art keywords
rpa
strategy
autoscaling
workload
computer
Prior art date
Application number
KR1020217040195A
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 KR20230168611A publication Critical patent/KR20230168611A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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] or computer integrated manufacturing [CIM]
    • G05B19/41815Total 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] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell
    • G05B19/41825Total 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] or computer integrated manufacturing [CIM] characterised by the cooperation between machine tools, manipulators and conveyor or other workpiece supply system, workcell machine tools and manipulators only, machining centre
    • 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] or computer integrated manufacturing [CIM]
    • G05B19/41835Total 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] or computer integrated manufacturing [CIM] characterised by programme execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Quality & Reliability (AREA)
  • Manufacturing & Machinery (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)

Abstract

RPA(로봇 프로세스 자동화) 작업 부하를 완료하기 위한 컴퓨팅 환경을 할당하기 위한 시스템 및 방법이 제공된다. RPA 작업 부하를 완료하기 위한 요청이 수신된다. RPA 작업 부하를 완료하기 위해 할당할 컴퓨팅 환경의 수는 복수의 RPA 오토스케일링 전략 중 선택된 전략에 기초하여 계산된다. 컴퓨팅 환경의 계산된 수는 RPA 작업 부하를 완료할 하나 이상의 RPA 로봇을 할당하기 위해 할당된다. 컴퓨팅 환경은 가상 머신일 수도 있다.

Description

로봇 프로세스 자동화를 위한 오토스케일링 전략
본 발명은 일반적으로 로봇 프로세스 자동화(robotic process automation; RPA)에 관한 것으로, 특히, 하나 이상의 RPA 로봇을 실행하기 위한 가상 머신 또는 다른 컴퓨팅 환경을 할당하기 위한 RPA 오토스케일링(autoscaling) 전략에 관한 것이다.
로봇 프로세스 자동화(RPA)에서, 작업은 RPA 워크플로우를 자동적으로 실행하는 하나 이상의 RPA 로봇에 의해 완료된다. 종종, 그러한 작업은 속도 또는 비용을 우선으로 하여 완료되는 것을 필요로 할 수도 있다. 종래에는, RPA 로봇을 구현하기 위한 머신이 유저에 의해 수동으로 할당된다. 그러나, 머신의 수동 할당은 번거롭고, 속도 또는 비용을 우선 순위화하기 위해, 유저는, RPA의 구현에 관련이 있는 다양한 상황 정보를 알 필요가 있다. 다른 종래의 접근법에서, RPA 로봇을 구현하기 위한 머신은 중앙 프로세싱 유닛(central processing unit; CPU) 사용량, 메모리 사용량, 등등과 같은 컴퓨팅 리소스에 기초하여 할당된다. 그러나, 그러한 종래의 접근법은, 계류 중인 작업과 같은, 로봇의 작업 부하를 고려하지 않는다.
본 발명의 실시형태는 작업을 완료하기 위한 속도 및 비용의 균형을 맞추기 위해 가상 머신 또는 다른 컴퓨팅 환경을 할당하기 위한 RPA(로봇 프로세스 자동화) 오토스케일링 전략을 제공한다.
하나 이상의 실시형태에 따르면, RPA 작업 부하를 완료하기 위해 컴퓨팅 환경을 할당하기 위한 시스템 및 방법이 제공된다. RPA 작업 부하를 완료하기 위한 요청이 수신된다. RPA 작업 부하를 완료하기 위해 할당할 컴퓨팅 환경의 수는 복수의 RPA 오토스케일링 전략 중 선택된 전략에 기초하여 계산된다. 컴퓨팅 환경의 계산된 수는 RPA 작업 부하를 완료할 하나 이상의 RPA 로봇을 할당하기 위해 할당된다.
하나의 실시형태에서, 컴퓨팅 환경은 가상 머신을 포함한다.
하나의 실시형태에서, 복수의 RPA 오토스케일링 전략은 비용 대비 속도 우선 전략(speed over cost strategy), 밸런스가 맞춰진 전략, 및 속도 대비 비용 우선 전략을 포함한다. 할당할 컴퓨팅 환경의 수는 RPA 작업 부하를 완료할 컴퓨팅 환경의 수, 풀(pool)에서 생성될 수 있는 컴퓨팅 환경의 최대 수, 라이선스에 의해 허용되는 RPA 로봇의 수에 기초하여 계산된다.
하나의 실시형태에서, 복수의 RPA 오토스케일링 전략은, 유저가 하나 이상의 제어 변수를 구성하는 맞춤형 전략(custom strategy)을 포함한다. 다른 실시형태에서, 복수의 RPA 오토스케일링 전략은, 하나 이상의 제어 변수가 작업 부하 타입에 기초하여 자동적으로 조정되는 동적 전략을 포함한다.
하나의 실시형태에서, 선택된 RPA 오토스케일링 전략의 선택은 유저로부터 수신된다. 다른 실시형태에서, 선택된 RPA 오토스케일링 전략은 스케줄에 따라 및/또는 RPA 작업 부하의 소스에 기초하여 자동적으로 선택된다.
본 발명의 이들 및 다른 이점은 다음의 상세한 설명 및 첨부의 도면에 대한 참조에 의해 기술 분야에서 통상의 지식을 가진 자에게는 명백할 것이다.
도 1은, 본 발명의 한 실시형태에 따른, RPA(로봇 프로세스 자동화) 시스템을 예시하는 아키텍쳐 다이어그램(architectural diagram)이다;
도 2는, 본 발명의 한 실시형태에 따른, 배치된 RPA 시스템의 한 예를 예시하는 아키텍쳐 다이어그램이다;
도 3은, 본 발명의 한 실시형태에 따른, RPA 시스템의 단순화된 배치 예를 예시하는 아키텍쳐 다이어그램이다;
도 4는, 본 발명의 한 실시형태에 따른, 로봇 프로세스 자동화 로봇의 클라우드 기반의 관리를 구현하기 위한 클라우드 RPA 시스템을 예시하는 아키텍쳐 다이어그램을 도시한다;
도 5는, 본 발명의 일 실시형태에 따른, RPA 로봇을 실행하기 위한 컴퓨팅 환경을 할당하기 위한 방법을 도시한다; 그리고
도 6은, 본 발명의 실시형태를 구현하기 위해 사용될 수도 있는 컴퓨팅 시스템의 블록도이다.
로봇 프로세스 자동화(RPA)는 워크플로우 및 프로세스를 자동화하기 위해 사용된다. 도 1은, 하나 이상의 실시형태에 따른, RPA 시스템(100)의 아키텍쳐 다이어그램이다. 도 1에서 도시되는 바와 같이, RPA 시스템(100)은, 개발자가 자동화 프로세스를 설계하는 것을 허용하는 디자이너(designer; 102)를 포함한다. 더 구체적으로, 디자이너(102)는 프로세스에서 활동을 수행하기 위한 RPA 프로세스 및 로봇의 개발 및 전개를 용이하게 한다. 디자이너(102)는, 써드파티 애플리케이션, 관리 정보 기술(Information Technology; IT) 태스크, 및 콘택 센터 운영(contact center operation)을 위한 비즈니스 프로세스를 자동화하는 것뿐만 아니라, 애플리케이션 통합을 위한 솔루션을 제공할 수도 있다. 디자이너(102)의 실시형태의 하나의 상업적인 예는 UiPath Studio™이다.
규칙 기반의 프로세스의 자동화를 설계함에 있어서, 개발자는 실행 순서 및 본원에서 "활동"으로서 정의되는, 프로세스에서 개발되는 단계의 커스텀 세트 사이의 관계를 제어한다. 각각의 활동은, 버튼 클릭, 파일 판독, 로그 패널에 대한 기록, 등등과 같은 액션을 포함할 수도 있다. 몇몇 실시형태에서, 프로세스는 내포되거나(nested) 또는 임베딩될 수도 있다.
프로세스의 몇몇 타입은, 시퀀스, 플로우차트, 유한 상태 머신(Finite State Machine; FSM), 및/또는 전역적 예외 핸들러를 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 시퀀스는, 프로세스를 복잡하게 하지 않으면서 하나의 활동으로부터 다른 활동으로의 흐름을 가능하게 하는 선형 프로세스에 특히 적합할 수도 있다. 플로우차트는 더욱 복잡한 비즈니스 로직에 특히 적합할 수도 있어서, 다수의 분기 로직 연산자를 통해 의사 결정의 통합 및 활동의 연결을 더욱 다양한 방식으로 가능하게 할 수도 있다. FSM은 대규모 워크플로우에 특히 적합할 수도 있다. FSM은, 조건(즉, 이행(transition)) 또는 활동에 의해 트리거되는 유한한 수의 상태를 그들의 실행에서 사용할 수도 있다. 전역적 예외 핸들러는, 실행 에러를 조우하는 경우 워크플로우 거동을 결정하는 데 그리고 프로세스를 디버깅하는 데 특히 적합할 수도 있다.
일단 디자이너(102)에서 프로세스가 개발되면, 비즈니스 프로세스의 실행은, 디자이너(102)에서 개발되는 프로세스를 실행하는 하나 이상의 로봇(106)을 조정하는 컨덕터(conductor; 104)에 의해 조정된다. 컨덕터(104)의 실시형태의 하나의 상업적인 예는 UiPath Orchestrator™이다. 컨덕터(220)는 RPA 환경에서 리소스의 생성, 모니터링 및 배치의 관리를 용이하게 한다. 하나의 예에서, 컨덕터(104)는 웹 애플리케이션이다. 컨덕터(104)는 또한 써드파티 솔루션 및 애플리케이션과의 통합 지점으로서 기능할 수도 있다.
컨덕터(104)는 중앙 집중식 지점으로부터 로봇(106)을 연결하고 실행하는 것에 의해 일단의(a fleet of) RPA 로봇(106)을 관리할 수도 있다. 컨덕터(104)는, 프로비저닝, 배치, 구성, 큐잉, 모니터링, 로깅, 및/또는 상호 연결성의 제공을 포함하는, 그러나 이들로 제한되지는 않는 다양한 성능을 가질 수도 있다. 프로비저닝은 로봇(106)과 컨덕터(104)(예를 들면, 웹 애플리케이션) 사이의 연결의 생성 및 유지 보수를 포함할 수도 있다. 배치는 실행을 위해 할당된 로봇(106)으로의 패키지 버전의 정확한 전달을 보장하는 것을 포함할 수도 있다. 구성은 로봇 환경 및 프로세스 구성의 유지 보수 및 전달을 포함할 수도 있다. 큐잉은 큐 및 큐 아이템의 관리를 제공하는 것을 포함할 수도 있다. 모니터링은 로봇 식별 데이터를 계속 추적하는 것 및 유저 퍼미션을 유지하는 것을 포함할 수도 있다. 로깅은 데이터베이스(예를 들면, SQL 데이터베이스) 및/또는 다른 스토리지 메커니즘(예를 들면, 대규모 데이터세트를 저장하고 빠르게 조회하는 능력을 제공하는 ElasticSearch®(엘라스틱서치))에 로그를 저장하고 인덱싱하는 것을 포함할 수도 있다. 컨덕터(104)는 써드파티 솔루션 및/또는 애플리케이션에 대한 통신의 중앙 집중식 지점으로서 작용하는 것에 의해 상호 연결성(interconnectivity)을 제공할 수도 있다.
로봇(106)은 디자이너(102)에 내장되는 프로세스를 실행하는 실행 에이전트이다. 로봇(106)의 몇몇 실시형태의 하나의 상업적인 예는 UiPath Robots™이다. 로봇(106)의 타입은 협업 로봇(attended robot; 108) 및 무인 로봇(attended robot; 110)을 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 협업 로봇(108)은 유저 또는 유저 이벤트에 의해 트리거되고 동일한 컴퓨팅 시스템 상에서 인간 유저 곁에서 동작한다. 협업 로봇(108)은 인간 유저가 다양한 태스크를 달성하는 것을 도울 수도 있고, 인간 유저에 의해 및/또는 유저 이벤트에 의해 직접적으로 트리거될 수도 있다. 협업 로봇의 경우, 컨덕터(104)는 중앙 집중식 프로세스 배치 및 로깅 매체(logging medium)를 제공할 수도 있다. 소정의 실시형태에서, 협업 로봇(108)은, 오로지, "로봇 트레이"로부터 또는 웹 애플리케이션의 커맨드 프롬프트로부터 시작될 수 있다. 무인 로봇(110)은 가상 환경에서 무인 모드로 동작하며, 예를 들면, 다량의, 백엔드 프로세스 및 등등과 같은 많은 프로세스를 자동화하기 위해 사용될 수 있다. 무인 로봇(110)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐에 대한 지원의 제공을 담당할 수도 있다. 협업 및 무인 로봇 둘 모두는, 메인 프레임, 웹 애플리케이션, VM, 엔터프라이즈 애플리케이션(예를 들면, SAP®, SalesForce®(세일즈포스), Oracle®(오라클), 등등에 의해 생성되는 애플리케이션), 및 컴퓨팅 시스템 애플리케이션(예를 들면, 데스크탑 및 랩탑 애플리케이션, 모바일 디바이스 애플리케이션, 웨어러블 컴퓨터 애플리케이션, 등등)을 포함하는, 그러나 이들로 제한되지는 않는 다양한 시스템 및 애플리케이션을 자동화할 수도 있다.
몇몇 실시형태에서, 로봇(106)은, 디폴트로, Microsoft Windows®(마이크로소프트 윈도우즈) Service Control Manager(SCM; 서비스 제어 관리자) 관리 서비스를 설치한다. 결과적으로, 그러한 로봇(106)은 로컬 시스템 계정 하에서 상호 작용식 Windows®(윈도우즈) 세션을 열 수 있고, Windows® 서비스의 권한을 가질 수 있다. 몇몇 실시형태에서, 로봇(106)은 주어진 로봇(106)이 설치된 유저와 동일한 권한을 가지고 유저 모드에서 설치될 수 있다.
몇몇 실시형태에서 로봇(106)은 여러 가지 컴포넌트로 분할되는데, 각각은 특정한 자동화 태스크에 전용된다. 몇몇 실시형태에서 로봇 컴포넌트는, SCM 관리 로봇 서비스, 유저 모드 로봇 서비스, 실행기(executor), 에이전트, 및 커맨드 라인을 포함하지만, 그러나 이들로 제한되지는 않는다. SCM 관리 로봇 서비스는 Windows® 세션을 관리 및 모니터링하고 컨덕터(104)와 실행 호스트(즉, 로봇(106)이 실행되는 컴퓨팅 시스템) 사이의 프록시로서 역할을 한다. 이들 서비스는 로봇(106)에 대한 자격 증명(credential)을 사용하여 신뢰되고 그 자격 증명을 관리한다. 콘솔 애플리케이션은 로컬 시스템 하에서 SCM에 의해 론칭된다. 몇몇 실시형태에서, 유저 모드 로봇 서비스는 Windows® 세션을 관리 및 모니터링하고 컨덕터(104)와 실행 호스트 사이의 프록시로서 역할을 한다. 유저 모드 로봇 서비스는 로봇(106)에 대한 자격 증명을 사용하여 신뢰될 수도 있고 그 자격 증명을 관리할 수도 있다. SCM 관리 로봇 서비스가 설치되지 않은 경우 Windows® 애플리케이션이 자동적으로 론칭될 수도 있다. 실행기는 Windows® 세션 하에서 주어진 작업을 실행할 수도 있고(예를 들면, 그들은 워크플로우를 실행할 수도 있음) 그들은 모니터당 인치당 도트(dots per inch; DPI) 설정을 알고 있을 수도 있다. 에이전트는 시스템 트레이 윈도우(system tray window)에서 이용 가능한 작업을 디스플레이하는 Windows® 프리젠테이션 파운데이션(Windows® Presentation Foundation; WPF) 애플리케이션일 수도 있다. 에이전트는 서비스의 클라이언트일 수도 있다. 에이전트는 작업을 시작 또는 중지할 것을 그리고 설정을 변경할 것을 요청할 수도 있다. 커맨드 라인은 서비스의 클라이언트이며 작업 시작을 요청할 수 있고 그들의 출력을 대기하는 콘솔 애플리케이션이다. 로봇 컴포넌트를 분할하는 것은 개발자를 도울 수 있고, 유저를 지원할 수 있고, 컴퓨팅 시스템이 각각의 로봇 컴포넌트가 실행하고 있는 것을 더욱 쉽게 실행, 식별 및 추적하는 것을 가능하게 할 수 있다. 예를 들면, 실행기 및 서비스에 대해 상이한 방화벽 규칙을 셋업하는 것과 같은 특수한 거동이 로봇 컴포넌트마다 구성될 수도 있다. 또 다른 예로서, 실행기는, 몇몇 실시형태에서, 모니터당 DPI 설정을 인식할 수도 있고, 결과적으로, 워크플로우가 생성된 컴퓨팅 시스템의 구성에 관계없이, 그들은 임의의 DPI에서 실행될 수도 있다.
도 2는, 하나 이상의 실시형태에 따른, RPA 시스템(200)을 도시한다. RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수도 있거나, 또는 그 일부일 수도 있다. "클라이언트측", "서버측", 또는 둘 모두는 본 발명의 범위를 벗어나지 않으면서 임의의 소망되는 수의 컴퓨팅 시스템을 포함할 수도 있다는 것을 유의해야 한다.
이 실시형태에서 클라이언트측에서 도시되는 바와 같이, 컴퓨팅 시스템(202)은 하나 이상의 실행기(204), 에이전트(206), 및 디자이너(208)를 포함한다. 다른 실시형태에서, 디자이너(208)는 동일한 컴퓨팅 시스템(202) 상에서 실행되고 있지 않을 수도 있다. 실행기(204)(이것은 상기에서 설명되는 바와 같은 로봇 컴포넌트일 수도 있음)는 프로세스를 실행하고, 몇몇 실시형태에서, 다수의 비즈니스 프로세스가 동시에 실행될 수도 있다. 이 예에서, 에이전트(206)(예를 들면, Windows® 서비스)는 실행기(204)를 관리하기 위한 단일의 접촉 지점이다.
몇몇 실시형태에서, 로봇은 머신 명칭과 유저 명칭 사이의 관련화(association)를 나타낸다. 로봇은 동시에 다수의 실행기를 관리할 수도 있다. 동시에 실행되는 다수의 상호 작용식 세션을 지원하는 컴퓨팅 시스템(예를 들면, Windows® Server(윈도우즈 서버) 2012) 상에서, 다수의 로봇이 동시에 실행될 수도 있는데(예를 들면, 고밀도(high density; HD) 환경), 각각은 고유의 유저 명칭을 사용하여 별개의 Windows® 세션 내에 있다.
에이전트(206)는 또한, 로봇의 상태를 전송하는 것(예를 들면, 로봇이 여전히 기능하고 있다는 것을 나타내는 "하트비트(heartbeat)" 메시지를 주기적으로 전송함) 및 실행될 패키지의 필요한 버전을 다운로드하는 것을 담당한다. 에이전트(206)와 컨덕터(212) 사이의 통신은 몇몇 실시형태에서 에이전트(206)에 의해 개시된다. 알림 시나리오의 예에서, 에이전트(206)는, 커맨드를 로봇으로 전송하기 위해(예를 들면, 시작, 정지, 등등) 컨덕터(212)에 의해 나중에 사용되는 WebSocket(웹소켓) 채널을 개방할 수도 있다.
이 실시형태에서 서버측에서 도시되는 바와 같이, 프리젠테이션 계층은 웹 애플리케이션(214), 개방 데이터 프로토콜(Open Data Protocol; OData) 대표 상태 전송(Representative State Transfer; REST) 애플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) 엔드포인트(216) 및 알림 및 모니터링 API(218)를 포함한다. 서버측의 서비스 계층은 API 구현/비즈니스 로직(220)을 포함한다. 서버측의 영속 계층(persistence layer)은 데이터베이스 서버(222) 및 인덱서 서버(indexer server; 224)를 포함한다. 컨덕터(212)는 웹 애플리케이션(214), OData REST API 엔드포인트(216), 알림 및 모니터링 API(218), 및 API 구현/비즈니스 로직(220)을 포함한다.
다양한 실시형태에서, 유저가 컨덕터(212)의 인터페이스에서 (예를 들면, 브라우저(210)를 통해) 수행하는 대부분의 액션은 다양한 API를 호출하는 것에 의해 수행된다. 그러한 액션은, 로봇 상에서 작업을 시작하는 것, 큐에서 데이터를 추가/제거하는 것, 무인으로 실행할 작업을 스케줄링하는 것, 및 등등을 포함할 수도 있지만, 그러나, 이들로 제한되지는 않는다. 웹 애플리케이션(214)은 서버 플랫폼의 시각적 계층(visual layer)이다. 이 실시형태에서, 웹 애플리케이션(214)은 하이퍼텍스트 마크업 언어(Hypertext Markup Language; HTML) 및 JavaScript(자바스크립트)(JS)를 사용한다. 그러나, 본 발명의 범위를 벗어나지 않으면서, 임의의 소망되는 마크업 언어, 스크립트 언어, 또는 임의의 다른 포맷이 사용될 수도 있다. 유저는, 컨덕터(212)를 제어하기 위한 다양한 액션을 수행하기 위해, 이 실시형태에서 브라우저(210)를 통해 웹 애플리케이션(214)으로부터의 웹 페이지와 상호 작용한다. 예를 들면, 유저는 로봇 그룹을 생성할 수도 있고, 로봇에 패키지를 할당할 수도 있고, 로봇마다 및/또는 프로세스마다 로그를 분석할 수도 있고, 로봇을 시작 및 중지할 수도 있고, 등등을 할 수도 있다.
웹 애플리케이션(214)에 추가하여, 컨덕터(212)는 또한 OData REST API 엔드포인트(216)를 노출하는 서비스 계층을 포함한다(또는 다른 엔드포인트가 본 발명의 범위를 벗어나지 않으면서 구현될 수도 있음). REST API는 웹 애플리케이션(214) 및 에이전트(206) 둘 모두에 의해 소비된다. 에이전트(206)는 이 예시적인 구성에서 클라이언트 컴퓨터 상의 하나 이상의 로봇의 감독자(supervisor)이다.
이 실시형태에서의 REST API는 구성, 로깅, 모니터링 및 큐잉 기능성을 포괄한다. 구성 REST 엔드포인트는, 몇몇 실시형태에서, 애플리케이션 유저, 퍼미션, 로봇, 자산, 릴리스, 및 환경을 정의하고 구성하기 위해 사용될 수도 있다. 로깅 REST 엔드포인트는, 예를 들면, 에러, 로봇에 의해 전송되는 명시적 메시지, 및 다른 환경 고유의 정보와 같은 상이한 정보를 로깅하는 데 유용할 수도 있다. 배치 REST 엔드포인트는, 작업 시작 커맨드가 컨덕터(212)에서 사용되는 경우 실행되어야 하는 패키지 버전을 조회하기 위해 로봇에 의해 사용될 수도 있다. 큐잉 REST 엔드포인트는, 큐 및 큐 아이템 관리, 예컨대 데이터를 큐에 추가하는 것, 큐로부터 트랜잭션을 획득하는 것, 트랜잭션의 상태를 설정하는 것, 등등을 담당할 수도 있다. 모니터링 REST 엔드포인트는 웹 애플리케이션(214) 및 에이전트(206)를 모니터링한다. 알림 및 모니터링 API(218)는, 에이전트(206)를 등록하기 위해, 구성 설정을 에이전트(206)에 전달하기 위해, 그리고 서버 및 에이전트(206)로부터의 알림을 전송/수신하기 위해 사용되는 REST 엔드포인트일 수도 있다. 알림 및 모니터링 API(218)는 또한, 몇몇 실시형태에서, WebSocket 통신을 사용할 수도 있다.
서버측 상의 영속 계층은, 이 예시적인 실시형태에서, 한 쌍의 서버 - 데이터베이스 서버(222)(예를 들면, SQL 서버) 및 인덱서 서버(224) - 를 포함한다. 이 실시형태에서의 데이터베이스 서버(222)는 로봇, 로봇 그룹, 관련된 프로세스, 유저, 역할, 스케줄, 등등의 구성을 저장한다. 이 정보는 몇몇 실시형태에서 웹 애플리케이션(214)을 통해 관리된다. 데이터베이스 서버(222)는 큐 및 큐 아이템을 또한 관리할 수도 있다. 몇몇 실시형태에서, 데이터베이스 서버(222)는 (인덱서 서버(224)에 추가하여 또는 그것을 대신하여) 로봇에 의해 로깅되는 메시지를 저장할 수도 있다. 몇몇 실시형태에서 옵션 사항인(optional) 인덱서 서버(224)는 로봇에 의해 로깅되는 정보를 저장 및 인덱싱한다. 소정의 실시형태에서, 인덱서 서버(224)는 구성 설정을 통해 디스에이블될 수도 있다. 몇몇 실시형태에서, 인덱서 서버(224)는 오픈 소스 프로젝트 풀텍스트 검색 엔진(open source project full-text search engine)인 ElasticSearch®를 사용한다. (예를 들면, 메시지 로깅(log message) 또는 라인 기록(write line)과 같은 활동을 사용하여) 로봇에 의해 로깅되는 메시지는 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(224)로 전송될 수도 있는데, 여기서 그들은 미래의 활용을 위해 인덱싱된다.
도 3은, 하나 이상의 실시형태에 따른, RPA 시스템(300)의 단순화된 배치 예를 예시하는 아키텍쳐 다이어그램이다. 몇몇 실시형태에서, RPA 시스템(300)은, 각각, 도 1 및 도 2의 RPA 시스템(100 및/또는 200)일 수도 있거나 또는 그들을 포함할 수도 있다. RPA 시스템(300)은 로봇을 실행하는 다수의 클라이언트 컴퓨팅 시스템(302)을 포함한다. 컴퓨팅 시스템(302)은 컨덕터 컴퓨팅 시스템(304)과 그 상에서 실행되는 웹 애플리케이션을 통해 통신할 수 있다. 컨덕터 컴퓨팅 시스템(304)은, 결국에는, 데이터베이스 서버(306) 및 옵션 사항인 인덱서 서버(308)와 통신한다. 도 2 및 도 3과 관련하여, 웹 애플리케이션이 이들 실시형태에서 사용되는 동안, 본 발명의 범위를 벗어나지 않으면서 임의의 적절한 클라이언트/서버 소프트웨어가 사용될 수도 있다는 것을 유의해야 한다. 예를 들면, 컨덕터는 클라이언트 컴퓨팅 시스템 상의 웹 기반이 아닌 클라이언트 소프트웨어 애플리케이션과 통신하는 서버측 애플리케이션을 실행할 수도 있다.
하나의 실시형태에서, 도 1의 RPA 시스템(100), 도 2의 RPA 시스템(200), 및/또는 도 3의 RPA 시스템(300)은 RPA 로봇의 클라우드 기반의 관리를 위해 구현될 수도 있다. RPA 로봇의 그러한 클라우드 기반의 관리는, RPA가 서비스로서의 소프트웨어(Software as a Service; SaaS)로서 제공되는 것을 가능하게 한다. 따라서, 도 1의 컨덕터(104), 도 2의 컨덕터(212), 및/또는 도 3의 컨덕터(304)는, RPA 로봇의 클라우드 기반의 관리를 위해, 예를 들면, RPA 로봇을 생성하기 위해, RPA 로봇을 프로비저닝하기 위해, RPA 로봇에 대한 태스크를 스케줄링하기 위해, RPA 로봇의 사용을 중지하기 위해, 또는 RPA 로봇 관리를 위한 임의의 다른 오케스트레이션 태스크를 실행하기 위해 클라우드에서 구현된다.
도 4는, 하나 이상의 실시형태에 따른, RPA 로봇의 클라우드 기반의 관리를 구현하기 위한 클라우드 RPA 시스템(400)의 아키텍쳐 다이어그램을 예시한다. 클라우드 RPA 시스템(400)은 클라우드 컴퓨팅 환경(402) 및 로컬 컴퓨팅 환경(404)을 포함한다. 로컬 컴퓨팅 환경(404)은 유저 또는 예를 들면, 회사, 기업, 등등과 같은 임의의 다른 엔티티 또는 엔티티들의 로컬 네트워크 아키텍쳐를 나타낸다. 로컬 컴퓨팅 환경(404)은 로컬 네트워크(406)를 포함한다. 클라우드 컴퓨팅 환경(402)은, 로컬 컴퓨팅 환경(404)에 있는 유저로부터 원격에서 작업 부하의 프로세싱 또는 서비스를 제공하는 클라우드 컴퓨팅 네트워크 아키텍쳐를 나타낸다. 클라우드 컴퓨팅 환경(402)은, 인터넷(414), 유저에 의해 관리되며(또는 제어되며) 클라우드 플랫폼 제공자에 의해 호스팅되는 클라우드 네트워크를 나타내는 유저 클라우드 네트워크(418), 및 클라우드 서비스 제공자에 의해 관리되며 클라우드 플랫폼 제공자에 의해 호스팅되는 클라우드 네트워크를 나타내는 클라우드 서비스 제공자 클라우드 네트워크(420)를 비롯한, 다양한 클라우드 네트워크를 포함한다. 클라우드 서비스 제공자는 클라우드를 통해 서비스(예를 들면, RPA)를 제공하는 엔티티이다. 클라우드 플랫폼 제공자는 클라우드 컴퓨팅 인프라를 유지하는 엔티티이다. 로컬 컴퓨팅 환경(404)의 로컬 네트워크(406)는, 로컬 컴퓨팅 환경(404)과 클라우드 컴퓨팅 환경(402) 사이의 통신을 용이하게 하기 위해, 클라우드 컴퓨팅 환경(402)의 인터넷(414)에 통신 가능하게 커플링된다.
도 4에서 도시되는 바와 같이, 클라우드 오케스트레이터(430)는, RPA 로봇의 클라우드 기반의 관리를 가능하게 하도록 클라우드 컴퓨팅 환경(402)에서 구현된다. 특히, 클라우드 오케스트레이터(430)는 클라우드 컴퓨팅 환경(402) 내에서 클라우드 서비스 제공자 클라우드 네트워크(420)에서 호스팅되고 클라우드 서비스 제공자에 의해 관리된다. 하나의 실시형태에서, 클라우드 서비스 제공자는 로컬 컴퓨팅 환경(404) 내의 유저에게 RPA를 제공한다.
클라우드 오케스트레이터(430)는 클라우드 컴퓨팅 환경(402) 내의 RPA 로봇을 관리한다. 특히, 유저는, RPA 로봇을 관리하기 위한 명령어를 클라우드 컴퓨팅 환경(402) 내의 클라우드 오케스트레이터(430)로 송신하기 위해, 로컬 컴퓨팅 환경(404) 내의 컴퓨팅 디바이스(412)와 상호 작용한다. 대안적으로, 유저는, RPA 로봇을 관리하기 위한 명령어를 유저를 대신하여 자동적으로 송신하도록 클라우드 오케스트레이터(430) 상의 스케줄을 설정하기 위해, 로컬 컴퓨팅 환경(404) 내의 컴퓨팅 디바이스(412)와 상호 작용한다. RPA 로봇을 관리하기 위한 예시적인 명령어는, RPA 로봇 생성하기 위한, RPA 로봇을 프로비저닝하기 위한, RPA 로봇에 대한 태스크를 스케줄링하기 위한(예를 들면, 태스크를 수행하기 위한 시간 및 태스크를 수행하기 위한 로봇의 타입을 스케줄링함), RPA 로봇의 사용을 중지하기 위한 명령어, 또는 RPA 로봇에 대한 임의의 다른 오케스트레이션 명령어를 포함한다. 명령어를 수신하는 것에 응답하여, 클라우드 오케스트레이터(430)는, 예를 들면, RPA 로봇을 생성하는 것, RPA 로봇을 프로비저닝하는 것, RPA 로봇의 태스크를 스케줄링하는 것, RPA 로봇의 사용을 중지하는 것, 등등에 의해 명령어를 실현한다. 하나의 실시형태에서, 클라우드 오케스트레이터(430)는 도 1의 컨덕터(104), 도 2의 컨덕터(212), 또는 도 3의 컨덕터(304)와 유사할 수도 있지만, 그러나 클라우드 컴퓨팅 환경(402) 내의 클라우드 서비스 제공자 클라우드 네트워크(420)에서 구현된다.
클라우드 오케스트레이터(430)에 의해 관리되는 RPA 로봇은 클라우드 컴퓨팅 환경(402) 내에서 배치되어 유지되는 클라우드 로봇의 풀(pool)을 포함할 수도 있다. 그러한 클라우드 로봇은 클라우드 서비스 로봇 풀(cloud service robot pool; 426)의 하나 이상의 클라우드 서비스 로봇(428-A, ..., 428-X)(이하, 일괄적으로 클라우드 서비스 로봇(428)으로 지칭됨) 및 클라우드 관리 로봇 풀(cloud managed robot pool; 422)의 하나 이상의 클라우드 관리 로봇(cloud managed robot; 424-A, ..., 424-Y)(이하, 일괄적으로 클라우드 관리 로봇(424)으로서 지칭됨)을 포함할 수도 있다. 그러한 클라우드 로봇은 클라우드 컴퓨팅 환경(402)에서 태스크를 수행하고(즉, 프로세싱하고) 로컬 컴퓨팅 환경(404) 내의 유저에게 태스크의 결과를 송신한다. 추가적으로 또는 대안적으로, 클라우드 오케스트레이터(430)에 의해 관리되는 RPA 로봇은 로컬 로봇 풀(408)의 하나 이상의 로컬 로봇(410-A, ..., 410-Z)(이하 일괄적으로 로컬 로봇(410)으로서 지칭됨)을 포함할 수도 있다.
클라우드 서비스 로봇(428)은 로컬 네트워크 환경(404) 내의 유저를 위해 클라우드 컴퓨팅 환경(402)에서 RPA 태스크를 수행하기 위해 클라우드 서비스 제공자 클라우드 네트워크(420)에서 클라우드 서비스 제공자에 의해 유지된다. 클라우드 서비스 로봇(428)은 컴퓨팅 디바이스(412)로부터 클라우드 오케스트레이터(430)로 명령어를 전송하는 유저에 의한 요청에 따라 생성된다. 생성시, 클라우드 서비스 로봇(428)은 태스크(또는 워크플로우)의 수행을 대기하는 동안 스탠바이 모드에 진입한다. 스탠바이 모드에 있는 동안, 클라우드 서비스 로봇(428)을 실행하기 위한 비용은 최소화되거나 또는 다르게는 감소된다. 태스크는 컴퓨팅 디바이스(412)로부터 클라우드 오케스트레이터(430)로 명령어를 전송하는 유저에 의해 클라우드 서비스 로봇(428)에 대해 스케줄링된다. 태스크를 스케줄링하기 위한 명령어는 태스크를 수행하기 위한 시간 및 태스크를 수행하기 위한 로봇의 타입을 정의한다. 클라우드 서비스 로봇(428)은 태스크를 수행하기 위해 스탠바이 모드로부터 웨이크업하고 일단 태스크가 완료되면 스탠바이 모드로 복귀한다. 따라서, 클라우드 서비스 로봇(428)은 로컬 컴퓨팅 환경(404) 내의 유저를 위해 클라우드 서비스 제공자 클라우드 네트워크(420) 상에서 태스크를 수행한다.
클라우드 관리 로봇(424)은 로컬 네트워크 환경(404) 내의 유저를 위해 클라우드 컴퓨팅 환경(402)에서 RPA 태스크를 수행하기 위해 유저 클라우드 네트워크(418)에서 유저에 의해 유지된다. 클라우드 관리 로봇(424)은 클라우드 서비스 로봇(428)과 성능에서 유사하고 클라우드 컴퓨팅 환경(402)에서 또한 호스팅된다. 그러나, 클라우드 관리 로봇(424)이 호스팅되는 유저 클라우드 네트워크(418)는 유저에 의해 관리되고, 한편, 클라우드 서비스 로봇(428)이 호스팅되는 클라우드 서비스 제공자 클라우드 네트워크(420)는 클라우드 서비스 제공자에 의해 관리되고 클라우드 플랫폼 제공자에 의해 호스팅된다. 클라우드 오케스트레이터(430)는, 클라우드 서비스 제공자 클라우드 네트워크(420)와 유저 클라우드 네트워크(418) 사이의 연결을 확립하는 것에 의해 클라우드 관리 로봇(424)을 관리한다. 유저 클라우드 네트워크(418)는 로컬 네트워크(406)로 다시 터널링하기 위해 클라우드 제공자 기술을 활용하는 유저에 의해 확립될 수도 있다. 유저는 로컬 네트워크(406)로부터 클라우드 서비스 제공자 클라우드 네트워크(420)로의 전용 네트워크 연결을 확립할 수 있다. 연결성은 통상적으로, 예를 들면, 임의의 것 대 임의의 것(any-to-any)(예를 들면, 인터넷 프로토콜 가상 사설망) 네트워크, 지점간(point-to-point) 이더넷 네트워크, 또는 공동 위치 시설(co-location facility)에서의 연결성 제공자를 통한 가상의 교차 연결의 형태이다. 이들 연결은 공공 인터넷을 지나가지 않는다. 이것은 인터넷을 통한 통상적인 연결보다 더 높은 신뢰성, 더 빠른 속도, 일관된 레이턴시, 및 더 높은 보안성을 제공한다. 유저 클라우드 네트워크(418)는 계속해서 유저에 의해 완전히 제어 및 관리되고, 그에 의해, 유저에게 데이터에 대한 엄격한 제어를 제공한다.
일단 클라우드 서비스 제공자 클라우드 네트워크(420)와 유저 클라우드 네트워크(418) 사이의 연결이 확립되면, 클라우드 관리 로봇(424)은 컴퓨팅 디바이스(412)를 통해 클라우드 오케스트레이터(430)와 상호 작용하는 유저에 의한 요청에 따라 생성된다. 클라우드 관리 로봇(424)은 유저 클라우드 네트워크(418) 상에서 생성된다. 따라서, 클라우드 관리 로봇(424)은 로컬 컴퓨팅 환경(404) 내의 유저를 위해 유저 클라우드 네트워크(418) 상에서 태스크를 수행한다. 알고리즘은 클라우드 관리 로봇 풀(422)에서의 로봇의 활용을 최대화하도록 그리고 유저에 대한 운영 비용을 감소시키도록 적용될 수도 있다.
로컬 로봇(410)은 로컬 네트워크 환경(404) 내의 유저를 위해 RPA 태스크를 수행하기 위해 로컬 네트워크(406)에서 유저에 의해 유지된다. 로컬 네트워크(406)는 유저에 의해 제어되거나 또는 다르게는 관리된다. 클라우드 오케스트레이터(430)는 표준 HTTPS 연결성을 통해 로컬 로봇(410)에 대한 연결을 유지한다.
동작에서, 예를 들면, 도 1의 RPA 시스템(100), 도 2의 RPA 시스템(200), 도 3의 RPA 시스템(300), 및/또는 도 4의 클라우드 RPA 시스템(400)과 같은 RPA 시스템이 작업을 완료하도록 구성된다. 그러한 작업은 하나 이상의 RPA 워크플로우를 실행하기 위해 가상 머신(또는 임의의 다른 컴퓨팅 환경) 상에서 실시되는 또는 실행되는 하나 이상의 RPA 로봇에 의해 완료된다. 가상 머신은, 다른 컴퓨터 시스템 상에서 실행되는 컴퓨터 시스템의 가상화 또는 에뮬레이션이다. 때때로, 시간, 비용, 또는 시간과 비용 사이의 균형을 우선 순위화하는 것에 의해 RPA 작업을 완료하는 것이 바람직할 수도 있다. 본원에서 설명되는 실시형태는 시간, 비용, 또는 시간 사이의 균형을 우선 순위화하기 위한 RPA 오토스케일링 전략을 제공한다. 유리하게는, 컴퓨팅 환경은, 선택된 RPA 오토스케일링 전략에 기초하여 작업을 완료하기 위해 하나 이상의 RPA 로봇을 실행하기 위해 할당되며, 그에 의해, 최소의 수동 유저 구성을 가지고 우선 순위가 지정된 시간, 비용, 또는 균형에 따라 작업을 완료한다.
도 5는, 하나 이상의 실시형태에 따른, RPA 로봇을 실행하기 위한 컴퓨팅 환경을 할당하기 위한 방법(500)을 도시한다. 방법(500)의 단계는, 예를 들면, 도 6의 컴퓨팅 시스템(600)과 같은 하나 이상의 적절한 컴퓨팅 디바이스에 의해 수행될 수도 있다. 하나의 실시형태에서, 방법(500)의 단계는, 예를 들면, 도 1의 RPA 시스템(100)의 컨덕터(conductor; 104), 도 2의 RPA 시스템(200)의 컨덕터(212), 도 3의 RPA 시스템(300)의 컨덕터(304), 또는 도 4의 클라우드 RPA 시스템(400)의 클라우드 오케스트레이터(orchestrator; 430)와 같은 RPA 시스템의 오케스트레이터 또는 컨덕터에 의해 수행된다.
단계(502)에서, RPA 작업 부하를 완료하기 위한 요청이 수신된다. RPA 작업 부하는, 예를 들면, RPA 작업의 세트일 수도 있다.
단계(504)에서, RPA 작업 부하를 완료하기 위해 할당할 컴퓨팅 환경의 수는, 복수의 RPA 오토스케일링 전략 중의 선택된 전략에 기초하여 계산된다. 하나의 실시형태에서, 컴퓨팅 환경은 가상 머신이다. 그러나, 컴퓨팅 환경은, 예를 들면, 가상화된 데스크탑 환경, 컨테이너, 등등과 같은 RPA 로봇을 실행하기 위한 임의의 다른 적절한 컴퓨팅 환경일 수도 있다. RPA 오토스케일링 전략은 다수의 방식으로, 예를 들면, RPA 오토스케일링 프로파일로서 정의되거나 또는 구현될 수 있다.
복수의 RPA 오토스케일링 전략은 RPA 작업 부하를 완료하기 위한 시간과 비용의 균형을 유지한다. 하나의 실시형태에서, 복수의 RPA 오토스케일링 전략은 비용 대비 속도 우선 전략(speed over cost strategy), 밸런스가 맞춰진 전략, 및 속도 대비 비용 우선 전략을 포함한다. 비용 대비 속도 우선 전략은 RPA 작업 부하를 완료하기 위한 가장 빠른 시간을 가지지만, 그러나 가장 높은 인프라 비용을 갖는다. 밸런스가 맞춰진 전략은 RPA 작업 부하를 완료하기 위한 중간 시간 및 중간 인프라 비용을 갖는다. 비용 대비 속도 우선 전략은 RPA 작업 부하를 완료하기 위한 가장 느린 시간을 가지지만, 그러나 가장 낮은 인프라 비용을 갖는다. 하나의 실시형태에서, 속도 대비 비용 우선 전략이 디폴트 전략이다.
할당할 컴퓨팅 환경의 수는 다양한 제어 변수 또는 파라미터에 따라 선택된 오토스케일링 전략에 기초하여 결정된다. 하나의 실시형태에서, 할당할 컴퓨팅 환경의 수는, 1) RPA 작업 부하를 완료할 컴퓨팅 환경의 수를 나타내는 MAX_MACHINES_FOR_WORKLOAD, 2) 풀에서의 컴퓨팅 환경의 최대 수를 나타내는 MAX_MACHINES, 및 3) 라이선스에 의해 허용되는 활성 RPA 로봇의 수를 나타내는 LICENSED_ROBOTS에 기초하여 선택된 오토스케일링 전략에 따라 결정된다.
비용 대비 속도 우선 전략의 경우, ALLOCATION_MACHINE_COUNT를 할당할 컴퓨팅 환경의 수는 다음과 같이 계산되는데:
ALLOCATION_MACHINE_COUNT =
min(MAX_MACHINES_FOR_WORKLOAD, MAX_MACHINES)/X
여기서, 제어 변수 X는 임의의 양의 정수이고(예를 들면, 2), MAX_MACHINES는 풀에서의 컴퓨팅 환경의 최대 수인 것으로 정의되고, MIN_MACHINES는 1인 것으로 정의되고, MACHINE_IDLE는 30 분인 것으로 정의되며, MACHINE_DELETE는 Z 분인 것으로 정의된다. 밸런스가 맞춰진 전략의 경우, ALLOCATION_MACHINE_COUNT를 할당할 컴퓨팅 환경의 수는 다음과 같이 계산되는데:
ALLOCATION_MACHINE_COUNT =
min(MAX_MACHINES_FOR_WORKLOAD, MAX_MACHINES)/Y
여기서, 제어 변수 Y는 X보다 더 큰 임의의 양의 정수이고(예를 들면, 4), MAX_MACHINES는 풀에서의 컴퓨팅 환경의 최대 수인 것으로 정의되고, MIN_MACHINES는 0인 것으로 정의되고, MACHINE_IDLE는 10 분인 것으로 정의되고, MACHINE_DELETE는 Z 분인 것으로 정의된다. 비용 대비 속도 우선 전략의 경우, ALLOCATION_MACHINE_COUNT를 할당할 컴퓨팅 환경의 수는 다음과 같이 정의되는데:
ALLOCATION_MACHINE_COUNT = 1
여기서, 제어 변수 MAX_MACHINES는 풀에서의 컴퓨팅 환경의 최대 수인 것으로 정의되고, MIN_MACHINES는 0인 것으로 정의되고, MACHINE_IDLE은 3 분인 것으로 정의되며, MACHINE_DELETE는 Z 분인 것으로 정의된다.
할당할 컴퓨팅 환경의 수는, 선택된 RPA 오토스케일링 전략과 관련되는 공식에 따라 ALLOCATION_MACHINE_COUNT를 계산하는 것에 의해 계산되는데, 계산된 결과는 다음 번 정수(whole number)로 반올림된다. 상기의 계산에서, 제어 변수 ALLOCATION_MACHINE_COUNT는 할당할 컴퓨팅 환경의 수이고, 제어 변수 MAX_MACHINES_FOR_WORKLOAD는 RPA 작업 부하를 완료할 컴퓨팅 환경의 수이다(예를 들면, 계류 중인 작업, 실행 중인 작업, 라이선스가 부여된 RPA 로봇 런타임, 등등과 같은 상태 정보를 고려함), 제어 변수 MAX_MACHINES는 풀에서 생성될 수 있는 컴퓨팅 환경의 최대 수이고, 제어 변수 MIN_MACHINES는 항상(심지어 계류 중인 작업이 없는 경우에도) 이용 가능한 상태로 유지되어야 하는 컴퓨팅 환경의 최소 수이고, 제어 변수 MACHINE_IDLE는 스탠바이 상태에 놓여지기 이전에 컴퓨팅 환경이 아이들 상태가 된 이후 대기하는 시간의 양이고, 제어 변수 MACHINE_DELETE는 컴퓨팅 환경이 삭제되기 이전에 그것이 할당 해제된 이후 대기하는 시간의 양이다.
다른 타입의 전략이 복수의 RPA 오토스케일링 전략에 또한 포함될 수도 있다는 것이 이해되어야 한다. 하나의 예에서, 복수의 RPA 오토스케일링 전략은, 유저가 RPA 작업 부하를 완료하기 위한 시간 및 비용을 수동으로 균형을 맞추기 위해 하나 이상의 제어 변수를 구성하는 하나 이상의 맞춤형 전략을 포함할 수도 있다. 예를 들면, 맞춤형 전략은, X 또는 Y의 유저 정의 값에 따른 상기의 비용 대비 속도 우선 또는 밸런스가 맞춰진 전략과 관련되는 공식에 기초하여 컴퓨팅 환경을 할당할 수도 있다. 다른 예에서, 복수의 RPA 오토스케일링 전략은, 예를 들면, 작업 부하 타입(예를 들면, RPA 작업의 세트에 대한 평균 실행 시간), 내부 제약(예를 들면, 컴퓨팅 환경을 배치하기 위한 시간, 작업의 완료를 위한 평균 시간, 이용 가능한 RPA 라이선스의 수), 등등에 기초하여 RPA 작업 부하를 완료하기 위한 시간 및 비용의 균형을 유지하기 위해 하나 이상의 제어 변수가 자동적으로 조정되는 동적 전략을 포함할 수도 있다. 예를 들면, 스케줄러는 계류 중인 작업, 컴퓨팅 리소스, 등등을 모니터링할 수도 있고, 동적 전략의 하나 이상의 제어 변수를 자동적으로 조정할 수도 있다. 몇몇 실시형태에서, 동적 전략에서의 하나 이상의 제어 변수는 머신 러닝 기반의 모델을 사용하여 자동적으로 조정된다.
하나의 실시형태에서, 선택된 RPA 오토스케일링 전략의 선택은, 예를 들면, RPA 시스템의 오케스트레이터의 유저 인터페이스와 상호 작용하는 유저로부터 수신된다. 다른 실시형태에서, 선택된 RPA 오토스케일링 전략은 자동적으로 선택된다. 하나의 예에서, 선택된 RPA 오토스케일링 전략은 선택된 RPA 오토스케일링 전략을 적용하기 위한 시작 및 종료 시간을 정의하는 스케줄에 따라 자동적으로 선택될 수도 있다. 예를 들면, 세금 신고 및 문서 프로세싱을 수행하는 회계 회사의 경우, RPA 작업 부하는 매월 말과 분기 말에 증가한다. 비용 대비 속도 우선 전략은 매월 말과 분기 말에 스케줄링될 수도 있고, 속도 대비 비용 우선 전략은 나머지 시간 기간 동안 스케줄링될 수도 있다. 다른 예로서, 학생의 입학 및 졸업을 처리하는 대학의 경우, 입학에 대한 학년(school year) 초의 학생 온보딩에 대해 그리고 졸업에 대한 학년 말의 학생 오프보딩에 대해 RPA 작업 부하가 증가한다. 비용 대비 속도 우선 전략은 학년 초 및 학년 말 동안 스케줄링될 수도 있고, 속도 대비 비용 우선 전략은 나머지 시간 기간 동안 스케줄링될 수도 있다. 다른 예에서, 선택된 RPA 오토스케일링 전략은 RPA 작업 부하의 소스에 기초하여 자동적으로 선택될 수도 있다. 이것은, 비용 대비 속도 우선 전략을 선택하는 것에 의해 작업 부하가 더 빨리 프로세싱되도록, 유저가, 소정의 소스로부터 수신되는 작업 부하에 우선 순위를 두는 것을 허용하고, 한편, 다른 소스로부터 수신되는 작업 부하는 속도 대비 비용 우선 전략을 사용하여 비용 효율적으로 프로세싱될 수도 있다. 한 예로서, IT(information technology; 정보 기술) 헬프 데스크의 경우, 비용 대비 속도 우선 전략은, 소스와 관련되는 SLA(service-level agreement; 서비스 레벨 계약)에 따라 또는 소스와 관련되는 비즈니스에 중요한 플래그(business critical flag)에 따라 요청에 대해 선택될 수도 있고, 모든 다른 요청에 대해 밸런스가 맞춰진 전략이 선택될 수도 있다.
단계(506)에서, RPA 작업 부하를 완료할 하나 이상의 RPA 로봇을 할당하기 위해 계산된 수의 컴퓨팅 환경이 할당된다.
도 6은, 본 발명의 한 실시형태에 따른, 도 5의 방법(500)을 비롯한, 본원에서 설명되는 방법, 워크플로우, 및 프로세스를 실행하도록 구성되는 컴퓨팅 시스템(600)을 예시하는 블록도이다. 몇몇 실시형태에서, 컴퓨팅 시스템(600)은 본원에서 묘사되는 및/또는 설명되는 컴퓨팅 시스템 중 하나 이상일 수도 있다. 컴퓨팅 시스템(600)은 정보를 전달하기 위한 버스(602) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위한 버스(602)에 커플링되는 프로세서(들)(604)를 포함한다. 프로세서(들)(604)는 중앙 프로세싱 유닛(Central Processing Unit; CPU), 주문형 집적 회로(Application Specific Integrated Circuit; ASIC), 필드 프로그래머블 게이트 어레이(Field Programmable Gate Array; FPGA), 그래픽 프로세싱 유닛(Graphics Processing Unit; GPU), 이들의 다수의 인스턴스, 및/또는 이들의 임의의 조합을 비롯한, 임의의 타입의 범용 또는 특수 목적의 프로세서일 수도 있다. 프로세서(들)(604)는 또한 다수의 프로세싱 코어를 가질 수도 있고, 코어 중 적어도 일부는 특수 기능을 수행하도록 구성될 수도 있다. 몇몇 실시형태에서, 다중 병렬 프로세싱이 사용될 수도 있다.
컴퓨팅 시스템(600)은 프로세서(들)(604)에 의해 실행될 정보 및 명령어를 저장하기 위한 메모리(606)를 더 포함한다. 메모리(606)는 랜덤 액세스 메모리(Random Access Memory; RAM), 리드 온리 메모리(Read Only Memory; ROM), 플래시 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 스토리지, 또는 임의의 다른 타입의 컴퓨터 판독 가능 비일시적 저장 매체 또는 이들의 조합의 임의의 조합으로 구성될 수 있다. 컴퓨터 판독 가능 비일시적 저장 매체는 프로세서(들)(604)에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수도 있고, 휘발성 매체, 불휘발성 매체, 또는 둘 모두를 포함할 수도 있다. 매체는 또한 착탈식일 수도 있거나, 비착탈식일 수도 있거나, 또는 둘 모두일 수도 있다.
추가적으로, 컴퓨팅 시스템(600)은 임의의 현재 존재하는 또는 미래 구현될 통신 표준 및/또는 프로토콜에 따라 무선 및/또는 유선 연결을 통해 통신 네트워크에 대한 액세스를 제공하기 위해 트랜스시버와 같은 통신 디바이스(608)를 포함한다.
프로세서(들)(604)는 버스(602)를 통해 유저에게 정보를 디스플레이하기에 적절한 디스플레이(610)에 추가로 커플링된다. 디스플레이(610)는 터치 디스플레이 및/또는 임의의 적절한 햅틱 I/O 디바이스로서 또한 구성될 수도 있다.
키보드(612) 및 커서 제어 디바이스(614), 예컨대 컴퓨터 마우스, 터치패드, 등등은 유저가 컴퓨팅 시스템과 인터페이싱하는 것을 가능하게 하기 위해 버스(602)에 추가로 커플링된다. 그러나, 소정의 실시형태에서, 물리적 키보드 및 마우스가 존재하지 않을 수도 있고, 유저는 오로지 디스플레이(610) 및/또는 터치패드(도시되지 않음)를 통해서만 디바이스와 상호 작용할 수도 있다. 입력 디바이스의 임의의 타입 및 조합이 설계 선택의 문제로서 사용될 수도 있다. 소정의 실시형태에서, 어떠한 물리적 입력 디바이스 및/또는 디스플레이도 존재하지 않는다. 예를 들면, 유저는 컴퓨팅 시스템(600)과 통신하는 다른 컴퓨팅 시스템을 통해 컴퓨팅 시스템(600)과 원격으로 상호 작용할 수도 있거나, 또는 컴퓨팅 시스템(600)은 자율적으로 동작할 수도 있다.
메모리(606)는 프로세서(들)(604)에 의해 실행될 때 기능성을 제공하는 소프트웨어 모듈을 저장한다. 모듈은 컴퓨팅 시스템(600)을 위한 운영 체제(616) 및 본원에서 설명되는 프로세스의 모두 또는 일부 또는 그 파생물을 수행하도록 구성되는 하나 이상의 추가적인 기능 모듈(618)을 포함한다.
기술 분야의 숙련된 자는, "시스템"이, 본 발명의 범위를 벗어나지 않으면서, 서버, 임베딩된 컴퓨팅 시스템, 퍼스널 컴퓨터, 콘솔, 개인 휴대형 정보 단말(personal digital assistant; PDA), 셀 폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 임의의 다른 적절한 컴퓨팅 디바이스, 또는 디바이스의 조합으로서 구체화될 수 있다는 것을 인식할 것이다. "시스템"에 의해 수행되는 것으로 상기에서 설명된 기능을 제시하는 것은, 어떠한 방식으로든 본 발명의 범위를 제한하도록 의도되는 것이 아니라, 본 발명의 많은 실시형태의 하나의 예를 제공하도록 의도된다. 실제로, 본원에서 개시되는 방법, 시스템, 및 장치는, 클라우드 컴퓨팅 시스템을 비롯하여, 컴퓨팅 기술과 일치하는 국소화되고 분산된 형태로 구현될 수도 있다.
본 명세에서 설명되는 시스템 피쳐 중 일부는, 그들의 구현 독립성을 더 구체적으로 강조하기 위해, 모듈로 제시되었다는 것을 유의해야 한다. 예를 들면, 모듈은 맞춤형(custom) 대규모 집적(very large scale integration; VLSI) 회로 또는 게이트 어레이, 로직 칩과 같은 기성의(off-the-shelf) 반도체, 트랜지스터, 또는 다른 별개의 컴포넌트를 포함하는 하드웨어 회로로서 구현될 수도 있다. 모듈은 또한, 필드 프로그래머블 게이트 어레이, 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스, 그래픽 프로세싱 유닛, 또는 등등과 같은 프로그래머블 하드웨어 디바이스에서 구현될 수도 있다. 모듈은 또한 다양한 타입의 프로세서에 의한 실행을 위해 소프트웨어로 적어도 부분적으로 구현될 수도 있다. 실행 가능 코드의 식별된 단위는, 예를 들면, 오브젝트, 프로시져, 또는 기능(function)으로서 편제될 수도 있는, 예를 들면, 컴퓨터 명령어의 하나 이상의 물리적 또는 논리적 블록을 포함할 수도 있다. 그럼에도 불구하고, 식별된 모듈의 실행 파일은 물리적으로 함께 위치될 필요는 없지만, 그러나 논리적으로 함께 결합될 때, 모듈을 포함하며 모듈에 대한 지정된 목적을 달성하는 상이한 위치에 저장되는 별개의 명령어를 포함할 수도 있다. 게다가, 모듈은, 예를 들면, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 본 발명의 범위를 벗어나지 않으면서 데이터를 저장하기 위해 사용되는 임의의 다른 그러한 컴퓨터 판독 가능 비일시적 저장 매체일 수도 있는 컴퓨터 판독 가능 매체 상에 저장될 수도 있다. 실제로, 실행 가능 코드의 모듈은 단일의 명령어, 또는 다수의 명령어일 수 있으며, 심지어 몇몇 상이한 코드 세그먼트에 걸쳐, 상이한 프로그램 사이에서, 그리고 몇몇 메모리 디바이스에 걸쳐 분산될 수도 있다. 유사하게, 동작 데이터는 본원에서 모듈 내에서 식별되고 예시될 수도 있으며, 임의의 적절한 형태로 구체화되고 임의의 적절한 타입의 데이터 구조 내에서 편제될 수도 있다. 동작 데이터는 단일의 데이터 세트로서 수집될 수도 있거나, 또는 상이한 저장 디바이스에 걸치는 것을 비롯하여 상이한 위치에 걸쳐 분산될 수도 있으며, 적어도 부분적으로는, 단지, 시스템 또는 네트워크 상의 전자 신호로서 존재할 수도 있다.
전술한 것은 단지 본 개시의 원리를 예시하는 것에 불과하다. 따라서, 기술 분야의 숙련된 자는, 본원에서 명시적으로 설명되거나 또는 도시되지 않지만, 본 개시의 원리를 구체화하고 그 취지 및 범위 내에 포함되는 다양한 배열을 고안할 수 있을 것이다는 것이 인식될 것이다. 더구나, 본원에서 열거되는 모든 예 및 조건부 언어는, 원칙적으로, 본 개시의 원리 및 기술을 진보시키는 데 본 발명자에 의해 기여되는 개념을 이해함에 있어서 독자를 돕기 위한 교육학적 목적만을 위한 것이도록 의도되며, 그러한 구체적으로 열거된 예 및 조건으로 제한되지 않는 것으로 해석되어야 한다. 또한, 본 개시의 원리, 양태, 및 실시형태뿐만 아니라, 그들의 특정한 예를 열거하는 본원에서의 모든 진술은, 그들의 구조적 및 기능적 등가물 둘 모두를 포함하도록 의도된다. 추가적으로, 그러한 등가물은 현재 공지된 등가물뿐만 아니라, 미래에 개발될 등가물 둘 모두를 포함한다는 것이 의도된다.

Claims (20)

  1. 컴퓨터 구현 방법으로서,
    RPA(robotic process automation; 로봇 프로세스 자동화) 작업 부하를 완료하기 위한 요청을 수신하는 단계;
    상기 RPA 작업 부하를 완료하기 위해 할당할 컴퓨팅 환경의 수를, 복수의 RPA 오토스케일링(autoscaling) 전략 중 선택된 전략에 기초하여 계산하는 단계; 및
    상기 RPA 작업 부하를 완료할 하나 이상의 RPA 로봇을 할당하기 위해 상기 계산된 수의 컴퓨팅 환경을 할당하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 컴퓨팅 환경은 가상 머신을 포함하는 것인, 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 복수의 RPA 오토스케일링 전략은 비용 대비 속도 우선 전략(speed over cost strategy), 밸런스가 맞춰진 전략, 및 속도 대비 비용 우선 전략(cost over speed strategy)을 포함하는 것인, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 할당할 컴퓨팅 환경의 수는 상기 RPA 작업 부하를 완료할 컴퓨팅 환경의 수, 풀(pool)에서 생성될 수 있는 컴퓨팅 환경의 최대 수, 라이선스에 의해 허용되는 RPA 로봇의 수에 기초하여 계산되는 것인, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 복수의 RPA 오토스케일링 전략은, 유저가 하나 이상의 제어 변수를 구성하는 맞춤형 전략(custom strategy)을 포함하는, 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 복수의 RPA 오토스케일링 전략은, 하나 이상의 제어 변수가 작업 부하 타입에 기초하여 자동적으로 조정되는 동적 전략을 포함하는 것인, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    유저로부터 상기 선택된 RPA 오토스케일링 전략의 선택을 수신하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    스케줄에 따라 상기 선택된 RPA 오토스케일링 전략을 자동적으로 선택하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 RPA 작업 부하의 소스에 기초하여 상기 선택된 RPA 오토스케일링 전략을 자동적으로 선택하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  10. 장치로서,
    컴퓨터 명령어를 저장하는 메모리; 및
    상기 컴퓨터 명령어를 실행하도록 구성되는 적어도 하나의 프로세서를 포함하되,
    상기 컴퓨터 명령어는 상기 적어도 하나의 프로세서로 하여금:
    RPA(로봇 프로세스 자동화) 작업 부하를 완료하기 위한 요청을 수신하는 동작;
    상기 RPA 작업 부하를 완료하기 위해 할당할 컴퓨팅 환경의 수를, 복수의 RPA 오토스케일링 전략 중 선택된 전략에 기초하여 계산하는 동작; 및
    상기 RPA 작업 부하를 완료할 하나 이상의 RPA 로봇을 할당하기 위해 상기 계산된 수의 컴퓨팅 환경을 할당하는 동작
    을 수행하게 하도록 구성되는 것인, 장치.
  11. 제10항에 있어서,
    상기 컴퓨팅 환경은 가상 머신을 포함하는 것인, 장치.
  12. 제10항에 있어서,
    상기 복수의 RPA 오토스케일링 전략은 비용 대비 속도 우선 전략, 밸런스가 맞춰진 전략, 및 속도 대비 비용 우선 전략을 포함하는 것인, 장치.
  13. 제10항에 있어서,
    상기 할당할 컴퓨팅 환경의 수는 상기 RPA 작업 부하를 완료할 컴퓨팅 환경의 수, 풀에서 생성될 수 있는 컴퓨팅 환경의 최대 수, 라이선스에 의해 허용되는 RPA 로봇의 수에 기초하여 계산되는 것인, 장치.
  14. 제10항에 있어서,
    상기 복수의 RPA 오토스케일링 전략은 유저가 하나 이상의 제어 변수를 구성하는 맞춤형 전략을 포함하는 것인, 장치.
  15. 컴퓨터 프로그램 명령어를 저장하는 컴퓨터 판독 가능 비일시적 저장 매체로서,
    상기 컴퓨터 프로그램 명령어는, 적어도 하나의 프로세서 상에서 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    RPA(로봇 프로세스 자동화) 작업 부하를 완료하기 위한 요청을 수신하는 것;
    상기 RPA 작업 부하를 완료하기 위해 할당할 컴퓨팅 환경의 수를, 복수의 RPA 오토스케일링 전략 중 선택된 전략에 기초하여 계산하는 것; 및
    상기 RPA 작업 부하를 완료할 하나 이상의 RPA 로봇을 할당하기 위해 상기 계산된 수의 컴퓨팅 환경을 할당하는 것
    을 포함하는 동작을 수행하게 하는 것인, 컴퓨터 프로그램 명령어를 저장하는 컴퓨터 판독 가능 비일시적 저장 매체.
  16. 제15항에 있어서,
    상기 컴퓨팅 환경은 가상 머신을 포함하는 것인, 컴퓨터 프로그램 명령어를 저장하는 컴퓨터 판독 가능 비일시적 저장 매체.
  17. 제15항에 있어서,
    상기 복수의 RPA 오토스케일링 전략은 하나 이상의 제어 변수가 작업 부하 타입에 기초하여 자동적으로 조정되는 동적 전략을 포함하는 것인, 컴퓨터 프로그램 명령어를 저장하는 컴퓨터 판독 가능 비일시적 저장 매체.
  18. 제15항에 있어서,
    상기 동작은:
    유저로부터 상기 선택된 RPA 오토스케일링 전략의 선택을 수신하는 것을 더 포함하는 것인, 컴퓨터 프로그램 명령어를 저장하는 컴퓨터 판독 가능 비일시적 저장 매체.
  19. 제15항에 있어서,
    상기 동작은:
    스케줄에 따라 상기 선택된 RPA 오토스케일링 전략을 자동적으로 선택하는 것을 더 포함하는 것인, 컴퓨터 프로그램 명령어를 저장하는 컴퓨터 판독 가능 비일시적 저장 매체.
  20. 제15항에 있어서,
    상기 동작은:
    상기 RPA 작업 부하의 소스에 기초하여 상기 선택된 RPA 오토스케일링 전략을 자동적으로 선택하는 것을 더 포함하는 것인, 컴퓨터 프로그램 명령어를 저장하는 컴퓨터 판독 가능 비일시적 저장 매체.
KR1020217040195A 2021-04-13 2021-10-29 로봇 프로세스 자동화를 위한 오토스케일링 전략 KR20230168611A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/228,741 US11971705B2 (en) 2021-04-13 2021-04-13 Autoscaling strategies for robotic process automation
US17/228,741 2021-04-13
PCT/US2021/072099 WO2022220891A1 (en) 2021-04-13 2021-10-29 Autoscaling strategies for robotic process automation

Publications (1)

Publication Number Publication Date
KR20230168611A true KR20230168611A (ko) 2023-12-15

Family

ID=83509197

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217040195A KR20230168611A (ko) 2021-04-13 2021-10-29 로봇 프로세스 자동화를 위한 오토스케일링 전략

Country Status (7)

Country Link
US (1) US11971705B2 (ko)
EP (1) EP4323869A1 (ko)
JP (1) JP2024517363A (ko)
KR (1) KR20230168611A (ko)
CN (1) CN115474439A (ko)
TW (1) TW202240480A (ko)
WO (1) WO2022220891A1 (ko)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7712100B2 (en) * 2004-09-14 2010-05-04 International Business Machines Corporation Determining a capacity of a grid environment to handle a required workload for a virtual grid job request
US9239996B2 (en) * 2010-08-24 2016-01-19 Solano Labs, Inc. Method and apparatus for clearing cloud compute demand
US8856797B1 (en) 2011-10-05 2014-10-07 Amazon Technologies, Inc. Reactive auto-scaling of capacity
US8825550B2 (en) 2012-08-23 2014-09-02 Amazon Technologies, Inc. Scaling a virtual machine instance
US9081622B2 (en) 2013-05-13 2015-07-14 Vmware, Inc. Automated scaling of applications in virtual data centers
US9386086B2 (en) * 2013-09-11 2016-07-05 Cisco Technology Inc. Dynamic scaling for multi-tiered distributed systems using payoff optimization of application classes
US11093146B2 (en) * 2017-01-12 2021-08-17 Pure Storage, Inc. Automatic load rebalancing of a write group
GB201702450D0 (en) 2017-02-15 2017-03-29 Blue Prism Ltd System for optimising distribution of processing an automated process
JP2018180591A (ja) 2017-04-03 2018-11-15 富士通株式会社 情報処理装置、情報処理システム、情報処理方法及び情報処理プログラム
US11126927B2 (en) 2017-11-24 2021-09-21 Amazon Technologies, Inc. Auto-scaling hosted machine learning models for production inference
US11354164B1 (en) * 2018-04-20 2022-06-07 Automation Anywhere, Inc. Robotic process automation system with quality of service based automation
US10860007B2 (en) 2018-07-17 2020-12-08 Accenture Global Solutions Limited Smart resource manager in unified automation platforms for robotic process automation
US11256547B2 (en) * 2019-05-31 2022-02-22 Altair Engineering, Inc. Efficient allocation of cloud computing resources to job requests
US11797197B1 (en) * 2019-07-18 2023-10-24 Pure Storage, Inc. Dynamic scaling of a virtual storage system
US11797569B2 (en) * 2019-09-13 2023-10-24 Pure Storage, Inc. Configurable data replication
CN111796908B (zh) 2020-06-18 2022-08-19 聚好看科技股份有限公司 一种资源自动弹性伸缩的系统、方法及云平台

Also Published As

Publication number Publication date
EP4323869A1 (en) 2024-02-21
US11971705B2 (en) 2024-04-30
TW202240480A (zh) 2022-10-16
CN115474439A (zh) 2022-12-13
US20220326693A1 (en) 2022-10-13
WO2022220891A1 (en) 2022-10-20
JP2024517363A (ja) 2024-04-22

Similar Documents

Publication Publication Date Title
US11334465B2 (en) Long running workflows for robotic process automation
KR102339757B1 (ko) 로봇 프로세스 자동화를 위한 로봇 스케줄링
KR20210045299A (ko) 로봇 프로세스 자동화를 사용한 문서 프로세싱을 위한 장기 실행 워크플로우
US11321124B2 (en) On-demand cloud robots for robotic process automation
KR20220088333A (ko) 로봇 프로세스 자동화(rpa) 로봇들의 동적 클라우드 배치
KR20230092657A (ko) 로봇 프로세스 자동화 관련 리소스의 사용량의 정량화
US20230032516A1 (en) Common platform for implementing rpa services on customer premises
US11971705B2 (en) Autoscaling strategies for robotic process automation
US20220191167A1 (en) Organizational modelling for routing rpa related services of an rpa cloud suite
US20230101948A1 (en) Generation of rpa platform design components for configuring rpa platforms
US20230102809A1 (en) Preconfigured robots for robotic process automation
US20220091908A1 (en) Filter instantiation for process graphs of rpa workflows
US20220066794A1 (en) Robotic process automation data connector
JP2023093354A (ja) ロボットをスケジューリングするためのクラウドトリガ