KR102339757B1 - 로봇 프로세스 자동화를 위한 로봇 스케줄링 - Google Patents

로봇 프로세스 자동화를 위한 로봇 스케줄링 Download PDF

Info

Publication number
KR102339757B1
KR102339757B1 KR1020217005044A KR20217005044A KR102339757B1 KR 102339757 B1 KR102339757 B1 KR 102339757B1 KR 1020217005044 A KR1020217005044 A KR 1020217005044A KR 20217005044 A KR20217005044 A KR 20217005044A KR 102339757 B1 KR102339757 B1 KR 102339757B1
Authority
KR
South Korea
Prior art keywords
group
robot
user
task
perform
Prior art date
Application number
KR1020217005044A
Other languages
English (en)
Other versions
KR20210064186A (ko
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 KR20210064186A publication Critical patent/KR20210064186A/ko
Application granted granted Critical
Publication of KR102339757B1 publication Critical patent/KR102339757B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • 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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1689Teleoperation
    • 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/41865Total 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 job scheduling, process planning, material flow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39167Resources scheduling and balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Health & Medical Sciences (AREA)
  • Automation & Control Theory (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Bioethics (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Manufacturing & Machinery (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

로봇 프로세스 자동화(RPA) 워크플로우를 수행하기 위한 시스템 및 방법이 제공된다. 사용자 그룹과 연관된 사용자에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시가 수신된다. 작업과 연관되고 사용자 그룹과 동일한 액세스 권한을 갖는 로봇 그룹으로부터 로봇이 식별된다. 로봇은 RPA 워크플로우를 수행하기 위한 작업을 실행하기 위해 컴퓨팅 디바이스로 디스패치된다.

Description

로봇 프로세스 자동화를 위한 로봇 스케줄링
관련 출원에 대한 상호 참조
본원은 2019년 11월 20일자로 출원된 미국 특허 출원 제16/689,193호의 혜택을 주장하며, 그의 개시는 전부 참조에 의해 본원에 원용된다.
기술 분야
본 발명은 일반적으로 로봇 프로세스 자동화에 관한 것이고, 보다 구체적으로 로봇 프로세스 자동화를 위한 로봇 스케줄링에 관한 것이다.
로봇 프로세스 자동화(RPA)는 소프트웨어 로봇을 사용하여 워크플로우와 프로세스를 자동화하는 프로세스 자동화의 한 형태이다. RPA는 반복적이거나 및/또는 노동 집약적인 업무를 자동화하기 위해 조직에서 구현되어, 비용을 줄이고 생산성을 높일 수 있다.
일반적으로 RPA는 조직에서 그 조직을 위한 다수의 로봇을 프로비저닝함으로써 구현된다. 로봇은 다양한 프로세스를 수행하기 위해 조직 내에서 다른 팀들에 의해 활용된다. 그러나, 다른 팀들에 동일한 로봇을 활용하면 한 팀의 데이터가 다른 팀에 액세스될 수 있으므로 프라이버시 문제로 이어질 수 있다. 종래에는, 이러한 프라이버시 문제를 해결하기 위해, 조직 내 각 팀에 전용 로봇이 프로비저닝되었다. 그러나, 이러한 종래 접근 방식에서는 이러한 로봇이, 프로세스를 수행하지 않더라도, 온(on) 상태에 있을 것을 요구한다. 이러한 종래 접근 방식은 로봇마다의 라이센싱 비용, 전력 요구 및 계산 리소스의 형태로 리소스 낭비를 초래한다.
하나 이상의 실시 형태에 따르면, 로봇 프로세스 자동화(RPA) 워크플로우를 수행하기 위한 시스템 및 방법이 제공된다. 사용자 그룹과 연관된 사용자에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시(indication)가 수신된다. 작업과 연관되고 사용자 그룹과 동일한 액세스 권한을 갖는 로봇 그룹으로부터 로봇이 식별된다. 로봇은 RPA 워크플로우를 수행하기 위한 작업을 실행하기 위해 컴퓨팅 디바이스로 디스패치(dispatch)된다.
일 실시 형태에서, 컴퓨팅 디바이스는 웨이크업(wake up)되어 작업을 실행하도록 로봇을 실행시키고 로봇이 작업을 완료한 후에 셧다운(shut down)된다.
일 실시 형태에서, 로봇은 작업과 연관된 로봇 그룹으로부터 식별된다. 작업의 작업 ID(identification)를 포함하는 요청을 송신하고 작업 ID와 연관된 로봇 그룹으로부터 로봇의 로봇 ID를 수신함으로써 로봇이 식별될 수도 있다.
일 실시 형태에서, 사용자 그룹과 연관된 사용자 그룹 디렉토리 및 로봇 그룹과 연관된 대응하는 로봇 그룹 디렉토리를 포함하는 액세스 권한 관리 시스템이 유지된다. 사용자 그룹 디렉토리는 사용자 그룹을 사용자 그룹과 연관된 액세스 권한과 연관시키고 로봇 그룹 디렉토리는 로봇 그룹을 사용자 그룹과 동일한 액세스 권한과 연관시킨다.
일 실시 형태에서, 사용자에 대해 RPA 워크플로우를 수행하기 위한 작업을 실행하라는 지시는 트리거링 이벤트에 응답하여 수신된다.
일 실시 형태에서, 사용자에 대해 RPA 워크플로우를 수행하라는 요청을 수신하고, 로봇 그룹을 사용자 그룹에 대응하는 것으로 식별하고, 로봇 그룹의 로봇에 의해 RPA 워크플로우를 수행하기 위한 작업을 스케줄링함으로써 작업이 스케줄링된다.
하나 이상의 실시 형태에 따르면, 로봇 프로세스 자동화(RPA)워크 플로우를 수행하기 위한 작업을 스케줄링하기 위한 시스템 및 방법이 제공된다. 사용자 그룹과 연관된 사용자에 대해 RPA 워크플로우를 수행하라는 요청이 수신된다. 사용자 그룹에 대응하고 사용자 그룹과 동일한 액세스 권한과 연관된 로봇 그룹이 식별된다. 로봇 그룹의 로봇에 대해 RPA 워크플로우를 수행하기 위한 작업이 스케줄링된다.
일 실시 형태에서, 사용자의 사용자 ID(identification)를 포함하는 요청을 송신하고 사용자 ID에 대응하는 로봇 그룹의 로봇 그룹 ID를 수신함으로써 로봇이 식별된다.
일 실시 형태에서, 사용자에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시를 수신하고, 로봇 그룹으로부터 로봇을 식별하고, RPA 워크플로우를 수행하기 위한 작업을 실행하기 위해 컴퓨팅 디바이스에 로봇을 디스패치함으로써 로봇이 RPA 워크플로우를 실행하기 위한 작업을 실행하기 위해 디스패치된다.
본 발명의 이러한 그리고 다른 이점은 다음의 상세한 설명 및 첨부 도면을 참조하여 당해 기술 분야에서 통상의 지식을 가진 자에게 명백해질 것이다.
도 1은 본 발명의 실시형태에 따른 로봇 프로세스 자동화 시스템을 예시하는 아키텍처 도(architectural diagram)이고;
도 2는 본 발명의 실시형태에 따른 배치된 로봇 프로세스 자동화 시스템의 예를 예시하는 아키텍처 도이고;
도 3은 본 발명의 실시형태에 따른 로봇 프로세스 자동화 시스템의 단순화된 배치 예를 예시하는 아키텍처 도이고;
도 4는 본 발명의 실시 형태에 따른 조직에서 RPA를 구현하기 위한 하이 레벨 프레임워크를 도시하고;
도 5는 본 발명의 실시 형태에 따른 하나 이상의 프로세스 또는 워크플로우를 수행하기 위해 로봇을 디스패치하기 위한 하이 레벨 시스템 아키텍처를 도시하고;
도 6은 본 발명의 실시형태에 따른 작업을 스케줄링하기 위한 방법의 플로우차트이고;
도 7은 본 발명의 실시형태에 따른 작업을 스케줄링하기 위한 시스템 아키텍처를 도시하고;
도 8은 본 발명의 실시형태에 따른 작업을 수행하기 위한 방법의 플로우차트이고;
도 9는 본 발명의 실시형태에 따른 작업을 수행하기 위한 시스템 아키텍처를 도시하고;
도 10은 본 발명의 실시형태에 따른 컴퓨터 시스템의 블록도이다.
로봇 프로세스 자동화(RPA)는 워크플로우 및 프로세스를 자동화하는 데 사용된다. 도 1은 하나 이상의 실시 형태에 따른 RPA 시스템(100)의 아키텍처 도이다. 도 1에 도시된 바와 같이, RPA 시스템(100)은 개발자가 워크플로우를 사용하여 자동화 프로세스를 설계할 수 있게 하는 디자이너(102)를 포함한다. 보다 구체적으로, 디자이너(102)는 워크플로우 및 워크플로우에서 활동을 수행하기 위한 로봇의 개발 및 배치를 용이하게 한다. 디자이너(102)는 제3자 애플리케이션, 관리 정보 기술(IT) 업무, 및 연락 센터 운영을 위한 영업 프로세스를 자동화하는 것뿐만 아니라 애플리케이션 통합을 위한 솔루션을 제공할 수 있다. 디자이너(102)의 실시형태의 하나의 상업적 예는 UiPath Studio™ 이다.
규칙 기반 프로세스의 자동화를 설계함에 있어서, 개발자는 본 명세서에서 "활동"으로 정의된 워크플로우에서 개발된 커스텀 단계 세트 간의 관계와 실행 순서를 제어한다. 각 활동에는 버튼 클릭, 파일 읽기, 로그 패널에 쓰기 등과 같은 액션이 포함될 수도 있다. 일부 실시 형태에서, 워크플로우는 중첩(nest)되거나 임베드(embed)될 수도 있다.
일부 워크플로우 유형에는 시퀀스, 플로우차트, 유한 상태 머신(FSM) 및/또는 전역 예외 핸들러(global exception handler)가 포함될 수도 있지만, 이에 한정되지는 않는다. 시퀀스는 선형 프로세스에 특히 적합하여, 워크플로우를 어지럽히지 않고서 한 활동에서 다른 활동으로의 흐름을 가능하게 할 수 있다. 플로우차트는 특히 더 복잡한 영업 로직에 특히 적합하여, 다중 분기 로직 연산자를 통해 보다 다양한 방식으로 결정의 통합 및 활동의 연결을 가능하게 할 수 있다. FSM은 특히 큰 워크플로우에 적합할 수 있다. FSM은 조건(즉, 천이) 또는 활동에 의해 트리거되는 유한 수의 상태를 그의 실행에 사용할 수 있다. 전역 예외 핸들러는 실행 오류에 직면할 때 워크플로우 행동을 결정하고 프로세스를 디버깅하는 데 특히 적합할 수 있다.
워크플로우가 디자이너(102)에서 개발되면, 영업 프로세스의 실행은 디자이너(102)에서 개발된 워크플로우를 실행하는 하나 이상의 로봇(106)을 통제하는 컨덕터(104)에 의해 통제된다. 컨덕터(104)의 실시형태의 하나의 상업적 예는 UiPath Orchestrator™이다. 컨덕터(220)은 RPA 환경에서 리소스의 생성, 모니터링 및 배치의 관리를 용이하게 한다. 일 예에서, 컨덕터(104)는 웹 애플리케이션이다. 컨덕터(104)는 또한 제3자 솔루션 및 애플리케이션과의 통합 지점으로서 기능할 수 있다.
컨덕터(104)는 중앙 지점으로부터 로봇(106)을 연결하고 실행함으로써 로봇(106)의 집단(fleet)을 관리할 수 있다. 컨덕터(104)는 프로비저닝(provisioning), 배치(deployment), 구성(configuration), 큐잉(queueing), 모니터링(monitoring), 로깅(logging) 및/또는 상호 연결성을 제공하는 것을 포함하지만 이에 한정되지 않는 다양한 능력을 가질 수 있다. 프로비저닝은 로봇(106)과 컨덕터(104)(예를 들어, 웹 애플리케이션)사이의 연결의 생성 및 유지를 포함할 수 있다. 배치는 실행을 위해 할당된 로봇(106)에 패키지 버전의 정확한 전달을 보장하는 것을 포함할 수 있다. 구성은 로봇 환경 및 프로세스 구성의 유지 및 전달을 포함할 수 있다. 큐잉은 큐 및 큐 항목의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터를 추적하고 사용자 승인(user permission)을 유지하는 것을 포함할 수 있다. 로깅은 데이터베이스(예:SQL 데이터베이스) 및/또는 다른 저장 메커니즘(예:큰 데이터세트를 저장하고 신속하게 쿼리할 수 있는 능력을 제공하는 ElasticSearch®)에 로그를 저장하고 인덱싱하는 것을 포함될 수 있다. 컨덕터(104)는 제3자 솔루션 및/또는 애플리케이션을 위한 중앙 통신 지점의 역할을 함으로써 상호 연결성을 제공할 수 있다.
로봇(106)은 디자이너(102)에 구축된 워크플로우를 실행하는 실행 에이전트이다. 로봇(106)의 몇몇 실시형태 중 하나의 상업적 예는 UiPath Robots™이다. 로봇(106)의 유형은 유인형 로봇(108) 및 무인형 로봇(110)을 포함할 수 있지만 이에 한정되지는 않는다. 유인형 로봇(108)은 사용자 또는 사용자 이벤트에 의해 트리거되고 동일한 컴퓨팅 시스템에서 인간 사용자와 함께 동작한다. 유인형 로봇(108)은 인간 사용자가 다양한 업무를 달성하도록 도울 수 있고, 인간 사용자 및/또는 사용자 이벤트에 의해 직접 트리거될 수 있다. 유인형 로봇의 경우, 컨덕터(104)는 중앙 프로세스 배치 및 로깅 매체를 제공할 수 있다. 특정 실시 형태에서, 유인형 로봇(108)은 오직 "로봇 트레이"로부터 또는 웹 애플리케이션에서 명령 프롬프트로부터 시작될 수 있다. 무인형 로봇(110)은 가상 환경에서 무인형 모드로 동작하고, 예를 들어 대량(high-volume), 백엔드 프로세스 등과 같은 많은 프로세스를 자동화하는 데 사용될 수 있다. 무인형 로봇(110)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐를 위한 지원을 제공하는 것을 담당할 수 있다. 유인형 및 무인형 로봇 모두는 메인 프레임, 웹 애플리케이션, VM, 엔터프라이즈 애플리케이션(예:SAP®, SalesForce®, Oracle® 등에서 제조된 애플리케이션), 및 컴퓨팅 시스템 애플리케이션(예:데스크톱 및 랩톱 애플리케이션, 모바일 디바이스 애플리케이션, 웨어러블 컴퓨터 애플리케이션 등)을 포함하지만, 이에 한정되지 않는 다양한 시스템 및 애플리케이션을 자동화할 수 있다.
일부 실시 형태에서, 로봇(106)은 기본적으로 Microsoft Windows® 서비스 제어 관리자(SCM) 관리형 서비스를 설치한다. 결과적으로, 이러한 로봇(106)은 로컬 시스템 계정에서 상호작용형 Windows® 세션을 열고, Windows® 서비스의 권한(rights)을 가질 수 있다. 일부 실시 형태에서, 로봇(106)은 주어진 로봇(106)이 설치된 사용자와 동일한 권한을 갖는 사용자 모드에서 설치될 수 있다.
일부 실시 형태에서 로봇(106)은 각각 특정 업무에 전용되는 여러 구성 요소로 분할된다. 일부 실시 형태에서 로봇 구성 요소는 SCM 관리형 로봇 서비스, 사용자 모드 로봇 서비스, 실행자(executor), 에이전트 및 명령줄을 포함하지만 이에 한정되지는 않는다. SCM 관리형 로봇 서비스는 Windows® 세션을 관리 및 모니터링하고 컨덕터(104)와 실행 호스트(즉, 로봇(106)이 실행되는 컴퓨팅 시스템)간의 프록시 역할을 한다. 이러한 서비스는 로봇(106)에 대한 크리덴셜(credential)로 신뢰되고 크리덴셜을 관리한다. 콘솔 애플리케이션은 로컬 시스템하에서 SCM에 의해 시작된다. 일부 실시 형태에서 사용자 모드 로봇 서비스는 Windows® 세션을 관리 및 모니터링하고 컨덕터(104)와 실행 호스트 사이의 프록시 역할을 한다. 사용자 모드 로봇 서비스는 로봇(106)에 대한 크리덴셜로 신뢰되고 크리덴셜을 관리할 수 있다. SCM 관리형 로봇 서비스가 설치되지 않은 경우 Windows® 애플리케이션이 자동적으로 시작될 수 있다. 실행자는 Windows® 세션에서 주어진 작업을 실행할 수 있으며(예를 들어, 워크플로우를 실행할 수 있으며) 모니터마다 DPI(dot per inch) 세팅을 알 수 있다. 에이전트는 시스템 트레이 윈도우에 이용 가능한 작업을 표시하는 WPF(Windows® Presentation Foundation) 애플리케이션일 수 있다. 에이전트는 서비스의 클라이언트일 수 있다. 에이전트는 작업 시작 또는 중지 및 세팅 변경을 요청할 수 있다. 명령줄은 서비스의 클라이언트이며 작업 시작을 요청하고 그의 출력을 기다릴 수 있는 콘솔 애플리케이션이다. 로봇 구성 요소를 분할하는 것은 개발자에 도움이 되고, 사용자를 지원하고, 컴퓨팅 시스템으로 하여금 각 로봇 구성 요소가 실행중인 것을 보다 쉽게 실행, 식별 및 추적할 수 있게 한다. 예를 들어, 실행자와 서비스에 대해 서로 다른 방화벽 규칙을 설정하는 것과 같이 로봇 구성 요소마다 특수한 행동이 구성될 수 있다. 추가 예로서, 실행자는 일부 실시 형태에서 모니터마다 DPI 세팅을 알 수 있으며, 결과적으로, 워크플로우가 생성된 컴퓨팅 시스템의 구성에 관계없이 임의의 DPI 에서 실행될 수 있다.
도 2는 하나 이상의 실시 형태에 따른 RPA 시스템(200)을 도시한다. RPA 시스템(200)은 도 1의 RPA 시스템(100)이거나 또는 이의 일부일 수 있다. "클라이언트 측", "서버 측" 또는 둘 모두는 본 발명의 범위를 벗어남이 없이 임의의 원하는 수의 컴퓨팅 시스템을 포함할 수 있다는 점에 유의해야 한다.
이 실시 형태에서 클라이언트 측에 도시된 바와 같이, 컴퓨팅 시스템(202)은 하나 이상의 실행자(204), 에이전트(206) 및 디자이너(208)를 포함한다. 다른 실시 형태에서, 디자이너(208)는 동일한 컴퓨팅 시스템(202)에서 실행되지 않을 수도 있다. (위에서 설명된 바와 같이 로봇 구성 요소일 수도 있는)실행자(204)는 프로세스를 실행하고, 일부 실시 형태에서 다수의 영업 프로세스가 동시에 실행될 수도 있다. 이 예에서, 에이전트(206)(예를 들어, Windows® 서비스)는 실행자(204)를 관리하기 위한 단일 연락 지점이다.
일부 실시 형태에서, 로봇은 머신 이름과 사용자 이름 사이의 연관을 나타낸다. 로봇은 동시에 다수의 실행자를 관리할 수도 있다. 동시에 실행되는 다수의 상호작용형 세션을 지원하는 컴퓨팅 시스템(예를 들어, Windows® 서버 2012)상에서, 다수의 로봇은 각각 별도의 Windows® 세션에서 고유 사용자 이름을 사용하여 동시에 실행할 수도 있다(예를 들어, HD(high density) 환경).
에이전트(206)는 또한 로봇의 상태를 전송(예를 들어, 로봇이 여전히 기능하고 있음을 나타내는 "하트비트" 메시지를 주기적으로 전송)하고 실행될 패키지의 필요한 버전을 다운로드하는 것을 담당한다. 에이전트(206)와 컨덕터(212)간의 통신은 일부 실시 형태에서 에이전트(206)에 의해 개시된다. 알림 시나리오의 예에서, 에이전트(206)는 로봇에 명령(예를 들어, 시작, 중지 등)을 전송하기 위해 컨덕터(212)에 의해 나중에 사용되는 WebSocket 채널을 열 수 있다.
이 실시 형태에서 서버 측에 도시된 바와 같이, 프리젠테이션 계층은 웹 애플리케이션(214), OData(Open Data Protocol) REST(Representative State Transfer) API(Application Programming Interface) 엔드포인트(216) 및 알림 및 모니터링 API(218)를 포함한다. 서버 측의 서비스 계층은 API 구현/영업 로직(220)을 포함한다. 서버 측의 지속 계층은 데이터베이스 서버(222) 및 인덱서 서버(224)를 포함한다. 컨덕터(212)는 웹 애플리케이션(214), OData REST API 엔드포인트(216), 알림 및 모니터링 API(218), 및 API 구현/영업 로직(220)을 포함한다.
다양한 실시 형태에서, 사용자가 컨덕터(212)의 인터페이스에서(예를 들어, 브라우저(210)를 통해) 수행하는 대부분의 액션은 다양한 API를 호출함으로써 수행된다. 이러한 액션에는 로봇상에서 작업 시작, 큐에서 데이터 추가/제거, 무인형으로 실행되는 작업 스케줄링 등이 포함되지만 이에 한정되지는 않는다. 웹 애플리케이션(214)은 서버 플랫폼의 시각적 계층이다. 이 실시 형태에서, 웹 애플리케이션(214)은 HTML(Hypertext Markup Language) 및 JS(JavaScript)를 사용한다. 그러나, 임의의 원하는 마크업 언어, 스크립트 언어 또는 임의의 다른 형식이 본 발명의 범위를 벗어남이 없이 사용될 수 있다. 사용자는 컨덕터(212)를 제어하기 위해 다양한 액션을 수행하기 위해 이 실시 형태에서 브라우저(210)를 통해 웹 애플리케이션(214)으로부터 웹 페이지와 상호작용한다. 예를 들어, 사용자는 로봇 그룹을 생성하고, 로봇에 패키지를 할당하고, 로봇마다 및/또는 프로세스마다 로그를 분석하고, 로봇을 시작 및 중지할 수 있다.
웹 애플리케이션(214)에 추가하여, 컨덕터(212)는 또한 OData REST API 엔드포인트(216)를 노출하는 서비스 계층을 포함한다(또는 다른 엔드포인트가 본 발명의 범위를 벗어남이 없이 구현될 수도 있다). REST API는 웹 애플리케이션(214) 및 에이전트(206) 모두에 의해 소비된다. 에이전트(206)는 이 예시적인 구성에서 클라이언트 컴퓨터상의 하나 이상의 로봇의 감독자이다.
이 실시 형태에서 REST API는 구성, 로깅, 모니터링 및 큐잉 기능성을 다룬다. 구성 REST 엔드포인트는 일부 실시 형태에서 애플리케이션 사용자, 승인, 로봇, 에셋(asset), 릴리스(release) 및 환경을 정의하고 구성하는 데 사용될 수 있다. 로깅 REST 엔드포인트는 예를 들어, 오류, 로봇이 보낸 명시적 메시지 및 다른 환경별 정보와 같은 서로 다른 정보를 로깅하는 데 유용할 수 있다. 배치 REST 엔드포인트는 작업 시작 명령이 컨덕터(212)에서 사용되는 경우 실행되어야 하는 패키지 버전을 쿼리하기 위해 로봇에 의해 사용될 수 있다. 큐잉 REST 엔드포인트는 큐에 데이터 추가, 큐로부터 트랜잭션 획득, 트랜잭션 상태 설정 등과 같은 큐 및 큐 항목 관리를 담당할 수 있다. 모니터링 REST 엔드포인트는 웹 애플리케이션(214) 및 에이전트(206)을 모니터링한다. 알림 및 모니터링 API(218)는 에이전트(206)를 등록하고, 구성 세팅을 에이전트(206)에 전달하고, 서버 및 에이전트(206)로부터 알림을 전송/수신하기 위해 사용되는 REST 엔드포인트일 수 있다. 알림 및 모니터링 API(218)는 또한 일부 실시 형태에서 WebSocket 통신을 사용할 수도 있다.
서버 측의 지속 계층은 이 예시적인 실시 형태에서 한 쌍의 서버-데이터베이스 서버(222)(예를 들어, SQL 서버) 및 인덱서 서버(224)를 포함한다. 이 실시 형태에서 데이터베이스 서버(222)는 로봇, 로봇 그룹, 연관 프로세스, 사용자, 역할, 스케줄 등의 구성을 저장한다. 이 정보는 일부 실시 형태에서 웹 애플리케이션(214)을 통해 관리된다. 데이터베이스 서버(222)는 또한 큐(queue) 및 큐 항목을 관리할 수도 있다. 일부 실시 형태에서, 데이터베이스 서버(222)는(인덱서 서버(224)에 추가하여 또는 대신에) 로봇에 의해 로깅된 메시지를 저장할 수 있다. 일부 실시 형태에서 선택적인 인덱서 서버(224)는 로봇에 의해 로깅된 정보를 저장하고 인덱싱한다. 특정 실시 형태에서, 인덱서 서버(224)는 구성 세팅을 통해 비활성화될 수 있다. 일부 실시 형태에서, 인덱서 서버(224)는 오픈 소스 프로젝트 전문 검색 엔진인 ElasticSearch® 을 사용한다. (예를 들어, 로그 메시지 또는 쓰기 줄과 같은 활동을 사용하여) 로봇에 의해 로깅된 메시지는 로깅 REST 엔드포인트(들)을 통해 인덱서 서버(224)로 전송될 수도 있으며, 여기서 그것들은 미래의 활용을 위해 인덱싱된다.
도 3은 하나 이상의 실시 형태에 따른 RPA 시스템(300)의 단순화된 배치 예를 예시하는 아키텍처 도이다. 일부 실시 형태에서, RPA 시스템(300)은 각각 도 1 및 2의 RPA 시스템(100, 200)일 수 있거나 또는 이를 포함할 수 있다. RPA 시스템(300)은 로봇을 실행시키는 다수의 클라이언트 컴퓨팅 시스템(302)을 포함한다. 컴퓨팅 시스템(302)은 그 위에서 실행되는 웹 애플리케이션을 통해 컨덕터 컴퓨팅 시스템(304)과 통신할 수 있다. 차례로, 컨덕터 컴퓨팅 시스템(304)은 데이터베이스 서버(306) 및 선택적인 인덱서 서버(308)와 통신한다. 도 2 및 3과 관련하여, 웹 애플리케이션이 이들 실시 형태에서 사용되지만, 임의의 적합한 클라이언트/서버 소프트웨어가 본 발명의 범위를 벗어남이 없이 사용될 수 있다는 점에 유의해야 한다. 예를 들어, 컨덕터는 클라이언트 컴퓨팅 시스템에서 웹 기반이 아닌 클라이언트 소프트웨어 애플리케이션과 통신하는 서버 측 애플리케이션을 실행할 수 있다.
일 실시 형태에서, RPA 시스템(300)은 예를 들어, 영업체, 기관, 협회 등과 같은 조직에서 또는 조직을 위해 구현될 수 있다. 조직은 다수의 그룹(또는 하위 그룹)을 포함할 수 있다. 예를 들어, 조직은 F&A(finance and accounting) 그룹과, F&A 그룹하 AP(accounts payable) 그룹을 포함할 수 있다. 종종, 기밀 및 민감한 정보를 보호하기 위해, 사용자가 속한 그룹에 따라 다양한 파일, 폴더, 서비스 등에 대한 사용자 액세스를 부여하거나 제한하는 액세스 권한이 정의된다. 따라서, 예를 들어, 액티브 디렉토리(AD) 또는 LDAP(lightweight directory access protocol)와 같은 액세스 권한 관리 시스템이 사용자가 속한 그룹에 따라 사용자에 대한 액세스 권한을 정의하기 위해 구현될 수 있다.
도 4는 하나 이상의 실시 형태에 따른, 조직에서 RPA를 구현하기 위한 하이 레벨 프레임워크(400)를 도시한다. 프레임워크(400)는 조직의 하나 이상의 사용자 및 로봇에 대한 파일, 폴더, 서비스 등에 대한 액세스 권한을 관리하기 위한 액티브 디렉토리(402)(또는 임의의 다른 적합한 액세스 권한 관리 시스템)을 포함한다.
액티브 디렉토리(402)는 사용자 커뮤니티 네임스페이스에 있는 사용자(예를 들어, 종업원) 및 제조 네임스페이스에 있는 로봇에 대한 액세스 권한을 관리한다. 도 4에 도시된 바와 같이, 액티브 디렉토리(402)는 사용자 커뮤니티 네임스페이스에서 F&A 사용자 그룹 디렉토리(404) 및 F&A 사용자 그룹 디렉토리(404)하에 AP 사용자 그룹 디렉토리(406)를 유지한다. 액티브 디렉토리(402)는 그룹별로 액세스 권한을 정의한다. 따라서, 조직의 AP 그룹에 속하는 사용자는 액티브 디렉토리(402)의 AP 사용자 그룹 디렉토리(406)와 연관되고 AP 사용자 그룹 디렉토리(406)와 연관된 액세스 권한이 할당된다. 액티브 디렉토리(402)는 각 사용자에 대한 프로파일을 유지한다. 사용자 프로필은 사용자 ID, 연관 그룹 및 기타 적합한 정보를 포함할 수 있다. 새로운 사용자가 조직의 AP 그룹에 가입(예를 들어, 고용)될 때, 새로운 사용자와 AP 사용자 그룹 디렉토리(406)를 연관시키는 새로운 사용자를 위한 프로파일을 생성하는 것에 의해 새로운 사용자가 액티브 디렉토리(402)의 AP 사용자 그룹 디렉토리(406)에 추가됨으로써, AP 사용자 그룹 디렉토리(406)와 연관된 새로운 사용자 액세스 권한을 할당한다.
때때로, 사용자는 하나 이상의 워크 플로우를 자동적으로 수행하기 위해 로봇을 배치하기를 원할 수도 있다. 로봇이 하나 이상의 워크 플로우를 자동으로 수행하기 위해, 로봇은 사용자와 동일한 액세스 권한을 필요로 할 수 있다. 따라서, 액티브 디렉토리(402)는 사용자 커뮤니티 네임스페이스내 사용자 그룹 디렉토리에 대응하는 제조 네임스페이스내 로봇 그룹 디렉토리를 유지한다. 각 로봇 그룹 디렉토리에는 그의 대응하는 사용자 그룹 디렉토리와 동일한 액세스 권한이 할당된다. 도 4에 도시된 바와 같이, 액티브 디렉토리(402)는 F&A 로봇 그룹 디렉토리(408)(R-F&A로 표기) 및 AP 로봇 그룹 디렉토리(410)(R-AP로 표기)를 R-F&A 로봇 그룹 디렉토리(408)하에 유지한다. R-F&A 그룹 디렉토리(408)는 F&A 사용자 그룹 디렉토리(404)와 동일한 액세스 권한을 갖고 R-AP 그룹 디렉토리(410)는 AP 사용자 그룹 디렉토리(406)와 동일한 액세스 권한을 갖는다. 액티브 디렉토리(402)는 각 로봇에 대한 프로파일을 유지한다. 로봇 프로파일은 로봇 ID, 연관 그룹 및 기타 적합한 정보를 포함할 수 있다.
로봇 팀 R-AP(412)는 AP 로봇 그룹과 연관된 로봇 팀을 나타내며 AP 사용자 그룹과 연관된 사용자로부터 프로세스를 실행하기 위해 할당된다. 로봇 팀 R-AP(412)는 로봇 풀(414) 및 작업 큐(418)를 포함한다. 로봇 풀(414)은 액티브 디렉토리(402)에서 R-AP 로봇 그룹 디렉토리(410)와 연관된 무인형 로봇(416-A, 416-B)을 포함한다. 작업 큐(418)는 AP 사용자 그룹 디렉토리(406)와 연관된 사용자에 대한 워크플로우를 나타낸다. 도 4에 도시된 바와 같이, 작업 큐(418)는 로봇 풀(414)에 있는 로봇에 의해 완료될 AP 사용자 그룹 디렉토리(406)와 연관된 AP 종업원 1에 대한 워크플로우(420-A, 420-B), AP 사용자 그룹 디렉토리(406)와 연관된 AP 종업원 2에 대한 워크플로우(420-C), 및 AP 사용자 그룹 디렉토리(406)와 연관된 AP 종업원 3에 대한 워크플로우(420-D, 420-E)를 포함한다. AP 그룹 디렉토리(406)와 연관된 사용자가 하나 이상의 워크플로우를 자동적으로 수행하기를 원할 때, 대응하는 로봇 그룹(즉, R-AP 로봇 그룹 디렉토리(410)) 및 따라서 사용자와 동일한 액세스 권한과 연관된 로봇(즉, 무인형 로봇(416-A, 416-B))이 디스패치된다.
도 5는 하나 이상의 실시 형태에 따른, 하나 이상의 워크플로우를 수행하기 위한 하이 레벨 시스템 아키텍처(500)를 도시한다. 시스템 아키텍처(500)는 스케줄러(502), 가상 데스크톱 이미지(VDI)팩토리(504) 및 오케스트레이터(506)를 포함한다. 일 실시 형태에서, 오케스트레이터(506)는 도 1의 컨덕터(104), 도 2의 컨덕터(212), 또는 도 3의 컨덕터(304)일 수 있다.
스케줄러(502)는 워크플로우가 로봇에 의해 언제 실행될지를 스케줄링한다. 시스템 아키텍처(500)에 도시된 바처럼, 스케줄러(502)는 로봇 그룹 1(508-A), 로봇 그룹 2(508-B), ... 로봇 그룹 N(508-N)을 스케줄링한다. 로봇 그룹 1(508-A)는 무인형 로봇 UR-1(510-A)에 의한 실행을 위해 스케줄링된 사용자 그룹 1(514-A)에 대한 워크플로우(512-A)를 나타낸다. 로봇 그룹 2(508-B)는 무인형 로봇 UR-2(510-B)에 의한 실행을 위해 스케줄링된 사용자 그룹 2(514-B)에 대한 워크플로우(512-B)를 나타낸다. 로봇 그룹 N(508-N)은 무인형 로봇 UR-N(510-N)에 의한 실행을 위해 스케줄링된 사용자 그룹 N(514-N)에 대한 워크플로우(512-N)를 나타내고, 여기서 N은 임의의 양(positive)의 정수이다.
VDI 팩토리(504)는 워크플로우(512-A, 512-B, … 512-N)를 각각 수행하기 위한 로봇(510-A, 510-B, … 510-N)의 실행을 관리하기 위한 가상 데스크톱이다. VDI 팩토리(504)는 예를 들어 워크플로우(512-A)중 워크플로우 1-1가 실행을 위해 트리거됨을 나타내는 메시지를 스케줄러(502)로부터 수신한다. VDI 팩토리(504)는 워크플로우 1-1을 실행하도록 할당된 로봇(510-A)을 식별하기 위한 메시지를 오케스트레이터(506)에 전송하고 오케스트레이터(506)는 로봇(510-A)과 연관된 로봇 ID를 VDI 팩토리(504)로 반환한다. VDI 팩토리(504)는 로봇(510-A)을 개시하고(예를 들어, 시작, 웨이크업, 파워 온, 로그인(sign into) 또는 그렇지 않으면 로봇(510-A)을 활성 및 준비 상태로 만들고) 로봇(510-A)은 워크플로우 1-1을 수행한다.
로봇(510-A)이 워크플로우 1-1를 완료하면, VDI 팩토리(504)는 로봇(510-A)을 셧다운한다. 일 실시 형태에서, VDI 팩토리(504)는 미리 결정된 유휴 기간 후에 로봇(510-A)을 셧다운하기 위해 미리 설정된 규칙에 기초하여 로봇(510-A)을 자동으로 셧다운한다. 다른 실시 형태에서, 오케스트레이터(506)는 로봇(510-A)이 워크플로우 1-1를 완료하고 이에 응답하여 VDI 팩토리(504)가 로봇(510-A)을 셧다운한다는 알림을 VDI 팩토리(504)에 전송한다.
시스템 아키텍처(500)는, 조직이 많은 수의 로봇을 활용할 수 있지만, 주어진 시간에 동시에 실행되는 로봇의 수를 줄여, 로봇 라이센싱 및 인프라(예:전력, 메모리, 컴퓨터 프로세싱, 대역폭 등)으로 인한 비용을 최소화한다는 점에서 유리하다.
시스템 아키텍처(500)가 본 발명의 실시 형태의 하이 레벨 개요를 제공하지만, 동작 중에, 본 발명의 실시 형태는 두 단계: 배치 자동화 단계와 스케줄 및 실행 자동화 단계로 구현될 수 있다. 배치 자동화 단계는 도 6 및 7과 관련하여 아래에서 설명될 것이다. 스케줄 및 실행 자동화 단계는 도 8 및 9와 관련하여 아래에서 설명될 것이다.
도 6은 하나 이상의 실시 형태에 따라 RPA 워크플로우를 수행하기 위한 작업을 스케줄링하기 위한 방법(600)을 도시한다. 도 6은 도 7의 시스템 아키텍처(700)를 참조하여 설명될 것이다. 시스템 아키텍처(700)는 배치 유틸리티(702), 액티브 디렉토리(704), 스케줄링 시스템(706), 및 오케스트레이터(708)를 포함한다. 일 실시 형태에서, 스케줄링 시스템(706)은 도 5의 스케줄러(502)일 수 있고, 오케스트레이터(708)는 도 1의 컨덕터(104), 도 2의 컨덕터(212), 도 3의 컨덕터(304), 또는 도 5의 오케스트레이터(506)일 수 있고, 액티브 디렉토리(704)는 도 2의 액티브 디렉토리(402)일 수 있다. 방법(600)의 단계는 임의의 적합한 컴퓨팅 디바이스에 의해 수행될 수 있다. 일 실시 형태에서, 방법(600)의 단계는 도 7의 배치 유틸리티(702)에 의해 수행된다
도 6의 단계(602)에서, 사용자에 대해 RPA 워크플로우를 수행하라는 요청이 수신된다. RPA 워크플로우를 수행하는 요청은 배치 유틸리티(702)에 의해 수신된 배치 자동화 요청(714)으로서 시스템 아키텍처(700)에 도시되어 있다. 배치 유틸리티(702)는 스케줄링 시스템(706)에 대한 작업의 배치 및 스케줄링을 관리하기 위한 임의의 적합한 컴퓨팅 디바이스일 수 있다. 일 실시 형태에서, 배치 유틸리티(702)는 컴퓨팅 디바이스에서 실행되는 로봇, 스크립트, 애플리케이션 네비게이터, 엔터프라이즈 커넥트, 오케스트레이션 시스템 등이다. 배치 자동화 요청(714)은 XAML/패키지(710) 및 사용자 프로파일(712)을 포함한다. XAML/패키지(710)는 사용자에 대해 수행될 워크플로우를 나타내고 사용자 프로파일(712)은 사용자의 사용자 ID를 포함하는 사용자의 프로파일이다. 일 실시 형태에서, 워크플로우의 XAML/패키지(710)는 도 1의 디자이너(102) 또는 도 2의 디자이너(208)를 사용하여(예를 들어, 사용자에 의해)생성될 수 있다.
일 실시 형태에서, 사용자는 액세스 권한과 연관된 사용자 그룹에 속한다. 액세스 권한은 액티브 디렉토리(704) 또는 기타 적절한 액세스 권한 관리 시스템(예를 들어, LDAP)에서 관리되고 유지될 수 있다.
단계(604)에서, 사용자 그룹에 대응하는 로봇 그룹이 식별된다. 시스템 아키텍처(700)는 로봇 그룹 ID 기능(716)을 보여준다. 로봇 그룹 ID 기능(716)은 배치 유틸리티(702)로부터 액티브 디렉토리(704)로의 사용자의 사용자 ID에 대응하는 로봇 그룹 ID에 대한 요청과, 액티브 디렉토리(704)로부터 배치 유틸리티(702)로 송신된 사용자의 사용자 ID에 대응하는 로봇 그룹 ID를 식별하는 응답을 나타낸다. 요청은 사용자의 사용자 ID를 포함한다. 사용자 ID에 대응하는 로봇 그룹이 존재하지 않는 경우, 액티브 디렉토리(704)는 사용자 ID에 대응하는 새로운 로봇 그룹을 생성하고 새로운 로봇 그룹의 로봇 그룹 ID로 배치 유틸리티(702)에 응답한다. 일 실시 형태에서, 식별된 로봇 그룹은 액티브 디렉토리(704)에서 대응하는 사용자 그룹과 동일한 액세스 권한과 연관된다.
단계(606)에서, RPA 워크플로우를 수행하기 위한 로봇 그룹과 연관된 작업이 생성된다. 시스템 아키텍처(700)는 작업 기능(718)을 도시한다. 작업 기능(718)은 배치 유틸리티(702)로부터 오케스트레이터(708)로 식별된 로봇 그룹에 의해 XAML/패키지(710)로 표현된 워크플로우를 수행하기 위한 작업을 생성하라는 요청 및 오케스트레이터(708)로부터 배치 유틸리티(702)로의 작업 ID 및 작업 이름을 식별하는 응답을 나타낸다. 요청은 XAML/패키지(710) 및 식별된 로봇 그룹 ID를 포함한다. 요청 수신시에, 오케스트레이터(708)는 워크플로우를 수행하기 위한 작업을 생성하고, 작업에 작업 이름 및 작업 ID를 할당하고, 작업을 식별된 로봇 그룹 ID와 연관시킨다.
단계(608)에서, RPA 워크플로우를 수행하기 위한 작업이 로봇 그룹의 로봇에 대해 스케줄링된다. 시스템 아키텍처(700)는 스케줄링 기능(720)을 도시한다. 스케줄링 기능(720)은 배치 유틸리티(702)로부터 스케줄링 시스템(706)으로 로봇 그룹의 로봇에 대해 작업을 스케줄링하라는 요청을 나타낸다. 요청은 사용자 ID, 로봇 그룹 ID, 작업 이름 및 작업 ID를 포함한다. 작업은 사용자에 의해 수신된 입력에 기초하여 스케줄링 시스템(706)에 의해 스케줄링된다. 사용자는 사용자 ID, 로봇 그룹 ID, 작업 이름 및 작업 ID로(아직 생성하지 않은 경우)계정을 생성할 수 있다. 계정에 로그인하면, 사용자가 작업을 스케줄링할 수 있다. 작업은 작업을 실행하기 위한 미래의 시간 및 날짜를 정의하는 사용자에 의해 스케줄링될 수 있거나, 또는 온디맨드 옵션이 있는 경우(예:"지금 실행" 버튼을 클릭하여)즉시 실행을 개시하기 위해 스케줄링될 수 있다. 스케줄링 시스템(706)은 예를 들어 노드 레드, BMC, iControl 등과 같은 임의의 적절한 스케줄링 시스템일 수 있다.
도 8은 하나 이상의 실시 형태에 따른 RPA 워크플로우를 수행하기 위한 방법(800)을 도시한다. 도 8은 도 9의 시스템 아키텍처(900)를 참조하여 설명될 것이다. 시스템 아키텍처(900)는 스케줄링 시스템(902), 실행 유틸리티(904), 컴퓨터(906), 및 오케스트레이터(908)를 포함한다. 일 실시 형태에서, 스케줄링 시스템(902)은 도 5의 스케줄러(502) 또는 도 7의 스케줄링 시스템(706)일 수 있고 오케스트레이터(908)는 도 1의 컨덕터(104), 도 2의 컨덕터(202), 도 3의 컨덕터(304), 또는 도 5의 오케스트레이터(506), 또는 도 7의 오케스트레이터(708)일 수 있다. 일부 실시 형태에서, 실행 유틸리티(904)는 VDI 팩터(예를 들어, 도 5의 VDI 팩토리(504))와 동일한 디바이스 또는 별개의 디바이스에서 실행될 수도 있다. 방법(800)의 단계는 임의의 적합한 컴퓨팅 디바이스에 의해 수행될 수 있다.
단계(802)에서, 사용자에 대해 RPA 워크플로우를 수행하기 위한 작업을 실행하라는 지시가 수신된다. 일 실시 형태에서, 작업은 사용자로부터 수신된 입력에 기초하여(예를 들어, 미래의 시간 및 날짜를 위해 또는 즉시 실행을 위해) 스케줄링 시스템(902)에서 이전에 스케줄링되었을 수도 있다. 예를 들어, 사용자는 스케줄링 시스템(902)에 로그인하고, 사용자의 작업을 보고, 작업에 대한 스케줄을 설정할 수 있다. 일 실시 형태에서, 작업은 예를 들어 도 6의 방법(600)의 단계에 따라 배치 자동화 단계 동안 스케줄링 시스템(902)에서 미리 스케줄링되었을 수도 있다. 워크플로우는 예를 들어, 도 1의 디자이너(102) 또는 도 2의 디자이너(208)를 사용하여(예를 들어, 사용자에 의해) 생성된 XAML/패키지 형태일 수 있다. 일 실시 형태에서, 사용자는 액세스 권한 관리 시스템(예를 들어, 도 4의 액티브 디렉토리(402) 또는 도 7의 액티브 디렉토리(704))에서 액세스 권한과 연관된 사용자 그룹에 속한다.
사용자에 대해 RPA 워크플로우를 수행하기 위한 작업을 실행하라는 지시는 스케줄링 시스템(902)으로부터 실행 유틸리티(904)로 송신되는 시스템 아키텍처(900)의 스케줄에 의해 트리거된 지시(912)일 수 있다. 일 실시 형태에서, 스케줄에 의해 트리거된 지시(912)는 트리거링 이벤트에 응답하여 실행 유틸리티(904)로 송신된다. 트리거링 이벤트는 시간(예를 들어, 특정 시간 또는 경과된 시간), 다른 작업의 완료, 사용자에 의한 수동 트리거링 또는 기타 적절한 트리거링 이벤트에 기초할 수 있다. 스케줄에 의해 트리거된 지시(912)는 트리거된 작업의 작업 ID를 포함한다. 실행 유틸리티(904)는 예를 들어 로봇, 스크립트, 애플리케이션, 오케스트레이션 시스템, 네비게이터, 인터프라이즈 커넥트, 제3자 시스템 등과 같은 작업의 성능을 관리하기 위한 임의의 적합한 컴퓨팅 디바이스일 수도 있다.
단계(804)에서, 로봇은 작업과 연관된 로봇 그룹으로부터 식별된다. 시스템 아키텍처(900)는 로봇 ID 기능(914)을 보여준다. 로봇 ID 기능(914)은 실행 유틸리티(904)로부터 오케스트레이터(908)로의 작업을 수행하기 위한 로봇의 식별자에 대한 요청 및 오케스트레이터(908)로부터 실행 유틸리티(904)로 로봇을 식별하는 응답을 나타낸다. 특히, 실행 유틸리티(904)는 작업의 작업 ID를 포함하는 요청을 송신한다. 오케스트레이터(908)는 작업 ID와 연관된 로봇 그룹을 식별하고 식별된 로봇 그룹에서 로봇의 로봇 ID로 실행 유틸리티(904)에 응답한다. 식별된 로봇 그룹이 하나보다 많은 로봇을 포함하는 경우, 식별된 로봇 그룹에서 다음으로 이용 가능한 로봇의 로봇 ID가 제공된다. 일 실시 형태에서, 식별된 로봇 그룹은 액세스 권한 관리 시스템에서 사용자 그룹과 동일한 액세스 권한과 연관된다. 일 실시 형태에서, 로봇이 로봇 그룹과 연관되지 않는 경우, 오케스트레이터(908)는 작업 ID에 기초하여 작업을 수행하는 데 필요한 액세스 권한을 결정하고 결정된 액세스 권한과 연관된 사용자 그룹에 로봇을 동적으로 연관시킨다. 이 실시 형태에서, 로봇이 작업을 완료할 때, 로봇은 다른 로봇 그룹과 연관된 다른 작업에 재할당될 수도 있다.
단계(806)에서, 로봇을 실행시키기 위한 컴퓨팅 디바이스(예를 들어, 컴퓨터(906))가 웨이크업된다. 실행 유틸리티(904)는 컴퓨터(906)를 웨이크업하기 위해 웨이크업 명령(916)을 컴퓨터(906)로 송신한다. 컴퓨터(906)는 식별된 로봇 ID와 연관된 로봇을 실행시키기 위한 임의의 적합한 컴퓨팅 디바이스일 수 있다. 일 실시 형태에서, 컴퓨터(906)는 클라우드 기반 또는 가상화 데스크톱 환경이다.
단계(808)에서, 로봇은 컴퓨팅 디바이스에서 RPA 워크플로우를 수행하기 위한 작업을 실행하기 위해 디스패치된다. 실행 유틸리티(904)는 작업 실행 명령(918)을 오케스트레이터(908)로 전송하여 웨이크업된 컴퓨터(906)를 실행 상태로 설정한다. 컴퓨터(906)는 작업을 실행하는 로봇을 실행시킨다.
단계(810)에서, 컴퓨팅 디바이스는 작업이 완료된 후 셧다운된다. 실행 유틸리티(904)는 컴퓨터(906)를 셧다운하라는 셧다운 명령(920)을 컴퓨터(906)로 송신한다. 컴퓨터(906)를 셧다운하는 것은 컴퓨터(906)를 파워 오프(powering off), 절전(sleeping), 일시 정지(suspending), 최대 절전(hibernating)시키는 것 등을 포함할 수 있다. 일 실시 형태에서, 셧다운 명령(920)은 오케스트레이터(908)로부터 실행 유틸리티(904)로 작업이 완료되었음을 실행 유틸리티(904)에 알리는 오케스트레이터 웹 후크 호출 알림에 응답하여 컴퓨터(906)로 전송된다. 다른 실시 형태에서, 셧다운 명령(920)은 로봇 또는 컴퓨터(906)가 유휴 상태인 미리 결정된 기간 후에 컴퓨터(906)로 전송된다. 다른 실시 형태에서, 컴퓨터(906)는 미리 결정된 유휴 기간 후에 스스로 셧다운된다. 다른 실시 형태에서, 컴퓨터(906)의 셧다운은 로봇 또는 다른 로봇이 다른 작업을 완료할 수 있도록(예를 들어, 미리 결정된 기간 동안) 지연될 수 있다.
유리하게는, 컴퓨터(906)를 웨이크업시켜 작업을 완료하도록 로봇을 실행시키고 작업이 완료되면 컴퓨터(906)를 셧다운하는 것은 주어진 시간에 동시에 실행하는 로봇의 수를 감소시켜, 비용을 최소화한다. 스케줄링 시스템(902)은 그룹 내의 충돌을 피하기 위해 작업이 스케줄링되고 큐잉될 수 있게 한다. 본 발명의 실시 형태는 최소의 운영 비용으로 무제한의 규모를 가질 수 있다.
도 10은 본 발명의 실시 형태에 따라 도 6 및 도 8을 참조하여 설명된 방법을 실행하도록 구성된 컴퓨팅 시스템(1000)을 예시하는 블록도이다. 일부 실시 형태에서, 컴퓨팅 시스템(1000)은 본 명세서에 도시 및/또는 설명된 컴퓨팅 시스템 중 하나 이상일 수 있다. 컴퓨팅 시스템(1000)은 정보를 통신하기 위한 버스(1002) 또는 다른 통신 메커니즘, 및 정보를 프로세싱하기 위해 버스(1002)에 연결된 프로세서(들)(1004)를 포함한다. 프로세서(들)(1004)은 CPU(Central Processing Unit), ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), GPU(Graphics Processing Unit), 이들의 다중 인스턴스, 및/또는 이들의 임의의 조합을 포함한 임의의 유형의 범용 또는 특정 목적 프로세서일 수 있다. 프로세서(들)(1004)은 또한 다중 프로세싱 코어를 가질 수도 있고, 코어 중 적어도 일부는 특정 기능을 수행하도록 구성될 수 있다. 일부 실시형태에서 다중 병렬 프로세싱이 사용될 수도 있다.
컴퓨팅 시스템(1000)은 프로세서(들)(1004)에 의해 실행될 정보 및 명령을 저장하기 위한 메모리(1006)를 더 포함한다. 메모리(1006)는 RAM(Random Access Memory), ROM(Read Only Memory), 플래시 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 스토리지 또는 기타 유형의 비일시적 컴퓨터 판독 가능 매체 또는 이들의 조합으로 구성될 수 있다. 비일시적 컴퓨터 판독 가능 매체는 프로세서(들)(1004)에 의해 액세스될 수 있는 임의의 이용 가능한 매체일 수 있고 휘발성 매체, 비휘발성 매체 또는 둘 다를 포함할 수 있다. 매체는 또한 분리성, 비분리성, 또는 양자 모두일 수도 있다.
추가적으로, 컴퓨팅 시스템(1000)은 현재 존재하거나 미래에 구현되는 통신 표준 및/또는 프로토콜에 따라 무선 및/또는 유선 연결을 통해 통신 네트워크에 대한 액세스를 제공하기 위해 트랜시버와 같은 통신 디바이스(1008)를 포함한다.
프로세서(들)(1004)는 사용자에게 정보를 표시하기에 적합한 디스플레이(1010)에 버스(1002)를 통해 추가로 연결된다. 디스플레이(1010)는 또한 터치 디스플레이 및/또는 임의의 적절한 햅틱 I/O 디바이스로서 구성될 수도 있다.
사용자가 컴퓨팅 시스템과 원활히 상호작용할 수 있게 키보드(1012) 및 컴퓨터 마우스, 터치패드 등과 같은 커서 제어 디바이스(1014)가 버스(1002)에 추가로 연결된다. 그러나, 특정 실시 형태에서, 물리적 키보드 및 마우스가 존재하지 않을 수도 있고, 사용자는 디스플레이(1010) 및/또는 터치패드(도시되지 않음)를 통해서만 디바이스와 상호작용할 수도 있다. 임의의 유형 및 조합의 입력 디바이스는 설계 선택의 문제로서 사용될 수도 있다. 특정 실시 형태에서, 물리적 입력 디바이스 및/또는 디스플레이는 존재하지 않는다. 예를 들어, 사용자는 컴퓨팅 시스템(1000)과 원격으로, 그와 통신하는 다른 컴퓨팅 시스템을 통해 상호 작용할 수 있거나, 또는 컴퓨팅 시스템(1000)은 자체적으로 동작할 수 있다.
메모리(1006)는 프로세서(들)(1004)에 의해 실행될 때 기능성을 제공하는 소프트웨어 모듈을 저장한다. 모듈은 컴퓨팅 시스템(1000)을 위한 운영 체제(1016) 및 본 명세서에 설명된 프로세스의 전부 또는 일부 또는 그 파생물을 수행하도록 구성된 하나 이상의 추가 기능 모듈(1018)을 포함한다.
당해 기술 분야에서 통상의 지식을 가진자라면 "시스템"이, 본 발명의 범위를 벗어남이 없이, 서버, 임베디드 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, PDA(personal digital assistant), 휴대폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 기타 적합한 컴퓨팅 디바이스, 또는 디바이스의 조합으로서 구체화될 수 있음을 인식할 것이다. 전술한 기능을 "시스템"에 의해 수행되는 것으로 제시하는 것은 어떤 식으로든 본 발명의 범위를 제한하려고 의도된 것이 아니라 본 발명의 많은 실시 형태의 하나의 예를 제공하려고 의도된 것이다. 실제로, 본 명세서에 개시된 방법, 시스템 및 장치는 클라우드 컴퓨팅 시스템을 포함하는 컴퓨팅 기술과 일치하는 로컬화되고 분산된 형태로 구현될 수 있다.
이 명세서에 설명된 시스템 특징 중 일부는 그의 구현 독립성을 보다 특히 강조하기 위해 모듈로 제시되었음에 유의해야 한다. 예를 들어, 모듈은 커스텀 VLSI(custom very large scale integration) 회로 또는 게이트 어레이, 기성품 반도체 이를테면 로직 칩, 트랜지스터, 또는 다른 개별 부품을 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한 필드 프로그램 가능 게이트 어레이, 프로그램 가능 어레이 로직, 프로그램 가능 로직 디바이스, 그래픽 프로세싱 유닛 등과 같은 프로그램 가능 하드웨어 디바이스에서 구현될 수도 있다. 모듈은 또한 다양한 유형의 프로세서에 의한 실행을 위해 소프트웨어에서 적어도 부분적으로 구현될 수 있다. 식별된 실행 코드 유닛은 예를 들어 오브젝트(object), 프로시저(procedure) 또는 기능(function)으로서 조직될 수 있는 컴퓨터 명령의 하나 이상의 물리적 또는 논리적 블록을 포함할 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행한 것(executable)은 물리적으로 함께 위치할 필요는 없지만, 논리적으로 함께 합해질 때, 모듈을 포함하고 모듈에 대해 언급된 목적을 달성하는 서로 다른 위치에 저장된 이질적인 명령을 포함할 수 있다. 또한, 모듈은, 본 발명의 범위를 벗어남이 없이, 예를 들어 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프 및/또는 데이터를 저장하는 데 사용되는 기타의 그러한 비일시적 컴퓨터 판독 가능 매체일 수 있는, 컴퓨터 판독 가능 매체에 저장될 수 있다. 실제로, 실행 가능한 코드의 모듈은 단일 명령 또는 많은 명령일 수 있고, 심지어, 여러 상이한 코드 세그먼트들 상에, 상이한 프로그램들 중에, 그리고 다수의 저장 매체들에 걸쳐 분산될 수도 있다. 유사하게, 운영 데이터(operational data)는 본 명세서에서 모듈 내에서 식별 및 예시될 수 있으며, 임의의 적절한 형태로 구체화되고 임의의 적절한 유형의 데이터 구조 내에 조직될 수도 있다. 운영 데이터는 단일 데이터 세트로 수집되거나, 또는 상이한 저장 디바이스상을 포함한 상이한 위치 상에 분산될 수 있으며, 적어도 부분적으로, 단지 시스템 또는 네트워크의 전자적인 신호로 존재할 수도 있다.
전술한 것은 단지 본 개시의 원리를 예시한다. 따라서, 당해 기술 분야에서 통상의 지식을 가진자라면, 본 명세서에서 명시적으로 설명되거나 도시되지는 않았지만, 본 개시의 원리를 구체화하고 본 개시의 사상 및 범위 내에 포함되는 다양한 방식들을 고안해낼 수 있을 것임이 이해될 것이다. 더욱이, 본 명세서에 언급된 모든 예 및 조건 문언(conditional language)은 주로 독자가 본 개시의 원리 및 본 발명자에 의해 기술을 발전시키는 데 기여한 개념을 이해하는 데에 도움이 되는 교육적 목적만을 위해 의도되며, 그러한 특정적으로 언급된 예 및 조건에 한정되지 않는 것으로 해석되어야 한다. 더욱이, 본 개시의 원리, 양태 및 실시 형태 그리고 그의 특정 예를 언급하는 본 명세서에서의 모든 진술은 그의 구조적 및 기능적 등가물 모두를 포함하도록 의도된다. 또한, 이러한 등가물에는 현재 알려진 등가물과 미래에 개발되는 등가물이 모두 포함되는 것으로 의도된다.

Claims (33)

  1. 로봇 프로세스 자동화(RPA; robotic process automation) 워크플로우를 수행하기 위한 컴퓨터 구현 방법에 있어서,
    사용자 - 상기 사용자는 액세스 권한과 연관된 사용자 그룹에 속함 - 에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시(indication)를 수신하는 단계;
    로봇 그룹 - 상기 로봇 그룹은 상기 사용자 그룹과 동일한 액세스 권한과 연관됨 - 으로부터 로봇을 식별하는 단계; 및
    상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 컴퓨팅 디바이스로 상기 로봇을 디스패치하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 로봇을 실행시키기 위해 상기 컴퓨팅 디바이스를 웨이크업하는 단계; 및
    상기 로봇이 상기 작업을 완료한 후 상기 컴퓨팅 디바이스를 셧다운하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    상기 로봇 그룹으로부터 로봇을 식별하는 단계는, 상기 작업과 연관된 상기 로봇 그룹으로부터 상기 로봇을 식별하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  4. 제3항에 있어서,
    상기 작업과 연관된 상기 로봇 그룹으로부터 상기 로봇을 식별하는 단계는,
    상기 작업의 작업 ID(identification)를 포함하는 요청을 송신하는 단계; 및
    상기 작업 ID와 연관된 상기 로봇 그룹으로부터 상기 로봇의 로봇 ID를 수신하는 단계
    를 포함하는 것인, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 사용자 그룹과 연관된 사용자 그룹 디렉토리 및 상기 로봇 그룹과 연관된 대응하는 로봇 그룹 디렉토리를 포함하는 액세스 권한 관리 시스템을 유지하는 단계를 더 포함하며, 상기 사용자 그룹 디렉토리는 상기 사용자 그룹을 상기 사용자 그룹과 연관된 상기 액세스 권한과 연관시키고 상기 로봇 그룹 디렉토리는 상기 로봇 그룹을 상기 사용자 그룹과 동일한 액세스 권한과 연관시키는 것인, 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 사용자에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시를 수신하는 단계는, 트리거링 이벤트에 응답하여 상기 사용자에 대해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 실행하라는 지시를 수신하는 단계를 포함하는 것인, 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    상기 사용자에 대해 상기 RPA 워크플로우를 수행하라는 요청을 수신하는 것;
    상기 로봇 그룹을 상기 사용자 그룹에 대응하는 것으로 식별하는 것; 및
    상기 로봇 그룹의 상기 로봇에 의해 상기 RPA 워크플로우를 수행하기 위한 상기 작업을 스케줄링하는 것
    에 의해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 스케줄링하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  8. 로봇 프로세스 자동화(RPA) 워크플로우를 수행하기 위한 시스템에 있어서,
    컴퓨터 프로그램 명령어를 저장하는 메모리; 및
    상기 컴퓨터 프로그램 명령어를 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 컴퓨터 프로그램 명령어는 상기 적어도 하나의 프로세서로 하여금 동작들을 수행하게 하도록 구성되며, 상기 동작들은,
    사용자 - 상기 사용자는 액세스 권한과 연관된 사용자 그룹에 속함 - 에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시를 수신하는 동작;
    로봇 그룹 - 상기 로봇 그룹은 상기 사용자 그룹과 동일한 액세스 권한과 연관됨 - 으로부터 로봇을 식별하는 동작; 및
    상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 컴퓨팅 디바이스로 상기 로봇을 디스패치하는 동작
    을 포함하는 것인, 시스템.
  9. 제8항에 있어서,
    상기 동작들은,
    상기 로봇을 실행시키기 위해 상기 컴퓨팅 디바이스를 웨이크업하는 동작; 및
    상기 로봇이 상기 작업을 완료한 후 상기 컴퓨팅 디바이스를 셧다운하는 동작
    을 더 포함하는 것인, 시스템.
  10. 제8항에 있어서,
    상기 로봇 그룹으로부터 로봇을 식별하는 동작은, 상기 작업과 연관된 상기 로봇 그룹으로부터 상기 로봇을 식별하는 동작을 포함하는 것인, 시스템.
  11. 제10항에 있어서,
    상기 작업과 연관된 상기 로봇 그룹으로부터 상기 로봇을 식별하는 동작은,
    상기 작업의 작업 ID(identification)를 포함하는 요청을 송신하는 동작; 및
    상기 작업 ID와 연관된 상기 로봇 그룹으로부터 상기 로봇의 로봇 ID를 수신하는 동작
    을 포함하는 것인, 시스템.
  12. 제8항에 있어서,
    상기 동작들은,
    상기 사용자 그룹과 연관된 사용자 그룹 디렉토리 및 상기 로봇 그룹과 연관된 대응하는 로봇 그룹 디렉토리를 포함하는 액세스 권한 관리 시스템을 유지하는 동작을 더 포함하고, 상기 사용자 그룹 디렉토리는 상기 사용자 그룹을 상기 사용자 그룹과 연관된 상기 액세스 권한과 연관시키고 상기 로봇 그룹 디렉토리는 상기 로봇 그룹을 상기 사용자 그룹과 동일한 액세스 권한과 연관시키는 것인, 시스템.
  13. 제8항에 있어서,
    상기 사용자에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시를 수신하는 동작은,
    트리거링 이벤트에 응답하여 상기 사용자에 대해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 실행하라는 지시를 수신하는 동작을 포함하는 것인, 시스템.
  14. 제8항에 있어서,
    상기 동작들은,
    상기 사용자에 대해 상기 RPA 워크플로우를 수행하라는 요청을 수신하는 것;
    상기 로봇 그룹을 상기 사용자 그룹에 대응하는 것으로 식별하는 것; 및
    상기 로봇 그룹의 상기 로봇에 의해 상기 RPA 워크플로우를 수행하기 위한 상기 작업을 스케줄링하는 것
    에 의해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 스케줄링하는 동작을 더 포함하는 것인, 시스템.
  15. 로봇 프로세스 자동화(RPA) 워크플로우를 수행하기 위한 컴퓨터 프로그램이 구현되어 있는 비일시적 컴퓨터 판독가능 매체에 있어서,
    상기 프로그램은 적어도 하나의 프로세서로 하여금 동작들을 수행하게 하도록 구성되며, 상기 동작들은,
    사용자 - 상기 사용자는 액세스 권한과 연관된 사용자 그룹에 속함 - 에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시를 수신하는 동작;
    로봇 그룹 - 상기 로봇 그룹은 상기 사용자 그룹과 동일한 액세스 권한과 연관됨 - 으로부터 로봇을 식별하는 동작; 및
    상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 컴퓨팅 디바이스로 상기 로봇을 디스패치하는 동작
    을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  16. 제15항에 있어서,
    상기 동작들은,
    상기 로봇을 실행시키기 위해 상기 컴퓨팅 디바이스를 웨이크업하는 동작; 및
    상기 로봇이 상기 작업을 완료한 후 상기 컴퓨팅 디바이스를 셧다운하는 동작
    을 더 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  17. 제15항에 있어서,
    상기 로봇 그룹으로부터 로봇을 식별하는 동작은, 상기 작업과 연관된 상기 로봇 그룹으로부터 상기 로봇을 식별하는 동작을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  18. 제17항에 있어서,
    상기 작업과 연관된 상기 로봇 그룹으로부터 상기 로봇을 식별하는 동작은,
    상기 작업의 작업 ID(identification)를 포함하는 요청을 송신하는 동작; 및
    상기 작업 ID와 연관된 상기 로봇 그룹으로부터 상기 로봇의 로봇 ID를 수신하는 동작
    을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  19. 제15항에 있어서,
    상기 동작들은,
    상기 사용자 그룹과 연관된 사용자 그룹 디렉토리 및 상기 로봇 그룹과 연관된 대응하는 로봇 그룹 디렉토리를 포함하는 액세스 권한 관리 시스템을 유지하는 동작을 더 포함하며, 상기 사용자 그룹 디렉토리는 상기 사용자 그룹을 상기 사용자 그룹과 연관된 상기 액세스 권한과 연관시키고 상기 로봇 그룹 디렉토리는 상기 로봇 그룹을 상기 사용자 그룹과 동일한 액세스 권한과 연관시키는 것인, 비일시적 컴퓨터 판독가능 매체.
  20. 제15항에 있어서,
    상기 사용자에 대해 RPA 워크플로우를 수행하기 위해 스케줄링된 작업을 실행하라는 지시를 수신하는 동작은,
    트리거링 이벤트에 응답하여 상기 사용자에 대해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 실행하라는 지시를 수신하는 동작을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  21. 제15항에 있어서,
    상기 동작들은,
    상기 사용자에 대해 상기 RPA 워크플로우를 수행하라는 요청을 수신하는 것;
    상기 로봇 그룹을 상기 사용자 그룹에 대응하는 것으로 식별하는 것; 및
    상기 로봇 그룹의 상기 로봇에 의해 상기 RPA 워크플로우를 수행하기 위한 상기 작업을 스케줄링하는 것
    에 의해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 스케줄링하는 동작을 더 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  22. 로봇 프로세스 자동화(RPA) 워크플로우를 수행하기 위한 작업을 스케줄링하기 위한 컴퓨터 구현 방법에 있어서,
    사용자 - 상기 사용자는 액세스 권한과 연관된 사용자 그룹에 속함 - 에 대해 RPA 워크플로우를 수행하라는 요청을 수신하는 단계;
    상기 사용자 그룹에 대응하는 로봇 그룹 - 상기 로봇 그룹은 상기 사용자 그룹과 동일한 액세스 권한과 연관됨 - 을 식별하는 단계; 및
    상기 로봇 그룹의 로봇에 대해 상기 RPA 워크플로우를 수행하기 위한 작업을 스케줄링하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  23. 제22항에 있어서,
    상기 사용자 그룹과 연관된 사용자 그룹 디렉토리 및 상기 로봇 그룹과 연관된 대응하는 로봇 그룹 디렉토리를 포함하는 액세스 권한 관리 시스템을 유지하는 단계를 더 포함하며, 상기 사용자 그룹 디렉토리는 상기 사용자 그룹을 상기 사용자 그룹과 연관된 상기 액세스 권한과 연관시키고 상기 로봇 그룹 디렉토리는 상기 로봇 그룹을 상기 사용자 그룹과 동일한 액세스 권한과 연관시키는 것인, 컴퓨터 구현 방법.
  24. 제23항에 있어서,
    상기 사용자 그룹에 대응하는 로봇 그룹을 식별하는 단계는,
    상기 사용자의 사용자 ID(identification)를 포함하는 요청을 상기 액세스 권한 관리 시스템으로 송신하는 단계; 및
    상기 액세스 권한 관리 시스템으로부터 상기 사용자 ID에 대응하는 상기 로봇 그룹의 로봇 그룹 ID를 수신하는 단계
    를 포함하는 것인, 컴퓨터 구현 방법.
  25. 제22항에 있어서,
    상기 사용자에 대해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 실행하라는 지시를 수신하는 것;
    상기 로봇 그룹으로부터 상기 로봇을 식별하는 것; 및
    상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 컴퓨팅 디바이스로 상기 로봇을 디스패치하는 것
    에 의해 상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 상기 로봇을 디스패치하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  26. 로봇 프로세스 자동화(RPA) 워크플로우를 수행하기 위한 작업을 스케줄링하기 위한 시스템에 있어서,
    컴퓨터 프로그램 명령어를 저장하는 메모리; 및
    상기 컴퓨터 프로그램 명령어를 실행하도록 구성된 적어도 하나의 프로세서
    를 포함하고,
    상기 컴퓨터 프로그램 명령어는 상기 적어도 하나의 프로세서로 하여금 동작들을 수행하게 하도록 구성되며, 상기 동작들은,
    사용자 - 상기 사용자는 액세스 권한과 연관된 사용자 그룹에 속함 - 에 대해 RPA 워크플로우를 수행하라는 요청을 수신하는 동작;
    상기 사용자 그룹에 대응하는 로봇 그룹 - 상기 로봇 그룹은 상기 사용자 그룹과 동일한 액세스 권한과 연관됨 - 을 식별하는 동작; 및
    상기 로봇 그룹의 로봇에 대해 상기 RPA 워크플로우를 수행하기 위한 작업을 스케줄링하는 동작
    을 포함하는 것인, 시스템.
  27. 제26항에 있어서,
    상기 동작들은,
    상기 사용자 그룹과 연관된 사용자 그룹 디렉토리 및 상기 로봇 그룹과 연관된 대응하는 로봇 그룹 디렉토리를 포함하는 액세스 권한 관리 시스템을 유지하는 동작을 더 포함하며, 상기 사용자 그룹 디렉토리는 상기 사용자 그룹을 상기 사용자 그룹과 연관된 상기 액세스 권한과 연관시키고 상기 로봇 그룹 디렉토리는 상기 로봇 그룹을 상기 사용자 그룹과 동일한 액세스 권한과 연관시키는 것인, 시스템.
  28. 제27항에 있어서,
    상기 사용자 그룹에 대응하는 로봇 그룹을 식별하는 동작은,
    상기 사용자의 사용자 ID(identification)를 포함하는 요청을 상기 액세스 권한 관리 시스템으로 송신하는 동작; 및
    상기 액세스 권한 관리 시스템으로부터 상기 사용자 ID에 대응하는 상기 로봇 그룹의 로봇 그룹 ID를 수신하는 동작
    을 포함하는 것인, 시스템.
  29. 제26항에 있어서,
    상기 동작들은,
    상기 사용자에 대해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 실행하라는 지시를 수신하는 것;
    상기 로봇 그룹으로부터 상기 로봇을 식별하는 것; 및
    상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 컴퓨팅 디바이스로 상기 로봇을 디스패치하는 것
    에 의해 상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 상기 로봇을 디스패치하는 동작을 더 포함하는 것인, 시스템.
  30. 로봇 프로세스 자동화(RPA) 워크플로우를 수행하기 위한 작업을 스케줄링하기 위한 컴퓨터 프로그램이 구현되어 있는 비일시적 컴퓨터 판독가능 매체에 있어서,
    상기 프로그램은 적어도 하나의 프로세서로 하여금 동작들을 수행하게 하도록 구성되며, 상기 동작들은,
    사용자 - 상기 사용자는 액세스 권한과 연관된 사용자 그룹에 속함 - 에 대해 RPA 워크플로우를 수행하라는 요청을 수신하는 동작;
    상기 사용자 그룹에 대응하는 로봇 그룹 - 상기 로봇 그룹은 상기 사용자 그룹과 동일한 액세스 권한과 연관됨 - 을 식별하는 동작; 및
    상기 로봇 그룹의 로봇에 대해 상기 RPA 워크플로우를 수행하기 위한 작업을 스케줄링하는 동작
    을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  31. 제30항에 있어서,
    상기 동작들은,
    상기 사용자 그룹과 연관된 사용자 그룹 디렉토리 및 상기 로봇 그룹과 연관된 대응하는 로봇 그룹 디렉토리를 포함하는 액세스 권한 관리 시스템을 유지하는 동작을 더 포함하며, 상기 사용자 그룹 디렉토리는 상기 사용자 그룹을 상기 사용자 그룹과 연관된 상기 액세스 권한과 연관시키고 상기 로봇 그룹 디렉토리는 상기 로봇 그룹을 상기 사용자 그룹과 동일한 액세스 권한과 연관시키는 것인, 비일시적 컴퓨터 판독가능 매체.
  32. 제31항에 있어서,
    상기 사용자 그룹에 대응하는 로봇 그룹을 식별하는 동작은,
    상기 사용자의 사용자 ID(identification)를 포함하는 요청을 상기 액세스 권한 관리 시스템으로 송신하는 동작; 및
    상기 액세스 권한 관리 시스템으로부터 상기 사용자 ID에 대응하는 상기 로봇 그룹의 로봇 그룹 ID를 수신하는 동작
    을 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
  33. 제30항에 있어서,
    상기 동작들은,
    상기 사용자에 대해 상기 RPA 워크플로우를 수행하기 위해 스케줄링된 상기 작업을 실행하라는 지시를 수신하는 것;
    상기 로봇 그룹으로부터 상기 로봇을 식별하는 것; 및
    상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 컴퓨팅 디바이스로 상기 로봇을 디스패치하는 것
    에 의해 상기 RPA 워크플로우를 수행하기 위한 상기 작업을 실행하기 위해 상기 로봇을 디스패치하는 동작을 더 포함하는 것인, 비일시적 컴퓨터 판독가능 매체.
KR1020217005044A 2019-11-20 2020-09-03 로봇 프로세스 자동화를 위한 로봇 스케줄링 KR102339757B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/689,193 US11110601B2 (en) 2019-11-20 2019-11-20 Scheduling robots for robotic process automation
US16/689,193 2019-11-20
PCT/US2020/049281 WO2021101616A1 (en) 2019-11-20 2020-09-03 Scheduling robots for robotic process automation

Publications (2)

Publication Number Publication Date
KR20210064186A KR20210064186A (ko) 2021-06-02
KR102339757B1 true KR102339757B1 (ko) 2021-12-14

Family

ID=75908481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217005044A KR102339757B1 (ko) 2019-11-20 2020-09-03 로봇 프로세스 자동화를 위한 로봇 스케줄링

Country Status (6)

Country Link
US (1) US11110601B2 (ko)
EP (1) EP3844577A4 (ko)
JP (1) JP7112809B2 (ko)
KR (1) KR102339757B1 (ko)
CN (1) CN113228020B (ko)
WO (1) WO2021101616A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11232454B2 (en) 2019-11-14 2022-01-25 Bank Of America Corporation Authentication framework for real-time document processing
US11233861B2 (en) 2020-02-18 2022-01-25 UiPath, Inc. Inter-session automation for robotic process automation (RPA) robots
US10654166B1 (en) 2020-02-18 2020-05-19 UiPath, Inc. Automation windows for robotic process automation
US11392477B2 (en) 2020-07-09 2022-07-19 UiPath, Inc. Automation of a process running in a first session via a robotic process automation robot running in a second session
US20220066794A1 (en) * 2020-08-28 2022-03-03 UiPath, Inc. Robotic process automation data connector
KR102339028B1 (ko) * 2021-06-17 2021-12-15 농업협동조합중앙회 로봇 프로세스 자동화 장치 및 그 동작 방법
US11507059B1 (en) * 2021-10-11 2022-11-22 UiPath, Inc. System and computer-implemented method for seamless consumption of automations
CN114367995A (zh) * 2022-02-17 2022-04-19 来也科技(北京)有限公司 基于rpa和ai的高密度无人值守机器人控制方法
US20240103492A1 (en) * 2022-09-27 2024-03-28 International Business Machines Corporation Automation powered endpoint legacy duplicity

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249801A (ja) * 2006-03-17 2007-09-27 Nippon Telegr & Teleph Corp <Ntt> ロボット連携システム

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001005727A (ja) 1999-06-22 2001-01-12 Kyocera Communication Systems Co Ltd アクセス管理装置
JP3963692B2 (ja) 2001-10-15 2007-08-22 富士通株式会社 複数の情報処理装置の電源制御方法、その情報処理装置、及びプログラム
US7139798B2 (en) 2002-05-17 2006-11-21 Groove Networks, Inc. Method and apparatus for connecting a secure peer-to-peer collaboration system to an external system
US20100064357A1 (en) 2008-09-09 2010-03-11 Kerstin Baird Business Processing System Combining Human Workflow, Distributed Events, And Automated Processes
US9754231B2 (en) 2009-03-11 2017-09-05 International Business Machines Corporation Human task integration into BPEL process via presence driven delivery
US8423186B2 (en) * 2009-06-30 2013-04-16 Intuitive Surgical Operations, Inc. Ratcheting for master alignment of a teleoperated minimally-invasive surgical instrument
US9122764B2 (en) 2010-03-24 2015-09-01 Fisher-Rosemount Systems, Inc. Methods and apparatus to access process data stored on a server
US8375389B2 (en) 2010-10-20 2013-02-12 Microsoft Corporation Ordered scheduling of suspended processes based on resumption events
EP3185124A1 (en) 2015-12-22 2017-06-28 Tata Consultancy Services Limited System and method for monitoring, deploying, and tracking autonomous software robots
US10372508B2 (en) 2016-03-17 2019-08-06 Wipro Limited Method and system for dynamically integrating bots
US11295228B2 (en) 2016-03-21 2022-04-05 Wipro Limited Methods for creating automated dynamic workflows of interoperable bots and devices thereof
EP3437038A4 (en) * 2016-07-20 2019-08-28 Hewlett-Packard Development Company, L.P. CREATING DIGITAL WORKERS IN ORGANIZATIONS
US11157855B2 (en) 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
US10402163B2 (en) 2017-02-14 2019-09-03 Accenture Global Solutions Limited Intelligent data extraction
US10489502B2 (en) 2017-06-30 2019-11-26 Accenture Global Solutions Limited Document processing
US11074528B2 (en) 2017-08-31 2021-07-27 Accenture Global Solutions Limited Robotic operations control system for a blended workforce
US20190155225A1 (en) 2017-11-21 2019-05-23 Accenture Global Solutions Limited Bot management framework for robotic process automation systems
US10810322B2 (en) * 2017-12-05 2020-10-20 Microsoft Technology Licensing, Llc Sharing user information with and between bots
JP7047504B2 (ja) 2018-03-15 2022-04-05 株式会社リコー ジョブシステム、ジョブ実行方法、情報処理装置、プログラム
WO2019195121A1 (en) 2018-04-03 2019-10-10 Walmart Apollo, Llc Digital worker management system
US11878421B2 (en) * 2018-04-23 2024-01-23 Purdue Research Foundation Robot navigation and robot-IoT interactive task planning using augmented reality
CN112313042B (zh) * 2018-06-29 2024-05-10 国立研究开发法人科学技术振兴机构 远程操作系统
CN109118347B (zh) * 2018-07-20 2022-12-27 苏宁易购集团股份有限公司 一种自动化协作方法及系统
CN109684054B (zh) 2018-11-07 2021-04-16 北京慧流科技有限公司 信息处理方法及装置、电子设备及存储器
CN109598427B (zh) * 2018-11-23 2022-03-01 泰康保险集团股份有限公司 机器人的管理方法、装置及电子设备
US11419686B2 (en) * 2019-09-13 2022-08-23 Verb Surgical Inc. Trajectory representation in design and testing of a surgical robot
US11200539B2 (en) * 2019-10-15 2021-12-14 UiPath, Inc. Automatic completion of robotic process automation workflows using machine learning
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
US11593709B2 (en) * 2019-10-15 2023-02-28 UiPath, Inc. Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows
US10860905B1 (en) * 2019-10-16 2020-12-08 UiPath, Inc. Long running workflows for document processing using robotic process automation
US11334465B2 (en) * 2019-10-16 2022-05-17 UiPath, Inc. Long running workflows for robotic process automation
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
US20210122045A1 (en) * 2019-10-24 2021-04-29 Nvidia Corporation In-hand object pose tracking
MX2022004126A (es) * 2019-10-25 2022-06-24 Dexterity Inc Maquina de simulacion de un sistema robotico.

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007249801A (ja) * 2006-03-17 2007-09-27 Nippon Telegr & Teleph Corp <Ntt> ロボット連携システム

Also Published As

Publication number Publication date
US20210146537A1 (en) 2021-05-20
WO2021101616A1 (en) 2021-05-27
EP3844577A1 (en) 2021-07-07
JP7112809B2 (ja) 2022-08-04
CN113228020B (zh) 2022-12-16
US11110601B2 (en) 2021-09-07
JP2022511240A (ja) 2022-01-31
EP3844577A4 (en) 2022-03-23
CN113228020A (zh) 2021-08-06
KR20210064186A (ko) 2021-06-02

Similar Documents

Publication Publication Date Title
KR102339757B1 (ko) 로봇 프로세스 자동화를 위한 로봇 스케줄링
US11334465B2 (en) Long running workflows for robotic process automation
US11288557B2 (en) Long running workflows for document processing using robotic process automation
US11803418B2 (en) On-demand cloud robots for robotic process automation
US11442837B2 (en) Monitoring long running workflows for robotic process automation
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
US20220100539A1 (en) On-demand cloud robots for robotic process automation
US11966566B2 (en) Mapping interactive UI elements to RPA object repositories for RPA development
US20220091908A1 (en) Filter instantiation for process graphs of rpa workflows
KR20230056524A (ko) 로봇 프로세스 자동화 데이터 커넥터

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant