JP2024517364A - 自己所有マシンの持ち込み(byom) - Google Patents

自己所有マシンの持ち込み(byom) Download PDF

Info

Publication number
JP2024517364A
JP2024517364A JP2021577331A JP2021577331A JP2024517364A JP 2024517364 A JP2024517364 A JP 2024517364A JP 2021577331 A JP2021577331 A JP 2021577331A JP 2021577331 A JP2021577331 A JP 2021577331A JP 2024517364 A JP2024517364 A JP 2024517364A
Authority
JP
Japan
Prior art keywords
machine
new
license key
list
user
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
JP2021577331A
Other languages
English (en)
Inventor
レン ジンタオ
マ タオ
マドクール タレク
ジア ルナン
フォシェレ クレメント
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
UiPath Inc
Original Assignee
UiPath Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by UiPath Inc filed Critical UiPath Inc
Publication of JP2024517364A publication Critical patent/JP2024517364A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • 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
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5011Pool

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Human Resources & Organizations (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Computer Interaction (AREA)
  • Bioethics (AREA)
  • Primary Health Care (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

自己所有マシンの持ち込み(BYOM)によりマシンプールを作成および/または編集するための方法および/または装置は、マシンの静的リストを用いてマシンプールを作成および/または編集するステップを含む。ユーザー入力マシンリストおよび既存のマシンリストが検索され、ユーザー入力マシンリストおよび既存のマシンリストが比較されて、ユーザー入力マシンリストと既存のマシンリストとの間の1つまたは複数の変更が識別される。次に、ユーザー入力マシンリストと既存のマシンリストとの間の1つまたは複数の変更が識別された場合に、新しいマシン仕様が作成される。次いで、1つまたは複数のマシンが新しいマシン仕様に移動される。

Description

(関連出願の相互参照)
本出願は、2021年4月17日に出願された米国特許出願第17/233,454号の利益を主張する。この先願の主題は、その全体が参照により本明細書に組み込まれる。
本発明は、一般に、ロボティックプロセスオートメーション(RPA)に関し、より具体的には、BYOMをRPAに組み込むことに関する。
クラウドロボットの前に、顧客は物理マシンを手動で構成し、自身のコンピューティングシステム(例えば、仮想マシン)をUiPath(登録商標)Orchestrator(商標)に接続するためにロボットを設置する。コンピューティングシステムをUiPath(登録商標)Orchestrator(商標)に接続するために、ライセンスキーがコンピューティングシステムを準備するユーザーに渡される。このライセンスキーは、いくつか例を挙げると、通常、電子メール、ショートメッセージングシステム(SMS)、スラック(登録商標)、および電話によって転送される。このライセンスキーを渡す方法は安全ではなく、チャネル、すなわちライセンスキーを渡す手段も安全ではない。
したがって、クラウドロボットをOrchestrator(商標)に安全に接続するための改善された方法が有益であり得る。
本発明の特定の実施形態は、現在のクラウドロボット技術によってまだ完全に特定、認識、または解決されていない当技術分野の問題および必要性に対するソリューションを提供することができる。例えば、本発明のいくつかの実施形態は、クラウドロボットをBYOMモデルに接続することに関する。
一実施形態では、自己所有マシンの持ち込み(BYOM)によりマシンプールを作成および/または編集するためのコンピュータにより実施される方法は、マシンの静的リストを用いてマシンプールを作成および/または編集するステップを含む。本方法はまた、ユーザー入力マシンリストおよび既存のマシンリストを検索し、前記ユーザー入力マシンリストと前記既存のマシンリストとの間の1つまたは複数の変更を識別するために、前記ユーザー入力マシンリストと前記既存のマシンリストとを比較するステップを含む。本方法は、ユーザー入力マシンリストと前記既存のマシンリストとの間の前記1つまたは複数の変更が識別された場合に新しいマシン仕様を作成するステップをさらに含む。本方法はまた、1つまたは複数のマシンを新しいマシン仕様に移動またはインポートするステップを含む。
別の実施形態では、コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化される。コンピュータプログラムは、1つまたは複数のプロセッサに、自己所有マシンの持ち込み(BYOM)によってマシンプールを作成および/または編集させるように構成される。コンピュータプログラムは、1つまたは複数のプロセッサに、マシンの静的リストを用いてマシンプールを作成および/または編集させるようにさらに構成される。コンピュータプログラムは、1つまたは複数のプロセッサに、ユーザー入力マシンリストおよび既存のマシンリストを検索させ、前記ユーザー入力マシンリストと前記既存のマシンリストとの間の1つまたは複数の変更を識別するために、前記ユーザー入力マシンリストと前記既存のマシンリストとを比較させるようにさらに構成される。コンピュータプログラムは、ユーザー入力マシンリストと既存のマシンリストとの間の1つまたは複数の変更が識別された場合に、1つまたは複数のプロセッサに新しいマシン仕様を作成させるようにさらに構成される。コンピュータプログラムは、1つまたは複数のプロセッサに、1つまたは複数のマシンを新しいマシン仕様に移動またはインポートさせるようにさらに構成される。
さらに別の実施形態では、自己所有マシンの持ち込み(BYOM)によりマシンプールを作成および/または編集するシステムは、1つまたは複数のコンピュータ実行可能命令を格納するように構成されたメモリと、1つまたは複数の命令を遂行して、マシンの静的リストを用いてマシンプールの作成および/または編集を実行するように構成された1つまたは複数のプロセッサと、を含む。1つまたは複数のプロセッサは、1つまたは複数の命令を遂行して、ユーザー入力マシンリストおよび既存のマシンリストを検索し、前記ユーザー入力マシンリストと前記既存のマシンリストとの間の1つまたは複数の変更を識別するために、前記ユーザー入力マシンリストと前記既存のマシンリストとを比較するステップを実行するようにさらに構成される。1つまたは複数のプロセッサは、1つまたは複数の命令を遂行して、ユーザー入力マシンリストと既存のマシンリストとの間の1つまたは複数の変更が識別された場合に、新しいマシン仕様を作成するステップを実行するようにさらに構成される。1つまたは複数のプロセッサは、1つまたは複数の命令を遂行して、1つまたは複数のマシンを新しいマシン仕様に移動またはインポートするステップを実行するようにさらに構成される。
本発明の特定の実施形態の利点が容易に理解されるように、上記で簡単に説明した本発明のより具体的な説明は、添付の図面に示されている特定の実施形態を参照することによって提供される。これらの図面は、本発明の典型的な実施形態のみを示しており、したがってその範囲を限定するものとみなされるべきではないことを理解されたいが、本発明は、添付の図面を使用することによって追加の具体性および詳細を伴って記載され説明される。
本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
本発明の一実施形態による、展開されたRPAシステムを示すアーキテクチャ図である。
本発明の一実施形態による、デザイナ、アクティビティ、およびドライバの間の関係を示すアーキテクチャ図である。
本発明の一実施形態による、RPAシステムを示すアーキテクチャ図である。
本発明の一実施形態による、BYOM内にクラウドロボットを配備するように構成されたコンピューティングシステムを示すアーキテクチャ図である。
本発明の一実施形態による、マシンプールを作成および/または編集するための方法を示すフロー図である。
本発明の一実施形態による、ライセンスキーをローテーションするための方法を示すフロー図である。
本発明の一実施形態による、マシンプールにマシンを追加するための方法を示すフロー図である。
本発明の一実施形態による、マシンプールにマシンを除去するための方法を示すフロー図である。
本発明の一実施形態による、自己所有マシンの持ち込み(BYOM)のための方法900を示すフロー図である。
本発明の一実施形態による、ユーザーが仮想マシンを作成するグラフィカルユーザーインターフェース(GUI)を示す図である。
本発明の一実施形態による、クラウドプロバイダ接続を示すGUIを示す図である。
本発明の一実施形態による、クラウドマシンプールの追加を示すGUIを示す図である。
本発明の一実施形態による、最新のフォルダの構成を示すGUIを示す図である。
本発明の一実施形態による、フォルダ内のマシンの管理を示すGUIを示す図である。
本発明の一実施形態による、ジョブの実行を示すGUIを示す図である。
本発明の一実施形態による、マシンプールを作成/編集し、ライセンスキーをローテーションするためのフローを示す図である。
本発明の一実施形態による、ハイパーバイザとオーケストレータエンティティとの間のアーキテクチャ関係を示す図である。
本発明の一実施形態による、マシンのステートメントマシンを示す関係図である。
いくつかの実施形態は、クラウドロボットに追加された特徴である、自己所有マシンの持ち込み(BYOM)に関する。例えば、顧客は、自身のサブスクリプション資格情報を移植し、顧客のサブスクリプション内でインフラストラクチャ変更を行うことを可能にすることができる。インフラストラクチャ変更は、クラウドロボットのスケジュールをサブスクリプションに組み込む。
しかしながら、顧客のサブスクリプションにおいてこれらのインフラストラクチャ変更を行うときに問題があり得ることに留意されたい。例えば、マシンには多数のカスタマイズが必要な場合があり、すなわち、マシンは、データベースと通信するために仮想プライベートネットワーク(VPN)接続を必要とする場合がある。別の例は、拡張子がインストールされているという要件であり得る。
BYOMのこれらのカスタマイズニーズに基づいて、これらのニーズに対処するようにカスタマイズされたクラウドロボットが設置および/または展開される。
解決されている別の問題は、顧客が独自のネットワークに特別なアクセスを得ることを可能にすることである。これは、既存のクラウドロボットシナリオ、すなわち、クラウドロボットを用いて、マシンが自動的に作成されスケーリングされるという考えを利用する。しかしながら、顧客は固有のマシン構成を有する可能性があるため、マシンの作成およびスケーリングに関心がない顧客もいる。
この問題に対処するために、顧客はマシンを作成し、次いで顧客はクラウドロボット開発者に固有のマシン構成を提供する。次いで、クラウドロボット開発者は、固有のマシン構成(または各マシン)に対してクラウドコスト使用を最適化することができる。このようにして、新しいジョブが受信されると、クラウドロボット開発者はマシンを起動し、マシンがもはや必要とされなくなると、マシンはオフにされる。
この例を続けると、顧客が10台のマシンを作成したとする。この例では、10個のマシンをオン状態のままにして、Azure(商標)またはAWS(商標)のコストを支払う代わりに、クラウドロボット開発者は、必要なときにマシンのうちの1つまたは複数をオンにし、必要でないときにも1つまたは複数のマシンをオフにする。BYOMを用いて、オートスケーリングまたは性能の最適化と同じ種類のクラウドロボットの良さを達成することができる。言い換えれば、クラウドロボットの良さがカスタム作成されたBYOMにもたらされる。
いくつかの実施形態では、顧客はクラウド内に複数の仮想マシン(VM)を作成することができ、さらに、これらのVMはRPAエコシステムに参加することができる。例えば、顧客はクラウド内に1つまたは複数のVMを提供し、ロボットは1つまたは複数のVMにインストールされる。これらのロボットは、VMをRPA環境に自動的に接続することができ、自動的にオンまたはオフすることができる。
図1は、本発明の一実施形態による、RPAシステム100を示すアーキテクチャ図である。RPAシステム100は、開発者がワークフローを設計および実装することを可能にするデザイナ110を含む。デザイナ110は、アプリケーション統合、ならびにサードパーティアプリケーション、管理情報技術(IT)タスク、およびビジネスITプロセスを自動化するためのソリューションを提供することができる。デザイナ110は、ビジネスプロセスのグラフィカル表現である自動化プロジェクトの開発を容易にすることができる。簡単に言えば、デザイナ110は、ワークフローおよびロボットの開発およびデプロイメントを容易にする。
自動化プロジェクトは、本明細書で「アクティビティ」と定義される、ワークフローで開発されたステップのカスタムセット間の遂行順序および関係の制御を開発者に与えることによって、ルールベースのプロセスの自動化を可能にする。デザイナ110の一実施形態の一商用例は、UiPath Studio(商標)である。各アクティビティは、ボタンのクリック、ファイルの読み取り、ログパネルへの書き込みなどのアクションを含むことができる。いくつかの実施形態では、ワークフローはネストまたは埋め込みされてもよい。
いくつかのタイプのワークフローは、シーケンス、フローチャート、有限状態機械(FSM)、および/またはグローバル例外ハンドラを含むことができるが、これらに限定されない。シーケンスは、ワークフローを乱すことなく1つのアクティビティから別のアクティビティへの流れを可能にする線形プロセスに特に適し得る。フローチャートは、より複雑なビジネスロジックに特に適しており、複数の分岐論理演算子を介してより多様な方法で決定の統合およびアクティビティの接続を可能にする。FSMは、大規模なワークフローに特に適している場合がある。FSMは、条件(すなわち、遷移)またはアクティビティによってトリガされる有限数の状態をそれらの遂行において使用することができる。グローバル例外ハンドラは、遂行エラーに遭遇したときのワークフローの挙動を判定し、プロセスをデバッグするのに特に適し得る。
ワークフローがデザイナ110で開発されると、ビジネスプロセスの遂行は、デザイナ110で開発されたワークフローを遂行する1つまたは複数のロボット130を編成するコンダクタ120によって編成される。コンダクタ120の一実施形態の一商用例は、UiPathオーケストレータ(商標)である。コンダクタ120は、環境内のリソースの作成、監視、およびデプロイメントの管理を容易にする。コンダクタ120は、第三者のソリューションおよびアプリケーションとの統合ポイントとして機能することができる。
コンダクタ120は、集中ポイントからロボット130を接続し遂行するすべてのロボット130を管理することができる。管理され得るロボット130のタイプは、これらに限定されないが、アテンディッドロボット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は、第三者のソリューションおよび/またはアプリケーションのための通信の集中ポイントとして作用することによって相互接続性を提供することができる。
ロボット130は、デザイナ110に構築されたワークフローを実行する遂行エージェントである。ロボット130のいくつかの実施形態の一商用例は、UiPath Robots(商標)である。いくつかの実施形態では、ロボット130は、デフォルトでMicrosoft Windows(登録商標)Service Control Manager(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(登録商標)Presentation Foundation(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に対する単一の接続ポイントである。この実施形態におけるすべてのメッセージは、データベースサーバー240、インデクササーバー250、またはその両方を介してそれらをさらに処理するコンダクタ230にログされる。図1に関して上述したように、エグゼキュータ212はロボットコンポーネントであってもよい。
いくつかの実施形態では、ロボットは、機械名とユーザー名との間の関連付けを表す。ロボットは、複数のエグゼキュータを同時に管理することができる。同時に実行される複数のインタラクティブなセッション(例えば、Windows(登録商標)Server 2012)をサポートするコンピューティングシステムでは、複数のロボットが同時に実行され、それぞれが一意のユーザー名を使用して別々のWindows(登録商標)セッションで実行されてもよい。これは、上記ではHDロボットと呼ばれる。
エージェント214はまた、ロボットのステータス(例えば、ロボットがまだ機能していることを示す「ハートビート」メッセージを定期的に送信する)を送信し、遂行されるパッケージの必要なバージョンをダウンロードする役割も担う。エージェント214とコンダクタ230との間の通信は、いくつかの実施形態では常にエージェント214によって開始される。通知シナリオでは、エージェント214は、ロボットにコマンド(例えば、始動、停止など)を送信するためにコンダクタ230によって後で使用されるWebSocketチャネルを開くことができる。
サーバー側には、プレゼンテーション層(ウェブアプリケーション232、オープンデータプロトコル(OData)代表状態転送(REST)アプリケーション・プログラミング・インターフェース(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は、この実施形態ではクライアントコンピュータ上の1つまたは複数のロボットの管理者である。
この実施形態におけるREST APIは、構成、ロギング、監視、およびキューイング機能をカバーする。構成エンドポイントは、いくつかの実施形態では、アプリケーションユーザー、権限、ロボット、アセット、リリース、および環境を定義および構成するために使用され得る。例えば、エラー、ロボットによって送信された明示的なメッセージ、および他の環境固有の情報などの様々な情報をログに記録するために、RESTエンドポイントをロギングすることができる。開始ジョブコマンドがコンダクタ230内で使用される場合に遂行されるべきパッケージバージョンをクエリするために、デプロイメントRESTエンドポイントがロボットによって使用されてもよい。RESTエンドポイントをキューイングすることは、キューにデータを追加すること、キューからトランザクションを取得すること、トランザクションの状態を設定することなど、キューおよびキュー項目管理を担当することができる。
RESTエンドポイントの監視は、ウェブアプリケーション232およびエージェント214を監視することができる。通知監視API236は、エージェント214の登録、エージェント214への構成設定の配信、ならびにサーバーおよびエージェント214からの通知の送信/受信に使用されるRESTエンドポイントであってもよい。通知監視API236はまた、いくつかの実施形態では、WebSocket通信を使用してもよい。
永続層は、この実施形態におけるサーバーのペア、すなわちデータベースサーバー240(例えば、SQLサーバー)およびインデクササーバー250を含む。この実施形態におけるデータベースサーバー240は、ロボット、ロボットグループ、関連するプロセス、ユーザー、役割、スケジュールなどの構成を格納する。この情報は、いくつかの実施形態ではウェブアプリケーション232を介して管理される。データベースサーバー240は、キューおよびキュー項目を管理することができる。いくつかの実施形態では、データベースサーバー240は、(インデクササーバー250に加えて、またはその代わりに)ロボットによって記録されたメッセージを格納することができる。
インデクササーバー250は、いくつかの実施形態ではオプションであり、ロボットによって記録された情報を格納し、インデックス付けする。特定の実施形態では、インデクササーバー250は、構成設定を通じて無効にすることができる。いくつかの実施形態では、インデクササーバー250は、オープンソースプロジェクトのフルテキスト探索エンジンであるElasticSearch(登録商標)を使用する。ロボット(例えば、ログメッセージまたは行書き込みのようなアクティビティを使用する)によってログされたメッセージは、ロギングRESTエンドポイントを介してインデクササーバー250に送信されてもよく、そこでそれらは将来の利用のためにインデックス付けされる。
図3は、本発明の一実施形態による、デザイナ310、アクティビティ320,330、ドライバ340、およびAI/MLモデル350の間の関係300を示すアーキテクチャ図である。上記により、開発者は、デザイナ310を使用して、ロボットによって遂行されるワークフローを開発する。ワークフローは、ユーザー定義のアクティビティ320およびUI自動化アクティビティ330を含むことができる。ユーザー定義のアクティビティ320および/またはUI自動化アクティビティ330は、いくつかの実施形態では、1つまたは複数のAI/MLモデル350を呼び出すことができ、これは、ロボットが動作しているコンピューティングシステムに対してローカルにおよび/またはそこから遠隔に配置することができる。いくつかの実施形態は、本明細書ではコンピュータビジョン(CV)と呼ばれる、画像内の非テキスト視覚コンポーネントを識別することができる。そのようなコンポーネントに関係するいくつかのCVアクティビティは、クリック、タイプ、テキストを取得、ホバー、要素存在、リフレッシュ範囲、ハイライトなどを含み得るが、これらに限定されない。いくつかの実施形態では、クリックは、例えば、CV、光学文字認識(OCR)、ファジー文字マッチング、およびマルチアンカーを使用して要素を識別し、それをクリックする。タイプは、上記および要素内のタイプを使用して要素を識別することができる。テキストを取得し、OCRを使用して特定のテキストの位置を識別し、それをスキャンすることができる。ホバーは、要素を識別し、それをホバーすることができる。要素が存在することは、上述した技術を使用して、画面上に要素が存在するかどうかをチェックすることができる。いくつかの実施形態では、デザイナ310に実装することができるアクティビティは、数百または数千であってもよい。しかしながら、本発明の範囲から逸脱することなく、任意の数および/またはタイプのアクティビティが利用可能であり得る。
UI自動化アクティビティ330は、下位レベルコード(例えば、CVアクティビティ)に書き込まれ、画面とのインタラクションを容易にする特別な低レベルのアクティビティのサブセットである。UI自動化アクティビティ330は、ロボットが所望のソフトウェアとインタラクトすることを可能にするドライバ340および/またはAI/MLモデル350を介したこれらのインタラクションを容易にする。例えば、ドライバ340は、OSドライバ342、ブラウザドライバ344、VMドライバ346、エンタープライズアプリケーションドライバ348などを含むことができる。AI/MLモデル350のうちの1つまたは複数は、コンピューティングシステムとのインタラクションの実行を決定するためにUI自動化アクティビティ330によって使用され得る。いくつかの実施形態では、AI/MLモデル350は、ドライバ340を増強するか、それらを完全に置き換えることができる。実際、特定の実施形態では、ドライバ340は含まれない。
ドライバ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は、本発明の一実施形態による、クラウドロボットをBYOMに配備するように構成されたコンピューティングシステム500を示すアーキテクチャ図である。いくつかの実施形態では、コンピューティングシステム500は、本明細書に図示および/または記載されたコンピューティングシステムのうちの1つまたは複数であってもよい。コンピューティングシステム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)通信、汎用パケット無線サービス(GPRS)、ユニバーサル移動体通信システム(UMTS)、cdma2000、広帯域CDMA(W-CDMA)、高速ダウンリンクパケットアクセス(HSDPA)、高速アップリンクパケットアクセス(HSUPA)、高速パケットアクセス(HSPA)、ロングタームエボリューション(LTE)、LTEアドバンスト(LTE-A)、802.11x、Wi-Fi、Zigbee、超広帯域無線(UWB)、802.16x、802.15、ホームノードB(HnB)、Bluetooth、無線周波数識別(RFID)、赤外線データ協会(IrDA)、近距離通信(NFC)、第5世代(5G)、新無線(NR)、それらの任意の組み合わせ、ならびに/あるいは本発明の範囲から逸脱することなく、任意の他の現在存在する、または将来実施される通信規格および/またはプロトコルを使用するように構成されてもよい。いくつかの実施形態では、通信デバイス520は、本発明の範囲から逸脱することなく、単一、アレイ、位相、切り替え、ビームフォーミング、ビームステア、それらの組み合わせ、および/または任意の他のアンテナ構成である1つまたは複数のアンテナを含むことができる。
プロセッサ510はさらに、バス505を介して、プラズマディスプレイ、液晶ディスプレイ(LCD)、発光ダイオード(LED)ディスプレイ、電界放出ディスプレイ(FED)、有機発光ダイオード(OLED)ディスプレイ、フレキシブルOLEDディスプレイ、フレキシブル基板ディスプレイ、プロジェクションディスプレイ、4Kディスプレイ、高精細ディスプレイ、Retina(登録商標)ディスプレイ、インプレーンスイッチング(IPS)ディスプレイ、またはユーザーに情報を表示するための任意の他の適切なディスプレイなどのディスプレイ525にさらに結合される。ディスプレイ525は、抵抗性、容量性、表面弾性波(SAW)容量性、赤外線、光学イメージング、分散信号技術、音響パルス認識、フラストレート全内部反射などを使用して、タッチ(触覚)ディスプレイ、3次元(3D)タッチディスプレイ、マルチ入力タッチディスプレイ、マルチタッチディスプレイなどとして構成され得る。本発明の範囲から逸脱することなく、任意の適切なディスプレイデバイスおよび触覚I/Oが使用され得る。
キーボード530およびコンピュータマウス、タッチパッドなどのカーソル制御デバイス535は、ユーザーがコンピューティングシステム500とインターフェースすることを可能にするためにバス505にさらに結合される。しかしながら、特定の実施形態では、物理的なキーボードおよびマウスが存在しなくてもよく、ユーザーは、ディスプレイ525および/またはタッチパッド(図示せず)のみを介してデバイスとインタラクトすることができる。入力デバイスの任意のタイプおよび組み合わせを、設計上の選択事項として使用することができる。特定の実施形態では、物理的入力デバイスおよび/またはディスプレイは存在しない。例えば、ユーザーは、それと通信する別のコンピューティングシステムを介してコンピューティングシステム500と遠隔でインタラクトすることができ、またはコンピューティングシステム500は自律的に動作することができる。
メモリ515は、プロセッサ510によって遂行されると機能を提供するソフトウェアモジュールを格納する。モジュールは、コンピューティングシステム500のためのオペレーティングシステム540を含む。モジュールは、本明細書に記載のプロセスまたはその派生物の全部または一部を実行するように構成されたBYOMモジュール545をさらに含む。コンピューティングシステム500は、追加の機能を含む1つまたは複数の追加の機能モジュール550を含むことができる。
当業者は、「システム」が、本発明の範囲から逸脱することなく、サーバー、組込みコンピューティングシステム、パーソナルコンピュータ、コンソール、パーソナルデジタルアシスタント(PDA)、携帯電話、タブレットコンピューティングデバイス、量子コンピューティングシステム、もしくは任意の他の適切なコンピューティングデバイス、またはデバイスの組み合わせとして具現化され得ることを理解するであろう。上記の機能を「システム」によって実行されるものとして提示することは、本発明の範囲を決して限定することを意図するものではなく、本発明の多くの実施形態の一例を提供することを意図している。実際、本明細書に開示する方法、システム、および装置は、クラウドコンピューティングシステムを含むコンピューティング技術と一致する局所化された形態および分散された形態で実装されてもよい。コンピューティングシステムは、ローカルエリアネットワーク(LAN)、移動通信ネットワーク、衛星通信ネットワーク、インターネット、パブリッククラウドもしくはプライベートクラウド、ハイブリッドクラウド、サーバーファーム、それらの任意の組み合わせなどの一部であるか、またはそれらによってアクセス可能であり得る。本発明の範囲から逸脱することなく、任意の局所化されたまたは分散されたアーキテクチャが使用されてもよい。
本明細書に記載されたシステム特徴のいくつかは、それらの実施態様の独立性をより具体的に強調するために、モジュールとして提示されていることに留意されたい。例えば、モジュールは、カスタムの超大規模集積(VLSI)回路またはゲートアレイ、ロジックチップ、トランジスタ、または他のディスクリートコンポーネントなどの既製の半導体を含むハードウェア回路として実装されてもよい。モジュールはまた、フィールドプログラマブルゲートアレイ、プログラマブルアレイロジック、プログラマブルロジックデバイス、グラフィックスプロセッシングユニットなどのプログラマブルハードウェアデバイスに実装されてもよい。
モジュールはまた、様々なタイプのプロセッサによって遂行するためのソフトウェアに少なくとも部分的に実装されてもよい。遂行可能コードの識別されたユニットは、例えば、オブジェクト、プロシージャ、または関数として編成することができるコンピュータ命令の1つまたは複数の物理ブロックまたは論理ブロックを含むことができる。それにもかかわらず、識別されたモジュールの遂行可能ファイルは、物理的に共に配置される必要はないが、論理的に共に結合されたときにモジュールを含み、モジュールの記載された目的を達成する異なる場所に格納された異なる命令を含むことができる。さらに、モジュールは、コンピュータ可読媒体に格納されてもよく、それは、例えば、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/または本発明の範囲から逸脱することなくデータを格納するために使用される任意の他のそのような非一時的コンピュータ可読媒体であってもよい。
実際、遂行可能コードのモジュールは、単一の命令、または多くの命令であってもよく、いくつかの異なるコードセグメント、異なるプログラム、およびいくつかのメモリデバイスに分散されてもよい。同様に、操作データは、本明細書ではモジュール内で識別および図示されてもよく、任意の適切な形態で具現化され、任意の適切なタイプのデータ構造内に編成されてもよい。操作データは、単一のデータセットとして収集されてもよく、または異なるストレージデバイスを含む異なる場所に分散されてもよく、少なくとも部分的に、システムまたはネットワーク上の電子信号としてのみ存在してもよい。
図6は、本発明の一実施形態による、マシンプールを作成および/または編集するための方法600を示すフロー図である。方法600は、605において、マシンの静的リストを有するマシンプールを作成および/または編集するステップから開始することができる。マシンプール(またはクラウドマシンプール)は、クラウド接続、クラウドスコープ(例えば、Azure(商標)内のリソースグループ、AWS(商標)内の領域)、およびマシンパラメータ(例えば、画像、サイズ、VNetなど)などのマシンの構成として定義することができる。610において、ユーザー入力マシンリスト(UL)および既存のマシンリスト(EL)が検索される。いくつかの実施形態では、ユーザー入力マシンリストおよび既存のマシンリストは、BYOMのユーザーから検索される。ユーザー入力マシンリストは、クラウドマシン識別子の静的リストの所望の状態として定義されてもよく、既存のマシンリストは、クラウドマシン識別子の静的リストの現在の状態として定義されてもよい。ユーザー入力マシンリストは、そこにリストされた各マシンの一意の識別子を含むことができる。同様に、既存のマシンリストは、そこにリストされている各マシンの一意の識別子を含むことができる。一意の識別子は、顧客の二重予約シナリオを回避するのに役立つ。例えば、顧客は、同時に、2つの異なるBYOMマシンプールでクラウドマシンを使用することができる。固有の識別子により、2つの異なるBYOMマシンプールで使用されている同じマシンを識別することができ、同じマシンが第2のBYOMマシンプールによって使用され得るか否かに関する決定が行われる。
615において、ユーザー入力マシンリストおよび既存のマシンが比較されて、ユーザー入力マシンリストが既存のマシンリストの変更を含むかどうかが判定される。いくつかの実施形態では、既存のマシンリストに列挙されていない任意のマシンの1つまたは複数の一意の識別子が、この比較によって識別される。別の実施形態では、ユーザー入力マシンリストおよび既存のマシンは、既存のマシンリストにリストされていない任意のマシンの1つまたは複数の一意の識別子を識別するために一緒にマージされる。
ユーザー入力マシンリストと既存のマシンリストとが同一である場合、620において、既存のマシンリストにおいて識別された各マシンの既存のマシン仕様が使用される。ユーザー入力マシンリストと既存のマシンリストとが異なる場合、625で新しいマシン仕様が作成される。
いくつかの実施形態では、新しいマシン仕様は、マシンプールのバージョンとして定義されてもよく、不変である。例えば、新しいマシン仕様が作成されるとき、根本的な意味が存在してもよい。具体的には、新しいマシン仕様が作成される場合、新しいマシン仕様に関連するライセンスキーを見つける必要がある。このライセンスキーは、ユーザー(またはマシン)がUiPath(登録商標)エコシステム(例えば、Orchestrator(商標))に再び接続することを可能にするツールである。マシンは、マシン仕様に属することができ、マシン仕様は、エコシステムに接続されたときにすべてのマシンによって共有されるライセンスキーを保持することに留意されたい。
BYOMクラウドマシンプールは、複数のマシンを有することができ、それらのマシンは、Orchestrator(商標)に接続するために同じライセンスキーを共有することができる。ライセンスキーは、基本的に、割り当てられたランタイム量、およびOrchestrator(商標)内のエンドポイントの数などの他の情報を示す。プールの編集が発生すると、接続されたマシンの一部を無効にする変更が導入される。変更は、マシンのサイトの編集、リソースグループの変更などとして定義され得る。これは、共有ライセンスキーがローテーションされる時間である。例えば、ローテーションは、無効な接続されたマシンの接続を遮断するために効果的に機能し、副作用として、他の接続されたマシンも無効にされる。このため、それらのマシンで使用されるライセンスキーがローテーションされる。
図7は、本発明の一実施形態による、新しいマシン仕様が作成されたときにライセンスキーをローテーションするための方法700を示すフロー図である。いくつかの実施形態では、方法700は、705において、マシンプールからマシンをローテーションする必要があることをOrchestrator(商標)が検出するステップから開始することができる。例えば、Orchestrator(商標)は、マシンのライセンスキーが期限切れになったことを検出することができる。これは、新しい仕様が作成されるときに起こり得る(以下の説明を参照)。710において、期限切れのライセンスキーを使用して、Orchestrator(商標)はマシンへの新しいジョブの割り当てを停止し、715において、マシンを保護観察状態に移行させる。説明の目的のために、マシンが保護観察状態にあるとき、既存の実行中のジョブ(もしあれば)はそれらの実行を継続するが、このマシンにさらなるジョブを割り当てることはできない。
720において、マシンが1つまたは複数の残りのジョブ(もしあれば)を完了すると、Orchestrator(商標)はマシンを削除するか、またはマシンプールからマシンを除去する。725において、Orchestrator(商標)は、新しいマシン仕様に基づいて新しいマシンをプロビジョニングし、730において、新しいライセンスキーを新しいプロビジョニングされたマシンに割り当てる。いくつかの代替実施形態では、同じマシンをプロビジョニングし、新しいライセンスキーを割り当てることができる。以下の説明を参照されたい。
新しいライセンスキーは、マシンプール内のバージョンごとにOrchestrator(商標)によってランダムに生成および検証され、例えばハイパーバイザに通知される。一例では、Orchestrator(商標)は、ライセンスキーのローテーションが必要とされるたびに新しいライセンスキーを生成することができる。別の例では、Orchestrator(商標)は、ライセンスキーのローテーションの前に新しいライセンスを生成することができる。また、Orchestrator(商標)は、新しいジョブがいつ保留中であるかを判定することができることに留意されたい。Orchestrator(商標)側は、ライセンスキーが同じマシンからのものであっても、使用されるライセンスキーに基づいて接続を区別することができる。Orchestrator(商標)は、(1)物理マシンからホストマシン名を精査すること、および(2)使用されているライセンスキーを精査することの2つのプロパティを使用して、固有のロボット接続を識別する。
Orchestrator(例えば、コンピュータ名)は、マシンを識別するために2つの要素、すなわち、プールを識別するライセンスキーと、マシンを識別するマシン名と、を使用することを理解されたい。キーをローテーションすると、マシンの新しいバージョンがOrchestrator(商標)データベースに作成される。新しいバージョンはアクティブになり、古いバージョンは非アクティブになる。ライセンスキーは、マシンがどのバージョンにあるかを識別するものである。Autoscaling(商標)を用いて、非推奨バージョンにあるマシンが識別される。これにより、マシンは保護観察状態になり、これ以上このマシンにジョブを割り当てることはできない。これは、マシンを切断するときに追加のジョブが割り当てられないようにするためである。これはまた、マシンが安全に切断され、既に実行中のジョブを落とさないことを可能にする。BYOMの実施形態の場合、同じマシンは、新しいライセンスキーを使用して再び接続することができる。しかし、場合によっては、またはほとんどの場合、新しいライセンスキーを使用する新しいマシンが接続される。
図6に戻ると、630において、新しいマシン仕様が作成されると、新しいタスクが割り当てられる。なお、以下のような動作を行ってもよい。まず、新しいマシン仕様に新しいマシンを追加することができ、既存のマシンを古いマシン仕様から新しいマシン仕様に移動することができる。既存のマシンの移動は、ユーザー入力マシンリストに残っているか、または識別されているものに対するものである。異なるプールに属するか、またはユーザー入力マシンリストに属さないマシンはスキップされる。これは、一般にグローバル識別子を使用して実行される。
いくつかの代替実施形態では、マシンを完全に除去または削除するのではなく、ユーザー入力マシンリストで識別されていないマシンはソフト削除される。例えば、マシンを削除するのではなく、マシンは隠れているものとしてマークされ、既存のマシンリストの範囲からマシンを効果的に除去する。これは、無応答のマシンに適用され得る。これらの無応答マシンは、例えば停止状態に移行されてもよい。
図8は、本発明の一実施形態による、マシンをマシンプールに追加するための方法800を示すフロー図である。いくつかの実施形態では、新しいマシン仕様が作成されておらず、ライセンスキーをローテーションする必要がない場合がある。これらの実施形態では、方法800は、805において、マシンをマシンプールに追加することから始まる。ユーザーは、追加するクラウドマシン識別子のリストを提供する。新しいマシン仕様を作成するのではなく、810で最新の(または現在の)マシン仕様が検索される。815で、新しいマシンが最新のマシン仕様に追加され、停止しているとマークされるため、将来利用することが考えられる。他の既存のマシンについては、さらなる変更は行われない。
図9は、本発明の一実施形態による、マシンプールにマシンを除去するための方法900を示すフロー図である。方法900は、905において、マシンプールからマシンを除去するステップから開始することができる。ユーザーは、除去するクラウドマシン識別子のリストを提供する。910において、新しいマシン仕様を作成するのではなく、最新の(または現在の)マシン仕様が検索される。915において、最新のマシン仕様に属し、保留タスクのない停止状態にあるマシンについて、最新のマシン仕様からマシンがソフト除去される。他のすべてのマシンはスキップされる。
図10は、本発明の一実施形態による、自己所有マシンの持ち込み(BYOM)のための方法1000を示すフロー図である。方法1000は、1005において、ユーザーが、サブスクリプションサービス(例えば、Azure(商標)またはAWS(商標))において1つまたは複数のマシンを準備するステップによって開始することができる。本発明の一実施形態による、ユーザーが仮想マシンを作成するGUI1100を示す図11を参照されたい。1010において、ユーザーは、例えばOrchestrator(商標)でクラウド接続を作成する。本発明の一実施形態による、クラウドプロバイダ接続を示すGUI1200を示す図12を参照されたい。
1015において、ユーザーはOrchestrator(商標)内にクラウドマシンプールを作成する。本発明の一実施形態による、クラウドマシンプールの追加を示すGUI1300を示す図13を参照されたい。いくつかの実施形態では、ユーザーは「マシンを自動的に作成」をオフに切り替え、マシンプールに追加したいマシンを選択する。1020において、ユーザーは最新のフォルダを構成する。最新のフォルダは、従来のフォルダでは利用できない特徴を含む。BYOMは、これらの特徴の一部である。本発明の一実施形態による、最新のフォルダの構成を示すGUI1400を示す図14を参照されたい。いくつかの実施形態では、ユーザーは、アンアテンディッドロボットのユーザー名およびパスワードを構成する。これは、図9のステップ1005のマシン作成フローと同様であってもよい。
1025において、ユーザーは、最新のフォルダを構成し続ける、すなわち、マシンセクタ内のBYOMマシンプールを選択する。本発明の一実施形態による、フォルダ内のマシンの管理を示すGUI1500を示す図15を参照されたい。1030において、ユーザーは、最新のフォルダ内の自動化を実行または遂行することができる。本発明の一実施形態による、ジョブの遂行を示すGUI1600を示す図16を参照されたい。
図17は、本発明の一実施形態による、マシンプールを作成/編集し、ライセンスキーをローテーションするためのフロー1700を示す図である。いくつかの実施形態では、ユーザー(またはアクター)は、マシンプールを作成または編集するためにユーザーインターフェース1705にアクセスすることができる。アプリケーション・プログラミング・インターフェース(API)を使用して、マシンプールの作成および/または編集の要求がユーザーインターフェース1705からOrchestrator(商標)1710に送信される。Orchestrator(商標)1710は、要求をハイパーバイザ1715に中継する。ハイパーバイザ1715は、新しいマシン仕様が必要かどうかを判定するために要求をスキャンする。新しいマシン仕様の例は、いくつか例を挙げると、マシンプールからマシンを追加または削除すること、およびマシンのサイズまたはイメージを変更することを含む。必要に応じて、ハイパーバイザ1715は、新しいマシン仕様を作成し、その新しいマシン仕様をOrchestrator(商標)1710に送信する。別個にかつ非同期的に、ハイパーバイザ1715は、新しいタスクが必要かどうかを決定し、必要であれば、新しいタスクを作成する。例えば、新しいマシン仕様を作成するとき、ハイパーバイザ1715は、(新しい)ユーザー入力マシンリストから新しいマシン仕様に1つまたは複数の新しいマシンをインポートするために、非同期的に(ただし依然としてハイパーバイザ1715内で)遂行するタスクを作成する。図6のステップ630を参照されたい。応答ハイパーバイザ1715は新しいマシン仕様を提供するので、Orchestrator(商標)は同期動作であるライセンスキーをローテーションする。そのような動作は、新しいバージョンを作成するステップと、以前のバージョンの「IsActive」ビットをリセットしながら新しいライセンスキーを持続するステップと、を含む(1815を参照)。図7の方法700を使用して、Orchestrator(商標)は、ライセンスキーおよびライセンスキーをユーザーインターフェース1705にローテーションすることができる。
図18は、本発明の一実施形態による、ハイパーバイザとオーケストレータエンティティとの間のアーキテクチャ関係1800を示す図である。いくつかの実施形態では、Orchestrator(商標)1805側で、マシンモジュール1810はプールキーを含むテーブルを含む。ユーザーには見えないが、マシンモジュール1810は、マシンバージョンモジュール1815にリンクされている。マシンバージョンモジュール1815は、ローテーションに必要とされ得るライセンスキーを含む。ライセンスキーがローテーションされると、新しいライセンスキーがマシンバージョンモジュールでアクティブ化され、期限切れのライセンスキーが失効する。
ハイパーバイザ1820側では、マシンプール1825が作成されると、マシンプール1825とマシンモジュール1810とがリンクされ、プールキーが格納される。マシン仕様モジュール1830も作成され、マシンバージョンモジュール1815に関連するライセンスキーを含む。これは、マシン仕様モジュール1830とマシンバージョンモジュール1815とをリンクすることによって達成される。マシンモジュール1835は、マシンプールモジュール1825およびマシン仕様1830にもリンクされる。
図19は、本発明の一実施形態による、マシンのステートメントマシンを示す関係図1900である。一般的な場合、マシンは、クラウドロボットによって作成され、マシンプールに追加される。しかしながら、いくつかの実施形態では、特にBYOMの実施形態では、マシンは、マシンの顧客またはユーザーによって作成される。マシンは、バックグラウンドでマシンプールに組み込まれる。その後に、マシンは負荷に基づいて接続および切断に何度も進むことができる。これは、任意のタイプのマシンプールに当てはまる。例えば、マシンが故障した場合(すなわち、適切に接続せず、コマンドに応答しないなど)、マシンは故障しているとみなされ、削除される。一般的な場合の強い削除対BYOMの場合の追い出し。
図6~図10で実行されるプロセスステップは、本発明の実施形態に従って、プロセッサが図6~図10で説明したプロセスの少なくとも一部を実行するための命令を符号化するコンピュータプログラムによって実行されてもよい。コンピュータプログラムは、非一時的コンピュータ可読媒体上で具現化されてもよい。コンピュータ可読媒体は、ハードディスクドライブ、フラッシュデバイス、RAM、テープ、および/またはデータを格納するために使用される任意の他のそのような媒体または媒体の組み合わせであってもよいが、これらに限定されない。コンピュータプログラムは、コンピュータ可読媒体に格納することもできる、図6~図10で説明したプロセスステップの全部または一部を実施するようにコンピューティングシステムのプロセッサ(例えば、図5のコンピューティングシステム500のプロセッサ510)を制御するための符号化命令を含むことができる。
コンピュータプログラムは、ハードウェア、ソフトウェア、またはハイブリッド実装で実施することができる。コンピュータプログラムは、互いに動作可能に通信し、表示するために情報または命令を渡すように設計されたモジュールから構成することができる。コンピュータプログラムは、汎用コンピュータ、ASIC、または任意の他の適切なデバイス上で動作するように構成することができる。
本発明の様々な実施形態のコンポーネントは、本明細書の図に一般的に記載および図示するように、多種多様な異なる構成で配置および設計されてもよいことが容易に理解されよう。したがって、添付の図面に表される本発明の実施形態の詳細な説明は、特許請求される本発明の範囲を限定することを意図するものではなく、本発明の選択された実施形態を単に代表するものである。
本明細書を通して説明される本発明の特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。例えば、本明細書全体を通して「特定の実施形態」、「いくつかの実施形態」、または同様の文言への言及は、実施形態に関連して説明される特定の特徴、構造、または特性が本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書全体を通して、「特定の実施形態では」、「いくつかの実施形態では」、「他の実施形態では」、または同様の文言の出現は、必ずしもすべてが同じ実施形態のグループを指すわけではなく、記載された特徴、構造、または特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。
本明細書を通して特徴、利点、または同様の文言を参照することは、本発明で実現され得る特徴および利点のすべてが本発明の任意の単一の実施形態であるべきであること、または本発明の任意の単一の実施形態であることを意味するものではないことに留意されたい。むしろ、特徴および利点に言及する文言は、一実施形態に関連して説明される特定の特徴、利点、または特性が本発明の少なくとも1つの実施形態に含まれることを意味すると理解される。したがって、本明細書を通して、特徴および利点、ならびに同様の文言の説明は、必ずしもそうとは限らないが、同じ実施形態を参照することができる。
さらに、本発明の記載された特徴、利点、および特性は、1つまたは複数の実施形態において任意の適切な方法で組み合わせることができる。当業者は、特定の実施形態の特定の特徴または利点の1つまたは複数なしで本発明を実施できることを認識するであろう。他の例では、本発明のすべての実施形態には存在しない可能性がある特定の実施形態において、追加の特徴および利点が認識され得る。
当業者は、上述の本発明が、異なる順序のステップ、および/または開示されているものとは異なる構成のハードウェア要素を用いて実施され得ることを容易に理解するであろう。したがって、本発明をこれらの好ましい実施形態に基づいて説明してきたが、本発明の趣旨および範囲内に留まりながら、特定の修正、変形、および代替構築が明らかであることは、当業者には明らかであろう。したがって、本発明の範囲を決定するために、添付の特許請求の範囲を参照すべきである。

Claims (21)

  1. 自己所有マシンの持ち込み(BYOM)によってマシンプールを作成および/または編集するためのコンピュータにより実施される方法であって、
    マシンの静的リストを用いてマシンプールを作成および/または編集するステップと、
    ユーザー入力マシンリストおよび既存のマシンリストを検索し、前記ユーザー入力マシンリストと前記既存のマシンリストとの間の1つまたは複数の変更を識別するために、前記ユーザー入力マシンリストと前記既存のマシンリストとを比較するステップと、
    前記ユーザー入力マシンリストと前記既存のマシンリストとの間の前記1つまたは複数の変更が識別された場合に、新しいマシン仕様を作成するステップと、
    1つまたは複数のマシンを前記新しいマシン仕様に移動またはインポートするステップと、を含む、コンピュータにより実施される方法。
  2. 前記新しいマシン仕様が作成された場合に、期限切れのライセンスキーを新しいライセンスキーにローテーションするステップをさらに含み、
    前記新しいライセンスキーは、前記1つまたは複数のマシンがクラウドベースのエコシステムに接続することを容易にする、
    請求項1に記載のコンピュータにより実施される方法。
  3. 前記期限切れのライセンスキーを前記新しいライセンスキーにローテーションする前記ステップは、
    前記期限切れのライセンスキーを前記新しいライセンスキーにローテーションする前に、前記マシンプール内の各バージョンに対して前記新しいライセンスキーをランダムに生成するステップをさらに含む、請求項2に記載のコンピュータにより実施される方法。
  4. 前記期限切れのライセンスキーを前記新しいライセンスキーにローテーションする前記ステップは、
    前記期限切れのライセンスキーが検出された場合、または前記新しいマシン仕様が作成された場合に、前記マシンプールからローテーションのためのマシンを識別するステップを含む、請求項2に記載のコンピュータにより実施される方法。
  5. 前記期限切れのライセンスキーを前記新しいライセンスキーにローテーションする前記ステップは、
    前記識別されたマシンへの1つまたは複数の新しいジョブの割り当てを停止するステップと、
    前記識別されたマシンを保護観察状態に移行させるステップと、を含む、請求項4に記載のコンピュータにより実施される方法。
  6. 前記期限切れのライセンスキーを前記新しいライセンスキーにローテーションする前記ステップは、
    前記保護観察状態にある前記マシンを前記マシンプールから削除するステップを含む、請求項5に記載のコンピュータにより実施される方法。
  7. 前記期限切れのライセンスキーを前記新しいライセンスキーにローテーションする前記ステップは、
    前記新しいマシン仕様に基づいて新しいマシンをプロビジョニングするステップと、
    前記新しいマシン仕様に基づいて新しいマシンに新しいライセンスキーを割り当てるステップと、を含む、請求項6に記載のコンピュータにより実施される方法。
  8. 非一時的コンピュータ可読媒体に格納されたコンピュータプログラムであって、前記コンピュータプログラムは、1つまたは複数のプロセッサに、自己所有マシンの持ち込み(BYOM)によってマシンプールを作成および/または編集させるように構成され、前記コンピュータプログラムは、前記1つまたは複数のプロセッサに、
    マシンの静的リストを用いてマシンプールを作成および/または編集させ、
    ユーザー入力マシンリストおよび既存のマシンリストを検索させ、前記ユーザー入力マシンリストと前記既存のマシンリストとの間の1つまたは複数の変更を識別するために、前記ユーザー入力マシンリストと前記既存のマシンリストとを比較させ、
    前記ユーザー入力マシンリストと前記既存のマシンリストとの間の前記1つまたは複数の変更が識別された場合に、新しいマシン仕様を作成させ、
    1つまたは複数のマシンを前記新しいマシン仕様に移動またはインポートさせる、ようにさらに構成される、コンピュータプログラム。
  9. 前記コンピュータプログラムは、前記1つまたは複数のプロセッサに、
    前記新しいマシン仕様が作成された場合に、期限切れのライセンスキーを新しいライセンスキーにローテーションさせるようにさらに構成され、
    前記新しいライセンスキーは、前記1つまたは複数のマシンがクラウドベースのエコシステムに接続することを容易にする、請求項8に記載のコンピュータプログラム。
  10. 前記コンピュータプログラムは、前記1つまたは複数のプロセッサに、
    前記期限切れのライセンスキーを前記新しいライセンスキーにローテーションさせる前に、前記マシンプール内の各バージョンに対して前記新しいライセンスキーをランダムに生成させるようにさらに構成される、請求項9に記載のコンピュータプログラム。
  11. 前記コンピュータプログラムは、前記1つまたは複数のプロセッサに、
    前記期限切れのライセンスキーが検出された場合、または前記新しいマシン仕様が作成された場合に、前記マシンプールからローテーションのためのマシンを識別させるようにさらに構成される、請求項10に記載のコンピュータプログラム。
  12. 前記コンピュータプログラムは、前記1つまたは複数のプロセッサに、
    前記識別されたマシンへの1つまたは複数の新しいジョブの割り当てを停止させ、
    前記識別されたマシンを保護観察状態に移行させる、ようにさらに構成される、請求項11に記載のコンピュータプログラム。
  13. 前記コンピュータプログラムは、前記1つまたは複数のプロセッサに、
    前記保護観察状態にある前記マシンを前記マシンプールから削除させるようにさらに構成される、請求項12に記載のコンピュータプログラム。
  14. 前記コンピュータプログラムは、前記1つまたは複数のプロセッサに、
    前記新しいマシン仕様に基づいて新しいマシンをプロビジョニングさせ、
    前記新しいマシン仕様に基づいて新しいマシンに新しいライセンスキーを割り当てさせる、ようにさらに構成される、請求項12に記載のコンピュータプログラム。
  15. 自己所有マシンの持ち込み(BYOM)によりマシンプールを作成および/または編集するためのシステムであって、
    1つまたは複数のコンピュータ実行可能命令を格納するように構成されたメモリと、
    1つまたは複数のプロセッサと、を含み、前記1つまたは複数のプロセッサは、前記1つまたは複数の命令を遂行して、
    マシンの静的リストを用いてマシンプールを作成および/または編集するステップと、
    ユーザー入力マシンリストおよび既存のマシンリストを検索し、前記ユーザー入力マシンリストと前記既存のマシンリストとの間の1つまたは複数の変更を識別するために、前記ユーザー入力マシンリストと前記既存のマシンリストとを比較するステップと、
    前記ユーザー入力マシンリストと前記既存のマシンリストとの間の前記1つまたは複数の変更が識別された場合に、新しいマシン仕様を作成するステップと、
    1つまたは複数のマシンを前記新しいマシン仕様に移動またはインポートするステップと、を実行するように構成される、システム。
  16. 前記1つまたは複数のプロセッサは、前記1つまたは複数の命令を遂行して、
    前記新しいマシン仕様が作成された場合に、期限切れのライセンスキーを新しいライセンスキーにローテーションするステップを実行するようにさらに構成され、
    前記新しいライセンスキーは、前記1つまたは複数のマシンがクラウドベースのエコシステムに接続することを容易にする、請求項15に記載のシステム。
  17. 前記1つまたは複数のプロセッサは、前記1つまたは複数の命令を遂行して、
    前記期限切れのライセンスキーを前記新しいライセンスキーにローテーションする前に、前記マシンプール内の各バージョンに対して前記新しいライセンスキーをランダムに生成するステップを実行するようにさらに構成される、請求項16に記載のシステム。
  18. 前記1つまたは複数のプロセッサは、前記1つまたは複数の命令を遂行して、
    前記期限切れのライセンスキーが検出された場合、または前記新しいマシン仕様が作成された場合に、前記マシンプールからローテーションのためのマシンを識別するステップを実行するようにさらに構成される、請求項17に記載のシステム。
  19. 前記1つまたは複数のプロセッサは、前記1つまたは複数の命令を遂行して、
    前記識別されたマシンへの1つまたは複数の新しいジョブの割り当てを停止するステップと、
    前記識別されたマシンを保護観察状態に移行させるステップと、を実行するようにさらに構成される、請求項18に記載のシステム。
  20. 前記1つまたは複数のプロセッサは、前記1つまたは複数の命令を遂行して、
    前記保護観察状態にある前記マシンを前記マシンプールから削除するステップを実行するようにさらに構成される、請求項19に記載のシステム。
  21. 前記1つまたは複数のプロセッサは、前記1つまたは複数の命令を遂行して、
    前記新しいマシン仕様に基づいて新しいマシンをプロビジョニングするステップと、
    前記新しいマシン仕様に基づいて新しいマシンに新しいライセンスキーを割り当てるステップと、を実行するようにさらに構成される、請求項20に記載のシステム。
JP2021577331A 2021-04-17 2021-10-28 自己所有マシンの持ち込み(byom) Pending JP2024517364A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/233,454 US11928521B2 (en) 2021-04-17 2021-04-17 Bring your own machine (BYOM)
US17/233,454 2021-04-17
PCT/US2021/056959 WO2022220874A1 (en) 2021-04-17 2021-10-28 Bring your own machine (byom)

Publications (1)

Publication Number Publication Date
JP2024517364A true JP2024517364A (ja) 2024-04-22

Family

ID=83558147

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021577331A Pending JP2024517364A (ja) 2021-04-17 2021-10-28 自己所有マシンの持ち込み(byom)

Country Status (6)

Country Link
US (1) US11928521B2 (ja)
EP (1) EP4097588A4 (ja)
JP (1) JP2024517364A (ja)
KR (1) KR20220143983A (ja)
CN (1) CN115552376A (ja)
WO (1) WO2022220874A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12026535B2 (en) * 2021-09-27 2024-07-02 UiPath, Inc. System and computer-implemented method for controlling a robot of a virtual machine

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1965330A3 (en) 2007-02-28 2010-02-10 Ricoh Company, Ltd. Information processing system, information processor, image forming apparatus, and information processing method
US8141090B1 (en) * 2007-04-24 2012-03-20 Hewlett-Packard Development Company, L.P. Automated model-based provisioning of resources
US9588511B2 (en) 2007-08-03 2017-03-07 Hurco Companies, Inc. Virtual machine manager
KR101053680B1 (ko) 2009-04-13 2011-08-02 계영티앤아이 (주) 소프트웨어 관리장치 및 방법, 이에 의해 제어되는 사용자 단말 및 이의 관리방법
US8381266B2 (en) 2009-10-27 2013-02-19 Computer Associates Think, Inc. Method and system for machine identification
JP5678508B2 (ja) * 2010-07-29 2015-03-04 日本電気株式会社 シンクライアントシステム、管理サーバ、仮想マシン作成管理方法及び仮想マシン作成管理プログラム
US9369433B1 (en) * 2011-03-18 2016-06-14 Zscaler, Inc. Cloud based social networking policy and compliance systems and methods
US9372735B2 (en) 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US9846899B1 (en) * 2012-08-31 2017-12-19 Amazon Technologies, Inc. Dynamic software licensing
US9143926B2 (en) * 2012-09-06 2015-09-22 Dell Products, Lp Method and apparatus for context aware management of location optimization of virtual machines for mobility and real-time enterprise applications
US8997242B2 (en) 2012-11-09 2015-03-31 International Business Machines Corporation Methods and apparatus for software license management
US9313203B2 (en) * 2013-03-15 2016-04-12 Symantec Corporation Systems and methods for identifying a secure application when connecting to a network
US20140282916A1 (en) * 2013-03-15 2014-09-18 Aerohive Networks, Inc. Access authorization through certificate validation
US10769605B2 (en) 2013-07-02 2020-09-08 Infinera Corporation Modulation format change and license updating
US9218463B2 (en) * 2014-02-21 2015-12-22 Venafi, Inc. Trust map management and user interface
US20150281276A1 (en) * 2014-03-26 2015-10-01 Juniper Networks, Inc. Monitoring compliance with security policies for computer networks
GB2530685A (en) * 2014-04-23 2016-03-30 Intralinks Inc Systems and methods of secure data exchange
US11068136B1 (en) * 2014-11-11 2021-07-20 Amazon Technologies, Inc. Application fulfillment platform with automated license management mechanisms
US10289814B2 (en) * 2014-12-23 2019-05-14 Intel Corporation Licensing in the cloud
CN105389215A (zh) 2015-11-13 2016-03-09 中标软件有限公司 一种虚拟机池动态配置方法
WO2018129271A1 (en) 2017-01-05 2018-07-12 Soroco Private Limited Systems and methods for executing software robot computer programs on virtual machines
US10459666B2 (en) * 2017-03-03 2019-10-29 Commvault Systems, Inc. Using storage managers in respective data storage management systems for license distribution, compliance, and updates
US10045174B1 (en) 2017-03-08 2018-08-07 Vmware, Inc. Managed device migration and configuration
CN107038064B (zh) 2017-04-18 2021-12-10 腾讯科技(深圳)有限公司 虚拟机管理方法及装置、存储介质
US11005876B2 (en) 2017-05-11 2021-05-11 Tenable, Inc. Elastic asset-based licensing model for use in a vulnerability management system
US11176443B1 (en) * 2017-12-21 2021-11-16 Automation Anywhere, Inc. Application control and text detection from application screen images
US11042458B2 (en) * 2018-04-30 2021-06-22 Accenture Global Solutions Limited Robotic optimization for robotic process automation platforms
US11625312B2 (en) * 2019-03-28 2023-04-11 Bank Of America Corporation System for continuous management and monitoring of robotic process automation bots
US11571811B2 (en) 2019-10-15 2023-02-07 UiPath, Inc. Process evolution for robotic process automation and workflow micro-optimization
US12093745B2 (en) * 2020-08-31 2024-09-17 International Business Machines Corporation Systems and methods for managing resources in a virtual desktop infrastructure

Also Published As

Publication number Publication date
KR20220143983A (ko) 2022-10-25
EP4097588A1 (en) 2022-12-07
CN115552376A (zh) 2022-12-30
WO2022220874A1 (en) 2022-10-20
EP4097588A4 (en) 2023-09-13
US20220334885A1 (en) 2022-10-20
US11928521B2 (en) 2024-03-12

Similar Documents

Publication Publication Date Title
JP7088989B2 (ja) 実行時のデジタルプロセスにおける人工知能/機械学習モデルの動的な更新、又は再訓練及び更新
US10654166B1 (en) Automation windows for robotic process automation
US11738453B2 (en) Integration of heterogeneous models into robotic process automation workflows
JP2022552131A (ja) 人工知能の使用によるロボティックプロセスオートメーションのためのモデルの選択および連鎖化
JP2023551619A (ja) ロボティックプロセスオートメーションアーキテクチャならびに機械学習モデルのホスティング、監視、および再訓練のためのプロセス
JP2022552467A (ja) ロボティックプロセスオートメーションおよびスーパーバイザーシステムのために決定論的ワークフローに確率論的モデルを挿入すること
JP7106048B2 (ja) ロボットブラウザ埋め込み
JP2023524917A (ja) ロボティックプロセスオートメーションのためのアプリケーション統合
JP2022552466A (ja) ロボティック・プロセス・オートメーション・ワークフローのための再構成可能なワークベンチパイプライン
JP2023552666A (ja) アクションセンターを介した人工知能(ai)/機械学習(ml)モデルの補足、ai/mlモデル再訓練ハードウェア制御、およびai/mlモデル設定管理
JP2023517150A (ja) ロボティックプロセスオートメーション(rpa)のためのインプロセストリガ管理
JP2022552129A (ja) 機械学習を用いたロボティックプロセスオートメーションのワークフローの自動アクティブ化および構成
JP2024517364A (ja) 自己所有マシンの持ち込み(byom)
US11507059B1 (en) System and computer-implemented method for seamless consumption of automations
EP3806419A1 (en) Robot browser embedding
JP2023523374A (ja) ロボティックプロセスオートメーションのための機械学習モデル再訓練パイプライン
US12026535B2 (en) System and computer-implemented method for controlling a robot of a virtual machine
US11650871B2 (en) System and computer-implemented method for verification of execution of an activity
JP2022552468A (ja) ロボティック・プロセス・オートメーション及びワークフローのマイクロ最適化のためのプロセス進化