KR20230165086A - Method for recording and executing for rpa task - Google Patents

Method for recording and executing for rpa task Download PDF

Info

Publication number
KR20230165086A
KR20230165086A KR1020220094791A KR20220094791A KR20230165086A KR 20230165086 A KR20230165086 A KR 20230165086A KR 1020220094791 A KR1020220094791 A KR 1020220094791A KR 20220094791 A KR20220094791 A KR 20220094791A KR 20230165086 A KR20230165086 A KR 20230165086A
Authority
KR
South Korea
Prior art keywords
execution
external
rpa
computing device
execution environment
Prior art date
Application number
KR1020220094791A
Other languages
Korean (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 삼성에스디에스 주식회사
Priority to US18/202,476 priority Critical patent/US20230385086A1/en
Publication of KR20230165086A publication Critical patent/KR20230165086A/en

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/541Interprogram communication via adapters, e.g. between incompatible applications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

RPA 태스크의 레코딩 방법 및 실행 방법이 제공된다. 본 개시의 일 실시예에 따른 RPA 태스크의 레코딩 방법은, RPA 태스크의 레코딩 상황에서, 외부 데스크톱의 윈도우 영역 내부의 객체를 선택하는 사용자 입력에 응답하여, 상기 외부 데스크톱의 에이전트로부터, 상기 사용자 입력에 의하여 선택된 객체에 대한 객체 정보를 수신하는 단계와, 상기 수신된 객체 정보를 이용하여 상기 RPA 태스크의 명세 데이터에 액션 정보를 추가하는 단계를 포함할 수 있다.A recording method and execution method of RPA tasks are provided. A recording method of an RPA task according to an embodiment of the present disclosure is, in a recording situation of an RPA task, in response to a user input for selecting an object inside a window area of an external desktop, from an agent of the external desktop, to the user input. It may include receiving object information about the object selected by and adding action information to the specification data of the RPA task using the received object information.

Description

RPA 태스크의 레코딩 및 실행 방법{METHOD FOR RECORDING AND EXECUTING FOR RPA TASK}Method for recording and executing RPA tasks {METHOD FOR RECORDING AND EXECUTING FOR RPA TASK}

본 개시는 RPA(Robotics Process Automation) 기술에 관한 것이다. 보다 자세하게는, RPA 기술에 의하여 수행되는 일련의 액션들의 레코딩 및 실행 방법에 대한 것이다.This disclosure relates to Robotics Process Automation (RPA) technology. More specifically, it is about a method of recording and executing a series of actions performed by RPA technology.

사용자가 반복적으로 수행하는 업무를 자동화하는 기술인 로봇 프로세스 자동화 기술(Robotic Process Automation, 이하, RPA)은, 최근 큰 관심을 받아온 IT(Information Technology) 기술 중 하나이다. RPA 기술에 의하여 수행되는 일련의 액션들을 RPA 태스크(RPA TASK)로 지칭할 수 있을 것이다. RPA 태스크는 다양한 프로세스 인스턴스에서 실행될 수 있다. 예를 들어, RPA 태스크는 서버에 설치된 운영 체제(OS)에서 실행되거나, 사용자 단말의 운영 체제에서 실행될 수 있다.Robotic Process Automation (RPA), a technology that automates tasks repeatedly performed by users, is one of the IT (Information Technology) technologies that has recently received great attention. A series of actions performed by RPA technology may be referred to as RPA TASK. RPA tasks can run in various process instances. For example, an RPA task may be executed on an operating system (OS) installed on a server, or may be executed on the operating system of a user terminal.

한편, 사용자가 다양한 단말 장치를 이용할 수 있는 상황이 정착됨에 따라, 외부의 컴퓨팅 장치로서, 자신이 사용하던 컴퓨팅 장치에 접속하여 작업을 수행할 수 있도록 지원하는 외부 데스크톱 액세스 기술이 제공된다. 예를 들어, 원격 데스크톱 연결 기능이 제공된다. 즉, 운영체제가 제공하는 데스크톱을 생성하는 컴퓨팅 장치와, 상기 데스크톱 화면을 디스플레이하고, 사용자 입력을 조작하는 컴퓨팅 장치가 서로 분리될 수 있는 것이다. 외부 데스크톱 액세스 기술은 가상 데스크톱 인프라(VDI; Virtual Desktop Infrastructure) 기술로 진화되어 널리 사용되고 있다.Meanwhile, as the situation in which users can use various terminal devices becomes established, external desktop access technology that supports users to perform tasks by accessing the computing device they were using as an external computing device is provided. For example, remote desktop connection functionality is provided. In other words, the computing device that creates the desktop provided by the operating system and the computing device that displays the desktop screen and manipulates user input can be separated from each other. External desktop access technology has evolved into Virtual Desktop Infrastructure (VDI) technology and is widely used.

그런데, RPA 기술과 외부 데스크톱 액세스 기술이 접목되는 지점에서의 불편함이 존재한다. 예를 들어, RPA 태스크 레코딩 상황에서 외부 데스크톱 윈도우 내부의 객체를 선택하는 경우, 선택된 객체에 대한 상세 정보를 알 수 없기 때문에, 외부 데스크톱 윈도우 내부의 객체와 관련된 액션은 RPA 태스크에 포함되기 어려운 것이다. RPA 태스크에 포함될 수 있는 액션에 대한 이러한 한계는 RPA 태스크로 정의함으로써 자동화할 수 있는 반복 작업의 범위를 제한한다.However, there are inconveniences at the point where RPA technology and external desktop access technology are combined. For example, when selecting an object inside an external desktop window in an RPA task recording situation, detailed information about the selected object cannot be known, so actions related to the object inside the external desktop window are difficult to include in the RPA task. These limits on the actions that can be included in an RPA task limit the range of repetitive tasks that can be automated by defining them as RPA tasks.

한국등록특허 제2337270호Korean Patent No. 2337270 한국등록특허 제2227687호Korean Patent No. 2227687 미국공개특허 제2022-0100539호US Patent Publication No. 2022-0100539

본 개시의 몇몇 실시예들에서 해결하고자 하는 기술적 과제는, 외부 데스크톱의 객체를 이용한 액션도 정확하게 레코딩 할 수 있는 RPA 태스크 레코딩 방법 및 그 방법이 적용된 컴퓨팅 시스템을 제공하는 것이다.The technical problem to be solved in some embodiments of the present disclosure is to provide an RPA task recording method that can accurately record actions using objects on an external desktop and a computing system to which the method is applied.

본 개시의 몇몇 실시예들에서 해결하고자 하는 기술적 과제는, 외부 데스크톱의 객체를 이용한 액션을 포함한 RPA 태스크도 정확하게 실행 할 수 있는 RPA 태스크 실행 방법 및 그 방법이 적용된 컴퓨팅 시스템을 제공하는 것이다.The technical problem to be solved in some embodiments of the present disclosure is to provide an RPA task execution method that can accurately execute RPA tasks, including actions using objects on an external desktop, and a computing system to which the method is applied.

본 개시의 몇몇 실시예들에서 해결하고자 하는 기술적 과제는, RPA 태스크에 포함된 액션과 관련된 객체가, RPA 태스크가 실행되는 데스크톱에 아직 연결되지 않은 외부 데스크톱에 존재하는 것이라도, 그 RPA 태스크를 정확하게 실행 할 수 있는 RPA 태스크 실행 방법 및 그 방법이 적용된 컴퓨팅 시스템을 제공하는 것이다.The technical problem to be solved in some embodiments of the present disclosure is to accurately execute the RPA task even if an object related to an action included in the RPA task exists on an external desktop that is not yet connected to the desktop on which the RPA task is running. It provides an executable RPA task execution method and a computing system to which the method is applied.

본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present disclosure are not limited to the technical problems mentioned above, and other technical problems not mentioned can be clearly understood by those skilled in the art from the description below.

상기 기술적 과제를 해결하기 위한, 본 개시의 일 실시예에 따른 RPA 태스크 레코딩 방법은, RPA 태스크의 레코딩 상황에서 외부 데스크톱의 윈도우 영역 내부의 객체를 선택하는 사용자 입력에 응답하여, 상기 외부 데스크톱의 에이전트로부터, 상기 사용자 입력에 의하여 선택된 객체에 대한 객체 정보를 수신하는 단계와, 상기 수신된 객체 정보를 이용하여 상기 RPA 태스크의 명세 데이터에 액션 정보를 추가하는 단계를 포함한다.In order to solve the above technical problem, the RPA task recording method according to an embodiment of the present disclosure includes, in response to a user input of selecting an object inside the window area of an external desktop in a recording situation of an RPA task, an agent of the external desktop. It includes receiving object information about the object selected by the user input from , and adding action information to the specification data of the RPA task using the received object information.

상기 객체 정보를 수신하는 단계는, 상기 RPA 태스크의 레코딩 상황에서, 상기 외부 데스크톱의 윈도우 영역 내부에 커서가 진입하는 것을 감지하는 것에 응답하여, 상기 에이전트에 객체 추출 모드 전환 요청을 송신하는 단계와, 상기 객체 추출 모드로 전환된 상기 에이전트에 의하여 생성된 상기 객체 정보를 수신하는 단계 중 적어도 일부를 포함할 수 있다.The step of receiving the object information includes, in response to detecting that a cursor enters a window area of the external desktop in a recording situation of the RPA task, sending an object extraction mode switch request to the agent; It may include at least part of the step of receiving the object information generated by the agent switched to the object extraction mode.

또한, 상기 객체 정보를 수신하는 단계는 상기 에이전트에 의하여 생성된 상기 외부 데스크톱의 실행 환경 정보를 더 수신하는 단계를 포함할 수도 있다.Additionally, the step of receiving the object information may further include receiving execution environment information of the external desktop created by the agent.

상기 기술적 과제를 해결하기 위한, 본 개시의 다른 실시예에 따른 RPA 태스크 실행 방법은, RPA 태스크의 명세 데이터를 획득하는 단계와, 상기 획득된 명세 데이터를 이용하여 상기 RPA 태스크를 구성하는 각 액션을 식별하는 단계와, 상기 식별된 액션의 실행 환경을 결정하는 단계와, 상기 결정된 실행 환경을 이용하여 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 단계와, 상기 식별된 액션의 실행 장치가 외부 장치로 결정된 경우, 상기 식별된 액션의 실행을 위한 데이터를 상기 컴퓨팅 장치에 연결된 외부 데스크톱의 에이전트에 송신하는 단계와, 상기 실행 환경을 결정하는 단계와, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계와, 송신하는 단계를 상기 식별된 각 액션의 순서에 따라 반복하는 단계를 포함할 수 있다.In order to solve the above technical problem, an RPA task execution method according to another embodiment of the present disclosure includes the steps of acquiring specification data of the RPA task, and each action constituting the RPA task using the obtained specification data. Identifying, determining an execution environment for the identified action, and selecting an execution device for the identified action using the determined execution environment among the computing device and an external device corresponding to an external desktop connected to the computing device. determining one of the following, and when the execution device of the identified action is determined to be an external device, transmitting data for execution of the identified action to an agent of an external desktop connected to the computing device, and creating the execution environment. It may include repeating the steps of determining, determining the execution device of the identified action as one of the computing device and an external device, and transmitting the action in the order of each identified action.

상기 RPA 태스크 실행 방법은, 상기 컴퓨팅 장치에 연결된 각각의 외부 데스크톱의 에이전트로부터 실행 환경 정보를 수신하는 단계를 더 포함할 수 있다. 이 때, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계는, 상기 식별된 액션의 실행 환경을 이용하여 상기 컴퓨팅 장치에서 상기 식별된 액션을 실행할 수 있는지 여부를 결정하는 단계와, 상기 컴퓨팅 장치에서 상기 식별된 액션을 실행할 수 있는 것으로 결정되면, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치로 결정하는 단계와, 상기 컴퓨팅 장치에서 상기 식별된 액션을 실행할 수 없는 것으로 결정되면, 상기 수신된 실행 환경 정보를 이용하여 상기 식별된 액션의 실행 장치를 상기 각각의 외부 데스크톱 중 하나로 결정하는 단계를 포함할 수 있다.The RPA task execution method may further include receiving execution environment information from an agent of each external desktop connected to the computing device. At this time, the step of determining the execution device of the identified action as one of the computing device and an external device determines whether the identified action can be executed on the computing device using the execution environment of the identified action. and, if it is determined that the identified action can be executed on the computing device, determining that the computing device is an execution device for the identified action, and determining that the computing device cannot execute the identified action. Once determined, it may include determining the execution device of the identified action as one of the respective external desktops using the received execution environment information.

상기 RPA 태스크 실행 방법은 상기 RPA 태스크의 실행을 가리키는 사용자 입력을 입력받는 단계를 더 포함할 수도 있다. 이 때, 상기 실행 환경 정보를 수신하는 단계는 상기 사용자 입력을 입력 받는 것에 응답하여, 상기 실행 환경 정보를 수신하는 단계를 포함할 수 있다.The RPA task execution method may further include receiving a user input indicating execution of the RPA task. At this time, the step of receiving the execution environment information may include receiving the execution environment information in response to receiving the user input.

상기 실행 환경 정보는 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보를 포함할 수 있다. 이 때, 상기 수신된 실행 환경 정보를 이용하여 상기 식별된 액션의 실행 장치를 상기 각각의 외부 데스크톱 중 하나로 결정하는 단계는, 상기 수신된 실행 환경 정보 중에서, 상기 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보 모두가 상기 식별된 액션의 실행 환경에 부합하는 실행 환경 정보를 가지는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계와, 상기 수신된 실행 환경 정보 중에서, 상기 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보 모두가 상기 식별된 액션의 실행 환경에 부합하는 실행 환경 정보를 가지는 외부 데스크톱이 존재하지 않는 경우, 상기 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보 중 일부 필수 정보 만을 만족시키는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계를 포함할 수 있다.The execution environment information may include execution environment type information, installed application information, resolution information, and hardware available resource information. At this time, the step of determining the execution device of the identified action as one of the external desktops using the received execution environment information includes, among the received execution environment information, the execution environment type information, installed application information, determining an external desktop having execution environment information in which both resolution information and hardware available resource information match the execution environment of the identified action as an execution device of the identified action; and, from among the received execution environment information, the execution environment information. If there is no external desktop having execution environment information in which all of the environment type information, installed application information, resolution information, and hardware available resource information match the execution environment of the identified action, the execution environment type information, installed application information, It may include determining an external desktop that satisfies only some essential information among resolution information and hardware available resource information as an execution device for the identified action.

상기 수신된 실행 환경 정보를 이용하여 상기 식별된 액션의 실행 장치를 상기 각각의 외부 데스크톱 중 하나로 결정하는 단계는, 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 경고 메시지를 표시하고, RPA 태스크의 실행을 중단하는 단계를 포함할 수 있다.The step of determining the execution device of the identified action as one of the external desktops using the received execution environment information includes displaying a warning message if there is no external desktop matching the received execution environment information. and may include stopping execution of the RPA task.

상기 수신된 실행 환경 정보를 이용하여 상기 식별된 액션의 실행 장치를 상기 각각의 외부 데스크톱 중 하나로 결정하는 단계는 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계를 포함할 수 있다. 이 때, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계는 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱에 신규로 연결하는 단계와, 상기 신규로 연결된 외부 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계를 포함할 수 있다.The step of determining the execution device of the identified action as one of the respective external desktops using the received execution environment information may be performed by the user of the computing device when an external desktop matching the received execution environment information does not exist. It may include determining, among accessible desktops registered in advance, an external desktop matching the received execution environment information as an execution device for the identified action. At this time, the step of determining an external desktop matching the received execution environment information among the accessible desktops registered in advance by the user of the computing device as an execution device of the identified action may include determining an external desktop matching the received execution environment information as an execution device of the identified action. When a desktop does not exist, a step of newly connecting to an accessible desktop registered in advance by a user of the computing device, and selecting an external desktop matching the received execution environment information from among the newly connected external desktops by the identified action. It may include a step of determining the execution device.

상기 기술적 과제를 해결하기 위한, 본 개시의 또 다른 실시예에 따른 컴퓨팅 시스템은, 사용자 단말과 연결되는 통신 인터페이스와, 프로세서와, 상기 프로세서에 로드(load)되는 컴퓨터 프로그램을 저장하는 메모리를 포함할 수 있다. 이 때, 상기 컴퓨터 프로그램은 상기 통신 인터페이스를 통하여 RPA 태스크의 명세 데이터를 수신하는 인스트럭션(instruction)과, 상기 사용자 단말로부터 상기 RPA 태스크의 실행 명령을 수신하는 인스트럭션과, 상기 RPA 태스크의 실행 명령 수신에 응답하여, 상기 RPA 태스크를 실행하는 인스트럭션을 포함할 수 있다. 이 때, 상기 RPA 태스크를 실행하는 인스트럭션은 상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하는 인스트럭션과, 상기 식별된 액션의 실행 환경을 결정하는 인스트럭션과, 상기 결정된 실행 환경을 이용하여 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 인스트럭션과, 상기 식별된 액션의 실행 장치가 외부 장치로 결정된 경우, 상기 식별된 액션의 실행을 위한 데이터를 상기 컴퓨팅 장치에 연결된 외부 데스크톱의 에이전트에 송신하는 인스트럭션과, 상기 실행 환경을 결정하는 단계와, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계와, 송신하는 단계를 상기 식별된 각 액션의 순서에 따라 반복하는 인스트럭션을 포함할 수 있다. In order to solve the above technical problem, a computing system according to another embodiment of the present disclosure may include a communication interface connected to a user terminal, a processor, and a memory that stores a computer program loaded into the processor. You can. At this time, the computer program includes an instruction for receiving specification data of the RPA task through the communication interface, an instruction for receiving an execution command for the RPA task from the user terminal, and an instruction for receiving an execution command for the RPA task. In response, it may include instructions for executing the RPA task. At this time, the instructions for executing the RPA task include an instruction for identifying each action constituting the RPA task using the obtained specification data, an instruction for determining an execution environment for the identified action, and the determined execution. An instruction for determining the execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device using the environment, and when the execution device of the identified action is determined to be an external device, An instruction for transmitting data for execution of the identified action to an agent of an external desktop connected to the computing device, determining the execution environment, and selecting an execution device of the identified action as either the computing device or an external device. It may include instructions for repeating the step of determining one and the step of transmitting according to the order of each identified action.

상기 컴퓨팅 시스템은, 상기 사용자 단말에 원격 데스크톱 서비스를 제공하는 시스템일 수 있다.The computing system may be a system that provides a remote desktop service to the user terminal.

상기 기술적 과제를 해결하기 위한, 본 개시의 또 다른 실시예에 따른 RPA 태스크 실행 방법은 RPA 태스크의 명세 데이터를 획득하는 단계와, 상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하는 단계와, 상기 식별된 액션의 실행 환경을 결정하는 단계와, 상기 결정된 실행 환경을 이용하여, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 단계와, 상기 실행 환경을 결정하는 단계 및 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계를 상기 식별된 각 액션에 대하여 반복하는 단계와, 상기 식별된 액션의 상기 결정된 실행 장치가 상기 컴퓨팅 장치인 경우, 상기 식별된 액션을 실행하는 단계와, 상기 식별된 액션의 상기 결정된 실행 장치가 외부 장치인 경우, 상기 식별된 액션의 실행을 위한 데이터를 상기 외부 장치에 대응되는 에이전트에 송신하는 단계와, 상기 식별된 액션을 실행하는 단계와, 상기 식별된 액션의 실행을 위한 데이터를 상기 외부 장치에 대응되는 에이전트에 송신하는 단계를 상기 식별된 각 액션의 순서에 따라 반복하는 단계를 포함할 수 있다. In order to solve the above technical problem, an RPA task execution method according to another embodiment of the present disclosure includes the steps of acquiring specification data of an RPA task, and using the obtained specification data, each action constituting the RPA task Identifying, determining an execution environment of the identified action, and using the determined execution environment, executing the identified action device to an external device corresponding to the computing device and an external desktop connected to the computing device. repeating for each identified action the steps of determining one of the devices, determining an execution environment, and determining an execution device of the identified action to be one of the computing device and an external device; If the determined execution device of the identified action is the computing device, executing the identified action, and if the determined execution device of the identified action is an external device, data for execution of the identified action transmitting to an agent corresponding to the external device, executing the identified action, and transmitting data for execution of the identified action to the agent corresponding to the external device. It may include repeating steps according to the order of actions.

상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 단계는, 상기 식별된 액션의 실행 장치가 결정될 수 없는 경우, 알림 메시지를 표시하고 상기 RPA 태스크의 실행을 중단하는 단계를 포함할 수 있다.The step of determining the execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device includes: displaying a notification message when the execution device of the identified action cannot be determined; It may include stopping execution of the RPA task.

상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 단계는, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계와, 상기 실행 장치로 결정된 외부 데스크톱에 신규로 연결하는 단계를 포함할 수 있다.The step of determining the execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device includes the received execution environment among the accessible desktops registered in advance by the user of the computing device. It may include determining an external desktop matching the information as an execution device for the identified action, and newly connecting to the external desktop determined as the execution device.

상기 기술적 과제를 해결하기 위한, 본 개시의 또 다른 실시예에 따른 RPA 태스크 실행 방법은 RPA 태스크의 명세 데이터를 획득하는 단계와, 상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하는 단계와, 상기 식별된 액션의 실행 환경을 이용하여, 상기 RPA 태스크의 포괄 실행 환경을 결정하는 단계와, 상기 컴퓨팅 장치의 실행 환경이 상기 결정된 포괄 실행 환경에 부합하는 경우, 상기 RPA 태스크의 실행 장치를 상기 컴퓨팅 장치로 결정하는 단계와, 상기 컴퓨팅 장치의 실행 환경의 적어도 일부가 상기 결정된 포괄 실행 환경에 부합하지 않는 경우, 상기 컴퓨팅 장치에 연결된 외부 데스크톱 중에서 상기 결정된 포괄 실행 환경에 부합하는 외부 데스크톱을 상기 RPA 태스크의 실행 장치로 결정하고, 상기 RPA 태스크의 실행 장치에 상기 RPA 태스크의 명세 데이터를 송신하는 단계를 포함할 수 있다.In order to solve the above technical problem, an RPA task execution method according to another embodiment of the present disclosure includes the steps of acquiring specification data of an RPA task, and using the obtained specification data, each action constituting the RPA task Identifying, using the execution environment of the identified action, determining a generic execution environment of the RPA task, and if the execution environment of the computing device matches the determined generic execution environment, the RPA task determining an execution device as the computing device, and if at least a part of the execution environment of the computing device does not conform to the determined comprehensive execution environment, selecting an external desktop connected to the computing device that matches the determined comprehensive execution environment. It may include determining an external desktop as an execution device of the RPA task and transmitting specification data of the RPA task to the execution device of the RPA task.

상기 RPA 태스크의 포괄 실행 환경을 결정하는 단계는, 상기 식별된 액션의 실행 환경을 모두 'AND 조건'으로 종합하여 상기 포괄 실행 환경을 결정하는 단계를 포함할 수 있다.The step of determining the comprehensive execution environment of the RPA task may include determining the comprehensive execution environment by combining all execution environments of the identified actions with an 'AND condition'.

도 1 내지 도 2는 본 개시의 일 실시예에 따른, RPA 시스템의 구성도이다.
도 3은 본 개시의 다른 실시예에 따른 RPA 태스크 레코딩 방법의 신호 흐름도이다.
도 4는 본 개시의 몇몇 실시예들에서 에이전트에 의하여 구성되는 예시적인 실행 환경 정보를 설명하기 위한 도면이다.
도 5 내지 도 7은 본 개시의 따 다른 실시예들에 따른 RPA 태스크 실행 방법들을 설명하기 위한 신호 흐름도들이다.
도 8은 본 개시의 몇몇 실시예들에서 설명된 컴퓨팅 시스템의 하드웨어 구성도이다.
1 to 2 are configuration diagrams of an RPA system according to an embodiment of the present disclosure.
Figure 3 is a signal flow diagram of an RPA task recording method according to another embodiment of the present disclosure.
FIG. 4 is a diagram illustrating exemplary execution environment information configured by an agent in some embodiments of the present disclosure.
5 to 7 are signal flow diagrams for explaining RPA task execution methods according to different embodiments of the present disclosure.
8 is a hardware configuration diagram of a computing system described in some embodiments of the present disclosure.

이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명의 기술적 사상을 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다. 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다. 이하, 도면들을 참조하여 본 개시의 몇몇 실시예들을 설명한다.Hereinafter, preferred embodiments of the present disclosure will be described in detail with reference to the attached drawings. The advantages and features of the present invention and methods for achieving them will become clear by referring to the embodiments described in detail below along with the accompanying drawings. However, the technical idea of the present invention is not limited to the following embodiments and may be implemented in various different forms. The following examples are merely intended to complete the technical idea of the present invention and to be used in the technical field to which the present invention pertains. It is provided to fully inform those skilled in the art of the scope of the present invention, and the technical idea of the present invention is only defined by the scope of the claims. In describing the present disclosure, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description will be omitted. Hereinafter, several embodiments of the present disclosure will be described with reference to the drawings.

본 개시의 일 실시예에 따른 RPA 시스템을 도 1 내지 도 2를 참조하여 설명한다.An RPA system according to an embodiment of the present disclosure will be described with reference to FIGS. 1 and 2.

본 실시예에 따른 RPA 시스템은 반복 작업의 자동화를 위한 RPA 기술이 적용된 하나 이상의 컴퓨팅 시스템으로 구성될 수 있다. 또한, 본 실시예에 따른 RPA 시스템은 외부 데스크톱의 조작을 지원하는 하나 이상의 컴퓨팅 시스템과 연계될 수 있다.The RPA system according to this embodiment may be composed of one or more computing systems to which RPA technology is applied for automation of repetitive tasks. Additionally, the RPA system according to this embodiment may be linked to one or more computing systems that support the operation of an external desktop.

도 1에 도시된 바와 같이, 본 실시예에 따른 RPA 시스템은 사용자 단말(20), 외부 장치(11, 12) 및 클라우드 리소스(200)를 포함할 수 있다.As shown in FIG. 1, the RPA system according to this embodiment may include a user terminal 20, external devices 11 and 12, and cloud resources 200.

사용자 단말(20)은 외부 데스크톱의 디스플레이 및 디스플레이된 외부 데스크톱에 대한 조작을 위한 컴퓨팅 장치로서, 사용자가 사용하는 컴퓨팅 장치이다. 반면, 외부 장치(11, 12) 및 클라우드 리소스(200)는 상기 외부 데스크톱을 제공하는 운영 체제(OS; Operating System)가 설치된 컴퓨팅 장치이다. 즉, 상기 외부 데스크톱은 실행 측 컴퓨팅 장치와 조작 측 컴퓨팅 장치가 서로 분리된 것이다.The user terminal 20 is a computing device used by a user to display an external desktop and manipulate the displayed external desktop. On the other hand, the external devices 11 and 12 and the cloud resource 200 are computing devices installed with an operating system (OS) that provides the external desktop. That is, the external desktop has separate execution-side computing devices and operation-side computing devices.

상술한 바와 같이 '외부 데스크톱'은 그래픽 사용자 인터페이스(GUI; Graphic User Interface)형태의 사용자 조작을 지원하는 소프트웨어 인스턴스(instance)로 이해될 수 있을 것이다. 예를 들면, 제1 컴퓨팅 장치를 사용하는 사용자가 제2 컴퓨팅 장치에 원격 접속함으로서, 제1 컴퓨팅 장치의 운영 체제가 제공하는 데스크톱 화면에 제2 컴퓨팅 장치의 운영 체제가 제공하는 데스크톱 화면의 윈도우를 표시할 수 있을 것인데, 이 때 상기 제2 컴퓨팅 장치의 운영 체제가 제공하는 데스크톱 화면이 상기 '외부 데스크톱'의 예시인 것으로 이해될 수 있을 것이다.As described above, an 'external desktop' can be understood as a software instance that supports user operation in the form of a graphical user interface (GUI). For example, when a user using a first computing device remotely accesses a second computing device, a window of the desktop screen provided by the operating system of the second computing device is displayed on the desktop screen provided by the operating system of the first computing device. It may be displayed, and at this time, the desktop screen provided by the operating system of the second computing device may be understood as an example of the 'external desktop'.

후술하겠지만, '외부 데스크톱'이 반드시 디스플레이 되어야 하는 것은 아니다. 즉, RPA 태스크를 실행하거나 RPA 태스크를 레코딩하는 컴퓨팅 장치와 '외부 데스크톱'에 설치된 에이전트 간에 서로 데이터를 송수신할 수 있도록 '연결'됨으로써, RPA 태스크 실행 시점에 컴퓨팅 장치가 외부 데스크톱의 에이전트에 실행 대상 액션에 대한 정보를 송신하거나, RPA 태스크 레코딩 시점에 외부 데스크톱의 에이전트가 선택된 객체에 대한 정보를 컴퓨팅 장치에 송신할 수 있다면, 그러한 조건을 만족시키는 그래픽 사용자 인터페이스 형태의 사용자 조작을 지원하는 모든 소프트웨어 인스턴스가 '외부 데스크톱'이 될 수 있는 것이다.As will be explained later, the 'external desktop' does not necessarily have to be displayed. In other words, the computing device that executes the RPA task or records the RPA task and the agent installed on the 'external desktop' are 'connected' to transmit and receive data with each other, so that at the time of RPA task execution, the computing device is assigned to the agent on the external desktop as the execution target. Any instance of software that supports user interaction in the form of a graphical user interface that satisfies those conditions, provided that it can transmit information about an action, or an agent on an external desktop at the time of RPA task recording, can transmit information about a selected object to the computing device. It can be an ‘external desktop’.

몇몇 실시예들에서, 상기 외부 데스크톱은 VDI(Virtual Desktop Infrastrure) 기술을 이용하여 제공될 수 있다. 이 때, 사용자 단말(20)은, 상기 외부 데스크톱의 제공을 서비스하는 VDI 서비스 서버(100)에 접속함으로써, 사용자 단말(20)의 데스크톱 화면에, 상기 외부 데스크톱의 윈도우를 생성하고 표시할 수 있다.In some embodiments, the external desktop may be provided using Virtual Desktop Infrastructure (VDI) technology. At this time, the user terminal 20 can create and display a window of the external desktop on the desktop screen of the user terminal 20 by connecting to the VDI service server 100 that services provision of the external desktop. .

클라우드 리소스(200)에 프로비저닝(provisioning) 된 가상 머신(VM; virtual machine)에 설치된 운영 체제가 상기 외부 데스크톱을 생성할 수 있다. 또한, 상기 가상 머신의 운영 체제 또는 외부 장치(11)의 운영 체제 상에 생성된 컨테이너(container)가 상기 외부 데스크톱을 생성할 수도 있을 것이다.An operating system installed on a virtual machine (VM) provisioned on the cloud resource 200 may create the external desktop. Additionally, a container created on the operating system of the virtual machine or the operating system of the external device 11 may create the external desktop.

클라우드 리소스(200)는 외부망과 하나 이상의 방화벽 시스템(미도시)에 의하여 패킷 송수신이 필터링 되는 폐쇄망(10) 내부에 위치할 수 있다. 즉, 클라우드 리소스(200)는 기업용 프라이빗 클라우드 시스템을 구성하는 하드웨어 리소스일 수 있는 것이다.The cloud resource 200 may be located inside a closed network 10 where packet transmission and reception are filtered by an external network and one or more firewall systems (not shown). In other words, the cloud resource 200 may be a hardware resource that constitutes a private cloud system for enterprises.

외부 장치(11)는 폐쇄망(10) 내부에 위치하는 데스크톱 PC 또는 노트북 PC일 수 있다. 이러한 외부 장치(11)에 설치된 운영 체제가 상기 외부 데스크톱을 생성할 수 있다. 몇몇 사용예에서, 회사 외부에 위치한 임직원은, 자신이 가지고 있는 노트북 PC의 데스크톱 화면에, 회사 내부에 위치한 자신의 데스크톱 PC(11)의 데스크톱 화면을 외부 데스크톱으로서 생성할 수 있을 것이다.The external device 11 may be a desktop PC or laptop PC located inside the closed network 10. The operating system installed on this external device 11 can create the external desktop. In some use cases, an employee located outside the company may be able to create the desktop screen of his or her desktop PC 11 located inside the company as an external desktop on the desktop screen of his or her laptop PC.

또한, 외부 장치(12)는 폐쇄망(10) 외부에 위치하는 데스크톱 PC 또는 노트북 PC일 수도 있다. 이러한 외부 장치(12)에 설치된 운영 체제가 상기 외부 데스크톱을 생성할 수 있다. 몇몇 사용예에서, 회사 외부에 위치한 임직원은, 자신이 가지고 있는 노트북 PC의 데스크톱 화면에, 자신의 자택에 설치된 데스크톱 PC(12)의 데스크톱 화면을 표시하고, 외부 데스크톱으로서 생성할 수 있을 것이다.Additionally, the external device 12 may be a desktop PC or laptop PC located outside the closed network 10. The operating system installed on this external device 12 can create the external desktop. In some use cases, an employee located outside the company may be able to display the desktop screen of the desktop PC 12 installed at his or her home on the desktop screen of his or her laptop PC and create it as an external desktop.

한편, 도 2에 도시된 바와 같이, VDI 기술을 이용하지 않고 사용자 단말(20)에 설치된 운영 체의 데스크톱 화면(21)에 원격 데스크톱 윈도우(30)를 생성할 수도 있을 것이다. 본 명세서에 기재된 '외부 데스크톱'은 일반적으로 통용되는 '원격 데스크톱'과 실질적으로 동일한 의미인 것으로 이해될 수 있을 것이다. 상술한 바와 같이, 원격 데스크톱 윈도우(30)는 외부 장치(12)에 설치된 운영 체제의 데스크톱 화면이거나, 클라우드 리소스(200)에 프로비저닝 된 가상 머신(미도시)에 설치된 운영 체제의 데스크톱 화면일 수 있다.Meanwhile, as shown in FIG. 2, a remote desktop window 30 may be created on the desktop screen 21 of the operating system installed on the user terminal 20 without using VDI technology. 'External desktop' described in this specification may be understood to have substantially the same meaning as the generally used 'remote desktop'. As described above, the remote desktop window 30 may be a desktop screen of an operating system installed on the external device 12, or may be a desktop screen of an operating system installed on a virtual machine (not shown) provisioned on the cloud resource 200. .

또한, 몇몇 실시예들에서, 본 명세서에 기재된 OS 데스크톱(21) 자체도 외부 데스크톱일 수도 있다. 예를 들어, VDI 기술을 이용하여 생성된 외부 데스크톱에서 다시 한번 외부 데스크톱 윈도우를 생성할 수 있는 것이다. 이처럼, 외부 데스크톱의 개념은 상기 외부 데스크톱의 화면을 생성한 주체와의 부모-자식 관계에 따른 상대적 개념임을 이해할 수 있을 것이다.Additionally, in some embodiments, the OS desktop 21 described herein may itself also be an external desktop. For example, an external desktop window can be created once again from an external desktop created using VDI technology. In this way, it can be understood that the concept of an external desktop is a relative concept according to the parent-child relationship with the subject who created the screen of the external desktop.

이하, 본 명세서에서 외부 데스크톱을 제공하는 컴퓨팅 장치를 '외부 장치'로 통칭하기로 한다. 예를 들어, 상술한 폐쇄망 내부의 데스크톱 PC 또는 노트북 PC, 폐쇄망 외부의 데스크톱 PC 또는 노트북 PC, 클라우드 리소스에 프로비저닝 된 가상 머신, 또는 상기 가상 머신에 생성된 컨테이너 환경이 상기 외부 장치가 될 수 있을 것이다.Hereinafter, in this specification, computing devices that provide an external desktop will be collectively referred to as 'external devices'. For example, the external device may be a desktop PC or laptop PC inside the above-described closed network, a desktop PC or laptop PC outside the closed network, a virtual machine provisioned on a cloud resource, or a container environment created in the virtual machine. There will be.

본 실시예에 따른 RPA 시스템은 외부 데스크톱에 포함된 객체를 이용한 액션을 포함하는 RPA 태스크의 레코딩 및 그 RPA 태스크의 실행을 지원할 수 있다.The RPA system according to this embodiment can support recording of RPA tasks including actions using objects included in an external desktop and execution of the RPA tasks.

상기 RPA 태스크는 모든 액션이 원격 데스크톱의 객체를 이용하는 것인 완전 원격 RPA 태스크(full remote RPA task)이거나, 일부 액션이 원격 데스크톱의 객체를 이용하는 것이고 나머지 액션은 사용자 단말의 운영 체제의 데스크톱의 객체를 이용하는 하이브리드 RPA 태스크(hybrid RPA task)일 수 있다.The RPA task is a full remote RPA task in which all actions use objects from the remote desktop, or some actions use objects from the remote desktop and the remaining actions use objects from the desktop of the operating system of the user terminal. It may be a hybrid RPA task that is used.

즉, 본 실시예에 따른 RPA 시스템은 RPA 태스크에 포함된 액션이 어떤 데스크톱의 객체를 조작하는 것인지와 무관하게 그 레코딩과 실행을 지원하는, 뛰어난 확장성을 제공하는 것이다. 이러한 확장성은 RPA 시스템의 사용자로 하여금 더 다양한 반복 작업을 자동화 할 수 있도록 할 것이다.In other words, the RPA system according to this embodiment provides excellent scalability by supporting recording and execution of actions included in the RPA task regardless of which desktop object is manipulated. This scalability will allow users of RPA systems to automate a wider variety of repetitive tasks.

본 실시예에 따른 RPA 시스템의 상기 외부 장치는 에이전트를 상시 실행하는 것일 수 있다. 예를 들어, 상기 에이전트는 상기 외부 장치의 운영 체제의 부팅과 함께 백그라운드에서 상시 실행될 수 있을 것이다. 이를 위해, 각 운영 체제의 종류 별 에이전트 바이너리가 사전에 배포(deploy) 및 실행될 수 있을 것이다. 또한, 도 1을 참조하여 설명한 VDI 서비스 서버(100)가 상기 에이전트 바이너리의 배포 및 실행을 관리할 수 있을 것이다.The external device of the RPA system according to this embodiment may always run an agent. For example, the agent may always run in the background when the operating system of the external device boots. To this end, agent binaries for each type of operating system can be deployed and executed in advance. Additionally, the VDI service server 100 described with reference to FIG. 1 may manage distribution and execution of the agent binary.

본 실시예에 따른 RPA 시스템의 동작을 설명한다.The operation of the RPA system according to this embodiment will be described.

먼저, 본 실시예에 따른 RPA 시스템의 RPA 태스크 레코딩 관련 동작을 설명한다. 사용자 단말(20)은, RPA 태스크의 레코딩 상황에서, 외부 데스크톱의 윈도우(30)의 영역 내부의 객체를 선택하는 사용자 입력에 응답하여, 상기 외부 데스크톱의 에이전트로부터, 상기 사용자 입력에 의하여 선택된 객체에 대한 객체 정보를 수신한다. 또한, 사용자 단말(20)은 상기 수신된 객체 정보를 이용하여 상기 RPA 태스크의 명세 데이터에 액션 정보를 추가한다. 물론, 사용자 단말(20)은 사용자 단말의 운영 체제의 데스크톱(21)의 객체를 선택하는 사용자 입력이 있다면, 상기 선택된 객체에 대한 정보를 포함하는 액션 정보를 생성하고, 상기 RPA 태스크의 명세 데이터에 액션 정보를 추가할 것이다.First, the RPA task recording-related operations of the RPA system according to this embodiment will be described. In a recording situation of an RPA task, the user terminal 20 responds to a user input for selecting an object inside the area of the window 30 of the external desktop, from the agent of the external desktop, to the object selected by the user input. Receive object information about Additionally, the user terminal 20 adds action information to the specification data of the RPA task using the received object information. Of course, if there is a user input for selecting an object on the desktop 21 of the user terminal's operating system, the user terminal 20 generates action information including information about the selected object and stores it in the specification data of the RPA task. We will add action information.

사용자 단말(20)은 RPA 태스크의 레코딩이 진행 되는 동안, 상기 외부 데스크톱의 에이전트로부터 수신된 객체 정보를 이용한 액션 정보 또는 자체적으로 생성한 객체 정보를 이용한 액션 정보를 상기 RPA 태스크의 명세 데이터에 추가하는 것을 반복할 수 있다. 사용자 단말(20)에 대한 사용자 입력을 통하여 레코딩이 종료되면, 그와 함께 RPA 태스크의 명세 데이터도 완성될 것이다.While recording of the RPA task is in progress, the user terminal 20 adds action information using object information received from the agent of the external desktop or action information using self-generated object information to the specification data of the RPA task. can be repeated. When recording is terminated through user input to the user terminal 20, the specification data of the RPA task will also be completed.

상기 RPA 태스크의 명세 데이터는, 사전 정의된 포맷의 텍스트일 수 있다. 예를 들어, 상기 RPA 태스크의 명세 데이터는, 사전 정의된 마크업 랭귀지(mark-up language) 기반의 포맷을 가질 수 있다. 예를 들어, 상기 RPA 태스크의 명세 데이터는 XML 기반의 스크립트일 수 있으며, RPA 태스크를 정의하는 각각의 액션이 특정 레벨의 태그(tag)로서 계층적으로 정의된 것일 수 있다. 또한, RPA 태스크를 정의하는 각각의 액션은 실행 순서를 가질 수 있으므로, 각각의 액션을 정의하는 태그는 그 실행 순서에 따라 상기 RPA 태스크의 명세 데이터 내부에 배치될 것이다.The specification data of the RPA task may be text in a predefined format. For example, the specification data of the RPA task may have a format based on a predefined mark-up language. For example, the specification data of the RPA task may be an XML-based script, and each action defining the RPA task may be hierarchically defined as a tag of a specific level. Additionally, since each action defining an RPA task may have an execution order, the tag defining each action will be placed within the specification data of the RPA task according to its execution order.

먼저, 본 실시예에 따른 RPA 시스템의 RPA 태스크 실행 관련 동작을 설명한다.First, operations related to RPA task execution of the RPA system according to this embodiment will be described.

사용자 단말(20)은, 사용자로부터 특정 RPA 태스크의 실행 명령을 입력 받을 수 있다. 사용자 단말(20)은 상기 특정 RPA 태스크의 명세 데이터를 획득하고, 상기 RPA 태스크를 구성하는 각 액션을 식별할 수 있다. 또한, 사용자 단말(20)은 상기 식별된 액션의 실행 환경을 결정할 수 있다. 몇몇 실시예들에서, 각각의 액션의 실행 환경에 대한 정보가 사전 정의된 포맷으로 상기 명세 데이터에 포함될 수 있으며, 사용자 단말(20)은 상기 명세 데이터에 포함된 정보를 이용하여 각각의 액션의 실행 환경을 결정할 수 있을 것이다.The user terminal 20 may receive an execution command for a specific RPA task from the user. The user terminal 20 may obtain specification data of the specific RPA task and identify each action constituting the RPA task. Additionally, the user terminal 20 may determine an execution environment for the identified action. In some embodiments, information about the execution environment of each action may be included in the specification data in a predefined format, and the user terminal 20 executes each action using the information included in the specification data. You will be able to determine the environment.

사용자 단말(20)은 상기 결정된 실행 환경을 이용하여 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정할 수 있다.The user terminal 20 may use the determined execution environment to determine the execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device.

몇몇 실시예들에서, 상기 외부 장치는 상기 컴퓨팅 장치의 데스크톱 화면에 외부 데스크톱 윈도우가 표시되어 있는지 여부와 무관하게, 상기 컴퓨팅 장치에 연결된 외부 데스크톱을 제공하는 모든 컴퓨팅 장치일 수 있다.In some embodiments, the external device may be any computing device that provides an external desktop connected to the computing device, regardless of whether an external desktop window is displayed on the desktop screen of the computing device.

다른 몇몇 실시예들에서, 상기 외부 장치는 상기 컴퓨팅 장치에 연결된 외부 데스크톱으로서, 상기 컴퓨팅 장치의 데스크톱 화면에 상기 외부 데스크톱의 윈도우가 표시되어 있는 외부 데스크톱을 제공하는 컴퓨팅 장치로 한정될 수도 있다.In some other embodiments, the external device is an external desktop connected to the computing device, and may be limited to a computing device that provides an external desktop in which a window of the external desktop is displayed on the desktop screen of the computing device.

사용자 단말(20)은, 상기 식별된 액션의 실행 장치가 외부 장치로 결정된 경우, 상기 식별된 액션의 실행을 위한 데이터를 상기 컴퓨팅 장치에 표시된 외부 데스크톱의 에이전트에 송신하고, 상기 식별된 액션의 실행 장치가 사용자 단말(20)으로 결정된 경우, 상기 식별된 액션을 수행할 수 있다.When the execution device of the identified action is determined to be an external device, the user terminal 20 transmits data for execution of the identified action to the agent of the external desktop displayed on the computing device, and executes the identified action. If the device is determined to be the user terminal 20, the identified action can be performed.

또한, 사용자 단말(20)은 실행 환경을 결정하는 것, 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 것, 상기 식별된 액션의 실행을 위한 데이터를 송신하는 것을, 각 액션의 순서에 따라 반복할 수 있다.In addition, the user terminal 20 determines an execution environment, determines an execution device of the identified action as one of the computing device and an external device, and transmits data for execution of the identified action. It can be repeated according to the order of actions.

상술한 바와 같이, 본 실시예에 따른 RPA 시스템은, RPA 태스크를 구성하는 각각의 액션 별로 그 수행 주체를 결정하고, 수행 주체가 RPA 태스크를 실행하는 컴퓨팅 장치라면 자체적으로 해당 액션을 실행하고, 수행 주체가 외부 데스크톱이라면 그 외부 데스크톱의 에이전트에 해당 액션의 실행을 위한 데이터를 송신함으로써 해당 액션을 실행할 수 있는 것이다. 즉, 본 실시예에 따른 RPA 시스템은 RPA 태스크를 각각의 액션 단위로 구분하여 처리할 수 있다.As described above, the RPA system according to this embodiment determines the performer for each action constituting the RPA task, and if the performer is a computing device that executes the RPA task, it executes and performs the action on its own. If the subject is an external desktop, the action can be executed by sending data for execution of the action to the agent of the external desktop. That is, the RPA system according to this embodiment can process RPA tasks by dividing them into individual action units.

한편, 특정 사용예에서, RPA 태스크의 특정 액션은 그 실행 환경에 부합하는 실행 장치가 부존재할 수 있다. 즉, 사용자 단말(20)의 운영 체제와, 사용자 단말(20)이 연결한 어떠한 외부 데스크톱 모두가, 상기 특정 액션에 요구되는 실행 환경을 만족시키지 못할 수 있다. 이런 경우, 사용자 단말(20)은 상기 특정 액션의 실행이 불가능함을 가리키는 알림 메시지를 디스플레이 하고, RPA 태스크의 실행을 종료할 수 있다.Meanwhile, in a specific use case, a specific action of an RPA task may not have an execution device that matches its execution environment. In other words, both the operating system of the user terminal 20 and any external desktop connected to the user terminal 20 may not satisfy the execution environment required for the specific action. In this case, the user terminal 20 may display a notification message indicating that execution of the specific action is impossible and terminate execution of the RPA task.

한편, 이러한 특정 액션의 실행 불가능 상황에서, RPA 태스크에 포함된 액션들 중, 상기 실행 불가능한 특정 액션 이전의 액션들까지는 정상적으로 실행될 것이다. 즉, RPA 태스크의 일부 액션만이 실행되는 상황이 발생될 수 있는 것이다. RPA 태스크는 전체적으로 실행되거나, 전체적으로 실행되지 않는 것이 바람직하다. 즉, 데이터베이스 분야의 트랜잭션이 가져야 하는 원자성(automicity)과 유사하게, RPA 태스크의 실행 역시 원자성을 만족하는 것이 바람직한 것이다.Meanwhile, in a situation where the execution of this specific action is impossible, among the actions included in the RPA task, even the actions preceding the specific action that cannot be executed will be executed normally. In other words, a situation may arise where only some actions of the RPA task are executed. It is desirable for RPA tasks to be executed in their entirety or not in their entirety. In other words, similar to the atomicity that transactions in the database field must have, it is desirable that the execution of RPA tasks also satisfy atomicity.

RPA 태스크의 실행에 있어서 원자성이 만족될 수 있도록, 본 실시예에 따른 RPA 시스템은 RPA 태스크의 실행을 시작하기 전에 RPA 태스크에 포함된 각각의 액션이 모두 실행 가능한지 사전 확인할 수 있다. 이를 위해, 사용자 단말(20)은 RPA 태스크의 각 액션의 실행 환경을 이용하여 각 액션의 실행 장치를 사용자 단말(20) 및 외부 장치 중 어느 하나로 결정하는 것을 상기 사전 확인으로서 수행할 수 있다. 이 때, 실행 장치가 결정될 수 없는 액션이 어느 하나라도 존재하면, 사용자 단말(20)은 알림 메시지를 표시하고 상기 RPA 태스크의 실행을 중단할 수 있다.To ensure that atomicity is satisfied in the execution of an RPA task, the RPA system according to this embodiment can check in advance whether each action included in the RPA task is executable before starting execution of the RPA task. To this end, the user terminal 20 may use the execution environment of each action of the RPA task to determine the execution device of each action as one of the user terminal 20 and an external device as the prior confirmation. At this time, if there is any action whose execution device cannot be determined, the user terminal 20 may display a notification message and stop execution of the RPA task.

RPA 태스크의 실행에 있어서 원자성이 만족될 수 있도록, 본 실시예에 따른 RPA 시스템의 사용자 단말(20)은 RPA 태스크의 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하고, 상기 식별된 액션의 실행 환경을 이용하여, 상기 RPA 태스크의 포괄 실행 환경을 결정하며, 상기 컴퓨팅 장치의 실행 환경이 상기 결정된 포괄 실행 환경에 부합하는 경우, 상기 RPA 태스크의 실행 장치를 상기 컴퓨팅 장치로 결정하고, 상기 컴퓨팅 장치의 실행 환경의 적어도 일부가 상기 결정된 포괄 실행 환경에 부합하지 않는 경우, 상기 컴퓨팅 장치에 표시된 외부 데스크톱 윈도우의 외부 데스크톱 중에서 상기 결정된 포괄 실행 환경에 부합하는 외부 데스크톱을 상기 RPA 태스크의 실행 장치로 결정하고, 상기 RPA 태스크의 실행 장치에 상기 RPA 태스크의 명세 데이터를 송신할 수도 있다.To ensure that atomicity is satisfied in the execution of the RPA task, the user terminal 20 of the RPA system according to this embodiment identifies each action constituting the RPA task using the specification data of the RPA task, and Using the execution environment of the identified action, the generic execution environment of the RPA task is determined, and if the execution environment of the computing device matches the determined generic execution environment, the execution device of the RPA task is determined to be the computing device. And, if at least a part of the execution environment of the computing device does not conform to the determined comprehensive execution environment, select an external desktop that matches the determined comprehensive execution environment among the external desktops of the external desktop windows displayed on the computing device for the RPA task. It may be determined as an execution device and transmit the specification data of the RPA task to the execution device of the RPA task.

한편, 본 실시예에 따른 RPA 시스템은, RPA 태스크 실행에 이용되는 외부 데스크톱을 현재 인스턴스화(instantiation)되지 않은 것까지 확장할 수도 있다. 제1 사용자가 RPA 태스크를 실행함에 있어서, 제1 사용자가 액세스 권한을 가지는 제1 외부 데스크톱이 있다고 가정하자. 상기 제1 외부 데스크톱이 상기 제1 사용자가 사용하고 있는 사용자 단말의 데스크톱 화면에 인스턴스화 되어 있지 않더라도, 제1 사용자가 실행하고자 하는 RPA 태스크에 포함된 제1 액션이 상기 제1 외부 데스크톱의 객체를 이용하는 것이라면, 상기 제1 외부 데스크톱의 조작을 통하여 상기 제1 액션이 실행될 수 있는 것이다. 이를 위해, 본 실시예에 따른 RPA 시스템은 상기 제1 외부 데스크톱을 자동으로 사용자 단말(20)에 인스턴스화 할 수 있다. 즉, 사용자 단말(20)은 RPA 태스크의 실행을 위해 상기 제1 외부 데스크톱에 접속함으로써, 상기 제1 외부 데스크톱의 윈도우를 자동으로 생성할 수 있을 것이다.Meanwhile, the RPA system according to this embodiment may expand the external desktop used to execute RPA tasks to ones that are not currently instantiated. Assume that as a first user executes an RPA task, there is a first external desktop to which the first user has access. Even if the first external desktop is not instantiated on the desktop screen of the user terminal used by the first user, the first action included in the RPA task that the first user wants to execute uses the object of the first external desktop. If so, the first action can be executed through manipulation of the first external desktop. To this end, the RPA system according to this embodiment can automatically instantiate the first external desktop on the user terminal 20. That is, the user terminal 20 may automatically create a window of the first external desktop by connecting to the first external desktop to execute the RPA task.

다음으로, 본 개시의 다른 실시예에 따른 RPA 태스크 레코딩 방법을 도 3을 참조하여 설명한다. 본 실시예에 따른 RPA 태스크 레코딩 방법은 하나 이상의 컴퓨팅 장치에 의하여 수행될 수 있다. 즉, 본 실시예에 따른 RPA 태스크 레코딩 방법은 하나의 컴퓨팅 장치에 의하여 모든 동작이 수행될 수도 있고, 일부의 동작이 다른 컴퓨팅 장치에 의하여 수행될 수도 있다. 예를 들어, 일부의 동작은 제1 서버 시스템에 의하여 수행되고, 다른 동작은 제2 서버 시스템에 의하여 수행될 수도 있다.Next, an RPA task recording method according to another embodiment of the present disclosure will be described with reference to FIG. 3. The RPA task recording method according to this embodiment may be performed by one or more computing devices. That is, in the RPA task recording method according to this embodiment, all operations may be performed by one computing device, or some operations may be performed by another computing device. For example, some operations may be performed by a first server system, and other operations may be performed by a second server system.

또한, 서버 시스템이 클라우드 컴퓨팅 노드 상에 구현됨에 따라, 하나의 서버 시스템에 의하여 수행되는 동작들도 복수의 클라우드 컴퓨팅 노드 상에서 나뉘어 수행될 수도 있을 것이다. 이하, 본 실시예에 따른 RPA 태스크 레코딩 방법을 설명함에 있어서, 일부 동작의 수행 주체에 대한 기재가 생략될 수 있으며, 이 경우 그 수행 주체는 도 1을 참조하여 설명한 사용자 단말(20)일 수 있다.Additionally, as the server system is implemented on a cloud computing node, operations performed by one server system may also be performed separately on a plurality of cloud computing nodes. Hereinafter, in describing the RPA task recording method according to this embodiment, description of the performer of some operations may be omitted. In this case, the performer may be the user terminal 20 described with reference to FIG. 1. .

또한, 상술한 RPA 시스템에 대한 설명을 참조하여 인식될 수 있는 기술 사상은, 본 실시예에서 별도로 명기하지 않더라도 본 실시예에 따른 RPA 태스크 레코딩 방법에도 적용될 수 있을 것이다.Additionally, technical ideas that can be recognized with reference to the description of the above-described RPA system may also be applied to the RPA task recording method according to this embodiment, even if not separately specified in this embodiment.

도 3을 참조하여 설명한다. 도 3에 도시된 '컴퓨팅 장치'는 사용자가 사용하는 모든 형태의 컴퓨팅 장치를 가리킨다. 예를 들어, 도 3에 도시된 컴퓨팅 장치는 도 1을 참조하여 설명한 사용자 단말(20)일 수 있다. 또한, 도 3에 도시된 '외부 장치에 설치된 에이전트'는 외부 데스크톱을 제공하는 컴퓨팅 장치인 '외부 장치'에 설치되고 백그라운드에서 상시 실행되는 소프트웨어를 가리킨다. 이하, '외부 장치에 설치된 에이전트'는 '에이전트'로 약술하기로 한다.This will be explained with reference to Figure 3. 'Computing device' shown in FIG. 3 refers to all types of computing devices used by users. For example, the computing device shown in FIG. 3 may be the user terminal 20 described with reference to FIG. 1 . Additionally, the 'agent installed on an external device' shown in FIG. 3 refers to software that is installed on an 'external device', which is a computing device that provides an external desktop, and runs at all times in the background. Hereinafter, ‘agent installed on an external device’ will be abbreviated as ‘agent’.

컴퓨팅 장치는 사용자로부터 RPA 태스크 레코딩 시작 명령을 입력 받고(S101), 사용자의 마우스 입력을 대기한다(S102). 상기 마우스 입력 뿐만 아니라, 키보드 또는 터치 입력 등 다양한 사용자 입력이 모니터링 될 수 있을 것이다.The computing device receives an RPA task recording start command from the user (S101) and waits for the user's mouse input (S102). In addition to the mouse input, various user inputs such as keyboard or touch input may be monitored.

컴퓨팅 장치는 상기 모니터링의 결과 커서가 외부 데스크톱 윈도우의 영역 내부로 진입하는지 여부를 감지한다(S103). 커서가 외부 데스크톱 윈도우의 영역 내부로 진입했다면(S103), 컴퓨팅 장치는 객체 추출 모드 전환 요청을 생성하고(S104), 에이전트에 객체 추출 모드 전환 요청을 송신한다(S105). 상술한 바와 같이, 에이전트는 외부 장치의 운영 체제 상에서 상시 실행되고 있으므로, 상기 객체 추출 모드 전환 요청을 수신할 수 있을 것이다. 에이전트에 불필요한 부하(load)가 가해지지 않도록, 기 지정된 시간 이내에 이미 객체 추출 모드 전환 요청이 송신된 바 있다면, 컴퓨팅 장치가 객체 추출 모드 전환 요청을 생성하여 송신하는 것(S104, S105)은 수행되지 않을 것이다.As a result of the monitoring, the computing device detects whether the cursor enters the area of the external desktop window (S103). If the cursor enters the area of the external desktop window (S103), the computing device generates an object extraction mode switch request (S104) and transmits the object extraction mode switch request to the agent (S105). As described above, since the agent is always running on the operating system of the external device, it will be able to receive the object extraction mode switch request. To prevent unnecessary load from being applied to the agent, if an object extraction mode switch request has already been sent within a predetermined time, the computing device does not generate and transmit the object extraction mode switch request (S104, S105). won't

에이전트는 상기 객체 추출 모드 전환 요청을 수신하면(S105), 객체 추출 모드로 그 동작 모드를 전환한다(S106). 객체 추출 모드의 에이전트는, 사용자의 외부 데스크톱에 대한 조작을 감지한다. 객체 추출 모드의 에이전트는 특정 객체를 선택하는 사용자 입력을 감지하고(S107), 선택된 객체 정보를 가공한다(S108). 객체 추출 모드의 에이전트는 선택된 객체의 이미지 및 선택된 객체에 대응되는 텍스트 등 속성 정보가 포함되도록 상기 객체 정보를 가공할 수 있다. 아래의 표 1은 상술한 방식으로 가공된 예시적인 객체 정보이다.When the agent receives the object extraction mode switch request (S105), the agent switches its operation mode to the object extraction mode (S106). An agent in object extraction mode detects the user's manipulation of the external desktop. The agent in object extraction mode detects a user input for selecting a specific object (S107) and processes the selected object information (S108). The agent in object extraction mode can process the object information to include attribute information such as an image of the selected object and text corresponding to the selected object. Table 1 below shows exemplary object information processed in the manner described above.

몇몇 실시예들에서, 에이전트는 상기 객체 정보 뿐만 아니라, 에이전트가 실행되고 있는 외부 데스크톱의 실행 환경 정보를 추가적으로 가공할 수도 있다(S109). 도 4를 참조하면, 상기 실행 환경 정보는 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보를 포함할 수 있다. 에이전트는 기 지정된 포맷을 가지도록 상기 실행 환경 정보를 가공할 수 있다.In some embodiments, the agent may additionally process the execution environment information of the external desktop on which the agent is running in addition to the object information (S109). Referring to FIG. 4, the execution environment information may include execution environment type information, installed application information, resolution information, and hardware available resource information. The agent may process the execution environment information to have a predetermined format.

실행 환경 타입 정보는 운영 체제 정보를 포함할 수 있다. 또한, 상기 외부 데스크톱이 가상 머신에 설치된 운영 체제에 의하여 제공되는 것이라면, 상기 실행 환경 타입 정보는 가상 머신 타입 정보를 포함할 수도 있다. 상기 실행 환경 타입 정보는 RPA 태스크를 레코딩한 RPA 제작자가 특정 실행 환경 타입의 외부 데스크톱을 이용하여 상기 레코딩된 RPA 태스크가 실행되기를 희망하는 것을 만족시키기 위해, 상기 레코딩된 RPA 태스크의 명세 데이터에 실행 환경 정보로서 포함될 수 있는 것이다.Execution environment type information may include operating system information. Additionally, if the external desktop is provided by an operating system installed in a virtual machine, the execution environment type information may include virtual machine type information. The execution environment type information is added to the specification data of the recorded RPA task in order to satisfy the RPA producer who recorded the RPA task that the recorded RPA task is executed using an external desktop of a specific execution environment type. It can be included as information.

레코딩 되는 RPA 태스크가 특정 애플리케이션을 조작하는 제1 액션을 포함하는 경우 상기 제1 액션은 상기 특정 애플리케이션이 설치된 데스크톱에서 실행될 수 있을 것인 바, 상기 액션이 수행된 데스크톱에 설치된 애플리케이션 정보가 상기 실행 환경 정보에 포함됨으로써, 특정 애플리케이션을 조작하는 제1 액션이 실행될 수 있는 적절한 실행 환경이 확보될 수 있을 것이다.If the recorded RPA task includes a first action for manipulating a specific application, the first action may be executed on a desktop on which the specific application is installed, and information on the application installed on the desktop on which the action was performed may be stored in the execution environment. By being included in the information, an appropriate execution environment in which the first action for manipulating a specific application can be executed can be secured.

또한, RPA 태스크의 레코딩 상황에서 외부 데스크톱이 가지는 화면 해상도와, 추후 RPA 태스크를 실행할 때의 외부 데스크톱이 가지는 화면 해상도는 최대한 동일해야, 액션과 관련된 객체를 정확하게 찾을 수 있을 것이다. 이러한 점을 고려하여, 상기 실행 환경 정보에 해상도 정보도 포함될 수 있는 것이다.In addition, the screen resolution of the external desktop in the recording situation of the RPA task and the screen resolution of the external desktop when executing the RPA task later should be as identical as possible to accurately find objects related to the action. Considering this, resolution information may also be included in the execution environment information.

또한, 상기 실행 환경 정보에 하드웨어 가용 리소스 정보도 포함될 수 있다. 추후, RPA 태스크의 실행 시점에, 상기 하드웨어 가용 리소스 정보를 참조하여 최소 요구 조건에 미치지 못하는 가용 리소스를 가지는 외부 데스크톱은 RPA 태스크의 실행 장치에서 제외할 수 있을 것이다.Additionally, the execution environment information may also include hardware available resource information. Later, at the time of execution of the RPA task, external desktops with available resources that do not meet the minimum requirements can be excluded from the execution device of the RPA task by referring to the hardware available resource information.

또한, 몇몇 실시예들에서, RPA 태스크의 레코딩 상황에서 외부 데스크톱이 가지는 가용 리소스 상황과, 추후 RPA 태스크를 실행할 때의 외부 데스크톱이 가지는 가용 리소스 상황이 최대한 동일하도록 할 수도 있을 것이다. 예를 들어, RPA 태스크의 레코딩 상황에서 제2 액션이 제1 외부 데스크톱 상에서 실행되었는데, 그 때의 CPU 사용률이 30%이고, 메모리 사용률이 50%라면, 추후 RPA 태스크의 실행 상황에서, 상기 제2 액션을 실행하는 실행 장치는 CPU 사용률 30% 및 메모리 사용률 50%와 가용 리소스 상황이 유사할수록 높은 적합도를 부여받을 수 있을 것이다.Additionally, in some embodiments, the available resource status of the external desktop in the recording situation of the RPA task and the available resource status of the external desktop when executing the RPA task later may be made to be the same as possible. For example, in the recording situation of the RPA task, a second action is executed on the first external desktop, and if the CPU usage rate at that time is 30% and the memory usage rate is 50%, in the later execution situation of the RPA task, the second action The execution device that executes the action will be given a higher degree of suitability as the CPU usage rate of 30% and the memory usage rate of 50% are similar to the available resource situation.

아래의 표 2는 상술한 방식으로 생성된 예시적인 실행 환경 정보이다.Table 2 below shows exemplary execution environment information generated in the manner described above.

다시 도 3을 참조하여 설명한다. 에이전트는 객체 정보 및 실행 환경 정보를 컴퓨팅 장치에 송신한다(S110). 상술한 단계 S102 내지 S110의 동작은, 사용자가 RPA 태스크 레코딩 종료 명령을 입력할 때까지 지속적으로 반복됨으로써, RPA 태스크의 명세 데이터가 완성되어 갈 것이다.Description will be made again with reference to FIG. 3 . The agent transmits object information and execution environment information to the computing device (S110). The operations of steps S102 to S110 described above are continuously repeated until the user inputs an RPA task recording end command, thereby completing the RPA task specification data.

지금까지, 본 실시예에 따른 RPA 태스크의 레코딩 방법을 설명하였다. 도 3에는 하나의 에이전트 만이 도시되어 있고, 이러한 상황을 전제하여 본 실시예를 설명한 바 있으나, 컴퓨팅 장치의 데스크톱 화면에는 2 이상의 외부 데스크톱 윈도우가 표시된 상황에서, 2 이상의 외부 데스크톱 윈도우에 표시된 객체들을 이용하여 RPA 태스크의 액션들이 수행될 수도 있음은 물론이다. 이 경우, RPA 태스크의 명세 데이터에는 2 이상의 외부 데스크톱의 객체들에 대한 정보가 포함될 것이다.So far, the recording method of the RPA task according to this embodiment has been described. Only one agent is shown in Figure 3, and this embodiment has been described assuming this situation. However, in a situation where two or more external desktop windows are displayed on the desktop screen of the computing device, objects displayed in two or more external desktop windows are used. So, of course, the actions of the RPA task may be performed. In this case, the specification data of the RPA task will include information about objects on two or more external desktops.

이하, 본 개시의 또 다른 실시예들에 따른 RPA 태스크 실행 방법들을 도 5 내지 도 7을 참조하여 설명한다. 본 실시예에 따른 RPA 태스크 실행 방법은 하나 이상의 컴퓨팅 장치에 의하여 수행될 수 있다. 즉, 본 실시예에 따른 RPA 태스크 실행 방법은 하나의 컴퓨팅 장치에 의하여 모든 동작이 수행될 수도 있고, 일부의 동작이 다른 컴퓨팅 장치에 의하여 수행될 수도 있다. 예를 들어, 일부의 동작은 제1 서버 시스템에 의하여 수행되고, 다른 동작은 제2 서버 시스템에 의하여 수행될 수도 있다.Hereinafter, RPA task execution methods according to further embodiments of the present disclosure will be described with reference to FIGS. 5 to 7. The RPA task execution method according to this embodiment may be performed by one or more computing devices. That is, in the RPA task execution method according to this embodiment, all operations may be performed by one computing device, or some operations may be performed by another computing device. For example, some operations may be performed by a first server system, and other operations may be performed by a second server system.

또한, 서버 시스템이 클라우드 컴퓨팅 노드 상에 구현됨에 따라, 하나의 서버 시스템에 의하여 수행되는 동작들도 복수의 클라우드 컴퓨팅 노드 상에서 나뉘어 수행될 수도 있을 것이다. 이하, 본 실시예에 따른 RPA 태스크 실행 방법을 설명함에 있어서, 일부 동작의 수행 주체에 대한 기재가 생략될 수 있으며, 이 경우 그 수행 주체는 도 1을 참조하여 설명한 사용자 단말(20)일 수 있다.Additionally, as the server system is implemented on a cloud computing node, operations performed by one server system may also be performed separately on a plurality of cloud computing nodes. Hereinafter, in describing the RPA task execution method according to this embodiment, description of the performer of some operations may be omitted. In this case, the performer may be the user terminal 20 described with reference to FIG. 1. .

또한, 상술한 RPA 시스템에 대한 설명을 참조하여 인식될 수 있는 기술 사상은, 본 실시예에서 별도로 명기하지 않더라도 본 실시예에 따른 RPA 태스크 레코딩 방법에도 적용될 수 있을 것이다.Additionally, technical ideas that can be recognized with reference to the description of the above-described RPA system may also be applied to the RPA task recording method according to this embodiment, even if not separately specified in this embodiment.

도 5를 참조하여 설명한다. 도 5에 도시된 '컴퓨팅 장치'는 사용자가 사용하는 모든 형태의 컴퓨팅 장치를 가리킨다. 예를 들어, 도 5에 도시된 컴퓨팅 장치는 도 1을 참조하여 설명한 사용자 단말(20)일 수 있다. 또한, 도 5에 도시된 '외부 장치에 설치된 에이전트'는 외부 데스크톱을 제공하는 컴퓨팅 장치인 '외부 장치'에 설치되고 백그라운드에서 상시 실행되는 소프트웨어를 가리킨다. '외부 장치에 설치된 에이전트'는 '에이전트'로 약술될 것이다.This will be explained with reference to FIG. 5 . 'Computing device' shown in FIG. 5 refers to all types of computing devices used by users. For example, the computing device shown in FIG. 5 may be the user terminal 20 described with reference to FIG. 1 . Additionally, the 'agent installed on an external device' shown in FIG. 5 refers to software that is installed on an 'external device', which is a computing device that provides an external desktop, and runs at all times in the background. An 'agent installed on an external device' will be abbreviated as 'agent'.

컴퓨팅 장치는 사용자로부터 RPA 태스크 실행 명령을 입력 받고(S200), 실행 대상 RPA 태스크의 명세 데이터를 분석한다(S201). 상기 명세 데이터는 RPA 태스크의 마크업 랭귀지 기반 스크립트 파일일 수 있다. 컴퓨팅 장치는 상기 명세 데이터의 분석을 통하여, RPA 태스크를 구성하는 각각의 액션 별 객체 정보 및 실행 환경 정보를 식별할 수 있을 것이다.The computing device receives an RPA task execution command from the user (S200) and analyzes specification data of the RPA task to be executed (S201). The specification data may be a script file based on the markup language of the RPA task. The computing device may be able to identify object information and execution environment information for each action constituting the RPA task through analysis of the specification data.

다음으로, 컴퓨팅 장치는 컴퓨팅 장치의 운영 체제가 제공하는 데스크톱 화면 상에 외부 데스크톱 윈도우가 생성되어 있는 각각의 외부 데스크톱의 에이전트를 식별할 수 있다(S202). Next, the computing device can identify the agent of each external desktop where an external desktop window is created on the desktop screen provided by the operating system of the computing device (S202).

상술한 바와 같이, 다른 몇몇 실시예들에서, 컴퓨팅 장치는 상기 컴퓨팅 장치의 데스크톱 화면에 외부 데스크톱 윈도우가 표시되어 있는지 여부와 무관하게, 상기 컴퓨팅 장치에 연결된 모든 외부 데스크톱의 에이전트를 식별할 수도 있을 것이다.As described above, in some other embodiments, the computing device may identify agents for all external desktops connected to the computing device, regardless of whether an external desktop window is displayed on the desktop screen of the computing device. .

컴퓨팅 장치는 식별된 에이전트에 실행 환경 정보 제공 요청을 송신하고, 에이전트는 상기 실행 환경 정보 제공 요청을 수신하여, 실행 환경 정보를 가공하고(S202-1), 가공된 실행 환경 정보를 전송할 수 있다(S202-2). 에이전트가 실행 환경 정보를 가공하는 것과 관련하여, 도 3 내지 도 4를 참조하여 상술한 사항을 참고한다.The computing device may transmit a request to provide execution environment information to the identified agent, and the agent may receive the request to provide execution environment information, process the execution environment information (S202-1), and transmit the processed execution environment information (S202-1). S202-2). Regarding the agent processing execution environment information, refer to the above-described details with reference to FIGS. 3 and 4.

다음으로, 컴퓨팅 장치는 RPA 태스크의 각 액션을 순차적으로 실행하는 것을 시작한다(S203).Next, the computing device begins executing each action of the RPA task sequentially (S203).

단계 S204에서, 컴퓨팅 장치는 실행 대상 액션인 현재 액션의 실행에 적합한 실행 장치를 찾고, 상기 실행 장치가 존재하는지 여부를 판정한다. 상기 실행 장치를 찾는 과정에서, 현재 액션의 실행 환경 정보가 참조될 것이다. 즉, 컴퓨팅 장치는 RPA 태스크의 명세 데이터에 기입된 현재 액션의 실행 환경 정보에 부합하는 실행 환경을 가지는 실행 장치를 찾을 것이다. 상기 실행 장치는 상기 컴퓨팅 장치이거나, 컴퓨팅 장치의 운영 체제가 제공하는 데스크톱 화면 상에 외부 데스크톱 윈도우가 생성되어 있는 각각의 외부 데스크톱을 제공하는 외부 장치 중 어느 하나이거나, 컴퓨팅 장치에 연결된 외부 데스크톱을 제공하는 외부 장치 중 어느 하나 일 수 있다.In step S204, the computing device finds an execution device suitable for execution of the current action, which is the action to be executed, and determines whether the execution device exists. In the process of finding the execution device, the execution environment information of the current action will be referenced. In other words, the computing device will find an execution device that has an execution environment that matches the execution environment information of the current action written in the RPA task specification data. The execution device is the computing device, or an external device that provides an external desktop with each external desktop window created on the desktop screen provided by the operating system of the computing device, or provides an external desktop connected to the computing device. It can be any one of the external devices.

컴퓨팅 장치 및 외부 장치 모두 현재 액션의 실행 환경 정보에 부합하는 것이라면, 컴퓨팅 장치가 실행 장치로 결정될 것이다. 외부 데스크톱 보다는 컴퓨팅 장치 자신의 데스크톱 화면에서 RPA 태스크를 실행하는 것이 실행의 성공 확률이 더 높기 때문이다.If both the computing device and the external device match the execution environment information of the current action, the computing device will be determined as the execution device. This is because executing RPA tasks on the computing device's own desktop screen has a higher probability of success than on an external desktop.

한편, 컴퓨팅 장치 및 외부 장치 모두 실행 환경 정보를 구성하는 각각의 항목 중 일부 만을 만족시키는 경우, 컴퓨팅 장치는 실행 환경 정보의 항목들 중 필수 항목들은 모두 만족시키는 컴퓨팅 장치 또는 외부 장치가 존재하는지 여부를 판정할 수 있다. 컴퓨팅 장치는 실행 환경 정보의 항목들 중 필수 항목들은 모두 만족 시키는 컴퓨팅 장치 또는 외부 장치를 실행 장치로 결정할 수 있다. Meanwhile, if both the computing device and the external device satisfy only some of the items constituting the execution environment information, the computing device determines whether there is a computing device or an external device that satisfies all essential items among the items of the execution environment information. can be judged. The computing device may determine a computing device or an external device that satisfies all required items among the execution environment information items as the execution device.

상술한 바와 같이, 상기 실행 환경 정보는 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보를 포함할 수 있으며, 그 중 실행 장치가 되기 위하여 필수적으로 만족시켜야 하는 필수 항목은 설치된 애플리케이션 정보 및 해상도 정보일 수 있다. 또한, 몇몇 실시예들에서는, 상기 필수 항목이 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보일 수도 있다.As described above, the execution environment information may include execution environment type information, installed application information, resolution information, and hardware available resource information, of which the essential items that must be satisfied in order to become an execution device are installed application information. and resolution information. Additionally, in some embodiments, the required items may be installed application information, resolution information, and hardware available resource information.

상기 실행 장치가 존재하지 않는 경우, 컴퓨팅 장치는 사용자 알림 메시지를 표시하고(S214), RPA 태스크 실행을 종료할 것이다. 즉, 컴퓨팅 장치의 운영 체제와, 컴퓨팅 장치가 연결한 외부 데스크톱 모두가, 현재 액션에 요구되는 실행 환경을 만족시키지 못할 수 있다. 이런 경우, 사용자 단말(20)은 상기 특정 액션의 실행이 불가능함을 가리키는 알림 메시지를 디스플레이 하고, RPA 태스크의 실행을 종료할 수 있다.If the execution device does not exist, the computing device will display a user notification message (S214) and end RPA task execution. In other words, both the operating system of the computing device and the external desktop connected to the computing device may not satisfy the execution environment required for the current action. In this case, the user terminal 20 may display a notification message indicating that execution of the specific action is impossible and terminate execution of the RPA task.

반면에, 몇몇 실시예들에서는, 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 제공하는 외부 장치가 상기 식별된 액션의 실행 장치로 결정될 수도 있다.On the other hand, in some embodiments, when there is no external desktop matching the execution environment information, an external desktop matching the received execution environment information is provided among the accessible desktops registered in advance by the user of the computing device. An external device may be determined as the execution device of the identified action.

이를 위해, 컴퓨팅 장치는, 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱의 윈도우를 신규로 생성함으로써, 외부 데스크톱을 추가로 인스턴스화(instantiation) 할 수 있을 것이다. 이러한 인스턴스화를 위해, 컴퓨팅 장치는 사용자가 사전에 등록한 접속 가능 데스크톱의 로그인 정보를 저장해둘 수 있다.To this end, if there is no external desktop matching the received execution environment information, the computing device additionally instantiates an external desktop by creating a new window of an accessible desktop registered in advance by the user of the computing device. (instantiation) You will be able to do it. For this instantiation, the computing device may store login information for an accessible desktop that the user has previously registered.

또한, 몇몇 실시예들에서, 컴퓨팅 장치는, 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱에 신규로 연결하고, 신규로 연결된 외부 데스크톱을 제공하는 외부 장치를 상기 식별된 액션의 실행 장치로 결정할 수도 있을 것이다.Additionally, in some embodiments, if there is no external desktop matching the received execution environment information, the computing device newly connects to an accessible desktop registered in advance by the user of the computing device, and newly connects to the accessible desktop. An external device that provides an external desktop may be determined as the execution device of the identified action.

단계 S205에서, 컴퓨팅 장치는 상기 실행 장치가 외부 장치인지 혹은 상기 컴퓨팅 장치 자신인지 확인하고, 상기 실행 장치가 상기 컴퓨팅 장치 자신이라면 현재 액션을 자체적으로 실행할 것이다.In step S205, the computing device checks whether the execution device is an external device or the computing device itself, and if the execution device is the computing device itself, it will execute the current action by itself.

컴퓨팅 장치는 상기 실행 장치가 외부 장치라면, 실행 장치에 설치된 에이전트에 자동화 실행 모드로의 전환 요청을 송신한다(S207). 에이전트는 상기 자동화 실행 모드로의 전환 요청을 수신하고, 그 실행 모드를 자동화 실행 모드로 전환할 것이다(S209).If the execution device is an external device, the computing device transmits a request to switch to the automated execution mode to the agent installed in the execution device (S207). The agent will receive the request to switch to the automated execution mode and switch the execution mode to the automated execution mode (S209).

컴퓨팅 장치는 자동화 실행 모드로의 전환 요청 송신 이후, 현재 액션의 실행을 위한 데이터를 상기 에이전트에 송신한다(S208). 상기 현재 액션의 실행을 위한 데이터는, 액션을 정의하는 데이터 및 액션의 대상이 되는 객체를 정의하는 데이터를 포함할 수 있다. 에이전트는 현재 액션의 실행을 위한 데이터를 수신하여(S210), 수신된 데이터에 정의된 대로 액션을 실행한다(S211). 예를 들어, 에이전트는 액션의 대상이 되는 객체를 데스크톱 화면에서 찾고, 찾은 객체에 대하여 클릭 조작을 생성할 수 있을 것이다. 컴퓨팅 장치는 현재 액션의 실행을 위한 데이터를 상기 에이전트에 송신한 후 에이전트의 응답을 대기하고(S212), 컴퓨팅 장치가 에이전트로부터 액션 실행 결과를 수신하면, 대기 상태는 해제될 것이다.After transmitting a request to switch to the automated execution mode, the computing device transmits data for executing the current action to the agent (S208). Data for executing the current action may include data defining the action and data defining the object that is the target of the action. The agent receives data for executing the current action (S210) and executes the action as defined in the received data (S211). For example, the agent may be able to find an object that is the target of an action on the desktop screen and create a click operation for the found object. The computing device transmits data for executing the current action to the agent and then waits for the agent's response (S212). When the computing device receives the action execution result from the agent, the waiting state will be released.

컴퓨팅 장치는, RPA 태스크에 포함된 잔여 액션들이 더 이상 존재하지 않을 때까지 다음 액션으로 이동하면서(S214), 단계 S204 내지 S212를 반복 수행한다.The computing device repeatedly performs steps S204 to S212 while moving to the next action (S214) until the remaining actions included in the RPA task no longer exist.

지금까지 도 5를 참조하여 설명한 본 실시예에 따른 RPA 태스크 실행 방법은, RPA 태스크를 각각의 액션 단위로 구분하여 처리한다. The RPA task execution method according to this embodiment described so far with reference to FIG. 5 processes RPA tasks by dividing them into individual action units.

한편, 특정 액션의 실행 불가능 상황에서, RPA 태스크에 포함된 액션들 중 상기 실행 불가능한 특정 액션 이전의 액션들까지는 정상적으로 실행될 것이다. 즉, RPA 태스크의 일부 액션만이 실행되는 상황이 발생될 수 있는 것이다. RPA 태스크는 전체적으로 실행되거나, 전체적으로 실행되지 않는 것이 바람직하다. 즉, RPA 태스크의 실행 역시 원자성을 만족하는 것이 바람직한 것이다.Meanwhile, in a situation where a specific action is impossible to execute, among the actions included in the RPA task, even the actions preceding the specific unexecutable action will be executed normally. In other words, a situation may arise where only some actions of the RPA task are executed. It is desirable for RPA tasks to be executed in their entirety or not in their entirety. In other words, it is desirable that the execution of RPA tasks also satisfy atomicity.

RPA 태스크의 실행에 있어서 원자성이 만족될 수 있도록, 본 실시예에 따른 RPA 시스템은 RPA 태스크의 실행을 시작하기 전에 RPA 태스크에 포함된 각각의 액션이 모두 실행 가능한지 사전 확인할 수 있다. 이와 관련하여 도 6을 참조하여 설명한다. 이해의 편의를 위해 도 5 대비 수정된 동작 위주로 설명하기로 한다.To ensure that atomicity is satisfied in the execution of an RPA task, the RPA system according to this embodiment can check in advance whether each action included in the RPA task is executable before starting execution of the RPA task. This will be described with reference to FIG. 6. For convenience of understanding, the explanation will focus on the modified operation compared to Figure 5.

컴퓨팅 장치는 RPA 태스크 실행 명령이 입력되면(S200), RPA 태스크 명세 데이터 분석(S201) 및 에이전트 식별(S202)을 수행한다. 다음으로, 각각의 액션 별 실행을 시작하기 전에, 컴퓨팅 장치는 RPA 태스크 실행에 적합한 실행 장치가 존재하는지 여부를 판정한다(S204). 보다 자세하게는, 컴퓨팅 장치는, 상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하고, 상기 식별된 액션의 실행 환경을 결정하며, 상기 결정된 실행 환경을 이용하여, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하고, 상기 실행 환경을 결정하는 단계 및 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계를 상기 식별된 각 액션에 대하여 반복할 수 있다.When an RPA task execution command is input (S200), the computing device performs RPA task specification data analysis (S201) and agent identification (S202). Next, before starting execution of each action, the computing device determines whether an execution device suitable for executing the RPA task exists (S204). More specifically, the computing device uses the obtained specification data to identify each action constituting the RPA task, determines an execution environment for the identified action, and uses the determined execution environment to identify the determining an execution device of the identified action to be one of the computing device and an external device corresponding to an external desktop connected to the computing device, determining the execution environment, and selecting the execution device of the identified action to be one of the computing device and an external device corresponding to an external desktop connected to the computing device. The step of deciding on one of the above can be repeated for each of the identified actions.

컴퓨팅 장치는 실행 장치가 결정될 수 없는 액션이 하나라도 존재하면(S204), 알림 메시지를 표시하고 상기 RPA 태스크의 실행을 중단할 수 있다(S214). 반면에, 몇몇 실시예들에서는, 실행 장치가 결정될 수 없는 액션이 존재 하는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 제공하는 외부 장치가 상기 실행 장치로 결정될 수도 있다. 이를 위해, 컴퓨팅 장치는, 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱의 윈도우를 신규로 생성함으로써, 외부 데스크톱을 추가로 인스턴스화(instantiation) 할 수도 있을 것이다. 또한, 몇몇 실시예들에서, 컴퓨팅 장치는, 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱에 신규로 연결하고, 신규로 연결된 외부 데스크톱을 제공하는 외부 장치를 상기 실행 장치로 결정할 수도 있을 것이다.If there is at least one action for which an execution device cannot be determined (S204), the computing device may display a notification message and stop execution of the RPA task (S214). On the other hand, in some embodiments, when there is an action for which an execution device cannot be determined, an external device that provides an external desktop matching the received execution environment information among accessible desktops registered in advance by the user of the computing device. may be determined by the execution device. To this end, if there is no external desktop matching the received execution environment information, the computing device additionally instantiates an external desktop by creating a new window of an accessible desktop registered in advance by the user of the computing device. (instantiation) may be possible. Additionally, in some embodiments, if there is no external desktop matching the received execution environment information, the computing device newly connects to an accessible desktop registered in advance by the user of the computing device, and newly connects to the accessible desktop. An external device that provides an external desktop may be determined as the execution device.

다음으로, 컴퓨팅 장치는 각 액션 별 실행을 시작한다(S203). 각 액션 별 실행을 수행하는 동작은 도 5를 참조하여 설명된 사항을 참조할 수 있을 것이다.Next, the computing device starts executing each action (S203). The operation of executing each action may be described with reference to FIG. 5 .

다음으로, 도 7을 참조하여 본 개시의 또 다른 실시예에 따른 RPA 태스크 실행 방법을 설명한다. 본 실시예는, RPA 태스크 전체를 컴퓨팅 장치가 자체적으로 실행하거나, 외부 장치가 실행하는 것으로 이해될 수 있을 것이다.Next, an RPA task execution method according to another embodiment of the present disclosure will be described with reference to FIG. 7. This embodiment may be understood as the computing device executing the entire RPA task itself or an external device executing it.

컴퓨팅 장치는, RPA 태스크 실행 명령이 입력되면(S300), RPA 태스크 명세 데이터 분석(S301) 및 에이전트 식별(S302)을 수행한다. 에이전트 식별 과정에서, 에이전트는 실행 환경 정보를 가공하고(S302-1), 컴퓨팅 장치에 송신할 것이다(S302-2).When an RPA task execution command is input (S300), the computing device performs RPA task specification data analysis (S301) and agent identification (S302). In the agent identification process, the agent will process execution environment information (S302-1) and transmit it to the computing device (S302-2).

다음으로, 각각의 액션 별 실행을 시작하기 전에, RPA 태스크 전체의 실행에 적합한 실행 장치가 존재하는지 여부를 판정한다(S304). 보다 자세하게는, 컴퓨팅 장치는, 상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하고, 상기 식별된 액션의 실행 환경을 이용하여, 상기 RPA 태스크의 포괄 실행 환경을 결정하며, 상기 컴퓨팅 장치의 실행 환경이 상기 결정된 포괄 실행 환경에 부합하는 경우, 상기 RPA 태스크의 실행 장치를 상기 컴퓨팅 장치로 결정할 수 있을 것이다. 이 때, 컴퓨팅 장치는 상기 식별된 액션의 실행 환경을 모두 'AND 조건'으로 종합하여 상기 포괄 실행 환경을 결정할 수 있을 것이다.Next, before starting the execution of each action, it is determined whether an execution device suitable for executing the entire RPA task exists (S304). More specifically, the computing device uses the obtained specification data to identify each action constituting the RPA task, and uses the execution environment of the identified action to determine a comprehensive execution environment of the RPA task. , if the execution environment of the computing device matches the determined comprehensive execution environment, the execution device of the RPA task may be determined to be the computing device. At this time, the computing device may determine the comprehensive execution environment by combining all execution environments of the identified actions with an 'AND condition'.

컴퓨팅 장치는 실행 장치가 결정될 수 없다면(S304), 알림 메시지를 표시하고 상기 RPA 태스크의 실행을 중단할 수 있다(S314). 반면에, 몇몇 실시예들에서는, 실행 장치가 결정될 수 없는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 포괄 실행 환경에 부합하는 외부 데스크톱을 제공하는 외부 장치가 상기 실행 장치로 결정될 수도 있다. If the execution device cannot be determined (S304), the computing device may display a notification message and stop execution of the RPA task (S314). On the other hand, in some embodiments, when the execution device cannot be determined, an external device that provides an external desktop conforming to the comprehensive execution environment among accessible desktops pre-registered by the user of the computing device may be determined as the execution device. It may be possible.

이를 위해, 컴퓨팅 장치는, 상기 포괄 실행 환경에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱의 윈도우를 신규로 생성함으로써, 외부 데스크톱을 추가로 인스턴스화(instantiation) 할 수도 있을 것이다. 또한, 몇몇 실시예들에서, 컴퓨팅 장치는, 상기 포괄 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱에 신규로 연결하고, 신규로 연결된 외부 데스크톱을 제공하는 외부 장치를 상기 실행 장치로 결정할 수도 있을 것이다.To this end, if an external desktop matching the comprehensive execution environment does not exist, the computing device additionally instantiates an external desktop by creating a new window of an accessible desktop registered in advance by the user of the computing device. ) It might be possible. Additionally, in some embodiments, if there is no external desktop matching the comprehensive execution environment information, the computing device newly connects to an accessible desktop registered in advance by a user of the computing device, and newly connects to an external desktop that matches the comprehensive execution environment information. An external device that provides a desktop may be determined as the execution device.

다음으로, 컴퓨팅 장치는 RPA 태스크를 실행한다. RPA 태스크 실행이 컴퓨팅 장치에 의하여 이뤄져야 하는 경우(S305, S312)도 있을 것이며, RPA 태스크 실행이 외부 장치에 의하여 이뤄져야 하는 경우도 있을 것이다(S306 내지 S311). 다만, 본 실시예는 도 5 내지 도 6을 참조하여 설명한 바와 달리, 각각의 액션 별로 액션 실행을 위한 정보가 에이전트에 송신되지 않고, 외부 장치가 상기 실행 장치인 경우, 상기 RPA 태스크의 명세 데이터 자체가 상기 외부 장치에 송신될 수 있다. 이에 따라, 에이전트는 RPA 태스크 전체의 실행 데이터를 수신하고(S309), RPA 태스크 전체를 실행하게 된다(S310).Next, the computing device executes the RPA task. There may be cases where RPA task execution must be performed by a computing device (S305, S312), and there may be cases where RPA task execution must be performed by an external device (S306 to S311). However, in this embodiment, unlike what was explained with reference to FIGS. 5 and 6, information for action execution is not transmitted to the agent for each action, and when an external device is the execution device, the specification data of the RPA task itself may be transmitted to the external device. Accordingly, the agent receives execution data of the entire RPA task (S309) and executes the entire RPA task (S310).

도 8은 본 개시의 몇몇 실시예들에 따른 컴퓨팅 시스템의 하드웨어 구성도이다. 도 8의 컴퓨팅 시스템(1000)는, 하나 이상의 프로세서(1100), 시스템 버스(1600), 통신 인터페이스(1200), 프로세서(1100)에 의하여 수행되는 컴퓨터 프로그램(1500)을 로드(load)하는 메모리(1400)와, 컴퓨터 프로그램(1500)을 저장하는 스토리지(1300)를 포함할 수 있다. 예를 들어 도 8의 컴퓨팅 시스템은 도 1 내지 도 2를 참조하여 설명한 사용자 단말(20)일 수 있다.8 is a hardware configuration diagram of a computing system according to some embodiments of the present disclosure. The computing system 1000 of FIG. 8 includes one or more processors 1100, a system bus 1600, a communication interface 1200, and a memory (loading) a computer program 1500 executed by the processor 1100. 1400) and a storage 1300 that stores a computer program 1500. For example, the computing system in FIG. 8 may be the user terminal 20 described with reference to FIGS. 1 and 2 .

프로세서(1100)는 컴퓨팅 시스템(1000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(1100)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 메모리(1400)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(1400)는 본 개시의 다양한 실시예들에 따른 방법/동작들을 실행하기 위하여 스토리지(1300)로부터 하나 이상의 컴퓨터 프로그램(1500)을 로드(load) 할 수 있다. 스토리지(1300)는 하나 이상의 컴퓨터 프로그램(1500)을 비임시적으로 저장할 수 있다. 컴퓨터 프로그램(1500)은 본 개시의 다양한 실시예들에 따른 방법/동작들이 구현된 하나 이상의 인스트럭션들(instructions)을 포함할 수 있다. 컴퓨터 프로그램(1500)이 메모리(1400)에 로드 되면, 프로세서(1100)는 상기 하나 이상의 인스트럭션들을 실행시킴으로써 본 개시의 다양한 실시예들에 따른 방법/동작들을 수행할 수 있다.The processor 1100 controls the overall operation of each component of the computing system 1000. The processor 1100 may perform operations on at least one application or program to execute methods/operations according to various embodiments of the present disclosure. The memory 1400 stores various data, commands and/or information. The memory 1400 may load one or more computer programs 1500 from the storage 1300 to execute methods/operations according to various embodiments of the present disclosure. Storage 1300 may non-temporarily store one or more computer programs 1500. The computer program 1500 may include one or more instructions implementing methods/operations according to various embodiments of the present disclosure. When the computer program 1500 is loaded into the memory 1400, the processor 1100 can perform methods/operations according to various embodiments of the present disclosure by executing the one or more instructions.

RPA 태스크를 실행하는 컴퓨터 프로그램(1500)은 통신 인터페이스를 통하여 RPA(Robotic Process Automation) 태스크의 명세 데이터를 수신하는 인스트럭션, 상기 사용자 단말로부터 상기 RPA 태스크의 실행 명령을 수신하는 인스트럭션 및 상기 RPA 태스크의 실행 명령 수신에 응답하여, 상기 RPA 태스크를 실행하는 인스트럭션을 포함할 수 있다. 또한, 상기 RPA 태스크를 실행하는 인스트럭션은, 상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하는 인스트럭션, 상기 식별된 액션의 실행 환경을 결정하는 인스트럭션, 상기 결정된 실행 환경을 이용하여 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 인스트럭션, 상기 식별된 액션의 실행 장치가 외부 장치로 결정된 경우, 상기 식별된 액션의 실행을 위한 데이터를 상기 컴퓨팅 장치에 표시된 외부 데스크톱의 에이전트에 송신하는 인스트럭션 및 상기 실행 환경을 결정하는 단계와, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계와, 송신하는 단계를 상기 식별된 각 액션의 순서에 따라 반복하는 인스트럭션을 포함할 수 있다.The computer program 1500 for executing the RPA task includes instructions for receiving specification data of the RPA (Robotic Process Automation) task through a communication interface, instructions for receiving an execution command of the RPA task from the user terminal, and execution of the RPA task. In response to receiving a command, it may include instructions for executing the RPA task. In addition, the instructions for executing the RPA task include an instruction for identifying each action constituting the RPA task using the obtained specification data, an instruction for determining an execution environment for the identified action, and an instruction for determining the determined execution environment. An instruction for determining the execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device. If the execution device of the identified action is determined to be an external device, the identified Determining an instruction and an execution environment for transmitting data for execution of an action to an agent of an external desktop displayed on the computing device, and determining an execution device of the identified action as one of the computing device and an external device. It may include an instruction to repeat the transmitting step in the order of each identified action.

또한, RPA 태스크를 레코딩하는 컴퓨터 프로그램(1500)은 RPA 태스크의 레코딩 상황에서, 외부 데스크톱의 윈도우 영역 내부의 객체를 선택하는 사용자 입력에 응답하여, 상기 외부 데스크톱의 에이전트로부터, 상기 사용자 입력에 의하여 선택된 객체에 대한 객체 정보를 수신하는 인스트럭션과, 상기 수신된 객체 정보를 이용하여 상기 RPA 태스크의 명세 데이터에 액션 정보를 추가하는 인스트럭션을 포함할 수 있다.In addition, the computer program 1500 for recording the RPA task, in response to a user input for selecting an object inside the window area of the external desktop in a recording situation of the RPA task, selects an object selected by the user input from the agent of the external desktop. It may include an instruction for receiving object information about an object, and an instruction for adding action information to the specification data of the RPA task using the received object information.

몇몇 실시예들에서, 도 8을 참조하여 설명된 컴퓨팅 시스템은 가상 머신 등 클라우드 기술에 기반하여 서버 팜(server farm)에 포함된 하나 이상의 물리 서버(physical server)를 이용하여 구성될 수 있다. 이 경우, 도 6에 도시된 구성 요소 중 프로세서(1100), 메모리(1400) 및 스토리지(1300) 중 적어도 일부는 가상 하드웨어(virtual hardware)일 수 있을 것이며, 통신 인터페이스(1200) 또한 가상 스위치(virtual switch) 등 가상화된 네트워킹 요소로 구성될 수 있을 것이다.In some embodiments, the computing system described with reference to FIG. 8 may be configured using one or more physical servers included in a server farm based on cloud technology, such as a virtual machine. In this case, at least some of the processor 1100, memory 1400, and storage 1300 among the components shown in FIG. 6 may be virtual hardware, and the communication interface 1200 may also be a virtual switch. It may be composed of virtualized networking elements such as switches.

도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 발명이 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.Although operations are shown in the drawings in a specific order, it should not be understood that the operations must be performed in the specific order shown or sequential order or that all illustrated operations must be performed to obtain the desired results. In certain situations, multitasking and parallel processing may be advantageous. Although embodiments of the present disclosure have been described above with reference to the attached drawings, those skilled in the art will understand that the present invention can be implemented in other specific forms without changing the technical idea or essential features. I can understand that there is. Therefore, the embodiments described above should be understood in all respects as illustrative and not restrictive. The scope of protection of the present invention should be interpreted in accordance with the claims below, and all technical ideas within the equivalent scope should be construed as being included in the scope of rights of the technical ideas defined by this disclosure.

Claims (19)

컴퓨팅 장치에 의하여 수행되는 방법에 있어서,
RPA 태스크의 레코딩 상황에서, 외부 데스크톱의 윈도우 영역 내부의 객체를 선택하는 사용자 입력에 응답하여, 상기 외부 데스크톱의 에이전트로부터, 상기 사용자 입력에 의하여 선택된 객체에 대한 객체 정보를 수신하는 단계; 및
상기 수신된 객체 정보를 이용하여 상기 RPA 태스크의 명세 데이터에 액션 정보를 추가하는 단계를 포함하는,
RPA 태스크 레코딩 방법.
In a method performed by a computing device,
In a recording situation of an RPA task, in response to a user input for selecting an object inside a window area of an external desktop, receiving object information about the object selected by the user input from an agent of the external desktop; and
Comprising the step of adding action information to the specification data of the RPA task using the received object information,
RPA task recording method.
제1 항에 있어서,
상기 객체 정보를 수신하는 단계는,
상기 RPA 태스크의 레코딩 상황에서, 상기 외부 데스크톱의 윈도우 영역 내부에 커서가 진입하는 것을 감지하는 것에 응답하여, 상기 에이전트에 객체 추출 모드 전환 요청을 송신하는 단계를 포함하는,
RPA 태스크 레코딩 방법.
According to claim 1,
The step of receiving the object information is,
In a recording situation of the RPA task, in response to detecting a cursor entering inside a window area of the external desktop, sending an object extraction mode switch request to the agent,
RPA task recording method.
제2 항에 있어서,
상기 객체 정보를 수신하는 단계는,
상기 객체 추출 모드로 전환된 상기 에이전트에 의하여 생성된 상기 객체 정보를 수신하는 단계를 더 포함하는,
RPA 태스크 레코딩 방법.
According to clause 2,
The step of receiving the object information is,
Further comprising receiving the object information generated by the agent switched to the object extraction mode,
RPA task recording method.
제1 항에 있어서,
상기 객체 정보를 수신하는 단계는,
상기 에이전트에 의하여 생성된 상기 외부 데스크톱의 실행 환경 정보를 더 수신하는 단계를 포함하는,
RPA 태스크 레코딩 방법.
According to claim 1,
The step of receiving the object information is,
Comprising the step of further receiving execution environment information of the external desktop created by the agent,
RPA task recording method.
컴퓨팅 장치에 의하여 수행되는 방법에 있어서,
RPA 태스크의 명세 데이터를 획득하는 단계;
상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하는 단계;
상기 식별된 액션의 실행 환경을 결정하는 단계;
상기 결정된 실행 환경을 이용하여 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 단계;
상기 식별된 액션의 실행 장치가 외부 장치로 결정된 경우, 상기 식별된 액션의 실행을 위한 데이터를 상기 컴퓨팅 장치에 연결된 외부 데스크톱의 에이전트에 송신하는 단계; 및
상기 실행 환경을 결정하는 단계와, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계와, 송신하는 단계를 상기 식별된 각 액션의 순서에 따라 반복하는 단계를 포함하는,
RPA 태스크 실행 방법.
In a method performed by a computing device,
Obtaining specification data of the RPA task;
Identifying each action constituting the RPA task using the obtained specification data;
determining an execution environment for the identified action;
Using the determined execution environment, determining an execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device;
When the execution device of the identified action is determined to be an external device, transmitting data for execution of the identified action to an agent of an external desktop connected to the computing device; and
Repeating the steps of determining the execution environment, determining an execution device of the identified action as one of the computing device and an external device, and transmitting the steps in the order of each identified action. ,
How to run RPA tasks.
제5 항에 있어서,
상기 컴퓨팅 장치에 연결된 각각의 외부 데스크톱의 에이전트로부터 실행 환경 정보를 수신하는 단계를 더 포함하되,
상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계는,
상기 식별된 액션의 실행 환경을 이용하여 상기 컴퓨팅 장치에서 상기 식별된 액션을 실행할 수 있는지 여부를 결정하는 단계;
상기 컴퓨팅 장치에서 상기 식별된 액션을 실행할 수 있는 것으로 결정되면, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치로 결정하는 단계; 및
상기 컴퓨팅 장치에서 상기 식별된 액션을 실행할 수 없는 것으로 결정되면, 상기 수신된 실행 환경 정보를 이용하여 상기 식별된 액션의 실행 장치를 상기 각각의 외부 데스크톱 중 하나로 결정하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to clause 5,
Further comprising receiving execution environment information from an agent of each external desktop connected to the computing device,
The step of determining the execution device of the identified action as one of the computing device and an external device,
determining whether the identified action can be executed on the computing device using an execution environment of the identified action;
If it is determined that the computing device can execute the identified action, determining the computing device as an execution device for the identified action; and
When it is determined that the identified action cannot be executed on the computing device, determining the execution device of the identified action as one of the respective external desktops using the received execution environment information,
How to run RPA tasks.
제6 항에 있어서,
상기 RPA 태스크의 실행을 가리키는 사용자 입력을 입력받는 단계를 더 포함하고,
상기 실행 환경 정보를 수신하는 단계는,
상기 사용자 입력을 입력 받는 것에 응답하여, 상기 실행 환경 정보를 수신하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to clause 6,
Further comprising receiving a user input indicating execution of the RPA task,
The step of receiving the execution environment information is,
In response to receiving the user input, comprising receiving the execution environment information,
How to run RPA tasks.
제6 항에 있어서,
상기 실행 환경 정보는,
실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보를 포함하는,
RPA 태스크 실행 방법.
According to clause 6,
The execution environment information is,
Containing execution environment type information, installed application information, resolution information, and hardware available resource information,
How to run RPA tasks.
제8 항에 있어서,
상기 수신된 실행 환경 정보를 이용하여 상기 식별된 액션의 실행 장치를 상기 각각의 외부 데스크 중 하나로 결정하는 단계는,
상기 수신된 실행 환경 정보 중에서, 상기 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보 모두가 상기 식별된 액션의 실행 환경에 부합하는 실행 환경 정보를 가지는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계; 및
상기 수신된 실행 환경 정보 중에서, 상기 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보 모두가 상기 식별된 액션의 실행 환경에 부합하는 실행 환경 정보를 가지는 외부 데스크톱이 존재하지 않는 경우, 상기 실행 환경 타입 정보, 설치된 애플리케이션 정보, 해상도 정보 및 하드웨어 가용 리소스 정보 중 일부 필수 정보 만을 만족시키는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to clause 8,
The step of determining the execution device of the identified action as one of the respective external desks using the received execution environment information,
Among the received execution environment information, the execution environment type information, installed application information, resolution information, and hardware available resource information all match the execution environment of the identified action to an external desktop having execution environment information of the identified action. deciding on an execution device; and
Among the received execution environment information, if there is no external desktop having execution environment information in which the execution environment type information, installed application information, resolution information, and hardware available resource information all match the execution environment of the identified action, Comprising the step of determining an external desktop that satisfies only some essential information among the execution environment type information, installed application information, resolution information, and hardware available resource information as the execution device of the identified action,
How to run RPA tasks.
제6 항에 있어서,
상기 수신된 실행 환경 정보를 이용하여 상기 식별된 액션의 실행 장치를 상기 각각의 외부 데스크톱 중 하나로 결정하는 단계는,
상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 경고 메시지를 표시하고, RPA 태스크의 실행을 중단하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to clause 6,
The step of determining the execution device of the identified action as one of the respective external desktops using the received execution environment information,
If there is no external desktop matching the received execution environment information, displaying a warning message and stopping execution of the RPA task,
How to run RPA tasks.
제6 항에 있어서,
상기 수신된 실행 환경 정보를 이용하여 상기 식별된 액션의 실행 장치를 상기 각각의 외부 데스크톱 중 하나로 결정하는 단계는,
상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to clause 6,
The step of determining the execution device of the identified action as one of the respective external desktops using the received execution environment information,
If there is no external desktop matching the received execution environment information, the external desktop matching the received execution environment information among the accessible desktops registered in advance by the user of the computing device is used as the execution device of the identified action. Including the step of deciding,
How to run RPA tasks.
제11 항에 있어서,
상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계는,
상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱이 존재하지 않는 경우, 상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱에 연결하는 단계; 및
상기 신규로 연결된 외부 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to claim 11,
The step of determining, among accessible desktops pre-registered by the user of the computing device, an external desktop matching the received execution environment information as an execution device for the identified action,
If there is no external desktop matching the received execution environment information, connecting to an accessible desktop registered in advance by the user of the computing device; and
Comprising the step of determining, among the newly connected external desktops, an external desktop matching the received execution environment information as an execution device of the identified action.
How to run RPA tasks.
컴퓨팅 시스템에 있어서,
사용자 단말과 연결되는 통신 인터페이스;
프로세서; 및
상기 프로세서에 로드(load)되는 컴퓨터 프로그램을 저장하는 메모리를 포함하되,
상기 컴퓨터 프로그램은,
상기 통신 인터페이스를 통하여 RPA(Robotic Process Automation) 태스크의 명세 데이터를 수신하는 인스트럭션(instruction);
상기 사용자 단말로부터 상기 RPA 태스크의 실행 명령을 수신하는 인스트럭션;
상기 RPA 태스크의 실행 명령 수신에 응답하여, 상기 RPA 태스크를 실행하는 인스트럭션을 포함하되,
상기 RPA 태스크를 실행하는 인스트럭션은,
상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하는 인스트럭션;
상기 식별된 액션의 실행 환경을 결정하는 인스트럭션;
상기 결정된 실행 환경을 이용하여 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 인스트럭션;
상기 식별된 액션의 실행 장치가 외부 장치로 결정된 경우, 상기 식별된 액션의 실행을 위한 데이터를 상기 컴퓨팅 장치에 표시된 외부 데스크톱의 에이전트에 송신하는 인스트럭션; 및
상기 실행 환경을 결정하는 단계와, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계와, 송신하는 단계를 상기 식별된 각 액션의 순서에 따라 반복하는 인스트럭션을 포함하는,
RPA 태스크 실행 장치.
In computing systems,
A communication interface connected to a user terminal;
processor; and
Includes a memory that stores a computer program loaded on the processor,
The computer program is,
Instructions for receiving specification data of an RPA (Robotic Process Automation) task through the communication interface;
An instruction that receives an execution command of the RPA task from the user terminal;
In response to receiving an execution command of the RPA task, it includes instructions for executing the RPA task,
The instructions for executing the RPA task are:
Instructions for identifying each action constituting the RPA task using the obtained specification data;
Instructions for determining an execution environment for the identified action;
Instructions for determining an execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device using the determined execution environment;
When the execution device of the identified action is determined to be an external device, an instruction for transmitting data for execution of the identified action to an agent of an external desktop displayed on the computing device; and
Instructions for repeating the steps of determining the execution environment, determining an execution device of the identified action as one of the computing device and an external device, and transmitting the steps in the order of each identified action. ,
RPA task execution device.
제13 항에 있어서,
상기 컴퓨팅 시스템은, 상기 사용자 단말에 원격 데스크톱 서비스를 제공하는 시스템인,
RPA 태스크 실행 장치.
According to claim 13,
The computing system is a system that provides a remote desktop service to the user terminal,
RPA task execution device.
컴퓨팅 장치에 의하여 수행되는 방법에 있어서,
RPA 태스크의 명세 데이터를 획득하는 단계;
상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하는 단계;
상기 식별된 액션의 실행 환경을 결정하는 단계;
상기 결정된 실행 환경을 이용하여, 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 단계;
상기 실행 환경을 결정하는 단계 및 상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 외부 장치 중 어느 하나로 결정하는 단계를 상기 식별된 각 액션에 대하여 반복하는 단계;
상기 식별된 액션의 상기 결정된 실행 장치가 상기 컴퓨팅 장치인 경우, 상기 식별된 액션을 실행하는 단계;
상기 식별된 액션의 상기 결정된 실행 장치가 외부 장치인 경우, 상기 식별된 액션의 실행을 위한 데이터를 상기 외부 장치에 대응되는 에이전트에 송신하는 단계; 및
상기 식별된 액션을 실행하는 단계와, 상기 식별된 액션의 실행을 위한 데이터를 상기 외부 장치에 대응되는 에이전트에 송신하는 단계를 상기 식별된 각 액션의 순서에 따라 반복하는 단계를 포함하는,
RPA 태스크 실행 방법.
In a method performed by a computing device,
Obtaining specification data of the RPA task;
Identifying each action constituting the RPA task using the obtained specification data;
determining an execution environment for the identified action;
Using the determined execution environment, determining an execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device;
repeating the steps of determining the execution environment and determining an execution device of the identified action as one of the computing device and an external device for each identified action;
if the determined execution device of the identified action is the computing device, executing the identified action;
When the determined execution device of the identified action is an external device, transmitting data for execution of the identified action to an agent corresponding to the external device; and
Comprising the steps of repeating the steps of executing the identified action and transmitting data for executing the identified action to an agent corresponding to the external device in the order of each identified action,
How to run RPA tasks.
제15 항에 있어서,
상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 단계는,
상기 식별된 액션의 실행 장치가 결정될 수 없는 경우, 알림 메시지를 표시하고 상기 RPA 태스크의 실행을 중단하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to claim 15,
The step of determining the execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device,
If the execution device of the identified action cannot be determined, displaying a notification message and stopping execution of the RPA task,
How to run RPA tasks.
제15 항에 있어서,
상기 식별된 액션의 실행 장치를 상기 컴퓨팅 장치 및 상기 컴퓨팅 장치에 연결된 외부 데스크톱에 대응되는 외부 장치 중 어느 하나로 결정하는 단계는,
상기 컴퓨팅 장치의 사용자가 사전에 등록한 접속 가능 데스크톱 중에서 상기 수신된 실행 환경 정보에 부합하는 외부 데스크톱을 상기 식별된 액션의 실행 장치로 결정하는 단계;
상기 실행 장치로 결정된 외부 데스크톱에 신규로 연결하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to claim 15,
The step of determining the execution device of the identified action as one of the computing device and an external device corresponding to an external desktop connected to the computing device,
determining an external desktop matching the received execution environment information among accessible desktops registered in advance by a user of the computing device as an execution device of the identified action;
Comprising the step of newly connecting to an external desktop determined as the execution device,
How to run RPA tasks.
컴퓨팅 장치에 의하여 수행되는 방법에 있어서,
RPA 태스크의 명세 데이터를 획득하는 단계;
상기 획득된 명세 데이터를 이용하여, 상기 RPA 태스크를 구성하는 각 액션을 식별하는 단계;
상기 식별된 액션의 실행 환경을 이용하여, 상기 RPA 태스크의 포괄 실행 환경을 결정하는 단계;
상기 컴퓨팅 장치의 실행 환경이 상기 결정된 포괄 실행 환경에 부합하는 경우, 상기 RPA 태스크의 실행 장치를 상기 컴퓨팅 장치로 결정하는 단계; 및
상기 컴퓨팅 장치의 실행 환경의 적어도 일부가 상기 결정된 포괄 실행 환경에 부합하지 않는 경우, 상기 컴퓨팅 장치에 연결된 외부 데스크톱 중에서 상기 결정된 포괄 실행 환경에 부합하는 외부 데스크톱을 상기 RPA 태스크의 실행 장치로 결정하고, 상기 RPA 태스크의 실행 장치에 상기 RPA 태스크의 명세 데이터를 송신하는 단계를 포함하는,
RPA 태스크 실행 방법.
In a method performed by a computing device,
Obtaining specification data of the RPA task;
Identifying each action constituting the RPA task using the obtained specification data;
Using the execution environment of the identified action, determining a comprehensive execution environment of the RPA task;
If the execution environment of the computing device matches the determined comprehensive execution environment, determining the computing device as the execution device of the RPA task; and
If at least a part of the execution environment of the computing device does not conform to the determined comprehensive execution environment, determine an external desktop that matches the determined comprehensive execution environment among external desktops connected to the computing device as an execution device of the RPA task, Comprising the step of transmitting specification data of the RPA task to the execution device of the RPA task,
How to run RPA tasks.
제18 항에 있어서,
상기 RPA 태스크의 포괄 실행 환경을 결정하는 단계는,
상기 식별된 액션의 실행 환경을 모두 'AND 조건'으로 종합하여 상기 포괄 실행 환경을 결정하는 단계를 포함하는,
RPA 태스크 실행 방법.
According to clause 18,
The step of determining the comprehensive execution environment of the RPA task is:
Comprising the step of determining the comprehensive execution environment by combining all execution environments of the identified actions with an 'AND condition',
How to run RPA tasks.
KR1020220094791A 2022-05-26 2022-07-29 Method for recording and executing for rpa task KR20230165086A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/202,476 US20230385086A1 (en) 2022-05-26 2023-05-26 Method for recording and executing rpa task

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20220064795 2022-05-26
KR1020220064795 2022-05-26

Publications (1)

Publication Number Publication Date
KR20230165086A true KR20230165086A (en) 2023-12-05

Family

ID=89157480

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220094791A KR20230165086A (en) 2022-05-26 2022-07-29 Method for recording and executing for rpa task

Country Status (1)

Country Link
KR (1) KR20230165086A (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102227687B1 (en) 2020-02-18 2021-03-15 유아이패스, 인크. Automation windows for robotic process automation
KR102337270B1 (en) 2020-12-11 2021-12-09 주식회사 이노룰스 System and method for providing integrated development environment for rpa script development based on web
KR20220100539A (en) 2021-01-08 2022-07-15 한밭대학교 산학협력단 Manufacturing Method of Roll-to-roll Flexible Printed Circuit Board including Inkjet Printing Process

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102227687B1 (en) 2020-02-18 2021-03-15 유아이패스, 인크. Automation windows for robotic process automation
KR102337270B1 (en) 2020-12-11 2021-12-09 주식회사 이노룰스 System and method for providing integrated development environment for rpa script development based on web
KR20220100539A (en) 2021-01-08 2022-07-15 한밭대학교 산학협력단 Manufacturing Method of Roll-to-roll Flexible Printed Circuit Board including Inkjet Printing Process

Similar Documents

Publication Publication Date Title
CN113110941B (en) Managing delivery of code and dependency data using application containers
US7434167B2 (en) Accessibility system and method
US11334471B1 (en) Mocking robotic process automation (RPA) activities for workflow testing
EP3128416B1 (en) Sdn application integration, management and control method, system and device
US20160224586A1 (en) System and methods thereof for dynamically updating the contents of a folder on a device
US7594192B2 (en) Method and apparatus for identifying hotkey conflicts
US8510712B1 (en) Testing in-container software objects
US11947443B2 (en) Robotic process automation (RPA) debugging systems and methods
US8260897B2 (en) System and method for automatically managing IT-resources in a heterogeneous environment
US20140040763A1 (en) Managing active gui elements remotely
US11977904B2 (en) Systems and methods for robotic process automation of mobile platforms
US20220214931A1 (en) System and method for exposing features of integration platform adapters as first-class actions in an orchestration template
CN113168335A (en) Application integration for robotic process automation
CN113626102A (en) Data processing method and device, electronic equipment and storage medium
US20220070246A1 (en) Systems and Methods Of Automating A File Download Activity
US20040061714A1 (en) Logical element tree and method
US20040064530A1 (en) Accessibility system events mechanism and method
JP2023070148A (en) Systems and methods for dynamically binding robotic process automation (RPA) robots to resources
CN114868109B (en) Automatic anchor point determination and target graphic element identification in user interface automation
CN113626095A (en) Switching method and switching system of configuration center, electronic equipment and storage medium
US11677637B2 (en) Contextual update compliance management
CN116893807A (en) System and method for designing a robotic flow automation robot using a browser
KR20230165086A (en) Method for recording and executing for rpa task
EP4086755A1 (en) Robotic process automation (rpa) comprising automatic document scrolling
US11531674B2 (en) System and method for supporting rollback of changes made to target systems via an integration platform