KR20210048865A - 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법 - Google Patents

로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법 Download PDF

Info

Publication number
KR20210048865A
KR20210048865A KR1020190133073A KR20190133073A KR20210048865A KR 20210048865 A KR20210048865 A KR 20210048865A KR 1020190133073 A KR1020190133073 A KR 1020190133073A KR 20190133073 A KR20190133073 A KR 20190133073A KR 20210048865 A KR20210048865 A KR 20210048865A
Authority
KR
South Korea
Prior art keywords
information
bot
candidate
comparison
target object
Prior art date
Application number
KR1020190133073A
Other languages
English (en)
Inventor
안경준
장성호
조준희
조종윤
Original Assignee
삼성에스디에스 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성에스디에스 주식회사 filed Critical 삼성에스디에스 주식회사
Priority to KR1020190133073A priority Critical patent/KR20210048865A/ko
Priority to US16/664,494 priority patent/US11279040B2/en
Publication of KR20210048865A publication Critical patent/KR20210048865A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1692Calibration of manipulator
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B11/00Automatic controllers
    • G05B11/01Automatic controllers electric
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold

Abstract

로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법이 제공된다. 본 개시의 몇몇 실시예에 따른 로봇 프로세스 자동화의 변경점 탐지 방법은 제1 시점의 제1 작업 환경 정보로부터 목표 객체의 객체 정보를 획득하는 단계, 상기 획득한 목표 객체의 객체 정보에 기반하여 제2 시점의 제2 작업 환경 정보로부터 탐지되는 비교 객체를 상기 목표 객체에 해당하는 객체로 결정하는 단계를 포함한다.
이러한 방법에 따르면, 작업 환경의 변경에 따라 RPA의 오류가 발생하더라도 사용자가 봇을 다시 생성하거나 수정할 필요 없이, 스스로 오류를 수정하여 정상적으로 RPA가 동작 할 수 있다. 또한, RAP가 참조하는 객체의 화면 내 위치나 형태가 변경되는 경우에도 주변 정보를 바탕으로 조작하고자 하는 객체를 정확하게 찾아 정상적으로 RPA를 수행할 수 있다.

Description

로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법{ROBOT PROCESS AUTOMATION APPARATUS AND METHOD FOR DETECTING CHANGES THEREOF}
본 개시는 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법에 관한 것이다. 보다 자세하게는, 작업 환경이 변경되어도 변경된 환경에 적응하여 동작할 수 있는 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법에 관한 것이다.
로봇 프로세스 자동화(Robot Process Automation, 이하 'RPA')는 정형적이고 반복적인 사람의 작업을 로봇이 모방하여 대신 수행하도록 하는 자동화 기술이나 서비스를 지칭한다. RPA는 인공지능 기술의 발전과 맞물려 최근 그 기능 및 효용성이 크게 향상되었으며, 기업의 워크 플로우 효율화에 긍정적으로 기여하고 있다. IT 분야의 전문 리서치 기관인 가트너(Gartner)에 따르면 글로벌 RPA 시장은 다른 엔터프라이즈 소프트웨어 시장보다 훨씬 가파르게 성장하고 있으며, 2019년 시장 규모는 전년대비 약 54% 성장한 13억 달러로 추정된다.
RPA는 작업 대상 객체를 지정한 후 수행할 작업 이벤트를 등록함으로써, 로봇이 사전 정의된 작업을 반복 수행하는 방식으로 동작한다. 따라서, RPA를 적용하기 위해서는 반복 프로세스 설계를 통한 봇(Bot, 사전 정의된 RPA 작업을 반복 수행하는 소프트웨어) 생성 단계가 필요하다.
한편, 봇은 생성 당시의 작업 환경을 기준으로 생성되기 때문에, 봇 생성 이후 작업 환경이 변경되면(가령, GUI의 해상도, RPA를 적용할 웹 사이트나 프로그램의 버전 등이 변경되는 경우, 또는 다른 사용자에게 봇을 공유하는 경우), 봇이 정상적으로 동작하지 않고 오동작 하거나 작업을 정지하는 등 오류가 발생할 수 있다. 이 경우, 이를 해결하기 위해서는 변경된 작업 환경을 기준으로 봇을 다시 생성하거나 수정해야 한다. 그러나, 봇을 다시 생성하거나 수정하는 작업은 일반적으로 RPA에 필요한 정의 요소를 사용자가 직접 설정해야 하므로, 숙련된 사용자에게도 많은 시간이 소요된다. 특히, 작업 환경이 빈번히 변경되는 상황에서는 봇을 다시 생성하거나 수정하는 데 너무 많는 리소스가 소요되므로, RAP를 효과적으로 적용하기 어려운 문제가 있다.
한국공개특허 제10-2013-0119715호 (2013.11.01 공개)
본 개시의 몇몇 실시예를 통해 해결하고자 하는 기술적 과제는, 작업 환경의 변경에 따라 오류가 발생하더라도 사용자가 봇을 다시 생성하거나 수정할 필요 없이, 스스로 오류를 수정하여 정상 동작 할 수 있는 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법을 제공하는 데 있다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 다른 기술적 과제는, RAP가 참조하는 객체의 화면 내 위치나 형태가 변경되는 경우에도, 주변 정보를 바탕으로 조작하고자 하는 객체를 정확하게 찾아 정상적으로 RPA를 수행할 수 있는 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법을 제공하는 데 있다.
본 개시의 몇몇 실시예를 통해 해결하고자 하는 또 다른 기술적 과제는, 객체의 변경 사항을 탐지하여 객체 정보를 자동으로 업데이트하는 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법을 제공하는 데 있다.
본 개시의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 개시의 기술분야에서의 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 로봇 프로세스 자동화의 변경점 탐지 방법은, 제1 시점의 제1 작업 환경 정보로부터 목표 객체의 객체 정보를 획득하는 단계; 상기 획득한 목표 객체의 객체 정보에 기반하여, 제2 시점의 제2 작업 환경 정보로부터 탐지되는 비교 객체를 상기 목표 객체에 해당하는 객체로 결정하는 단계를 포함한다.
일 실시예로서, 상기 목표 객체에 해당하는 객체로 결정하는 단계는, 상기 제2 작업 환경 정보로부터 상기 비교 객체의 객체 구조를 탐색하고, 상기 탐색한 결과에 따라 상기 비교 객체를 후보 객체로 결정하는 단계를 포함할 수 있다.
일 실시예로서, 상기 후보 객체로 결정하는 단계는, 상기 제2 작업 환경 정보로부터 상기 비교 객체의 객체 구조를 획득하는 단계; 상기 비교 객체의 객체 구조와 상기 목표 객체의 객체 구조를 비교하여 동일 또는 유사한지 판단하는 단계; 및 상기 판단 결과, 상기 비교 객체의 객체 구조가 상기 목표 객체의 객체 구조와 동일 또는 유사하면 상기 비교 객체를 상기 후보 객체로 결정하는 단계를 포함할 수 있다.
일 실시예로서, 상기 객체 구조는, 상기 제2 작업 환경 정보 내 객체들 간의 트리 구조 상에서, 상기 비교 객체를 중심으로 파악되는 노드들 간의 계층 관계(hierarchy)에 대한 정보일 수 있다.
일 실시예로서, 상기 객체 구조는, 상기 비교 객체의 태그 정보, 상기 비교 객체의 부모 객체의 태그 정보, 상기 비교 객체의 자식 객체의 태그 정보 또는 상기 비교 객체의 이웃 객체의 태그 정보를 포함할 수 있다.
일 실시예로서, 상기 목표 객체에 해당하는 객체로 결정하는 단계는, 상기 후보 객체의 속성 정보를 기반으로, 상기 후보 객체의 객체 식별 텍스트를 생성하여 상기 후보 객체의 유사도를 산출하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 유사도를 산출하는 단계는, 상기 후보 객체의 상기 속성 정보를 가공하여 상기 객체 식별 텍스트를 생성하는 단계; 상기 객체 식별 텍스트를 변환하여 벡터를 생성하는 단계; 및 상기 생성된 벡터를 이용하여, 벡터 간 유사도 계산을 통해 상기 후보 객체의 유사도를 산출하는 단계를 포함할 수 있다.
일 실시예로서, 상기 객체 식별 텍스트를 생성하는 단계는, 상기 후보 객체의 속성 정보 중 일부를 제거하는 필터링 단계; 상기 필터링 단계 이후 남은 텍스트들을 코퍼스 단위로 구성하는 단계; 및 상기 코퍼스 단위로 구성된 텍스트들을 미리 결정된 언어로 변환하는 단계를 포함할 수 있다.
일 실시예로서, 상기 객체 식별 텍스트를 변환하여 벡터를 생성하는 단계는, 텍스트 임베딩을 통해 상기 객체 식별 텍스트를 변환하여 상기 후보 객체의 고유 벡터를 생성하는 단계를 포함할 수 있다.
일 실시예로서, 상기 후보 객체의 고유 벡터는, 상기 후보 객체의 상기 객체 식별 텍스트가 상기 목표 객체의 객체 식별 텍스와 유사할수록 상기 목표 객체의 고유 벡터와 유사한 크기와 방향을 가질 수 있다.
일 실시예로서, 상기 목표 객체에 해당하는 객체로 결정하는 단계는, 상기 후보 객체의 유사도가 다른 후보 객체보다 높은 경우, 상기 후보 객체를 상기 목표 객체에 해당하는 객체로 결정하는 단계를 더 포함할 수 있다.
일 실시예로서, 상기 목표 객체의 객체 정보를 업데이트 하기 위해, 상기 비교 객체의 객체 정보를 제공하는 단계를 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 다른 실시예에 따른 로봇 프로세스 자동화의 변경점 탐지 방법은, 로봇 프로세스 자동화를 위한 봇을 실행하는 단계; 상기 봇의 동작 오류가 발생하였는지 판단하는 단계; 상기 동작 오류가 발생하였다는 판단에 근거하여, 상기 봇이 참조하는 객체의 변경점을 탐지하는 단계; 및 상기 변경점 탐지 결과에 기반하여, 상기 객체의 객체 정보를 업데이트 하는 단계를 포함한다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 로봇 프로세스 자동화 장치는, 로봇 프로세스 자동화를 위한 봇을 생성하고 실행하는 RPA 수행 모듈; 및 상기 봇의 실행 시 오류가 발생한 경우, 오류가 발생한 이벤트가 참조하는 객체의 변경 사항을 탐지하는 변경점 탐지 모듈을 포함하고, 상기 변경점 탐지 모듈은, 상기 이벤트가 참조하는 객체의 객체 정보에 기반하여, 상기 오류가 발생한 시점의 작업 환경 정보로부터 탐지되는 비교 객체를 상기 이벤트가 참조하는 객체로 결정한다.
일 실시예로서, 상기 RPA 수행 모듈은, 사용자 설정에 따라 사전 작업을 반복 수행할 상기 봇을 생성하는 봇 모델링부; 상기 모델링부가 생성한 상기 봇을 등록 및 관리하는 봇 관리부; 및 상기 봇 관리부의 제어에 따라 상기 봇을 저장하는 봇 저장부를 포함할 수 있다.
일 실시예로서, 상기 변경점 탐지 모듈은, 상기 이벤트가 참조하는 객체 또는 상기 비교 객체의 객체 정보를 추출하는 객체 정보 추출부; 상기 추출된 객체 정보를 기반으로 상기 이벤트가 참조하는 객체 또는 상기 비교 객체의 구조 정보를 분석하는 구조 정보 분석부; 상기 추출된 객체 정보를 기반으로 상기 이벤트가 참조하는 객체 또는 상기 비교 객체의 속성 정보를 분석 또는 가공하는 텍스트 정보 분석부; 및 상기 이벤트가 참조하는 객체와 상기 비교 객체 간의 유사도를 산출하는 유사도 분석부를 포함할 수 있다.
상기 기술적 과제를 해결하기 위한, 본 개시의 몇몇 실시예에 따른 로봇 프로세스 자동화의 변경점 탐지 방법을 위한 컴퓨터 프로그램은, 제1 시점의 제1 작업 환경 정보로부터 목표 객체의 객체 정보를 획득하는 단계; 및 상기 획득한 목표 객체의 객체 정보에 기반하여, 제2 시점의 제2 작업 환경 정보로부터 탐지되는 비교 객체를 상기 목표 객체에 해당하는 객체로 결정하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록 매체에 저장된다.
상술한 본 발명의 다양한 실시예에 따르면 작업 환경의 변경에 따라 RPA의 오류가 발생하더라도 사용자가 봇을 다시 생성하거나 수정할 필요 없이, 스스로 오류를 수정하여 정상적으로 RPA가 동작 할 수 있게 된다.
또한, RAP가 참조하는 객체의 화면 내 위치나 형태가 변경되는 경우에도 주변 정보를 바탕으로 조작하고자 하는 객체를 정확하게 찾아 정상적으로 RPA를 수행할 수 있다.
또한, RPA가 참조하는 객체가 변경되는 경우, 객체의 변경 사항을 스스로 탐지하여 객체 정보를 자동으로 업데이트할 수 있다.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 본 개시의 실시예들로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 개시의 몇몇 실시예에 따른 로봇 프로세스 자동화 장치(1000)를 나타내는 블록도이다.
도 2는 도 1에 도시된 RPA 수행 모듈(100)이 봇을 생성하는 방법을 개념적으로 설명하는 도면이다.
도 3은 본 개시의 몇몇 실시예에 따른 로봇 프로세스 자동화 방법을 나타내는 순서도이다.
도 4는 도 3의 로봇 프로세스 자동화 방법에 있어서 변경점을 탐지하는 구체적인 방법을 설명하는 순서도이다.
도 5는 도 4에 도시된 객체 구조 탐색 및 후보 객체 결정 단계(S300)를 구체화한 일 실시예를 나타내는 순서도이다.
도 6은 목표 객체 구조와 동일한 구조를 갖는 비교 객체를 탐색 및 추출하는 방법을 개념적으로 나타내는 도면이다.
도 7은 도 4에 도시된 객체 식별 텍스트 생성 및 유사도 산출 단계(S400)를 구체화한 일 실시예를 나타내는 순서도이다.
도 8은 도 7에 도시된 S410 단계를 더욱 구체화한 일 실시예를 나타내는 순서도이다.
도 9는 텍스트 임베딩(Text Embedding)을 통해 객체 식별 텍스트에 대한 벡터가 생성되는 방법을 개념적으로 설명하는 도면이다.
도 10은 본 개시의 다양한 실시예에 따른 장치들을 구현할 수 있는 예시적인 컴퓨팅 장치(2000)를 도시하는 블록도이다.
이하, 첨부된 도면을 참조하여 본 개시의 바람직한 실시예들을 상세히 설명한다. 본 개시의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 개시의 기술적 사상은 이하의 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 이하의 실시예들은 본 개시의 기술적 사상을 완전하도록 하고, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 본 개시의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 개시의 기술적 사상은 청구항의 범주에 의해 정의될 뿐이다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 개시를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 개시의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 개시를 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.
또한, 본 개시의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 또는 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다.
본 개시에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하에서는, 앞서 상술한 기술적 과제를 해결하기 위한 본 개시의 다양한 실시예들에 대하여 설명하도록 한다.
도 1은 본 개시의 몇몇 실시예에 따른 로봇 프로세스 자동화 장치(1000)를 나타내는 블록도이다. 도 1을 참조하면, 로봇 프로세스 자동화 장치(1000)는 RPA 수행 모듈(100) 및 변경점 탐지 모듈(200)을 포함한다. 일 실시예로서, 로봇 프로세스 자동화 장치(1000)는 로봇 프로세스 자동화 프로그램이 실행되는 동안 컴퓨팅 장치의 활성 메모리에 상주하여 작업 환경 정보 수집 및 사용자 인터랙션을 수행하는 RPA 에이전트(10)를 더 포함할 수 있다.
RPA 수행 모듈(100)은 RPA를 위한 봇을 생성, 저장, 관리 및 실행하는 소프트웨어 모듈이다. RPA 수행 모듈(100)은 사용자 설정에 따라 사전 작업을 반복 수행할 봇을 생성하는 봇 모델링부(110), 생성된 봇을 등록, 관리 및 실행하는 봇 관리부(120) 및 봇 관리부(120)의 제어에 따라 봇을 저장하는 봇 저장부(130)를 포함할 수 있다.
봇 모델링부(110)는 화면상에 표시된 사용자 인터페이스(User Interface, 이하 'UI') 객체에 대한 사용자 조작을 감지하고, 상기 UI 객체에 작업 이벤트를 매핑하여 스크립트 형태의 봇을 생성한다. 도 2에는 봇 모델링부(110)가 RPA를 위한 봇을 생성하는 일련의 단계(20)들이 도시되고 있다.
도 2를 참조하면, 봇 모델링부(110)는 UI 객체에 대한 사용자 조작을 감지하여 RPA를 적용할 객체를 선택한다(21). 일 실시예로서, 상기 UI 객체는 컴퓨팅 장치의 화면에 표시된 특정 버튼, 텍스트 입력 상자, 또는 리스트 아이템 등을 포함할 수 있다. 일 실시예로서, 상기 UI 객체의 선택을 위해 CSS Selector, Xpath, COM Wrapper 또는 Mouse Event 등 다양한 방법이 사용될 수 있다. 그리고, 봇 모델링부(110)는 선택된 객체에 대해 RPA를 통해 수행할 이벤트를 매핑하여 단위 이벤트를 정의한다(22). 상기 매핑되는 이벤트는 UI 객체에 대한 키 입력 또는 마우스 버튼 클릭 등과 같은 조작 이벤트일 수 있다. 그리고, 봇 모델링부(110)는 RPA 시퀀스에 따라 하나 이상의 단위 이벤트를 배치하여 프로세스를 정의한다(23). 그리고, 봇 모델링부(110)는 상기 배치된 이벤트 및 프로세스를 스크립트 형태로 변환하여 RPA 봇을 생성한다.
봇 관리부(120)는 봇 모델링부(110)가 생성한 봇을 등록하고, 봇 저장부(130)에 저장한다. 또한, 봇 관리부(120)는 정해진 배치(Batch) 방법에 따라 물리 서버 또는 가상 서버(Virtual Machine) 등과 같은 컴퓨팅 환경에서 RPA 수행을 위해 등록된 봇을 실행한다. 또한, 봇 관리부(120)는 RPA 과정에서 오류가 발생하는 경우, 도 3 이하에서 후술되는 변경점 탐지 방법에 의해 결정된 대상 객체의 정보를 이용하여 등록된 봇의 객체 정보를 업데이트한다.
구체적으로, RPA를 수행하는 시점의 작업 환경이 처음 봇을 생성할 시점의 작업 환경과 달라지는 경우, 기존 저장되어 있던 객체 정보에 대응하는 객체가 탐지되지 않을 수 있다. 이 경우, 봇은 RPA를 수행할 대상 객체를 찾지 못하게 되어 RPA가 오작동하거나 봇의 구동이 중단되는 오류가 발생하게 된다. 이 경우, 봇 관리부(120)는 오류와 관련된 작업 정보, 예를 들어 오류가 발생한 객체에 대한 정보, 오류가 발생한 봇을 생성한 시점(제1 시점)의 작업 환경 정보, 오류가 발생한 시점(제2 시점)의 작업 환경 정보를 수집하고, 상기 수집된 정보들을 변경점 탐지 모듈(200)에 전달하며 변경점 탐지를 요청할 수 있다. 그리고, 봇 관리부(120)는 변경점 탐지 모듈(200)로부터 변경점 탐지 결과를 전달받아 오류가 발생한 봇을 업데이트할 수 있다.
봇 저장부(130)는 봇 관리자(120)의 제어에 따라 등록된 봇을 저장한다. 봇 저장부(130)는 등록된 봇을 저장할 수 있는 저장 매체로서, ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함할 수 있다.
일 실시예로서, 봇 저장부(130)는 등록된 봇 외에도 봇이 참조하고 있는 객체와 관련된 작업 환경 상의 문서 정보 (예를 들어, HTML 페이지 또는 WPF 페이지 등)을 함께 저장할 수 있다.
변경점 탐지 모듈(200)은 RPA 수행을 위해 봇을 실행할 때 오류가 발생하는 경우, 오류가 발생한 이벤트가 참조하는 객체가 현재 작업 환경에서 어떤 객체에 대응하는지 그 변경 사항을 탐지한다.
즉, 봇은 RPA를 실행할 객체(이하, '목표 객체'라 함)를 저장된 객체 정보를 참조하여 식별하는 데, 작업 환경이 바뀌어 객체의 모양이나 상태가 변경되는 경우 저장된 객체 정보가 목표 객체를 정확히 가리키지 못할 수 있다. 이 경우, 변경점 탐지 모듈(200)은 오류가 발생한 현재 작업 환경에 대한 정보를 바탕으로, 현재 작업 환경에서 어떤 객체가 저장된 객체 정보에 대응하는 객체인지, 즉, 목표 객체인지 탐지하고 상기 목표 객체의 기존 대비 변경된 사항을 RPA 수행 모듈(100)에 전달한다. 변경점 탐지 모듈(200)은 작업 환경 정보 등으로부터 객체 정보를 추출하는 객체 정보 추출부(210), 추출된 객체 정보를 기반으로 객체의 구조 정보를 분석하는 구조 정보 분석부(220), 추출된 객체 정보를 기반으로 객체의 텍스트 정보를 분석 및 가공하는 텍스트 정보 분석부(230) 및 현재 작업 환경의 객체들과 목표 객체 간의 유사도를 산출하는 유사도 분석부(240)를 포함한다.
객체 정보 추출부(210)는 봇 생성 시점(제1 시점)의 작업 환경 정보(예를 들어, 작업 화면 문서)를 기반으로 오류가 발생한 이벤트가 참조하는 목표 객체의 객체 정보를 추출한다. 이때, 작업 환경 정보는 응용 프로그램 화면의 HTML 문서, CSS 문서 또는 WPF 문서를 포함할 수 있다. 객체 정보 추출부(210)가 추출하는 객체 정보는 객체의 계층 구조를 나타내는 구조 정보 또는 객체의 속성이나 식별자를 나타내는 속성 정보를 포함한다. 이때, 속성 정보는 텍스트 형태의 정보를 포함할 수 있다.
구조 정보 분석부(220)는 상기 추출된 객체 정보 중, 목표 객체의 계층 구조를 나타내는 구조 정보를 이용하여, 현재 작업 환경에서 동일 또는 유사한 계층 구조를 갖는 객체를 탐색한다. 일 실시예로서, 구조 정보 분석부(220)는 현재 작업 환경의 객체들 중 목표 객체와 동일 또는 유사한 계층 구조를 갖는 객체를 후보 객체로서 결정할 수 있다.
텍스트 정보 분석부(230)은 결정된 후보 객체들에 대해, 후보 객체들의 속성 정보를 기반으로 가공된 객체 식별 텍스트를 생성한다. 상기 개체 식별 텍스트는 객체의 속성을 나타내는 정보(예를 들어, 객체의 ID, 객체의 클래스 이름, 객체의 타이틀, 객체의 Xpath 등)들을 가공하여 생성된 텍스트로서 객체의 고유한 특징을 식별하기 위해 사용된다. 그리고, 텍스트 정보 분석부(230)는 텍스트 임베딩을 통해 객체 식별 텍스트를 변환하여 후보 객체에 대응되는 벡터를 생성한다. 일 실시예로서, 이때 상기 텍스트 임베딩을 위해, Word2Vec, FastText, Glove, Sent2Vec 또는 Elmo 등 다양한 텍스트 기반 임베딩 모델이 사용될 수 있다.
유사도 분석부(240)는 목표 객체에 대응되는 벡터와 후보 객체에 대응되는 벡터의 유사도를 산출한다. 그리고, 하나 이상의 후보 객체들 중 유사도가 가장 높은 후보 객체를 목표 객체로 결정하고, 상기 결정된 목표 객체(즉, 목표 객체로 결정된 후보 객체)에 대한 정보(예를 들어, 목표 객체로 결정된 후보 객체의 객체 정보)를 RPA 수행 모듈(100)에 제공한다.
상기와 같은 본 실시예의 구성에 따르면, 로봇 프로세스 자동화 장치(1000)는 작업 환경이 변경되더라도 스스로 현재 작업 환경에서의 목표 객체를 찾아 정확하게 찾아 RPA를 수행할 수 있다.
또한, 현재 작업 환경에서의 객체 정보를 이용하여 목표 객체의 기존 저장된 객체 정보를 자동으로 업데이트하므로, 사용자가 봇을 다시 생성하거나 수정할 필요 없이 스스로 오류를 수정할 수 있다. 그에 따라, 봇을 다시 생성하거나 수정하지 않아도 기존 봇을 그대로 사용할 수 있게 된다.
또한, RPA 프로그램 또는 봇을 다른 사용자에게 전달하는 경우에도, 전달받은 사용자의 작업 환경에 스스로 적응하여 동작할 수 있으므로(즉, 새로운 작업 환경에 맞게 오류를 스스로 수정할 수 있으므로), RPA 프로그램 또는 봇의 배포가 자유로워지고 범용성 및 활동도가 높아질 수 있다.
도 3은 본 개시의 몇몇 실시예에 따른 로봇 프로세스 자동화 방법을 나타내는 순서도이다. 도 3을 참조하면, 로봇 프로세스 자동화 방법은 S1010 내지 S1050 단계의 다섯 단계로 구성될 수 있다. 도 3에서 각 단계들은 주체가 따로 명시되지 않으면, 그 주체는 도 1의 로봇 프로세스 자동화 장치(1000)임을 전제한다.
S1010 단계에서, RPA를 수행을 위한 봇이 실행된다. 예를 들어, 봇 관리부(120)는 정해진 배치(Batch) 방법에 따라, 물리 서버 또는 가상 서버(Virtual Machine) 등의 컴퓨팅 환경에서 등록된 봇을 실행하여 RPA가 수행되도록 할 수 있다.
S1020 단계에서, RPA 수행 도중 동작 오류가 발생되었는지 판단한다. 동작 오류가 발생하지 않았으면, 본 실시예는 이후의 RPA를 계속 수행한 후 그대로 종료한다. 반면에, 동작 오류가 발생하였으면, 본 실시예는 S1030 단계로 진행한다.
S1030 단계에서, 동작 오류가 발생한 목표 객체와 관련하여, 현재 작업 환경에서 목표 객체의 객체 정보가 어떻게 변경되었는지 또는 현재 작업 환경에서 목표 객체에 해당하는 객체가 무엇인지 탐지하는 변경점 탐지 단계가 수행된다. 일 실시예로서, S1030 단계에서는 상기 현재 작업 환경에서의 목표 객체 탐지를 위해 도 4 이하의 실시예들에서 설명되는 변경점 탐지 방법들이 사용될 수 있다.
S1040 단계에서, 앞서 목표 객체로 탐지된 객체의 객체 정보를 이용하여 기존 저장되어 있던 목표 객체의 객체 정보를 업데이트한다. 이때, 상기 탐지된 객체의 객체 정보로 기존 저장되어 있던 객체 정보를 완전히 대체하는 방식으로 오류가 발생한 봇의 스크립트를 수정할 수도 있고, 상기 탐지된 객체의 객체 정보와 기존 저장되어 있던 객체 정보의 다른 부분을 확인하여 변경된 사항만 부분적으로 업데이트할 수도 있다.
S1050 단계에서, 업데이트한 결과가 이상이 없는지 테스트하고, 이상이 없는 경우 봇을 다시 재실행한다.
도 4는 도 3의 로봇 프로세스 자동화 방법에 있어서 변경점을 탐지하는 구체적인 방법을 설명하는 순서도이다. 도 4를 참조하면, 변경점을 탐지하는 방법은 S100 단계 내지 S500 단계의 다섯 단계로 구성될 수 있다. 도 4에서 각 단계들은 주체가 따로 명시되지 않으면, 그 주체는 도 1의 로봇 프로세스 자동화 장치(1000)임을 전제한다.
S100 단계에서, RPA 수행 모듈(100)는 변경점 탐지에 필요한 정보들을 수집하고, 변경점 탐지 모듈(200)에 변경점 탐지를 요청한다. 이때, 수집되는 정보들은 오류가 발생한 목표 객체에 대한 정보, 봇이 생성된 시점의 작업 환경 정보 또는 이전에 업데이트된 시점의 작업 환경 정보(즉, 제1 시점의 작업 환경 정보), 또는 현재 시점의 작업 환경 정보(즉, 제2 시점의 작업 환경 정보)를 포함할 수 있다. 일 실시예로서, 상기 현재 시점의 작업 환경 정보는 오류가 발생한 시점의 실행 로그 또는 시스템 모니터링 정보를 포함할 수 있다. 수집된 정보는 상기 변경점 탐지를 요청할 때 변경점 탐지 모듈(200)에 함께 전달될 수 있다.
S200 단계에서, 변경점 탐지 모듈(200)은 봇이 생성된 시점의 화면 정보 또는 이전에 업데이트된 시점의 작업 환경 정보 중 화면 정보(이하, '제1 화면 정보'라 함)로부터, RPA 수행 시 오류가 발생한 이벤트가 참조하는 목표 객체의 객체 정보를 획득한다. 일 실시예로서, 상기 목표 객체의 객체 정보 획득은 변경점 탐지 모듈(200)의 객체 정보 추출부(210)에 의해 수행될 수 있다.
일 실시예로서, 목표 객체의 객체 정보는 제1 화면 정보 상에서 목표 객체를 식별할 수 있는 정보로서, 목표 객체의 ID, 목표 객체의 클래스 이름, 목표 객체의 타이틀, Xpath 등과 같은 다양한 속성 정보들을 포함할 수 있다.
또한, 목표 객체의 객체 정보는 목표 객체의 구조를 나타내는 정보로서, 목표 객체의 계층 구조를 더 포함할 수 있다. 목표 객체의 계층 구조는 제1 화면 정보내 객체들 간의 트리 구조 상에서, 목표 객체를 중심으로 파악되는 노드들 간의 계층 관계(hierarchy)에 대한 정보로서, 목표 객체의 태그 정보, 목표 객체의 부모 객체의 태그 정보, 목표 객체의 자식 객체의 태그 정보 또는 목표 객체의 이웃 객체의 태그 정보를 포함할 수 있다. 이때, 목표 객체의 계층 구조의 깊이(depth)는 실시예에 따라 다양하게 정의될 수 있다.
S300 단계에서, 변경점 탐지 모듈(200)은 RPA 수행 시 오류가 발생한 현재 작업 환경 정보 중 화면 정보(이하, '제2 화면 정보'라 함)에 포함된 객체들의 구조 정보를 획득하고, 그중 목표 객체와 동일한 객체 구조를 갖는 객체들이 무엇인지 탐색한다. 그리고, 상기 탐색 결과를 기초로 제2 화면 정보에 포함된 객체들 중에서 후보 객체를 결정한다. 일 실시예로서, 상기 객체 구조 획득, 탐색 및 후보 객체 결정은 변경점 탐지 모듈(200)의 구조 정보 분석부(220)에 의해 수행될 수 있다. S300 단계에 대한 더 자세한 설명을 위해 도 5 및 도 6을 참조하여 설명을 이어 가기로 한다.
도 5는 도 4에 도시된 객체 구조 탐색 및 후보 객체 결정 단계(S300)를 구체화한 일 실시예를 나타내는 순서도이다. 도 5를 참조하면, S300 단계는 S310 단계 내지 S350 단계의 다섯 단계로 구성될 수 있다.
S310 단계에서, 변경점 탐지 모듈(200)은 제2 화면 정보로부터 비교 객체의 구조 정보를 획득한다. 비교 객체의 구조 정보를 획득하는 예시적인 방법이 도 6에 도시된다. 도 6을 참조하면, 복수의 객체 정보(32b, 33b)를 포함하는 제2 화면 정보(30)가 도시된다. 여기서, 제2 화면 정보(30)는 HTML 형식의 문서 정보인 것으로 예시된다. 변경점 탐지 모듈(200)은 제2 화면 정보(30)를 분석하며 제2 화면 정보(30)에 포함된 객체들을 탐색한다. 탐색된 객체들(32b, 33b)은 이후 목표 객체와의 비교를 통해 후보 객체로 선정되게 되므로 이하에서는'비교 객체'로 지칭한다. 그리고, 비교 객체들(32b, 33b)로부터 그것들의 구조 정보(32a, 33a)를 획득한다. 본 실시예에서, 획득되는 구조 정보(32a, 33a)는 비교 객체들(32b, 33b)의 깊이(depth)가 2인 계층 구조인 것으로 예시된다.
앞서, 목표 객체의 예에서와 마찬가지로, 비교 객체의 계층 구조는 제2 화면 정보내 객체들 간의 트리 구조 상에서, 비교 객체를 중심으로 파악되는 노드들 간의 계층 관계(hierarchy)에 대한 정보를 의미하며, 비교 객체의 태그 정보, 비교 객체의 부모 객체의 태그 정보, 비교 객체의 자식 객체의 태그 정보 또는 비교 객체의 이웃 객체의 태그 정보를 포함할 수 있다
다시, 도 5로 돌아가면, S320 단계에서, 변경점 탐지 모듈(200)은 탐색된 비교 객체들(32b, 33b)의 구조와 목표 객체의 구조를 비교하여 유사도를 분석한다. 이때, 계층 구조의 유사도 계산을 위해서 편집거리(예를 들어, Levenshtein Distance)와 같은 다양한 트리 매칭 알고리즘이 사용될 수 있다. 상기 편집 거리 알고리즘의 구체적인 내용은 당해 기술분야에 널리 알려져 있으므로, 여기서는 그에 대한 자세한 설명을 생략한다. 객체 구조의 유사도 분석 후, 목표 객체와의 구조 유사도가 미리 정의된 일정 수준 이상인 경우, 본 실시예는 S330 단계로 진행하여 해당 비교 객체를 후보 객체로 결정한다. 그렇지 않으면, 본 실시예는 S340 단계로 진행하여 해당 비교 객체를 후보 객체가 아닌 것으로 결정한다.
도 6의 예를 참조하면, 위쪽의 비교 객체 구조(32a)는 목표 객체 구조(31)와 완전히 동일한 구조를 갖고 있다. 따라서, 비교 객체(32b)는 후보 객체로 결정된다. 반면에, 아래쪽의 비교 객체 구조(33a)는 중간 노드(li)가 하위 노드(a) 외에 다른 하위 노드(div)를 더 갖고 있어 목표 객체 구조(31)와 상이한 구조를 갖고 있으며, 목표 객체와의 구조 유사도 역시 임계점(threshold) 이하로 계산되어, 비교 객체(33b)는 후보 객체가 아닌 것으로 결정된다.
다시, 도 5로 돌아가면, S350 단계에서, 변경점 탐지 모듈(200)은 이어지는 S400 단계의 수행을 위해 후보 객체로 결정된 객체(32b)의 속성 정보들을 획득하여 저장한다.
이제 다시 도 4로 돌아가면, S400 단계에서, 변경점 탐지 모듈(200)은 후보 객체들의 속성 정보를 기반으로 각 후보 객체에 대한 객체 식별 텍스트를 생성한다. 그리고, 상기 생성된 객체 식별 텍스트를 기반으로 후보 객체와 목표 객체 간의 유사도를 산출한다. 일 실시예로서, 상기 객체 식별 텍스트의 생성은 변경점 탐지 모듈(200)의 텍스트 정보 분석부(230)에 의해, 상기 유사도 산출은 유사도 분석부(240)에 의해 각각 수행될 수 있다. S400 단계에 대한 더 자세한 설명을 위해 도 7을 참조하여 설명을 이어 가기로 한다.
도 7은 도 4에 도시된 객체 식별 텍스트 생성 및 유사도 산출 단계(S400)를 구체화한 일 실시예를 나타내는 순서도이다. 도 7을 참조하면, S400 단계는 S410 단계 내지 S430 단계의 세 단계로 구성될 수 있다.
S410 단계에서, 변경점 탐지 모듈(200)은 후보 객체의 속성 정보를 가공하여 객체 식별 텍스트를 생성한다. 앞서, S300 단계에서, 제2 화면 정보에 기반하여 후보 객체들이 결정되면, 후보 객체들의 속성 정보(예를 들어, 후보 객체의 ID, 후보 객체의 클래스 이름, 후보 객체의 타이틀, 후보 객체의 Xpath 등)들이 추출되고, 벡터화가 용이한 형태로 전처리된다. 여기서는, 상기 후보 객체들의 속성 정보를 상기 전처리한 결과를 개체 식별 텍스트로 정의한다.
도 8은 도 7에 도시된 S410 단계를 구체화한 일 실시예로서, 후보 객체들의 속성 정보를 전처리하는 일련의 단계들을 예시한다. 이하, 도 8을 참조하여 설명한다. 여기서, 속성 정보들은 텍스트 형태의 정보인 것을 가정한다.
먼저, S411 단계에서, 변경점 탐지 모듈(200)은 미리 결정된 속성 정보 및 불필요한 텍스트를 제거한다. 여기서 상기 미리 결정된 속성 정보는, 후보 객체의 고유한 특성을 나타내지 못하거나 후보 객체를 식별하는 능력이 약한 등의 이유로 목표 객체와의 유사도 판단에서 제외하기로 미리 결정된 속성 정보를 의미한다. 여기서 상기 불필요한 텍스트는, 특수 문자 또는 불용 형태소와 같이 후보 객체의 고유한 특성을 나타내지 못하거나 그 나타내는 의미가 약한 텍스트를 의미한다.
S412 단계에서, 변경점 탐지 모듈(200)은 남은 속성 정보들 중 중복되는 텍스트를 제거한다. 이는, 본 실시예에 따른 유사도 판단 방법에서 텍스트의 출현 빈도수가 결과에 영향을 주지 않는 점을 감안한 것으로, 반복하여 출현하는 텍스트에 대해 그 중복을 제거하는 것이다. 다만, 이는 하나의 예로서, 경우에 따라 S412 단계는 생략될 수 있다. 가령, 유사도 판단 알고리즘이 텍스트의 출현 빈도수를 결과에 반영하는 알고리즘인 경우, S412 단계는 생략될 수 있다.
한편, 상기 S411 단계 및 S412 단계는 후보 객체의 속성 정보를 일부를 제거하는 필터링 단계로 지칭될 수 있다.
S413 단계에서, 변경점 탐지 모듈(200)은 남은 텍스트(즉, 상기 필터링 단계 이후 남은 텍스트)들을 코퍼스(corpus, 또는 말뭉치) 단위로 구성한다. 일 실시예로서, 상기 코퍼스 단위는 단어일 수 있으나, 이에 한정되지는 않는다.
S414 단계에서, 변경점 탐지 모듈(200)은 코퍼스 단위의 텍스트들을 미리 결정된 언어로 변환한다. 가령, 상기 코퍼스 단위의 텍스트들이 서로 다른 언어의 텍스트인 경우(예를 들어, 한국어, 영어, 중국어, 일본어로 된 텍스트들이 함께 있는 경우), 이를 미리 결정된 하나의 언어로 변환하여 상기 코퍼스 단위의 텍스트들이 단일 언어로 표현되도록 한다. 이는 상기 코퍼스 단위의 텍스트들을 동일 언어 모델을 통해 처리하기 위함으로, 일반적으로 다국어 언어로 구성된 텍스트들의 경우, 언어 처리를 위한 인공지능 모델을 학습시키기 어려울 뿐만 아니라 좋은 성능을 기대하기 어려운 점을 감안한 것이다. 이에, 변경점 탐지 모듈(200)의 성능을 향상시키기 위해 다국어 언어의 텍스트를 번역기 등을 이용하여 미리 결정된 하나의 언어의 텍스트로 변환한다.
S415 단계에서, 변경점 탐지 모듈(200)은 S411 내지 S414 단계를 거쳐 처리가 완료된 일련의 텍스트들을 개체 식별 텍스트로서 출력한다.
본 실시예에서, 상기한 단계들을 통해, 변경점 탐지 모듈(200)은 후보 객체의 속성 정보들을 정제하여 후보 객체의 특성을 나타낼 수 있는 텍스트들을 생성하고, 그 밖의 전처리 및 언어 변환 단계를 통해 벡터화를 위한 최종 데이터 형태(즉, 개체 식별 텍스트)를 생성하게 된다.
다시 도 7로 돌아가면, S420 단계에서, 변경점 탐지 모듈(200)은 생성된 객체 식별 텍스트에 대한 벡터(이하, '고유 벡터'라 함)를 생성한다. 상기 고유 벡터는 사전에 딥러닝 학습된 텍스트 임베딩 모델을 통해 객체 식별 텍스트를 수치화한 벡터로서, 개별 후보 객체에 대응하는 벡터이다. 일 실시예로서, 상기 텍스트 임베딩 모델은 딥러닝 인공지능 모델로서, Word2Vec, FastText, Glove, Sent2Vec 또는 Elmo 등 다양한 텍스트 기반 임베딩 모델이 사용될 수 있다. 상기 Word2Vec, FastText, Glove, Sent2Vec 또는 Elmo 모델의 구체적인 구성 및 내용은 당해 기술분야에 널리 알려져 있으므로, 여기서는 그에 대한 자세한 설명을 생략한다.
도 9는 텍스트 임베딩을 통해 객체 식별 텍스트에 대한 고유 벡터가 생성되는 방법을 개념적으로 설명하는 도면이다. 도 9를 참조하면, 'sea', 'salt', 'is', 'a', 'great'의 다섯 개의 단어를 포함하는 개체 식별 텍스트(41)를 고유 벡터(43)로 변환하는 예가 도시된다. 도 9에서, 개체 식별 텍스트(41)의 각 단어들이 각각 입력층으로 입력되면, 각각에 대한 임베딩 가중치가 반영되어 은닉층(42)의 연산을 거쳐 출력층을 통해 상기 개체 식별 텍스트(41)에 대응하는 고유 벡터(43)가 출력된다. 이때, 입력층, 은닉층, 출력층은 상기 텍스트 임베딩 모델을 구성하는 딥러닝 요소이다. 일 실시예로서, 상기 개체 식별 텍스트(41)의 개별 단어들은 입력층에 입력되기 전에 또는 입력층에서 개별 단어에 대응하는 고유 벡터들(42)로 변환될 수 있다.
한편, 상기한 텍스트 임베딩 방법을 통해 변환된 고유 벡터들은 자신의 객체 식별 텍스트가 서로 유사할수록 유사한 크기와 방향을 갖도록 구성된다. 즉, 본 실시예에서, 후보 객체의 고유 벡터는 후보 객체의 상기 객체 식별 텍스트가 목표 객체의 객체 식별 텍스와 유사할수록 목표 객체의 고유 벡터와 유사한 크기와 방향을 갖는다.
다시 도 7로 돌아가면, S430 단계에서, 변경점 탐지 모듈(200)은 후보 객체와 목표 객체의 벡터(예를 들어, 고유 벡터) 간 유사도 계산을 통해 상기 후보 객체의 유사도를 산출한다.
앞서, S410 단계에서 후보 객체의 속성 정보를 가공하여 객체 식별 텍스트를 생성하는 방법을 설명하고, S420 단계에서 생성된 객체 식별 텍스트를 기반으로 후보 객체의 고유 벡터를 생성하는 방법을 설명하였다. 유사하게, 목표 객체에 대해서도 객체 식별 텍스트 및 고유 벡터를 생성하는 것이 가능하다. 여기서는, 목표 객체에 대응하는 고유 벡터가 산출되어 있는 것을 전제로 본 실시예를 설명한다.
변경점 탐지 모듈(200)은 앞서 산출된 후보 객체들의 고유 벡터들에 대해 각각 목표 객체의 고유 벡터와의 유사도를 계산한다. 이때, 고유 벡터들 간 유사도를 산출하는 방법으로는 코사인 유사도(Cosine Similarity), 유클리디안 거리법(Euclidean Distance), 맨해튼 거리법(Manhattan Distance), 또는 민코프스키 거리법(Minkowski Distance) 등 다양한 방법이 사용될 수 있다. 상기 코사인 유사도, 유클리디안 거리법, 맨해튼 거리법 또는 민코프스키 거리법의 구체적인 구성 및 내용은 당해 기술분야에 널리 알려져 있으므로, 여기서는 그에 대한 자세한 설명을 생략한다. 상기 방법으로 산출된, 개별 후보 객체와 목표 객체의 고유 벡터 간 유사도는 해당 후보 객체의 유사도를 나타낸다.
이제 다시 도 4로 돌아가면, S500 단계에서, 변경점 탐지 모듈(200)은 상기 유사도 산출 결과, 가장 높은 유사도를 가진 후보 객체를 현재 작업 환경에서의 목표 객체로 결정한다.
구체적으로, 변경점 탐지 모듈(200)은 앞서 산출된 후보 객체들의 유사도를 기준으로 후보 객체들을 정렬한다. 그리고, 변경점 탐지 모듈(200)은 유사도가 다른 후보 객체보다 높은 후보 객체를 목표 객체에 해당하는 객체로 결정한다(즉, 후보 객체들 중 유사도가 가장 높은 후보 객체를 목표 객체로 결정한다).
일 실시예로서, 변경점 탐지 모듈(200)은 목표 객체로 결정된 후보 객체의 객체 정보(예를 들어, 후보 객체의 속성 정보 또는 구조 정보)를 RPA 수행 모듈(100)에 제공할 수 있고, RPA 수행 모듈(100)은 상기 제공된 객체 정보를 기반으로 목표 객체의 객체 정보를 업데이트할 수 있다.
이하에서는, 도 10을 참조하여 본 개시의 다양한 실시예에 따른 장치를 구현할 수 있는 예시적인 컴퓨팅 장치(2000)에 대하여 설명하도록 한다.
도 10은 컴퓨팅 장치(2000)를 나타내는 하드웨어 구성도이다. 도 10에 도시된 바와 같이, 컴퓨팅 장치(2000)는 하나 이상의 프로세서(2100), 프로세서(2100)에 의하여 수행되는 컴퓨터 프로그램을 로드(load)하는 메모리(2200), 버스(2500), 통신 인터페이스(2400)와 컴퓨터 프로그램(2310)을 저장하는 스토리지(2300)를 포함할 수 있다. 다만, 도 10에는 본 개시의 실시예와 관련 있는 구성요소들만이 도시되어 있다. 따라서, 본 개시가 속한 기술분야의 통상의 기술자라면 도 10에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(2100)는 컴퓨팅 장치(2000)의 각 구성의 전반적인 동작을 제어한다. 프로세서(3100)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 개시의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다. 또한, 프로세서(2100)는 본 개시의 실시예들에 따른 방법/동작을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있다. 컴퓨팅 장치(2000)는 하나 이상의 프로세서를 구비할 수 있다.
메모리(2200)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(2200)는 본 개시의 다양한 실시예들에 따른 방법/동작을 실행하기 위하여 스토리지(2300)로부터 하나 이상의 프로그램(2310)을 로드할 수 있다. 메모리(2200)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(2500)는 컴퓨팅 장치(2000)의 구성 요소 간 통신 기능을 제공한다. 버스(2500)는 주소 버스(Address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(2400)는 컴퓨팅 장치(2000)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(2400)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(2400)는 본 개시의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 경우에 따라, 통신 인터페이스(2400)는 생략될 수도 있다.
스토리지(2300)는 상기 하나 이상의 컴퓨터 프로그램(2310)과 각종 데이터 등을 비임시적으로 저장할 수 있다. 스토리지(2300)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 개시가 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(2310)은 메모리(2200)에 로드될 때 프로세서(2100)로 하여금 본 개시의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(2100)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 개시의 다양한 실시예에 따른 방법/동작들을 수행할 수 있다.
예를 들어, 컴퓨터 프로그램(2310)은 제1 화면 정보로부터 목표 객체 정보를 획득하는 동작, 상기 목표 객체의 구조와 동일한 구조를 갖는 객체를 탐색 또는 추출하여 후보 객체를 결정하는 동작, 객체의 속성 정보를 가공하여 객체 식별 텍스트를 생성하는 동작, 텍스트 임베딩을 통해 객체 식별 텍스트의 벡터를 생성하는 동작, 벡터간 유사도 계산을 통해 후보 객체의 유사도를 산출하는 동작, 후보 객체의 유사도를 기반으로 목표 객체의 대응 객체를 결정하는 동작들을 수행하도록 하는 인스트럭션들을 포함할 수 있다.
지금까지 도 1 내지 도 10을 참조하여 본 개시의 다양한 실시예들 및 그 실시예들에 따른 효과들을 언급하였다. 본 개시의 기술적 사상에 따른 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
지금까지 도 1 내지 도 10을 참조하여 설명된 본 개시의 기술적 사상은 컴퓨터가 읽을 수 있는 매체 상에 컴퓨터가 읽을 수 있는 코드로 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체는, 예를 들어 이동형 기록 매체(CD, DVD, 블루레이 디스크, USB 저장 장치, 이동식 하드 디스크)이거나, 고정식 기록 매체(ROM, RAM, 컴퓨터 구비 형 하드 디스크)일 수 있다. 상기 컴퓨터로 읽을 수 있는 기록 매체에 기록된 상기 컴퓨터 프로그램은 인터넷 등의 네트워크를 통하여 다른 컴퓨팅 장치에 전송되어 상기 다른 컴퓨팅 장치에 설치될 수 있고, 이로써 상기 다른 컴퓨팅 장치에서 사용될 수 있다.
이상에서, 본 개시의 실시예를 구성하는 모든 구성 요소들이 하나로 결합되거나 결합되어 동작하는 것으로 설명되었다고 해서, 본 개시의 기술적 사상이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 개시의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
도면에서 동작들이 특정한 순서로 도시되어 있지만, 반드시 동작들이 도시된 특정한 순서로 또는 순차적 순서로 실행되어야만 하거나 또는 모든 도시 된 동작들이 실행되어야만 원하는 결과를 얻을 수 있는 것으로 이해되어서는 안 된다. 특정 상황에서는, 멀티태스킹 및 병렬 처리가 유리할 수도 있다. 더욱이, 위에 설명한 실시예들에서 다양한 구성들의 분리는 그러한 분리가 반드시 필요한 것으로 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들은 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키지 될 수 있음을 이해하여야 한다.
이상 첨부된 도면을 참조하여 본 개시의 실시예들을 설명하였지만, 본 개시가 속하는 기술분야에서 통상의 지식을 가진 자는 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 개시가 다른 구체적인 형태로도 실시될 수 있다는 것을 이해할 수 있다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 개시의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 개시에 의해 정의되는 기술적 사상의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 컴퓨터 장치에 의해 수행되는 로봇 프로세스 자동화의 변경점 탐지 방법에 있어서,
    제1 시점의 제1 작업 환경 정보로부터 목표 객체의 객체 정보를 획득하는 단계;
    상기 획득한 목표 객체의 객체 정보에 기반하여, 제2 시점의 제2 작업 환경 정보로부터 탐지되는 비교 객체를 상기 목표 객체에 해당하는 객체로 결정하는 단계를 포함하는,
    변경점 탐지 방법.
  2. 제1 항에 있어서,
    상기 목표 객체에 해당하는 객체로 결정하는 단계는,
    상기 제2 작업 환경 정보로부터 상기 비교 객체의 객체 구조를 탐색하고, 상기 탐색한 결과에 따라 상기 비교 객체를 후보 객체로 결정하는 단계를 포함하는,
    변경점 탐지 방법.
  3. 제2 항에 있어서,
    상기 후보 객체로 결정하는 단계는,
    상기 제2 작업 환경 정보로부터 상기 비교 객체의 객체 구조를 획득하는 단계;
    상기 비교 객체의 객체 구조와 상기 목표 객체의 객체 구조를 비교하여 동일 또는 유사한지 판단하는 단계; 및
    상기 판단 결과, 상기 비교 객체의 객체 구조가 상기 목표 객체의 객체 구조와 동일 또는 유사하면 상기 비교 객체를 상기 후보 객체로 결정하는 단계를 포함하는,
    변경점 탐지 방법.
  4. 제2 항에 있어서,
    상기 객체 구조는,
    상기 제2 작업 환경 정보 내 객체들 간의 트리 구조 상에서, 상기 비교 객체를 중심으로 파악되는 노드들 간의 계층 관계(hierarchy)에 대한 정보인,
    변경점 탐지 방법.
  5. 제4 항에 있어서,
    상기 객체 구조는,
    상기 비교 객체의 태그 정보, 상기 비교 객체의 부모 객체의 태그 정보, 상기 비교 객체의 자식 객체의 태그 정보 또는 상기 비교 객체의 이웃 객체의 태그 정보를 포함하는,
    변경점 탐지 방법.
  6. 제2 항에 있어서,
    상기 목표 객체에 해당하는 객체로 결정하는 단계는,
    상기 후보 객체의 속성 정보를 기반으로, 상기 후보 객체의 객체 식별 텍스트를 생성하여 상기 후보 객체의 유사도를 산출하는 단계를 더 포함하는,
    변경점 탐지 방법.
  7. 제6 항에 있어서,
    상기 유사도를 산출하는 단계는,
    상기 후보 객체의 상기 속성 정보를 가공하여 상기 객체 식별 텍스트를 생성하는 단계;
    상기 객체 식별 텍스트를 변환하여 벡터를 생성하는 단계; 및
    상기 생성된 벡터를 이용하여, 벡터 간 유사도 계산을 통해 상기 후보 객체의 유사도를 산출하는 단계를 포함하는,
    변경점 탐지 방법.
  8. 제7 항에 있어서,
    상기 객체 식별 텍스트를 생성하는 단계는,
    상기 후보 객체의 속성 정보 중 일부를 제거하는 필터링 단계;
    상기 필터링 단계 이후 남은 텍스트들을 코퍼스 단위로 구성하는 단계; 및
    상기 코퍼스 단위로 구성된 텍스트들을 미리 결정된 언어로 변환하는 단계를 포함하는,
    변경점 탐지 방법.
  9. 제7 항에 있어서,
    상기 객체 식별 텍스트를 변환하여 벡터를 생성하는 단계는,
    텍스트 임베딩을 통해 상기 객체 식별 텍스트를 변환하여 상기 후보 객체의 고유 벡터를 생성하는 단계를 포함하는,
    변경점 탐지 방법.
  10. 제9 항에 있어서,
    상기 후보 객체의 고유 벡터는,
    상기 후보 객체의 상기 객체 식별 텍스트가 상기 목표 객체의 객체 식별 텍스와 유사할수록 상기 목표 객체의 고유 벡터와 유사한 크기와 방향을 갖는,
    변경점 탐지 방법.
  11. 제9 항에 있어서,
    상기 목표 객체에 해당하는 객체로 결정하는 단계는,
    상기 후보 객체의 유사도가 다른 후보 객체보다 높은 경우, 상기 후보 객체를 상기 목표 객체에 해당하는 객체로 결정하는 단계를 더 포함하는,
    변경점 탐지 방법.
  12. 제1 항에 있어서,
    상기 목표 객체의 객체 정보를 업데이트 하기 위해, 상기 비교 객체의 객체 정보를 제공하는 단계를 더 포함하는,
    변경점 탐지 방법.
  13. 컴퓨터 장치에 의해 수행되는 로봇 프로세스 자동화의 변경점 탐지 방법에 있어서,
    로봇 프로세스 자동화를 위한 봇을 실행하는 단계;
    상기 봇의 동작 오류가 발생하였는지 판단하는 단계;
    상기 동작 오류가 발생하였다는 판단에 근거하여, 상기 봇이 참조하는 객체의 변경점을 탐지하는 단계; 및
    상기 변경점 탐지 결과에 기반하여, 상기 객체의 객체 정보를 업데이트 하는 단계를 포함하는,
    변경점 탐지 방법.
  14. 로봇 프로세스 자동화를 위한 봇을 생성하고 실행하는 RPA 수행 모듈; 및
    상기 봇의 실행 시 오류가 발생한 경우, 오류가 발생한 이벤트가 참조하는 객체의 변경 사항을 탐지하는 변경점 탐지 모듈을 포함하고,
    상기 변경점 탐지 모듈은,
    상기 이벤트가 참조하는 객체의 객체 정보에 기반하여, 상기 오류가 발생한 시점의 작업 환경 정보로부터 탐지되는 비교 객체를 상기 이벤트가 참조하는 객체로 결정하는,
    로봇 프로세스 자동화 장치.
  15. 제14 항에 있어서,
    상기 RPA 수행 모듈은,
    사용자 설정에 따라 사전 작업을 반복 수행할 상기 봇을 생성하는 봇 모델링부;
    상기 모델링부가 생성한 상기 봇을 등록 및 관리하는 봇 관리부; 및
    상기 봇 관리부의 제어에 따라 상기 봇을 저장하는 봇 저장부를 포함하는,
    로봇 프로세스 자동화 장치.
  16. 제14 항에 있어서,
    상기 변경점 탐지 모듈은,
    상기 이벤트가 참조하는 객체 또는 상기 비교 객체의 객체 정보를 추출하는 객체 정보 추출부;
    상기 추출된 객체 정보를 기반으로 상기 이벤트가 참조하는 객체 또는 상기 비교 객체의 구조 정보를 분석하는 구조 정보 분석부;
    상기 추출된 객체 정보를 기반으로 상기 이벤트가 참조하는 객체 또는 상기 비교 객체의 속성 정보를 분석 또는 가공하는 텍스트 정보 분석부; 및
    상기 이벤트가 참조하는 객체와 상기 비교 객체 간의 유사도를 산출하는 유사도 분석부를 포함하는,
    로봇 프로세스 자동화 장치.
  17. 컴퓨팅 장치와 결합되어,
    제1 시점의 제1 작업 환경 정보로부터 목표 객체의 객체 정보를 획득하는 단계; 및
    상기 획득한 목표 객체의 객체 정보에 기반하여, 제2 시점의 제2 작업 환경 정보로부터 탐지되는 비교 객체를 상기 목표 객체에 해당하는 객체로 결정하는 단계를 실행시키도록 컴퓨터로 판독가능한 기록 매체에 저장되는,
    컴퓨터 프로그램.
KR1020190133073A 2019-10-24 2019-10-24 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법 KR20210048865A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190133073A KR20210048865A (ko) 2019-10-24 2019-10-24 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법
US16/664,494 US11279040B2 (en) 2019-10-24 2019-10-25 Robot process automation apparatus and method for detecting changes thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190133073A KR20210048865A (ko) 2019-10-24 2019-10-24 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법

Publications (1)

Publication Number Publication Date
KR20210048865A true KR20210048865A (ko) 2021-05-04

Family

ID=75585499

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190133073A KR20210048865A (ko) 2019-10-24 2019-10-24 로봇 프로세스 자동화 장치 및 그것의 변경점 탐지 방법

Country Status (2)

Country Link
US (1) US11279040B2 (ko)
KR (1) KR20210048865A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102322885B1 (ko) * 2021-05-31 2021-11-05 시와소프트 주식회사 자동화 업무 플로우의 개선 프로세스를 추천하는 로보틱 처리 자동화 시스템
KR102418739B1 (ko) * 2022-03-29 2022-07-08 주식회사 시메이션 로보틱 자동화 방법 및 이를 수행하기 위한 컴퓨팅 장치

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10503627B2 (en) 2017-10-30 2019-12-10 Bank Of America Corporation Robotic process automation enabled file dissection for error diagnosis and correction
US10606687B2 (en) * 2017-12-04 2020-03-31 Bank Of America Corporation Process automation action repository and assembler
US11593709B2 (en) * 2019-10-15 2023-02-28 UiPath, Inc. Inserting and/or replacing machine learning models in a pipeline for robotic process automation workflows
US11941414B2 (en) * 2020-11-20 2024-03-26 International Business Machines Corporation Unstructured extensions to rpa
US20230102809A1 (en) * 2021-09-28 2023-03-30 UiPath, Inc. Preconfigured robots for robotic process automation
WO2023054535A1 (ja) * 2021-09-28 2023-04-06 京セラ株式会社 情報処理装置、ロボットコントローラ、ロボット制御システム、及び情報処理方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130119715A (ko) 2012-04-24 2013-11-01 한국전자통신연구원 비즈니스 프로세스 자동화 장치

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10970109B1 (en) * 2017-11-09 2021-04-06 Amdocs Development Limited System, method, and computer program for managing a plurality of heterogeneous software robots to automate business processes
US20190155225A1 (en) * 2017-11-21 2019-05-23 Accenture Global Solutions Limited Bot management framework for robotic process automation systems
US20190303779A1 (en) * 2018-04-03 2019-10-03 Walmart Apollo, Llc Digital worker management system
US10769427B1 (en) * 2018-04-19 2020-09-08 Automation Anywhere, Inc. Detection and definition of virtual objects in remote screens
US10908950B1 (en) * 2018-04-20 2021-02-02 Automation Anywhere, Inc. Robotic process automation system with queue orchestration and task prioritization
US10960541B2 (en) * 2018-12-10 2021-03-30 Accenture Global Solutions Limited Analytical robotic process automation
WO2020252081A1 (en) * 2019-06-10 2020-12-17 Argos Labs Inc. Systems and methods for robotic process automation
US10885423B1 (en) * 2019-10-14 2021-01-05 UiPath Inc. Systems and methods of activity target selection for robotic process automation
US10977166B1 (en) * 2019-10-15 2021-04-13 Bank Of America Corporation System for automated error analysis in an application testing environment using robotic process automation
US11738453B2 (en) * 2019-10-15 2023-08-29 UiPath, Inc. Integration of heterogeneous models into robotic process automation workflows
US10860905B1 (en) * 2019-10-16 2020-12-08 UiPath, Inc. Long running workflows for document processing using robotic process automation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130119715A (ko) 2012-04-24 2013-11-01 한국전자통신연구원 비즈니스 프로세스 자동화 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102322885B1 (ko) * 2021-05-31 2021-11-05 시와소프트 주식회사 자동화 업무 플로우의 개선 프로세스를 추천하는 로보틱 처리 자동화 시스템
KR102418739B1 (ko) * 2022-03-29 2022-07-08 주식회사 시메이션 로보틱 자동화 방법 및 이를 수행하기 위한 컴퓨팅 장치

Also Published As

Publication number Publication date
US11279040B2 (en) 2022-03-22
US20210122051A1 (en) 2021-04-29

Similar Documents

Publication Publication Date Title
US11279040B2 (en) Robot process automation apparatus and method for detecting changes thereof
US10515002B2 (en) Utilizing artificial intelligence to test cloud applications
US11720822B2 (en) Gradient-based auto-tuning for machine learning and deep learning models
US20230244999A1 (en) Automated versioning and evaluation of machine learning workflows
CN113094198A (zh) 一种基于机器学习和文本分类的服务故障定位方法及装置
JP6903755B2 (ja) データ統合ジョブ変換
US20220139063A1 (en) Filtering detected objects from an object recognition index according to extracted features
US20160124795A1 (en) Evaluation method and apparatus
CN113011461B (zh) 通过知识学习增强基于分类的软件需求跟踪链接恢复方法及电子装置
US20220164170A1 (en) Usage-based software library decomposition
US10163060B2 (en) Hierarchical probability model generation system, hierarchical probability model generation method, and program
US11481599B2 (en) Understanding a query intention for medical artificial intelligence systems using semi-supervised deep learning
WO2016093839A1 (en) Structuring of semi-structured log messages
KR102317358B1 (ko) 임베딩 및 적응형 클러스터링 기반 지식 그래프의 오류 트리플 검출 방법 및 장치
JP2017049639A (ja) 評価プログラム、手順書評価方法、および評価装置
EP3422200A1 (en) Method and system for handling one or more issues in a computing environment
WO2018174000A1 (ja) 構成管理装置、構成管理方法および記録媒体
KR20200057848A (ko) 다중 분기 트리와 assl을 결합한 오픈 셋 물체 검출 방법 및 장치
CN111913706B (zh) 一种调度自动化系统拓扑构建方法、存储介质和计算设备
JP4846736B2 (ja) 並列処理支援装置
US10489272B2 (en) Automatic instrumentation of code
Punyamurthula Dynamic model generation and semantic search for open source projects using big data analytics
JP5514682B2 (ja) バッチ処理プログラム分析方法および装置
CN116737311B (zh) 信创生态服务云平台交互方法
US20240142943A1 (en) Method and system for task recording using robotic process automation technology

Legal Events

Date Code Title Description
A201 Request for examination