KR102447072B1 - 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출 - Google Patents

둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출 Download PDF

Info

Publication number
KR102447072B1
KR102447072B1 KR1020207028106A KR20207028106A KR102447072B1 KR 102447072 B1 KR102447072 B1 KR 102447072B1 KR 1020207028106 A KR1020207028106 A KR 1020207028106A KR 20207028106 A KR20207028106 A KR 20207028106A KR 102447072 B1 KR102447072 B1 KR 102447072B1
Authority
KR
South Korea
Prior art keywords
element detection
descriptor
activity
properties
rpa
Prior art date
Application number
KR1020207028106A
Other languages
English (en)
Other versions
KR20220021377A (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
Priority claimed from US16/990,709 external-priority patent/US11301268B2/en
Application filed by 유아이패스, 인크. filed Critical 유아이패스, 인크.
Publication of KR20220021377A publication Critical patent/KR20220021377A/ko
Application granted granted Critical
Publication of KR102447072B1 publication Critical patent/KR102447072B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • 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
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • 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
    • 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/10Image acquisition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • G06V10/235Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition based on user input or interaction
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/42Document-oriented image-based pattern recognition based on the type of document
    • G06V30/422Technical drawings; Geographical maps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/02Recognising information on displays, dials, clocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/07Target detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Artificial Intelligence (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Burglar Alarm Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출이 개시된다. UI 디스크립터들이 UI에서 런타임에 발견된 UI 요소들의 속성들과 주어진 UI 디스크립터에 대한 속성들을 비교하는데 사용될 수도 있다. 런타임에, UI에서 발견된 UI 요소들에 대한 속성들은 각각의 RPA 워크플로우 활동을 위한 속성들과의 일치들을 위해 검색될 수 있고, 정확한 일치 또는 일치 임계값 내의 일치가 발견되면, UI 요소는 그에 따라 식별되고 상호작용될 수도 있다.

Description

둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출
본 출원은 2020년 8월 11일자로 출원된 미국 정식 특허출원 제16/990,709호를 우선권 주장한다. 이전에 출원된 이 출원의 발명의 주제는 이로써 그 전부가 참조로 본원에 포함된다.
본 발명은 대체로 그래픽 요소 검출에 관한 것이고, 더 구체적으로는, 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스(user interface)(UI) 디스크립터 속성들의 조합을 사용한 요소 검출에 관한 것이다.
UI에서의 로봇 프로세스 자동화(robotic process automation)(RPA)의 경우, 그래픽 요소 검출이 각각의 UI 액션에 대해 선택기들, 컴퓨터 비전(computer vision)(CV), 또는 광학적 문자 인식(optical character recognition)(OCR)을 사용하여 수행될 수도 있다. 그러나, 이들 기법들은 개별적으로 적용되고 모든 시나리오들에 대해 최적이 아니다. 그에 따라, 개선된 접근법이 유익할 수도 있다.
본 발명의 특정한 실시예들은 현재 그래픽 요소 검출 기술들에 의해 아직 완전히 식별, 인식, 또는 해결되지 않은 업계에서의 문제들 및 요구들에 대한 해결책들을 제공할 수도 있다. 예를 들어, 본 발명의 일부 실시예들은 둘 이상의 그래픽 요소 검출 기법들(예컨대, 선택기들, CV, OCR 등)로부터의 UI 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출에 관련된다.
일 실시예에서, UI에서 그래픽 요소들을 검출하기 위한 컴퓨터 구현 방법이 설계자 애플리케이션에 의해, RPA 워크플로우에서 구성될 활동(activity)의 선택을 수신하는 단계를 포함한다. 컴퓨터 구현 방법은 또한 설계자 애플리케이션에 의해, 복수의 그래픽 요소 검출 기법들 중 하나 이상의 그래픽 요소 검출 기법, 그래픽 요소 검출 기법들의 하나 이상의 UI 디스크립터 속성, 또는 이들의 조합의 선택들 및/또는 수정들을 수신하는 단계를 포함한다. 컴퓨터 구현 방법은 설계자 애플리케이션에 의해, 수신된 선택들 및/또는 수정들에 기초하여, 상기 활동을 구성하는 단계를 더 포함한다.
다른 실시예에서, 컴퓨터 프로그램은 컴퓨터 판독가능 비일시적 매체 상에 수록된다. 그 프로그램은 적어도 하나의 프로세서가 RPA 워크플로우에서 구성될 활동의 선택을 수신하게 하도록 구성된다. 컴퓨터 프로그램은 또한 적어도 하나의 프로세서로 하여금 복수의 그래픽 요소 검출 기법들 중 하나 이상의 그래픽 요소 검출 기법, 그래픽 요소 검출 기법들의 하나 이상의 UI 디스크립터 속성, 또는 이들의 조합의 선택들 및/또는 수정들을 수신하게 하도록 구성된다. 컴퓨터 프로그램은 또한 적어도 하나의 프로세서로 하여금 수신된 선택들 및/또는 수정들에 기초하여 활동을 구성하게 하도록 구성된다.
또 다른 실시예에서, 컴퓨터 프로그램은 컴퓨터 판독가능 비일시적 매체 상에 수록된다. 그 프로그램은 적어도 하나의 프로세서로 하여금 UI 요소 속성들을 식별하기 위해 런타임에 UI를 분석하게 하도록 구성된다. 그 컴퓨터 프로그램은 또한 적어도 하나의 프로세서로 하여금 RPA 워크플로우의 활동을 위한 복수의 그래픽 요소 검출 기법들로부터의 UI 디스크립터 속성들과 UI 요소 속성들을 비교하게 하도록 구성된다. 복수의 그래픽 요소 검출 기법들의 속성들에 일치하는 UI 요소가 정확한 일치 또는 임계값 일치를 통해 발견될 때, 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금 UI 요소를 수반하는 활동에 연관되는 액션을 취하게 하도록 구성된다.
본 발명의 특정한 실시예들의 장점들이 쉽사리 이해되도록 하기 위하여, 위에서 간략히 설명된 본 발명의 더 특정한 설명이 첨부된 도면들에서 예시되는 특정 실시예들을 참조하여 제공될 것이다. 이들 도면들은 본 발명의 전형적인 실시예들만을 묘사하고 그러므로 본 발명의 범위의 제한으로 간주되지 않는 것으로 이해되어야 하지만, 본 발명은 첨부 도면들의 사용을 통해 추가의 특이성 및 세부사항과 함께 기재되고 설명될 것이며, 도면들 중:
도 1은 본 발명의 일 실시예에 따른 로봇 프로세스 자동화(RPA) 시스템을 예시하는 아키텍처 도면이다.
도 2는 본 발명의 일 실시예에 따른 전개된(deployed) RPA 시스템(200)을 예시하는 아키텍처 도면이다.
도 3은 본 발명의 일 실시예에 따른 설계자, 활동들, 및 드라이버들 사이의 관계를 예시하는 아키텍처 도면이다.
도 4는 본 발명의 일 실시예에 따른 RPA 시스템을 예시하는 아키텍처 도면이다.
도 5는 본 발명의 일 실시예에 따른, 둘 이상의 그래픽 요소 검출 기법들로부터의 UE 디스크립터 속성들의 조합을 사용하여 그래픽 요소 검출을 수행하도록 구성되는 컴퓨팅 시스템을 예시하는 아키텍처 도면이다.
도 6은 본 발명의 일 실시예에 따른, RPA 설계자 애플리케이션을 위한 그래픽 요소 검출 기법 구성 인터페이스를 예시한다.
도 7a 및 도 7b는 본 발명의 일 실시예에 따른, RPA 설계자 애플리케이션을 위한 다른 예시적인 그래픽 요소 검출 기법 구성 인터페이스를 도시한다.
도 8은 본 발명의 일 실시예에 따른, 둘 이상의 그래픽 요소 검출 기법들로부터의 UI 디스크립터 속성들의 조합을 사용하여 그래픽 요소 검출을 수행하도록 RPA 워크플로우를 구성하는 프로세스를 예시하는 흐름도이다.
도 9는 본 발명의 일 실시예에 따른, 둘 이상의 그래픽 요소 검출 기법들로부터의 UI 디스크립터 속성들의 조합을 사용하여 그래픽 요소 검출을 수행하기 위한 프로세스를 예시하는 흐름도이다.
달리 지시되지 않는 한, 유사한 참조 부호들은 결부된 도면들의 전체에 걸쳐 일관되게 대응하는 특징들을 나타낸다.
일부 실시예들은 둘 이상의 그래픽 요소 검출 기법들(예컨대, 선택기들, CV, OCR 등)로부터의 UI 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출에 관련된다. "그래픽 요소들"과UI 요소들"은 본 개시에서 교환적으로 사용된다. 그 핵심에서, UI 디스크립터들은 UI 요소들(예컨대, 텍스트 필드들, 버튼들, 라벨들, 메뉴들, 체크박스들 등)을 식별한다. UI 디스크립터들의 일부 유형들은 선택기들, CV 디스크립터들, 이미지 매칭 디스크립터들, OCR 디스크립터들, 다수의 상이한 유형들의 UI 디스크립터들을 직렬로 또는 병렬로 이용할 수도 있는 통합 타겟 디스크립터들 등을 비제한적으로 포함한다. UI 디스크립터들이 UI에서 런타임에 발견된 UI 요소들의 속성들과 주어진 UI 디스크립터에 대한 속성들을 비교하는데 사용될 수도 있다.
일부 실시예들에서, UI 디스크립터들은 각각의 UI 요소 및 그것의 부모들의 속성들을, 예컨대, 확장가능 마크업 언어(Extensible Markup Language)(XML) 프래그먼트에 저장한다. 런타임에, UI에서 발견된 UI 요소들에 대한 속성들은 각각의 RPA 워크플로우 활동을 위한 속성들과의 일치들을 위해 검색될 수 있고, 정확한 일치 또는 "충분히 가까운" 일치가 매칭 임계값 내에서 발견되면, UI 요소는 그에 따라 식별되고 상호작용될 수도 있다. 그 속성들은 텍스트 기반 식별자들(ID들), 클래스들, 역할들 등을 포함할 수도 있다. CV의 경우, 속성들은 타겟 요소의 유형과 멀티-앵커 매칭 접근법에서 사용될 수도 있는 하나 이상의 앵커 요소들에 대한 관계를 포함할 수도 있다. OCR의 경우, 속성들은 , 예를 들어, 저장된 문자열 형태의 텍스트와, 실행 동안 저장된 문자열이 퍼지 매칭되었던 OCR을 통해 발견된 텍스트를 포함할 수도 있다. 임의의 적합한 속성들 및 그래픽 요소 검출 기법들이 본 발명의 범위로부터 벗어남 없이 사용될 수도 있다.
일부 실시예들은 둘 이상의 상이한 그래픽 요소 검출 기법들로부터 자동으로 또는 사용자 정의된 속성들의 혼합체를 검색한다. 예를 들면, 일부 선택기 속성들, 일부 CV 디스크립터 속성들, 및 일부 OCR 디스크립터 속성들은 임의의 그래픽 요소 검출 기법을 단독으로 사용하는 것보다 더 정확할 수도 있는 방식으로 런타임에 그래픽 요소를 총괄하여, 그리고 잠재적으로 동시에 식별하는데 사용될 수도 있다. 예를 들어, 상이한 시각적 외관들을 갖는 스크린 상의 체크박스들의 다양한 그룹들이 있다면, 체크박스 이미지를 식별하기 위한 이미지 매칭 디스크립터와 인근의 앵커 UI 요소들에 관련하여 특정 체크박스의 로케이션에 관계된 멀티-앵커 매칭 정보를 제공하는 CV 디스크립터의 조합을 사용하는 것이 타당할 수도 있다. 이는 단일 그래픽 요소 검출 기법 단독 보다 정확도를 높일 수도 있다.
일부 실시예들에서, 조합된 그래픽 요소 검출 기법이 RPA 설계자 애플리케이션(예컨대, UiPath Studio™)을 사용하여 설계 시간에 구성될 수도 있다. 예를 들면, 즉시 사용 가능한 클릭(out-of-the-box click) 활동이 사용할 각각의 속성들 및 그래픽 요소 검출 기법들의 조합을 동적으로 결정하기 위해 식별될 타겟 그래픽 요소의 유형 및/또는 식별될 타겟 그래픽 요소의 특정한 특성들을 고려하도록 구성될 수 있다. 특정 실시예들에서, RPA 개발자는 활동을 위한 디폴트 로직을 수정하며 그리고/또는 사용될 그래픽 요소 검출 기법들 및 그것의 속성들을 수동으로 제공할 수도 있다. 예를 들면, RPA 개발자는 적용할 그래픽 요소 검출 기법들의 유형들을 선택할 수도 있다. 일부 실시예들에서, RPA 개발자는 선택을 위해 주어진 기법들에 대한 속성들의 리스트로부터 선택할 수도 있으며, 개발자는 그 속성들을 수동으로 입력할 수도 있다는 등등이다.
이들 기법들로부터 사용되는 속성들의 조합은 각각의 기법에 대한 속성들의 서브세트 및/또는 모두일 수 있다. 예를 들면, 일부 실시예들에서, 모든 선택된 기법들에 대한 모든 속성들이 사용될 수도 있다. 그러나, 특정 실시예들에서, 선택기로부터의 하나의 속성이 사용될 수도 있으며, CV 디스크립터로부터의 두 개의 속성들이 사용될 수도 있으며, OCR 디스크립터로부터의 모든 속성들이 사용될 수도 있다는 등등이다.
본 개시에서 사용되는 바와 같이, "스크린"이 특정한 시점의 애플리케이션 UI 또는 애플리케이션 UI의 부분이다. 일부 실시예들에서, UI 요소들 및 스크린들은 특정 유형들의 UI 요소들(예컨대, 버튼들, 체크박스들, 텍스트 필드들 등) 및 스크린들(예컨대, 상단 윈도우들, 모달 윈도우들, 팝업 윈도우들 등)로 추가로 구별될 수도 있다.
일부 실시예들은 XML 프래그먼트에 UI 요소 및 그것의 부모들의 속성들을 저장하는 UI 디스크립터들을 사용한다. 현대 컴퓨팅 시스템들에서, 운영 체제는 UI 트리라고 일반적으로 지칭되는 계층적 데이터 구조로서 각각의 사용자 인터페이스를 일반적으로 나타낸다. 예시적인 UI 트리가 웹 브라우저 애플리케이션에 의해 랜더링되는 웹페이지의 기본이 되는 DOM(document object model)을 포함할 수도 있다.
선택기들은 일부 실시예들에서 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 디스크립터(들), 둘 이상의 유형들의 UI 디스크립터들을 결합하는 통합된 타겟 디스크립터(들), 스크린 이미지 캡처(콘텍스트), 요소 이미지 캡처, 다른 메타데이터 (예컨대, 애플리케이션 및 애플리케이션 버전), 이들의 조합 등을 포함하는 캡슐화된 데이터/구조체(struct) 포맷이다. 캡슐화된 데이터/구조체 포맷은 플랫폼에 대한 향후의 업데이트들로 확장 가능할 수도 있고 위의 정의로 제한되지 않는다. 스크린 상에서 UI 요소를 식별하기 위한 임의의 적합한 UI 디스크립터가 본 발명의 범위로부터 벗어나는 일 없이 사용될 수도 있다. UI 디스크립터들은 RPA 워크플로우에서의 활동들로부터 추출될 수도 있고 UI 애플리케이션들, 스크린들, 및 UI 요소들에 의해 UI 디스크립터들을 그룹화하는 구조화된 스키마에 추가될 수도 있다.
UI 디스크립터들은 이미지 검출 및 정의가 일부 실시예들에서 수행되는 다수의 또는 모든 UI 검출 메커니즘들을 포괄하는 통합된 타겟과 함께 작업할 수도 있다. 통합된 타겟은 UI 요소들을 단일 응집성(cohesive) 접근법으로 식별하고 자동화하는 다수의 기법들을 병합할 수도 있다. 통합된 타겟 디스크립터는 다수의 유형들의 UI 디스크립터들을 직렬로 함께 연쇄시키거나, 그것들을 병행하여 사용하거나, 또는 시구간에 대해 적어도 하나의 기법(예컨대, 선택기)을 먼저 사용한 다음, 첫 번째 기법이 상기 시구간 내에 일치를 발견하지 않으면, 적어도 하나의 다른 기법을 병행하여 실행시킨다. 일부 실시예들에서, 통합된 타겟 디스크립터는 유한 상태 머신(finite state machine)(FSM)처럼 기능을 할 수도 있는데, 제1 콘텍스트에서, 제1 UI 디스크립터 메커니즘이 적용되며, 제2 콘텍스트에서, 제2 UI 디스크립터가 적용되는 등이다. 통합된 타겟은 일부 실시예들에서 첫 번째 두 개의 메커니즘들이 성공적이지 않으면 그래픽 요소를 찾기 위해 선택기 기반 및 드라이버 기반 UI 검출 메커니즘들을 우선순위할 수도 있고 CV, 이미지 매칭, 및/또는 다른 메커니즘들에 의지할 수도 있다.
일부 실시예들에서, 하나 이상의 속성들이 문자열 메트릭들(예컨대, 레벤시테인(Levenshtein) 거리, 해밍거리, 자로-윈클러(Jaro-Winkler 거리) 등), 이들의 조합 등을 사용하여, 특정한 범위 내에서, 특정한 정확도(예컨대, 70% 일치, 80% 일치, 99% 일치 등)로 일치해야 하는 퍼지 매칭이 채용될 수도 있다. 본 기술분야의 통상의 기술자는 유사도 측정값이 유사도의 양, 뿐만 아니라 두 개의 속성 값들 사이의 불일치의 양을 정량화할 수도 있다는 것을 이해할 것이다. 더욱이, 다양한 실시예들에서, 유사도 임계값은 일치를 위해 요구되는 최대 불일치 양 또는 최소 유사도 양을 나타낼 수도 있다.
유사도 측정값을 컴퓨팅하는 선택된 방식에 의존하여, 유사도 임계값은 다양한 해석들을 가질 수 있다. 예를 들면, 유사도 임계값은 두 개의 문자열 사이에서 상이할 수 있는 최대 문자 수 또는 총 문자 수(예컨대, 결합된 문자열 길이)의 비율로서 계산된 불일치의 분수형 정도를 지시할 수도 있다. 일부 실시예들에서, 유사도 임계값은 0과 1 사이, 0과 100 사이, 7과 34 사이 등 과 같은 미리 결정된 간격으로 재스케일링될 수도 있다. 하나의 비제한적인 예에서, 비교적 높은 유사도 임계값(예컨대, 1 또는 100%에 가까움)은 거의 정확한 일치에 대한 요건을 지시하며, 즉, 런타임 타겟에서의 퍼지 속성의 값은 설계 시간 타겟에서의 각각의 속성의 값으로부터 아주 약간만 벗어나도록 허용된다. 반면에, 유사도 임계값이 상대적으로 낮은(예컨대, 0에 가까운) 경우, 각각의 퍼지 속성의 거의 모든 값들이 일치하는 것으로서 간주된다.
특정 실시예들에서, 매칭 허용오차는 속성별로 상이할 수도 있다. 예를 들면, 정확한 일치가 하나 이상의 속성들에 대해 요구될 수도 있고(예컨대, 특정한 정확한 이름을 찾는 것이 바람직할 수도 있음) 퍼지 매칭이 하나 이상의 다른 속성들에 대해 수행될 수도 있다. 각각의 그래픽 요소 검출 기법으로부터 사용되는 속성들의 수 및/또는 유형은 일부 실시예들에서 RPA 개발자에 의해 사용자 특정될 수도 있다.
일부 실시예들에서, 속성들은 속성-값 쌍들 및/또는 속성-값-허용오차 쌍들로서 저장될 수도 있다(예컨대, 퍼지 매칭). 속성-값 쌍들은 일부 실시예들에서 각각의 노드에 의해 표현되는 UI 요소의 이름 및 유형을 지시할 수도 있다. 그러나, 본 기술분야의 통상의 기술자는 본 발명의 범위로부터 벗어나는 일 없이 속성-값 쌍들의 리스트와는 상이한 UI 트리 내에서 특정 노드의 로케이션을 표현하는 다수의 방법들이 있을 수도 있다는 것을 이해할 것이다.
이들 속성-값 쌍들 및/또는 속성-값-허용오차 쌍들은 일부 실시예들에서 태그에 저장될 수도 있고, 각각의 태그는 구현 특정 구분자들(예컨대, "<"로 시작하고 "/>"로 끝남)에 의해 시퀀스 북이 끝나는 문자들의 시퀀스를 포함할 수도 있다. 속성-값 쌍들은 일부 실시예들에서 각각의 노드에 의해 표현되는 UI 요소의 이름 및 유형을 지시할 수도 있다. 그러나, 본 기술분야의 통상의 기술자는 본 발명의 범위로부터 벗어나는 일 없이 속성-값 쌍들의 리스트와는 상이한 UI 트리 내에서 특정 노드의 로케이션을 표현하는 다수의 방법들이 있을 수도 있다는 것을 이해할 것이다.
RPA 로봇에 의한 성공적이고 이상적으로 명확한 식별을 가능하게 하기 위해, 일부 실시예들은 각각의 UI 요소를 특징화하는 요소 ID를 사용하여 각각의 UI 요소를 표현한다. 일부 실시예들에서의 요소 ID는 UI 트리 내의 타겟 노드의 로케이션을 지시하며, 타겟 노드는 각각의 UI 요소를 표현한다. 예를 들면, 요소 ID는 선택된 노드 서브세트의 멤버로서 타겟 노드/UI 요소를 식별할 수도 있다. 선택된 노드 서브세트는 각각의 노드가 다른 노드의 조상 또는 자손 중 어느 하나인 UI 트리를 통해 계보(genealogy), 즉, 자손의 라인을 형성할 수도 있다.
일부 실시예들에서, 요소 ID는 노드 지시자들의 순서화된 시퀀스, UI 트리를 통해 계보 경로를 추적하는 시퀀스, 및 각각의 타겟 노드/UI 요소에서 끝나는 경로를 포함한다. 각각의 노드 지시자는 각각의 UI의 오브젝트 계층구조의 멤버 및 각각의 계층구조와 일치하는 시퀀스 내의 그것의 포지션을 나타낼 수도 있다. 예를 들면, 시퀀스의 각각의 멤버는 이전 멤버의 자손(예컨대, 자식 노드)을 나타낼 수도 있고, 자손(예컨대, 자식 노드)으로서 다음의 멤버를 가질 수도 있다. 하나의 하이퍼 텍스트 마크업 언어(HyperText Markup Language)(HTML) 예에서, 각각의 양식 필드를 나타내는 요소 ID는 각각의 양식 필드 HTML 양식의 자식이며, 이는 결국 웹페이지 등의 특정 섹션의 자식임을 지시할 수도 있다. 계보는 일부 실시예들에서 완전할 필요는 없다.
일부 실시예들은 하나 이상의 멀티-앵커 매칭 속성들을 사용할 수도 있다. 앵커들은 타겟 UI 요소를 독특하게 식별하는 것을 돕는데 사용될 수 있는 다른 UI 요소들이다. 예를 들면, 다수의 텍스트 필드들이 UI에 포함되면, 텍스트 필드만을 검색하는 것은 주어진 텍스트 필드를 식별하는데 불충분하다. 따라서, 일부 실시예들은 주어진 UI 요소를 고유하게 식별하기 위하여 추가적인 정보를 찾는다. 텍스트 필드 예를 사용하여, 이름(first name)을 입력하기 위한 텍스트 필드가 라벨 "First Name"의 우측에 나타날 수도 있다. 이 이름 라벨은 "타겟"인 텍스트 필드를 고유하게 식별하는데 도움이 될 "앵커"로서 설정될 수도 있다.
타겟과 앵커 사이의 다양한 위치적 및/또는 기하학적 연관들이 일부 실시예들에서, 잠재적으로는 하나 이상의 허용오차들 내에서, 타겟을 고유하게 식별하기 위해 사용될 수도 있다. 예를 들면, 앵커 및 타겟에 대한 경계 박스들의 중앙은 선분을 정의하는데 사용될 수도 있다. 그러면 이 선분은 타게/앵커 쌍을 사용하여 타겟을 고유하게 식별하기 위해 허용오차 내의 특정한 길이 및/또는 허용오차 내의 특정한 기울기를 갖는 것이 요구될 수 있다. 그러나, 타겟 및/또는 앵커들에 연관되는 로케이션의 임의의 원하는 포지션이 본 발명의 범위로부터 벗어나는 일 없이 일부 실시예들에서 사용될 수도 있다. 예를 들면, 선분들을 그리기 위한 지점은 중앙, 좌측 상부 귀퉁이, 우측 상부 귀퉁이, 좌측 하부 귀퉁이, 우측 하부 귀퉁이, 경계 박스의 경계 상의 임의의 다른 로케이션, 경계 박스 내의 임의의 로케이션, 경계 박스 성질들에 관련하여 식별된 것으로서의 경계 박스 밖의 로케이션 등에 있을 수도 있다 특정 실시예들에서, 타겟 및 하나 이상의 앵커들은 기하학적 일치를 위해 사용되는 그들의 경계 박스들 내 또는 밖에 상이한 로케이션들을 가질 수도 있다.
위와 같이, 단일 앵커가 스크린 상의 타겟 요소를 특정한 신뢰도로 고유하게 식별하는데 항상 충분하지 않을 수도 있다. 예를 들면, 이름을 입력하기 위한 두 개의 텍스트 필드이 스크린 상의 상이한 로케이션들에서의 각각의 라벨들인 "이름"의 우측에 나타나는 웹 양식을 고려한다. 이 예에서, 하나 이상의 추가적인 앵커들이 주어진 타겟을 고유하게 식별하는데 유용할 수도 있다. 앵커들과 타겟 사의 기하학적 성질들(예컨대, with 허용오차들이 있는 선분 길이들, 각도들, 및/또는 상대 로케이션들)이 타겟을 고유하게 식별하는데 사용될 수도 있다. 사용자에게는 타겟에 대한 일치 강도가 임계값을 초과하기까지 앵커들을 계속 추가하는 것이 요구될 수도 있다.
본 개시에서 사용되는 바와 같이, "사용자"와 "개발자"라는 용어들이 교환적으로 사용된다. 사용자/개발자는 프로그래밍 및/또는 기술 지식을 가질 수도 있거나 또는 가지지 않을 수도 있다. 예를 들면, 일부 실시예들에서, 사용자/개발자는 수동 코딩 없이 RPA 워크플로우에서 활동들을 구성함으로써 RPA 워크플로우들을 생성할 수도 있다. 특정 실시예들에서, 이는, 예를 들어, 다양한 특징들을 클릭, 드래깅, 및 드롭핑함으로써 행해질 수도 있다.
특정한 실시예들은 로봇 프로세스 자동화(RPA)를 위해 채용될 수도 있다. 도 1은 본 발명의 일 실시예에 따른 RPA 시스템(100)을 예시하는 아키텍처 도면이다. RPA 시스템(100)은 개발자가 워크플로우들을 설계하고 구현하는 것을 허용하는 설계자(110)를 포함한다. 설계자(110)는 애플리케이션 통합, 뿐만 아니라 서드파티 애플리케이션들, 관리 정보 기술(IT) 태스크들, 및 비즈니스 IT 프로세스들의 자동화를 위한 솔루션을 제공할 수도 있다. 설계자(110)는 비즈니스 프로세스의 그래픽 표현인 자동화 프로젝트의 개발을 용이하게 할 수도 있다. 간단히 말해서, 설계자(110)는 워크플로우들 및 로봇들의 개발 및 전개를 용이하게 한다.
자동화 프로젝트는 본 개시에서 "활동들"로서 정의되는 워크플로우로 개발된 사용자지정 세트의 단계들 사이의 실행 순서 및 관계의 제어를 개발자에게 제공함으로써 규칙 기반 프로세스들의 자동화를 가능하게 한다. 설계자(110)의 일 실시예의 하나의 상업적 예가 UiPath Studio™이다. 각각의 활동은 버튼 클릭, 파일 판독, 로그 패널에의 기입 등과 같은 액션을 포함할 수도 있다. 일부 실시예들에서, 워크플로우들은 네스트되거나 또는 삽입될 수도 있다.
일부 유형들의 워크플로우들은 시퀀스들, 흐름도들, FSM들, 및/또는 전역 예외 핸들러들을 비제한적으로 포함할 수도 있다. 시퀀스들은 워크플로우를 혼잡하게 하는 일 없이 하나의 활동에서부터 다른 활동으로의 흐름을 가능하게 하는 선형 프로세스들에 특히 적합할 수도 있다. 흐름도들은 더 복잡한 비즈니스 로직에 특히 적합하여, 다수의 분기 로직 오퍼레이터들을 통해 더 다양한 방식으로 활동들의 연결과 결정들의 통합을 가능하게 할 수도 있다. FSM들은 큰 워크플로우들에 특히 적합할 수도 있다. FSM들은 조건(즉, 전이(transition)) 또는 활동에 의해 트리거되는 유한한 수의 상태들을 자신들의 실행에 사용할 수도 있다. 전역 예외 핸들러들은 실행 에러와 마주칠 때에 워크플로우 거동을 결정하는데 그리고 프로세스들을 디버깅하는데 특히 적합할 수도 있다.
일단 워크플로우가 설계자(110)에서 개발되면, 비즈니스 프로세스들의 실행은 지휘자(conductor)(120)에 의해 오케스트레이션되는데, 지휘자는 설계자(110)에서 개발된 워크플로우들을 실행하는 하나 이상의 로봇들(130)을 오케스트레이션한다. 지휘자(120)의 일 실시예의 하나의 상업적 예는 UiPath Orchestrator™이다. 지휘자(120)는 환경에서 리소스들의 생성, 모니터링 및 전개의 관리를 용이하게 한다. 지휘자(120)는 서드파티 솔루션들 및 애플리케이션들을 이용하여, 통합 지점, 또는 집성 지점들 중 하나의 집성 지점으로서 역할을 할 수도 있다.
지휘자(120)는 로봇들(130)의 플릿(fleet)을 관리하여, 중앙 지점으로부터의 로봇들(130)을 연결하고 실행할 수도 있다. 관리될 수도 있는 로봇들(130)의 유형들은 유인 로봇들(132), 무인 로봇들(134), 개발 로봇들(무인 로봇들(134)과 유사하지만, 개발 및 테스트 목적들로 사용됨), 및 비생산 로봇들(유인 로봇들(132)과 유사하지만, 개발 및 테스트 목적들로 사용됨)을 비제한적으로 포함한다. 유인 로봇들(132)은 사용자 이벤트들에 의해 트리거되거나 또는 자동으로 일어나도록 스케줄링될 수도 있고 동일한 컴퓨팅 시스템 상의 사람과 함께 동작할 수도 있다. 유인 로봇들(132)은 중앙집중형 프로세스 전개 및 로깅 매체를 위해 지휘자(120)와 함께 사용될 수도 있다. 유인 로봇들(132)은 인간 사용자가 다양한 태스크들을 수행하도록 도울 수도 있고, 사용자 이벤트들에 의해 트리거될 수도 있다. 일부 실시예들에서, 프로세스들은 이 유형의 로봇에 대한 지휘자(120)로부터 시작될 수 없으며 그리고/또는 그들 프로세스들은 잠긴 스크린 하에서 실행될 수 없다. 특정 실시예들에서, 유인 로봇들(132)은 오직 로봇 트레이 또는 커맨드 프롬프트로부터만 시작될 수 있다. 유인 로봇들(132)은 일부 실시예들에서 인간의 감독 하에 실행되어야 한다.
무인 로봇들(134)은 가상 환경들에서 또는 물리적 머신들 상에서 무인으로 실행되고, 많은 프로세스들을 자동화할 수 있다. 무인 로봇들(134)은 원격 실행, 모니터링, 스케줄링, 및 작업 큐들에 대한 지원의 제공을 담당할 수도 있다. 모든 로봇 유형들에 대한 디버깅은 일부 실시예들에서 설계자(110)에서부터 실행될 수도 있다. 유인 로봇 및 무인 로봇 둘 다는 메인프레임들, 웹 애플리케이션들, VM들, 기업 애플리케이션들(예컨대, SAP®, SalesForce®, Oracle® 등에 의해 생성된 것들), 및 컴퓨팅 시스템 애플리케이션들(예컨대, 데스크톱 및 랩톱 애플리케이션들, 모바일 디바이스 애플리케이션들, 착용가능 컴퓨터 애플리케이션들 등)을 비제한적으로 포함하는 다양한 시스템들 및 애플리케이션들을 자동화할 수도 있다.
지휘자(120)는 프로비저닝(provisioning), 전개, 버저닝(versioning), 구성, 큐잉, 모니터링, 로깅, 및/또는 상호연결성의 제공을 비제한적으로 포함하는 다양한 능력들을 가질 수도 있다. 프로비저닝은 로봇들(130)과 지휘자(120)(예컨대, 웹 애플리케이션) 사이의 연결들의 생성 및 유지보수를 포함할 수도 있다. 전개는 패키지 버전들의 배정된(assigned) 로봇들(130)로의 올바른 전달을 실행을 위해 보장하는 것을 포함할 수도 있다. 버저닝은 일부 실시예들에서 일부 프로세스 또는 구성의 고유 인스턴스들의 관리를 포함할 수도 있다. 구성은 로봇 환경들 및 프로세스 구성들의 유지보수 및 전달을 포함할 수도 있다. 큐잉은 큐들 및 큐 아이템들의 관리를 제공하는 것을 포함할 수도 있다. 모니터링은 로봇 식별 데이터의 추적을 유지하는 것과 사용자 허가들을 유지하는 것을 포함할 수도 있다. 로깅은 데이터베이스(예컨대, SQL 데이터베이스) 및/또는 다른 저장 메커니즘(예컨대, 큰 데이터세트들을 저장하고 빠르게 쿼리 할 수 있는 기능을 제공하는 ElasticSearch®)에 대한 로그들의 저장 및 인덱싱을 포함할 수도 있다. 지휘자(120)는 서드파티 솔루션들 및/또는 애플리케이션들에 대한 중앙 통신 지점으로서 역할을 함으로써 상호연결성을 제공할 수도 있다.
로봇들(130)은 설계자(110)에 내장된 워크플로우들을 실행하는 실행 에이전트들이다. 로봇(들)(130)의 일부 실시예들의 하나의 상업적 예는 UiPath Robots™이다. 일부 실시예들에서, 로봇들(130)은 Microsoft Windows® 서비스 제어 관리자(Service Control Manager)(SCM) 관리 서비스를 디폴트로 설치한다. 그 결과, 이러한 로봇들(130)은 국부 시스템 계정 하에 상호작용 Windows® 세션들을 열 수 있고, Windows® 서비스의 권한을 가진다.
일부 실시예들에서, 로봇들(130)은 사용자 모드로 설치될 수 있다. 이러한 로봇들(130)의 경우, 이는 그들 로봇들이 주어진 로봇(130)이 설치한 사용자와 동일한 권한을 가짐을 의미한다. 이 특징은 또한 각각의 머신의 완전한 이용을 자신의 최대 잠재력에서 보장하는 고밀도(High Density)(HD) 로봇들에 이용 가능할 수도 있다. 일부 실시예들에서, 임의의 유형의 로봇(130)은 HD 환경에서 구성될 수도 있다.
일부 실시예들에서의 로봇들(130)은 각각의 컴포넌트가 특정 자동화 태스크에 전용되는 여러 컴포넌트들로 분할된다. 일부 실시예들에서의 로봇 컴포넌트들은 SCM 관리 로봇 서비스들, 사용자 모드 로봇 서비스들, 실행자들, 에이전트들, 및 커맨드 라인을 비제한적으로 포함한다. SCM 관리 로봇 서비스들은 Windows® 세션들을 관리하고 모니터링하며 지휘자(120)와 실행 호스트들(즉, 로봇들(130)이 실행되는 컴퓨팅 시스템들) 사이의 프록시로서 역할을 한다. 이들 서비스들은 로봇들(130)에 대한 자격증명을 신뢰하고 관리한다. 콘솔 애플리케이션이 국부 시스템 하에서 SCM에 의해 시작된다.
일부 실시예들에서의 사용자 모드 로봇 서비스들은 Windows® 세션들을 모니터링하고 관리하며 지휘자(120)와 실행 호스트들 사이의 프록시로서 역할을 한다. 사용자 모드 로봇 서비스들은 로봇들(130)에 대한 자격증명으로 신뢰를 받고 그 자격증명을 관리할 수도 있다. SCM 관리 로봇 서비스가 설치되지 않으면 Windows® 애플리케이션이 자동으로 시작될 수도 있다.
실행자들은 Windows® 세션 하에서 주어진 작업들을 실행할 수도 있다(즉, 그것들은 워크플로우들을 실행할 수도 있다). 실행자들은 모니터별 DPI(dots per inch) 설정들을 알고 있을 수도 있다. 에이전트들은 시스템 트레이 윈도우에 가용 작업들을 디스플레이하는 Windows® 프리젠테이션 파운데이션(WPF) 애플리케이션들일 수도 있다. 에이전트들은 서비스의 클라이언트일 수도 있다. 에이전트들은 작업들을 시작하거나 또는 중지하는 것과 설정들을 변경하는 것을 요청할 수도 있다. 커맨드 라인은 서비스의 클라이언트이다. 커맨드 라인은 작업들을 시작할 것을 요청할 수 있고 그 작업들의 출력을 기다리는 콘솔 애플리케이션이다.
위에서 설명된 바와 같이 로봇들(130)의 컴포넌트들을 분리하면 개발자들, 지원 사용자들, 및 컴퓨팅 시스템들은 각각의 컴포넌트가 실행되고 있는 것을 더 쉽게 실행하며, 식별하고, 추적할 수 있게 한다. 실행자 및 서비스에 대해 상이한 방화벽 규칙들을 설정하는 것과 같이, 특수한 거동들은 이러한 방식으로 컴포넌트별로 구성될 수도 있다. 실행자는 일부 실시예들에서 모니터링별 DPI 설정들을 항상 알고 있을 수도 있다. 그 결과, 워크플로우들은 그들 워크플로우들이 생성되었던 컴퓨팅 시스템의 구성에 상관없이 임의의 DPI에서 실행될 수도 있다. 설계자(110)로부터의 프로젝트들은 또한 일부 실시예들에서 브라우저 줌 레벨과는 독립적일 수도 있다. DPI 비인식 또는 의도적으로 비인식으로 마킹된 애플리케이션들의 경우, DPI는 일부 실시예들에서 디스에이블될 수도 있다.
도 2는 본 발명의 일 실시예에 따른 전개된 RPA 시스템(200)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, RPA 시스템(200)은 도 1의 RPA 시스템(100)일 수도 있거나, 또는 그 RPA 시스템의 일부일 수도 있다. 클라이언트 측, 서버 측, 또는 양자 모두는 본 발명의 범위로부터 벗어나는 일 없이 임의의 원하는 수의 컴퓨팅 시스템들을 포함할 수도 있다는 것에 주의해야 한다. 클라이언트 측에서, 로봇 애플리케이션(210)이 실행자들(212), 에이전트(214), 및 설계자(216)를 포함한다. 그러나, 일부 실시예들에서, 설계자(216)는 컴퓨팅 시스템(210) 상에서 실행되지 않을 수도 있다. 실행자들(212)은 프로세스들을 실행하고 있다. 여러 비즈니스 프로젝트들은, 도 2에서 도시된 바와 같이, 동시에 실행될 수도 있다. 에이전트(214)(예컨대, Windows® 서비스)가 이 실시예에서의 모든 실행자들(212)에 대한 단일 접촉 지점이다. 이 실시예에서의 모든 메시지들은 지휘자(230)에 로깅되며, 지휘자는 그들 메시지들을 데이터베이스 서버(240), 인덱서 서버(250), 또는 둘 다를 통해 추가로 프로세싱한다. 도 1을 참조하여 위에서 논의된 바와 같이, 실행자들(212)은 로봇 컴포넌트들일 수도 있다.
일부 실시예들에서, 로봇이 머신 이름과 사용자 이름 사이의 연관을 표현한다. 그 로봇은 동시에 다수의 실행자들을 관리할 수도 있다. 동시에 실행되고 있는 다수의 상호작용 세션들을 지원하는 컴퓨팅 시스템들(예컨대, Windows® 서버 2012) 상에서, 다수의 로봇들은 고유 사용자이름을 사용하는 별도의 Windows® 세션에서 각각을 동일한 시간에 실행되고 있을 수도 있다. 이는 위에서의 HD 로봇들이라고 지칭된다.
에이전트(214)는 (예컨대, 로봇이 여전히 기능하고 있음을 지시하는 "심박" 메시지를 주기적으로 전송하는) 로봇의 스테이터스를 전송하고 실행될 패키지의 요구된 버전을 다운로드하는 역할을 또한 담당한다. 에이전트(214)와 지휘자(230) 사이의 통신이 일부 실시예들에서 에이전트(214)에 의해 항상 개시된다. 통지 시나리오에서, 에이전트(214)는 지휘자(230)에 의해 나중에 사용되는 WebSocket 채널을 로봇에 커맨드들(예컨대, 시작, 정지 등)을 전송하기 위해 열 수도 있다.
서버 측에는, 프리젠테이션 계층(웹 애플리케이션(232), 오픈 데이터 프로토콜(Open Data Protocol)(OData) REST(Representative State Transfer) 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)(API) 엔드포인트들(234), 그리고 통지 및 모니터링(236)), 서비스 계층(API 구현예/비즈니스 로직(238)), 및 영속 계층(데이터베이스 서버(240) 및 인덱서 서버(250))가 포함된다. 지휘자(230)는 웹 애플리케이션(232), OData REST API 엔드포인트들(234), 통지 및 모니터링(236), 그리고 API 구현예/비즈니스 로직(238)을 포함한다. 일부 실시예들에서, 사용자가 지휘자(230)의 인터페이스에서 (예컨대, 브라우저(220)를 통해) 수행하는 대부분의 액션들은 다양한 API들을 호출함으로써 수행된다. 이러한 액션들은 본 발명의 범위를 벗어나는 일 없이 로봇들 상의 작업들을 시작하는 것, 큐들에서 데이터를 추가/제거하는 것, 무인 실행을 위한 작업들을 스케줄링하는 것 등을 비제한적으로 포함할 수도 있다. 웹 애플리케이션(232)은 서버 플랫폼의 시각적 계층이다. 이 실시예에서, 웹 애플리케이션(232)은 하이퍼 텍스트 마크업 언어(HTML)와 자바스크립트(JavaScript)(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)는 일부 실시예들에서 WebSocket 통신을 또한 사용할 수도 있다.
영속 계층(persistence layer)은 이 실시예에서 한 쌍의 서버들 ― 데이터베이스 서버(240)(예컨대, SQL 서버) 및 인덱서 서버(250) ― 을 포함한다. 이 실시예에서의 데이터베이스 서버(240)는 로봇들, 로봇 그룹들, 연관된 프로세스들, 사용자들, 규칙들, 스케줄들 등의 구성을 저장한다. 이 정보는 일부 실시예들에서 웹 애플리케이션(232)을 통해 관리된다. 데이터베이스 서버(240)는 큐들 및 큐 아이템들을 관리할 수도 있다. 일부 실시예들에서, 데이터베이스 서버(240)는 (인덱서 서버(250)에 더하여 또는 그 인덱서 서버 대신에) 로봇들에 의해 로깅된 메시지들을 저장할 수도 있다.
인덱서 서버(250)는, 일부 실시예들에서 옵션적인 것으로, 로봇들에 의해 로깅된 정보를 저장하고 인덱싱한다. 특정 실시예들에서, 인덱서 서버(250)는 구성 설정들을 통해 디스에이블될 수도 있다. 일부 실시예들에서, 인덱서 서버(250)는 ElasticSearch®를 사용하는데, 이는 오픈 소스 프로젝트 풀 텍스트 검색 엔진이다. 로봇들(예컨대, 로그 메시지 또는 기입 라인과 같은 활동들을 사용함)에 의해 로깅된 메시지들은 로깅 REST 엔드포인트(들)를 통해 인덱서 서버(250)에 전송될 수도 있으며, 인덱서 서버에서 그 메시지들은 추가의 이용을 위해 인덱싱된다.
도 3은 본 발명의 일 실시예에 따른 설계자(310), 활동들(320, 330), 및 드라이버들(340) 사이의 관계(300)를 예시하는 아키텍처 도면이다. 위와 같이, 개발자가 설계자(310)를 사용하여 로봇들에 의해 실행되는 워크플로우들을 개발한다. 워크플로우들은 사용자 정의 활동들(320)과 UI 자동화 활동들(330)을 포함할 수도 있다. 일부 실시예들은 본 개시에서 컴퓨터 비전(computer vision)(CV)이라 불리는, 이미지에서의 비 텍스트 시각적 컴포넌트들을 식별할 수 있다. 이러한 컴포넌트들에 관련된 일부 CV 활동들은 클릭, 타이핑(type), 텍스트 가져오기, 호버(hover), 요소 존재, 범위 리프레시, 강조표시 등을 비제한적으로 포함할 수도 있다. 일부 실시예들에서의 클릭은, 예를 들어, CV, 광학적 문자 인식(OCR), 퍼지 텍스트 매칭, 및 멀티 앵커를 사용하여 요소를 식별하고, 그 요소를 클릭한다. 타이핑은 위의 것을 사용하여 요소를 식별하고 그 요소에 입력할 수도 있다. 텍스트 가져오기는 특정 텍스트의 로케이션을 식별하고 그 특정 텍스트를 OCR을 사용하여 스캔할 수도 있다. 호버는 요소를 식별하고 그것 위에 호빙할 수도 있다. 요소 존재는 위에서 설명된 기법들을 사용하여 요소가 스크린 상에 존재하는지의 여부를 체크할 수도 있다. 일부 실시예들에서, 설계자(310)에서 구현될 수 있는 수백 또는 심지어 수천 개의 활동들이 있을 수도 있다. 그러나, 임의의 수 및/또는 유형의 활동들은 본 발명의 범위로부터 벗어나는 일 없이 이용 가능할 수도 있다.
UI 자동화 활동들(330)은 하위 레벨 코드(예컨대, CV 활동들)로 작성되고 UI 계층을 통한 애플리케이션들과의 상호작용들을 용이하게 하는 특수한, 하위 레벨 활동들의 서브세트이다. 특정 실시예들에서, UI 자동화 활동들(300)은, 예를 들어, 윈도우 메시지들 등을 통해 사용자 입력을 "시뮬레이션"할 수도 있다. UI 자동화 활동들(330)은 로봇이 원하는 소프트웨어와 상호작용하는 것을 허용하는 드라이버들(340)을 통해 이들 상호작용들을 용이하게 한다. 예를 들면, 드라이버들(340)은 OS 드라이버들(342), 브라우저 드라이버들(344), VM 드라이버들(346), 기업 애플리케이션 드라이버들(348) 등을 포함할 수도 있다.
드라이버들(340)은 후크들을 찾고 키들을 모니터링하는 등 낮은 레벨에서 OS와 상호작용할 수도 있다. 그것들은 Chrome®, 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는 본 발명의 일 실시예에 따른, 둘 이상의 그래픽 요소 검출 기법들로부터의 UE 디스크립터 속성들의 조합을 사용하여 그래픽 요소 검출을 수행하도록 구성되는 컴퓨팅 시스템(500)을 예시하는 아키텍처 도면이다. 일부 실시예들에서, 컴퓨팅 시스템(500)은 본 개시에서 묘사되며 및/또는 설명되는 컴퓨팅 시스템들 중 하나 이상일 수도 있다. 컴퓨팅 시스템(500)은 정보를 통신하기 위한 버스(505) 또는 다른 통신 메커니즘과, 버스(505)에 커플링되어 정보를 프로세싱하는 프로세서(들)(510)를 포함한다. 프로세서(들)(510)는 중앙 프로세싱 유닛(Central Processing Unit)(CPU), 주문형 집적회로(Application Specific Integrated Circuit)(ASIC), 필드 프로그램가능 게이트 어레이(Field Programmable Gate Array)(FPGA), 그래픽 프로세싱 유닛(Graphics Processing Unit)(GPU), 그것들의 다중 인스턴스들, 및/또는 그것들의 임의의 조합을 포함하는 임의의 유형의 일반 또는 특정 목적 프로세서일 수도 있다. 프로세서(들)(510)는 다수의 프로세싱 코어들 또한 가질 수도 있고, 코어들 중 적어도 일부는 특정 기능들을 수행하도록 구성될 수도 있다. 다중 병렬 프로세싱이 일부 실시예들에서 사용될 수도 있다. 특정 실시예들에서, 적어도 하나의 프로세서(들)(510)는 생물학적 뉴런들을 흉내내는 프로세싱 요소들을 포함하는 신경모방(neuromorphic) 회로일 수도 있다. 일부 실시예들에서, 신경모방 회로들은 폰 노이만 컴퓨팅 아키텍처의 전형적인 컴포넌트들을 요구하지 않을 수도 있다.
컴퓨팅 시스템(500)은 프로세서(들)(510)에 의해 실행될 정보 및 명령들을 저장하기 위한 메모리(515)를 더 포함한다. 메모리(515)는 임의의 조합의 랜덤 액세스 메모리(Random Access Memory)(RAM), 판독 전용 메모리(Read Only Memory)(ROM), 플래시 메모리, 캐시, 자기 또는 광학적 디스크와 같은 정적 스토리지, 또는 임의의 다른 유형들의 컴퓨터 판독가능 비일시적 매체 또는 그 조합들로 구성될 수 있다. 컴퓨터 판독가능 비일시적 매체는 프로세서(들)(510)에 의해 액세스될 수 있고 휘발성 미디어, 비휘발성 미디어, 또는 둘 다를 포함할 수도 있는 임의의 가용 매체일 수도 있다. 그 매체들은 또한 탈착식, 비탈착식, 또는 둘 다일 수도 있다.
덧붙여, 컴퓨팅 시스템(500)은 무선 및/또는 유선 연결을 통해 통신 네트워크에 대한 액세스를 제공하는 통신 디바이스(520), 이를테면 트랜시버를 포함한다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위로부터 벗어나는 일 없이 주파수 분할 다중 접속(Frequency Division Multiple Access)(FDMA), SC-FDMA(Single Carrier FDMA), 시분할 다중 접속(Time Division Multiple Access)(TDMA), 코드 분할 다중 접속(Code Division Multiple Access)(CDMA), 직교 주파수 분할 다중화(Orthogonal Frequency Division Multiplexing)(OFDM), 직교 주파수 분할 다중 접속(Orthogonal Frequency Division Multiple Access)(OFDMA), GSM(Global System for Mobile) 통신들, 일반 패킷 무선 서비스(General Packet Radio Service)(GPRS), 유니버셜 이동 통신 시스템(Universal Mobile Telecommunications System)(UMTS), cdma2000, 광대역 CDMA(W-CDMA), 고속 다운링크 패킷 접속(High-Speed Downlink Packet Access)(HSDPA), 고속 업링크 패킷 접속(High-Speed Uplink Packet Access)(HSUPA), 고속 패킷 접속(High-Speed Packet Access)(HSPA), LTE(Long Term Evolution), LTE-A(LTE Advanced), 802.11x, Wi-Fi, Zigbee, 초광대역(UWB), 802.16x, 802.15, 홈 노드-B(HnB), 블루투스, 무선 주파수 식별(RFID), IrDA(Infrared Data Association), 근접장 통신들(NFC), 5세대(5G), 새 무선(New Radio)(NR), 그것들의 임의의 조합, 및/또는 임의의 다른 현재 존재하거나 또는 장래에 구현되는 통신 표준 및/또는 프로토콜을 사용하도록 구성될 수도 있다. 일부 실시예들에서, 통신 디바이스(520)는 본 발명의 범위로부터 벗어나는 일 없이 단일, 어레이, 위상, 스위칭, 빔포밍, 빔조향(beamsteering), 이들의 조합, 및 또는 임의의 다른 안테나 구성인 하나 이상의 안테나들을 포함할 수도 있다.
프로세서(들)(510)는 디스플레이(525), 이를테면 플라즈마 디스플레이, 액정 디스플레이(Liquid Crystal Display)(LCD), 발광 다이오드(Light Emitting Diode)(LED) 디스플레이, 전계 방출 디스플레이(Field Emission Display)(FED), 유기 발광 다이오드(Organic Light Emitting Diode)(OLED) 디스플레이, 플렉시블 OLED 디스플레이, 플렉시블 기판 디스플레이, 프로젝션 디스플레이, 4K 디스플레이, 고품위 디스플레이, 망막® 디스플레이, IPS(In-Plane Switching) 디스플레이, 또는 사용자에게 정보를 디스플레이하기 위한 임의의 다른 적합한 디스플레이에 버스(505)를 통해 추가로 커플링된다. 디스플레이(525)는 저항성, 용량성, 표면 음향 파(surface-acoustic wave)(SAW) 용량성, 적외선, 광학적 이미징, 분산적 신호 기술, 음향 펄스 인식, 좌절된 내부 전반사(frustrated total internal reflection) 등을 사용하여 터치(햅틱) 디스플레이, 3차원(3D) 터치 디스플레이, 멀티 입력 터치 디스플레이, 멀티 터치 디스플레이 등으로서 구성될 수도 있다. 임의의 적합한 디스플레이 디바이스 및 햅틱 I/O는 본 발명의 범위로부터 벗어나는 일 없이 사용될 수도 있다.
키보드(530)와 커서 제어 디바이스(535), 이를테면 컴퓨터 마우스, 터치패드 등은 사용자가 컴퓨팅 시스템(500)와 인터페이싱하는 것을 가능하게 하기 위해 버스(505)에 추가로 커플링된다. 그러나, 특정 실시예들에서, 물리적 키보드 및 마우스가 존재하지 않을 수도 있고, 사용자는 디스플레이(525) 및/또는 터치패드(도시되지 않음)를 통해 단독으로 디바이스와 상호작용할 수도 있다. 입력 디바이스들의 임의의 유형 및 조합이 설계 선택 사항으로서 사용될 수도 있다. 특정 실시예들에서, 물리적 입력 디바이스 및/또는 디스플레이가 존재하지 않는다. 예를 들면, 사용자는 통신하는 다른 컴퓨팅 시스템을 통해 원격으로 컴퓨팅 시스템(500)과 상호작용할 수도 있거나, 또는 컴퓨팅 시스템(500)은 자율적으로 동작할 수도 있다.
메모리(515)는 프로세서(들)(510)에 의해 실행될 때 기능을 제공하는 소프트웨어 모듈들을 저장한다. 그 모듈들은 컴퓨팅 시스템(500)을 위한 운영 체제(540)를 포함한다. 모듈들은 본 개시에서 설명되는 프로세스들의 전체 또는 부분 또는 그 파생물들을 수행하도록 구성되는 결합된 기법 그래픽 요소 검출 모듈(545)을 더 포함한다. 컴퓨팅 시스템(500)은 추가적인 기능을 포함하는 하나 이상의 추가적인 기능 모듈들(550)을 포함할 수도 있다.
본 기술분야의 통상의 기술자는 "시스템"이 본 발명의 범위로부터 벗어나는 일 없이 서버, 내장형 컴퓨팅 시스템, 개인용 컴퓨터, 콘솔, 개인 정보 단말기(personal digital assistant)(PDA), 셀 전화기, 태블릿 컴퓨팅 디바이스, 양자 컴퓨팅 시스템, 또는 임의의 다른 적합한 컴퓨팅 디바이스, 또는 디바이스들의 조합으로서 실시될 수 있다는 것을 이해할 것이다. 위에서 설명된 기능들을 "시스템"에 의해 수행되는 것으로서 제시하는 것은 본 발명의 범위를 어떠한 방법으로도 제한할 의도는 아니며, 본 발명의 많은 실시예들 중 하나를 제공하려는 의도이다. 실제로, 본 개시물에서 개시되는 방법들, 시스템들, 및 장치들은 클라우드 컴퓨팅 시스템들을 포함하여, 컴퓨팅 기술과 일치하는 국부적이고 분산된 형태들로 구현될 수도 있다.
이 명세서에서 설명되는 시스템 특징들의 일부는 그것들의 구현 독립성을 더 크게 강조하기 위하여 모듈들로서 제시되었다는 것에 주의해야 한다. 예를 들어, 모듈이 맞춤형 VLSI(very large scale integration) 회로들 또는 게이트 어레이들, 로직 칩들과 같은 기성(off-the-shelf) 반도체들, 트랜지스터들, 또는 다른 개별 부품들을 포함하는 하드웨어 회로로서 구현될 수도 있다. 모듈이 필드 프로그램가능 게이트 어레이들, 프로그램가능 어레이 로직, 프로그램가능 로직 디바이스들, 그래픽 프로세싱 유닛들 등과 같은 프로그램가능 하드웨어 디바이스들로 또한 구현될 수도 있다.
모듈이 다양한 유형들의 프로세서들에 의한 실행을 위해 적어도 부분적으로는 소프트웨어로 또한 구현될 수도 있다. 식별된 실행가능 코드 유닛이, 예를 들면, 오브젝트, 절차, 또는 함수로서 편성될 수도 있는, 예를 들면, 컴퓨터 명령들의 하나 이상의 물리적 또는 논리적 블록들을 포함할 수도 있다. 그럼에도 불구하고, 식별된 모듈의 실행가능물(executable)들은 물리적으로 함께 위치될 필요는 없지만, 논리적으로 함께 연결될 때, 모듈을 포함하고 그 모듈에 대한 언급된 목적을 성취하는 상이한 로케이션들에 저장된 이질적인 명령들을 포함할 수도 있다. 게다가, 모듈들은 본 발명의 범위로부터 벗어나는 일 없이 데이터를 저장하는데 사용되는, 예를 들면, 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 임의의 다른 이러한 컴퓨터 판독가능 비일시적 매체일 수도 있는 컴퓨터 판독가능 매체 상에 저장될 수도 있다.
실제로, 실행가능 코드 모듈이 단일 명령, 또는 다수의 명령들일 수도 있고, 심지어, 상이한 프로그램들 중에서, 그리고 여러 메모리 디바이스들에 걸쳐 여러 상이한 코드 세그먼트들을 통해 분산될 수도 있다. 마찬가지로, 운용 데이터(operational data)는 본 명세서에서는 모듈들 내에서 식별되고 예시될 수도 있고, 임의의 적합한 형태로 구체화되고 임의의 적합한 유형의 데이터 구조 내에서 조직될 수도 있다. 운용 데이터는 단일 데이터 세트로서 수집될 수도 있거나, 또는 상이한 저장 디바이스들에 걸쳐를 포함하여 상이한 로케이션들에 걸쳐 분산될 수도 있고, 시스템 또는 네트워크 상의 단지 전자 신호들로서 적어도 부분적으로 존재할 수도 있다.
위와 같이, 일부 실시예들은 UI에서 그래픽 요소들을 식별하기 위해 둘 이상의 그래픽 요소 검출 기법들로부터의 속성들을 채용한다. 이들 기법들은 일부 실시예들에서 RPA 설계자 애플리케이션에서 설계 시간에 RPA 워크플로우 활동들을 위해 구성될 수도 있다. 도 6a는 본 발명의 일 실시예에 따른, RPA 설계자 애플리케이션(600)을 위한 그래픽 요소 검출 기법 구성 인터페이스를 예시한다. RPA 설계자 애플리케이션(600)은 RPA 워크플로우 개발 페인(610)을 포함한다. 사용자가 UI에서 그래픽 요소와 상호작용하는 활동을 클릭할 때, 그래픽 요소 검출 기법 구성 페인(620)은 해당 활동에 대해 가능한 그래픽 요소 검출 기법들 및 각각의 속성들을 도시한다.
그래픽 요소 검출 기법 구성 페인(620)은 다수의 그래픽 요소 검출 기법들 및 그것들의 연관된 속성들 중에서 선택할 능력을 RPA 개발자에게 제공한다. 삼각형(622)이 RPA 개발자가 각각의 그래픽 요소 검출 기법에 대한 속성들의 리스트를 보이거나 또는 숨기는 것을 허용한다. 그래픽 요소 검출 기법 선택 체크박스(624)가, RPA 개발자가 주어진 그래픽 요소 검출 기법에 대한 속성들의 모두를 한 번에 선택 또는 선택해제하는 것을 허용한다. 속성 체크박스(626)는 RPA 개발자가 각각의 속성을 선택 또는 선택해제하는 것을 허용한다.
일부 실시예들에서, 퍼지 매칭은 속성들을 위해 채용될 수도 있다. 퍼지 매칭 라디오 버튼(628)을 선택함으로써, RPA 개발자는 각각의 퍼지 매칭 임계값 필드(629)가 나타나게 할 수 있다. 그러면 RPA 개발자는 퍼지 매칭을 위한 임계값을 특정할 수 있다. 일부 실시예들에서, 슬라이더들, XML의 수동 편집 등을 비제한적으로 포함하는 다른 상호작용 메커니즘들이 사용될 수도 있다. 예를 들면, 속성들을 포함하는 다음과 같은 태그가 디스플레이될 수도 있으며:
<wnd app='java.exe' cls='SunAwtFrame' title='SwingSet2'
matching:title='fuzzy' fuzzylevel:title='0.8' />
여기서 "matching:title" 및 "fuzzylevel:title" 속성들은 <wnd /> 태그에 추가되었다. matching:title 속성은 현재 태그의 "title" 속성의 값이 런타임에 퍼지 매칭될 것임을 나타내기 위한 값 "fuzzy"를 갖는다. fuzzylevel:title 속성의 값은 개발자에 의해 특정된 원하는 퍼지 유사도 임계값(이 예에서, 0.8)을 나타낸다. 본 기술분야의 통상의 기술자는 본 발명의 범위로부터 벗어나는 일 없이 퍼지 매칭을 위해 선택된 속성에 귀마킹(earmarking)하는 퍼지성(fuzziness) 플래그를 인코딩하는 많은 다른 방법들이 있을 수도 있다는 것을 당업자는 이해할 것이다.
일부 실시예들에서, RPA 설계자 애플리케이션은 속성들을 수동으로 검색하기 위한 능력을 RPA 개발자들에게 제공할 수도 있다. 예를 들면, RPA 설계자 애플리케이션(600)은 RPA 개발자 유형들 텍스트로서 속성에 대한 검색을 수행할 수도 있는 속성 검색 필드(630)를 포함한다. 특정 실시예들에서, 매칭 속성들의 리스트가, 만약 있다면, 타이핑되는 각각의 문자와 함께 나타날 수도 있다.
이 예에서, 클릭 활동(612)은 특정한 체크박스를 클릭하도록 구성되었다. 그러나, 하나 이상의 그래픽 요소들과 상호작용하려는 임의의 적합한 활동이 본 발명의 범위로부터 벗어나는 일 없이 사용되고 구성될 수도 있다. 각각의 적합한 활동에 대한 그래픽 요소 검출 기법(들)은 원하는 RPA 액션들을 수행하기 위해 이러한 방식으로 구성될 수도 있다. 특정 실시예들에서, RPA 개발자는 하나 이상의 활동들에 대한 단일 그래픽 요소 검출 기법과 하나 이상의 다른 활동들에 대한 다수의 동시 그래픽 요소 검출 기법들만을 사용하도록 선택될 수도 있다. 이는 매우 유연한 RPA 개발 도구를 제공한다.
도 7a 및 도 7b는 본 발명의 일 실시예에 따른, RPA 설계자 애플리케이션을 위한 다른 예시적인 그래픽 요소 검출 기법 구성 인터페이스(700)를 도시한다. 그래픽 요소 검출 기법 구성 인터페이스(600)에서와 같이, 그래픽 요소 검출 기법 구성 인터페이스(700)는 클릭 활동(712)이 있는 RPA 워크플로우 개발 페인(710), 그래픽 요소 검출 기법 구성 페인(720), 및 속성 검색 필드(730)을 포함한다. 그러나, 이 실시예에서, 다른 그래픽 요소 검출 기법들은 통합 타겟 기법(721) 내에 네스팅된다. 통합 타겟 기법(721)이 선택되면, 도 7a에서와 같이, 다른 기법들을 직렬로, 병행하여, 또는 시구간 동안 기법들 중 적어도 하나의 기법을 적용하는 통합된 타겟 접근법이 사용될 것이고 그 다음에 시구간에서 일치가 발견되지 않으면, 적어도 하나의 다른 기법이 병행하여 채용된다.
통합 타겟 기법(721)이 선택해제되면, 개발자는 원하는 기법들 및/또는 속성들을 선택 및 선택해제할 수도 있다. 삼각형(722)이 RPA 개발자가 각각의 그래픽 요소 검출 기법에 대한 속성들의 리스트를 보이거나 또는 숨기는 것을 허용한다. 그래픽 요소 검출 기법 선택 체크박스(724)가, RPA 개발자가 주어진 그래픽 요소 검출 기법에 대한 속성들의 모두를 한 번에 선택 또는 선택해제하는 것을 허용한다. 속성 체크박스(726)는 RPA 개발자가 각각의 속성을 선택 또는 선택해제하는 것을 허용한다. 일부 실시예들에서, 퍼지 매칭은 속성들을 위해 채용될 수도 있다. 퍼지 매칭 라디오 버튼(728)을 선택함으로써, RPA 개발자는 각각의 퍼지 매칭 임계값 필드(729)가 나타나게 할 수 있다.
도 8은 본 발명의 일 실시예에 따른, 둘 이상의 그래픽 요소 검출 기법들로부터의 UI 디스크립터 속성들의 조합을 사용하여 그래픽 요소 검출을 수행하도록 RPA 워크플로우를 구성하는 프로세스(800)를 예시하는 흐름도이다. 일부 실시예들에서, 프로세스(800)는 도 6 또는 도 7a 및 도 7b의 RPA 설계자 애플리케이션들(600 또는 700)에 의해 수행될 수도 있다. 프로세스는 둘 이상의 그래픽 요소 검출 기법들로부터의 UI 디스크립터 속성들의 조합을 사용하여 그래픽 요소 검출을 수행하도록 구성되기 위해 810의 RPA 워크플로우에서 활동 선택을 수신하는 것으로 시작한다. 일부 실시예들에서, 그래픽 요소 검출 기법들의 유형들 및/또는 UI 디스크립터 속성들은 활동(예컨대, 클릭, 텍스트 획득, 호버 등)에 의해 수행되는 액션, 그래픽 요소 유형(예컨대, 버튼, 텍스트 필드, 등), 및/또는 RPA 개발자에 의해 지시된 특정 그래픽 요소(즉, 사용자가 스크린 상에서 선택한 요소와 애플리케이션에 존재하는 다른 요소들)에 기초하여 820에서 자동으로 선택된다. 특정 그래픽 요소에 관하여, 만일 RPA 개발자가, 예를 들어, 하나의 OK 버튼을 클릭하지만 스크린 상에 두 개의 OK 버튼들이 있다면, 일부 속성들은 두 개의 그렇지 않으면 동일한 OK 버튼들 간을 구별하기 위해 자동으로 추가될 수도 있다. 예를 들면, UI 트리를 사용할 때, UI 트리는 RPA 개발자가 스크린 상의 그래픽 요소를 가리킬 때, UI 트리에서의 속성들의 적어도 일부가 다른 그래픽 요소들에 대한 것보다는 해당 그래픽 요소에 대해 상이한 방식으로 일반적으로 구축된다. RPA 설계자 애플리케이션은 활동을 맞춤 구성하기 위하여 830에서 RPA 개발자로부터 그래픽 요소 검출 기법들에 대한 속성들의 선택들 및/또는 수정들을 수신할 수도 있다.
그 다음에 RPA 설계자 애플리케이션은 840에서 선택된 그래픽 요소 검출 기법들 및 속성들에 기초하여 활동을 구성한다. 더 많은 활동들이 구성되어야 하면, RPA 개발자는 다른 활동을 선택할 수도 있고 프로세스는 단계 810으로 복귀한다. 일단 원하는 활동(들)이 구성되면, RPA 설계자 애플리케이션은 850에서 구성된 활동(들)을 포함하는 RPA 워크플로우를 구현하기 위해 RPA 로봇을 생성한다. 그 다음에 프로세스는 종료되거나 또는 도 9로 진행한다.
도 9는 본 발명의 일 실시예에 따른, 둘 이상의 그래픽 요소 검출 기법들로부터의 UI 디스크립터 속성들의 조합을 사용하여 그래픽 요소 검출을 수행하기 위한 프로세스(900)를 예시하는 흐름도이다. 일부 실시예들에서, 프로세스(900)는 도 6 또는 도 7a 및 도 7b의 RPA 설계자 애플리케이션들(600 또는 700)를 통해 생성된 RPA 로봇에 의해 런타임에 구현될 수도 있다. 프로세스는 910에서 UI 요소 속성들을 식별하기 위해 UI(예컨대, 스크린샷, 애플리케이션 윈도우의 이미지 등)를 분석하는 것으로 시작된다. UI 요소 속성들은 이미지들, 텍스트, 그래픽 요소들 사이의 관계들, UI에서의 그래픽 요소들의 계층적 표현 등을 비제한적으로 포함할 수도 있다. 식별은 CV, OCR, API 호들, 텍스트 파일들(예컨대, HTML, XML 등)의 분석, 이들의 조합 등을 통해 수행될 수도 있다.
UI가 분석된 후, UI 요소 속성들은 920에서 활동에 대한 둘 이상의 그래픽 요소 검출 기법들의 구성된 UI 디스크립터 속성들과 비교된다. 이는, 예를 들어, 도 8의 단계 840에서 활동의 구성에 기초할 수도 있다. 그래픽 요소 검출 기법들의 속성들에 일치하는 UI 요소가 정확한 일치 또는 임계값 일치를 통해 930에서 발견되면, UI 요소를 수반하는 해당 활동(예컨대, 버튼 클릭, 텍스트 입력, 메뉴와의 상호작용 등)에 연관되는 액션은 940에서 수행된다. 950에서 더 많은 활동들이 있다면, 프로세스는 다음의 활동을 위해 단계 920로 진행한다. 그러나, 그래픽 요소 검출 기법들의 속성들에 일치하는 UI 요소가 930에서 발견되지 않으면, 960에서 예외를 두고 프로세스는 종료된다.
도 8 및 도 9에서 수행되는 프로세스 단계들은 본 발명의 실시예들에 따라, 도 8 및 도 9에서 설명된 프로세스(들) 중 적어도 일부를 수행하기 위한 프로세서(들)를 위한 명령들을 인코딩하는 컴퓨터 프로그램에 의해 수행될 수도 있다. 컴퓨터 프로그램은 컴퓨터 판독가능 비일시적 매체 상에 수록될 수도 있다. 컴퓨터 판독가능 매체는 데이터를 저장하는데 사용되는 하드 디스크 드라이브, 플래시 디바이스, RAM, 테이프, 및/또는 임의의 다른 이러한 매체 또는 매체들의 조합일 수도 있지만 이것들로 제한되지 않는다. 컴퓨터 프로그램은 컴퓨터 판독가능 매체 상에 또한 저장될 수도 있는 도 8 및 도 9에서 설명되는 프로세스 단계들의 전체 또는 부분을 구현하기 위해 컴퓨팅 시스템의 프로세서(들)(예컨대, 도 5의 컴퓨팅 시스템(500)의 프로세서(들)(510))를 제어하기 위한 인코딩된 명령들을 포함할 수도 있다.
컴퓨터 프로그램은 하드웨어, 소프트웨어, 또는 하이브리드 구현예로 구현될 수 있다. 컴퓨터 프로그램은 서로 동작적으로 통신하는, 그리고 정보 또는 명령들을 디스플레이하기 위해 전달하도록 설계되는 모듈들로 구성될 수 있다. 컴퓨터 프로그램은 범용 컴퓨터, ASIC, 또는 임의의 다른 적합한 디바이스 상에서 동작하도록 구성될 수 있다.
본 발명의 다양한 실시예들의 컴포넌트들은, 본 개시에서 일반적으로 설명되고 도면들에서 예시된 바와 같이, 매우 다양한 상이한 구성들로 배열되고 설계될 수도 있다는 것이 쉽사리 이해될 것이다. 따라서, 본 발명의 실시예들의 상세한 설명은, 첨부된 도면들에서 나타낸 바와 같이, 청구된 바와 같은 발명의 범위로 제한될 의도는 아니고, 본 발명의 선택된 실시예들을 나타낼 뿐이다.
이 명세서의 전체에 걸쳐 설명되는 본 발명의 특징들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적합한 방식으로 결합될 수도 있다. 예를 들어, "특정한 실시예들", "일부 실시예들", 또는 유사한 언어표현에 대한 이 명세서의 전체에 걸친 언급은 실시예에 관련하여 설명된 특정 특징, 구조, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미한다. 따라서, 이 명세서의 전체에 걸친 "특정 실시예들에서", "일부 실시예에서", "다른 실시예들에서", 또는 유사한 언어표현의 문구들의 출현은 모두가 반드시 실시예들의 동일한 그룹을 지칭하는 것은 아니고 설명된 특징들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 임의의 적합한 방식으로 결합될 수도 있다.
특징들, 장점들, 또는 유사한 언어에 대한 이 명세서의 전체에 걸친 언급은 본 발명으로 실현될 수도 있는 특징들 및 장점들의 모두가 본 발명의 임의의 단일 실시예이거나 또는 그러한 실시예 안에 있음을 의미하지 않는다는 것에 주의해야 한다. 오히려, 특징들 및 장점들을 언급하는 언어표현은 일 실시예에 관련하여 설명되는 특정 특징, 장점, 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미하는 것으로 이해된다. 따라서, 이 명세서의 전체에 걸친 특징들 및 장점들, 및 유사한 언어의 논의는 동일한 실시예를 참조하지만 반드시 그런 것은 아닐 수도 있다.
더욱이, 본 발명의 설명된 특징들, 장점들, 및 특성들은 하나 이상의 실시예들에서 임의의 적합한 방식으로 결합될 수도 있다. 본 기술분야의 통상의 기술자는 본 발명이 특정 실시예의 특정 특징들 또는 장점들 하나 이상 없이도 실시될 수 있다는 것을 인식할 것이다. 다른 경우들에서, 추가적인 특징들 및 장점들은 본 발명의 모든 실시예들에서 존재하지 않을 수도 있는 특정 실시예들에서 인식될 수도 있다.
본 기술분야의 통상의 기술을 가진 자는 위에서 논의된 바와 같은 본 발명이 상이한 순서의 단계들로, 그리고/또는 개시된 것들과는 상이한 구성들의 하드웨어 요소들로 실시될 수도 있다는 것을 쉽사리 이해할 것이다. 그러므로, 본 발명이 이들 바람직한 실시예들에 기초하여 설명되었지만, 특정한 수정들, 변경들, 및 대안적 구성들이 본 발명의 정신 및 범위 내에 있으면서도 명백할 것이라는 것이 본 기술분야의 통상의 기술자에게 명백할 것이다. 그러므로, 본 발명의 한계와 경계를 결정하기 위하여, 첨부의 청구항들이 참조되어야 한다.

Claims (21)

  1. 사용자 인터페이스(user interface)(UI)에서 그래픽 요소들을 검출하기 위한 컴퓨터 구현 방법에 있어서,
    설계자 애플리케이션에 의해, 로봇 프로세스 자동화(robotic process automation)(RPA) 워크플로우에서 구성될 활동의 선택을 수신하는 단계;
    상기 설계자 애플리케이션에 의해, 복수의 그래픽 요소 검출 기법들 중 하나 이상의 그래픽 요소 검출 기법, 상기 그래픽 요소 검출 기법들의 하나 이상의 UI 디스크립터 속성, 또는 이들의 조합에 대한 선택들 및 수정들 중 적어도 하나를 수신하는 단계; 및
    상기 설계자 애플리케이션에 의해, 상기 수신된 선택들 및 수정들 중 적어도 하나에 기초하여, 상기 활동을 구성하는 단계
    를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 설계자 애플리케이션에 의해, 상기 그래픽 요소 검출 기법들 중 하나 이상, 상기 UI 디스크립터 속성들 중 하나 이상, 또는 양자 모두를 자동으로 구성하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  3. 제2항에 있어서,
    상기 자동 구성은 상기 활동에 의해 구현된 액션, 타겟 그래픽 요소의 유형, 상기 UI에서의 하나 이상의 다른 그래픽 요소의 존재, 또는 이들의 조합에 기초하여 상기 설계자 애플리케이션에 의해 수행되는 것인, 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    상기 단계들은 적어도 하나의 추가적인 활동에 대해 반복되는 것인, 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    상기 설계자 애플리케이션에 의해, 구성된 활동을 구현하도록 구성되는 RPA 로봇을 생성하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    상기 RPA 로봇은 상기 복수의 그래픽 요소 검출 기법들 중 적어도 하나의 그래픽 요소 검출 기법에 대해 상기 UI 디스크립터 속성들의 서브세트를 사용하도록 구성되는 것인, 컴퓨터 구현 방법.
  7. 제5항에 있어서,
    상기 RPA 로봇에 의해, UI 요소 속성들을 식별하기 위해 런타임에 UI를 분석하는 단계;
    상기 RPA 로봇에 의해, 상기 UI 요소 속성들을 상기 활동을 위해 구성된 UI 디스크립터 속성들에 비교하는 단계; 및
    상기 복수의 그래픽 요소 검출 기법들의 상기 속성들에 일치하는 UI 요소가 정확한 일치 또는 임계값 일치를 통해 발견될 때:
    상기 RPA 로봇에 의해, 상기 UI 요소를 수반하는 활동에 연관되는 액션을 취하는 단계
    를 더 포함하는, 컴퓨터 구현 방법.
  8. 제7항에 있어서,
    UI 속성들은 이미지들, 텍스트, 상기 UI에서의 그래픽 요소들 사이의 관계들, 상기 UI에서의 상기 그래픽 요소들의 계층적 표현, 또는 이들의 조합을 포함하는 것인, 컴퓨터 구현 방법.
  9. 제7항에 있어서,
    상기 분석하는 단계, 상기 비교하는 단계, 및 상기 액션을 취하는 단계는 적어도 하나의 추가적인 활동에 대해 반복되는 것인, 컴퓨터 구현 방법.
  10. 제1항에 있어서,
    상기 UI 디스크립터들의 유형들은 선택기, 컴퓨터 비전(computer vision)(CV) 디스크립터, 이미지 매칭 디스크립터, 및 광학적 문자 인식(optical character recognition)(OCR) 디스크립터 중 둘 이상을 포함하는 것인, 컴퓨터 구현 방법.
  11. 컴퓨터 프로그램을 저장한 컴퓨터 판독가능 비일시적 매체에 있어서,
    상기 컴퓨터 프로그램은 적어도 하나의 프로세서로 하여금, 동작들을 수행하게 하도록 구성되고,
    상기 동작들은,
    로봇 프로세스 자동화(RPA) 워크플로우에서 구성될 활동의 선택을 수신하는 것;
    복수의 그래픽 요소 검출 기법들 중 하나 이상의 그래픽 요소 검출 기법, 상기 그래픽 요소 검출 기법들의 하나 이상의 UI 디스크립터 속성, 또는 이들의 조합에 대한 선택들 및 수정들 중 적어도 하나를 수신하는 것; 그리고
    상기 수신된 선택들 및 수정들 중 적어도 하나에 기초하여, 상기 활동을 구성하는 것
    을 포함하는, 컴퓨터 판독가능 비일시적 매체.
  12. 제11항에 있어서,
    상기 동작들은,
    상기 그래픽 요소 검출 기법들 중 하나 이상, 상기 UI 디스크립터 속성들 중 하나 이상, 또는 양자 모두를 자동으로 구성하는 것을 더 포함하는, 컴퓨터 판독가능 비일시적 매체.
  13. 제12항에 있어서,
    상기 자동 구성은 상기 활동에 의해 구현된 액션, 타겟 그래픽 요소의 유형, 상기 UI에서의 하나 이상의 다른 그래픽 요소의 존재, 또는 이들의 조합에 기초하여 수행되는 것인, 컴퓨터 판독가능 비일시적 매체.
  14. 제11항에 있어서,
    상기 동작들은 적어도 하나의 추가적인 활동에 대해 반복되는 것인, 컴퓨터 판독가능 비일시적 매체.
  15. 제11항에 있어서,
    상기 컴퓨터 프로그램은 또한, 상기 적어도 하나의 프로세서로 하여금 구성된 활동을 구현하도록 구성되는 RPA 로봇을 생성하게 하도록 구성되는 것인, 컴퓨터 판독가능 비일시적 매체.
  16. 제15항에 있어서,
    상기 RPA 로봇은 상기 복수의 그래픽 요소 검출 기법들 중 적어도 하나의 그래픽 요소 검출 기법에 대해 상기 UI 디스크립터 속성들의 서브세트를 사용하도록 구성되는 것인, 컴퓨터 판독가능 비일시적 매체.
  17. 제11항에 있어서,
    상기 UI 디스크립터들의 유형들은 선택기, 컴퓨터 비전(CV) 디스크립터, 이미지 매칭 디스크립터, 및 광학적 문자 인식(OCR) 디스크립터 중 둘 이상을 포함하는 것인, 컴퓨터 판독가능 비일시적 매체.
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020207028106A 2020-08-11 2020-09-21 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출 KR102447072B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/990,709 US11301268B2 (en) 2020-08-11 2020-08-11 Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques
US16/990,709 2020-08-11
PCT/US2020/051880 WO2022035449A1 (en) 2020-08-11 2020-09-21 Graphical element detection using a combination of user interface descriptor attributes from two or more graphical element detection techniques

Publications (2)

Publication Number Publication Date
KR20220021377A KR20220021377A (ko) 2022-02-22
KR102447072B1 true KR102447072B1 (ko) 2022-09-23

Family

ID=72709040

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207028106A KR102447072B1 (ko) 2020-08-11 2020-09-21 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출

Country Status (4)

Country Link
EP (1) EP3955108B1 (ko)
JP (1) JP2023537540A (ko)
KR (1) KR102447072B1 (ko)
CN (1) CN114341788A (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090007122A1 (en) 2004-06-25 2009-01-01 Apple Inc. Automatic relevance filtering
US20200004798A1 (en) 2018-06-27 2020-01-02 Q2 Software, Inc. Method and system for automating web processes utilizing an abstractable underlying platform layer
US20200180155A1 (en) 2020-02-18 2020-06-11 UiPath, Inc. Automation windows for robotic process automation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090007122A1 (en) 2004-06-25 2009-01-01 Apple Inc. Automatic relevance filtering
US20200004798A1 (en) 2018-06-27 2020-01-02 Q2 Software, Inc. Method and system for automating web processes utilizing an abstractable underlying platform layer
US20200180155A1 (en) 2020-02-18 2020-06-11 UiPath, Inc. Automation windows for robotic process automation

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Alok Mani Tripathi. Learning Robotic Process Automation. 2018년
Param Kahlon. UiPath 2020.3 Monthly Update. 2020.03.23.

Also Published As

Publication number Publication date
JP2023537540A (ja) 2023-09-04
CN114341788A (zh) 2022-04-12
KR20220021377A (ko) 2022-02-22
EP3955108A1 (en) 2022-02-16
EP3955108B1 (en) 2024-02-21

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
US11385777B2 (en) User interface (UI) mapper for robotic process automation
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
EP3964947A1 (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
KR102447072B1 (ko) 둘 이상의 그래픽 요소 검출 기법들로부터의 사용자 인터페이스 디스크립터 속성들의 조합을 사용한 그래픽 요소 검출
US11281362B1 (en) Graphical element detection using a combined series and delayed parallel execution unified target technique, a default graphical element detection technique, or both

Legal Events

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