KR20210040824A - 외부 트리거에 기초한 로봇 프로세스 자동화 워크플로우의 재개 - Google Patents

외부 트리거에 기초한 로봇 프로세스 자동화 워크플로우의 재개 Download PDF

Info

Publication number
KR20210040824A
KR20210040824A KR1020207028114A KR20207028114A KR20210040824A KR 20210040824 A KR20210040824 A KR 20210040824A KR 1020207028114 A KR1020207028114 A KR 1020207028114A KR 20207028114 A KR20207028114 A KR 20207028114A KR 20210040824 A KR20210040824 A KR 20210040824A
Authority
KR
South Korea
Prior art keywords
url
automated
robot
application
workflow
Prior art date
Application number
KR1020207028114A
Other languages
English (en)
Other versions
KR102448774B1 (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 KR20210040824A publication Critical patent/KR20210040824A/ko
Application granted granted Critical
Publication of KR102448774B1 publication Critical patent/KR102448774B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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
    • 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/048Monitoring; Safety
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • 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
    • 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
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming 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/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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • General Engineering & Computer Science (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Development Economics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Testing And Monitoring For Control Systems (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)

Abstract

범용 리소스 로케이터(URL)를 생성하는 컴퓨터 시스템. URL은 복수의 자동화된 프로세스를 포함하는 실행 워크플로우 프로세스의 적어도 하나의 자동화된 프로세스를 재개하는 것과 관련된다. URL은 외부 시스템/애플리케이션에 제공된다. 외부 시스템/애플리케이션의 트리거 이벤트에 응답하여, 외부 시스템/애플리케이션으로부터 URL의 입력이 수신된다. URL의 입력에 기초하여, 적어도 하나의 자동화된 프로세스는 적어도 하나의 헤드리스 로봇에 의해 재개된다.

Description

외부 트리거에 기초한 로봇 프로세스 자동화 워크플로우의 재개
본 출원은 2019년 10월 1일자로 출원된 미국 출원 번호 제16/590,007호의 이익을 주장하는데, 상기 미국 출원의 내용은 참조에 의해 본원에 통합된다.
장기 실행 워크플로우(long running workflow)는, 소망되는 소프트웨어 기능을 수행하기 위해, 몇 시간, 며칠 또는 몇 달과 같은 오랜 시간 기간 동안 지속될 수 있는 지속적인 워크플로우이다. 그러한 기능의 예는 승인 프로세스이다. 이들 워크플로우는 외부 시스템 또는 애플리케이션과 함께 작동할 수 있다. 장기 실행 워크플로우를 수행하기 위해, 단편화된 자동화된 프로세스/작업(job)이 함께 합쳐져서 워크플로우의 장기 실행 거동(long running behavior)을 달성할 수 있다.
로봇 프로세스 자동화 환경에서 이들 워크플로우와 외부 환경/애플리케이션 사이에서 더욱 효율적인 상호 작용을 갖는 것이 바람직하다.
컴퓨터 시스템은 범용 리소스 로케이터(universal resource locator; URL)를 생성한다. URL은 복수의 자동화된 프로세스를 포함하는 실행 워크플로우 프로세스의 적어도 하나의 자동화된 프로세스를 재개하는 것과 관련된다. URL은 외부 시스템/애플리케이션에 제공된다. 외부 시스템/애플리케이션의 트리거 이벤트에 응답하여, 외부 시스템/애플리케이션으로부터 URL의 입력이 수신된다. URL의 입력에 기초하여, 적어도 하나의 자동화된 프로세스는 적어도 하나의 헤드리스 로봇(headless robot)에 의해 재개된다.
첨부의 도면과 연계하여 예로서 주어지는 다음의 설명으로부터 더욱 상세한 이해가 이루어질 수도 있는데, 첨부의 도면에서, 도면에서의 동일한 참조 번호는 동일한 엘리먼트를 나타내고, 첨부의 도면에서:
도 1a는 로봇 프로세스 자동화(robotic process automation; RPA) 개발, 설계, 동작, 또는 실행의 예시이다;
도 1b는 RPA 개발, 설계, 동작, 또는 실행의 다른 예시이다;
도 1c는 컴퓨팅 시스템 또는 환경의 예시이다;
도 2는 외부 시스템/애플리케이션과 실행 워크플로우 프로세스 시스템 사이의 상호 작용의 단순화된 예시이다;
도 3은 범용 리소스 로케이터인 URL을 사용하여 로봇 프로세스(들)를 재개하는 흐름도이다; 그리고
도 4는 토픽 이름(topic name)을 사용하여 로봇 프로세스(들)를 재개하는 흐름도이다.
하기에서 설명되는 방법 및 프로세스의 경우, 언급되는 단계는 임의의 순서로 순서 없이 수행될 수도 있고 명시적으로 설명되지 않는 또는 도시되지 않는 하위 단계가 수행될 수도 있다. 또한, "커플링되는" 또는 "동작 가능하게 커플링되는"은, 오브젝트가 연결되지만 그러나 연결된 오브젝트 사이에 0 개 이상의 중간 오브젝트를 가질 수도 있다는 것을 의미할 수도 있다. 또한, 개시된 피쳐/엘리먼트의 임의의 조합이 하나 이상의 실시형태에서 사용될 수도 있다. "A 또는 B"를 언급하는 것을 사용하는 경우, 그것은 A, B 또는 A 및 B를 포함할 수도 있는데, 이것은 긴 목록에 대해 유사하게 확장될 수도 있다. 표기법 X/Y를 사용하는 경우, 그것은 X 또는 Y를 포함할 수도 있다. 대안적으로, 표기법 X/Y를 사용하는 경우, 그것은 X 및 Y를 포함할 수도 있다. X/Y 표기법은, 동일한 설명된 로직을 가지고 더 긴 목록에 대해 유사하게 확장될 수도 있다.
도 1a는 로봇 프로세스 자동화(RPA) 개발, 설계, 동작, 또는 실행(100)의 예시이다. 때때로 스튜디오, 개발 플랫폼, 개발 환경, 또는 등등으로 참조되는 디자이너(designer; 102)는, 로봇이 하나 이상의 워크플로우를 수행하기 위한 또는 자동화하기 위한 코드, 명령어, 커맨드, 또는 등등을 생성하도록 구성될 수도 있다. 컴퓨팅 시스템이 로봇에게 제공할 수도 있는 선택(들)으로부터, 로봇은 유저 또는 오퍼레이터에 의해 선택되는 시각적 디스플레이의 영역(들)의 대표 데이터(representative data)를 결정할 수도 있다. RPA의 일부로서, 정사각형, 직사각형, 원, 다각형, 자유 형태, 또는 등등과 같은 다차원의 형상이 컴퓨터 비전(computer vision; CV) 동작 또는 머신 러닝(machine learning; ML) 모델에 관련하여 UI 로봇 개발 및 런타임에 대해 활용될 수도 있다.
워크플로우에 의해 달성될 수도 있는 동작의 비제한적인 예는, 로그인 수행, 양식 채우기, 정보 기술(information technology; IT) 관리, 또는 등등 중 하나 이상일 수도 있다. UI 자동화를 위한 워크플로우를 실행하기 위해, 로봇은, 애플리케이션 액세스 또는 애플리케이션 개발에 관계없이, 버튼, 체크박스, 텍스트 필드, 라벨, 등등과 같은 특정한 화면 엘리먼트를 고유하게 식별하는 것을 필요로 할 수도 있다. 애플리케이션 액세스의 예는, 로컬, 가상, 원격, 클라우드, Citrix®(시트릭스), VMWare®, VNC®, Windows®(윈도우즈) 원격 데스크탑, 가상 데스크탑 인프라(virtual desktop infrastructure; VDI), 또는 등등일 수도 있다. 애플리케이션 개발의 예는, win32, Java(자바), Flash(플래시), 하이퍼텍스트 마크업 언어(hypertext markup language; HTML), HTML5, 확장 가능한 마크업 언어(Extensible Markup Language; XML), Javascript(자바스크립트), C#, C++, Silverlight(실버라이트), 또는 등등일 수도 있다.
워크플로우는, 태스크(task) 시퀀스, 플로우차트, 유한 상태 머신(Finite State Machine; FSM), 전역적 예외 핸들러(global exception handler), 또는 등등을 포함할 수도 있지만, 그러나 이들로 제한되지는 않는다. 태스크 시퀀스는 하나 이상의 애플리케이션 또는 윈도우 사이의 선형 태스크를 핸들링하기 위한 선형 프로세스일 수도 있다. 플로우차트는, 다수의 분기 로직 연산자를 통한 더욱 다양한 방식의 결정의 통합 및 활동의 연결을 가능하게 하는 복잡한 비즈니스 로직을 핸들링하도록 구성될 수도 있다. FSM은 대규모 워크플로우를 위해 구성될 수도 있다. FSM은, 조건, 이행(transition), 활동, 또는 등등에 의해 트리거될 수도 있는 유한한 수의 상태를 그들의 실행에서 사용할 수도 있다. 전역적 예외 핸들러는, 실행 에러와 조우하는 경우, 프로세스를 디버깅하기 위해, 또는 등등을 위해, 워크플로우 거동을 결정하도록 구성될 수도 있다.
로봇은, 기저의 오퍼레이팅 시스템(operating system; OS) 또는 하드웨어에 투명한 UI를 자동화할 수도 있는 애플리케이션, 애플릿, 스크립트, 또는 등등일 수도 있다. 배치시, 하나 이상의 로봇(204)은, 때때로 오케스트레이터(orchestrator; 202)로 지칭되는 컨덕터(104)에 의해 관리될 수도 있거나, 제어될 수도 있거나, 또는 등등으로 될 수도 있다. 컨덕터(104)는, 메인프레임, 웹, 가상 머신, 원격 머신, 가상 데스크탑, 엔터프라이즈 플랫폼, 데스크탑 앱(들), 브라우저, 또는 등등의 클라이언트, 애플리케이션, 또는 프로그램에서 워크플로우를 실행하거나 또는 모니터링할 것을 로봇(들) 또는 자동화 실행기(automation executor; 106)에게 지시 또는 명령할 수도 있다. 컨덕터(104)는 컴퓨팅 플랫폼을 자동화할 것을 복수의 로봇(204)에게 지시 또는 명령하기 위한 중앙 또는 반 중앙 지점으로서 작용할 수도 있다.
소정의 구성에서, 컨덕터(104)는 프로비저닝, 배치, 구성, 큐잉, 모니터링, 로깅, 및/또는 상호 연결성 제공을 위해 구성될 수도 있다. 프로비저닝은 로봇(들) 또는 자동화 실행기(106)와 컨덕터(104) 사이의 연결 또는 통신의 생성 및 유지 보수를 포함할 수도 있다. 배치는, 실행을 위해, 할당된 로봇(204)으로의 패키지 버전의 전달을 보장하는 것을 포함할 수도 있다. 구성은 로봇 환경 및 프로세스 구성의 유지 보수 및 전달을 포함할 수도 있다. 큐잉은 큐 및 큐 아이템의 관리를 제공하는 것을 포함할 수도 있다. 모니터링은 로봇 식별 데이터를 계속 추적하는 것 및 유저 퍼미션을 유지하는 것을 포함할 수도 있다. 로깅은 데이터베이스(예를 들면, SQL 데이터베이스) 및/또는 다른 스토리지 메커니즘(예를 들면, 대규모 데이터세트를 저장하고 빠르게 조회하는 능력을 제공하는 ElasticSearch®(엘라스틱서치))에 로그를 저장하고 인덱싱하는 것을 포함할 수도 있다. 컨덕터(104)는 써드파티 솔루션 및/또는 애플리케이션에 대한 통신의 중앙 집중식 지점으로서 작용하는 것에 의해 상호 연결성(interconnectivity)을 제공할 수도 있다.
로봇(들) 또는 자동화 실행기(106)는 무인(unattended; 108) 또는 유인(attended; 110)으로 구성될 수도 있다. 무인(108) 동작의 경우, 써드파티 입력 또는 제어 없이 자동화가 수행될 수도 있다. 유인(110) 동작의 경우, 써드파티 컴포넌트로부터 입력, 커맨드, 명령어, 안내, 또는 등등을 수신하는 것에 의해 자동화가 수행될 수도 있다.
로봇(들) 또는 자동화 실행기(106)는 디자이너(102)에서 구축되는 워크플로우를 실행하는 실행 에이전트(execution agent)일 수도 있다. UI 또는 소프트웨어 자동화를 위한 로봇(들)의 상업적인 예는 UiPath Robots™이다. 몇몇 실시형태에서, 로봇(들) 또는 자동화 실행기(106)는, 디폴트로, Microsoft Windows®(마이크로소프트 윈도우즈) 서비스 제어 관리자(Service Control Manager; SCM) 관리 서비스를 설치할 수도 있다. 결과적으로, 그러한 로봇은 로컬 시스템 계정 하에서 상호 작용식 Windows® 세션을 열 수 있고, Windows® 서비스의 권한을 가질 수 있다.
몇몇 실시형태에서, 로봇(들) 또는 자동화 실행기(106)는 유저 모드에서 설치될 수도 있다. 이들 로봇은 유저와 동일한 권한 - 그 권한 하에서 주어진 로봇이 설치됨 - 을 가질 수도 있다. 이 피쳐는 고밀도(High Density; HD) 로봇에 대해 또한 이용 가능할 수도 있는데, 이것은, 예컨대 HD 환경에서 최대 성능에서의 각각의 머신의 최대 활용을 보장한다.
소정의 구성에서, 로봇(들) 또는 자동화 실행기(106)는, 특정한 자동화 태스크 또는 활동에 각각 전용되는 몇몇 컴포넌트로 분할될 수도 있거나, 분배될 수도 있거나, 또는 등등으로 될 수도 있다. 로봇 컴포넌트는 SCM 관리 로봇 서비스, 유저 모드 로봇 서비스, 실행기, 에이전트, 커맨드 라인, 또는 등등을 포함할 수도 있다. SCM 관리 로봇 서비스는 Windows® 세션을 관리 또는 모니터링할 수도 있고 컨덕터(104)와 실행 호스트(즉, 로봇(들) 또는 자동화 실행기(106)가 실행되는 컴퓨팅 시스템) 사이의 프록시로서 역할을 할 수도 있다. 이들 서비스는 로봇(들) 또는 자동화 실행기(106)에 대한 자격 증명을 사용하여 신뢰될 수도 있고 그 자격 증명을 관리할 수도 있다.
유저 모드 로봇 서비스는 Windows® 세션을 관리 및 모니터링할 수도 있고 컨덕터(104)와 실행 호스트 사이의 프록시로서 역할을 할 수도 있다. 유저 모드 로봇 서비스는 로봇(130)에 대한 자격 증명을 사용하여 신뢰될 수도 있고 그 자격 증명을 관리할 수도 있다. SCM 관리 로봇 서비스가 설치되지 않은 경우 Windows® 애플리케이션이 자동적으로 론칭될 수도 있다.
실행기는 Windows® 세션 하에서 주어진 작업을 실행할 수도 있다(즉, 그들은 워크플로우를 실행할 수도 있다). 실행기는 모니터별 인치당 도트(dots per inch; DPI) 설정을 알고 있을 수도 있다. 에이전트는 시스템 트레이 윈도우(system tray window)에서 이용 가능한 작업을 디스플레이하는 Windows® 프리젠테이션 파운데이션(Windows® Presentation Foundation; WPF) 애플리케이션일 수도 있다. 에이전트는 서비스의 클라이언트일 수도 있다. 에이전트는 작업을 시작 또는 중지할 것을 그리고 설정을 변경할 것을 요청할 수도 있다. 커맨드 라인은 서비스의 클라이언트일 수도 있다. 커맨드 라인은, 작업을 시작할 것을 요청할 수 있고 그들의 출력을 대기하는 콘솔 애플리케이션이다.
상기에서 설명되는 바와 같이 로봇(들) 또는 자동화 실행기(106)의 컴포넌트가 분할되는 구성은, 개발자가 유저를 지원하는 것, 및 컴퓨팅 시스템이 각각의 컴포넌트에 의한 실행을 더욱 쉽게 실행, 식별 및 추적하는 것을 돕는다. 실행기 및 서비스에 대해 상이한 방화벽 규칙을 셋업하는 것과 같은 방식으로, 컴포넌트별로 특수한 거동이 구성될 수도 있다. 실행기는 몇몇 실시형태에서 모니터당 DPI 설정을 인식할 수도 있다. 결과적으로, 워크플로우는, 그들이 생성되었던 컴퓨팅 시스템의 구성에 관계없이, 임의의 DPI에서 실행될 수도 있다. 디자이너(102)로부터의 프로젝트는 또한, 몇몇 실시형태에서, 브라우저 줌 레벨과 무관할 수도 있다. DPI를 알지 못하는 또는 알지 못하는 것으로 의도적으로 마킹되는 애플리케이션의 경우, 몇몇 실시형태에서, DPI는 디스에이블될 수도 있다.
도 1b는 RPA 개발, 설계, 동작, 또는 실행(120)의 다른 예시이다. 스튜디오 컴포넌트 또는 모듈(122)은, 로봇이 하나 이상의 활동(124)을 수행하기 위한 코드, 명령어, 커맨드, 또는 등등을 생성하도록 구성될 수도 있다. 유저 인터페이스(user interface; UI) 자동화(126)는 하나 이상의 드라이버(들) 컴포넌트(128)를 사용하여 클라이언트 상에서 로봇에 의해 수행될 수도 있다. 로봇은 컴퓨터 비전(CV) 활동 모듈 또는 엔진(130)을 사용하여 활동을 수행할 수도 있다. UI의 엘리먼트를 획득하기 위한 로봇에 의한 UI 자동화를 위해 다른 드라이버(132)가 활용될 수도 있다. 그들은 OS 드라이버, 브라우저 드라이버, 가상 머신 드라이버, 엔터프라이즈 드라이버, 또는 등등을 포함할 수도 있다. 소정의 구성에서, CV 활동 모듈 또는 엔진(130)은 UI 자동화를 위해 사용되는 드라이버일 수도 있다.
도 1c는, 정보 또는 데이터를 전달하기 위한 버스(142) 또는 다른 통신 메커니즘, 및 프로세싱을 위한 버스(142)에 커플링되는 하나 이상의 프로세서(들)(144)를 포함할 수도 있는 컴퓨팅 시스템 또는 환경(140)의 예시이다. 하나 이상의 프로세서(들)(144)는, 중앙 프로세싱 유닛(central processing unit; CPU), 주문형 집적 회로(application specific integrated circuit; ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA), 그래픽 프로세싱 유닛(graphics processing unit; GPU), 컨트롤러, 다중 코어 프로세싱 유닛, 삼차원 프로세서, 양자 컴퓨팅 디바이스, 또는 이들의 임의의 조합을 비롯한, 임의의 타입의 범용 또는 특수 목적의 프로세서일 수도 있다. 하나 이상의 프로세서(들)(144)는 또한 다수의 프로세싱 코어를 가질 수도 있고, 코어 중 적어도 일부는 특정한 기능을 수행하도록 구성될 수도 있다. 다중 병렬 프로세싱도 또한 구성될 수도 있다. 추가적으로, 적어도 하나 이상의 프로세서(들)(144)는 생물학적 뉴런을 모방하는 프로세싱 엘리먼트를 포함하는 뉴로모픽 회로(neuromorphic circuit)일 수도 있다.
메모리(146)는 프로세서(들)(144)에 의해 실행될 또는 프로세싱될 정보, 명령어, 커맨드, 또는 데이터를 저장하도록 구성될 수도 있다. 메모리(146)는, 랜덤 액세스 메모리(random access memory; RAM), 리드 온리 메모리(read only memory; ROM), 플래시 메모리, 솔리드 스테이트 메모리, 캐시, 자기 또는 광학 디스크와 같은 정적 스토리지, 또는 임의의 다른 타입의 비일시적 컴퓨터 판독 가능 매체 또는 이들의 조합의 임의의 조합으로 구성될 수 있다. 비일시적 컴퓨터 판독 가능 매체는 프로세서(들)(144)에 의해 액세스될 수 있는 임의의 매체일 수도 있고, 휘발성 매체, 불휘발성 매체, 또는 등등을 포함할 수도 있다. 매체는 또한 착탈식, 비착탈식, 또는 등등일 수도 있다.
통신 디바이스(148)는, 주파수 분할 다중 액세스(frequency division multiple access; FDMA), 싱글 캐리어 FDMA(single carrier FDMA; SC-FDMA), 시분할 다중 액세스(time division multiple access; TDMA), 코드 분할 다중 액세스(code division multiple access; CDMA), 직교 주파수 분할 멀티플렉싱(orthogonal frequency-division multiplexing; OFDM), 직교 주파수 분할 다중 액세스(orthogonal frequency-division multiple access; OFDMA), 이동 통신용 글로벌 시스템(Global System for Mobile (GSM) communication), 일반 패킷 무선 서비스(general packet radio service; GPRS), 범용 이동 통신 시스템(universal mobile telecommunications system; UMTS), cdma2000, 광대역 CDMA(wideband CDMA; W-CDMA), 고속 다운링크 패킷 액세스(high-speed downlink packet access; HSDPA), 고속 업링크 패킷 액세스(high-speed uplink packet access; HSUPA), 고속 패킷 액세스(high-speed packet access; HSPA), 롱 텀 에볼루션(long term evolution; LTE), LTE 어드밴스드(LTE Advanced; LTE-A), 802.11x, Wi-Fi(와이파이), Zigbee(지그비), 초광대역(Ultra-WideBand; UWB), 802.16x, 802.15, 홈 Node-B(home Node-B; HnB), Bluetooth(블루투스), 무선 주파수 식별(radio frequency identification; RFID), 적외선 데이터 연합(infrared data association; IrDA), 근접장 통신(near-field communications; NFC), 5세대(fifth generation; 5G), 뉴 라디오(new radio; NR), 또는 하나 이상의 안테나를 통한 통신을 위한 임의의 다른 무선 또는 유선 디바이스/트랜스시버로서 구성될 수도 있다. 안테나는 단일식(singular), 배열식(arrayed), 위상식(phased), 스위치식(switched), 빔포밍, 빔조향, 또는 등등일 수도 있다.
하나 이상의 프로세서(들)(144)는, 버스(142)를 통해, 플라즈마, 액정 디스플레이(liquid crystal display; LCD), 발광 다이오드(light emitting diode; LED), 전계 방출 디스플레이(field emission display; FED), 유기 발광 다이오드(organic light emitting diode; OLED), 플렉시블 OLED, 플렉시블 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, 고선명(high definition; HD) 디스플레이, Retinaⓒ(레티나) 디스플레이, 인 플레인 스위칭(in-plane switching; IPS) 또는 등등 기반의 디스플레이와 같은 디스플레이 디바이스(150)에 추가로 커플링될 수도 있다. 디스플레이 디바이스(150)는, 입력/출력(input/output; I/O)에 대해 기술 분야에서 통상의 지식을 가진 자에 의해 이해되는 바와 같이, 저항성, 용량성, 표면 탄성파(surface-acoustic wave; SAW) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 불완전 내부 전반사(frustrated total internal reflection), 또는 등등을 사용하여 터치 디스플레이, 삼차원(three dimensional; 3D) 터치 디스플레이, 다중 입력 터치 디스플레이, 또는 멀티 터치 디스플레이로서 구성될 수도 있다.
컴퓨터 마우스, 터치패드, 또는 등등과 같은 키보드(152) 및 제어 디바이스(154)는 컴퓨팅 시스템 또는 환경(140)에 대한 입력을 위해 버스(142)에 추가로 커플링될 수도 있다. 추가적으로, 입력은, 컴퓨팅 시스템 또는 환경(140)에, 이들과 통신하는 다른 컴퓨팅 시스템을 통해 원격에서 제공될 수도 있거나, 또는 컴퓨팅 시스템 또는 환경(140)은 자율적으로 동작할 수도 있다.
메모리(146)는 하나 이상의 프로세서(들)(144)에 의해 실행 또는 프로세싱될 때 기능성(functionality)을 제공하는 소프트웨어 컴포넌트, 모듈, 엔진, 또는 등등을 저장할 수도 있다. 이것은 컴퓨팅 시스템 또는 환경(140)에 대한 OS(156)를 포함할 수도 있다. 모듈은, 애플리케이션 고유의 프로세스 또는 그 파생 프로세스(derivative)를 수행하기 위한 맞춤형(custom) 모듈(158)을 더 포함할 수도 있다. 컴퓨팅 시스템 또는 환경(140)은, 추가적인 기능성을 포함하는 하나 이상의 추가적인 기능 모듈(160)을 포함할 수도 있다.
컴퓨팅 시스템 또는 환경(140)은, 서버, 임베디드 컴퓨팅 시스템, 퍼스널 컴퓨터, 콘솔, 개인 휴대형 정보 단말(personal digital assistant; PDA), 셀 폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 디바이스, 클라우드 컴퓨팅 디바이스, 모바일 디바이스, 고정식 모바일 디바이스(fixed mobile device), 스마트 디스플레이, 웨어러블 컴퓨터, 또는 등등으로서 수행하도록 적응되거나 또는 구성될 수도 있다.
장기 실행 워크플로우 환경에서, 다수의 단편화된 자동화된 프로세스/작업이 함께 합쳐진다. 프로세스/작업은 일시 중지되고 상이한 인스턴스에서 재개되어 워크플로우에 장기 실행 거동을 추가한다. 프로세스/작업의 재개는, 외부 시스템/애플리케이션(206)으로부터의 트리거와 같은 외부 트리거, 예컨대 SAPInvoice 완료, Salesforce Trigger(세일즈포스 트리거) 또는 기타에 의해 트리거될 수 있다.
장기 실행 워크플로우는 다음에서 오케스트레이션 프로세스(orchestration process)로 지칭된다. 오케스트레이션 프로세스는 장기 실행 워크플로우에 대한 중앙 집중식 접근법이다. 그러나, 오케스트레이션 프로세스를 위한 기술은 탈집중화된(decentralized) 프로세스에 적용될 수 있다. 오케스트레이션 프로세스는, 주로 장기 실행 기능을 지원하기 위해, 함께 시작할 제한된 세트의 활동을 포함한다. 오케스트레이션 프로세스는, 예컨대 로봇 팜에서, 로봇(204)에 의해 실행된다. 추가적인 활동은, 장기 실행 활동과 함께 작동하도록 직렬화 가능한 것으로 그들을 인증한 이후, 이 프로세스 타입에 추가된다. 워크플로우 컨텍스트는 직렬화되어 중앙 저장소에서 지속될 수도 있다. 오케스트레이션 프로세스는, 비동기 비차단(Async-Non blocking) 방식으로 호출될 수 있는 장기 실행 활동뿐만 아니라 동기 차단(Sync-Blocking) 또는 비동기 차단(Async-Blocking) 방식으로 호출될 수 있는 일반적인 비UI(non-UI) 활동을 포함할 수도 있다.
오케스트레이션 프로세스는 헤드리스 로봇(204)의 봇 환경(bot environment)에서 실행되도록 구성될 수도 있다. 헤드리스 로봇(204)은, 인간의 개입과 무관하게 태스크를 수행하는 무인 봇(204)이다. 헤드리스 로봇(204)은 통상적으로 스케줄에 따라 또는 트리거된 이벤트에 응답하여 자동적으로 시작하도록 프로그래밍된다. 비록 다음의 내용이 헤드리스 로봇(204)의 맥락에서 설명되지만, 실시형태 중 일부는 비 헤드리스 로봇(non-headless robot; 204)에 적용 가능하다.
봇(204)은, 봇(204)을 사용하여 오케스트레이션 프로세스의 다수의 인스턴스를 실행할 수 있는 오케스트레이터(202)로부터 그들로 전달되는 관련 워크플로우 컨텍스트를 사용하여 장기 실행 활동을 갖는 프로세스/작업을 실행할 수 있다(작업을 시작할 수 있거나 또는 작업 또는 오케스트레이터 큐를 스케줄링할 수 있다).
도 2는 워크플로우 프로세싱 시스템을 예시하는 단순화된 다이어그램이다. 장기 실행 워크플로우 시스템(200)은 오케스트레이터(202) 및 헤드리스 로봇(2041-204N(204))을 포함한다. 오케스트레이터(202)는, 승인 프로세스와 같은 장기 실행 워크플로우를 수행하기 위해 헤드리스 로봇(204)과 통신하고 그들을 관리한다. 예시적인 장기 실행 워크플로우는, 인보이스 프로세싱 GL 코드 승인(Invoice processing GL code approval), 견적 할인 승인 프로세스(Quote discount approval process), 감사 목적을 위해 또는 낮은 신뢰도 점수의 경우 로봇 프로세싱 콘텐츠가 사람에 의해 유효성이 확인될 필요가 있는 유효성 확인 시나리오, 보험 청구 프로세스, 직원 온보딩 프로세스(employee on-boarding process)를 포함한다. 인간의 액션을 포함하는 상기 언급된 장기 실행 워크플로우의 몇몇 부분은 다른 써드파티 시스템 - RPA 워크플로우는 자신의 종단간(end to end) 완료를 위해 이것에 기초하여 재개되어야 함 - 에서 실행될 수 있다. 오케스트레이터(202)는 또한 외부 시스템 또는 애플리케이션(206)과 통신한다. 도 2의 시스템에서의 오케스트레이터(202)는 워크플로우의 중앙 집중식 동작을 수행하는 것으로서 예시된다. 그러나, 다음 실시형태는 비 중앙 집중식 워크플로우 시스템에 적용될 수 있는 시그널링을 포함한다. 예를 들면, 장기 실행 워크플로우는 구매 봇(204)(무인 - 일반 또는 헤드리스)에서 탈집중화되어 실행될 수 있다. 비록 도 2가 헤드리스 로봇(204)을 도시하는 장기 실행 워크플로우 시스템이 중앙 시스템에 포함되는 것을 묘사하지만, 다른 접근법은 로봇(204)(클라이언트 머신)에서 장기 실행 워크플로우의 일부를 실행하고 오케스트레이터(202) 내에서 중앙 지속적으로 워크플로우 상태를 조정하는 것이다. 장기 실행 단계가 완료될 때마다(내부 또는 외부), 워크플로우는 동일한 로봇 팜 내의 임의의 이용 가능한 봇(204)에서 재개된다.
도 3은 URL을 사용하는 외부 트리거에 기초하여 로봇 프로세스를 재개하는 실시형태의 흐름도이다. 이 고유의 URL은 특정한 일시 중지된 단계로부터 장기 실행 프로세스의 특정한 인스턴스를 재개할 수 있다. 오케스트레이터(202)는 URL을 생성하고(302) URL을 외부 시스템/애플리케이션(206)에 제공한다(304). 소정의 비즈니스 이벤트(들)에 응답하여, 외부 시스템/애플리케이션(206)은 URL을 호출한다(306). 오케스트레이터(202)는, 호출된 URL에 기초하여, 헤드리스 로봇(204)에 의한 실행을 위해 일시 중지된 또는 마킹된 아이들(idle) 프로세스를 재개할지의 여부를 결정한다(308). 비록 도 3이 URL을 참조하지만, 인터넷 프로토콜 어드레스, 매체 액세스 제어(medium access control; MAC) 어드레스, 네트워크 어드레스 및 기타와 같은 다른 주소 지정 기술(addressing technique)이 사용될 수 있다.
도 4는 토픽 이름을 사용하는 외부 트리거에 기초하여 로봇 프로세스를 재개하는 실시형태의 흐름도이다. 오케스트레이터 인스턴스의 다양한 단계에서 일시 중지되는 장기 실행 워크플로우의 다수의 인스턴스를 재개하기 위해, 토픽 이름 기반의 재개 기술이 사용될 수 있다. 오케스트레이터(202)는 토픽 이름을 생성하고(402), 토픽 이름을 외부 시스템/애플리케이션(206)에 제공한다(404). 소정의 비즈니스 이벤트(들)에 응답하여, 외부 시스템/애플리케이션(206)은 토픽 이름과 함께 오케스트레이터(202)에 콜백을 전송한다(406). 오케스트레이터(202)는, 토픽 이름에 기초하여, 헤드리스 로봇(204)에 의한 실행을 위해 일시 중지된 또는 마킹된 아이들 프로세스를 재개할지의 여부를 결정한다(408). 활동의 다음의 목록은, 유저가 워크플로우/오케스트레이션 프로세스에 트리거를 추가하는 것을 허용한다. 외부 트리거 생성(Create External Trigger): 외부 트리거 생성 활동은 외부 시스템(206)에 고유하게 그리고 특정한 작업에 대해 호출된다. 외부 트리거는, RPA 개발자가 외부 트리거(예컨대, SAPInvoice 완료, Salesforce Trigger 또는 기타)에 매핑하기 위해 제공하는 텍스트 식별자에 의해 생성된다. 활동의 잠재적인 출력은, 작업을 재개해야 하는 몇몇 비즈니스 이벤트에 기초하여 외부 시스템(206)에 의해 호출되는, 오케스트레이터(202)에 의해 생성되는 URL을 포함할 수 있는 URL, 예컨대 SubscriberURL이다.
외부 트리거에 의한 재개(Resume With External Trigger): 외부 트리거에 의한 재개 활동은 subscriberURL을 입력으로서 취한다. 프로세스는, 구성된 외부 트리거가 발생할 때까지 - 오케스트레이터(202)는 이 발생에 기초하여 이 트리거를 대기하는 작업(들)의 세트를 재개할 수 있음 - , 일시 중지되거나 또는 아이들로 마킹된다.
대안적으로, 토픽 이름이 워크플로우에서 주어질 수 있다. 주어진 토픽에 대한 콜백이 수신되는 경우, 그 토픽을 대기하는 워크플로우는 재개된다.
다음의 내용은, 오케스트레이션 프로세스의 런타임 실행을 위한 로봇 및 오케스트레이터 컴포넌트에 대한 잠재적 요건이다:
1 작업 스케줄 또는 시작 작업에 따라 헤드리스 봇(204)에서 오케스트레이션 프로세스를 실행함: 오케스트레이션 프로세스는 헤드리스 로봇(204)의 봇 환경에서 실행되도록 구성될 수도 있다; 봇(204)은, 오케스트레이터(202)로부터 그들로 전달되는 관련 워크플로우 컨텍스트를 사용하여 장기 실행 활동을 갖는 프로세스(작업)을 실행할 수 있다(작업을 시작할 수 있거나 또는 작업 또는 오케스트레이터 큐를 스케줄링할 수 있다).
2 오케스트레이션 프로세스의 동시 인스턴스의 실행: 헤드리스 로봇(204)에서 오케스트레이션 프로세스의 다수의 인스턴스를 실행하는 것이 가능할 수도 있다.
3 플로우의 특정한 활동에서, 워크플로우 실행을 오케스트레이터에서 '아이들' 또는 '일시 중지' 상태로 마킹하는 능력: 봇은 현재 작업이 아이들로 마킹될 수 있는 워크플로우 컨텍스트를 저장하기 위해 지속적인 서비스를 호출할 수도 있다; 봇은 특정한 단계에서 워크플로우 지속을 개시하기 위해 활동 로직에 의해 신호를 받을 수도 있다(signaled); 완료될 임의의 다른 하위 프로세스/작업을 대기하는 어떠한 활성 인스턴스도 없을 수도 있다; 이 봇은, 서버 부하 및 구성에 따라 동일한 또는 상이한 워크플로우의 다른 작업의 실행을 동시에 수행할 것을 할당받을 수도 있다; 동일한 워크플로우 인스턴스는 프로세스 정의에 따라 다수의 단계에서 '아이들'일 수도 있다.
4 지속적 활동(장기 실행 태스크)의 완료시 워크플로우 실행을 재개하는 능력: 봇(204)은 인간 태스크 또는 임의의 다른 장기 실행 활동의 완료시 병합된 비즈니스 컨텍스트를 사용하여 장기 실행 작업의 실행을 재개할 수 있다; 재개 플로우를 트리거하는 이벤트에 기초하여, 지속성 서비스(persistence service)는 정확한 워크플로우 컨텍스트를 검색할 수도 있고 할당된 환경 내의 임의의 로봇에게 워크플로우 인스턴스의 나머지를 실행할 것을 할당할 수도 있다; 재개 플로우는, 심지어, 이용 가능한 새로운 버전의 패키지 및 생성되는 프로세스가 있더라도, 동일한 패키지 버전 - 플로우는, 이 동일한 패키지 버전을 사용하여, "아이들" 상태로 설정되었음 - 을 사용하여 호출될 수도 있다; 동일한 작업 식별자에 대해 로그 및 상태가 유지되어야 하고, 따라서 프로세스의 시작에서부터 끝까지의 장기 실행 워크플로우를 생성한다.
5 Wait for All(전체 대기), Wait for Any(아무거나 대기) 또는 Wait for Any # Semantics(임의의 수의 시맨틱 대기)에 기초하여 워크플로우 실행을 재개하는 능력: 오케스트레이터(202)는, 프로세스가 대기하고 있는 모든 활동으로부터 콜백을 수신한 이후에만, 그러한 작업을 재개할 것을 로봇에게 나타낼 수 있다; 오케스트레이터(202)는 재개 호출을 호출하기 이전에 다양한 병렬 분기를 동기화할 수 있다.
6 로봇과 서버 사이의 워크플로우 컨텍스트의 신뢰 가능한 핸드오버: 봇(204)은, 작업을 장애로 마킹하기 이전에 내부 재시도 메커니즘을 사용하여 워크플로우 컨텍스트를 지속성 서비스에 게시하는 동안 임의의 결함으로부터 복구할 수 있다.
7 더 이전 단계를 실행한 로봇에 대한 재개 프로세스 우선 순위: 지속성 워크플로우 엔진은, 플로우를 재개하는 동안 프로세스가 '아이들' 상태로 진입하기 이전에 동일한 워크플로우의 일부를 실행한 특정한 환경 내에서 로봇(204)을 우선 순위화할 수 있다.
8 오케스트레이션 프로세스에 대한 새로운 상태 '아이들' 또는 '일시 중지' 및 'Pending Resume(재개 보류)' 또는 'Resumed(재개)': 오케스트레이션 프로세스가 (태스크와 같은) 장기 실행 단계를 실행하고 있을 때, 작업 상태는 '아이들'로 나타내어질 수도 있다; 일단 태스크 완료 이벤트가 오케스트레이터 콜백을 트리거하면, 작업 상태는 '아이들'로부터 '실행 중(Running)' 또는 '재개 보류'로 변경된다; 작업은 그 실행 동안 아주 많은 횟수 '아이들' 상태로 이동할 수 있다; "재개 보류"는, '아이들' 작업이 모든 종속된 북마크 완료에 기초하여 재개되었지만, 그러나 봇 가용성에 기초하여 보류 중인 경우, 새로운 상태일 수도 있다; 이 상태는 작업 및 로봇(204), 오케스트레이터 작업 및 로봇 목록 뷰를 모니터링하는 오케스트레이터(202)에서 반영되어야 한다.
9 로봇과 다른 서버 사이의 통신 동안의 에러 핸들링 및 재시도 메커니즘: 로봇 대 워크플로우 지속성 서비스 동안, 태스크 관리 서비스 동안 및 재개 작업 호출 동안 에러 및 재시도를 핸들링함.
10 이벤트 트리거: 작업 생성: 오케스트레이터(202)는 오케스트레이터 작업 뷰로부터 작업을 생성할 수 있다.
11 이벤트 트리거: 작업 스케줄: 오케스트레이터(202) 유저는 오케스트레이터 스케줄 뷰로부터 작업 실행을 스케줄링할 수 있다.
다음의 내용은 로봇 서비스에 대한 잠재적인 요건이다:
1 UiPath.Executor.exe의 지속성 성능: UiPath.Executor.exe는 로봇 클라이언트 상에서 실행되는 워크플로우를 호스팅한다; 새로운 장기 실행 활동의 도입과 함께, 활동은 지속성 이벤트를 발생시킬 수 있는 북마크를 호출할 수 있다; UiPath.Executor.exe는 지속성 및 모든 지원 이벤트를 핸들링하고 올바른 워크플로우 컨텍스트 및 북마크 정보를 사용하여 오케스트레이션 작업을 '아이들'로 마킹하도록 오케스트레이터 팀에 의해 노출될 수 있는 새로운 지속성 서비스 엔드포인트로 그 데이터를 전송하기 위해 변경을 필요로 한다.
2 UiPath Robot Service(로봇 서비스) 및 UiPath.Executor.exe에서의 작업 재개 성능: 아이들 작업의 재개를 지원하기 위해, UiPath 로봇 서비스는 (태스크 완료시 태스크 관리 시스템에 의해 또는 작업 완료/큐 아이템 실행 완료를 위해 오케스트레이터(202)에 의해) 재개 콜백 이벤트 핸들링시 필요한 정보를 실행기로 넘기는 성능을 가질 수도 있고, UiPath.Executor.exe는 프로세스 정보에 기초하여 워크플로우를 로딩하는 그리고 (주어진 북마크에 기초하여 동일한 식별자를 사용하여) 작업을 재개하는 성능을 가질 수도 있다.
이벤트 트리거링에 기초한 자동화 워크플로우에 대한 이들 실시형태의 잠재적인 이점은, 중앙에서 조정되는 헤드리스 로봇(204)에서 오케스트레이션 프로세스의 다수의 인스턴스를 실행하는 성능을 도입하는 것이다. 오케스트레이션 프로세스 내에서의 지속적인 단계/활동은 또한 임의의 상이한 로봇에서도 실행될 수 있다(중앙에서 조정되는 그러나 탈집중화된 실행). 또한, 봇에 의한 연속적인 모니터링 또는 대기의 필요 없이, 장기 실행 워크플로우를 실행하는 동안 리소스 할당이 향상될 수 있다. 또한, 그것은 프로세스 동안 실행된 모든 기저의 작업에 대한 링크를 사용하여 프로세스 실행 인스턴스를 추적하는 능력을 허용한다.
본원에서 주어지는 예에서, 모듈은 맞춤형 대규모 집적(very large scale integration; VLSI) 회로 또는 게이트 어레이, 로직 칩과 같은 기성의(off-the-shelf) 반도체, 트랜지스터, 또는 다른 개별 컴포넌트를 포함하는 하드웨어 회로로서 구현될 수도 있다. 모듈은 또한, 필드 프로그래머블 게이트 어레이, 프로그래머블 어레이 로직, 프로그래머블 로직 디바이스, 그래픽 프로세싱 유닛, 또는 등등과 같은 프로그래머블 하드웨어 디바이스에서 구현될 수도 있다.
모듈은 또한 다양한 타입의 프로세서에 의한 실행을 위해 소프트웨어로 적어도 부분적으로 구현될 수도 있다. 실행 가능 코드의 식별된 단위는, 예를 들면, 오브젝트, 프로시져, 루틴, 서브루틴, 또는 함수로서 편제될 수도 있는, 컴퓨터 명령어의 하나 이상의 물리적 또는 논리적 블록을 포함할 수도 있다. 식별된 모듈의 실행 파일(executable)은, 논리적으로 함께 결합될 때 모듈을 포함하도록 상이한 위치에 함께 위치되거나 또는 저장된다.
실행 가능 코드의 모듈은, 몇몇 메모리 디바이스, 또는 등등에 걸친, 상이한 프로그램 사이의, 단일의 명령어, 하나 이상의 데이터 구조, 하나 이상의 데이터 세트, 복수의 명령어, 또는 여러 가지 상이한 코드 세그먼트에 걸쳐 분산되는 등등일 수도 있다. 동작 또는 기능 데이터는 본원에서 모듈 내에서 식별되고 예시될 수도 있으며, 적절한 형태로 구체화되고 임의의 적절한 타입의 데이터 구조 내에서 편제될 수도 있다.
본원에서 주어지는 예에서, 컴퓨터 프로그램은 하드웨어, 소프트웨어, 또는 하이브리드 구현예에서 구성될 수도 있다. 컴퓨터 프로그램은, 서로 동작 가능하게 통신하는, 그리고 정보 또는 명령어를 디스플레이에 전달하기 위한 모듈로 구성될 수도 있다.
비록 피쳐 및 엘리먼트가 상기에서 특정한 조합으로 설명되지만, 기술 분야의 숙련된 자는, 각각의 피쳐 또는 엘리먼트가 단독으로 또는 다른 피쳐 및 엘리먼트와의 임의의 조합으로 사용될 수 있다는 것을 인식할 것이다. 또한, 본원에서 설명되는 방법은, 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독 가능 매체에 통합되는 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수도 있다. 컴퓨터 판독 가능 매체의 예는 전자 신호(유선 또는 무선 연결을 통해 송신됨) 및 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 판독 가능 저장 매체의 예는, 리드 온리 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 자기 매체 예컨대 내장 하드 디스크 및 착탈식 디스크, 광자기 매체, 및 광학 매체 예컨대 CD-ROM 디스크, 및 디지털 다기능 디스크(digital versatile disk; DVD)를 포함하지만, 그러나 이들로 제한되지는 않는다.

Claims (20)

  1. 시스템으로서,
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 커플링되며 프로그램 명령어를 저장하는 메모리
    를 포함하되, 상기 프로그램 명령어는 상기 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금:
    범용 리소스 로케이터(universal resource locator; URL) - 상기 URL은 복수의 자동화된 프로세스를 포함하는 실행 워크플로우 프로세스(running workflow process)의 적어도 하나의 자동화된 프로세스를 재개하는 것과 연관됨 - 를 생성하는 것;
    상기 URL을 외부 시스템/애플리케이션에 제공하는 것;
    상기 외부 시스템/애플리케이션에서의 트리거 이벤트에 응답하여, 상기 외부 시스템/애플리케이션으로부터 상기 URL의 입력을 수신하는 것; 및
    상기 URL의 상기 입력에 기초하여, 적어도 하나의 헤드리스 로봇(headless robot)에 의해 상기 적어도 하나의 자동화된 프로세스를 재개하는 것을
    수행하게 하는, 시스템.
  2. 제1항에 있어서, 상기 적어도 하나의 프로세스는 일시 중지(suspend)되거나 또는 아이들(idle)로 마킹되는, 시스템.
  3. 제1항에 있어서, 상기 적어도 하나의 자동화된 프로세스는 자동화된 프로세스의 세트이고, 상기 URL의 상기 입력에 기초하여, 자동화된 프로세스의 상기 세트를 재개하는, 시스템.
  4. 제1항에 있어서, 상기 시스템은 중앙 집중식의 실행 워크플로우 프로세스를 수행하는, 시스템.
  5. 제1항에 있어서, 상기 실행 워크플로우 프로세스는 장기 실행 워크플로우 프로세스(long term running workflow process)인, 시스템.
  6. 제1항에 있어서, 상기 URL의 상기 입력의 수신은 상기 외부 시스템/애플리케이션에 의해 결정되는 비즈니스 이벤트에 대한 응답인, 시스템.
  7. 제1항에 있어서, 상기 실행 워크플로우 프로세스는 지속적인(persistent), 시스템.
  8. 방법으로서,
    프로세서에 의해, 범용 리소스 로케이터(URL) - 상기 URL은 복수의 자동화된 프로세스를 포함하는 실행 워크플로우 프로세스의 적어도 하나의 자동화된 프로세스를 재개하는 것과 연관됨 - 를 생성하는 단계;
    상기 URL을 프로세서에 의해, 외부 시스템/애플리케이션에 제공하는 단계;
    상기 외부 시스템/애플리케이션에서의 트리거 이벤트에 응답하여 프로세서에 의해, 상기 외부 시스템/애플리케이션으로부터 상기 URL의 입력을 수신하는 단계; 및
    상기 URL의 상기 입력에 기초하여 프로세서에 의해, 적어도 하나의 헤드리스 로봇에 의해 상기 적어도 하나의 자동화된 프로세스를 재개하는 단계
    를 포함하는, 방법.
  9. 제8항에 있어서, 상기 적어도 하나의 프로세스는 일시 중지되거나 또는 아이들로 마킹되는, 방법.
  10. 제8항에 있어서, 상기 적어도 하나의 자동화된 프로세스는 자동화된 프로세스의 세트이고, 상기 URL의 상기 입력에 기초하여, 자동화된 프로세스의 상기 세트를 재개하는, 방법.
  11. 제8항에 있어서, 상기 실행 워크플로우 프로세스는 중앙 집중식의 실행 워크플로우 프로세스인, 방법.
  12. 제8항에 있어서, 상기 실행 워크플로우 프로세스는 장기 실행 워크플로우 프로세스인, 방법.
  13. 제8항에 있어서, 상기 URL의 상기 입력의 수신은 상기 외부 시스템/애플리케이션에 의해 결정되는 비즈니스 이벤트에 대한 응답인, 방법.
  14. 제8항에 있어서, 상기 실행 워크플로우 프로세스는 지속적인, 방법.
  15. 시스템으로서,
    하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 커플링되며 프로그램 명령어를 저장하는 메모리
    를 포함하되, 상기 프로그램 명령어는 상기 하나 이상의 프로세서에 의해 실행될 때 상기 하나 이상의 프로세서로 하여금:
    범용 리소스 로케이터(URL) - 상기 URL은 복수의 자동화된 프로세스를 포함하는 실행 워크플로우 프로세스의 적어도 하나의 자동화된 프로세스를 재개하는 것과 연관됨 - 를 수신하는 것;
    트리거 이벤트에 응답하여, 적어도 하나의 헤드리스 로봇에 의해 상기 적어도 하나의 자동화된 프로세스가 재개되게 하기 위해 상기 URL을 전송하는 것
    을 수행하게 하는, 시스템.
  16. 제15항에 있어서, 상기 적어도 하나의 프로세스는 일시 중지되거나 또는 아이들로 마킹되는, 시스템.
  17. 제16항에 있어서, 상기 적어도 하나의 자동화된 프로세스는 자동화된 프로세스의 세트이고, 상기 전송된 URL에 기초하여, 자동화된 프로세스의 상기 세트를 재개하는, 시스템.
  18. 제16항에 있어서, 상기 실행 워크플로우 프로세스는 장기 실행 워크플로우 프로세스인, 시스템.
  19. 제16항에 있어서, 상기 전송된 URL은 비즈니스 이벤트에 대한 응답인, 시스템.
  20. 제16항에 있어서, 상기 실행 워크플로우 프로세스는 지속적인, 시스템.
KR1020207028114A 2019-10-01 2020-09-23 외부 트리거에 기초한 로봇 프로세스 자동화 워크플로우의 재개 KR102448774B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/590,007 US11446818B2 (en) 2019-10-01 2019-10-01 Resuming robotic process automation workflows based on external triggers
US16/590,007 2019-10-01
PCT/US2020/052129 WO2021067085A1 (en) 2019-10-01 2020-09-23 Resuming robotic process automation workflows based on external triggers

Publications (2)

Publication Number Publication Date
KR20210040824A true KR20210040824A (ko) 2021-04-14
KR102448774B1 KR102448774B1 (ko) 2022-09-28

Family

ID=75162917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028114A KR102448774B1 (ko) 2019-10-01 2020-09-23 외부 트리거에 기초한 로봇 프로세스 자동화 워크플로우의 재개

Country Status (5)

Country Link
US (2) US11446818B2 (ko)
JP (1) JP2022550224A (ko)
KR (1) KR102448774B1 (ko)
CN (1) CN112889044A (ko)
WO (1) WO2021067085A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102339028B1 (ko) * 2021-06-17 2021-12-15 농업협동조합중앙회 로봇 프로세스 자동화 장치 및 그 동작 방법

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
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
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
CN113608802A (zh) * 2021-08-06 2021-11-05 上海艺赛旗软件股份有限公司 一种免安装运行rpa流程的方法及系统
CN113885418B (zh) * 2021-10-28 2024-03-08 中国人民解放军战略支援部队信息工程大学 多机仓环境参数的远程监控系统和方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070129847A1 (en) * 2005-12-07 2007-06-07 Cedric Ulmer Method and system for automatically organizing and achieving a pre-given task by means of robot functionalities
US20130212129A1 (en) * 2012-02-09 2013-08-15 Rockwell Automation Technologies, Inc. Industrial automation service templates for provisioning of cloud services
US20150206079A1 (en) * 2005-12-29 2015-07-23 Microsoft Corporation Modeling User Input and Interaction in Workflow Based Applications
KR20150096286A (ko) * 2014-02-14 2015-08-24 주식회사 인피니플럭스 유휴 컴퓨터를 활용한 클라우드 대용량 데이터 분석 방법

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3103713A (en) 1960-08-29 1963-09-17 Amerock Corp Sash lock
US8103713B2 (en) 2001-10-09 2012-01-24 Jade Acquisition Corporation System and method for managing service interactions
US20030233341A1 (en) 2002-05-29 2003-12-18 Taylor Amanda Kim Systems and methods for work list prediction
US20040103014A1 (en) * 2002-11-25 2004-05-27 Teegan Hugh A. System and method for composing and constraining automated workflow
JP4300196B2 (ja) * 2005-05-26 2009-07-22 株式会社東芝 コマンド実行装置、コマンド実行方法およびコマンド実行プログラム
US7809525B2 (en) * 2007-07-31 2010-10-05 International Business Machines Corporation Automatic configuration of robotic transaction playback through analysis of previously collected traffic patterns
US20100064357A1 (en) 2008-09-09 2010-03-11 Kerstin Baird Business Processing System Combining Human Workflow, Distributed Events, And Automated Processes
KR101248802B1 (ko) * 2008-10-31 2013-03-29 한국전자통신연구원 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법
US8689217B2 (en) * 2008-10-31 2014-04-01 Electronics And Telecommunications Research Institute System and method for thread processing robot software components responsive to periodic, dedicated, and passive modes
US20100153482A1 (en) 2008-12-10 2010-06-17 Full Armor Corporation Cloud-Based Automation of Resources
US8522256B2 (en) * 2010-10-12 2013-08-27 Microsoft Corporation Hosting non-messaging workflows in a messaging host
US8375389B2 (en) 2010-10-20 2013-02-12 Microsoft Corporation Ordered scheduling of suspended processes based on resumption events
US8812403B2 (en) 2010-11-08 2014-08-19 Microsoft Corporation Long term workflow management
KR101176913B1 (ko) 2010-12-09 2012-08-30 주식회사 루셈 핸들러의 리모트 콘트롤러 및 원격 제어 방법과, 이를 적용한 반도체 필름 테스트 제어 시스템
US20120166244A1 (en) * 2010-12-28 2012-06-28 Microsoft Corporation Not-started customer relationship management (crm) dialogs
JP5582422B2 (ja) * 2012-03-16 2014-09-03 株式会社安川電機 ロボットシステム
US10380627B2 (en) * 2015-02-12 2019-08-13 Kenshoo Ltd. Identification of software robot activity
US10157044B2 (en) * 2015-12-04 2018-12-18 Vmware, Inc. Automated application-release-management subsystem
US11157855B2 (en) * 2017-01-09 2021-10-26 Sutherland Global Services Inc. Robotics process automation platform
US10682761B2 (en) * 2017-06-21 2020-06-16 Nice Ltd System and method for detecting and fixing robotic process automation failures
US10489502B2 (en) * 2017-06-30 2019-11-26 Accenture Global Solutions Limited Document processing
US10726045B2 (en) * 2018-03-19 2020-07-28 Accenture Global Solutions Limited Resource-efficient record processing in unified automation platforms for robotic process automation
WO2020006076A1 (en) * 2018-06-27 2020-01-02 Q2 Software, Inc. Method and system for automating web processes utilizing an abstractable underlying platform layer
US11281936B2 (en) * 2018-12-31 2022-03-22 Kofax, Inc. Systems and methods for identifying processes for robotic automation and building models therefor
US10860905B1 (en) * 2019-10-16 2020-12-08 UiPath, Inc. Long running workflows for document processing using robotic process automation

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070129847A1 (en) * 2005-12-07 2007-06-07 Cedric Ulmer Method and system for automatically organizing and achieving a pre-given task by means of robot functionalities
US20150206079A1 (en) * 2005-12-29 2015-07-23 Microsoft Corporation Modeling User Input and Interaction in Workflow Based Applications
US20130212129A1 (en) * 2012-02-09 2013-08-15 Rockwell Automation Technologies, Inc. Industrial automation service templates for provisioning of cloud services
KR20150096286A (ko) * 2014-02-14 2015-08-24 주식회사 인피니플럭스 유휴 컴퓨터를 활용한 클라우드 대용량 데이터 분석 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Arthure S. Hitomi et al. ‘Distributed Workflow using HTTP: Example using Software Pre-requirements’. 1999.04., pp.1-6.* *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102339028B1 (ko) * 2021-06-17 2021-12-15 농업협동조합중앙회 로봇 프로세스 자동화 장치 및 그 동작 방법

Also Published As

Publication number Publication date
US20210094176A1 (en) 2021-04-01
JP2022550224A (ja) 2022-12-01
US20220355477A1 (en) 2022-11-10
WO2021067085A1 (en) 2021-04-08
CN112889044A (zh) 2021-06-01
KR102448774B1 (ko) 2022-09-28
US11446818B2 (en) 2022-09-20
US11745344B2 (en) 2023-09-05

Similar Documents

Publication Publication Date Title
KR102448774B1 (ko) 외부 트리거에 기초한 로봇 프로세스 자동화 워크플로우의 재개
CN113334371A (zh) 用于机器人流程自动化的自动化窗口
CN115243838A (zh) 针对机器人流程自动化(rpa)机器人的会话间自动化
TWI770622B (zh) 經由在第二通信期中運行的機器人程序自動化機器人使在第一通信期中運行的程序自動化
KR20220148081A (ko) 로봇 프로세스 자동화(rpa)를 위한 프로세스내 트리거 관리
US11334828B2 (en) Automated data mapping wizard for robotic process automation (RPA) or enterprise systems
US20230373087A1 (en) Localized configurations of distributed-packaged robotic processes
TW202219666A (zh) 經由在第二通信期中運行的機器人程序自動化機器人使在第一通信期中運行的程序自動化
EP3800595A1 (en) Resuming robotic process automation workflows based on external triggers
US11453131B2 (en) Method and apparatus for remote native automation decoupling
US11308267B1 (en) Artifacts reference creation and dependency tracking
US20210405999A1 (en) Context-aware undo-redo service of an application development platform
KR20230110380A (ko) 로봇 프로세스에 의한 안내된 동작
CN116262350A (zh) 用于机器人过程自动化的多目标库、项目和活动

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