(57)【要約】【課題】ＲＰＡツールを有効活用することができず、ソフトウェアロボットによる業務に支障が発生すること。【解決手段】本発明のソフトウェアロボット管理装置１００は、ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理する管理部１２１と、特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、特定のツールに対応する形式から他のツールで認識可能なよう変換する定義変換部１２２と、を備える。【選択図】図１２
2020154553.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理し、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する、
ソフトウェアロボット管理方法。
【請求項２】
請求項１に記載のソフトウェアロボット管理方法であって、
前記特定のツールに対応する形式の前記定義情報を、複数のツールで認識可能な形式に汎化した汎化定義情報に変換する、
ソフトウェアロボット管理方法。
【請求項３】
請求項２に記載のソフトウェアロボット管理方法であって、
前記特定のツールにおいて実行するよう計画されたソフトウェアロボットが、当該ソフトウェアロボットの前記汎化定義情報を用いて別のツールで実行されるよう計画する、
ソフトウェアロボット管理方法。
【請求項４】
請求項３に記載のソフトウェアロボット管理方法であって、
予め設定された複数のツールのそれぞれにおけるソフトウェアロボットを実行するときの特性を表す特性情報に基づいて、前記特定のツールで計画されたソフトウェアロボットを実行した場合の予測実行時間を算出し、
前記予測実行時間に基づいて、前記特定のツールにおいて実行するよう計画されたソフトウェアロボットが、当該ソフトウェアロボットの前記汎化定義情報を用いて別のツールで実行されるよう計画する、
ソフトウェアロボット管理方法。
【請求項５】
請求項３又は４に記載のソフトウェアロボット管理方法であって、
予め設定された複数のツールのそれぞれにおけるソフトウェアロボットを実行するときの特性を表す特性情報に基づいて、前記別のツールで計画されたソフトウェアロボットを当該ソフトウェアロボットの前記汎化定義情報を用いて実行した場合の予測実行時間を算出し、
前記予測実行時間に基づいて、前記別のツールでソフトウェアロボットが実行される計画を確定する、
ソフトウェアロボット管理方法。
【請求項６】
請求項４又は５に記載のソフトウェアロボット管理方法であって、
前記特性情報は、ツールにおいて実行されるソフトウェアロボットの数に応じた特性を表す多重度特性情報を含み、
計画の変更前と変更後のそれぞれにおいてツールで実行されるソフトウェアロボットの数に応じた前記多重度特性情報を用いて、前記予測実行時間を算出する、
ソフトウェアロボット管理方法。
【請求項７】
請求項４乃至６のいずれかに記載のソフトウェアロボット管理方法であって、
前記特性情報は、ツールにおいてソフトウェアロボットが実行されたときの時刻に応じた特性を表す時刻特性情報を含み、
計画の変更前においてツールでソフトウェアロボットが実行される時刻に応じた前記時刻特性情報を用いて、前記予測実行時間を算出する、
ソフトウェアロボット管理方法。
【請求項８】
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理する管理部と、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する定義変換部と、
を備えたソフトウェアロボット管理装置。
【請求項９】
情報処理装置に、
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理する管理部と、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する定義変換部と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアロボット管理方法、ソフトウェアロボット管理装置、プログラムに関する。
【背景技術】
【０００２】
業務の生産性向上のために、ＲＰＡ（Robotic Process Automation）という技術を活用したコンピュータ業務の効率化を進める取り組みに注目が集まっている。ＲＰＡでは、人間がキーボードやマウスを用いて行う定型業務等をソフトウェアロボットに覚えさせ、人間の代わりにソフトウェアロボットがコンピュータ操作を実行することで業務の自動化を実現している。例えば、特許文献１にＲＰＡ技術が記載されている。
【０００３】
そして、近年では、多数のＲＰＡツールが開発されているが、ＲＰＡツール毎に特徴があり、処理内容に得手／不得手がある。このため、利用者は、ソフトウェアロボットに実行させる処理内容によっては、ＲＰＡツールを使い分けることを行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１８−１７６３８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＲＰＡツールでは、ソフトウェアロボットによる処理動作を定義する定義情報の形式がそれぞれ異なる。このため、ＲＰＡツール間でソフトウェアロボットを移行する場合には、移行先のＲＰＡツールに適応した定義情報を作成する必要があり、定義情報の作成に手間やコストがかかる。一方で、定義情報の作成に手間やコストをかけず、特定のＲＰＡツールにソフトウェアロボットの処理が偏った場合には、特定のＲＰＡツールによる処理が滞り、ボトルネックが生じうる。すると、他のＲＰＡツールを有効活用することができず、ソフトウェアロボットによる業務に支障が発生する、という問題が生じる。
【０００６】
このため、本発明の目的は、上述した課題である、ＲＰＡツールを有効活用することができず、ソフトウェアロボットによる業務に支障が発生する、ということを解決することにある。
【課題を解決するための手段】
【０００７】
本発明の一形態であるソフトウェアロボット管理方法は、
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理し、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する、
という構成をとる。
【０００８】
また、本発明の一形態であるソフトウェアロボット管理装置は、
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理する管理部と、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する定義変換部と、
を備えた、
という構成をとる。
【０００９】
本発明の一形態であるプログラムは、
情報処理装置に、
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理する管理部と、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する定義変換部と、
を実現させる、
という構成をとる。
【発明の効果】
【００１０】
本発明は、以上のように構成されることにより、ＲＰＡツールを有効活用することができ、ソフトウェアロボットによる業務への支障が発生することを抑制することができる。
【図面の簡単な説明】
【００１１】
【図１Ａ】本発明の実施形態１におけるソフトウェアロボット管理システムの構成を示す図である。
【図１Ｂ】図１Ａに開示した管理装置の構成を示すブロック図である。
【図２】図１Ｂに開示したツールデータ記憶部に記憶されるデータの一例を示す図である。
【図３】図１Ａに開示したソフトウェアロボット管理システムの動作を示すフローチャートである。
【図４】図１Ａに開示したソフトウェアロボット管理システムによる処理の様子を示す図である。
【図５】図１Ａに開示したソフトウェアロボット管理システムによる処理の様子を示す図である。
【図６】図１Ａに開示したソフトウェアロボット管理システムによる処理の様子を示す図である。
【図７】図１Ａに開示したソフトウェアロボット管理システムの動作を示すフローチャートである。
【図８】図１Ａに開示したソフトウェアロボット管理システムによる処理の様子を示す図である。
【図９】図１Ａに開示したソフトウェアロボット管理システムによる処理の様子を示す図である。
【図１０】図１Ａに開示したソフトウェアロボット管理システムによる処理の様子を示す図である。
【図１１】本発明の実施形態２におけるソフトウェアロボット管理装置のハードウェア構成を示すブロック図である。
【図１２】本発明の実施形態２におけるソフトウェアロボット管理装置の構成を示すブロック図である。
【図１３】本発明の実施形態２におけるソフトウェアロボット管理装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図１０を参照して説明する。図１乃至図２は、ソフトウェアロボット管理システムの構成を説明するための図であり、図３乃至図１０は、ソフトウェアロボット管理システムの処理動作を説明するための図である。
【００１３】
［構成］
本実施形態におけるソフトウェアロボット管理システムは、複数の異なるＲＰＡツールを導入した環境を統合して管理するために使用される。具体的に、図１Ａに示すように、ソフトウェアロボット管理システムは、ＲＰＡ実行基盤Ａ，Ｂと、ＲＴＡツール管理装置Ａａ，Ｂａと、管理装置１０と、を備えている。
【００１４】
上記ＲＰＡ実行基盤Ａ，Ｂは、ソフトウェアロボット（以下、単に「ロボット」とも言う。）を実行する実行環境であり、いわゆるＲＰＡツール（以下、単に「ツール」とも言う。）と呼ばれるものである。具体的に、ＲＰＡ実行基盤は、ロボットの処理動作を定義する定義情報を読み込み、定義の内容通りの処理動作を行う機能を有する。例えば、定義情報に従い、ユーザの業務システムやＷｅｂサイトにアクセスし、情報の取得や入力を行ったり、マウス操作などユーザの業務作業をエミュレートする、といった処理を行う。また、ＲＰＡ実行基盤Ａ，Ｂは、実行した処理動作を１ステップ（予め設定された１単位の処理）ごと記録する機能や、実行にかかった時間を１ステップごとに報告する機能を有する。
【００１５】
ここで、本実施形態において図１Ａに示すＲＰＡ実行基盤Ａ，Ｂは、それぞれ異なるＲＰＡツールであり、ロボットの定義情報の形式が異なることとする。つまり、第１ＲＰＡ実行基盤で実行される計画のロボットの定義情報は、第１ＲＰＡ実行基盤Ａで認識できるよう作成されており、第２ＲＰＡ実行基盤Ｂでは認識できないこととなる。なお、図１Ａでは、２つのＲＰＡ実行基盤Ａ，Ｂしか図示していないが、装備されるＲＰＡ実行基盤の数は２つであることに限定されない。
【００１６】
上記ＲＰＡツール管理装置Ａａ，Ｂａは、ＲＰＡ実行基盤を管理するソフトウェアが組み込まれており、配下のＲＰＡ実行基盤を管理する機能を有する。具体的に、第１ＲＰＡツール管理装置Ａａは、図１Ａでは配下に第１ＲＰＡ実行基盤Ａがあるが、複数のＲＰＡ実行基盤がある場合には、複数のＲＰＡ実行基盤をデータベースにより管理し、一元的に情報を表示／変更する機能を有する。また、第１ＲＰＡツール管理装置Ａａは、配下のＲＰＡ実行基盤Ａで動作するロボットをスケジュール管理する機能、ロボットの実行をキューに入れるまたは平行実行する機能、配下のＲＰＡ実行基盤にロボットの定義情報を配布し、ロボット実行させる機能、ロボットの実行状況の統計を取る機能、などを有する。第２ＲＰＡツール管理装置Ｂａも、第１ＲＰＡツール管理装置Ｂａと同様の機能を有している。なお、図１Ａでは、２つのＲＰＡツール管理装置Ａａ，Ｂａしか図示していないが、装備されるＲＰＡツール管理装置の数は２つであることに限定されない。
【００１７】
上記管理装置１０は、上述した複数のＲＰＡ実行基盤Ａ，ＢからなるＲＰＡツールを統合して管理するシステムである。本実施形態では、管理装置１０は、演算装置と記憶装置とを備えた１台又は複数台の情報処理装置にて構成される。そして、管理装置１０は、図１Ｂに示すように、演算装置がプログラムを実行することで構築された、スケジュール管理部１１、定義変換部１２、を備える。また、管理装置１０は、記憶装置に形成された、ツールデータ記憶部１３、スケジュールデータ記憶部１４、定義データ記憶部１５、を備える。以下、各構成について詳述する。
【００１８】
上記ツールデータデータ記憶部１３は、図２に示すように、各ＲＰＡ実行基盤の特性、つまり、各ＲＰＡ実行基盤がロボットを実行するときの特性、を表す特性情報を記憶している。ＲＰＡツールの特性情報としては、まず、符号２１に示す「ＲＰＡツールの特性管理表」があり、ＲＰＡ実行基盤の種類毎に（例えば、第１ＲＰＡ実行基盤Ａ（ＲＰＡ１）、第２ＲＰＡ実行基盤Ｂ（ＲＰＡ２））、並列処理、Loopの定義記述、オブジェクト取得の定義記述、X-PathによるWeb要素取得の定義記述、画像検索の定義記述、がそれぞれ可能か不可能かを表す情報を記憶している。また、符号２２に示す「無負荷状態の性能管理表」は、ロボット毎にロボットを単体で動かしたときに、それぞれの管理下にあるＲＰＡツールにおいて、動作対象としたシステム名、実行にかかった時間、そのうち対象システムでの応答時間、ツール内部での処理時間（実行時間）、および、処理実行待ち時間（待機時間）を記憶している。
【００１９】
また、符号２３に示す「ロボットの実行状態管理表」は、上記符号２２のロボットを単体で実行した結果の記録に対して、１つのＲＰＡ実行基盤で複数のロボットを多重実行したときのロボットの実行状態を記録する表である。具体的に、上記符号２２の情報に加えて、ロボットの実行時にどれだけほかのロボットが動いていたかを表す多重度と、ロボットを実行投入した時刻と、を記憶している。また、符号２４に示す「対象システムの性能管理表」は、対象システムに対して行った操作の種類ごとの操作投入時刻とその応答時間を記憶している。
【００２０】
上記スケジュールデータ記憶部１４は、各ＲＰＡ実行基盤Ａ，Ｂで実行されるロボットの計画を表すスケジュールを記憶している。例えば、後述する図６の符号６１に示すように、ロボット毎に、実行されるＲＰＡ実行基盤、対象システム、前回の投入時刻、次回投入時刻、を記憶している。
【００２１】
上記定義データ記憶部１５は、ロボット毎の定義情報を記憶している。例えば、ロボットの定義情報は、はじめは上記スケジュールで計画されているように実行される予定の特定のＲＰＡ実行基盤に対応した形式で作成されて記憶されている。また、定義データ記憶部１５には、後述するように、特定のＲＰＡ実行基盤に対応した形式の定義情報から変換されて汎化された汎化定義情報も記憶されることとなる。
【００２２】
上記スケジュール管理部１１（管理部）は、まず、上述したツールデータ記憶部１３に記憶部１３に記憶されている図２に示すようなＲＰＡ実行基盤の特性情報を管理する。このとき、スケジュール管理部１１は、各ＲＰＡ実行基盤にてロボットを実行させたときの特性情報を取得してツールデータ記憶部１３に記憶する。また、スケジュール管理部１１は、スケジュールデータ記憶部１４に記憶されている図６の符号６１に示すようなスケジュールを管理している。このとき、スケジュール管理部１１は、各ＲＰＡ実行基盤の特性情報に基づいて、スケジュールに基づくロボットの実行時間を予測し、スケジュール通りに進まないことが予測される場合には、スケジュールを変更する。つまり、ロボットを実行させるＲＰＡ実行基盤を当初のスケジュールから変更することで、ロボットを各ＲＰＡ実行基盤に分配する。
【００２３】
上記定義変換部１２は、定義データ記憶部１５に記憶されている、特定のＲＰＡ実行基盤に特化した形式で記述されたロボットの定義情報を、他のＲＰＡ実行基盤でも認識可能な汎化的な記述である汎化記述情報に変換する。ここで、通常、ＲＰＡ実行基盤であるＲＰＡツールは、ツール毎にロボットの定義のフォーマットは異なるものの、ロボットの動作自体は、動作を組み込むロジックと、その部品としてマウス操作、変数格納、抽出／入力、ファイル操作、Web pageのロード、ループ処理、のカテゴリに集約されている。従って、これらのカテゴリに動作を汎化させることによって、ＲＰＡツールがその汎化した内容を認識することができる。そしてさらに、各ＲＰＡツールが、汎化した内容を自身のツールに特化した形式に具象化させることによって、定義を移行させることができるようになる。なお、定義情報の汎化の具体例については後述する。
【００２４】
［動作］
次に、上述したソフトウェアロボット管理システムの動作を、図３乃至図９を参照して説明する。まず、スケジュールで計画されているロボットの実行時間を推定する処理について説明する。
【００２５】
ロボットの実行にかかる時間は、その実行を行う時刻における対象システムのレスポンスタイムStと、ロボット実行基盤内での多重度iにおける処理時間をEitとし、ある時刻tにおけるロボットの処理全体のレスポンスタイムをRTtとすると、多重度iにおけるRTtを以下のように定義できる。
RTit = Eit + St
ただし、Eは実行投入時刻にかかわらず、多重度iにのみ依存することとすると、
RTit = Ei + St
となる。
このRTitを推定することによって、多重度iにおける同時刻にロボットが実行するスケジュールが、次のスケジュール実行までに終了するかどうかを判断する。
【００２６】
まず、Eiを図３に示すフローチャートに従って推定する。
ステップＳ１にて、図２の符号２２に示す「無負荷状態の性能管理表」から、無負荷状態のロボットの性能一覧表を取得する。そして、取得した表から、ステップＳ２にて、ＲＰＡ実行基盤内での各内部処理時間（内部処理実行時間，内部処理待機時間）を取得し、これを多重度１の状態として記憶する。
【００２７】
続いて、ステップＳ３にて、ロボットが多重実行されたときのＲＰＡ実行基盤内での実行処理時間実績を取得する。例えば、図２の符号２３に示す「ロボットの実行状態管理表」から抽出したいロボットで情報をフィルタして、各ＲＰＡ実行基盤における各ロボットの多重度と各内部処理時間（内部処理実行時間，内部処理待機時間）とを取得する。そして、ステップＳ４にて、図４の上図に示すように、特定のＲＰＡ実行基盤における特定のロボットの多重度と内部処理時間との関係を表す表を作成する。図４の上図の例は、ロボット「Ｒｏｂｏｔ１」、ＲＰＡ実行基盤「ＲＰＡ１」の場合における各「多重度」に対する各「内部処理時間」の関係を表にしたものである。
【００２８】
続いて、ステップＳ５にて、ステップＳ４にて作成した表のデータから、推定技術を用い、多重度に対する内部処理時間の予測を行う。例えば、図４の下図の点線に示すように予測を行う。なお、推定は、最尤推定などを利用したり、いかなる方法で行ってもよい。これにより、ある多重度iにおけるシステム内部処理時間関数Eiが導出される。
【００２９】
続いて、上記Stを推定する。システムのレスポンスタイムも、システムに対するアクセスすなわち実行多重度が大きいほど処理時間に影響する。多重度は、ユーザのシステム利用が集中する時間に依存するため、結果的に、ある時刻のシステムのレスポンスタイムを計測することで多重度の影響を吸収ことができる。ただし、１つのロボットは複数のシステムに対する命令を持つため、この1つのロボット全体が終わるまでのレスポンスタイムを計測すると、システム負荷以外の要素、すなわち、ネットワークの不調などの要素が内在しやすく、予測結果に大きな誤差を生じさせることになる。このようなことを極力排除するために、システムに対する操作1つ1つのアクションに対するレスポンスタイムを推定し、閾値を設定し、特異データ除外するなどを行い、異常値を排除する。
【００３０】
上記のために、ロボットの施行（動作）ごとにレスポンスタイムを取得しながら、図２の符号２４に示す「対象システムの性能管理表」のように繰り返し記録する。この際には、ロボット処理の全体で情報を記録するのではなく、ロボット内部で実行された動作単位で情報を取得し、表を作成する。そのデータを取得するために、例えばＲＰＡ実行基盤にて、対象システムの応答時間が記録される場合にはその情報を用い、それ以外の場合には、ロボットを実行するときに、Chrome（登録商標）のiMacroやWindows（登録商標）の操作記録など処理記録ツールと連携し、ロボットによる操作に対するWebシステムの応答時間を取得する。このようにして取得したシステム応答時間を、ある時刻tにおける、ロボットの実行部品aにおける対象システムの応答時間Satとして計測し、上述したEiと同様の手順にて、図５に示すように推定をする。
なお、SatとStとの関係は、以下の通りである
ΣSat=St
ただし、ΣSatは、ロボットで実行する部品ごとのある時刻におけるレスポンスタイムの合計を示す。
【００３１】
次に、スケジュールで計画されているロボットの実行時間を推定する。ここでは、上述した情報を用いて、ある時刻tにおける多重度iで実行されたスケジュールの実行時間RTを推定する。上記のように推定された、EiおよびStによって、RTitは以下の関係式により推定が可能である。
RTit = Ei + St
上記関係式により、未来の時刻である次回に実行しようとするスケジュールの実行にかかる時間を推定する。
tには次回スケジュールを実行する時刻、iには多重度を指定し、実行するロボット毎に予測時間を算出する。
【００３２】
次に、定期的にスケジュール実行が組まれている場合を想定し、次の投入時刻までに処理が終わるかどうかのシミュレーションを、図６に示すような表を作ることで行う。ここでは、次回投入時刻は、各ＲＰＡ管理装置Ａａ，Ｂａ内で管理しているスケジュールまたは管理装置１０で管理しているスケジュールから、定期的に実行されるロボットの実行計画を、図６の符号６１に示すように取得することとする。
【００３３】
図６の符号６２の表において、内部処理予測はEi、システム応答時間予測はSt、合計予測時間はRTitに相当する。このときRTitが、図６の符号６１の表で管理している次回投入時刻を超えている場合、超過フラグを立てて管理する。
【００３４】
次に、図7に示すフローチャートに従って、スケジュールの最適化を行う。まず、ステップＳ１１にて、超過フラグが投入するスケジュール実行に立っているか確認する。超過フラグが立っているロボットがある場合には（ステップＳ１１でＹｅｓ）、そのロボットを対象ロボットとし、ステップＳ１２にて、対象ロボットが投入されるＲＰＡ実行基板以外のＲＰＡ実行基盤で、対象ロボットが投入される時刻に処理が行われるスケジュールがあるかどうかを確認する。そして、スケジュールがある場合であっても（ステップＳ１２でＹｅｓ）、そのスケジュールが予定時間内に終わるか確認する（ステップＳ１３）。このとき、スケジュール実行が予定時間内に終わる余裕がない、または、終わらないロボットが投入される予定がある場合は（ステップＳ１３でＮｏ）、最適化不可能と判断する（ステップＳ１８）。
【００３５】
一方で、対象ロボットが投入されるＲＰＡ実行基板以外のＲＰＡ実行基盤で、対象ロボットが投入される時刻に処理が行われるスケジュールがないなど、最適化の余地があると判断された場合には（ステップＳ１２でＮｏ，ステップＳ１３でＹｅｓ）、ステップＳ１４にて、対象ロボットを別のＲＰＡ実行基盤に移行させるシミュレーションを開始する。
【００３６】
ステップＳ１４の処理で対象ロボットを移行させるため、ステップＳ１５にて、最適化の対象となるＲＰＡ実行基盤（ＲＰＡ１とする）側の多重度を1減らし、再度予測時間を計算しなおす。また、ステップＳ１６にて、対象ロボットが移行されることにより処理が増やされる側のＲＰＡ実行基盤（ＲＰＡ２とする）において、移行される対象ロボットの処理を定義情報から推測し、投入される操作の内部処理時間をそのロボットの多重度を加味して推定し、処理時間RTitを推測する。このとき、外部システムの応答時間Stは、投入時刻と投入される処理にのみ依存し、ロボットを投入するシステムがRPA1からRPA2に変化したとしても変わらないとする。
【００３７】
上述したようにロボットを投入するＲＰＡの入れ替えを行った後、ステップＳ１７にて、予定終了時間が次回投入時刻を超過するものがないか調べる。超過するものが無い場合には（ステップＳ１７でＹｅｓ）、ロボットを投入するＲＰＡ実行基盤を入れ替えたスケジュールを確定する。もし、まだ超過するものがある場合は（ステップＳ１７でＮｏ）、移行させるロボットを再選択し、ステップＳ１４に戻る。また、もしすべてのロボット単体の移行における調査が終わっても、いまだ処理時間超過が発生する予測が立つ場合には、今度は移行させるロボットの数を増やし、かつ移行させるロボットの組み合わせを全調査する。それでも、処理時間超過が発生する場合には、最適化不可能と判断する。
【００３８】
次に、対象ロボットの定義情報を、以降するＲＰＡ実行基盤に対応させるための定義移行処理について説明する。ここでは、ＲＰＡ実行基盤であるＲＰＡツールは、ツール毎に定義のフォーマットは異なるものの、動作自体は、動作を組み込むロジックとその部品として、マウス操作、変数格納、抽出／入力、ファイル操作、Web pageのロード、ループ処理に集約されている。したがって、これらのカテゴリに動作を汎化させることによって、ＲＰＡツールがその汎化した内容から各ツールが読める形に具象化させることによって、定義を移行させることができる。以下に、定義の汎化の一例を示す。ただし、Webの操作を対象とし、どのRPAツールもX-pathを理解できるものとする。
【００３９】
・Object認識型ツールから定義の汎化方法。
ここでは図8を例に説明する。
クリックなどを行う対象のWebオブジェクトのX-pathを取得し、定義に記載する。
Loopについては、ループ構文が独自のもので使えるものは、それを汎化フォーマットに単純変換する。
また、同じ階層のX-pathのpath添え字がincrementされて繰り返しているものは、Loop処理として変換する。
【００４０】
・画像認識型ツールから定義の汎化方法
ここでは図9を例に説明する。
画像認識型は、ターゲットとなる画像／文字列を発見し、その周辺の入力ボックスや、情報を取得する方式となる。そのため、X-pathの情報がないため、直接オブジェクトパスが指定できない。それを解決するべく、以下の手順を行う。
画像認識型RPAツールを動かし、WebSiteにアクセスさせ、ロボットを実行させる。このとき、Browser(Chrome)などの機能やツールにより、Webにアクセスし、クリックしたオブジェクトなどの操作記録をとれるツール(iMacroなど)と連携し、操作記録および、アクセス応答時間を取得する。ツールの操作記録をさらに、ターゲットのX-pathを取得するツールと連携させ、オブジェクトのX-pathを取得する。ロボットの定義と操作ログを照合させ、不必要な動作を削除し、必要な要素のみ抽出させ、大項目に分類、X-pathとともに格納する。
【００４１】
その後、汎化させた定義には、図２の符号２１に示す表のように、管理装置で管理している個々のＲＰＡ実行基盤であるＲＰＡツールの特性を、メタデータとして添付し、ツール特有の記述に具体化する際に、読み替える行為をサポートする。
【００４２】
以上のように、本実施形態では、ロボットのアクセスする部品ごとの内部処理時間やシステム応答時間を記録し、特に、内部処理については、ＲＰＡツールにおける処理の多重度での性能変化を記録し、また、システム応答時間については、その処理を投入する時刻毎に記録している。これにより、多重度と投入時刻によるロボット実行時間に基づいて、ロボットのＲＰＡツール間の移行を計画することができる。そして、このとき、ロボットの特定のＲＰＡツールに対応する定義情報を汎化しているため、移行先のＲＰＡツールでも汎化された定義情報を認識でき、ロボットのＲＰＡツール間の移行を実現することができる。
【００４３】
そして、本発明では、以上のようにロボットをＲＰＡツール間で移行させることで、ＲＰＡツールをまたがった適切な負荷分散を行うことができる。その結果、ＲＰＡツールを有効活用することができ、ソフトウェアロボットによる業務への支障が発生することを抑制することができる。
【００４４】
ここで、上記では、ＲＰＡツール間でロボットを移行させて、ＲＰＡツール間で負荷分散を行う場合を例示したが、別の目的でＲＰＡツール間でロボットを移行させてもよい。例えば、図１０に示すように、管理しているツールの１つ（第２ＲＰＡ実行基盤Ｂ）が、ハードウェアの故障または、ネットワーク障害などにより、停止状態に陥ったとする。この時に、その稼働状況を監視しておき、関連ログが記録された事象、または、ハローパケットが停止したタイミングをトリガとし、業務代替手段として、停止したツールによって行われる予定であった処理を、動いているツール（第１ＲＰＡ実行基盤Ａ）に移行させてもよい。これにより、高可用性を実現することができる。
【００４５】
＜実施形態２＞
次に、本発明の第２の実施形態を、図１１乃至図１３を参照して説明する。図１１乃至図１２は、実施形態２におけるソフトウェアロボット管理装置の構成を示すブロック図であり、図１３は、ソフトウェアロボット管理装置の動作を示すフローチャートである。なお、本実施形態では、実施形態１で説明したソフトウェアロボット管理システム及びソフトウェアロボット管理システムによる処理方法の構成の概略を示している。
【００４６】
まず、図１１を参照して、本実施形態におけるソフトウェアロボット管理装置１００のハードウェア構成を説明する。ソフトウェアロボット管理装置１００は、一般的な情報処理装置にて構成されており、一例として、以下のようなハードウェア構成を装備している。
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１（演算装置）
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２（記憶装置）
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３（記憶装置）
・ＲＡＭ１０３にロードされるプログラム群１０４
・プログラム群１０４を格納する記憶装置１０５
・情報処理装置外部の記憶媒体１１０の読み書きを行うドライブ装置１０６
・情報処理装置外部の通信ネットワーク１１１と接続する通信インタフェース１０７
・データの入出力を行う入出力インタフェース１０８
・各構成要素を接続するバス１０９
【００４７】
そして、ソフトウェアロボット管理装置１００は、プログラム群１０４をＣＰＵ１０１が取得して当該ＣＰＵ１０１が実行することで、図１２に示す管理部１２１と定義変換部１２２とを構築して装備することができる。なお、プログラム群１０４は、例えば、予め記憶装置１０５やＲＯＭ１０２に格納されており、必要に応じてＣＰＵ１０１がＲＡＭ１０３にロードして実行する。また、プログラム群１０４は、通信ネットワーク１１１を介してＣＰＵ１０１に供給されてもよいし、予め記憶媒体１１０に格納されており、ドライブ装置１０６が該プログラムを読み出してＣＰＵ１０１に供給してもよい。但し、上述した管理部１２１と定義変換部１２２とは、電子回路で構築されるものであってもよい。
【００４８】
なお、図１１は、ソフトウェアロボット管理装置１００である情報処理装置のハードウェア構成の一例を示しており、情報処理装置のハードウェア構成は上述した場合に例示されない。例えば、情報処理装置は、ドライブ装置１０６を有さないなど、上述した構成の一部から構成されてもよい。
【００４９】
そして、ソフトウェアロボット管理装置１００は、上述したようにプログラムによって構築された管理部１２１と定義変換部１２２との機能により、図１３のフローチャートに示すソフトウェアロボット管理方法を実行する。
【００５０】
図１３に示すように、ソフトウェアロボット管理装置１００は、
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理し（ステップＳ１０１）、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する（ステップＳ１０２）。
【００５１】
本発明は、以上のように構成されることにより、特定のツールで実行するよう計画されたソフトウェアロボットの定義情報を、他のツールで認識可能なよう変換しているため、移行先の他のツールでも定義情報を認識でき、ソフトウェアロボットのツール間の移行を実現することができる。その結果、複数のツールを有効活用することができ、ソフトウェアロボットによる業務への支障が発生することを抑制することができる。
【００５２】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるソフトウェアロボット管理方法、ソフトウェアロボット管理装置、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００５３】
（付記１）
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理し、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する、
ソフトウェアロボット管理方法。
【００５４】
（付記２）
付記１に記載のソフトウェアロボット管理方法であって、
前記特定のツールに対応する形式の前記定義情報を、複数のツールで認識可能な形式に汎化した汎化定義情報に変換する、
ソフトウェアロボット管理方法。
【００５５】
（付記３）
付記２に記載のソフトウェアロボット管理方法であって、
前記特定のツールにおいて実行するよう計画されたソフトウェアロボットが、当該ソフトウェアロボットの前記汎化定義情報を用いて別のツールで実行されるよう計画する、
ソフトウェアロボット管理方法。
【００５６】
（付記４）
付記３に記載のソフトウェアロボット管理方法であって、
予め設定された複数のツールのそれぞれにおけるソフトウェアロボットを実行するときの特性を表す特性情報に基づいて、前記特定のツールで計画されたソフトウェアロボットを実行した場合の予測実行時間を算出し、
前記予測実行時間に基づいて、前記特定のツールにおいて実行するよう計画されたソフトウェアロボットが、当該ソフトウェアロボットの前記汎化定義情報を用いて別のツールで実行されるよう計画する、
ソフトウェアロボット管理方法。
【００５７】
（付記５）
付記３又は４に記載のソフトウェアロボット管理方法であって、
予め設定された複数のツールのそれぞれにおけるソフトウェアロボットを実行するときの特性を表す特性情報に基づいて、前記別のツールで計画されたソフトウェアロボットを当該ソフトウェアロボットの前記汎化定義情報を用いて実行した場合の予測実行時間を算出し、
前記予測実行時間に基づいて、前記別のツールでソフトウェアロボットが実行される計画を確定する、
ソフトウェアロボット管理方法。
【００５８】
（付記６）
付記４又は５に記載のソフトウェアロボット管理方法であって、
前記特性情報は、ツールにおいて実行されるソフトウェアロボットの数に応じた特性を表す多重度特性情報を含み、
計画の変更前と変更後のそれぞれにおいてツールで実行されるソフトウェアロボットの数に応じた前記多重度特性情報を用いて、前記予測実行時間を算出する、
ソフトウェアロボット管理方法。
【００５９】
（付記７）
付記４乃至６のいずれかに記載のソフトウェアロボット管理方法であって、
前記特性情報は、ツールにおいてソフトウェアロボットが実行されたときの時刻に応じた特性を表す時刻特性情報を含み、
計画の変更前においてツールでソフトウェアロボットが実行される時刻に応じた前記時刻特性情報を用いて、前記予測実行時間を算出する、
ソフトウェアロボット管理方法。
【００６０】
（付記８）
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理する管理部と、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する定義変換部と、
を備えたソフトウェアロボット管理装置。
【００６１】
（付記８．１）
付記８に記載のソフトウェアロボット管理装置であって、
前記定義変換部は、前記特定のツールに対応する形式の前記定義情報を、複数のツールで認識可能な形式に汎化した汎化定義情報に変換する、
ソフトウェアロボット管理装置。
【００６２】
（付記８．２）
付記８．１に記載のソフトウェアロボット管理装置であって、
前記管理部は、前記特定のツールにおいて実行するよう計画されたソフトウェアロボットが、当該ソフトウェアロボットの前記汎化定義情報を用いて別のツールで実行されるよう計画する、
ソフトウェアロボット管理装置。
【００６３】
（付記８．３）
付記８．２に記載のソフトウェアロボット管理装置であって、
前記管理部は、予め設定された複数のツールのそれぞれにおけるソフトウェアロボットを実行するときの特性を表す特性情報に基づいて、前記特定のツールで計画されたソフトウェアロボットを実行した場合の予測実行時間を算出し、当該予測実行時間に基づいて、前記特定のツールにおいて実行するよう計画されたソフトウェアロボットが、当該ソフトウェアロボットの前記汎化定義情報を用いて別のツールで実行されるよう計画する、
ソフトウェアロボット管理装置。
【００６４】
（付記８．４）
付記８．２又は８．３に記載のソフトウェアロボット管理装置であって、
前記管理部は、予め設定された複数のツールのそれぞれにおけるソフトウェアロボットを実行するときの特性を表す特性情報に基づいて、前記別のツールで計画されたソフトウェアロボットを当該ソフトウェアロボットの前記汎化定義情報を用いて実行した場合の予測実行時間を算出し、当該予測実行時間に基づいて、前記別のツールでソフトウェアロボットが実行される計画を確定する、
ソフトウェアロボット管理装置。
【００６５】
（付記８．５）
付記８．３又は８．４に記載のソフトウェアロボット管理装置であって、
前記特性情報は、ツールにおいて実行されるソフトウェアロボットの数に応じた特性を表す多重度特性情報を含み、
前記管理部は、計画の変更前と変更後のそれぞれにおいてツールで実行されるソフトウェアロボットの数に応じた前記多重度特性情報を用いて、前記予測実行時間を算出する、
ソフトウェアロボット管理装置。
【００６６】
（付記８．６）
付記８．３乃至８．５のいずれかに記載のソフトウェアロボット管理装置であって、
前記特性情報は、ツールにおいてソフトウェアロボットが実行されたときの時刻に応じた特性を表す時刻特性情報を含み、
前記管理部は、計画の変更前と変更後のそれぞれにおいてツールでソフトウェアロボットが実行される時刻に応じた前記時刻特性情報を用いて、前記予測実行時間を算出する、
ソフトウェアロボット管理方法。
【００６７】
（付記９）
情報処理装置に、
ソフトウェアロボットを実行する実行環境である複数のツールにおいて実行されるソフトウェアロボットの計画を管理する管理部と、
特定のツールで実行するよう計画されたソフトウェアロボットの処理動作を定義する定義情報を、前記特定のツールに対応する形式から他のツールで認識可能なよう変換する定義変換部と、
を実現させるためのプログラム。
【００６８】
なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６９】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００７０】
１０  管理装置
１１  スケジュール管理部
１２  定義変換部
１３  ツールデータ記憶部
１４  スケジュールデータ記憶部
１５  定義データ記憶部
Ａ  第１ＲＰＡ実行基盤
Ａａ  第１ＲＰＡツール管理装置
Ｂ  第２ＲＰＡ実行基盤
Ｂａ  第２ＲＰＡツール管理装置
１００  ソフトウェアロボット管理装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  プログラム群
１０５  記憶装置
１０６  ドライブ装置
１０７  通信インタフェース
１０８  入出力インタフェース
１０９  バス
１１０  記憶媒体
１１１  通信ネットワーク
１２１  管理部
１２２  定義変換部
【図１Ａ】
2020154553.tif 000003
【図１Ｂ】
2020154553.tif 000004
【図２】
2020154553.tif 000005
【図３】
2020154553.tif 000006
【図４】
2020154553.tif 000007
【図５】
2020154553.tif 000008
【図６】
2020154553.tif 000009
【図７】
2020154553.tif 000010
【図８】
2020154553.tif 000011
【図９】
2020154553.tif 000012
【図１０】
2020154553.tif 000013
【図１１】
2020154553.tif 000014
【図１２】
2020154553.tif 000015
【図１３】
2020154553.tif 000016