KR102261793B1 - System for rpa robot agent clutstering - Google Patents

System for rpa robot agent clutstering Download PDF

Info

Publication number
KR102261793B1
KR102261793B1 KR1020200172903A KR20200172903A KR102261793B1 KR 102261793 B1 KR102261793 B1 KR 102261793B1 KR 1020200172903 A KR1020200172903 A KR 1020200172903A KR 20200172903 A KR20200172903 A KR 20200172903A KR 102261793 B1 KR102261793 B1 KR 102261793B1
Authority
KR
South Korea
Prior art keywords
rpa
image
robot
function
robot agent
Prior art date
Application number
KR1020200172903A
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 KR1020200172903A priority Critical patent/KR102261793B1/en
Application granted granted Critical
Publication of KR102261793B1 publication Critical patent/KR102261793B1/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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/109Time management, e.g. calendars, reminders, meetings or time accounting
    • G06Q10/1093Calendar-based scheduling for persons or groups
    • G06Q10/1097Task assignment

Abstract

The present invention relates to an RPA robot agent clustering system. According to the present invention, the RPA robot agent clustering system includes: an input unit for receiving work schedule information; a memory which stores a program performing clustering for an RPA robot agent using job schedule information; and a processor which executes the program. The processor allocates a plurality of different tasks to a cluster composed of the plurality of robot agents when a random waiting time is required because it is impossible to predict RPA task duration, or when the execution times of the plurality of RPA tasks overlap. Therefore, it is possible to improve the productivity of script code writing, and an RPA-related script writing work is possible on a web without installing a studio.

Description

RPA 로봇 에이전트 클러스터링 시스템{SYSTEM FOR RPA ROBOT AGENT CLUTSTERING}RPA Robot Agent Clustering System {SYSTEM FOR RPA ROBOT AGENT CLUTSTERING}

본 발명은 RPA 로봇 에이전트 클러스터링 시스템에 관한 것이다. The present invention relates to an RPA robot agent clustering system.

RPA(Robotic Process Automation)는 비즈니스 과정 중 반복적이고 단순한 업무 프로세스에 소프트웨어를 적용해 자동화하는 것을 뜻한다. RPA (Robotic Process Automation) refers to applying software to repetitive and simple business processes during business processes and automating them.

종래 기술에 따르면, 업무 과정에 발생되는 데이터를 정형화하고 논리적으로 자동 수행하는 기술이 제안되었으나, 텍스트만으로 작성된 작업 스크립트의 경우 직관적으로 화면상 어떠한 부분들이 클릭(click), 더블 클릭(DoubleClick), 타잎(Type)의 대상이 되는지 파악하기 어려운 문제점이 있다. According to the prior art, a technology for standardizing and logically automatically performing data generated in the business process has been proposed. However, in the case of a work script written only in text, certain parts on the screen are intuitively clicked, double clicked, and typed. There is a problem that it is difficult to determine whether it is the target of (Type).

종래 기술에 따르면, 대량의 로봇 에이전트 운영이 필요한 경우에 있어서, RPA 작업의 소요 시간을 예측할 수 없어 다음 작업 할당을 위해 무작위의 대기시간이 요구되거나, 복수의 RPA 작업들이 실행되어야 하는 시간이 겹치게 되는 문제점이 있다. According to the prior art, when a large amount of robot agent operation is required, the required time of the RPA task cannot be predicted, so a random waiting time is required for the next task assignment, or the time when a plurality of RPA tasks should be executed overlaps. There is a problem.

본 발명은 전술한 문제점을 해결하기 위해 제안된 것으로, 복수 업무에 대한 zero-wait 처리가 가능한 RPA 로봇 에이전트 클러스터링 시스템을 제공하는데 그 목적이 있다. The present invention has been proposed to solve the above problems, and an object of the present invention is to provide an RPA robot agent clustering system capable of zero-wait processing for multiple tasks.

본 발명에 따른 RPA 로봇 에이전트 클러스터링 시스템은 작업 스케줄 정보를 수신하는 입력부와, 작업 스케줄 정보를 이용하여 RPA 로봇 에이전트에 대한 클러스터링을 수행하는 프로그램이 저장된 메모리 및 프로그램을 실행시키는 프로세서를 포함하고, 프로세서는 RPA 작업 소요 시간 예측이 불가하여 무작위의 대기 시간을 요구하는 경우 또는 복수의 RPA 작업들의 실행 시간이 겹치는 경우, 상이한 복수의 작업들을 복수의 로봇 에이전트들로 구성된 클러스터에 할당한다. The RPA robot agent clustering system according to the present invention includes an input unit for receiving task schedule information, a memory in which a program for clustering the RPA robot agent using the task schedule information is stored, and a processor for executing the program, the processor comprising: When a random waiting time is required because it is impossible to predict the RPA task duration, or when the execution times of a plurality of RPA tasks overlap, a plurality of different tasks are allocated to a cluster composed of a plurality of robot agents.

프로세서는 업무를 클러스터 단위로 배분하고, 클러스터에 속하는 복수의 로봇 에이전트 중 진행 중인 작업이 없는 가용 로봇 에이전트로 업무를 배정한다. The processor allocates tasks in cluster units, and assigns tasks to available robot agents with no work in progress among a plurality of robot agents belonging to the cluster.

프로세서는 각각의 로봇 에이전트들의 능력 정보를 고려하여, 현재 진행 중인 작업의 진행 상황을 파악하고, 다음 업무를 배정할 가용 로봇 에이전트를 선별한다. The processor considers the capability information of each robot agent, grasps the progress of the current task, and selects available robot agents to assign the next task.

로봇 에이전트는 ICM(Image Capture Module), SRE(Script Runtime Engine), IDM(Image Detect Module), IPM(Image Processing Module)을 포함한다. The robot agent includes an Image Capture Module (ICM), a Script Runtime Engine (SRE), an Image Detect Module (IDM), and an Image Processing Module (IPM).

본 발명에 따르면, RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 시스템 및 방법을 제공하여, 클릭(click), 더블 클릭(DoubleClick), 타잎(Type)의 대상이 되는 이미지들을 통합개발환경(IDE) 편집기 상에서 로직을 구현하는 코드와 함께 시각적으로 확인 가능하도록 지원함으로써, 스크립트 코드 작성의 생산성을 증진시키는 것이 가능하며, 스튜디오 설치 없이 웹 상에서 RPA 관련 스크립트 작성 작업이 가능하다. According to the present invention, by providing a system and method for providing a web-based integrated development environment for RPA script development, images targeted for click, double click, and type are displayed in an integrated development environment (IDE). ) It is possible to improve the productivity of script code writing by supporting visual confirmation along with the code implementing the logic on the editor, and it is possible to write RPA-related scripts on the web without installing a studio.

또한, 복수의 에이전트를 단일 클러스터로 묶어 복수의 작업이 할당되도록 함으로써, 에이전트가 실행되는 PC의 성능(처리 속도 및 시스템 자원) 또는 이전 작업의 오류 등으로 인한 후속 작업들의 지연 및 오류 발생 등의 문제를 해결하는 것이 가능하며, 별도의 스튜디오 설치 없이 Saas 기반의 RPA 로봇 업무 관리가 가능한 효과가 있다. In addition, by tying multiple agents into a single cluster so that multiple tasks are assigned, problems such as delay and error occurrence of subsequent tasks due to the performance of the PC running the agent (processing speed and system resources) or errors in previous tasks It is possible to solve the problem, and there is an effect that it is possible to manage Saas-based RPA robot tasks without installing a separate studio.

본 발명의 효과는 이상에서 언급한 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

도 1은 본 발명의 실시예에 따른 통합개발환경 제공 시스템을 도시한다.
도 2는 본 발명의 실시예에 따른 코드 미러 상 이미지 표시를 위한 변환 전/후를 도시한다.
도 3은 본 발명의 일 실시예에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 시스템의 이미지 캡쳐 과정을 도시한다.
도 4는 본 발명의 다른 실시예에 따른 캡쳐 이미지 버전 관리를 수행하는 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 시스템의 이미지 캡쳐 과정을 도시한다.
도 5는 본 발명의 실시예에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 방법을 도시한다.
도 6은 종래 기술에 따른 작업 대기 시간 발생의 문제점을 도시한다.
도 7은 본 발명의 또다른 실시예에 따른 RPA 로봇 에이전트 클러스터링 시스템을 이용한 zero-waits 구현을 도시한다.
도 8은 본 발명의 또다른 실시예에 따른 RPA의 동작 구조를 도시한다.
도 9는 본 발명의 또다른 실시예에 따른 RPA 로봇 에이전트 클러스터링 시스템을 도시한다.
도 10 및 도 11은 본 발명의 또다른 실시예에 따른 RPA 로봇 에이전트 클러스터링 시스템의 클러스터 동작 구조를 도시한다.
도 12는 본 발명의 또다른 실시예에 따른 메시지 큐 동작 구조를 도시한다.
도 13은 본 발명의 또다른 실시예에 따른 Publisher/Subscribe 패턴을 도시한다.
도 14는 본 발명의 또다른 실시예에 따른 Task Queue 패턴을 도시한다.
1 shows a system for providing an integrated development environment according to an embodiment of the present invention.
Figure 2 shows before/after conversion for image display on a code mirror according to an embodiment of the present invention.
3 illustrates an image capture process of a web-based integrated development environment providing system for RPA script development according to an embodiment of the present invention.
4 shows an image capture process of a web-based integrated development environment providing system for RPA script development for performing capture image version management according to another embodiment of the present invention.
5 illustrates a method for providing a web-based integrated development environment for RPA script development according to an embodiment of the present invention.
6 shows the problem of generating a waiting time for a job according to the prior art.
7 shows a zero-waits implementation using an RPA robot agent clustering system according to another embodiment of the present invention.
8 shows an operation structure of an RPA according to another embodiment of the present invention.
9 shows an RPA robot agent clustering system according to another embodiment of the present invention.
10 and 11 show the cluster operation structure of the RPA robot agent clustering system according to another embodiment of the present invention.
12 shows a message queue operation structure according to another embodiment of the present invention.
13 illustrates a Publisher/Subscribe pattern according to another embodiment of the present invention.
14 shows a Task Queue pattern according to another embodiment of the present invention.

본 발명의 전술한 목적 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. The above and other objects, advantages and features of the present invention, and a method of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings.

그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 목적, 구성 및 효과를 용이하게 알려주기 위해 제공되는 것일 뿐으로서, 본 발명의 권리범위는 청구항의 기재에 의해 정의된다. However, the present invention is not limited to the embodiments disclosed below, but can be implemented in various different forms, and only the following examples are provided to those of ordinary skill in the art to which the present invention pertains to the purpose of the invention, It is only provided to easily inform the configuration and effect, and the scope of the present invention is defined by the description of the claims.

한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성소자, 단계, 동작 및/또는 소자가 하나 이상의 다른 구성소자, 단계, 동작 및/또는 소자의 존재 또는 추가됨을 배제하지 않는다.On the other hand, the terms used herein are for the purpose of describing the embodiments and are not intended to limit the present invention. As used herein, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, "comprises" and/or "comprising" means that a referenced element, step, operation and/or element is the presence of one or more other elements, steps, operations and/or elements. or added.

도 1은 본 발명의 실시예에 따른 통합개발환경 제공 시스템을 도시한다. 1 shows a system for providing an integrated development environment according to an embodiment of the present invention.

스튜디오(110)는 관리자 웹 대시보드와 통합된 작업 스크립트 개발 환경이다. Studio 110 is a working script development environment integrated with the administrator web dashboard.

로봇 에이전트(120)는 로봇 에이전트 응용 프로그램을 구동한다. The robot agent 120 drives the robot agent application program.

로봇 에이전트(120)는 스튜디오(110)에서 작성된 작업과 관련된 정보(소스코드 포함)들을 전달받기 위한 통신 채널을 제공하며, 로봇 에이전트(120)가 서버, 스튜디오(110)를 클라이언트로 하는 웹 소켓 채널을 구성한다. The robot agent 120 provides a communication channel for receiving information (including source code) related to the work created in the studio 110, and a web socket channel in which the robot agent 120 uses the server and the studio 110 as clients. make up

로봇 에이전트(120)는 스튜디오(110)에서 작성된 작업과 관련된 명령들을 전달받고, 그 결과를 되돌리기 위한 통신 채널을 제공하며, 채널 간 메시지는 JSON 형식{event, payload}의 형태를 갖는다. The robot agent 120 receives the commands related to the work written in the studio 110, and provides a communication channel for returning the result, and the message between the channels has the form of a JSON format {event, payload}.

스튜디오(110)는 작업 소스코드 스크립트를 생성/편집한다. The studio 110 creates/edits a working source code script.

스튜디오(110)는 로컬에서 실행중인 로봇 에이전트(120)에게 요청(open command)하여 로컬 리퍼지토리(local repository, 140)에 저장된 작업스크립트를 불러온다(open a project). The studio 110 calls the work script stored in the local repository (local repository, 140) by requesting the robot agent 120 running locally (open command) (open a project).

스튜디오(110)는 로컬에서 실행 중인 로봇 에이전트(120)에게 요청(save command)하여 편집된 작업 소스코드를 전달한다(send the project to save). The studio 110 transmits the edited work source code by requesting the robot agent 120 running locally (save command) (send the project to save).

로봇 에이전트(120)는 스튜디오(110)에서 전달된 작업 소스코드를 임의의 로컬 리퍼지토리(140)에 저장한다(save the project to the storage). The robot agent 120 stores the work source code delivered from the studio 110 in an arbitrary local repository 140 (save the project to the storage).

로봇 에이전트(120)는 스튜디오(110)에서 전달된 작업 스크립트를 실행하고(exec the project), 테스트한다. The robot agent 120 executes the work script delivered from the studio 110 (exec the project), and tests it.

로봇 에이전트(120)는 스튜디오(110)에서 작업 스크립트의 실행 로그 및 결과(Log)를 스튜디오(110)에게 전달한다. The robot agent 120 transmits the execution log and result (Log) of the work script in the studio 110 to the studio 110 .

로봇 에이전트(120)는 스튜디오(110)에서 전달된 작업 관련 정보들을 사용하여 배포 모듈을 만든다(build the project to create a deploy module). The robot agent 120 builds a deployment module using the job-related information transmitted from the studio 110 (build the project to create a deploy module).

로봇 에이전트(120)는 생성된 배포 모듈과 작업 정보들을 백엔드 서버(150)에 전달한다(deploy the module). The robot agent 120 delivers the generated deployment module and job information to the backend server 150 (deploy the module).

백엔드 서버(150)는 전달된 배포 모듈과 작업 정보들을 데이터베이스에 저장하고, 새로운 작업(job)을 등록한다. The backend server 150 stores the delivered distribution module and job information in a database, and registers a new job.

본 발명의 실시예에 따르면 통합개발환경 상에서 작업 스크립트 작성 시, 코드미러(CodeMirror)를 활용하여 이미지를 삽입하여, 클릭(click), 더블 클릭(DoubleClick), 타잎(Type)의 대상이 되는 이미지들을 통합개발환경(IDE) 편집기 상에서 로직을 구현하는 코드와 함께 시각적으로 확인 가능하도록 지원함으로써, 스크립트 코드 작성의 생산성을 증진시킨다. According to an embodiment of the present invention, when writing a work script in the integrated development environment, images are inserted by using CodeMirror, and images that are the target of click, double click, and type are displayed. By supporting the visual confirmation along with the code implementing the logic on the integrated development environment (IDE) editor, the productivity of script code writing is improved.

본 발명의 실시예에 따르면, 웹 페이지 상에서 프로그램 소스코드 편집이 가능한 오픈소스 프로젝트의 활용이 가능하다. According to an embodiment of the present invention, it is possible to utilize an open source project capable of editing program source code on a web page.

본 발명의 실시예에 따르면, 코드미러 커스텀 언어 정의 기능을 활용하여(예: CodeMirror.defineMode('python')// python 언어에 대한 문법 해석 정의), 화면에 표시되는 소스코드의 최종결과를HTML 문서로 표현한다. According to an embodiment of the present invention, by utilizing the code mirror custom language definition function (eg, CodeMirror.defineMode('python') // definition of grammar interpretation for python language), the final result of the source code displayed on the screen is displayed in HTML expressed in documents.

본 발명의 실시예에 따르면, 통합개발환경 상에서 캡쳐가 필요한 시점에 로봇 에이전트에게 캡쳐 기능을 요청하면, 데스크탑 PC의 모든 화면에 대한 접근이 가능한 네이티브 응용 프로그램인 로봇 에이전트는 캡쳐한 이미지를 서버에 업로드한 후, 업로르된 이미지에 접근 가능한 URL을 생성하고, 생성된 URL을 통합개발환경 상의 코드에 <img>태그 형태로 변환한다. According to an embodiment of the present invention, when a capture function is requested from the robot agent at the point in time when capture is required in the integrated development environment, the robot agent, a native application program that can access all screens of the desktop PC, uploads the captured image to the server. After that, an accessible URL is created for the uploaded image, and the generated URL is converted into an <img> tag in the code on the integrated development environment.

<img> 태그 속성으로 onClick 이벤트 핸들러 등을 추가하여, 이미지 Click 위치 설정 등에 사용 가능하며, 코드와 함께 추가된 <img> 태그는 코드미러 상에서 이미지로 표시된다. By adding an onClick event handler as the <img> tag attribute, it can be used to set the image click location, and the <img> tag added with the code is displayed as an image on the code mirror.

도 2는 본 발명의 실시예에 따른 코드 미러 상 이미지 표시를 위한 변환 전(도 2의 (a))과 후(도 2의 (b))를 도시한다. Fig. 2 shows before (Fig. 2(a)) and after (Fig. 2(b)) conversion for image display on a code mirror according to an embodiment of the present invention.

도 3은 본 발명의 일 실시예에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 시스템의 이미지 캡쳐 흐름을 도시한다. 3 shows an image capture flow of a web-based integrated development environment providing system for RPA script development according to an embodiment of the present invention.

후술하는 (1) 및 (8)의 과정은 웹소켓 채널을 통해 수행되고, (6)의 과정은 REST API 채널을 통해 수행된다. The processes of (1) and (8), which will be described later, are performed through the WebSocket channel, and the process of (6) is performed through the REST API channel.

(1) 통합개발환경에서, 스튜디오(110)는 화면 캡쳐 메뉴를 선택하여 화면 캡쳐 기능을 요청한다. (1) In the integrated development environment, the studio 110 selects a screen capture menu to request a screen capture function.

(2) 로봇 에이전트(120)는 스크린 캡쳐 모듈(130)의 기능을 호출한다. (2) The robot agent 120 calls the function of the screen capture module 130 .

(3) 스크린 캡쳐 모듈(130)은 데스크탑 PC의 일정 부분을 드래그(drag)하여 캡쳐한다. (3) The screen capture module 130 captures by dragging a certain part of the desktop PC.

(4) 스크린 캡쳐 모듈(130)은 캡쳐된 이미지를 로컬 리퍼지토리(140)에 저장한다. (4) The screen capture module 130 stores the captured image in the local repository 140 .

(5) 스크린 캡쳐 모듈(130)은 로컬 리퍼지토리(140)에 저장된 경로를 로봇 에이전트(120)에 반환한다. (5) The screen capture module 130 returns the path stored in the local repository 140 to the robot agent 120 .

(6) 로봇 에이전트(120)는 이미지 파일을 백엔드 서버(150)에 업로드한다. (6) The robot agent 120 uploads the image file to the backend server 150 .

(7) 백엔드 서버(150)는 전달받은 이미지를 서버 리퍼지토리(160)에 저장한 후 URL을 로봇 에이전트(120)에 반환한다. (7) The backend server 150 stores the received image in the server repository 160 and returns the URL to the robot agent 120 .

(8) 로봇 에이전트(120)는 반환된 이미지 URL을 스튜디오(110)에 전달한다. (8) The robot agent 120 transmits the returned image URL to the studio 110 .

(9) 통합개발환경의 스튜디오(110)는 코드미러 커스텀 언어 재정의 기능을 사용하여 이미지로 변환될 패턴을 스크립트 코드에서 검색한 후, 로봇 에이전트(120)로부터 반환된 URL과 함께 <img> 태그로 변환한다. (9) The studio 110 of the integrated development environment uses the code mirror custom language redefinition function to search the script code for a pattern to be converted into an image, and then <img> tag with the URL returned from the robot agent 120 convert to

도 4는 본 발명의 다른 실시예에 따른 캡쳐 이미지 버전 관리를 수행하는 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 시스템의 이미지 캡쳐 흐름을 도시한다. 4 shows an image capture flow of a web-based integrated development environment providing system for RPA script development for performing captured image version management according to another embodiment of the present invention.

후술하는 (1) 및 (11)의 과정은 웹소켓 채널을 통해 수행되고, (9)의 과정은 REST API 채널을 통해 수행된다. The processes of (1) and (11), which will be described later, are performed through the websocket channel, and the process of (9) is performed through the REST API channel.

(1) 통합개발환경에서, 스튜디오(110)는 화면 캡쳐 메뉴를 선택하여 화면 캡쳐 기능을 요청한다. (1) In the integrated development environment, the studio 110 selects a screen capture menu to request a screen capture function.

(2) 로봇 에이전트(120)는 스크린 캡쳐 모듈(130)의 기능을 호출한다. (2) The robot agent 120 calls the function of the screen capture module 130 .

(3) 스크린 캡쳐 모듈(130)은 데스크탑 PC의 일정 부분을 드래그(drag)하여 캡쳐한다. (3) The screen capture module 130 captures by dragging a certain part of the desktop PC.

(4) 스크린 캡쳐 모듈(130)은 캡쳐된 이미지를 로컬 리퍼지토리(140)에 저장한다. (4) The screen capture module 130 stores the captured image in the local repository 140 .

(5) 스크린 캡쳐 모듈(130)은 로컬 Git 리퍼지토리에 COMMIT를 전송하고, (6), (7) 원격 Git 리퍼지토리에 PUSH를 전송한다. (5) The screen capture module 130 sends a COMMIT to the local Git repository, and (6), (7) sends a PUSH to the remote Git repository.

(8) 스크린 캡쳐 모듈(130)은 로컬 리퍼지토리(140)에 저장된 경로를 로봇 에이전트(120)에 반환한다. (8) The screen capture module 130 returns the path stored in the local repository 140 to the robot agent 120 .

(9) 로봇 에이전트(120)는 이미지 파일을 백엔드 서버(150)에 업로드한다. (9) The robot agent 120 uploads an image file to the backend server 150 .

(10) 백엔드 서버(150)는 전달받은 이미지를 서버 리퍼지토리(160)에 저장한 후 URL을 로봇 에이전트(120)에 반환한다. (10) The backend server 150 stores the received image in the server repository 160 and returns the URL to the robot agent 120 .

(11) 로봇 에이전트(120)는 반환된 이미지 URL을 스튜디오(110)에 전달한다. (11) The robot agent 120 transmits the returned image URL to the studio 110 .

(12) 통합개발환경의 스튜디오(110)는 코드미러 커스텀 언어 재정의 기능을 사용하여 이미지로 변환될 패턴을 스크립트 코드에서 검색한 후, 로봇 에이전트(120)로부터 반환된 URL과 함께 <img> 태그로 변환한다. (12) The studio 110 of the integrated development environment uses the code mirror custom language redefinition function to search the script code for a pattern to be converted into an image, and then <img> tag with the URL returned from the robot agent 120 convert to

도 5는 본 발명의 실시예에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 방법을 도시한다. 5 illustrates a method for providing a web-based integrated development environment for RPA script development according to an embodiment of the present invention.

본 발명의 실시예에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 방법은 스크린 캡쳐 모듈 기능을 호출하여, PC 화면을 캡쳐하는 단계(S510)와, 캡쳐된 이미지를 로컬 리퍼지토리에 저장하고, 로컬 리퍼지토리에 저장된 경로를 반환하는 단계(S520)와, 이미지 파일을 백엔드 서버에 업로드하여, 서버 리퍼지토리에 저장하고, 반환된 이미지 URL을 전달하는 단계(S530) 및 스크립트 코드에서 이미지로 변환될 패턴을 검색하고, 반환된 이미지 URL과 함께 태그로 변환하는 단계(S540)를 포함한다. The method of providing a web-based integrated development environment for RPA script development according to an embodiment of the present invention includes the steps of calling a screen capture module function to capture a PC screen (S510), and storing the captured image in a local repository, , returning the path stored in the local repository (S520), uploading the image file to the backend server, storing it in the server repository, and passing the returned image URL (S530) and converting it into an image in the script code It includes a step (S540) of searching for a pattern to be used and converting it into a tag together with the returned image URL.

S510 단계에서, 통합개발환경의 스튜디오로부터 화면 캡쳐 기능 요청을 수신한 로봇 에이전트는 스크린 캡쳐 모듈의 기능을 호출하여, PC의 일정 부분을 드래그하여 캡쳐한다. In step S510, the robot agent that has received the screen capture function request from the studio of the integrated development environment calls the function of the screen capture module and captures it by dragging a certain part of the PC.

S520 단계에서, 스크린 캡쳐 모듈은 캡쳐된 이미지를 로컬 리퍼지토리에 저장하고, 원격 리퍼지터리에 PUSH 전송하여 저장한다. In step S520, the screen capture module stores the captured image in the local repository, and transmits the PUSH to the remote repository and stores it.

S540 단계에서, 스튜디오는 코드미러 커스텀 언어 재정의 기능을 사용하여 이미지로 변환될 패턴을 스크립트 코드에서 검색한 후, 로봇 에이전트로부터 반환된 URL과 함께 <img> 태그로 변환한다. In step S540, the studio uses the code mirror custom language redefinition function to search the script code for a pattern to be converted into an image, and then converts it into an <img> tag along with the URL returned from the robot agent.

이하에서는, 본 발명의 또다른 실시예에 따른 RPA 로봇 에이전트 클러스터링 시스템 및 그 방법을 설명한다. Hereinafter, an RPA robot agent clustering system and a method according to another embodiment of the present invention will be described.

도 6은 종래 기술에 따른 작업 대기 시간 발생의 문제점을 도시한다. 6 shows the problem of generating a waiting time for a job according to the prior art.

싱글 에이전트의 최대 동시 처리 태스크가 1인 경우, 제1 작업 내지 제3 작업이 스케줄링된 상황에서, 작업 간의 대기 시간은 0이 될 수 없다는 문제점이 있다. When the maximum concurrent processing task of a single agent is 1, there is a problem that the waiting time between the jobs cannot be 0 in a situation where the first to third jobs are scheduled.

도 7은 본 발명의 또다른 실시예에 따른 RPA 로봇 에이전트 클러스터링 시스템을 이용한 zero-waits 구현을 도시한다. 7 shows a zero-waits implementation using an RPA robot agent clustering system according to another embodiment of the present invention.

도 7을 참조하면, 에이전트 클러스터(700)의 최대 동시 처리 태스크가 3이고, 제1 에이전트(710), 제2 에이전트(720), 제3 에이전트(730)는 작업 실행을 동시 처리하도록 할당을 부여받는다. Referring to FIG. 7 , the maximum concurrent processing task of the agent cluster 700 is 3, and the first agent 710 , the second agent 720 , and the third agent 730 assign an assignment to concurrently process the job execution. receive

도 8은 본 발명의 또다른 실시예에 따른 RPA의 동작 구조를 도시한다. 8 shows an operation structure of an RPA according to another embodiment of the present invention.

RPA 클라이언트의 웹 관리 UI와 RPA 로봇 에이전트는 웹소켓을 통해 통신한다. The web management UI of the RPA client and the RPA robot agent communicate through a websocket.

웹 관리 UI에는 통계 모니터, 작업 관리, 프로젝트 관리, 통합개발 환경, 공유정보 관리, 에이전트 클러스터 관리, 로그 모니터, 시스템 관리가 포함된다. The web management UI includes statistics monitor, task management, project management, integrated development environment, shared information management, agent cluster management, log monitor, and system management.

웹 관리 UI는 웹 브라우저 환경에서 실행되는 웹 응용으로, 다음과 같은 주요 기능을 포함한다. The web management UI is a web application that runs in a web browser environment, and includes the following main functions.

통계 모니터(대시보드)는 작업 실행 결과에 대한 통계 그래프, 차트를 제공하고, RPA 로봇 에이전트 및 에이전트 클러스터의 상태 모니터링 뷰를 제공한다. Statistical Monitor (Dashboard) provides statistical graphs and charts for job execution results, and provides a status monitoring view of RPA robot agents and agent clusters.

작업관리는 RPA 작업의 등록, 조회, 수정, 삭제 기능을 제공한다. Job management provides functions of registration, inquiry, modification, and deletion of RPA jobs.

프로젝트 관리는 RPA 개발 프로젝트의 등록, 조회, 수정, 삭제 기능을 제공한다. Project management provides functions of registration, inquiry, modification, and deletion of RPA development projects.

통합개발환경은 RPA 프로젝트에 속한 업무 자동화 스크립트 편집, 실행 테스트 기능을 제공한다. The integrated development environment provides the functions of editing and running test scripts for task automation belonging to the RPA project.

공유정보 관리는 다수의 RPA 스크립트들이 공유하여야 하는 정보 및 스크립트 내 직접 표시되지 않아야 하는 민감 정보(예: 타 시스템 계정, 암호 등)의 공유를 위한 등록, 조회, 수정, 삭제 기능을 제공한다.Shared information management provides registration, inquiry, modification, and deletion functions for sharing information that multiple RPA scripts should share and sensitive information that should not be displayed directly in the script (eg, other system accounts, passwords, etc.).

에이전트 클러스터 관리는 복수의 RPA 로봇 에이전트들을 하나의 클러스터로 묶어 RPA 자동화 업무의 실행 효율을 향상시키며, 에이전트 목록 조회, 선택, 클러스터 등록, 조회, 수정, 삭제 기능을 제공한다. Agent cluster management improves the execution efficiency of RPA automation tasks by tying multiple RPA robot agents into one cluster, and provides agent list inquiry, selection, cluster registration, inquiry, modification, and deletion functions.

클러스터 실행 모델에 대해 설명하면, 업무 처리 데이터가 많은 경우 이를 처리하는 하나의 로봇 에이전트에 할당하지 않고, 데이터 구간을 나누어 동일 업무를 처리하는 복수의 에이전트에 할당한다. When explaining the cluster execution model, when there is a lot of work processing data, it is not allocated to one robot agent that processes it, but is allocated to a plurality of agents that process the same task by dividing the data section.

대상 업무 조건은 대량의 데이터를 처리하여야 하는 업무로서, 예컨대 수천, 수만건의 엑셀 파일 또는 수천, 수만건의 데이터가 입력된 엑셀 또는 DB 데이터 등이다. The target work condition is a task that requires processing a large amount of data, for example, thousands or tens of thousands of Excel files, or Excel or DB data in which thousands or tens of thousands of data are input.

로그 모니터는 RPA 작업 결과 로봇 에이전트들로부터 전송된 로그 조회 기능을 제공하고, RPA 작업 정상 종료, 실패 등 상태 파악 기능을 제공한다. The log monitor provides a function to search the log transmitted from the robot agents as a result of the RPA operation, and provides a function to determine the status of RPA operation such as normal termination and failure.

시스템 관리는 사용자 등록 및 조회 기능을 제공한다. System management provides user registration and inquiry functions.

RPA 로봇 에이전트는 웹 관리 UI의 요청에 따라, 웹 기능으로 수행할 수 없는 네이티브 기능을 수행한다. The RPA robot agent performs native functions that cannot be performed with web functions according to the request of the web management UI.

RPA 로봇 에이전트는 RPA 작업을 실행하고, 그 결과 로그들을 서버에 전송한다. The RPA robot agent executes the RPA task and sends the resulting logs to the server.

RPA 로봇 에이전트는 상태 정보를 서버로 전송한다. The RPA robot agent sends status information to the server.

RPA 로봇 에이전트는 클러스터의 멤버로 등록되어, 소속 클러스터에 배정된 업무를 처리한다. The RPA robot agent is registered as a member of the cluster and handles tasks assigned to the cluster it belongs to.

RPA 로봇 에이전트는 로컬 리퍼지토리에 프로젝트 소스들을 저장하고 관리한다. The RPA robot agent stores and manages project sources in a local repository.

RPA 로봇 에이전트에는 ICM(Image Capture Module), SRE(Script Runtime Engine), IDM(Image Detect Module), IPM(Image Processing Module)이 포함된다. RPA robot agents include Image Capture Module (ICM), Script Runtime Engine (SRE), Image Detect Module (IDM), and Image Processing Module (IPM).

ICM은 데스크탑 전체 스크린에 대한 이미지 캡쳐 기능, 마우스 드래그를 통한 데스크탑 부분 영역 캡쳐 기능, 캡쳐된 이미지를 PNG 형식의 이미지 파일로 저장하는 기능, 캡쳐된 이미지에 대한 중복 없는 파일명을 생성하는 기능, C++로 작성된 네이티브 모듈을 사용하여 고속으로 이미지를 캡쳐하는 기능을 제공한다. ICM is an image capture function for the entire desktop screen, a function to capture a partial area of the desktop by dragging the mouse, a function to save the captured image as an image file in PNG format, a function to create a file name without duplicates for the captured image, and C++ Provides the function to capture images at high speed using the written native module.

IDM은 PNG 형식의 이미지를 사용하여 데스크탑 전체 화면에서의 입력 이미지와 동일한 영역을 검출하는 기능, C++로 작성된 네이티브 모듈을 사용하여 고속으로 이미지를 비교하는 기능, 비교 이미지의 유사도를 1~99%(높은 값일수록 높은 유사도)로 설정하여 검출하는 기능, 검출 대상 이미지에 대한 유사도, 마우스 클릭 위치 등의 설정을 위한 UI 대화창 제공 기능, 검출된 이미지를 중심으로 RPA 실행 중 마우스 클릭 위치를 지정하는 기능을 제공한다. IDM uses a PNG format image to detect the same area as the input image on the full screen of the desktop, a function to compare images at high speed using a native module written in C++, and a similarity between 1 to 99% ( The higher the value, the higher the similarity), the function to detect, the function to provide a UI dialog for setting the similarity to the detection target image, mouse click position, etc., and the function to designate the mouse click position during RPA execution based on the detected image. to provide.

SRE는 RPA 스크립트를 해석하여 실행하는 기능, RPA 작업에 필요한 마우스 및 키보드 입력 기능, IDM을 사용하여 검출 이미지를 활용한 다양한 기능(예: wait, click, paste 등)을 제공한다. SRE provides functions to interpret and execute RPA scripts, mouse and keyboard input functions required for RPA operations, and various functions (eg, wait, click, paste, etc.) using detected images using IDM.

IPM은 C++로 작성된 고속의 네이티브 모듈로서, 이미지 캡쳐 기능, 이미지 비교 기능, 이미지 파일 생성 기능, 다중 모니터 지원 기능을 제공한다. IPM is a high-speed native module written in C++ and provides image capture function, image comparison function, image file creation function, and multi-monitor support function.

RPA 서버의 RPA 백엔드 API 마이크로서비스에는 RTC API(Realtime Communication API), FSMI(File System Management Interface), SCI(Scheduler Interface), SCE(Scheduler Engine), DBI(DB Interface), MQI(Message Queue Interface)가 포함된다. The RPA backend API microservices in the RPA server include Realtime Communication API (RTC API), File System Management Interface (FSMI), Scheduler Interface (SCI), Scheduler Engine (SCE), DB Interface (DBI), and Message Queue Interface (MQI). Included.

RPA 서버에는 FSM(File System Management), MQS(Message Queue Service) 마이크로 서비스가 포함된다. RPA servers include File System Management (FSM) and Message Queue Service (MQS) microservices.

도 9 는 본 발명의 또다른 실시예에 따른 RPA 로봇 에이전트 클러스터링 시스템을 도시한다. 9 shows an RPA robot agent clustering system according to another embodiment of the present invention.

본 발명의 또다른 실시예에 따른 RPA 로봇 에이전트 클러스터링 시스템은 작업 스케줄 정보를 수신하는 입력부(910)와, 작업 스케줄 정보를 이용하여 RPA 로봇 에이전트에 대한 클러스터링을 수행하는 프로그램이 저장된 메모리(920) 및 프로그램을 실행시키는 프로세서(930)를 포함하고, 프로세서(930)는 RPA 작업 소요 시간 예측이 불가하여 무작위의 대기 시간을 요구하는 경우 또는 복수의 RPA 작업들의 실행 시간이 겹치는 경우, 상이한 복수의 작업들을 복수의 로봇 에이전트들로 구성된 클러스터에 할당한다. The RPA robot agent clustering system according to another embodiment of the present invention includes an input unit 910 for receiving work schedule information, a memory 920 storing a program for clustering the RPA robot agent using the work schedule information, and It includes a processor 930 for executing a program, and the processor 930 executes a plurality of different tasks when a random waiting time is required because it is impossible to predict the RPA task duration, or when the execution times of a plurality of RPA tasks overlap. It is assigned to a cluster consisting of multiple robot agents.

프로세서(930)는 업무를 클러스터 단위로 배분하고, 클러스터에 속하는 복수의 로봇 에이전트 중 진행 중인 작업이 없는 가용 로봇 에이전트로 업무를 배정한다. The processor 930 allocates tasks in cluster units, and assigns tasks to available robot agents having no ongoing task among a plurality of robot agents belonging to the cluster.

프로세서(930)는 각각의 로봇 에이전트들의 능력 정보를 고려하여, 현재 진행 중인 작업의 진행 상황을 파악하고, 업무를 배정할 가용 로봇 에이전트를 선별한다. The processor 930 considers the capability information of each of the robot agents, grasps the progress of the work currently in progress, and selects available robot agents to assign tasks.

로봇 에이전트는 ICM(Image Capture Module), SRE(Script Runtime Engine), IDM(Image Detect Module), IPM(Image Processing Module)을 포함한다. The robot agent includes an Image Capture Module (ICM), a Script Runtime Engine (SRE), an Image Detect Module (IDM), and an Image Processing Module (IPM).

도 10 및 도 11은 본 발명의 또다른 실시예에 따른 RPA 로봇 에이전트 클러스터링 시스템의 클러스터 동작 구조를 도시한다. 10 and 11 show the cluster operation structure of the RPA robot agent clustering system according to another embodiment of the present invention.

본 발명의 또다른 실시예에 따르면, 작업 종료에 걸리는 시간을 예측할 수 없는 서로 다른 복수의 작업들을 복수의 로봇 에이전트들로 구성된 클러스터에 할당하여, 다수의 작업들의 실행 대기 시간을 최소화하며, 이상적으로는 대기 시간을 zero로 한다. According to another embodiment of the present invention, by allocating a plurality of different tasks that cannot predict the time taken to complete the task to a cluster consisting of a plurality of robot agents, the execution waiting time of the plurality of tasks is minimized, and ideally sets the waiting time to zero.

대상 업무 조건은 대량의 로봇 에이전트 운영이 필요한 경우의 업무로 한다. The target work conditions are those that require the operation of a large number of robot agents.

이하, RPA 작업의 소요 시간을 예측할 수 없어 다음 작업 할당을 위해 무작위의 대기시간을 요구하는 경우의 문제점을 설명한다. Hereinafter, a problem in the case where a random waiting time is required for the next task assignment because the required time of the RPA task cannot be predicted will be described.

예컨대 17:00에 실행하는 A 작업의 소요 시간이 1시간으로 예상되지만, 이후 B 작업의 실행 시간을 18:01로 설정할 수 없음에 따라, 여유 시간 30분을 추가하여 18:30으로 설정한 경우, 최대 30분의 RPA 로봇 에이전트의 작업 공백이 발생하게 되는 바, 로봇 에이전트의 효율성이 감소하는 문제점이 있다. For example, if task A executed at 17:00 takes 1 hour, but since the execution time of task B cannot be set to 18:01 afterwards, 30 minutes of free time is added and set to 18:30 , there is a problem in that the RPA robot agent's work gap of up to 30 minutes occurs, and the efficiency of the robot agent decreases.

또한, 복수의 RPA 작업들이 실행되어야 하는 시간이 겹치는 경우, 예컨대 18:00에 실행되는 A 작업의 예상 소요 시간이 1시간이고, B 작업은 18:30에 시작되어야 한다면, A 작업이 끝나기 전에 B 작업을 시작할 수 없다. In addition, if the time that a plurality of RPA tasks should be executed overlaps, for example, if the estimated duration of task A to be executed at 18:00 is 1 hour and task B is to start at 18:30, before task A ends, B Unable to start work.

이 경우, 작업당 로봇 에이전트들을 일대일로 설정할 수 있겠으나, 로봇 에이전트의 수가 많아지고, 각 로봇 에이전트의 업무 할당 상황 파악이 어렵게 되어, 관리자의 업무 할당 과정이 복잡해지는 문제점 및 오류 발생의 원인이 되는 문제점이 있다. In this case, it is possible to set the robot agents per task one-to-one, but the number of robot agents increases, and it becomes difficult to grasp the task assignment status of each robot agent, which causes problems and errors that complicate the task assignment process of the manager. There is a problem.

본 발명의 또다른 실시예에 따르면, 하나의 클러스터에 복수의 로봇 에이전트들을 할당하고, 업무를 클러스터 단위로 배분하여 클러스터에 속한 로봇 에이전트 중 진행 중인 작업이 없는 가용 로봇 에이전트가 자동으로 업무를 배정받고 처리하는 것이 가능하다. According to another embodiment of the present invention, a plurality of robot agents are assigned to one cluster, and tasks are distributed in cluster units so that available robot agents with no ongoing tasks among the robot agents belonging to the cluster are automatically assigned tasks. It is possible to process

도 12는 본 발명의 또다른 실시예에 따른 메시지 큐 동작 구조를 도시한다. 12 shows a message queue operation structure according to another embodiment of the present invention.

작업 실행(Job Queue)은 스케줄에 따라 각 클러스터 별로 할당된 메시지 큐 채널을 통해, 개별 에이전트에 작업 실행 명령을 전달한다. Job Queue delivers job execution commands to individual agents through a message queue channel allocated to each cluster according to a schedule.

로그 수집(Log Queue)은 에이전트에서 실행하는 작업 스크립트들의 출력 로그를 백엔드 서버에 전달한다. The log collection (Log Queue) delivers the output log of the job scripts executed by the agent to the backend server.

이하, [표 1]은 작업 로드의 종류이다.Hereinafter, [Table 1] is the type of work load.

이벤트명Event name 상태state 내용Contents Schedule:callbackSchedule: callback 등록된 스케줄에 따라 작업 시작을 스케줄러로부터 수신 알림Receive notification of job start from the scheduler according to the registered schedule projectexecprojectexec startstart 에이전트가 작업 시작하였음을 알림Notify that the agent has started working projectexecprojectexec donedone 에이전트가 작업을 정상적으로 완료하였음을 알림Notify that the agent has successfully completed its task projectexecprojectexec errorerror 에이전트가 작업을 실행 중 오류가 발생하였음을 알림Notify the agent that an error occurred while executing the job

공유 정보 변경 알림(Config Queue)은 RPA 작업 스크립트 또는 기타 전역 정보의 변경을 각 에이전트에 전달한다. A shared information change notification (Config Queue) delivers changes to RPA job scripts or other global information to each agent.

이하에서는, 본 발명의 또다른 실시예에 따른 메시지 유형별 RabbitMQ 처리 방식에 대해 설명한다. Hereinafter, a RabbitMQ processing method for each message type according to another embodiment of the present invention will be described.

이하, P는 Publisher, X는 Exchange, C는 Consumer를 뜻한다. Hereinafter, P stands for Publisher, X stands for Exchange, and C stands for Consumer.

도 13은 본 발명의 또다른 실시예에 따른 Publisher/Subscribe 패턴을 도시한다. 13 illustrates a Publisher/Subscribe pattern according to another embodiment of the present invention.

Publisher/Subscribe 패턴의 적용 메시지에 대해 설명하면, Config는 서버 환경 변경 정보들을 전체 에이전트에 브로드캐스팅 전송한다. Log는 실행 결과 로그를 서버에 전송하며, 별도의 모니터링 프로그램에서도 수신 가능하다. Job은 병행 실행의 경우, 클러스터별로 지정된 exchange에 메시지가 전송된다. When explaining the application message of the Publisher/Subscribe pattern, Config broadcasts and transmits server environment change information to all agents. Log sends the execution result log to the server, and can also be received by a separate monitoring program. In the case of parallel execution of a job, a message is sent to the exchange designated for each cluster.

Publisher/Subscribe 패턴의 특징에 대해 설명하면, consumer 프로세스가 종료 상태일 경우, 전송된 메시지는 유실된다. When explaining the characteristics of the Publisher/Subscribe pattern, when the consumer process is in the terminated state, the transmitted message is lost.

Figure 112020134464312-pat00001
Figure 112020134464312-pat00001

도 14는 본 발명의 또다른 실시예에 따른 Task Queue 패턴을 도시한다. 14 shows a Task Queue pattern according to another embodiment of the present invention.

Task Queue 패턴의 적용 메시지에 대해 설명하면, Job은 서버에 등록된 작업 스케줄에 따라 클러스터 별로 설정된 작업 큐에 작업 실행 메시지를 전송하며, 병행 실행의 경우, Pub/Sub 패턴을 사용한다. When explaining the application message of the task queue pattern, the job transmits the job execution message to the job queue set for each cluster according to the job schedule registered in the server.

Task Queue 패턴의 특징에 대해 설명하면, consumer 프로세스가 종료상태이더라도, 재실행 시 미수신된 메시지를 수신할 수 있다. If we explain the characteristics of the task queue pattern, even if the consumer process is in the terminated state, unreceived messages can be received upon re-execution.

Figure 112020134464312-pat00002
Figure 112020134464312-pat00002

한편, 본 발명의 실시예에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 방법은 컴퓨터 시스템에서 구현되거나, 또는 기록매체에 기록될 수 있다. 컴퓨터 시스템은 적어도 하나 이상의 프로세서와, 메모리와, 사용자 입력 장치와, 데이터 통신 버스와, 사용자 출력 장치와, 저장소를 포함할 수 있다. 전술한 각각의 구성 요소는 데이터 통신 버스를 통해 데이터 통신을 한다.Meanwhile, the method for providing a web-based integrated development environment for RPA script development according to an embodiment of the present invention may be implemented in a computer system or recorded in a recording medium. The computer system may include at least one processor, a memory, a user input device, a data communication bus, a user output device, and storage. Each of the above-described components performs data communication through a data communication bus.

컴퓨터 시스템은 네트워크에 커플링된 네트워크 인터페이스를 더 포함할 수 있다. 프로세서는 중앙처리 장치(central processing unit (CPU))이거나, 혹은 메모리 및/또는 저장소에 저장된 명령어를 처리하는 반도체 장치일 수 있다. The computer system may further include a network interface coupled to the network. The processor may be a central processing unit (CPU) or a semiconductor device that processes instructions stored in a memory and/or storage.

메모리 및 저장소는 다양한 형태의 휘발성 혹은 비휘발성 저장매체를 포함할 수 있다. 예컨대, 메모리는 ROM 및 RAM을 포함할 수 있다.The memory and storage may include various types of volatile or non-volatile storage media. For example, memory may include ROM and RAM.

따라서, 본 발명의 실시예에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 방법은 컴퓨터에서 실행 가능한 방법으로 구현될 수 있다. 본 발명의 실시예에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 방법이 컴퓨터 장치에서 수행될 때, 컴퓨터로 판독 가능한 명령어들이 본 발명에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 방법을 수행할 수 있다.Accordingly, the method for providing a web-based integrated development environment for RPA script development according to an embodiment of the present invention may be implemented as a computer-executable method. When the method for providing a web-based integrated development environment for RPA script development according to an embodiment of the present invention is performed in a computer device, computer-readable commands provide a web-based integrated development environment for RPA script development according to the present invention method can be performed.

한편, 상술한 본 발명에 따른 RPA 스크립트 개발을 위한 웹 기반의 통합개발환경 제공 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.On the other hand, the method for providing a web-based integrated development environment for RPA script development according to the present invention described above may be implemented as a computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes any type of recording medium in which data that can be read by a computer system is stored. For example, there may be a read only memory (ROM), a random access memory (RAM), a magnetic tape, a magnetic disk, a flash memory, an optical data storage device, and the like. In addition, the computer-readable recording medium may be stored and executed as code readable in a distributed manner by being distributed in a computer system connected through a computer communication network.

Claims (8)

작업 스케줄 정보를 수신하는 입력부;
상기 작업 스케줄 정보를 이용하여 RPA 로봇 에이전트에 대한 클러스터링을 수행하는 프로그램이 저장된 메모리; 및
상기 프로그램을 실행시키는 프로세서를 포함하고,
상기 프로세서는 RPA 작업 소요 시간 예측이 불가하여 무작위의 대기 시간을 요구하는 경우 또는 복수의 RPA 작업들의 실행 시간이 겹치는 경우, 상이한 복수의 작업들을 복수의 로봇 에이전트들로 구성된 클러스터에 할당하고,
상기 RPA 로봇 에이전트는 데스크탑 전체 스크린에 대한 이미지 캡쳐 기능, 마우스 드래그를 통한 데스크탑 부분 영역 캡쳐 기능, 캡쳐된 이미지를 PNG 형식의 이미지 파일로 저장하는 기능, 캡쳐된 이미지에 대한 중복 없는 파일명을 생성하는 기능, C++로 작성된 네이티브 모듈을 사용하여 고속으로 이미지를 캡쳐하는 기능을 제공하는 ICM(Image Capture Module)을 포함하는 것
인 RPA 로봇 에이전트 클러스터링 시스템.
an input unit for receiving work schedule information;
a memory storing a program for clustering the RPA robot agent using the job schedule information; and
a processor for executing the program;
The processor allocates a plurality of different tasks to a cluster consisting of a plurality of robot agents when a random waiting time is required because it is impossible to predict the RPA task duration or when the execution times of a plurality of RPA tasks overlap,
The RPA robot agent has an image capture function for the entire desktop screen, a desktop partial area capture function through mouse drag, a function to save the captured image as a PNG format image file, a function to create a file name without duplicates for the captured image , which includes an Image Capture Module (ICM) that provides the ability to capture images at high speed using native modules written in C++.
An RPA Robot Agent Clustering System.
제1항에 있어서,
상기 프로세서는 업무를 상기 클러스터의 단위로 배분하고, 상기 클러스터에 속하는 상기 복수의 로봇 에이전트 중 진행 중인 작업이 없는 가용 로봇 에이전트로 업무를 배정하는 것
인 RPA 로봇 에이전트 클러스터링 시스템.
According to claim 1,
The processor distributes tasks in units of the cluster, and assigns tasks to available robot agents that do not have a work in progress among the plurality of robot agents belonging to the cluster
An RPA Robot Agent Clustering System.
제1항에 있어서,
상기 프로세서는 각각의 상기 로봇 에이전트들의 능력 정보를 고려하여, 현재 진행 중인 작업의 진행 상황을 파악하고, 다음 업무를 배정할 가용 로봇 에이전트를 선별하는 것
인 RPA 로봇 에이전트 클러스터링 시스템.
According to claim 1,
The processor considers the capability information of each of the robot agents, grasps the progress of the currently ongoing task, and selects available robot agents to assign the next task
An RPA Robot Agent Clustering System.
삭제delete 삭제delete 작업 스케줄 정보를 수신하는 입력부;
상기 작업 스케줄 정보를 이용하여 RPA 로봇 에이전트에 대한 클러스터링을 수행하는 프로그램이 저장된 메모리; 및
상기 프로그램을 실행시키는 프로세서를 포함하고,
상기 프로세서는 RPA 작업 소요 시간 예측이 불가하여 무작위의 대기 시간을 요구하는 경우 또는 복수의 RPA 작업들의 실행 시간이 겹치는 경우, 상이한 복수의 작업들을 복수의 로봇 에이전트들로 구성된 클러스터에 할당하고,
상기 RPA 로봇 에이전트는 PNG 형식의 이미지를 사용하여 데스크탑 전체 화면에서의 입력 이미지와 동일한 영역을 검출하는 기능, C++로 작성된 네이티브 모듈을 사용하여 고속으로 이미지를 비교하는 기능, 비교 이미지의 유사도를 검출하는 기능, 검출 대상 이미지에 대한 유사도, 마우스 클릭 위치 등의 설정을 위한 UI 대화창 제공 기능, 검출된 이미지를 중심으로 RPA 실행 중 마우스 클릭 위치를 지정하는 기능을 제공하는 IDM(Image Detect Module)을 포함하는 것
인 RPA 로봇 에이전트 클러스터링 시스템.
an input unit for receiving work schedule information;
a memory storing a program for clustering the RPA robot agent using the job schedule information; and
a processor for executing the program;
The processor allocates a plurality of different tasks to a cluster consisting of a plurality of robot agents when a random waiting time is required because it is impossible to predict the RPA task duration or when the execution times of a plurality of RPA tasks overlap,
The RPA robot agent has a function to detect the same area as the input image on the entire desktop screen using a PNG format image, a function to compare images at high speed using a native module written in C++, and a function to detect the similarity of the comparison image. Function, similarity to detection target image, UI dialog window for setting mouse click position, etc., including IDM (Image Detect Module) that provides a function to specify the mouse click position during RPA execution based on the detected image. that
An RPA Robot Agent Clustering System.
작업 스케줄 정보를 수신하는 입력부;
상기 작업 스케줄 정보를 이용하여 RPA 로봇 에이전트에 대한 클러스터링을 수행하는 프로그램이 저장된 메모리; 및
상기 프로그램을 실행시키는 프로세서를 포함하고,
상기 프로세서는 RPA 작업 소요 시간 예측이 불가하여 무작위의 대기 시간을 요구하는 경우 또는 복수의 RPA 작업들의 실행 시간이 겹치는 경우, 상이한 복수의 작업들을 복수의 로봇 에이전트들로 구성된 클러스터에 할당하고,
상기 RPA 로봇 에이전트는 RPA 스크립트를 해석하여 실행하는 기능, RPA 작업에 필요한 마우스 및 키보드 입력 기능, IDM(Image Detect Module)을 사용하여 검출한 이미지를 활용하여 wait, click, paste 기능을 제공하는 SRE(Script Runtime Engine)를 포함하는 것
인 RPA 로봇 에이전트 클러스터링 시스템.
an input unit for receiving work schedule information;
a memory storing a program for clustering the RPA robot agent using the job schedule information; and
a processor for executing the program;
The processor allocates a plurality of different tasks to a cluster consisting of a plurality of robot agents when a random waiting time is required because it is impossible to predict the RPA task duration or when the execution times of a plurality of RPA tasks overlap,
The RPA robot agent interprets and executes RPA scripts, mouse and keyboard input functions required for RPA work, and SRE (SRE) that provides wait, click, and paste functions using images detected using IDM (Image Detect Module). Script Runtime Engine)
An RPA Robot Agent Clustering System.
작업 스케줄 정보를 수신하는 입력부;
상기 작업 스케줄 정보를 이용하여 RPA 로봇 에이전트에 대한 클러스터링을 수행하는 프로그램이 저장된 메모리; 및
상기 프로그램을 실행시키는 프로세서를 포함하고,
상기 프로세서는 RPA 작업 소요 시간 예측이 불가하여 무작위의 대기 시간을 요구하는 경우 또는 복수의 RPA 작업들의 실행 시간이 겹치는 경우, 상이한 복수의 작업들을 복수의 로봇 에이전트들로 구성된 클러스터에 할당하고,
상기 RPA 로봇 에이전트는 C++로 작성된 고속의 네이티브 모듈로서, 이미지 캡쳐 기능, 이미지 비교 기능, 이미지 파일 생성 기능, 다중 모니터 지원 기능을 제공하는 IPM(Image Processing Module)을 포함하는 것
인 RPA 로봇 에이전트 클러스터링 시스템.
an input unit for receiving work schedule information;
a memory storing a program for clustering the RPA robot agent using the job schedule information; and
a processor for executing the program;
The processor allocates a plurality of different tasks to a cluster consisting of a plurality of robot agents when a random waiting time is required because it is impossible to predict the RPA task duration or when the execution times of a plurality of RPA tasks overlap,
The RPA robot agent is a high-speed native module written in C++, and includes an Image Processing Module (IPM) that provides an image capture function, an image comparison function, an image file creation function, and a multi-monitor support function.
An RPA Robot Agent Clustering System.
KR1020200172903A 2020-12-11 2020-12-11 System for rpa robot agent clutstering KR102261793B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200172903A KR102261793B1 (en) 2020-12-11 2020-12-11 System for rpa robot agent clutstering

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200172903A KR102261793B1 (en) 2020-12-11 2020-12-11 System for rpa robot agent clutstering

Publications (1)

Publication Number Publication Date
KR102261793B1 true KR102261793B1 (en) 2021-06-09

Family

ID=76415239

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200172903A KR102261793B1 (en) 2020-12-11 2020-12-11 System for rpa robot agent clutstering

Country Status (1)

Country Link
KR (1) KR102261793B1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641569A (en) * 2021-06-24 2021-11-12 云南电网有限责任公司信息中心 Robot process automation method
KR102411816B1 (en) 2021-12-24 2022-06-22 주식회사 케이씨씨건설 Method, server and computer program for providing task automation service using robotic process automation portal
KR20230058903A (en) 2021-10-25 2023-05-03 삼성에스디에스 주식회사 Apparatus and method for executing automation scenario in parallel

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200082839A (en) * 2018-12-31 2020-07-08 주식회사 포스코아이씨티 Process Editor Apparatus and Method for Robot Process Automation
JP2020148792A (en) * 2019-03-11 2020-09-17 東芝情報システム株式会社 RPA robot control system
JP2020181236A (en) * 2019-04-23 2020-11-05 株式会社アクシオ Task management device and program
JP2020197998A (en) * 2019-06-04 2020-12-10 さくら情報システム株式会社 Information processing device, method, program, and system
KR102190459B1 (en) * 2020-04-28 2020-12-11 농업협동조합중앙회 User interface apparatus for sharing of rpa

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200082839A (en) * 2018-12-31 2020-07-08 주식회사 포스코아이씨티 Process Editor Apparatus and Method for Robot Process Automation
JP2020148792A (en) * 2019-03-11 2020-09-17 東芝情報システム株式会社 RPA robot control system
JP2020181236A (en) * 2019-04-23 2020-11-05 株式会社アクシオ Task management device and program
JP2020197998A (en) * 2019-06-04 2020-12-10 さくら情報システム株式会社 Information processing device, method, program, and system
KR102190459B1 (en) * 2020-04-28 2020-12-11 농업협동조합중앙회 User interface apparatus for sharing of rpa

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113641569A (en) * 2021-06-24 2021-11-12 云南电网有限责任公司信息中心 Robot process automation method
CN113641569B (en) * 2021-06-24 2023-11-14 云南电网有限责任公司信息中心 Robot flow automation method
KR20230058903A (en) 2021-10-25 2023-05-03 삼성에스디에스 주식회사 Apparatus and method for executing automation scenario in parallel
KR102411816B1 (en) 2021-12-24 2022-06-22 주식회사 케이씨씨건설 Method, server and computer program for providing task automation service using robotic process automation portal
KR20230097976A (en) 2021-12-24 2023-07-03 주식회사 케이씨씨건설 Method, server and computer program for providing task automation service using robotic process automation portal

Similar Documents

Publication Publication Date Title
KR102261793B1 (en) System for rpa robot agent clutstering
US11288557B2 (en) Long running workflows for document processing using robotic process automation
US20230297488A1 (en) Long running workflows for robotic process automation
CN107729139B (en) Method and device for concurrently acquiring resources
CN107105009B (en) Job scheduling method and device for butting workflow engine based on Kubernetes system
US11110601B2 (en) Scheduling robots for robotic process automation
CN111897638B (en) Distributed task scheduling method and system
US11803418B2 (en) On-demand cloud robots for robotic process automation
US20220391304A1 (en) Monitoring long running workflows for robotic process automation
KR102337270B1 (en) System and method for providing integrated development environment for rpa script development based on web
US11182217B2 (en) Multilayered resource scheduling
CN108845954A (en) Method for testing pressure, system and storage medium
WO2023168923A1 (en) Robotic process automation cloud service system and implementation method
US20230032516A1 (en) Common platform for implementing rpa services on customer premises
US11966566B2 (en) Mapping interactive UI elements to RPA object repositories for RPA development
US11971705B2 (en) Autoscaling strategies for robotic process automation
US20220191167A1 (en) Organizational modelling for routing rpa related services of an rpa cloud suite
US20220091908A1 (en) Filter instantiation for process graphs of rpa workflows
US20220066794A1 (en) Robotic process automation data connector
US20230101948A1 (en) Generation of rpa platform design components for configuring rpa platforms
US20230102809A1 (en) Preconfigured robots for robotic process automation
CN117762304A (en) Method, device, electronic equipment and storage medium for creating workflow
CN117873602A (en) Management method, device, equipment and storage medium of distributed computing framework

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant