(57)【要約】【課題】複数のソフトウェアロボットを動作させる場合において、処理時間が長くなることとコストが高くなること。【解決手段】本発明のソフトウェアロボット制御装置１００は、情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御する制御部１２１と、動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶する実行部１２２と、後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する復元部１２３と、を備える。【選択図】図８
2020155019.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御し、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶し、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する、
ソフトウェアロボット制御方法。
【請求項２】
請求項１に記載のソフトウェアロボット制御方法であって、
ソフトウェアロボットに実行させた画面操作処理の内容として、当該画面操作処理の実行終了時における画面情報を記憶する、
ソフトウェアロボット制御方法。
【請求項３】
請求項１又は２に記載のソフトウェアロボット制御方法であって、
ソフトウェアロボットに実行させた画面操作処理の内容として、画面操作処理の実行終了時における、開いているウィンドウ、クリップボードの内容、マウス座標、実行した操作内容、及び、操作対象、を表す情報を記憶する、
ソフトウェアロボット制御方法。
【請求項４】
請求項１乃至３のいずれかに記載のソフトウェアロボット制御方法であって、
動作するソフトウェアロボットに前記一定量の画面操作処理をまとめて実行させるキューを生成し、当該キューに基づいてソフトウェアロボットに操作画面に対する画面操作処理を実行させて、実行させた画面操作処理の内容を記憶する、
ソフトウェアロボット制御方法。
【請求項５】
請求項１乃至４のいずれかに記載のソフトウェアロボット制御方法であって、
動作するソフトウェアロボットに実行させる前記一定量の画面操作処理は、複数ステップの処理あるいは所定時間の処理である、
ソフトウェアロボット制御方法。
【請求項６】
請求項１乃至５のいずれかに記載のソフトウェアロボット制御方法であって、
現在動作しているソフトウェアロボットと、これから動作するソフトウェアロボットと、が異なる場合に、現在の操作画面をクリアして、これから動作するソフトウェアロボットについて記憶している前回の画面操作処理の実行終了時における画面情報に基づいて操作画面を復元する、
ソフトウェアロボット制御方法。
【請求項７】
請求項１乃至６のいずれかに記載のソフトウェアロボット制御方法であって、
ソフトウェアロボットの実行要求に対応するソフトウェアロボットの実行情報を識別する識別情報に、当該ソフトウェアロボットによる画面操作処理の実行終了時における画面情報を関連付けて記憶すると共に、動作しているソフトウェアロボットの前記識別情報を動作ロボット情報として記憶保持し、
記憶保持している前記動作ロボット情報である前記識別情報と、新たに動作するソフトウェアロボットの前記識別情報と、が異なる場合に、当該新たに動作するソフトウェアロボットの前記識別情報に関連付けられている前記画面情報に基づいて操作画面を復元する、
ソフトウェアロボット制御方法。
【請求項８】
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御する制御部と、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶する実行部と、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する復元部と、
を備えたソフトウェアロボット制御装置。
【請求項９】
情報処理装置に、
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御する制御部と、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶する実行部と、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する復元部と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアロボット制御方法、ソフトウェアロボット制御装置、プログラムに関する。
【背景技術】
【０００２】
昨今、少子高齢化等の様々な要因から労働人口の減少が懸念されている。また、労働人口の減少等の問題を一因として、現時点でも長時間労働や人手不足といった社会問題が深刻化している。このような社会問題に対し、政府の旗振りの下、多くの企業で働き方改革への取り組みが推進されている。働き方改革の目的の一つとしてホワイトカラー業務の生産性向上が挙げられている。各企業においては、この働き方改革への対応が急務な状況となっている。
【０００３】
業務の生産性向上のために、ＲＰＡ（Robotic Process Automation）という認知技術を活用したコンピュータ業務の効率化を進める取り組みに注目が集まっている。ＲＰＡでは、人間がキーボードやマウスを用いて行う定型業務等をソフトウェアロボットに覚えさせ、人間の代わりにソフトウェアロボットがコンピュータ操作を実行することで業務の自動化を実現している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１１−１２８９４０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、画面操作を行うロボットを実行する場合、画面操作の競合の点から一つのコンピュータ上で動作させるロボットを一つに制限する必要がある。そのため、後から実行されたロボットが待ち合わせされ、完了時間が長くなってしまう、という問題が生じる。
【０００６】
上述した問題を解決するために、一つのコンピュータ上で複数のセッションでロボットを実行する技術や、特許文献１に記載のように、複数のコンピュータ上でロボットを実行する技術がある。ところが、このような場合には、コンピュータやＯＳ（Operating System）ライセンスの追加が必要となり、システムの価格が高くなってしまう、という問題が生じる。
【０００７】
このため、本発明の目的は、上述した課題である、複数のソフトウェアロボットを動作させる場合において、処理時間が長くなることとコストが高くなること、を解決することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態であるソフトウェアロボット制御方法は、
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御し、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶し、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する、
という構成をとる。
【０００９】
また、本発明の一形態であるソフトウェアロボット制御装置は、
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御する制御部と、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶する実行部と、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する復元部と、
を備えた、
という構成をとる。
【００１０】
また、本発明の一形態であるプログラムは、
情報処理装置に、
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御する制御部と、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶する実行部と、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する復元部と、
を実現させる、
という構成をとる。
【発明の効果】
【００１１】
本発明は、以上のように構成されることにより、複数のロボットを動作させる場合において、コストを抑制しつつ、処理時間が長くなることを抑制することができる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施形態１におけるソフトウェアロボット制御システムの構成を示すブロック図である。
【図２】図１に開示したソフトウェアロボット制御システムによる処理の様子を示す図である。
【図３】図１に開示したソフトウェアロボット制御システムによる処理の様子を示す図である。
【図４】図１に開示したソフトウェアロボット制御システムによる処理の様子を示す図である。
【図５】図１に開示したソフトウェアロボット制御システムによる処理の様子を示す図である。
【図６】図１に開示したソフトウェアロボット制御システムの動作を示すフローチャートである。
【図７】本発明の実施形態２におけるソフトウェアロボット制御装置のハードウェア構成を示すブロック図である。
【図８】本発明の実施形態２におけるソフトウェアロボット制御装置の構成を示すブロック図である。
【図９】本発明の実施形態２におけるソフトウェアロボット制御装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
＜実施形態１＞
本発明の第１の実施形態を、図１乃至図６を参照して説明する。図１は、ソフトウェアロボット制御システムの構成を説明するための図であり、図２乃至図６は、ソフトウェアロボット制御システムの処理動作を説明するための図である。
【００１４】
［構成］
本発明におけるソフトウェアロボット制御システムは、ＲＰＡ（Robotic Process Automation）ツールを用いて、ソフトウェアロボット（以下、単に「ロボット」とも言う。）を実行させる情報処理システムである。本実施形態では、ソフトウェアロボット制御システムは、演算装置と記憶装置とを備えた１台又は複数台の情報処理装置にて構成される。そして、ソフトウェアロボット制御システムは、図１に示すように、演算装置がプログラムを実行することで構築された、ロボット実行受付部１、ロボット制御部２、ロボット定義読込部３、画面操作キュー処理部４、ロボット処理依頼部５、コマンド受付部６、コマンド実行部７、画面操作受付部８、画面操作部９、画面記憶処理部１０、画面復元部１１、を備える。また、ソフトウェアロボット制御システムは、記憶装置に形成された、ロボット実行情報記憶部２１、ロボット定義情報記憶部２２、画面操作キュー記憶部２３、画面情報記憶部２４、を備える。以下、各構成について詳述する。
【００１５】
上記ロボット実行受付部１は、ユーザからのロボット実行要求を受け付けするためのインタフェースを持ち、ソフトウェアロボットの実行要求を受け付けると、かかる実行要求に対応するソフトウェアロボットの実行情報をロボット実行情報記憶部２１に格納する。ここで、ロボット実行情報記憶部２１に記憶されるロボットの実行情報の一例を図２に示す。この図に示すように、ロボットの実行情報は、実行情報を識別する識別情報である「実行ＩＤ」と、実行する「ロボット」と、「実行状態」と、実行内容を表す「実行ステップ」及び「種別」と、「開始日時」及び「終了日時」と、を含む。
【００１６】
上記ロボット制御部２は、ロボット実行情報記憶部２１の情報を定期的に読み込み、ロボットの実行要求があれば、ロボット定義読込部３に対して最初のステップの処理内容を要求する。ロボット制御部２は、要求されたステップの処理種別が「コマンド」であれば、ロボット処理依頼部５に対してコマンド実行依頼を行う。ロボット制御部２は、要求されたステップの処理種別が「画面操作」であれば、画面操作キュー処理部４に対して画面操作要求を送る。また、ロボット制御部２は、画面操作キュー処理部４から実行する画面操作の通知があれば、ロボット処理依頼部５に画面操作依頼を行う。ロボット制御部２は、ロボット処理依頼部５からロボット処理の結果が返ってきたら、ロボット実行情報記憶部２１の実行情報を更新し、次のステップのロボット処理を開始する。なお、ロボット制御部２は、「画面操作」の場合は、ロボット処理依頼部５からロボット処理の結果が返ってきたら、画面操作キュー処理部４に対して画面操作終了通知を行う。
【００１７】
上記ロボット定義読込部３は、ロボット制御部２から要求のあったロボットの定義情報をロボット定義情報記憶部２２から読み込み、要求のあったステップの処理内容をロボット制御部２に返却する。ここで、ロボット定義情報記憶部２２に記憶されるロボット定義情報の一例を図３に示す。この図に示すように、ロボット定義情報は、ロボット毎に（robot1, robot2, robot3, ...）記憶されており、各動作ステップにおけるロボットの操作内容を表す情報（種別、操作内容、捜査対象、負荷情報）を含む。
【００１８】
上記画面操作キュー処理部４は、ロボット制御部２からの画面操作要求及び画面操作完了通知を受け付け、画面操作要求のキュー情報を画面操作キュー記憶部２３に格納する。そして、画面操作キュー処理部４は、キューイングされた要求を、FIFO(First In, First Out)で処理し、画面操作キュー記憶部２３のキュー情報から、実行する画面操作をロボット制御部２に通知する。ここで、画面操作キュー記憶部２３に記憶されるキュー情報の一例を図４に示す。この図に示すように、画面操作要求のキュー情報は、キュー毎に、画面操作要求のあった「実行ＩＤ」、画面操作を実行する「処理ステップ数」、画面操作の「開始日時」を含む。なお、画面操作キュー処理部４は、一定ステップ数、または、一定時間、同じロボットの処理を行うようにキュー情報のキューイングを行う。具体的には、上述したように、キュー情報に記録した処理ステップ数と開始時刻から、処理ステップ数または処理時間（現在時刻−開始時刻）が閾値（例えば、処理ステップ数が「１０」、または、処理時間が「１秒」）を超えた場合、処理ステップ数と処理時間をクリアし、その実行ＩＤの画面操作の要求を最後に積み直し、次にキューイングされた画面操作を行う。このように、画面操作キュー処理部４により、１つのソフトウェアロボットに複数のステップの処理や所定時間の処理といった一定量の画面操作処理をまとめて実行させるキューを生成して、実行させることとなる。
【００１９】
上記ロボット処理依頼部５は、ロボット制御部２からのロボット処理依頼（コマンド実行、画面操作）を受け、処理内容に応じて、コマンド受付部６または画面操作受付部８に対して、処理依頼を行う。また、ロボット処理依頼部５は、依頼した処理の結果を、コマンド受付部６又は画面操作受付部８から受信し、その結果をロボット制御部２に送る。
【００２０】
上記コマンド受付部６は、ロボット処理依頼部５からのコマンド実行依頼を受け、コマンド実行部７にコマンド実行依頼を送る。また、コマンド受付部６は、コマンド実行部７からの実行結果をロボット処理依頼部５に送る。
【００２１】
上記コマンド実行部７は、コマンド受付部６から依頼のあったコマンドを実行し、実行結果をコマンド受付部６に返却する。
【００２２】
上記画面操作受付部８は、ロボット処理依頼部５からの画面操作依頼を受け、画面操作部９に画面操作依頼を送る。また、画面操作受付部８は、画面操作部９からの実行結果をロボット処理依頼部５に送る。
【００２３】
上記画面操作部９は、画面操作受付部８からの画面操作依頼を受け付け、画面復元部１１に画面復元処理を依頼する。また、画面操作部９は、画面復元部１１からの画面復元完了を受け、画面操作を行う。そして、画面操作部９は、画面操作完了後に、画面記憶処理部１０に対して、画面記憶処理依頼を行う。画面操作部９は、画面記憶処理完了後、画面操作結果を画面操作受付部８に送る。
【００２４】
上記画面記憶処理部１０は、画面操作部９からの画面記憶処理依頼を受け、画面情報を画面情報記憶部２４に格納し、完了通知を画面操作部９に送る。ここで、画面情報記憶部２４に記憶される画面情報の一例を図５に示す。この図に示すように、画面情報には、実行された画面操作処理の実行ＩＤに関連付けられた、画面操作処理の実行終了時における現在の画面情報、具体的には、開いているウィンドウと順序、クリップボードの内容、マウス座標、今回実施の操作内容、操作対象、を含む。このとき、操作対象については、例えば、右クリックの場合と、左クリックでかつ操作対象のオブジェクトがリストボックスの場合だけ記憶する。また、画面記憶処理部１０は、現在の画面情報を記録したときに操作処理の実行を終了した実行ＩＤを、「前回実行ＩＤ」（動作ロボット情報）として画面情報記憶部２４に記憶保持しておく。図５の例では、「前回実行ＩＤ」として「２」が記憶され、次の実行ＩＤの画面操作処理が行われるまで保持される。
【００２５】
上記画面復元部１１は、画面操作部９からの画面復元依頼を受け、復元依頼された「実行ＩＤ」と、画面情報記憶部２４に格納されている「前回実行ＩＤ」と比較し、実行ＩＤの値が異なれば、画面情報記憶部２４に記憶されている復元依頼された「実行ＩＤ」に関連付けられている画面情報を基に、操作画面を復元する。例えば、図５に示す「実行ＩＤ」が「３」の操作画面を復元する場合には、app3.exeのウィンドウ、app2.exeのウィンドウ、app1.exeのウィンドウを順に開く。次に、マウス座標を前回の座標に移動する。最後に、前回の操作内容が右クリック、またはリストボックスへの左クリックの場合、前回の操作を実施し、復元処理を終了する。
【００２６】
以上のように、本実施形態におけるソフトウェアロボット制御システムは、上述した構成により以下の機能を有することとなる。まず、ソフトウェアロボット制御システムは、主にロボット制御部２（制御部）により、ロボットの実行情報に基づいて、システム（情報処理装置）内で１つの実行ＩＤに対応する１つのソフトウェアロボットが動作するよう制御する機能を有する。また、ソフトウェアロボット制御システムは、画面操作キュー処理部４、画面操作部９、画面記憶処理部１０等の各部１〜１０（実行部）により、動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶する機能を有する。さらに、ソフトウェアロボット制御システムは、主に画面復元部１１（復元部）により、ソフトウェアロボットが動作する前に、前回の画面操作処理の実行終了時における画面情報に基づいて操作画面を復元する機能を有する。
【００２７】
［動作］
次に、上述したソフトウェアロボット制御システムの動作を、主に図６のフローチャートを参照して説明する。なお、図６は、ソフトウェアロボット制御システムによる画面復元処理の動作を示すフローチャートである。
【００２８】
まず、CUI（Character User Interface）やGUI（Graphical User Interface）、API（Application Programming Interface）等からのユーザのロボット実行要求をロボット実行受付部１で受け付けると、ロボット実行情報記憶部２１に図２に示すような実行情報を格納する。そして、ロボット制御部２は、定期的にロボット実行情報記憶部２１の実行情報を参照し、実行するロボットがあればロボットの実行処理を開始する。ここでは、ロボット制御部２は、まず、ロボット定義読込部３に依頼し、ロボット定義情報記憶部２２から実行するステップの処理内容（種別、操作内容、操作対象、負荷情報）を取得する。
【００２９】
次に、ロボット制御部２は、実行するステップの種別に応じて、処理を別ける。種別がコマンドの場合は、ロボット制御部２は、ロボット処理依頼部５からコマンド受付部６に対し、コマンド実行依頼を行い、コマンド実行部７でコマンドの実行を行う。種別が画面操作の場合は、ロボット制御部２は、画面操作要求を画面操作キュー処理部４に送り、要求をキューイングする。キューイングした要求は、図４に示すように、画面操作キュー記憶部２３に格納する。
【００３０】
画面操作キュー処理部４では、キューイングされた要求をFIFO(First In, First Out)で処理する。ただし、１画面操作毎に動作するロボットを切り替えると画面復元部１１の復元処理が何度も行われ、処理効率が悪くなるため、一定ステップ数、または一定時間は同じロボットの処理を行うようにする。具体的には、キュー情報に、実行ＩＤに対して実行した画面操作の処理ステップ数と、開始時刻を記憶し、処理ステップ数または処理時間（現在時刻−開始時刻）が閾値（例えば、処理ステップ数が１０、または処理時間が１秒）を超えた場合、処理ステップ数と処理時間をクリアし、その実行ＩＤの画面操作の要求を最後に積み直し、次にキューイングされた画面操作を行う。このようなキュー処理を行い、処理すべき画面操作をロボット制御部２に送信し、ロボット処理依頼部５から画面操作受付部８に画面操作依頼を行う。
【００３１】
ロボット処理依頼部５からの画面操作依頼は、画面操作部９に送られ、実際の画面操作処理を行う。このとき、画面操作部９による画面操作処理に先立ち、まず、画面復元部１１で画面の復元処理を行う。復元処理は、画面記憶処理部１０で画面情報記憶部２４に記憶した図５に示すような前回の画面情報を基に画面の復元を行う。ここで、復元処理の詳細を、図６のフローチャートを参照して説明する。
【００３２】
まず、画面復元部１１は、画面情報記憶部２４に記憶されている「前回実行ＩＤ」から、前回に画面操作した実行ＩＤを抽出し、かかる実行ＩＤと、今回の画面操作の実行ＩＤと、が同じであるかを判別する（ステップＳ１）。実行ＩＤが同じである場合（ステップＳ１でＹｅｓ）、復元処理は終了する。つまり、前回と今回の実行ＩＤが同じ場合には、同じソフトウェアロボットによる連続した画面操作となるため、操作画面の復元処理を行う必要はない。一方、前回の実行ＩＤと今回の実行ＩＤとが異なる場合は（ステップＳ１でＮｏ）、画面のクリア（開いているウィンドウの最小化）を行い（ステップＳ２）、今回の実行ＩＤの画面情報に従って、かかる実行ＩＤの前回の画面操作終了時の操作画面を復元する。つまり、前回と今回の実行ＩＤが異なる場合には、前回のソフトウェアロボットとは異なるソフトウェアロボットが画面操作を行うこととなるため、今回のソフトウェアロボットによる前回の画面操作終了時の操作画面を復元する。ここで、図５に示すような画面情報の場合に、今回の画面操作が行われる実行ＩＤが「３」であり、「前回実行ＩＤ」が「２」であることとする。すると、実行ＩＤ「２」の画面がクリアされ、以下のように実行ＩＤ「３」の画面情報に従って操作画面が復元される。
【００３３】
画面復元処理では、具体的に、まず、画面ＩＤ「３」の画面情報のうち「ウィンドウ」の情報から、表示していた画面と画面の順序を復元する（ステップＳ３）。ここでは、「app3.exe」のウィンドウ、「app2.exe」のウィンドウ、「app1.exe」のウィンドウを順に開く。次に「マウス座標」を前回の座標に移動する（ステップＳ４）。最後に、前回の操作内容が右クリックまたはリストボックスへの左クリックの場合、前回の操作を実施し（ステップＳ５，Ｓ６，Ｓ７，Ｓ８）、復元処理を終了する。
【００３４】
以上のような復元処理が終了すると、画面操作部９で依頼のあった画面操作を実施する。ここでは、実行ＩＤ「３」の画面操作を実施する。
【００３５】
その後、画面操作が終了すると、実行ＩＤ「３」に関連付けて、画面記憶処理部１０で現在の画面情報（開いているウィンドウと順序、クリップボード、マウス座標、今回実施の操作内容、操作対象）を画面情報記憶部２４に格納する。なお、操作対象については、右クリックの場合と、左クリックでかつ操作対象のオブジェクトがリストボックスの場合だけ記憶する。また、現画面の実行ＩＤ「３」の値を、図５に示す「前回実行ＩＤ」として、画面情報記憶部２４に格納する。なお、依頼された画面操作が対象ロボットの最後の画面操作の場合は、画面情報は記憶せず、削除する。
【００３６】
コマンド実行及び画面操作が終了すると、コマンド受付部６または画面操作受付部８からロボット処理依頼部５に対して実行結果を送信し、ロボット制御部２で実行情報を更新する。送信された実行結果が画面操作であった場合は、画面操作キュー処理部４に対して画面操作終了通知を行い、キュー情報の処理ステップ数を更新する。次のステップの種別がコマンド、または次のステップが無い場合はキューイング終了通知も行い、キュー情報から該当の実行ＩＤのキュー情報を削除する。
【００３７】
以上の処理が終了すると、ロボット制御部２は次のステップの処理に移り、ロボットの全ステップの処理が完了するまで繰り返し実行する。
【００３８】
以上のように、本発明では、ロボットの画面操作において、一定の処理数（マウス操作やキー入力の数）、または、処理時間により、動作させるロボットを切り替えている。そして、切り替える際には、ウィンドウやクリップボード、マウス座標の画面情報、及び画面操作内容を記録し、次回の動作時に画面の状態を復元してからロボットを動作させている。これにより、画面操作を行うロボットの競合を回避し、複数ロボットの効率的な実行を可能とする。その結果、複数のロボットを動作させる場合において、コストを低減できると共に、処理時間を短くすることができる。
【００３９】
＜実施形態２＞
次に、本発明の第２の実施形態を、図７乃至図９を参照して説明する。図７乃至図８は、実施形態２におけるソフトウェアロボット制御装置の構成を示すブロック図であり、図９は、ソフトウェアロボット制御装置の動作を示すフローチャートである。なお、本実施形態では、実施形態１で説明したソフトウェアロボット制御システム及びソフトウェアロボット制御システムによる処理方法の構成の概略を示している。
【００４０】
まず、図７を参照して、本実施形態におけるソフトウェアロボット制御装置１００のハードウェア構成を説明する。ソフトウェアロボット制御装置１００は、一般的な情報処理装置にて構成されており、一例として、以下のようなハードウェア構成を装備している。
・ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１（演算装置）
・ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０２（記憶装置）
・ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０３（記憶装置）
・ＲＡＭ１０３にロードされるプログラム群１０４
・プログラム群１０４を格納する記憶装置１０５
・情報処理装置外部の記憶媒体１１０の読み書きを行うドライブ装置１０６
・情報処理装置外部の通信ネットワーク１１１と接続する通信インタフェース１０７
・データの入出力を行う入出力インタフェース１０８
・各構成要素を接続するバス１０９
【００４１】
そして、ソフトウェアロボット制御装置１００は、プログラム群１０４をＣＰＵ１０１が取得して当該ＣＰＵ１０１が実行することで、図８に示す制御部１２１と実行部１２２と復元部１２３とを構築して装備することができる。なお、プログラム群１０４は、例えば、予め記憶装置１０５やＲＯＭ１０２に格納されており、必要に応じてＣＰＵ１０１がＲＡＭ１０３にロードして実行する。また、プログラム群１０４は、通信ネットワーク１１１を介してＣＰＵ１０１に供給されてもよいし、予め記憶媒体１１０に格納されており、ドライブ装置１０６が該プログラムを読み出してＣＰＵ１０１に供給してもよい。但し、上述した制御部１２１と実行部１２２と復元部１２３とは、電子回路で構築されるものであってもよい。
【００４２】
なお、図７は、ソフトウェアロボット制御装置１００である情報処理装置のハードウェア構成の一例を示しており、情報処理装置のハードウェア構成は上述した場合に例示されない。例えば、情報処理装置は、ドライブ装置１０６を有さないなど、上述した構成の一部から構成されてもよい。
【００４３】
そして、ソフトウェアロボット制御装置１００は、上述したようにプログラムによって構築された制御部１２１と実行部１２２と復元部１２３との機能により、図９のフローチャートに示すソフトウェアロボット制御方法を実行する。
【００４４】
図９に示すように、ソフトウェアロボット制御装置１００は、
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御し（ステップＳ１０１）、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて（ステップＳ１０２）、実行させた画面操作処理の内容を記憶し（ステップＳ１０３）、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する（ステップＳ１０４）。
【００４５】
本発明は、以上のように構成されることにより、ソフトウェアロボットに一定量の画面操作処理をまとめて実行させて、その画面操作処理の内容を記憶し、後に同一のソフトウェアロボットが動作する前に、記憶した画面操作処理の内容に基づいて層が画面を復元している。これにより、複数のソフトウェアロボットを効率よく作動させることができ、コストを低減して、処理時間を短くすることができる。
【００４６】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるソフトウェアロボット制御方法、ソフトウェアロボット制御装置、プログラムの構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００４７】
（付記１）
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御し、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶し、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する、
ソフトウェアロボット制御方法。
【００４８】
（付記２）
付記１に記載のソフトウェアロボット制御方法であって、
ソフトウェアロボットに実行させた画面操作処理の内容として、当該画面操作処理の実行終了時における画面情報を記憶する、
ソフトウェアロボット制御方法。
【００４９】
（付記３）
付記１又は２に記載のソフトウェアロボット制御方法であって、
ソフトウェアロボットに実行させた画面操作処理の内容として、画面操作処理の実行終了時における、開いているウィンドウ、クリップボードの内容、マウス座標、実行した操作内容、及び、操作対象、を表す情報を記憶する、
ソフトウェアロボット制御方法。
【００５０】
（付記４）
付記１乃至３のいずれかに記載のソフトウェアロボット制御方法であって、
動作するソフトウェアロボットに前記一定量の画面操作処理をまとめて実行させるようキューを生成し、当該キューに基づいてソフトウェアロボットに操作画面に対する画面操作処理を実行させて、実行させた画面操作処理の内容を記憶する、
ソフトウェアロボット制御方法。
【００５１】
（付記５）
付記１乃至４のいずれかに記載のソフトウェアロボット制御方法であって、
動作するソフトウェアロボットに実行させる前記一定量の画面操作処理は、複数ステップの処理あるいは所定時間の処理である、
ソフトウェアロボット制御方法。
【００５２】
（付記６）
付記１乃至５のいずれかに記載のソフトウェアロボット制御方法であって、
現在動作しているソフトウェアロボットと、これから動作するソフトウェアロボットと、が異なる場合に、現在の操作画面をクリアして、これから動作するソフトウェアロボットについて記憶している前回の画面操作処理の実行終了時における画面情報に基づいて操作画面を復元する、
ソフトウェアロボット制御方法。
【００５３】
（付記７）
付記１乃至６のいずれかに記載のソフトウェアロボット制御方法であって、
ソフトウェアロボットの実行要求に対応するソフトウェアロボットの実行情報を識別する識別情報に、当該ソフトウェアロボットによる前回の画面操作処理の実行終了時における画面情報を関連付けて記憶すると共に、動作しているソフトウェアロボットの前記識別情報を動作ロボット情報として記憶保持し、
記憶保持している前記動作ロボット情報である前記識別情報と、新たに動作するソフトウェアロボットの前記識別情報と、が異なる場合に、当該新たに動作するソフトウェアロボットの前記識別情報に関連付けられている前記画面情報に基づいて操作画面を復元する、
ソフトウェアロボット制御方法。
【００５４】
（付記８）
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御する制御部と、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶する実行部と、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する復元部と、
を備えたソフトウェアロボット制御装置。
【００５５】
（付記８．１）
付記８に記載のソフトウェアロボット制御装置であって、
前記実行部は、ソフトウェアロボットに実行させた画面操作処理の内容として、当該画面操作処理の実行終了時における画面情報を記憶する、
ソフトウェアロボット制御装置。
【００５６】
（付記８．２）
付記８又は８．１に記載のソフトウェアロボット制御装置であって、
前記実行部は、ソフトウェアロボットに実行させた画面操作処理の内容として、画面操作処理の実行終了時における、開いているウィンドウ、クリップボードの内容、マウス座標、実行した操作内容、及び、操作対象、を表す情報を記憶する、
ソフトウェアロボット制御装置。
【００５７】
（付記８．３）
付記８乃至８．２のいずれかに記載のソフトウェアロボット制御装置であって、
前記実行部は、動作するソフトウェアロボットに前記一定量の画面操作処理をまとめて実行させるキューを生成し、当該キューに基づいてソフトウェアロボットに操作画面に対する画面操作処理を実行させて、実行させた画面操作処理の内容を記憶する、
ソフトウェアロボット制御装置。
【００５８】
（付記８．４）
付記８乃至８．３のいずれかに記載のソフトウェアロボット制御装置であって、
動作するソフトウェアロボットに実行させる前記一定量の画面操作処理は、複数ステップの処理あるいは所定時間の処理である、
ソフトウェアロボット制御装置。
【００５９】
（付記８．５）
付記８乃至８．４のいずれかに記載のソフトウェアロボット制御装置であって、
前記復元部は、現在動作しているソフトウェアロボットと、これから動作するソフトウェアロボットと、が異なる場合に、現在の操作画面をクリアして、これから動作するソフトウェアロボットについて記憶している前回の画面操作処理の実行終了時における画面情報に基づいて操作画面を復元する、
ソフトウェアロボット制御装置。
【００６０】
（付記８．６）
付記８乃至８．５のいずれかに記載のソフトウェアロボット制御装置であって、
前記実行部は、ソフトウェアロボットの実行要求に対応するソフトウェアロボットの実行情報を識別する識別情報に、当該ソフトウェアロボットによる画面操作処理の実行終了時における画面情報を関連付けて記憶すると共に、動作しているソフトウェアロボットの前記識別情報を動作ロボット情報として記憶保持し、
前記復元部は、記憶保持している前記動作ロボット情報である前記識別情報と、新たに動作するソフトウェアロボットの前記識別情報と、が異なる場合に、当該新たに動作するソフトウェアロボットの前記識別情報に関連付けられている前記画面情報に基づいて操作画面を復元する、
ソフトウェアロボット制御装置。
【００６１】
（付記９）
情報処理装置に、
情報処理装置で動作可能な複数のソフトウェアロボットのうち、１つのソフトウェアロボットが動作するよう制御する制御部と、
動作するソフトウェアロボットに、一定量の画面操作処理をまとめて実行させて、実行させた画面操作処理の内容を記憶する実行部と、
後に同一のソフトウェアロボットが動作する前に、当該ソフトウェアロボットについて記憶している画面操作処理の内容に基づいて、当該ソフトウェアロボットによる操作画面を復元する復元部と、
を実現させるためのプログラム。
【００６２】
なお、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Read Only Memory）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ（Random Access Memory））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００６３】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００６４】
１  ロボット実行受付部
２  ロボット制御部
３  ロボット定義読込部
４  画面操作キュー処理部
５  ロボット処理依頼部
６  コマンド受付部
７  コマンド実行部
８  画面操作受付部
９  画面操作部
１０  画面記憶処理部
１１  画面復元部
２１  ロボット実行情報記憶部
２２  ロボット定義情報記憶部
２３  画面操作キュー記憶部
２４  画面情報記憶部
１００  ソフトウェアロボット制御装置
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  プログラム群
１０５  記憶装置
１０６  ドライブ装置
１０７  通信インタフェース
１０８  入出力インタフェース
１０９  バス
１１０  記憶媒体
１１１  通信ネットワーク
１２１  制御部
１２２  実行部
１２３  復元部
【図１】
2020155019.tif 000003
【図２】
2020155019.tif 000004
【図３】
2020155019.tif 000005
【図４】
2020155019.tif 000006
【図５】
2020155019.tif 000007
【図６】
2020155019.tif 000008
【図７】
2020155019.tif 000009
【図８】
2020155019.tif 000010
【図９】
2020155019.tif 000011