KR20220050011A - 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술, 디폴트 그래픽 요소 검출 기술 또는 이들 양자를 사용하는 그래픽 요소 검출 - Google Patents

결합된 직렬 및 지연 병렬 실행 통합 타겟 기술, 디폴트 그래픽 요소 검출 기술 또는 이들 양자를 사용하는 그래픽 요소 검출 Download PDF

Info

Publication number
KR20220050011A
KR20220050011A KR1020207028274A KR20207028274A KR20220050011A KR 20220050011 A KR20220050011 A KR 20220050011A KR 1020207028274 A KR1020207028274 A KR 1020207028274A KR 20207028274 A KR20207028274 A KR 20207028274A KR 20220050011 A KR20220050011 A KR 20220050011A
Authority
KR
South Korea
Prior art keywords
element detection
detection techniques
properties
graphical element
activity
Prior art date
Application number
KR1020207028274A
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
Priority claimed from US17/014,171 external-priority patent/US11507259B2/en
Application filed by 유아이패스, 인크. filed Critical 유아이패스, 인크.
Publication of KR20220050011A publication Critical patent/KR20220050011A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding
    • G06V10/945User interactive design; Environments; Toolboxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Game Theory and Decision Science (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

복수의 그래픽 요소 검출 기술을 잠재적으로 사용하거나, 애플리케이션 및/또는 UI 유형 레벨에서 디폴트 사용자 인터페이스(UI) 요소 검출 기술 구성을 수행하거나, 이들 양자를 사용하는 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술을 사용하는 그래픽 요소 검출 기술이 개시된다. 통합 타겟은 UI 요소들을 식별하고 자동화하는 다수의 기술을 단일의 응집 접근법으로 병합한다. 통합 타겟 디스크립터는 다수의 유형들의 UI 디스크립터들을 직렬로 함께 체인화하거나, 이들을 병렬로 사용하거나, 일정 기간 동안 적어도 하나의 기술을 먼저 사용하고, 이어서 제1 기술이 일정 기간 내에 매칭을 발견하지 않으면 적어도 하나의 다른 기술을 병렬로 또는 대안적으로 실행한다.

Description

결합된 직렬 및 지연 병렬 실행 통합 타겟 기술, 디폴트 그래픽 요소 검출 기술 또는 이들 양자를 사용하는 그래픽 요소 검출
본 출원은 2020년 9월 8일자로 출원된 미국 특허 정식 출원 제17/014,171호의 이익을 주장한다. 이에 따라, 이 선행 출원의 내용은 그 전체가 본 명세서에 참고로 통합된다.
본 발명은 일반적으로 그래픽 요소 검출에 관한 것으로서, 보다 구체적으로는, 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술을 사용하거나, 애플리케이션 및/또는 UI 유형 레벨에서 디폴트 UI 요소 검출 기술 구성을 수행하거나, 이들 양자를 사용하는 그래픽 요소 검출에 관한 것이다.
UI에서의 로봇 프로세스 자동화(RPA)를 위해, 각각의 UI 액션에 대해 선택기들, 컴퓨터 비전(CV) 또는 광학 문자 인식(OCR)을 사용하여 그래픽 요소 검출이 수행될 수 있다. 그러나, 이러한 기술들은 통상적으로 개별적으로 적용되며, 모든 시나리오들에 대해 최적이 아니다. 따라서, 개선된 접근법이 유익할 수 있다.
본 발명의 특정 실시예들은 현재의 그래픽 요소 검출 기술들에 의해 아직 완전히 식별, 인식 또는 해결되지 않은 이 분야의 문제점들 및 요구들에 대한 해결책들을 제공할 수 있다. 예를 들어, 본 발명의 일부 실시예들은 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술을 사용하는 그래픽 요소 검출에 관한 것이다. 특정 실시예들은 애플리케이션 및/또는 UI 유형 레벨에서의 디폴트 UI 요소 검출 기술 구성에 관한 것이다. 이 구성은 또한 실행시간에 UI 요소들을 검출하는 데 사용될 수 있다.
일 실시예에서, UI에서 그래픽 요소들을 검출하기 위한 컴퓨터 구현 방법은 설계자 애플리케이션에 의해, 통합 타겟 기술을 사용하여 그래픽 요소 검출을 수행하도록 구성될 RPA 작업 흐름에서의 활동의 선택을 수신하는 단계를 포함한다. 컴퓨터 구현 방법은 또한, 설계자 애플리케이션에 의해, 활동에 대한 통합 타겟 기술에 대한 수정들을 수신하고, 설계자 애플리케이션에 의해, 수정들에 기초하여 활동을 구성하는 단계를 포함한다. 통합 타겟 기술은 복수의 그래픽 요소 검출 기술을 사용하도록 구성된 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술이다.
다른 실시예에서, 컴퓨터 프로그램이 비일시적 컴퓨터 판독가능 매체 상에 구현된다. 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 실행 시간에 UI를 분석하여 UI 요소 속성들을 식별하고 하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 UI 요소 속성들을 RPA 작업 흐름의 활동에 대한 UI 디스크립터 속성들과 비교하게 하도록 구성된다. 제1 기간 동안 하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때, 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 하나 이상의 초기 그래픽 요소 검출 기술과 병렬로 하나 이상의 추가적인 그래픽 요소 검출 기술을 실행하게 하도록 구성된다.
또 다른 실시예에서, 컴퓨터 프로그램이 비일시적 컴퓨터 판독가능 매체 상에 구현된다. 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 실행 시간에 UI를 분석하여 UI 요소 속성들을 식별하고 하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 UI 요소 속성들을 RPA 작업 흐름의 활동에 대한 UI 디스크립터 속성들과 비교하게 하도록 구성된다. 제1 기간 동안 하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때, 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 하나 이상의 초기 그래픽 요소 검출 기술 대신에 하나 이상의 추가적인 그래픽 요소 검출 기술을 실행하게 하도록 구성된다.
또 다른 실시예에서, UI에서 그래픽 요소들을 검출하기 위한 컴퓨터 구현 방법은, RPA 설계자 애플리케이션에 의해, 애플리케이션 또는 UI 유형의 선택을 수신하는 단계를 포함한다. 컴퓨터 구현 방법은 또한, RPA 설계자 애플리케이션에 의해 디폴트 타겟팅 방법 설정 구성을 수신하고 저장하는 단계를 포함한다. 컴퓨터 구현 방법은, RPA 설계자 애플리케이션에 의해, 자동화될 스크린의 표시를 수신하는 단계를 더 포함한다. 스크린은 선택된 애플리케이션 또는 UI 유형과 관련된다. 또한, 컴퓨터 구현 방법은, RPA 설계자 애플리케이션에 의해, 선택된 애플리케이션 또는 UI 유형에 대한 디폴트 타겟팅 방법 설정들을 자동으로 사전 구성하는 단계를 포함한다.
다른 실시예에서, 컴퓨터 프로그램이 비일시적 컴퓨터 판독가능 매체 상에 구현된다. 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 선택된 애플리케이션 또는 UI 유형에 대한 디폴트 타겟팅 방법 설정들을 자동으로 사전 구성하게 하도록 구성된다. 컴퓨터 프로그램은 또한, 적어도 하나의 프로세서로 하여금 애플리케이션 또는 UI 유형에 대한 디폴트 타겟팅 방법 설정들에 대한 수정들을 수신하고, 수정들에 따라 디폴트 타겟팅 방법 설정들을 구성하게 하도록 구성된다. 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 애플리케이션 또는 UI 유형에 대한 디폴트 타겟팅 방법 설정들을 사용하여 RPA 작업 흐름에서 하나 이상의 활동을 구성하게 하도록 더 구성된다.
또 다른 실시예에서, 컴퓨터 프로그램이 비일시적 컴퓨터 판독가능 매체 상에 구현된다. 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 설계자 애플리케이션에 의해 애플리케이션 또는 UI 유형에 대한 디폴트 타겟팅 방법 설정들을 자동으로 사전 구성하고, 애플리케이션 또는 UI 유형에 대한 디폴트 타겟팅 방법 세팅들을 사용하여 RPA 작업 흐름에서 하나 이상의 활동들을 구성하게 하도록 구성된다. 컴퓨터 프로그램은 또한 적어도 하나의 프로세서로 하여금 하나 이상의 구성된 활동을 포함하는 RPA 작업 흐름을 구현하기 위한 RPA 로봇을 생성하게 하도록 구성된다.
본 발명의 특정 실시예들의 장점들이 쉽게 이해되게 하기 위해, 위에서 간략하게 설명된 본 발명의 더 구체적인 설명이 첨부 도면들에 예시된 특정 실시예들을 참조하여 제공될 것이다. 이러한 도면들은 본 발명의 통상적인 실시예들만을 도시하고, 따라서 그 범위를 제한하는 것으로 간주되지 않아야 된다는 것을 이해해야 하지만, 본 발명은 첨부 도면들의 사용을 통해 더 구체적이고 상세하게 기술되고 설명될 것이다. 도면들에서:
도 1은 본 발명의 일 실시예에 따른 로봇 프로세스 자동화(RPA) 시스템을 예시하는 아키텍처 도면이다.
도 2는 본 발명의 일 실시예에 따른 배치된 RPA 시스템을 예시하는 아키텍처 도면이다.
도 3은 본 발명의 일 실시예에 따른 설계자, 활동들 및 드라이버들 간의 관계를 예시하는 아키텍처 도면이다.
도 4는 본 발명의 일 실시예에 따른 RPA 시스템을 예시하는 아키텍처 도면이다.
도 5는 본 발명의 일 실시예에 따른, 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술 및/또는 애플리케이션 또는 UI 유형에 의해 구성된 하나 이상의 디폴트 타겟팅 방법들을 사용하여 그래픽 요소 검출을 수행하도록 구성된 컴퓨팅 시스템을 예시하는 아키텍처 도면이다.
도 6a 내지 도 6g는 본 발명의 일 실시예에 따른, RPA 설계자 애플리케이션에 대한 통합 타겟 구성 인터페이스를 예시한다.
도 7a 내지 도 7c는 본 발명의 일 실시예에 따른, 애플리케이션 및/또는 UI 유형 레벨에서 타겟팅 방법들을 구성하기 위한 타겟팅 방법 구성 인터페이스를 도시한다.
도 8은 본 발명의 일 실시예에 따른, RPA 작업 흐름에서 활동들에 대한 통합 타겟 기능을 구성하기 위한 프로세스를 예시하는 흐름도이다.
도 9a 및 9b는 본 발명의 일 실시예에 따른, 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술을 사용하는 그래픽 요소 검출을 위한 프로세스를 예시하는 흐름도들이다.
도 10a 및 도 10b는, 본 발명의 일 실시예에 따른, 디폴트 그래픽 요소 검출 기술을 구성하고, 애플리케이션 및/또는 UI 유형 레벨에서 그래픽 요소 검출을 수행하기 위한 프로세스의 설계 시간 부분 및 실행 시간 부분을 각각 예시하는 흐름도들이다.
달리 표시되지 않는 한, 첨부 도면들 전체에 걸쳐 유사한 참조 문자들은 일관되게 대응하는 특징들을 나타낸다.
일부 실시예들은 복수의 그래픽 요소 검출 기술(예를 들어, 선택기, CV, OCR 등)을 잠재적으로 사용하는 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술을 사용하는 그래픽 요소 검출에 관한 것이다. "그래픽 요소들" 및 "UI 요소들"은 본 명세서에서 상호 교환 가능하게 사용된다. UI 디스크립터들은 그들의 코어에서 UI 요소들(예를 들어, 텍스트 필드, 버튼, 라벨, 메뉴, 체크박스 등)을 식별한다. 일부 유형들의 UI 디스크립터들은 선택기들, CV 디스크립터들, 이미지 매칭 디스크립터들, OCR 디스크립터들, 직렬로 또는 병렬로 다수의 상이한 유형들의 UI 디스크립터들을 이용할 수 있는 통합 타겟 디스크립터들 등을 포함하지만, 이에 제한되지 않는다. UI 디스크립터들은 UI에서 실행 시간에 발견되는 UI 요소들의 속성들과 주어진 UI 디스크립터에 대한 속성들을 비교하는 데 사용될 수 있다.
일부 실시예들에서, UI 디스크립터들은 각각의 UI 요소 및 그의 부모들의 속성들을 확장형 마크업 언어(XML) 프래그먼트에 저장한다. 실행 시간에, UI에서 발견되는 UI 요소들에 대한 속성들은 각각의 RPA 작업 흐름 활동에 대한 속성들과의 매칭들을 위해 검색될 수 있고, 정확한 매칭 또는 "충분히 가까운" 매칭이 매칭 임계치 내에서 발견되면, UI 요소는 그에 따라 식별되고 상호작용될 수 있다. 속성들은 텍스트 기반 식별자들(ID들), 클래스들, 역할들 등을 포함할 수 있다. CV의 경우, 속성들은 타겟 요소의 유형 및 멀티 앵커 매칭 접근법에서 사용될 수 있는 하나 이상의 앵커 요소에 대한 관계를 포함할 수 있다. OCR의 경우, 속성들은, 예를 들어, 저장된 스트링의 형태로 된 텍스트, 및 저장된 스트링이 실행 동안에 퍼지 매칭된 OCR을 통해 발견된 텍스트를 포함할 수 있다. 임의의 적절한 속성들 및 그래픽 요소 검출 기술들이 본 발명의 범위로부터 벗어나지 않고서 사용될 수 있다.
본 명세서에서 사용될 때, "스크린"은 특정 시점에서의 애플리케이션 UI 또는 애플리케이션 UI의 일부의 이미지이다. 일부 실시예들에서, UI 요소들 및 스크린들은 특정 유형들의 UI 요소들(예를 들어, 버튼들, 체크박스들, 텍스트 필드들 등) 및 스크린들(예를 들어, 상부 윈도들, 모달 윈도우들, 팝업 윈도들 등)로 더 구별될 수 있다.
일부 실시예들은 UI 요소 및 그 부모들의 속성들을 XML 프래그먼트에 저장하는 UI 디스크립터들을 사용한다. 현대의 컴퓨팅 시스템들에서, 운영 체제는 통상적으로 각각의 사용자 인터페이스를 일반적으로 UI 트리로 지칭되는 계층적 데이터 구조로서 나타낸다. 예시적인 UI 트리는 웹 브라우저 애플리케이션에 의해 렌더링된 웹페이지에 기초하는 문서 객체 모델(DOM)을 포함할 수 있다.
선택기들은 일부 실시예들에서 UI 요소들을 검출하는 데 사용될 수 있는 유형의 UI 디스크립터이다. 일부 실시예들에서, 선택기는 다음의 구조를 갖는다.
<node_1/><node_2/>...<node_N/>
마지막 노드는 관심 있는 GUI 요소를 나타내고, 모든 이전 노드들은 그 요소의 부모들을 나타낸다. <node_1>은 보통 루트 노드라고 지칭되고, 애플리케이션의 상부 윈도우를 나타낸다.
각각의 노드는 선택된 애플리케이션의 특정 레벨의 정확한 식별을 돕는 하나 이상의 속성을 가질 수 있다. 각각의 노드는 일부 실시예들에서 다음의 포맷을 갖는다.
<ui_system attr_name_1='attr_value_1'... attr_name_N='attr_value_N'/>
모든 속성은 할당된 값을 가질 수 있고, 상수 값들을 갖는 속성들이 선택될 수 있다. 이것은 애플리케이션이 시작될 때마다 속성의 값에 대한 변경들이 선택기가 연관된 요소를 정확하게 식별할 수 없게 할 수 있기 때문이다.
UI 디스크립터는 UI 요소를 발견하기 위한 명령어들의 세트이다. 일부 실시예들에서 UI 디스크립터들은 UI 요소 선택기(들), 앵커 선택기(들), CV 디스크립터(들), OCR 디스크립터(들), 2개 이상의 유형의 UI 디스크립터들을 결합하는 통합 타겟 디스크립터(들), 스크린 이미지 캡처(컨텍스트), 요소 이미지 캡처, 다른 메타데이터(예를 들어, 애플리케이션 및 애플리케이션 버전), 이들의 조합 등을 포함하는 캡슐화된 데이터/구조 포맷이다. 캡슐화된 데이터/구조 포맷은 플랫폼에 대한 미래의 업데이트들로 확장 가능할 수 있고 위의 정의로 제한되지 않는다. 스크린 상의 UI 요소를 식별하기 위한 임의의 적절한 UI 디스크립터가 본 발명의 범위로부터 벗어나지 않고서 사용될 수 있다. UI 디스크립터들은 RPA 작업 흐름에서의 활동들로부터 추출되고, UI 애플리케이션들, 스크린들 및 UI 요소들에 의해 UI 디스크립터들을 그룹화하는 구조화된 스키마에 추가될 수 있다.
UI 디스크립터들은 일부 실시예들에서 이미지 검출 및 정의를 수행하는 다수의 또는 모든 UI 요소 검출 메커니즘들을 포함하는 통합 타겟과 함께 작동할 수 있다. 통합 타겟은 UI 요소들을 식별하고 자동화하는 다수의 기술을 단일의 응집 접근법으로 병합할 수 있다. 통합 타겟 디스크립터는 다수의 유형들의 UI 디스크립터들을 직렬로 함께 체인화하고, 이들을 병렬로 사용하거나, 일정 기간 동안 적어도 하나의 기술(예를 들어, 선택기)을 먼저 사용하고, 이어서 제1 기술이 일정 기간 내에 매칭을 발견하지 못하는 경우에는 적어도 하나의 다른 기술을 병렬로 또는 대안적으로 실행한다. 일부 실시예들에서, 통합 타겟 디스크립터는 유한 상태 머신(FSM)과 같이 기능할 수 있고, 이 경우에는 제1 컨텍스트에서 제1 UI 디스크립터 메커니즘이 적용되고, 제2 컨텍스트에서 제2 UI 디스크립터가 적용되고, 기타 등등이다. 통합 타겟은 일부 실시예들에서 처음 2개의 메커니즘이 성공적이지 못한 경우에는 선택기 기반 및 드라이버 기반 UI 검출 메커니즘들을 우선순위화하고, CV, 이미지 매칭 및/또는 다른 메커니즘들에 의존하여 그래픽 요소를 발견할 수 있다.
일부 실시예들에서, 하나 이상의 속성들이 특정 정밀도(예를 들어, 70% 매칭, 80% 매칭, 99% 매칭 등)로, 특정 범위 내에서, 스트링 매트릭들(예를 들어, 레벤시테인 거리, 해밍 거리, 자로-윙클러 거리 등)을 사용하여, 이들의 조합 등으로 매칭되어야 하는 경우에 퍼지 매칭이 사용될 수 있다. 이 분야의 통상의 기술자는 유사성 척도가 유사성의 양뿐만 아니라 2개의 속성 값 사이의 미스매칭의 양도 정량화할 수 있다는 것을 이해할 것이다. 또한, 다양한 실시예들에서, 유사성 임계치는 미스매칭의 최대 양 또는 매칭에 필요한 유사성의 최소 양을 나타낼 수 있다.
유사성 척도를 계산하는 선택된 방식에 따라, 유사성 임계치는 다양한 해석들을 가질 수 있다. 예를 들어, 유사성 임계치는 2개의 스트링 사이에서 상이할 수 있는 문자들의 최대 카운트 또는 문자들의 총 카운트(예를 들어, 결합된 스트링 길이)의 비율로서 계산된 미스매칭의 분율(fractional degree)을 나타낼 수 있다. 일부 실시예들에서, 유사성 임계치는 0 내지 1, 0 내지 100, 7 내지 34 등과 같이 미리 결정된 간격으로 리스케일링될 수 있다. 하나의 비제한적인 예에서, 비교적 높은 유사성 임계치(예를 들어, 1 또는 100%에 가까움)은 거의 정확한 매칭에 대한 요건을 나타내는데, 즉 실행 시간 타겟에서의 퍼지 속성의 값은 설계 시간 타겟에서의 각각의 속성의 값으로부터 매우 약간 벗어나는 것만이 허용된다. 대조적으로, 유사성 임계치가 상대적으로 낮을 때(예를 들어, 0에 가까움), 각각의 퍼지 속성의 거의 모든 값들은 매칭으로서 간주된다.
특정 실시예들에서, 매칭 허용한계는 속성마다 상이할 수 있다. 예를 들어, 하나 이상의 속성들에 대해 정확한 매칭이 요구될 수 있고(예를 들어, 특정의 정확한 명칭을 찾는 것이 요구될 수 있음), 하나 이상의 다른 속성들에 대해 퍼지 매칭이 수행될 수 있다. 각각의 그래픽 요소 검출 기술로부터 사용되는 속성들의 수 및/또는 유형은 일부 실시예들에서 RPA 개발자에 의해 맞춤 지정될 수 있다.
일부 실시예들에서, 속성들은 속성-값 쌍들 및/또는 속성-값-허용한계 쌍들(예를 들어, 퍼지 매칭)로서 저장될 수 있다. 속성-값 쌍들은 일부 실시예들에서 각각의 노드에 의해 표현되는 UI 요소의 명칭 및 유형을 나타낼 수 있다. 그러나, 이 분야의 통상의 기술자는 본 발명의 범위로부터 벗어나지 않고서 속성-값 쌍들의 리스트 이외에도 UI 트리 내의 특정 노드의 위치를 나타내기 위한 다수의 방법이 있을 수 있다는 것을 알 것이다.
이러한 속성-값 쌍들 및/또는 속성-값-허용한계 쌍들은 일부 실시예들에서 태그에 저장될 수 있고, 각각의 태그는 문자들의 시퀀스를 포함할 수 있고, 시퀀스는 구현-고유 구분자들에 의해 북엔딩(book-ending)될 수 있다(예를 들어, "<"로 시작하고 "/>"로 끝남). 속성-값 쌍들은 일부 실시예들에서 각각의 노드에 의해 표현되는 UI 요소의 명칭 및 유형을 표시할 수 있다. 그러나, 이 분야의 통상의 기술자는 본 발명의 범위로부터 벗어나지 않고서 속성-값 쌍들의 리스트 이외에도 UI 트리 내의 특정 노드의 위치를 나타내기 위한 다수의 방법이 있을 수 있다는 것을 알 것이다.
RPA 로봇에 의한 성공적이고 이상적으로 명확한 식별을 가능하게 하기 위해, 일부 실시예들은 각각의 UI 요소를 특성화하는 요소 ID를 사용하여 각각의 UI 요소를 나타낸다. 일부 실시예들에서 요소 ID는 UI 트리 내의 타겟 노드의 위치를 나타내고, 타겟 노드는 각각의 UI 요소를 나타낸다. 예를 들어, 요소 ID는 노드들의 선택된 서브세트의 멤버로서 타겟 노드/UI 요소를 식별할 수 있다. 노드들의 선택된 서브세트는 각각의 노드가 다른 노드의 조상 또는 후손인 UI 트리를 통해 계보, 즉 적통을 형성할 수 있다.
일부 실시예들에서, 요소 ID는 노드 표시자들의 순서화된 시퀀스를 포함하고, 시퀀스는 UI 트리를 통해 계보 경로를 추적하고, 경로는 각각의 타겟 노드/UI 요소에서 끝난다. 각각의 노드 표시자는 각각의 UI의 객체 계층구조의 멤버 및 각각의 계층구조와 부합하는 시퀀스 내의 그의 포지션을 나타낼 수 있다. 예를 들어, 시퀀스의 각각의 멤버는 이전 멤버의 후손(예를 들어, 자식 노드)을 나타낼 수 있고, 후손(예를 들어, 자식 노드)으로서 다음 멤버를 가질 수 있다. 하나의 하이퍼텍스트 마크업 언어(HTML) 예에서, 개별 형태 필드(form field)를 나타내는 요소 ID는 각각의 형태 필드가 HTML 형태의 자식이고, 이는 또한 웹페이지의 특정 섹션의 자식이고, 기타 등등이라는 것을 나타낼 수 있다. 계보는 일부 실시예들에서 완전할 필요가 없다.
일부 실시예들은 하나 이상의 멀티-앵커 매칭 속성들을 사용할 수 있다. 앵커들은 타겟 UI 요소를 고유하게 식별하는 데 도움을 주기 위해 사용될 수 있는 다른 UI 요소들이다. 예를 들어, UI에 다수의 텍스트 필드들이 포함되는 경우, 텍스트 필드만을 검색하는 것은 주어진 텍스트 필드를 고유하게 식별하기에 불충분하다. 따라서, 일부 실시예들은 주어진 UI 요소를 고유하게 식별하기 위해 추가 정보를 찾는다. 텍스트 필드 예를 사용하면, 제1 명칭을 입력하기 위한 텍스트 필드가 라벨 "제1 명칭(First Name)"의 우측에 나타날 수 있다. 이 제1 명칭 라벨은 "타겟"인 텍스트 필드를 고유하게 식별하는 것을 돕기 위한 "앵커"로서 설정될 수 있다.
일부 실시예들에서, 타겟을 고유하게 식별하기 위해, 타겟과 앵커 사이의 다양한 포지션 및/또는 기하학적 연관성들이 잠재적으로 하나 이상의 허용한계 내에서 사용될 수 있다. 예를 들어, 앵커 및 타겟에 대한 경계 박스들의 중심은 라인 세그먼트를 정의하는 데 사용될 수 있다. 이어서, 이 라인 세그먼트는 타겟/앵커 쌍을 사용하여 타겟을 고유하게 식별하기 위해 허용한계 내의 특정 길이 및/또는 허용한계 내의 기울기를 갖도록 요구될 수 있다. 그러나, 타겟 및/또는 앵커들과 연관된 위치의 임의의 원하는 포지션은 본 발명의 범위로부터 벗어나지 않고서 일부 실시예들에서 사용될 수 있다. 예를 들어, 라인 세그먼트들을 그리기 위한 포인트는 중심, 좌상 코너, 우상 코너, 좌하 코너, 우하 코너, 경계 박스의 경계 상의 임의의 다른 위치, 경계 박스 내의 임의의 위치, 경계 박스 특성들과 관련하여 식별되는 바와 같은 경계 박스 외부의 위치 등에 있을 수 있다. 특정 실시예들에서, 타겟 및 하나 이상의 앵커들은 기하학적 매칭을 위해 사용되는 그들의 경계 박스들 내의 또는 밖의 상이한 위치들을 가질 수 있다.
위에서, 단일 앵커는 특정 신뢰도로 스크린 상의 타겟 요소를 고유하게 식별하기에 항상 충분하지는 않을 수 있다. 예를 들어, 제1 명칭을 입력하기 위한 2개의 텍스트 필드가 스크린 상의 상이한 위치들에서 각각의 라벨 "제1 명칭"의 우측에 나타나는 웹 형태를 고려한다. 이 예에서, 주어진 타겟을 고유하게 식별하기 위해 하나 이상의 추가 앵커가 유용할 수 있다. 앵커들과 타겟 사이의 기하학적 특성들(예를 들어, 라인 세그먼트 길이들, 각도들 및/또는 허용한계들을 갖는 상대 위치들)은 타겟을 고유하게 식별하기 위해 사용될 수 있다. 사용자는 타겟에 대한 매칭 강도가 임계치를 초과할 때까지 앵커들을 계속 추가하도록 요구될 수 있다.
본 명세서에서 사용되는 바와 같이, "사용자" 및 "개발자"라는 용어들은 상호 교환 가능하게 사용된다. 사용자/개발자는 프로그래밍 및/또는 기술 지식을 갖거나 갖지 않을 수 있다. 예를 들어, 일부 실시예들에서, 사용자/개발자는 수동 코딩 없이 RPA 작업 흐름에서 활동들을 구성함으로써 RPA 작업 흐름들을 생성할 수 있다. 특정 실시예들에서, 이것은 예를 들어 다양한 특징들을 클릭하고 드래그하고 드롭함으로써 행해질 수 있다.
일부 실시예들에서, 디폴트 UI 요소 검출 기술(본 명세서에서 "타겟팅 방법"이라고도 함)은 애플리케이션 및/또는 UI 유형 레벨에서 구성될 수 있다. 주어진 애플리케이션 및/또는 UI 유형에 대해 양호하게 작동하는 UI 요소 검출 기술들은 다른 애플리케이션 및/또는 UI 유형에 대해서는 양호하게 작동하지 않을 수 있다. 예를 들어, 자바(등록상표) 윈도우에 대해 양호하게 작동하는 기술들은 웹 브라우저 윈도우에 대해서는 양호하게 작동하지 않을 수 있다. 따라서, 사용자는 주어진 애플리케이션 및/또는 UI 유형에 대한 가장 효과적인 기술(들)을 사용하도록 RPA 로봇을 구성할 수 있다.
특정 실시예들은 로봇 프로세스 자동화(RPA)를 위해 사용될 수 있다. 도 1은 본 발명의 일 실시예에 따른 RPA 시스템(100)을 예시하는 아키텍처 도면이다. RPA 시스템(100)은 개발자가 작업 흐름들을 설계하고 구현할 수 있게 하는 설계자(110)를 포함한다. 설계자(110)는 애플리케이션 통합을 위한 솔루션을 제공할 뿐만 아니라, 제3자 애플리케이션들, 관리 정보 기술(IT) 태스크들 및 비즈니스 IT 프로세스들을 자동화할 수 있다. 설계자(110)는 비즈니스 프로세스의 그래픽 표현인 자동화 프로젝트의 개발을 용이하게 할 수 있다. 간단히 말해서, 설계자(110)는 작업 흐름들 및 로봇들의 개발 및 배치를 용이하게 한다.
자동화 프로젝트는 본 명세서에서 "활동들"로서 정의되는, 작업 흐름에서 개발된 단계들의 맞춤 세트 간의 실행 순서 및 관계의 개발자 제어를 제공함으로써 규칙 기반 프로세스들의 자동화를 가능하게 한다. 설계자(110)의 일 실시예의 하나의 상업적 예는 UiPath Studio(상표)이다. 각각의 활동은 버튼을 클릭하는 것, 파일을 판독하는 것, 로그 패널에 기입하는 것 등과 같은 액션을 포함할 수 있다. 일부 실시예들에서, 작업 흐름들은 내포 또는 내장될 수 있다.
일부 유형들의 작업 흐름들은 시퀀스들, 흐름도들, FSM들, 및/또는 전역적 예외 핸들러들을 포함할 수 있지만, 이들로 제한되지 않는다. 시퀀스들은 선형 프로세스들에 특히 적합할 수 있어서, 작업 흐름을 혼란하게 하지 않고서 하나의 활동으로부터 다른 활동으로의 흐름을 가능하게 한다. 흐름도들은 더 복잡한 비즈니스 논리에 특히 적합할 수 있어서, 다수의 분기 논리 연산자들을 통해 더 다양한 방식으로 결정들의 통합 및 활동들의 연결을 가능하게 한다. FSM들은 큰 작업 흐름들에 특히 적합할 수 있다. FSM들은 그들의 실행에서 유한한 수의 상태들을 사용할 수 있는데, 이들은 조건(즉, 천이) 또는 활동에 의해 트리거된다. 전역적 예외 핸들러들은 실행 에러를 만날 때 작업 흐름 거동을 결정하고, 프로세서들을 디버깅하는 데 특히 적합할 수 있다.
작업 흐름이 설계자(110)에서 개발되면, 비즈니스 프로세스들의 실행은 설계자(110)에서 개발되는 작업 흐름들을 실행하는 하나 이상의 로봇들(130)을 지휘하는 지휘자(120)에 의해 지휘된다. 지휘자(120)의 일 실시예의 하나의 상업적 예는 UiPath Orchestrator(상표)이다. 지휘자(120)는 환경에서 자원들의 생성, 모니터링 및 배치의 관리를 용이하게 한다. 지휘자(120)는 제3자 솔루션들 및 애플리케이션들과 함께 통합 포인트 또는 집성 포인트들 중 하나로서 작용할 수 있다.
지휘자(120)는 로봇들(130)의 무리를 관리하고, 집중 포인트로부터 로봇들(130)을 연결하고 실행할 수 있다. 관리될 수 있는 로봇들(130)의 유형들은 유인 로봇(attended robot)(132), 무인 로봇(134), (무인 로봇(134)과 유사하지만 개발 및 시험 목적으로 사용되는) 개발 로봇, 및 (유인 로봇(132)과 유사하지만 개발 및 시험 목적으로 사용되는) 비생산 로봇을 포함하지만, 이에 한정되지 않는다. 유인 로봇들(132)은 사용자 이벤트들에 의해 트리거될 수 있거나 자동으로 발생하도록 스케줄링되고, 동일한 컴퓨팅 시스템 상에서 사람과 함께 동작할 수 있다. 유인 로봇들(132)은 집중 프로세스 배치 및 로깅 매체를 위해 지휘자(120)와 함께 사용될 수 있다. 유인 로봇들(132)은 인간 사용자가 다양한 태스크들을 완수하는 것을 도울 수 있고, 사용자 이벤트에 의해 트리거될 수 있다. 일부 실시예들에서, 프로세스들은 이러한 유형의 로봇 상에서 지휘자(120)로부터 시작될 수 없고/있거나, 잠긴 스크린 하에서는 실행될 수 없다. 특정 실시예들에서, 유인 로봇들(132)은 오직 로봇 트레이로부터 또는 커맨드 프롬프트로부터 시작될 수 있다. 일부 실시예들에서, 유인 로봇들(132)은 사람의 감독 하에서 실행되어야 한다.
무인 로봇들(134)은 가상 환경들에서 또는 물리적 머신들 상에서 사람 없이 실행되고, 많은 프로세스들을 자동화할 수 있다. 무인 로봇들(134)은 작업 큐들에 대한 원격 실행, 모니터링, 스케줄링 및 지원 제공을 담당할 수 있다. 일부 실시예들에서, 모든 로봇 유형들에 대한 디버깅은 설계자(110)로부터 실행될 수 있다. 유인 및 무인 로봇들 둘 다는 메인프레임, 웹 애플리케이션, VM, 엔터프라이즈 애플리케이션(예를 들어, SAP(등록상표), SalesForce(등록상표), Oracle(등록상표) 등에 의해 생성된 것들), 및 컴퓨팅 시스템 애플리케이션(예를 들어, 데스크톱 및 랩톱 애플리케이션, 모바일 디바이스 애플리케이션, 웨어러블 컴퓨터 애플리케이션 등)을 포함하지만 이에 제한되지 않는 다양한 시스템 및 애플리케이션을 자동화할 수 있다.
지휘자(120)는 프로비저닝, 배치, 버저닝, 구성, 큐잉, 모니터링, 로깅, 및/또는 상호 연결성 제공을 포함하지만 이에 한정되지 않는 다양한 능력을 가질 수 있다. 프로비저닝은 로봇들(130)과 지휘자(120)(예를 들어, 웹 애플리케이션) 사이의 연결의 생성 및 유지를 포함할 수 있다. 배치는 실행을 위해 할당된 로봇들(130)에 대한 패키지 버전들의 정확한 전달을 보장하는 것을 포함할 수 있다. 버저닝은 일부 실시예들에서 소정의 프로세스 또는 구성의 고유한 인스턴스들의 관리를 포함할 수 있다. 구성은 로봇 환경들 및 프로세스 구성들의 유지 및 전달을 포함할 수 있다. 큐잉은 큐들 및 큐 아이템들의 관리를 제공하는 것을 포함할 수 있다. 모니터링은 로봇 식별 데이터를 추적하고 사용자 허가들을 유지하는 것을 포함할 수 있다. 로깅은 데이터베이스(예를 들어, SQL 데이터베이스) 및/또는 다른 저장 메커니즘(예를 들어, 큰 데이터 세트들을 저장하고 신속하게 조회하는 능력을 제공하는, ElasticSearch(등록상표))에 로그들을 저장하고 인덱싱하는 것을 포함할 수 있다. 지휘자(120)는 제3자 솔루션들 및/또는 애플리케이션들에 대한 통신의 집중 포인트로서 작용함으로써 상호연결성을 제공할 수 있다.
로봇들(130)은 설계자(110)에 내장된 작업 흐름들을 실행하는 실행 에이전트들이다. 로봇(들)(130)의 일부 실시예들의 하나의 상업적 예는 UiPath Robots(상표)이다. 일부 실시예들에서, 로봇들(130)은 디폴트로 Microsoft Windows(등록상표) 서비스 제어 관리자(SCM) 관리 서비스를 설치한다. 그 결과, 그러한 로봇들(130)은 로컬 시스템 계정 하에서 상호작용 Windows(등록상표) 세션들을 개방할 수 있고, Windows(등록상표) 서비스의 권리들을 가질 수 있다.
일부 실시예들에서, 로봇들(130)은 사용자 모드로 설치될 수 있다. 이러한 로봇들(130)의 경우, 이것은 그들이 주어진 로봇(130)이 설치된 사용자와 동일한 권리들을 갖는다는 것을 의미한다. 이 특징은 또한, 그의 최대 잠재력에서 각각의 기계의 완전한 이용을 보장하는 고밀도(HD) 로봇들에 대해 이용가능할 수 있다. 일부 실시예들에서, 임의의 유형의 로봇(130)이 HD 환경에서 구성될 수 있다.
일부 실시예들에서 로봇들(130)은 여러 컴포넌트로 분할되고, 각각의 컴포넌트는 특정 자동화 태스크에 전용화된다. 일부 실시예들에서 로봇 컴포넌트들은 SCM-관리 로봇 서비스들, 사용자 모드 로봇 서비스들, 실행자들, 에이전트들, 및 커맨드 라인을 포함하지만, 이들로 제한되지 않는다. SCM-관리 로봇 서비스들은 Windows(등록상표) 세션들을 관리하고 모니터링하며, 지휘자(120)와 실행 호스트들(즉, 로봇들(130)이 실행되는 컴퓨팅 시스템들) 사이의 프록시로서 작용한다. 이러한 서비스들은 로봇들(130)에 대한 크리덴셜들로 신뢰되고 그것들을 관리한다. 콘솔 애플리케이션은 로컬 시스템 하에서 SCM에 의해 론칭된다.
사용자 모드 로봇 서비스들은 일부 실시예들에서 Windows(등록상표) 세션들을 관리하고 모니터링하며, 지휘자(120)와 실행 호스트들 사이에서 프록시로서 작용한다. 사용자 모드 로봇 서비스들은 로봇들(130)에 대한 크리덴셜들로 신뢰되고, 그것들을 관리할 수 있다. SCM-관리 로봇 서비스가 설치되지 않은 경우, Windows(등록상표) 애플리케이션이 자동으로 론칭될 수 있다.
실행자들은 Windows(등록상표) 세션 하에서 주어진 작업들을 실행할 수 있다(즉, 그들은 작업 흐름들을 실행할 수 있다). 실행자들은 모니터별 인치당 도트(DPI) 설정들을 알 수 있다. 에이전트들은 이용가능한 작업들을 시스템 트레이 윈도우에 디스플레이하는 Windows(등록상표) 프리젠테이션 파운데이션(WPF) 애플리케이션들일 수 있다. 에이전트들은 서비스의 클라이언트일 수 있다. 에이전트들은 작업들을 시작 또는 중지하고 설정들을 변경하도록 요청할 수 있다. 커맨드 라인은 서비스의 클라이언트이다. 커맨드 라인은 작업들을 시작하도록 요청할 수 있고 그들의 출력을 기다리는 콘솔 애플리케이션이다.
로봇들(130)의 컴포넌트들을 전술한 바와 같이 분할하는 것은 개발자들, 지원 사용자들 및 컴퓨팅 시스템들이 각각의 컴포넌트가 실행하고 있는 것을 더 쉽게 실행하고, 식별하고, 추적하는 것을 돕는다. 특정 거동들은 실행자 및 서비스에 대한 상이한 방화벽 규칙들을 설정하는 것과 같이, 이러한 방식으로 컴포넌트별로 구성될 수 있다. 일부 실시예들에서, 실행자는 모니터별 DPI 설정들을 항상 알 수 있다. 그 결과, 작업 흐름들은 그들이 생성된 컴퓨팅 시스템의 구성에 관계없이 임의의 DPI에서 실행될 수 있다. 설계자(110)로부터의 프로젝트들은 또한 일부 실시예들에서 브라우저 줌 레벨과 무관할 수 있다. DPI를 인식하지 못하거나 인식하지 못하는 것으로서 의도적으로 마킹된 애플리케이션들에 대해, DPI는 일부 실시예들에서 디스에이블될 수 있다.
도 2는 본 발명의 일 실시예에 따른, 배치된 RPA 시스템(200)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, RPA 시스템(200)은 도 1의 RPA 시스템(100) 일 수 있거나 그 일부일 수 있다. 클라이언트 측, 서버 측 또는 양측은 본 발명의 범위를 벗어나지 않고서 임의의 원하는 수의 컴퓨팅 시스템들을 포함할 수 있다는 점에 유의해야 한다. 클라이언트 측에서, 로봇 애플리케이션(210)은 실행자들(212), 에이전트(214) 및 설계자(216)를 포함한다. 그러나, 일부 실시예들에서, 설계자(216)는 컴퓨팅 시스템(210) 상에서 실행되지 않을 수 있다. 실행자들(212)은 실행중인 프로세스들이다. 도 2에 도시된 바와 같이, 여러 비즈니스 프로젝트들이 동시에 실행될 수 있다. 에이전트(214)(예를 들어, Windows(등록상표) 서비스)는 이 실시예에서 모든 실행자들(212)에 대한 단일 접촉 포인트이다. 이 실시예에서 모든 메시지들은 지휘자(230)에 로그인되고, 이 지휘자는 데이터베이스 서버(240), 인덱서 서버(250) 또는 둘 모두를 통해 그들을 더 처리한다. 도 1과 관련하여 전술한 바와 같이, 실행자들(212)은 로봇 컴포넌트들일 수 있다.
일부 실시예들에서, 로봇은 머신 명칭과 사용자 명칭 사이의 연관성을 나타낸다. 로봇은 동시에 다수의 실행자를 관리할 수 있다. 동시에 실행되는 다수의 상호작용 세션을 지원하는 컴퓨팅 시스템들(예를 들어, Windows(등록상표) Server 2012)에서, 다수의 로봇들은 각각 고유 사용자 명칭을 사용하는 개별 Windows(등록상표) 세션에서 동시에 실행될 수 있다. 이것은 전술한 HD 로봇들로서 지칭된다.
에이전트(214)는 또한 로봇의 상태를 송신하는 것(예를 들어, 로봇이 여전히 기능하고 있음을 나타내는 "하트비트" 메시지를 주기적으로 송신하는 것) 및 실행될 패키지의 요구된 버전을 다운로드하는 것을 담당한다. 에이전트(214)와 지휘자(230) 사이의 통신은 일부 실시예들에서 항상 에이전트(214)에 의해 개시된다. 통지 시나리오에서, 에이전트(214)는 지휘자(230)에 의해 로봇에 커맨드들(시작, 정지 등)을 송신하기 위해 나중에 사용되는 웹소켓 채널을 열 수 있다.
서버 측에서, 제시 계층(웹 애플리케이션(232), 오픈 데이터 프로토콜(OData) 대표 상태 전달(REST) 애플리케이션 프로그래밍 인터페이스(API) 엔드포인트들(234) 및 통지 및 모니터링(236)), 서비스 계층(API 구현/비즈니스 논리(238)), 및 지속성 계층(데이터베이스 서버(240) 및 인덱서 서버(250))이 포함된다. 지휘자(230)는 웹 애플리케이션(232), ODtata REST API 엔드포인트들(234), 통지 및 모니터링(236) 및 API 구현/비즈니스 논리(238)를 포함한다. 일부 실시예들에서, 사용자가 지휘자(230)의 인터페이스에서 (예를 들어, 브라우저(220)를 통해) 수행하는 대부분의 액션들은 다양한 API들을 호출함으로써 수행된다. 이러한 액션들은 본 발명의 범위로부터 벗어나지 않고서 로봇 상에서 작업들을 시작하는 것, 큐들에 데이터를 추가/제거하는 것, 사람 없이 수행할 작업들을 스케줄링하는 것 등을 포함할 수 있지만, 이들로 제한되지 않는다. 웹 애플리케이션(232)은 서버 플랫폼의 시각 계층이다. 이 실시예에서, 웹 애플리케이션(232)은 하이퍼텍스트 마크업 언어(HTML) 및 자바스크립트(JS)를 사용한다. 그러나, 임의의 원하는 마크업 언어들, 스크립트 언어들, 또는 임의의 다른 포맷들이 본 발명의 범위로부터 벗어나지 않고서 사용될 수 있다. 사용자는 지휘자(230)를 제어하기 위한 다양한 액션들을 수행하기 위해 이 실시예에서 브라우저(220)를 통해 웹 애플리케이션(232)으로부터의 웹 페이지들과 상호작용한다. 예를 들어, 사용자는 로봇 그룹들을 생성하고, 패키지들을 로봇들에 할당하고, 로봇별로 그리고/또는 프로세스별로 로그들을 분석하고, 로봇들을 시작 및 정지시키고, 기타 등등을 수행할 수 있다.
웹 애플리케이션(232)에 더하여, 지휘자(230)는 또한 OData REST API 엔드포인트들(234)을 노출시키는 서비스 계층을 포함한다. 그러나, 본 발명의 범위로부터 벗어나지 않고서 다른 엔드포인트들이 포함될 수 있다. REST API는 웹 애플리케이션(232) 및 에이전트(214) 둘 다에 의해 소비된다. 에이전트(214)는 이 실시예에서 클라이언트 컴퓨터 상의 하나 이상의 로봇의 감독자이다.
이 실시예에서 REST API는 구성, 로깅, 모니터링 및 큐잉 기능을 커버한다. 구성 엔드포인트들은 일부 실시예들에서 애플리케이션 사용자들, 허가들, 로봇들, 자산들, 릴리스들, 및 환경들을 정의하고 구성하는 데 사용될 수 있다. 로깅 REST 엔드포인트들은 예를 들어 에러들, 로봇들에 의해 송신된 명시적 메시지들 및 다른 환경-고유 정보와 같은 상이한 정보를 로깅하는 데 사용될 수 있다. 배치 REST 엔드포인트들은 작업 시작 커맨드가 지휘자(230)에서 사용되는 경우에 실행되어야 하는 패키지 버전을 조회하기 위해 로봇들에 의해 사용될 수 있다. 큐잉 REST 엔드포인트들은 큐에 데이터를 추가하는 것, 큐로부터 트랜잭션을 획득하는 것, 트랜잭션의 상태를 설정하는 것 등과 같은 큐들 및 큐 아이템 관리를 담당할 수 있다.
모니터링 REST 엔드포인트들은 웹 애플리케이션(232) 및 에이전트(214)를 모니터링할 수 있다. 통지 및 모니터링 API(236)는 에이전트(214)를 등록하고, 에이전트(214)에게 구성 설정을 전달하고, 서버 및 에이전트(214)로부터 통지를 송신/수신하기 위해 사용되는 REST 엔드포인트일 수 있다. 통지 및 모니터링 API(236)는 또한 일부 실시예들에서 웹소켓 통신을 사용할 수 있다.
지속성 계층은 이 실시예에서 한 쌍의 서버 - 데이터베이스 서버(240)(예를 들어, SQL 서버) 및 인덱서 서버(250) -를 포함한다. 이 실시예에서 데이터베이스 서버(240)는 로봇, 로봇 그룹, 연관된 프로세스, 사용자, 역할, 스케줄 등의 구성을 저장한다. 이 정보는 일부 실시예들에서 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐들 및 큐 아이템들을 관리할 수 있다. 일부 실시예들에서, 데이터베이스 서버(240)는 (인덱서 서버(250)에 더하여 또는 그 대신에) 로봇들에 의해 로깅된 메시지들을 저장할 수 있다.
일부 실시예들에서 선택적인 인덱서 서버(250)는 로봇들에 의해 로깅된 정보를 저장하고 인덱싱한다. 특정 실시예들에서, 인덱서 서버(250)는 구성 설정들을 통해 디스에이블될 수 있다. 일부 실시예들에서, 인덱서 서버(250)는 오픈 소스 프로젝트 풀-텍스트 검색 엔진인 ElasticSearch(등록상표)를 사용한다. 로봇들에 의해 (예를 들어, 로그 메시지 또는 기입 라인과 같은 활동들을 사용하여) 로깅된 메시지들은 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(250)로 송신될 수 있으며, 여기서 그들은 미래의 사용을 위해 인덱싱된다.
도 3은 본 발명의 일 실시예에 따른, 설계자(310), 활동들(320,330) 및 드라이버들(340) 사이의 관계(300)를 예시하는 아키텍처 도면이다. 위에서, 개발자는 설계자(310)를 사용하여, 로봇들에 의해 실행되는 작업 흐름들을 개발한다. 작업 흐름들은 사용자-정의 활동들(320) 및 UI 자동화 활동들(330)을 포함할 수 있다. 일부 실시예들은 본 명세서에서 컴퓨터 비전(CV)이라고 하는 이미지 내의 비-텍스트 시각 컴포넌트들을 식별할 수 있다. 이러한 컴포넌트들에 관련된 일부 CV 활동들은 클릭, 유형, 텍스트 획득, 호버링, 요소 존재, 리프레시 범위, 하이라이트 등을 포함할 수 있지만 이에 한정되지 않는다. 일부 실시예들에서 클릭은 예를 들어 CV, 광학 문자 인식(OCR), 퍼지 텍스트 매칭 및 멀티-앵커를 사용자여 요소를 식별하고, 그것을 클릭한다. 유형은 요소 내의 유형들을 사용하여 요소를 식별할 수 있다. 텍스트 획득은 특정 텍스트의 위치를 식별하고 OCR을 사용하여 그것을 스캔할 수 있다. 호버링은 요소를 식별하고 그 위에서 호버링할 수 있다. 요소 존재는 위에 설명된 기술들을 사용하여 스크린 상에 요소가 존재하는지를 체크할 수 있다. 일부 실시예들에서, 설계자(310)에서 구현될 수 있는 수백 또는 심지어 수천 개의 활동이 있을 수 있다. 그러나, 본 발명의 범위로부터 벗어나지 않고서 임의의 수 및/또는 유형의 활동들이 이용가능할 수 있다.
UI 자동화 활동들(330)은 더 낮은 레벨의 코드(예를 들어, CV 활동들)로 작성되고 UI 층을 통한 애플리케이션들과의 상호작용들을 용이하게 하는 특수한 더 낮은 레벨의 활동들의 서브세트이다. 특정 실시예들에서, UI 자동화 활동들(300)은 예를 들어 윈도우 메시지들 등을 통해 사용자 입력을 시뮬레이션할 수 있다. UI 자동화 활동들(330)은 로봇이 원하는 소프트웨어와 상호작용할 수 있게 해주는 드라이버들(340)을 통해 이러한 상호작용들을 용이하게 한다. 예를 들어, 드라이버들(340)은 OS 드라이버(342), 브라우저 드라이버(344), VM 드라이버(346), 엔터프라이즈 애플리케이션 드라이버(348) 등을 포함할 수 있다.
드라이버들(340)은 로우 레벨에서 OS와 상호작용하여, 후크들을 찾고, 키들을 모니터링하고, 기타 등등을 수행할 수 있다. 그들은 크롬(등록상표), IE(등록상표), Citrix(등록상표), SAP(등록상표) 등과의 통합을 용이하게 할 수 있다. 예를 들어, "클릭" 활동은 드라이버들(340)을 통해 이러한 상이한 애플리케이션들에서 동일한 역할을 수행한다.
도 4는 본 발명의 일 실시예에 따른, RPA 시스템(400)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, RPA 시스템(400)은 도 1 및/또는 도 2의 RPA 시스템들(100 및/또는 200)이거나 이를 포함할 수 있다. RPA 시스템(400)은 로봇들을 실행하는 다수의 클라이언트 컴퓨팅 시스템(410)을 포함한다. 컴퓨팅 시스템들(410)은 그곳에서 실행되는 웹 애플리케이션을 통해 지휘자 컴퓨팅 시스템(420)과 통신할 수 있다. 지휘자 컴퓨팅 시스템(420)은 또한 데이터베이스 서버(430) 및 선택적인 인덱서 서버(440)와 통신할 수 있다.
도 1 및 도 3과 관련하여, 웹 애플리케이션이 이들 실시예에서 사용되지만, 본 발명의 범위로부터 벗어나지 않고서 임의의 적절한 클라이언트 및/또는 서버 소프트웨어가 사용될 수 있다는 점에 유의해야 한다. 예를 들어, 지휘자는 클라이언트 컴퓨팅 시스템들 상의 비-웹-기반 클라이언트 소프트웨어 애플리케이션들과 통신하는 서버측 애플리케이션을 실행할 수 있다.
도 5는 본 발명의 일 실시예에 따른, 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술 및/또는 애플리케이션 또는 UI 유형에 의해 구성된 하나 이상의 디폴트 타겟팅 방법을 사용하여 그래픽 요소 검출을 수행하도록 구성된 컴퓨팅 시스템(500)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, 컴퓨팅 시스템(500)은 본 명세서에 도시 및/또는 설명된 컴퓨팅 시스템들 중 하나 이상일 수 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 메커니즘, 및 정보를 처리하기 위해 버스(505)에 결합된 프로세서(들)(510)를 포함한다. 프로세서(들)(510)는 중앙 처리 유닛(CPU), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA), 그래픽 처리 유닛(GPU), 이들의 다수의 인스턴스들, 및/또는 이들의 임의의 조합을 포함하는 임의의 유형의 범용 또는 특수 목적 프로세서일 수 있다. 프로세서(들)(510)는 또한 다수의 처리 코어들을 가질 수 있고, 코어들 중 적어도 일부는 특정 기능들을 수행하도록 구성될 수 있다. 다중 병렬 처리가 일부 실시예들에서 사용될 수 있다. 특정 실시예들에서, 프로세서(들)(510) 중 적어도 하나는 생물학적 뉴런들을 모방하는 처리 요소들을 포함하는 뉴로모픽 회로일 수 있다. 일부 실시예들에서, 뉴로모픽 회로들은 폰 노이만 컴퓨팅 아키텍처의 통상적인 컴포넌트들을 요구하지 않을 수 있다.
컴퓨팅 시스템(500)은 프로세서(들)(510)에 의해 실행될 정보 및 명령어들을 저장하기 위한 메모리(515)를 더 포함한다. 메모리(515)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 캐시, 자기 또는 광 디스크와 같은 정적 저장소, 또는 임의의 다른 유형들의 비일시적 컴퓨터 판독가능 매체들 또는 이들의 조합들의 임의의 조합으로 구성될 수 있다. 비일시적 컴퓨터 판독가능 매체는 프로세서(들)(510)에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수 있고 휘발성 매체, 비휘발성 매체, 또는 둘 모두를 포함할 수 있다. 매체는 또한 이동식, 비이동식 또는 둘 다일 수 있다.
추가적으로, 컴퓨팅 시스템(500)은 무선 및/또는 유선 연결을 통해 통신 네트워크에 대한 액세스를 제공하기 위해, 트랜시버와 같은 통신 디바이스(520)를 포함한다. 일부 실시예들에서, 통신 디바이스(520)는, 본 발명의 범위를 벗어나지 않고서, 주파수 분할 다중 액세스(FDMA), 단일 캐리어 FDMA(SC-FDMA), 시분할 다중 액세스(TDMA), 코드 분할 다중 액세스(CDMA), 직교 주파수 분할 다중화(OFDM), 직교 주파수 분할 다중 액세스(OFDMA), GSM(Global System for Mobile) 통신, GPRS(General Packet Radio Service), UMTS(Universal Mobile Telecommunications System), cdma2000, W-CDMA(Wideband CDMA), HSDPA(High-Speed Downlink Packet Access), HSUPA(High-Speed Uplink Packet Access), HSPA(High-Speed Packet Access), LTE(Long Term Evolution), LTE-A(LTE Advanced), 802.11x, Wi-Fi, Zigbee, UWB(Ultra-WideBand), 802.16x, 802.15, HnB(Home Node-B), Bluetooth, RFID(Radio Frequency Identification), IrDA(Infrared Data Association), NFC(Near-Field Communications), 5G(fifth generation), NR(New Radio), 이들의 임의 조합, 및/또는 임의의 다른 현재 존재하거나 미래에 구현될 통신 표준 및/또는 프로토콜을 사용하도록 구성될 수 있다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위로부터 벗어나지 않고서, 단수, 어레이, 위상, 스위칭, 빔포밍, 빔스티어링, 이들의 조합, 및/또는 임의의 다른 안테나 구성인 하나 이상의 안테나들을 포함할 수 있다.
프로세서(들)(510)는 플라즈마 디스플레이, LCD(Liquid Crystal Display), LED(Light Emitting Diode) 디스플레이, FED(Field Emittation Display), OLED(Organic Light Emitting Diode) 디스플레이, 가요성 OLED 디스플레이, 가요성 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, 고화질 디스플레이, 레티나(등록상표) 디스플레이, IPS(In-Plane Switching) 디스플레이, 또는 사용자에게 정보를 디스플레이하기 위한 임의의 다른 적절한 디스플레이와 같은 디스플레이(525)에 버스(505)를 통해 더 결합된다. 디스플레이(525)는 저항성, 용량성, 표면-음파(SAW) 용량성, 적외선, 광학 이미징, 분산 신호 기술, 음향 펄스 인식, 좌절 내부 전반사 등을 사용하여 터치(햅틱) 디스플레이, 3차원(3D) 터치 디스플레이, 다중-입력 터치 디스플레이, 다중-터치 디스플레이 등으로서 구성될 수 있다. 본 발명의 범위로부터 벗어나지 않고 임의의 적절한 디스플레이 디바이스 및 햅틱 I/O가 사용될 수 있다.
사용자가 컴퓨팅 시스템(500)과 인터페이스하는 것을 가능하게 하기 위해, 키보드(530) 및 커서 제어 디바이스(535), 예컨대 컴퓨터 마우스, 터치패드 등이 버스(505)에 더 결합된다. 그러나, 특정 실시예들에서, 물리적 키보드 및 마우스는 존재하지 않을 수 있고, 사용자는 디스플레이(525) 및/또는 터치패드(도시되지 않음)를 통해서만 디바이스와 상호작용할 수 있다. 입력 디바이스들의 임의의 유형 및 조합이 설계 선택의 문제로서 사용될 수 있다. 특정 실시예들에서는, 어떠한 물리적 입력 디바이스 및/또는 디스플레이도 존재하지 않는다. 예를 들어, 사용자는 컴퓨팅 시스템(500)과 통신하는 다른 컴퓨팅 시스템을 통해 원격적으로 컴퓨팅 시스템(500)과 상호작용할 수 있거나, 컴퓨팅 시스템(500)은 자율적으로 동작할 수 있다.
메모리(515)는 프로세서(들)(510)에 의해 실행될 때 기능을 제공하는 소프트웨어 모듈들을 저장한다. 모듈들은 컴퓨팅 시스템(500)을 위한 운영 체제(540)를 포함한다. 모듈들은 본 명세서에서 설명되는 프로세스들 또는 그 파생물들의 전부 또는 일부를 수행하도록 구성되는 결합된 직렬 및 병렬 통합 타겟/디폴트 타겟팅 방법 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가 기능을 포함하는 하나 이상의 추가 기능 모듈(550)을 포함할 수 있다.
이 분야의 통상의 기술자는 "시스템"이 본 발명의 범위로부터 벗어나지 않고서 서버, 내장 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, PDA(personal digital assistant), 셀폰, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 임의의 다른 적절한 컴퓨팅 디바이스, 또는 디바이스들의 조합으로서 구현될 수 있다는 것을 이해할 것이다. 전술한 기능들을 "시스템"에 의해 수행되는 것으로 제시하는 것은 본 발명의 범위를 어떠한 방식으로든 제한하도록 의도된 것이 아니라, 본 발명의 많은 실시예들의 하나의 예를 제공하도록 의도된다. 실제로, 본 명세서에 개시된 방법들, 시스템들 및 장치들은 클라우드 컴퓨팅 시스템들을 포함하는 컴퓨팅 기술과 일치하는 국지화된 형태 및 분산된 형태로 구현될 수 있다. 컴퓨팅 시스템은 LAN(local area network), 모바일 통신 네트워크, 위성 통신 네트워크, 인터넷, 공개 또는 비공개 클라우드, 하이브리드 클라우드, 서버 팜, 이들의 임의의 조합 등의 일부일 수 있거나 또는 그들에 의해 액세스될 수 있다. 본 발명의 범위로부터 벗어나지 않고서 임의의 국지화된 또는 분산된 아키텍처가 사용될 수 있다.
본 명세서에서 설명되는 시스템 특징들 중 일부는 그들의 구현 독립성을 더욱 특별히 강조하기 위하여 모듈들로서 제시되었다는 점에 유의해야 한다. 예를 들어, 모듈은 맞춤형 VLSI(very large scale integration) 회로 또는 게이트 어레이, 기성 반도체, 예를 들어 논리 칩, 트랜지스터 또는 다른 개별 컴포넌트를 포함하는 하드웨어 회로로서 구현될 수 있다. 모듈은 또한, 필드 프로그래머블 게이트 어레이, 프로그래머블 어레이 논리, 프로그래머블 논리 디바이스, 그래픽 처리 유닛 등과 같은 프로그래머블 하드웨어 디바이스로 구현될 수 있다.
모듈은 또한 다양한 유형의 프로세서들에 의한 실행을 위해 적어도 부분적으로 소프트웨어로 구현될 수 있다. 실행가능 코드의 식별된 유닛은 예를 들어 객체, 절차 또는 함수로서 조직화될 수 있는 컴퓨터 명령어들의 하나 이상의 물리적 또는 논리적 블록들을 포함할 수 있다. 그럼에도 불구하고, 식별된 모듈의 실행파일들은 물리적으로 함께 위치될 필요는 없지만, 논리적으로 함께 결합될 때, 모듈을 포함하고 모듈에 대한 언급된 목적을 달성하는 상이한 위치들에 저장된 이종의 명령어들을 포함할 수 있다. 또한, 모듈들은 본 발명의 범위로부터 벗어나지 않고서 예를 들어 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하는 데 사용되는 임의의 다른 그러한 비일시적 컴퓨터 판독가능 매체일 수 있는 컴퓨터 판독가능 매체 상에 저장될 수 있다.
사실상, 실행가능한 코드의 모듈은 단일 명령어 또는 다수의 명령어일 수 있고, 심지어 여러 상이한 코드 세그먼트에 걸쳐, 상이한 프로그램들 사이에, 그리고 여러 메모리 디바이스에 걸쳐 분산될 수 있다. 마찬가지로, 동작 데이터는 본 명세서에서 모듈들 내에서 식별되고 예시될 수 있고, 임의의 적합한 형태로 구현되고 임의의 적합한 유형의 데이터 구조 내에서 조직화될 수 있다. 동작 데이터는 단일 데이터 세트로 수집되거나, 상이한 저장 디바이스들을 포함하는 상이한 위치들에 걸쳐 분배될 수 있고, 적어도 부분적으로는, 단지 시스템 또는 네트워크 상의 전자 신호들로서 존재할 수 있다.
도 6a 내지 도 6g는 본 발명의 일 실시예에 따른, RPA 설계자 애플리케이션(600)에 대한 통합 타겟 구성 인터페이스를 예시한다. 이 실시예에서, RPA 개발자는 RPA 작업 흐름에서의 활동들에 대한 통합 타겟 기능을 맞춤 구성할 수 있다. RPA 설계자 애플리케이션(600)은 클릭 활동(612)을 갖는 RPA 작업 흐름 개발 창(610)을 포함한다. RPA 설계자 애플리케이션(600)은 또한 통합 타겟 구성 창(620)을 포함한다. 사용자가 UI 내의 그래픽 요소와 상호작용하는 활동을 클릭할 때, 통합 타겟 구성 창(620)은 그 활동에 대한 통합 타겟 옵션들을 보여준다.
도 6a에 도시된 바와 같이, 직렬 실행 선택기(630)는 RPA 개발자가 활동(612)에 대한 통합 타겟 기술이 개별적으로 직렬로 또는 지연된 병렬 실행의 적어도 하나의 스테이지와 병렬로 실행될지를 선택할 수 있게 한다. 직렬 실행이 선택되는 경우, 기술들의 실행 순서는 드롭다운(632)을 사용하여 지정될 수 있다. 도 6b를 참조한다. 선택된 기술(들)(634)은 선택 후에 나타나며, 각각의 기술에 대한 타임아웃은 타임아웃 필드(636)를 통해 지정될 수 있다. 도 6c를 참조한다.
지연된 병렬 실행이 요구되는 경우, 직렬 실행 선택기(630)의 값은 "아니오"로 설정될 수 있고, 이어서 RPA 개발자는 하나 이상의 초기 기술들이 초기 기술 선택기(640)를 통해 사용될 것인지를 선택할 수 있다. 도 6d를 참조한다. 초기 기술 선택기(640)가 "아니오"로 설정되면, 통합 타겟을 위한 그래픽 요소 검출 기술들이 병렬로 실행될 수 있다. 그러나, 초기 기술 선택기(640)가 "예"로 설정되면, 초기 기술들을 선택하기 위한 드롭다운(642)이 나타난다. 도 6e를 참조한다. 그러나, 일부 실시예들에서, 하나 이상의 초기 기술들이 자동으로 실행되고, RPA 개발자에 의해 구성 가능하지 않을 수 있다. 예를 들어, 선택기 기반 접근법은 다른 것들보다 빠를 수 있고 초기에 시도될 수 있다. 특정 실시예들에서, 하나 이상의 디폴트 초기 기술들이 보여질 수 있고, RPA 개발자는 (예를 들어, 새로운 기술들을 추가하고, 디폴트 기술들을 제거하는 것 등에 의해) 이들을 변경할 수 있다. 일부 실시예들에서, RPA 개발자는 초기 기술(들)을 구성할 수 없지만, 지연 병렬 기술(들)을 구성할 수 있다.
초기 기술(644)이 선택된 후에, 병렬 기술 드롭다운(646)이 열거된 나머지 기술들과 함께 나타난다. 도 6f를 참조한다. 일부 실시예들에서, 그래픽 요소 검출 기술들의 유형들은 활동에 의해 구현된 액션(예를 들어, 클릭, 텍스트 획득, 호버링 등), 그래픽 요소 유형(예를 들어, 버튼, 텍스트 필드 등), 및/또는 RPA 개발자에 의해 표시되는 특정 그래픽 요소(예를 들어, 스크린 상에 사용자가 어떤 요소를 선택하는지 그리고 어떤 다른 요소들이 애플리케이션에 존재하는지)에 기초하여 자동으로 선택된다. 특정 그래픽 요소와 관련하여, RPA 개발자가 예를 들어 하나의 OK 버튼을 클릭하지만, 스크린 상에 2개의 OK 버튼이 있는 경우, 일부 속성들이 2개의 동일한 OK 버튼을 구별하기 위해 자동으로 추가될 수 있다. 예를 들어, UI 트리를 사용할 때, UI 트리는 일반적으로, RPA 개발자가 스크린 상에 그래픽 요소를 표시할 때, UI 트리 내의 속성들 중 적어도 일부가 다른 그래픽 요소들보다는 그 그래픽 요소에 대해 상이하도록 구축된다.
RPA 개발자는 여전히 추가 링크(645)를 통해 더 많은 초기 기술을 추가할 수 있거나, RPA 개발자는 이전에 선택된 초기 기술들을 제거할 수 있다. 일부 실시예들에서, RPA 개발자가 초기 기술 선택기(640)에 대해 "아니오"를 선택하는 경우, 병렬 기술 드롭다운(646)이 여전히 나타나고, RPA 개발자는 어떤 기술들을 병렬로 실행할지를 맞춤 선택할 수 있다. 병렬 기술(647)이 선택된 후에, RPA 개발자는 여전히 추가 링크(648)를 통해 더 많은 병렬 기술을 추가할 수 있거나, RPA 개발자는 이전에 선택된 병렬 기술들을 제거할 수 있다. 도 6g를 참고한다. 초기 기술(들)의 실행이 시작된 후에 병렬 기술(들)을 실행하기 위해 얼마나 오래 대기해야 하는지에 대한 지연은 지연 필드(649)를 통해 지정될 수 있다. 타겟 및 하나 이상의 앵커들을 식별하기 위해 멀티-앵커 기술이 사용되는 일부 실시예들에서, 타겟 및 각각의 앵커에 대해 통합 타겟 설정들이 맞춤 구성될 수 있거나, 동일한 설정들이 타겟 및 앵커(들)에 적용될 수 있다.
일부 실시예들에서, 다수의 지연 기간이 사용될 수 있다. 예를 들어, 초기 기술이 1초 동안 사용될 수 있고, 매칭이 발견되지 않으면, 하나 이상의 다른 기술(들)이 초기 기술과 병렬로 사용될 수 있고, 제2 기간 동안에 매칭이 발견되지 않으면, 또 다른 기술(들)이 병렬로 적용될 수 있고, 기타 등등이다. 본 발명의 범위로부터 벗어나지 않고서 임의 수의 지연 기간들 및/또는 각각의 지연 기간 동안의 기술들이 사용될 수 있다.
일부 실시예들에서, 상호 배타적인 직렬 스테이지들이 사용될 수 있다. 예를 들어, 초기 기술이 1 초 동안 사용될 수 있고, 매칭이 발견되지 않으면, 하나 이상의 다른 기술(들)이 초기 기술 대신 사용될 수 있고, 제2 기간 동안 매칭이 발견되지 않으면, 또 다른 기술(들)이 초기 기술 및 제2 기간 기술(들) 대신에 적용될 수 있고, 기타 등등이다. 이러한 방식으로, 성공적으로 보이지 않는 기술들이 중지되어, 잠재적으로 자원 요구들을 감소시킬 수 있다.
도 7a는 본 발명의 일 실시예에 따른, 애플리케이션 및/또는 UI 유형 레벨에서 구성하기 위한 접이식 타겟팅 방법 구성 인터페이스(700)를 도시한다. 이 실시예에서, 사용자는 웹 브라우저들, Java(등록상표), SAP(등록상표), Microsoft(등록상표) UI 자동화(UIA) 데스크톱, 액티브 액세스 가능성(AA) 데스크톱, 및 Microsoft(등록상표) Win32 데스크톱에 대한 타겟팅 방법들을 구성할 수 있다. 이러한 애플리케이션들 및/또는 디스플레이 유형들 각각은 사용자에 의해 개별적으로 구성될 수 있다.
도 7b를 참조하면, 사용자는 SAP(등록상표) 타겟팅 방법 탭(710)을 사용하여 SAP(등록상표)에 대한 디폴트 타겟팅 방법들을 구성하였다. SAP(등록상표)는 현재 강하고 신뢰성 있는 선택기들을 가지므로, 전체 선택기(712)에 대한 실행 값은 "참"으로 설정된다. 퍼지 선택기(714), 이미지 선택기(716) 및 인에이블 앵커(718)(즉, 타겟/앵커 기능을 사용하여 타겟의 식별을 가능하게 하기 위한 앵커)에 대한 실행 값들은 "거짓"으로 설정된다.
그러나, 이 기술은 모든 애플리케이션들 및/또는 UI 유형들에 대해 효과적이지 않을 수 있다. 예를 들어, 속성들에 대한 값들이 동적으로 변하는 경향이 있기 때문에, 선택기들은 많은 현대의 웹 브라우저들에 대해 잘 작동하지 않을 수 있다. 도 7c를 참조하면, 사용자는 웹 타겟팅 방법 탭(720)을 사용하여 웹 브라우저들에 대한 디폴트 타겟팅 방법들을 구성하였다. 입력 모드(722)는 드롭다운 메뉴(723)를 통해 "시뮬레이션"으로 설정된다. 이것은 웹-고유 설정이고, 본 발명의 범위로부터 벗어나지 않고서 웹 애플리케이션들 및/또는 다른 애플리케이션들/UI 유형들에 대한 다른 애플리케이션 및/또는 UI 유형-고유 설정들이 포함될 수 있다. 애플리케이션들이 일부 실시예들에서 자동화될 때, 애플리케이션과 상호작용하기 위한 상이한 메커니즘들(예를 들어, 마우스 클릭, 키 누름 등을 제공함)이 사용될 수 있다. "시뮬레이션"은 사용자가 유사한 상호작용을 수행할 경우에 웹 브라우저가 시스템으로부터 수신할 입력을 시뮬레이션한다.
전체 선택기를 사용하는 것은 많은 웹 브라우저들에 대해 정확하지 않기 때문에, 전체 선택기 설정(724)에 대한 실행 값은 "거짓"으로 설정된다. 한편, 퍼지 선택기(725), 이미지 선택기(726) 및 인에이블 앵커들(727)에 대한 실행 값들은 "참"으로 설정된다. 이것은 도 7b의 SAP(등록상표) 타겟팅 방법 탭(710)에서와 같이 반대 구성이다.
애플리케이션별로 그리고/또는 UI 유형별로 타겟팅 방법들을 구성함으로써, 사용자는 그가 스크린 상에 요소를 표시할 때 모든 그래픽 요소를 재구성할 필요가 없다. 예를 들어, 사용자가 웹 브라우저에서 텍스트 필드를 표시하는 경우, 그 텍스트 필드에 대한 타겟팅 방법들은 사용자가 매번 들어갈 필요 없이 사용자가 그들을 사전 구성함에 따라, 전체 선택기에 대한 실행 값을 "거짓"으로 설정하고, 퍼지 선택기에 대한 실행 값을 "참"으로 설정하고, 기타 등등일 것이다. 그러나, 사용자는 디폴트 구성과 상이한 타겟팅 방법 구성을 사용하여 더 정확하게 검출될 수 있는 특정 UI 요소가 있는 경우에 일부 실시예들에서 이들 디폴트 값들을 수정할 수 있다는 점에 유의해야 한다.
다른 타겟팅 방법 설정들이 가능하다는 점에 유의해야 한다. 예를 들어, CV, OCR, 또는 이들의 조합이 일부 실시예들에서 사용될 수 있다. 사실상, 임의의 적절한 그래픽 요소 검출 기술(들)이 본 발명의 범위로부터 벗어나지 않고서 사용될 수 있다.
도 8은 본 발명의 일 실시예에 따른, RPA 작업 흐름에서의 활동들에 대한 통합 타겟 기능을 구성하기 위한 프로세스(800)를 예시하는 흐름도이다. 일부 실시예들에서, 프로세스(800)는 도 6a-g의 RPA 설계자 애플리케이션(600)에 의해 수행될 수 있다. 프로세스는 810에서 통합 타겟을 사용하여 그래픽 요소 검출을 수행하도록 구성될 RPA 작업 흐름에서의 활동의 선택을 수신하는 것으로부터 시작한다. 일부 실시예들에서, 통합 타겟 기능은 820에서 자동으로 사전 구성된다. 특정 실시예들에서, 이러한 사전 구성은 그래픽 요소 검출 기술들의 유형들, 그래픽 요소 유형, 및/또는 RPA 개발자에 의해 표시되는 특정 그래픽 요소에 기초할 수 있다.
RPA 설계자 애플리케이션은 활동에 대한 통합 타겟 기능을 맞춤 구성하기 위해 830에서 RPA 개발자로부터의 통합 타겟 기능에 대한 수정들을 수신할 수 있다. 이어서, 840에서, RPA 설계자 애플리케이션은 통합 타겟 구성에 기초하여 활동을 구성한다. 더 많은 활동들이 구성되어야 하는 경우, RPA 개발자는 다른 활동을 선택할 수 있고, 프로세스는 단계 810으로 복귀한다. 원하는 활동(들)이 구성되면, RPA 설계자 애플리케이션은 850에서 구성된 활동(들)을 포함하는 RPA 작업 흐름을 구현하기 위해 RPA 로봇을 생성한다. 이어서, 프로세스는 종료되거나 도 9a로 진행한다.
도 9a 및 도 9b는 본 발명의 일 실시예에 따른, 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술을 사용하는 그래픽 요소 검출을 위한 프로세스(900)를 예시하는 흐름도들이다. 일부 실시예들에서, 프로세스(900)는 도 6a 내지 도 6g의 RPA 설계자 애플리케이션(600)을 통해 생성된 RPA 로봇에 의해 실행 시간에 구현될 수 있다. 프로세스는 910에서 UI 요소 속성들을 식별하기 위해 UI(예를 들어, 스크린샷, 애플리케이션 윈도우의 이미지 등)를 분석하는 것으로부터 시작한다. UI 요소 속성들은 이미지들, 텍스트, 그래픽 요소들 간의 관계, UI 내의 그래픽 요소들의 계층적 표현 등을 포함할 수 있지만, 이들로 제한되지 않는다. 식별은 CV, OCR, API 호출, 텍스트 파일들(예를 들어, HTML, XML 등)의 분석, 이들의 조합 등을 통해 수행될 수 있다.
UI가 분석된 후, 920에서 통합 타겟을 사용하여 활동에 대해 UI 요소 속성들이 분석된다. 도 9b를 참조하면, 922에서 하나 이상의 초기 그래픽 요소 검출 기술들이 (잠재적으로 병렬로) 실행된다. 924에서 초기 기술(들)에 대한 제1 기간 내에(예를 들어, 1/10초, 1초, 10초 등 내에) 매칭이 발견되면, 이 매칭로부터의 결과들이 926에서 선택된다.
924에서 초기 기술 기간 내에 매칭이 발견되지 않으면, 928에서 하나 이상의 추가적인 그래픽 요소 검출 기술이 병렬로 실행된다. 929에서 제2 기간 내에 매칭이 발견되면, 모든 초기 기술들 및 후속 병렬 기술들 중에서 매칭을 발견하기 위한 제1 기술으로부터의 결과들이 926에서 선택되고, 프로세스는 단계 930으로 진행한다. 일부 실시예들에서, 그래픽 요소에 대한 매칭을 발견하는 것은 타겟으로서의 그래픽 요소 자체에 대한 그리고 그의 앵커(들)에 대한 매칭을 발견하는 것을 수반할 수 있고, 각각에 대한 매칭을 발견하기 위한 제1 기술은 그러한 각각의 타겟/앵커에 대해 선택될 수 있다. 929에서 제2 기간 내에 매칭이 발견되지 않으면, 프로세스는 또한 단계 930으로 진행한다. 일부 실시예들에서, 지연 병렬 실행의 다수의 스테이지가 수행된다. 특정 실시예들에서, 각각의 스테이지에서 상이한 기술들이 실행되고, 이전의 기술들이 중지된다.
930에서 매칭 UI 요소가 통합 타겟을 통해 발견되는 경우, UI 요소를 수반하는 활동과 연관된 액션(예를 들어, 버튼 클릭, 텍스트 입력, 메뉴와의 상호작용 등)이 940에서 수행된다. 950에서 더 많은 활동이 있다면, 프로세스는 다음 활동을 위해 단계 920으로 진행한다. 그러나, 930에서 그래픽 요소 검출 기술들의 속성들과 매칭되는 UI 요소가 발견되지 않는 경우, 960에서 예외가 발생하거나, 사용자는 그가 어떻게 진행하는 것을 좋아하는지(예를 들어, 실행을 계속할지)를 질문 받고, 프로세스가 종료된다.
도 10a 및 도 10b는 본 발명의 일 실시예에 따른, 그래픽 요소 검출 기술들을 구성하고 애플리케이션 및/또는 UI 유형 레벨에서 그래픽 요소 검출을 수행하기 위한 프로세스(1000)의 설계 시간 부분 및 실행 시간 부분을 각각 예시하는 흐름도들이다. 일부 실시예들에서, 프로세스(1000)의 설계 시간 부분은 도 7a-c의 타겟팅 방법 구성 인터페이스(700)에 의해 수행될 수 있다. 프로세스는 1005에서 디폴트 타겟팅 방법 구성에 대한 애플리케이션 또는 UI 유형의 선택을 수신하는 것으로부터 시작한다. 이어서, 개발자는 (예를 들어, 웹 브라우저, Win32 데스크톱 등에 대한) 디폴트 타겟팅 방법 설정들을 구성하고, 이 디폴트 구성은 1010에서 수신되고 저장된다. 디폴트 구성은 그것이 다수의 또는 많은 사용자에 의해 액세스될 수 있는 일부 실시예들에서 UI 객체 저장소에 저장될 수 있다. 그 후, 사용자는 원한다면 디폴트 타겟팅 방법 구성에 대한 다른 애플리케이션 또는 UI 유형을 선택할 수 있다.
이어서, 동일한 개발자 또는 상이한 개발자는 UI에 스크린을 표시하고, 스크린 표시는 1015에서 (예를 들어, UiPath Studio(상표)과 같은 RPA 설계자 애플리케이션에 의해) 수신된다. 즉, RPA 설계자 애플리케이션의 상이한 인스턴스들은 디폴트 타겟팅 방법 설정들을 구성하고 후속하여 디폴트 타겟팅 방법 설정들을 수정하기 위해 사용될 수 있다. 사실상, 이러한 인스턴스들은 일부 실시예들에서 동일한 컴퓨팅 시스템 상에 있지 않을 수 있다. 그 후, 1020에서, 디폴트 타겟팅 방법 설정들이 스크린과 연관된 검출된 애플리케이션 또는 UI 유형에 대해 사전 구성된다. 1025에서, RPA 설계자 애플리케이션은 디폴트 타겟팅 방법 설정들에 대한 수정들을 수신하고, 그에 따라 설정들을 구성할 수 있다. 예를 들어, 사용자는 디폴트 기술들이 수행되지도 요구되지도 않는 스크린에 대해 그가 어느 타겟팅 방법들을 사용하기를 원하는지를 선택할 수 있다. 예를 들어, 아마도 특정 스크린은 애플리케이션 또는 데스크톱 내의 다른 스크린들과 실질적으로 상이한 시각적 특징들을 갖는다.
타겟팅 방법 설정들이 디폴트로 설정되거나 디폴트 구성으로부터 수정된 후에, 사용자는 1030에서 이들 타겟팅 방법 설정들을 사용하여 활동들이 구성되는 RPA 작업 흐름을 개발한다. 일부 실시예들에서, 사용자는 여전히 디폴트 타겟팅 방법 설정들을 수정하면서, RPA 작업 흐름을 설계할 수 있다. 사용자가 RPA 작업 흐름을 완료한 후에, 1035에서, RPA 설계자 애플리케이션은 구성된 활동(들)을 포함하는 RPA 작업 흐름을 구현하기 위해 RPA 로봇을 생성한다. 이어서, 프로세스는 종료되거나 도 10b로 진행한다.
도 10b를 참조하면, 1040에서 UI 요소 속성들을 식별하기 위해 UI(예를 들어, 스크린샷, 애플리케이션 윈도우의 이미지 등)가 분석된다. UI 요소 속성들은 이미지들, 텍스트, 그래픽 요소들 간의 관계, UI 내의 그래픽 요소들의 계층적 표현 등을 포함할 수 있지만, 이들로 제한되지 않는다. 식별은 CV, OCR, API 호출들, 텍스트 파일들(예를 들어, HTML, XML 등)의 분석, 이들의 조합 등을 통해 수행될 수 있다.
UI가 분석된 후, 설계 시간 개발 동안 사용자에 의한 주어진 UI 요소에 대한 무시가 없는 한, 1045에서 디폴트 타겟팅 방법 구성(들)을 사용하여 활동에 대해 UI 요소 속성들이 분석된다. 1050에서 매칭 UI 요소가 타겟팅 방법 설정들을 사용하여 발견되면, UI 요소를 수반하는 활동과 연관된 액션(버튼 클릭, 텍스트 입력, 메뉴와의 상호작용 등)이 1055에서 수행된다. 1060에서 더 많은 활동이 있다면, 프로세스는 다음 활동을 위해 단계 1045로 진행한다. 그러나, 1050에서 구성된 타겟팅 방법(들)을 사용하여 UI 요소가 발견되지 않는 경우, 1065에서 예외가 발생하거나, 사용자는 그가 어떻게 진행하는 것을 좋아하는지(예를 들어, 실행을 계속할지)를 질문 받고, 프로세스는 종료된다.
도 8-10b에서 수행되는 프로세스 단계들은 본 발명의 실시예들에 따라 프로세서(들)가 도 8-10b에서 설명된 프로세스(들)의 적어도 일부를 수행하기 위한 명령어들을 인코딩하는 컴퓨터 프로그램에 의해 수행될 수 있다. 컴퓨터 프로그램은 비일시적 컴퓨터 판독가능 매체 상에 구현될 수 있다. 컴퓨터 판독가능 매체는 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 데이터를 저장하는 데 사용되는 임의의 다른 그러한 매체 또는 매체들의 조합일 수 있지만, 이에 제한되는 것은 아니다. 컴퓨터 프로그램은 도 8-10b에서 설명된 프로세스 단계들의 전부 또는 일부를 구현하도록 컴퓨팅 시스템의 프로세서(들)(예를 들어, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510))를 제어하기 위한 인코딩된 명령어들을 포함할 수 있으며, 이는 또한 컴퓨터 판독가능 매체 상에 저장될 수 있다.
컴퓨터 프로그램은 하드웨어, 소프트웨어, 또는 하이브리드 구현으로 구현될 수 있다. 컴퓨터 프로그램은 서로 동작적으로 통신하고 디스플레이를 위해 정보 또는 명령어들을 전달하도록 설계된 모듈들로 구성될 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 임의의 다른 적절한 디바이스 상에서 동작하도록 구성될 수 있다.
본 명세서에서 일반적으로 설명되고 도면들에 예시된 바와 같은, 본 발명의 다양한 실시예들의 컴포넌트들은 다양한 상이한 구성들로 배열되고 설계될 수 있다는 것이 쉽게 이해될 것이다. 따라서, 첨부된 도면들에 표현된 바와 같은 본 발명의 실시예들의 상세한 설명은 청구된 바와 같은 본 발명의 범위를 제한하도록 의도된 것이 아니라, 단지 본 발명의 선택된 실시예들을 대표한다.
본 명세서 전체에서 설명된 본 발명의 특징들, 구조들 또는 특성들은 하나 이상의 실시예에서 임의의 적합한 방식으로 조합할 수 있다. 예를 들어, 본 명세서 전체에 걸쳐 "특정 실시예들", "일부 실시예들", 또는 유사한 언어를 참조하는 것은 실시예와 관련하여 설명된 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전체에 걸쳐 "특정 실시예들에서", "일부 실시예들에서", "다른 실시예들에서"라는 문구 또는 유사한 언어의 출현들은 반드시 모두가 동일한 실시예들의 그룹을 지칭하는 것은 아니며, 설명된 특징들, 구조들 또는 특성들은 하나 이상의 실시예들에서 임의의 적합한 방식으로 조합될 수 있다.
본 명세서 전체에서 특징들, 장점들 또는 유사한 언어에 대한 참조는 본 발명에서 실현될 수 있는 특징들 및 장점들 모두가 본 발명의 임의의 단일 실시예에 존재해야 한다는 것을 시사하지는 않는다는 점에 유의해야 한다. 오히려, 특징들 및 장점들을 언급하는 언어는 일 실시예와 관련하여 설명되는 특정 특징, 장점 또는 특성이 본 발명의 적어도 하나의 실시예에 포함됨을 의미하는 것으로 이해된다. 따라서, 본 명세서 전체에 걸친 특징들 및 장점들 및 유사한 언어의 논의는 동일한 실시예를 언급할 수도 있지만, 반드시 그런 것은 아니다.
또한, 본 발명의 설명된 특징들, 장점들 및 특성들은 하나 이상의 실시예에서 임의의 적합한 방식으로 조합될 수 있다. 관련 기술분야의 통상의 기술자는 본 발명이 특정한 실시예의 특정 특징들 또는 장점들 중 하나 이상 없이도 실시될 수 있다는 것을 인식할 것이다. 다른 경우들에서, 본 발명의 모든 실시예에 존재하지 않을 수 있는 추가의 특징들 및 장점들이 특정 실시예들에서 인식될 수 있다.
이 분야의 통상의 기술자는 위에서 논의된 바와 같은 본 발명이 상이한 순서의 단계들로 그리고/또는 개시된 것들과 다른 구성들의 하드웨어 요소들로 실시될 수 있음을 쉽게 이해할 것이다. 그러므로, 본 발명이 이러한 바람직한 실시예들에 기초하여 설명되었지만, 본 발명의 사상 및 범위 내에 있으면서도 특정 수정들, 변경들 및 대안 구성들이 명백하다는 것이 이 분야의 기술자들에게 명백할 것이다. 따라서, 본 발명의 경계와 범위를 결정하기 위하여, 첨부된 청구항들이 참조되어야 한다.

Claims (21)

  1. 사용자 인터페이스(UI)에서 그래픽 요소들을 검출하기 위한 컴퓨터 구현 방법으로서,
    설계자 애플리케이션에 의해, 통합 타겟 기술을 사용하여 그래픽 요소 검출을 수행하도록 구성될 로봇 프로세스 자동화(RPA) 작업 흐름에서의 활동의 선택을 수신하는 단계;
    상기 설계자 애플리케이션에 의해, 상기 활동에 대한 상기 통합 타겟 기술에 대한 수정들을 수신하는 단계; 및
    상기 설계자 애플리케이션에 의해, 상기 수정들에 기초하여 상기 활동을 구성하는 단계를 포함하고,
    상기 통합 타겟 기술은 복수의 그래픽 요소 검출 기술을 사용하도록 구성되는 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술인 것인, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 설계자 애플리케이션에 의해, 상기 통합 타겟 기술에 대한 상기 그래픽 요소 검출 기술들 중 하나 이상을 자동으로 구성하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  3. 제2항에 있어서, 상기 자동 구성은 상기 활동에 의해 구현되는 액션, 상기 타겟 그래픽 요소의 유형, 상기 UI 내의 하나 이상의 다른 그래픽 요소의 존재, 또는 이들의 조합에 기초하여 상기 설계자 애플리케이션에 의해 수행되는 것인, 컴퓨터 구현 방법.
  4. 제1항에 있어서, 제1항의 프로세스는 적어도 하나의 추가적인 활동에 대해 반복되는 것인, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 설계자 애플리케이션에 의해, 상기 구성된 활동을 구현하도록 구성된 RPA 로봇을 생성하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    UI 요소 속성들을 식별하기 위해, 상기 RPA 로봇에 의해 실행 시간에 UI를 분석하는 단계;
    하나 이상의 초기 그래픽 요소 검출 기술을 사용하여, 상기 RPA 로봇에 의해, 상기 UI 요소 속성들을 상기 활동에 대한 UI 디스크립터 속성들과 비교하는 단계; 및
    제1 기간 동안 상기 하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때,
    상기 RPA 로봇에 의해, 상기 하나 이상의 초기 그래픽 요소 검출 기술과 병렬로 하나 이상의 추가적인 그래픽 요소 검출 기술을 실행하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  7. 제6항에 있어서, 제2 기간 동안 상기 하나 이상의 초기 그래픽 요소 검출 기술 및 상기 하나 이상의 추가적인 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때, 상기 방법은,
    상기 RPA 로봇에 의해, 상기 하나 이상의 초기 그래픽 요소 검출 기술 및 상기 하나 이상의 추가적인 그래픽 요소 검출 기술과 병렬로 하나 이상의 보완 그래픽 요소 검출 기술을 실행하는 단계
    를 더 포함하는 것인, 컴퓨터 구현 방법.
  8. 제6항에 있어서,
    UI 요소 속성들을 식별하기 위해, 상기 RPA 로봇에 의해 실행 시간에 UI를 분석하는 단계;
    하나 이상의 초기 그래픽 요소 검출 기술을 사용하여, 상기 RPA 로봇에 의해, 상기 UI 요소 속성들을 상기 활동에 대한 UI 디스크립터 속성들과 비교하는 단계; 및
    제1 기간 동안 상기 하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때,
    상기 RPA 로봇에 의해, 상기 하나 이상의 초기 그래픽 요소 검출 기술 대신에 하나 이상의 추가적인 그래픽 요소 검출 기술을 실행하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  9. 제8항에 있어서, 제2 기간 동안 상기 하나 이상의 추가적인 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때, 상기 방법은,
    상기 RPA 로봇에 의해, 상기 하나 이상의 초기 그래픽 요소 검출 기술 및 상기 하나 이상의 추가적인 그래픽 요소 검출 기술 대신에 하나 이상의 보완 그래픽 요소 검출 기술을 실행하는 단계
    를 더 포함하는 것인, 컴퓨터 구현 방법.
  10. 제6항에 있어서, 매칭이 발견될 때, 상기 방법은,
    상기 RPA 로봇에 의해, 상기 UI 요소를 수반하는 상기 활동과 연관된 액션을 취하는 단계
    를 더 포함하는 것인, 컴퓨터 구현 방법.
  11. 제1항에 있어서, 상기 복수의 그래픽 요소 검출 기술은 선택기 기술, 컴퓨터 비전(CV) 기술, 이미지 매칭 기술 및 광학 문자(OCR) 기술 중 2개 이상을 포함하는 것인, 컴퓨터 구현 방법.
  12. 비일시적 컴퓨터 판독가능 매체 상에 구현되는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금:
    실행 시간에 사용자 인터페이스(UI)를 분석하여 UI 요소 속성들을 식별하고;
    하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 상기 UI 요소 속성들을 로봇 프로세스 자동화(RPA) 작업 흐름의 활동에 대한 UI 디스크립터 속성들과 비교하고;
    제1 기간 동안 상기 하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때,
    상기 하나 이상의 초기 그래픽 요소 검출 기술과 병렬로 하나 이상의 추가적인 그래픽 요소 검출 기술을 실행하게 하도록 구성되는 것인, 컴퓨터 프로그램.
  13. 제12항에 있어서, 제2 기간 동안 상기 하나 이상의 초기 그래픽 요소 검출 기술 및 상기 하나 이상의 추가적인 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때, 상기 컴퓨터 프로그램은 상기 적어도 하나의 프로세서로 하여금,
    상기 하나 이상의 초기 그래픽 요소 검출 기술 및 상기 하나 이상의 추가적인 그래픽 요소 검출 기술과 병렬로 하나 이상의 보완 그래픽 요소 검출 기술을 실행하게 하도록 구성되는 것인, 컴퓨터 프로그램.
  14. 제12항에 있어서, 매칭이 발견될 때, 상기 컴퓨터 프로그램은 상기 적어도 하나의 프로세서로 하여금,
    상기 UI 요소를 수반하는 상기 활동과 연관된 액션을 취하게 하도록 구성되는 것인, 컴퓨터 프로그램.
  15. 제12항에 있어서, 제12항의 프로세스는 적어도 하나의 추가적인 활동에 대해 반복되는 것인, 컴퓨터 프로그램.
  16. 제12항에 있어서, 상기 UI 디스크립터 속성들은 선택기 속성들, 컴퓨터 비전(CV) 속성들, 이미지 매칭 속성들 및 광학 문자 인식(OCR) 속성들 중 2개 이상을 포함하는 것인, 컴퓨터 프로그램.
  17. 비일시적 컴퓨터 판독가능 매체 상에 구현되는 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금:
    실행 시간에 사용자 인터페이스(UI)를 분석하여 UI 요소 속성들을 식별하고;
    하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 상기 UI 요소 속성들을 로봇 프로세스 자동화(RPA) 작업 흐름의 활동에 대한 UI 디스크립터 속성들과 비교하고;
    제1 기간 동안 상기 하나 이상의 초기 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때,
    상기 하나 이상의 초기 그래픽 요소 검출 기술들 대신에 하나 이상의 추가적인 그래픽 요소 검출 기술들을 실행하게 하도록 구성되는 것인, 컴퓨터 프로그램.
  18. 제17항에 있어서, 제2 기간 동안 상기 하나 이상의 추가적인 그래픽 요소 검출 기술을 사용하여 매칭이 발견되지 않을 때, 상기 컴퓨터 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금,
    상기 하나 이상의 초기 그래픽 요소 검출 기술 및 상기 하나 이상의 추가적인 그래픽 요소 검출 기술 대신에 하나 이상의 보완 그래픽 요소 검출 기술을 실행하게 하도록 구성되는 것인, 컴퓨터 프로그램.
  19. 제17항에 있어서, 매칭이 발견될 때, 상기 컴퓨터 프로그램은 상기 적어도 하나의 프로세서로 하여금,
    상기 UI 요소를 수반하는 상기 활동과 연관된 액션을 취하게 하도록 구성되는 것인, 컴퓨터 프로그램.
  20. 제17항에 있어서, 제17항의 프로세스는 적어도 하나의 추가적인 활동에 대해 반복되는 것인, 컴퓨터 프로그램.
  21. 제17항에 있어서, 상기 UI 디스크립터 속성들은 선택기 속성들, 컴퓨터 비전(CV) 속성들, 이미지 매칭 속성들 및 광학 문자 인식(OCR) 속성들 중 2개 이상을 포함하는 것인, 컴퓨터 프로그램.
KR1020207028274A 2020-09-08 2020-09-18 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술, 디폴트 그래픽 요소 검출 기술 또는 이들 양자를 사용하는 그래픽 요소 검출 KR20220050011A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/014,171 2020-09-08
US17/014,171 US11507259B2 (en) 2020-09-08 2020-09-08 Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
PCT/US2020/051468 WO2022055517A1 (en) 2020-09-08 2020-09-18 Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both

Publications (1)

Publication Number Publication Date
KR20220050011A true KR20220050011A (ko) 2022-04-22

Family

ID=72709097

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028274A KR20220050011A (ko) 2020-09-08 2020-09-18 결합된 직렬 및 지연 병렬 실행 통합 타겟 기술, 디폴트 그래픽 요소 검출 기술 또는 이들 양자를 사용하는 그래픽 요소 검출

Country Status (4)

Country Link
EP (1) EP3964947B1 (ko)
JP (1) JP2023542559A (ko)
KR (1) KR20220050011A (ko)
CN (1) CN114902254A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115495055B (zh) * 2022-11-03 2023-09-08 杭州实在智能科技有限公司 基于界面区域识别技术的rpa元素匹配方法及系统

Also Published As

Publication number Publication date
CN114902254A (zh) 2022-08-12
JP2023542559A (ja) 2023-10-11
EP3964947A1 (en) 2022-03-09
EP3964947B1 (en) 2024-06-26

Similar Documents

Publication Publication Date Title
US11200073B1 (en) Automatic anchor determination and target graphical element identification in user interface automation
US11301268B2 (en) Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques
US11650874B2 (en) Anomaly detection and self-healing for robotic process automation via artificial intelligence / machine learning
US20230168654A1 (en) Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation
KR102363774B1 (ko) 사용자 인터페이스 자동화에서의 자동 앵커 결정 및 타겟 그래픽 요소 식별
KR102399907B1 (ko) 애플리케이션 특유의 그래픽 요소 검출
US11232170B1 (en) Application-specific graphical element detection
EP3964947B1 (en) Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
KR102444398B1 (ko) 그래픽 요소 검색 기술 선택, 앵커 및 타겟의 퍼지 논리 선택, 및/또는 로봇 프로세스 자동화를 위한 계층적 그래픽 요소 식별
EP3909722A1 (en) Graphical element search technique selection, fuzzy logic selection of anchors and targets, and/or hierarchical graphical element identification for robotic process automation
US11281362B1 (en) Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both
KR102447072B1 (ko) 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출

Legal Events

Date Code Title Description
A201 Request for examination