(57)【要約】【課題】日常的に行っているコンピュータ操作から自動化すべきものを検知し、自動化のためのソフトウェアロボット定義情報を自動生成する。【解決手段】ソフトウェアロボット定義情報生成システムは、１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部に操作履歴として記録する操作履歴検出記録部と、記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する操作元特定部と、人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較部と、繰り返し何度も類似操作を行っていた場合に、該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成部と、を備える。【選択図】図１
2019169044.tif 000002
【特許請求の範囲】
【請求項１】
１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部に操作履歴として記録する操作履歴検出記録部と、
記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する操作元特定部と、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較部と、
繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成部と
を備えることを特徴とするソフトウェアロボット定義情報生成システム。
【請求項２】
前記操作内容比較部は、ソフトウェアロボットが操作した操作であれば、該当箇所の操作履歴と、該当するソフトウェアロボット定義情報とを関連付けて記録する一方、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索し、且つ既に自動化している操作と似ている操作を行っていないかどうかを探索し、
前記ソフトウェアロボット定義情報生成部は、人間が行った操作が既に自動化している操作と似ている操作を行っていた場合に、該当のソフトウェアロボット定義情報を流用して新たなソフトウェアロボット定義情報を生成処理する
ことを特徴とする請求項１記載のソフトウェアロボット定義情報生成システム。
【請求項３】
前記操作元特定部は、記録した操作がソフトウェアロボットによる操作であるか人間による操作であるかを判別する際に、カーソルの移動軌跡の直線性に基づいて、弁別することを特徴とする請求項１又は２に記載のソフトウェアロボット定義情報生成システム。
【請求項４】
前記操作元特定部は、記録した操作がソフトウェアロボットによる操作であるか人間による操作であるかを判別する際に、キー入力の打鍵間隔の等間隔性に基づいて、弁別することを特徴とする請求項１から３の何れか一項に記載のソフトウェアロボット定義情報生成システム。
【請求項５】
前記ソフトウェアロボット定義情報生成部は、ソフトウェアロボット定義情報を生成した場合、作業者に対して自動化可能な操作であることを通知することを特徴とする請求項１から４の何れか一項に記載のソフトウェアロボット定義情報生成システム。
【請求項６】
操作履歴として記録する前記コンピュータの操作を、会社毎、部署毎、コンピュータ毎、ユーザアカウント毎、デスクトップ毎、アプリケーション毎の何れかの粒度で管理することを特徴とすることを特徴とする請求項１から５の何れか一項に記載のソフトウェアロボット定義情報生成システム。
【請求項７】
１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部に操作履歴として記録し、
記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別し、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索処理し、
繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理する
ことを特徴とする情報処理システムによるソフトウェアロボット定義情報生成方法。
【請求項８】
前記探索処理は、ソフトウェアロボットが操作した操作であれば、該当箇所の操作履歴と、該当するソフトウェアロボット定義情報とを関連付けて記録する一方、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索し、且つ既に自動化している操作と似ている操作を行っていないかどうかを探索し、
前記ソフトウェアロボット定義情報の生成処理は、人間が行った操作が既に自動化している操作と似ている操作を行っていた場合に、該当のソフトウェアロボット定義情報を流用して新たなソフトウェアロボット定義情報を生成処理する
ことを特徴とする請求項７記載のソフトウェアロボット定義情報生成方法。
【請求項９】
情報処理リソースを、
１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部に操作履歴として記録する操作履歴検出記録手段と、
記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する操作元特定手段と、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較手段と、
繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成手段、
として動作させることを特徴とするプログラム。
【請求項１０】
前記操作内容比較手段は、ソフトウェアロボットが操作した操作であれば、該当箇所の操作履歴と、該当するソフトウェアロボット定義情報とを関連付けて記録する一方、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索し、且つ既に自動化している操作と似ている操作を行っていないかどうかを探索し、
前記ソフトウェアロボット定義情報生成手段は、人間が行った操作が既に自動化している操作と似ている操作を行っていた場合に、該当のソフトウェアロボット定義情報を流用して新たなソフトウェアロボット定義情報を生成処理する
ことを特徴とする請求項９記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザに代わって自動操作を行う自動操作プログラムを使用するコンピュータシステムに関する。
【背景技術】
【０００２】
昨今、少子高齢化等の様々な要因から労働人口の減少が懸念されている。また、労働人口の減少等の問題を一因として、現時点でも長時間労働や人手不足といった社会問題が深刻化している。 
このような社会問題に対し、政府の旗振りの下、多くの企業で働き方改革への取り組みが推進されている。働き方改革の目的の一つとしてホワイトカラー業務の生産性向上が挙げられている。各企業においては、この働き方改革への対応が急務な状況となっている。
【０００３】
業務の生産性向上のために、ＲＰＡ（Robotic Process Automation）という認知技術を活用したコンピュータ業務の効率化を進める取り組みに注目が集まっている。ＲＰＡでは、人間がキーボードやマウスを用いて行う定型業務等をソフトウェアロボットに覚えさせ、人間の代わりにソフトウェアロボットがコンピュータ操作を実行することで業務の自動化を実現している。
【０００４】
例えば、特許文献１では一連の操作を定型処理（操作パターン）として抽出しておき、当該操作パターンをユーザが簡単に利用できるようにしたインタフェースを開示している。また、特許文献２では頻繁に行われている操作内容の情報を抽出しておき、抽出された操作を自動的に実行する自動スクリプトを生成するシステムを開示している。このシステムは、自動スクリプトを使用することでユーザが特に意識することなくコンピュータの自動操作を容易に行えることを特徴としている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００２−００７０２０号公報
【特許文献２】特開２０１３−０７３４２８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１及び２は操作パターン及び／又は自動スクリプトを用いてソフトウェアロボットを構築することについて何等開示していない。
【０００７】
実際に、ソフトウェアロボットを構築する場合、ソフトウェアロボットが実行する業務に対応したソフトウェアロボット定義情報（以下、定義情報と呼ぶこともある）を生成する必要がある。
【０００８】
ソフトウェアロボット定義情報を生成する方法としては、人間が行っている操作をステップ毎に一つずつ定義し、定義情報として記録することが考えられる。
【０００９】
このように、人間の操作をステップ毎に定義する方法は、ソフトウェアロボット構築者が自動化する操作の内容を全て正しく理解している必要や、ソフトウェアロボットを構築するためのツールの使い方を熟知している必要がある。そのため、ＲＰＡに精通していないユーザのみではソフトウェアロボットによる業務の自動化を進めることは難しいと予測される。このような場合、ＲＰＡのノウハウを持った専門家が、実際に業務を行っているユーザと密に連携した上でソフトウェアロボット定義情報を生成する必要が出てきてしまう。また、ＲＰＡに精通していないユーザのみでは、どのような業務がＲＰＡの対象となり、かつ、業務の自動化を進めることでどれほどの恩恵を受けられるかを把握すること自体も難しいことが推測される。
【００１０】
また、別のソフトウェアロボット定義情報を生成する方法としては、人間が行う一連の操作を記録する方法も考えられる。人間が行った一連の操作を記録する方法では、多くの場合、操作した全ての内容を記録し、記録した操作を再現させることで操作の自動化を実現している。このため、この方法は本来自動化対象ではない無駄な操作についてもソフトウェアロボット定義情報に含まれてしまう課題がある。
【００１１】
また、業務の自動化が促進されることによって、新たな課題も生まれている。ＲＰＡの促進により発生する課題の一つは、コンピュータに対して行われた操作を記録及び解析する際に、解析プログラムが、人間が行った操作であるのか、又はソフトウェアロボットが実行した自動操作であるのか、判別できないことである。
【００１２】
例えば、自動化された真に最適化されていないコンピュータ操作がソフトウェアロボットによって繰り返されることによって、真に最適化された操作がソフトウェアロボット定義として採用されないことがある。
【００１３】
本発明の目的は、上記問題の少なくとも一つを解決するソフトウェアロボット定義情報生成システム、ソフトウェアロボット定義情報生成方法、及びプログラムを提供することである。
【００１４】
本発明の他の目的は、ユーザのニーズに応じて柔軟にソフトウェアロボット定義情報を生成できるソフトウェアロボット定義情報生成システム、ソフトウェアロボット定義情報生成方法、及びプログラムを提供することである。
【課題を解決するための手段】
【００１５】
本発明のソフトウェアロボット定義情報では、操作内容、操作対象、付加情報の組み合わせを一操作単位として定義する。このソフトウェアロボット定義情報を採用すれば、複数の操作を時系列もしくはリレーションを伴った一連のフローとして定義することができる。この場合、ソフトウェアロボットはこのソフトウェアロボット定義情報を読み込むことで、定義された操作を定義されたフローに沿って実行することになる。
【００１６】
本発明の一実施形態に係るソフトウェアロボット定義情報生成システムは、１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を記憶部に操作履歴として記録する操作履歴検出記録部と、記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する操作元特定部と、人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較部と、繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成部と、を備えることを特徴とする。
【００１７】
本発明の一実施形態に係る情報処理システムによるソフトウェアロボット定義情報生成方法は、１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を記憶部に操作履歴として記録し、記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別し、人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索処理し、繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理することを特徴とする。
【００１８】
本発明の一実施形態に係るプログラムは、情報処理リソースを、１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を記憶部に操作履歴として記録する操作履歴検出記録手段と、記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する操作元特定手段と、人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較手段と、繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成手段、として動作させることを特徴とする。
【発明の効果】
【００１９】
本発明によれば、コンピュータに対して日常的に行っている操作の中から自動化すべきものを検知し、自動化を実現するために必要なソフトウェアロボット定義情報を自動生成するソフトウェアロボット定義情報生成システム、ソフトウェアロボット定義情報生成方法、及びプログラムを提供できる。
【図面の簡単な説明】
【００２０】
【図１】本発明に係る第１の実施形態のソフトウェアロボット定義情報生成システム１を示す構成図である。
【図２】本発明に係る第１の実施形態の説明に用いるソフトウェアロボット定義情報及び操作履歴（繰り返し実行される一連操作）を例示した説明図である。
【図３】本発明に係る第１の実施形態のソフトウェアロボット定義情報生成システム１の動作を示すフローチャートである。
【図４】本発明に係る第２の実施形態のソフトウェアロボット定義情報生成システム２を示す構成図である。
【図５】本発明に係る第２の実施形態のソフトウェアロボット定義情報生成システム２の動作例を示すフローチャートである。
【図６】本発明に係る第２の実施形態の説明で用いる操作履歴を可視化した説明図である。
【発明を実施するための形態】
【００２１】
本発明の実施形態を図面を参照しながら説明する。
【００２２】
［第１の実施形態］ 
図１は、第１の実施形態のソフトウェアロボット定義情報生成システム１を示す構成図である。図２は、ソフトウェアロボット定義情報（ａ）及び操作履歴（繰り返し実行される一連操作）（ｂ）を例示した説明図である。
【００２３】
図１に示されたソフトウェアロボット定義情報生成システム１は、コンピュータシステムであり、コンピュータ処理リソース１０と記憶部１５を内在する。尚、記憶部１５には、操作履歴を蓄積する操作履歴ＤＢと、ソフトウェアロボット定義情報を蓄積するソフトウェアロボット定義情報ＤＢが設けられている。
【００２４】
ソフトウェアロボット定義情報はソフトウェアロボットに行わせる操作内容、操作対象、及び付加情報等を含んでいる。ここで、操作内容はクリック、入力等の操作を行うためのコマンドであり、操作対象は操作ウィンドウ、操作オブジェクト、画像等を含んでいる。また、付加情報は作業内容によって適宜付加される値や文字列等の情報である。
【００２５】
図２（ａ）はソフトウェアロボット定義情報の例を示している。ここでは、２つの操作の定義情報が例示されている。１行目の定義情報は操作内容として“マウスによる左クリック”、操作対象として“デスクトップのアイコンを示す画像”を含み、付加情報は登録されていない。
【００２６】
また、２行目の定義情報は、操作内容として“キーボードによる入力”、操作対象として“検索ボックスを示す画像”、及び付加情報として“入力させる文字列”を含んでいる。
【００２７】
ソフトウェアロボットは、まず１行目の定義情報を読み込み、操作対象である“デスクトップのアイコンを示す画像”を画面上から画像認識により検索した上で、その操作対象に対して“マウスによる左クリック”を行う。次に２行目の定義情報を読み込み、操作対象である“検索ボックスを示す画像”を画面上から画像認識により検索した上で、その操作対象に対して“ＡＳＤｃｘｚ１２３”を“キー入力”する。
【００２８】
ソフトウェアロボット定義情報生成システム１は、ソフトウェアロボットを導入済みのコンピュータに対する操作を、操作履歴として記録し、ソフトウェアロボット定義情報を自動生成する。この操作には、当該コンピュータに直接接続された入力インタフェースへの操作や、通信インタフェースを介して行われた操作が含まれる。尚、ソフトウェアロボットは必ずしもソフトウェアロボット定義情報生成システム１の処理リソースを動作主体とする必要は無く、適宜コンピュータリソースを用いて動作すれば良い。
【００２９】
ソフトウェアロボット定義情報生成システム１の各部は、コンピュータシステムのハードウェアとソフトウェアの組み合わせを用いて実現すれば良い。このコンピュータシステムは、所望形態に合わせた、処理リソースとなる１ないし複数のプロセッサとメモリを含む。また、この形態では、各部は、上記メモリに本発明に係るソフトウェアロボット定義情報を生成するプログラムが展開され、このプログラムに基づいてプロセッサ等のハードウェアを実行命令群やコード群で動作させることによって、実現すれば良い。この際、必要に応じて、このプログラムは、オペレーティングシステムや、マイクロプログラム、ドライバ等のソフトウェアが提供する機能と協働して、各部を実現することとしても良い。
【００３０】
メモリに展開されるプログラムデータは、プロセッサを１ないし複数の後述する各部として動作させる実行命令群やコード群、テーブルファイル、コンテンツデータ等を適宜含む。
【００３１】
また、このコンピュータシステムは、必ずしも一つの装置として構築される必要はなく、複数のサーバ／コンピュータ／仮想マシン等が組み合わさって、所謂、シンクライアントや、分散コンピューティング、クラウドコンピューティングで構築されても良い。また、コンピュータシステムの一部／全ての各部をハードウェアやファームウェア（例えば、一ないし複数のＬＳＩ：Large-Scale Integration、ＦＰＧＡ：Field Programmable Gate Array、電子素子の組み合わせ）で置換することとしても良い。同様に、各部の一部のみをハードウェアやファームウェアで置換することとしても良い。
【００３２】
コンピュータ処理リソース１０は、操作履歴検出記録部１１、操作元特定部１２、操作内容比較部１３、及びソフトウェアロボット定義情報生成部１４として動作する。
【００３３】
操作履歴検出記録部１１は、１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部１５に操作履歴として記録するように構成されている。 
操作履歴として収集する操作内容は、コンピュータに入力されたマウス操作やキー入力等、逐一全て記録しても良いし、特定時間のみや、特定アプリの動作時のみ、のように自動化範囲を一部限定された操作を全て記録するようにしても良い。 
操作履歴は、記録したコンピュータへの操作を後に再現するために必要な全ての情報を対象とする。記録する内容としては、時刻、操作対象、操作内容、関連するパラメータ（例えば、キー入力の場合は入力されたキー情報や、マウス操作の場合は操作内容や操作位置の座標等）、その時点での画面キャプチャ等である。 
記録した操作履歴は、記憶部１５に設けられた操作履歴ＤＢに、所定単位でのレコード（例えば、時刻で区切っても良いし、操作内容（マウスで左クリックした、等）で区切っても良い）として逐次記録する。この記録した操作履歴は、操作自動化の可否判断を行う際や、該当操作のソフトウェアロボット定義情報を生成する際に使用する。 
尚、操作履歴を記録する記憶部１５（操作履歴ＤＢ）は、ネットワークを介して接続されたストレージやクラウド上に設けられても良く、会社や、部署、コンピュータ、ユーザアカウント、デスクトップ、アプリケーション等の単位で共有されても良い。
【００３４】
操作元特定部１２は、操作履歴ＤＢに記録された操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別するように構成されている。操作元特定部１２は、判別した操作について、人間かソフトウェアロボットによる操作であるかを、例えばフラグとして操作履歴ＤＢに該当一連操作と関連付けて記録すれば良い。
【００３５】
人間による操作であることを特定する仕組みは、例えば、マウス操作の場合、カーソルの軌跡の直線性に着目すれば良い。具体的一例では、操作元特定部１２は、マウスによる操作が実行された各々の時点の画面上の座標を直線で結び、カーソルの軌跡（座標点）がその直線上にどれだけ一致（存在）するかで判断すれば良い。より具体的には、例えば、ある箇所を左クリックした（一つ目のアクションを実施した）際の座標を始点、次に別の箇所を左クリックした（二つ目のアクションを実施した）際の座標を終点として、始点と終点とで成す直線上をカーソルがズレなく移動するか判別すれば良い。また、操作元特定部１２は、キー入力の場合、キーの打鍵間隔の等間隔性に着目し、打鍵間隔のばらつき（各キーが打鍵された時刻の差分の標準偏差）を確認したり、打鍵の速度を確認したりすることで判断すれば良い。 
尚、記録した操作履歴がソフトウェアロボットによる操作だった場合、操作元特定部１２は、その特定した操作履歴と、該当のソフトウェアロボット定義情報を関連付けて記憶部１５に記録する。該当するソフトウェアロボットを特定することは、該当操作が行われた時刻に動作していたソフトウェアロボットを、ソフトウェアロボットを実行するためのツールの実行履歴等と突き合わせることで検出すれば良い。
【００３６】
操作内容比較部１３は、人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、過去に繰り返されている類似操作を探索するように構成されている。 
過去に繰り返されている類似操作を探索する仕組みとしては、操作対象や操作内容、パラメータ等をそれぞれ比較し、一致率の値で判定することができる。例えば、操作内容比較部１３は、図２（ｂ）に例示するような操作履歴が繰り返し実行されている場合、当該ダウンロードに関する一連操作を自動化の対象としてフラグを立てるように動作すれば良い。尚、図２（ｂ）はＷｅｂブラウザを用いてＷｅｂシステムから「出荷実績情報」をダウンロードする一連の操作を実施した場合を示している。図２（ｂ）の右側には、当該一連の操作（１）、（２）、（３）に伴う画面が示されており、図２（ｂ）の左側には具体的な各操作（１）、（２）、（３）の内容が示されている。尚、図２（ｂ）の左側に示された一連の操作は操作履歴として記録されており、ここでは、操作履歴がタイムスタンプと共に記録されている。
【００３７】
図２（ｂ）をより具体的に説明する。  
（１）操作として以下の３つの事柄が行われる。 
１：Ｗｅｂブラウザに表示された操作対象ウィンドウ「出荷実績ダウンロード」の操作対象オブジェクト「ＩＤフィールド」にパラメータ「１２３４５６７」を入力（操作内容）
２：同操作対象ウィンドウ「出荷実績ダウンロード」の操作対象オブジェクト「ＰＡＳＳフィールド」にパラメータ「ＰＡＳＳＷＯＲＤ」を入力（操作内容）
３：同操作対象ウィンドウ「出荷実績ダウンロード」の操作対象オブジェクト「認証ボタン」を左クリック（操作内容）
このように、３つの操作から成る一連の操作をユーザの操作として記録した場合、図２（ｂ）の左側に示している操作履歴のように、“11:10:12”から“11:10:18”にかけてマウス操作（カーソル操作）とキー操作で６操作行われている。この記録した一連の操作について、操作内容比較部１３は、ソフトウェアロボットによる操作であるか、人間による操作であるかを判別する。（２）操作、（３）操作も同様である。
【００３８】
尚、ソフトウェアロボットが操作した操作であれば、操作内容比較部１３は、該当箇所の操作履歴と、該当するソフトウェアロボット定義情報とを関連付けて記録し、該当箇所の操作履歴の自動化を行わないように動作させても良い。
【００３９】
また、操作内容比較部１３は、人間が行った操作であれば、繰り返されている類似操作を探索し、且つ既にソフトウェアロボット定義情報を生成している操作と似ている操作を行っていないかどうかを探索するように動作させても良い。
【００４０】
ソフトウェアロボット定義情報生成部１４は、繰り返し何度も類似操作が行われていた場合に、該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するように構成されている。例えば、図２（ｂ）の左側に示した一番上の一連の操作（１）についてソフトウェアロボット定義情報を生成する場合、操作履歴から自動化対象の操作内容群（範囲）を区切り、ソフトウェアロボット定義情報に書き加える情報を１行毎に抽出する操作を繰り返して、ソフトウェアロボット定義情報を生成する。自動化対象の操作内容群（範囲）を区切る手法は、限定しないものの、例えば操作対象のオブジェクトが切り替わった時点で区切ったり（例えば、操作１から操作２に切り替わった時点で区切ったり）、記録済みの操作履歴を参照して同様の一連の操作内容に揃えて区切ったりすれば良い。
【００４１】
尚、ソフトウェアロボット定義情報生成部１４は、人間が行った操作が既に自動化している操作と似ている操作を行っていた場合に、該当のソフトウェアロボット定義情報を流用して新たな定義情報を生成処理するように動作させても良い。例えば、過去に似ている操作を実行していないかどうか確認した結果、一致率の高い操作履歴が見付かり、且つその操作履歴がソフトウェアロボットによるものだった場合、次のようにソフトウェアロボット定義情報の骨格を流用しても良い。  
１：まず始めにマウス操作で左クリックし、その後、キー入力する、といった各ステップの情報である、ソフトウェアロボット定義の骨格（特徴）を識別
２：操作対象（例えば、画像で指定する場合はその画像）の情報、パラメータ（例えば、入力した値）だけを更新
次に、ソフトウェアロボット定義情報生成方法について説明する。
【００４２】
図３は、第１の実施形態のソフトウェアロボット定義情報生成システム１の動作を示すフローチャートである。
【００４３】
ソフトウェアロボット定義情報生成システム１として動作するコンピュータ処理リソース１０は、次のように動作する。
【００４４】
まず、コンピュータ処理リソース１０は、ソフトウェアロボットを導入済みのコンピュータに対する操作を検出して、記憶部１５に操作履歴として常時的に適宜記録する（Ｓ１０１）。ソフトウェアロボット定義情報生成システム１は、この操作履歴として記録するコンピュータの操作について、会社毎、部署毎、コンピュータ毎、ユーザアカウント毎、デスクトップ毎、アプリケーション毎の何れかの粒度で適宜管理すれば良い。
【００４５】
次に、コンピュータ処理リソース１０は、記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する（Ｓ１０２）。
【００４６】
次に、コンピュータ処理リソース１０は、人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索処理する（Ｓ１０３）。
【００４７】
次に、コンピュータ処理リソース１０は、繰り返し何度も類似操作を行っていた場合に、該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理する（Ｓ１０４）。ソフトウェアロボット定義情報を生成した場合、コンピュータ処理リソース１０は、ユーザに対して先ほど実行した操作が自動化可能な操作であることを推奨したり、次回に自動化済みの操作があることを推奨したりすれば良い。また、他のユーザが同様な操作を実行した際に、自動化済みの操作であることを推奨するようにソフトウェアロボット定義情報生成システム１を動作させても良い。
【００４８】
このようにソフトウェアロボット定義情報生成システム１を動作させることで、自動化された操作と、人間が行った操作との違いを用いて、ソフトウェアロボットによって自動化されたコンピュータを人間が望むより精度の高い自動化を実現可能にできる。
【００４９】
次に、第２の実施形態を示して本発明を説明する。
【００５０】
［第２の実施形態］ 
図４は、第２の実施形態のソフトウェアロボット定義情報生成システム２を示す構成図である。図示されたソフトウェアロボット定義情報生成システム２は、パーソナルコンピュータ内に構築される。
【００５１】
ソフトウェアロボット定義情報生成システム２は、制御部２１を第１の実施形態の操作履歴検出記録部１１、操作元特定部１２、操作内容比較部１３、ソフトウェアロボット定義情報生成部１４と同様に動作する各種手段として動作させて機能する。
【００５２】
また、このソフトウェアロボット定義情報生成システム２には、パーソナルコンピュータの出力部であるディスプレイと、マウスやキーボード等の入力部とがアクセス可能に接続されている。また、制御部２１は、コンピュータ処理リソースを提供し、補助記憶装置２２は各種データベースを記録する記憶部として動作する。
【００５３】
次に、コンピュータの動作説明として、処理フロー例と共に操作履歴例を示して説明する。
【００５４】
図５は、第２の実施形態のソフトウェアロボット定義情報生成システム２の動作例を示すフローチャートである。
【００５５】
図６は、第２の実施形態の説明で用いる操作履歴を可視化した説明図である。尚、図中のロボットのマークは、ソフトウェアロボットプログラム（受注アプリ入力ロボ０１）がソフトウェアロボット定義情報に基づいてコンピュータを操作した操作履歴を表し、人間のマークは、作業者が入力部を介してコンピュータを操作した操作履歴を表している。また、図中の説明は後述する図５のフローチャートのＳ２０７−Ｓ２０８を通過するフローを示している。
【００５６】
図５に示したフローチャートは、検出した操作のある単位（時刻範囲や一連の操作内容）である操作履歴αについて、自動化の対象となり得るかどうかを確認する際のフローチャートである。
【００５７】
まず、制御部２１は、検出した操作を操作履歴として識別し、ある単位である操作履歴αを生成する（Ｓ２０１）。ある単位で区切る手法は、例えば操作対象のオブジェクトが切り替わった時点で区切ったり、記録済みの操作履歴を参照して同様の一連の操作内容に揃えて区切ったりすれば良い。
【００５８】
次に、制御部２１は、操作履歴αがソフトウェアロボットによる操作なのか、人間による操作なのかを特定する（Ｓ２０２）。
【００５９】
制御部２１は、ソフトウェアロボットによる操作であると判断した場合、操作履歴αと、該当のソフトウェアロボット定義情報を関連付け、操作履歴ＤＢ及びソフトウェアロボット定義情報ＤＢに記録する（Ｓ２０３）。この処理によって、図６の上部の操作履歴がソフトウェアロボットによる操作であることが識別可能になる。
【００６０】
一方、制御部２１は、人間による操作であると判断した場合は、操作履歴αを、過去蓄積された全ての操作履歴の先頭から順次比較して行く（Ｓ２０４のループ）。
【００６１】
制御部２１は、一致率の高い操作履歴を探索し（Ｓ２０５）、一致率の高い操作履歴が見付かった場合、操作履歴αを自動化の対象になり得る操作としてフラグを付け、その時点での一致率とともに保持する（Ｓ２０６）。
【００６２】
全ての操作履歴との比較後、制御部２１は、一番一致率が高かった操作履歴を操作履歴βとし、その操作履歴βはソフトウェアロボットによる操作なのかどうかを、操作履歴ＤＢ及びソフトウェアロボット定義情報ＤＢから確認する（Ｓ２０７）。
【００６３】
次に、制御部２１は、操作履歴βがソフトウェアロボットによる操作であった場合、操作履歴βに関連付けられているソフトウェアロボット定義情報を元に、操作履歴αのソフトウェアロボット定義情報を自動生成する（Ｓ２０８）。
【００６４】
他方、制御部２１は、操作履歴βがソフトウェアロボットによる操作ではなかった場合、人間による似た操作が複数回実行されている（操作履歴αと操作履歴β）と識別し、該当の操作履歴の情報を元にソフトウェアロボット定義情報を自動生成する（Ｓ２０９）。
【００６５】
この時、過去に何回以上同じような操作が実行されたかどうかを閾値として設定しておき、その閾値を超えた場合にソフトウェアロボット定義情報を生成するようなロジックを組み込んでも良い。
【００６６】
また、ソフトウェアロボット定義情報を生成した際、その対象となった操作にどの程度の操作時間が掛かっていたのかを操作履歴ＤＢから取得し、推奨として作業者に提示しても良い。このことで、当該操作をソフトウェアロボットにより自動化した際の効果を作業者が認知でき、必要に応じて自動化を採用する。
【００６７】
［使用態様］
ここで、本発明に係るプログラムを導入したコンピュータでの使用態様例を説明する。
【００６８】
まず、ユーザは、コンピュータ上で、ソフトウェアロボットを実行するためのツールを起動した状態で、様々な作業を開始する。また、ユーザは、１つもしくは複数のソフトウェアロボットによる自動操作を適宜使用しつつ様々な操作を続ける。この作業に伴って行われた自動操作と手動操作は、操作履歴として逐次記憶部に記録される。
【００６９】
この際、操作履歴の記録と同時に、バックグラウンドでソフトウェアロボットを実行するためのツールは、記録した操作がソフトウェアロボットによる操作なのか、人間が行った操作なのかを特定する。そして、ソフトウェアロボットが操作したものだった場合、該当箇所の操作履歴と、該当するソフトウェアロボット定義情報を関連付けて記録する。加えて、人間が行った操作だった場合、該当箇所の操作履歴と、過去に記録した全ての操作履歴とを比較し、似ている操作を何度も繰り返して行っているかどうかや、既に自動化している操作と似ている操作を行っていないかどうかを検出する。繰り返し何度も同じ操作を行っている場合は、該当箇所の操作履歴から、ソフトウェアロボット定義情報を自動で生成し、ユーザに対して自動化すべき操作であることを推奨する。
【００７０】
尚、既に自動化している操作と似ている操作を行っている場合は、該当のソフトウェアロボット定義情報を流用して新たなソフトウェアロボット定義情報を自動で生成し、ユーザに対して自動化すべき操作であることを通知する。
【００７１】
このように、「ユーザが似ている操作を何度も実行していないか」と共に、「既に自動化している操作と似た操作を実行していないか」を検知し、自動化すべき操作の特定を行い、ソフトウェアロボット定義情報の自動生成をバックグラウンドで実施する。その後、通知を受けたユーザが、自動化を選択した場合、次回の作業時に作成済みのソフトウェアロボット定義情報を用いることができるように有効化する。
【００７２】
以上説明したように、ソフトウェアロボット定義情報生成システムはパーソナルコンピュータやサーバ等に実施された操作履歴を記録しておき、自動化された操作と、人間が行った操作との違いを用いて、ソフトウェアロボットによる業務の自動化を進める。
【００７３】
このことで、ＲＰＡのノウハウや知識を持たないユーザに対して、普段、自身が行っている業務の中から自動化でき得る作業を通知し、かつ、自動化を実施することでどの程度の恩恵を得られるかを把握させることが可能である。ユーザは、通知された内容によって、例えばどの程度の作業時間を短縮できるかを把握し、業務を自動化するか判断可能になる。
【００７４】
また、ソフトウェアロボット定義情報を、作業者に意識させることなく自動で生成することで、本発明はソフトウェアロボット定義情報を構築する手間を軽減させることも可能となる。
【００７５】
すなわち、本発明によれば、コンピュータに対して日常的に行っている操作の中から自動化すべきものを検知し、自動化を実現するために必要なソフトウェアロボット定義情報を自動生成するソフトウェアロボット定義情報生成システム、ソフトウェアロボット定義情報生成方法、及びプログラムが得られる。
【００７６】
また、ソフトウェアロボット定義情報生成システム用のプログラムは、記録媒体に記録されて頒布されても良い。当該記録媒体に記録されたプログラムは、有線、無線、又は記録媒体そのものを介してメモリに読込まれ、プロセッサ等を動作させる。
【００７７】
尚、本明細書では、記録媒体には、類似するタームの記憶媒体やメモリ装置、ストレージ装置等も含むこととする。この記録媒体を例示すれば、オプティカルディスクや磁気ディスク、半導体メモリ装置、ハードディスク装置、テープメディア等が挙げられる。また、記録媒体は、不揮発性であることが望ましい。また、記録媒体は、揮発性モジュール（例えばＲＡＭ：Random Access Memory）と不揮発性モジュール（例えばＲＯＭ：Read Only Memory）の組み合わせを用いることとしても良い。
【００７８】
上記形態を別の表現で説明すれば、情報処理リソースを、メモリに展開されたソフトウェアロボット定義情報生成プログラムに基づき、操作履歴検出記録手段、操作元特定手段、操作内容比較手段、ソフトウェアロボット定義情報生成手段として動作させることで、その結果、ソフトウェアロボット定義情報生成システムを実現できる。
【００７９】
同様に、上記形態を更に別の表現で説明すれば、記録媒体は、メモリに展開されて情報処理リソースで動作するソフトウェアロボット定義情報生成プログラムを含み、情報処理リソースに操作履歴検出記録工程、操作元特定工程、操作内容比較工程、ソフトウェアロボット定義情報生成工程を適時実行させることで、ソフトウェアロボット定義情報生成システムを構築できる。
【００８０】
尚、実施形態を例示して本発明を説明した。しかし、本発明の具体的な構成は前述の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の変更があってもこの発明に含まれる。例えば、上述した実施形態のブロック構成の分離併合、手順の入れ替え等の変更は本発明の趣旨及び説明される機能を満たせば自由であり、上記説明が本発明を限定するものではない。
【００８１】
また、上記の実施形態の一部又は全部は、以下のようにも記載され得る。尚、以下の付記は本発明をなんら限定するものではない。
【００８２】
［付記１］
１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部に操作履歴として記録する操作履歴検出記録部と、
記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する操作元特定部と、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較部と、
繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成部と
を備えることを特徴とするソフトウェアロボット定義情報生成システム。
【００８３】
［付記２］
前記操作内容比較部は、ソフトウェアロボットが操作した操作であれば、該当箇所の操作履歴と、該当するソフトウェアロボット定義情報とを関連付けて記録する一方、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索し、且つ既に自動化している操作と似ている操作を行っていないかどうかを探索し、
前記ソフトウェアロボット定義情報生成部は、人間が行った操作が既に自動化している操作と似ている操作を行っていた場合に、該当のソフトウェアロボット定義情報を流用して新たなソフトウェアロボット定義情報を生成処理する
ことを特徴とする付記１記載のソフトウェアロボット定義情報生成システム。
【００８４】
［付記３］
前記操作元特定部は、記録した操作がソフトウェアロボットによる操作であるか人間による操作であるかを判別する際に、カーソルの移動軌跡の直線性に基づいて、弁別することを特徴とする付記１又は２に記載のソフトウェアロボット定義情報生成システム。
【００８５】
［付記４］
前記操作元特定部は、記録した操作がソフトウェアロボットによる操作であるか人間による操作であるかを判別する際に、キー入力の打鍵間隔の等間隔性に基づいて、弁別することを特徴とする付記１から３の何れか一項に記載のソフトウェアロボット定義情報生成システム。
【００８６】
［付記５］
前記ソフトウェアロボット定義情報生成部は、ソフトウェアロボット定義情報を生成した場合、人間に対して自動化可能な操作であることを通知することを特徴とする付記１から４の何れか一項に記載のソフトウェアロボット定義情報生成システム。
【００８７】
［付記６］
操作履歴として記録する前記コンピュータの操作を、会社毎、部署毎、コンピュータ毎、ユーザアカウント毎、デスクトップ毎、アプリケーション毎の何れかの粒度で管理することを特徴とすることを特徴とする付記１から５の何れか一項に記載のソフトウェアロボット定義情報生成システム。
【００８８】
［付記７］
１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部に操作履歴として記録し、
記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを、判別し、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索処理し、
繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理する
ことを特徴とする情報処理システムによるソフトウェアロボット定義情報生成方法。
【００８９】
［付記８］
前記探索処理は、ソフトウェアロボットが操作した操作であれば、該当箇所の操作履歴と、該当するソフトウェアロボット定義情報とを関連付けて記録する一方、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索し、且つ既に自動化している操作と似ている操作を行っていないかどうかを探索し、
前記ソフトウェアロボット定義情報の生成処理は、人間が行った操作が既に自動化している操作と似ている操作を行っていた場合に、該当のソフトウェアロボット定義情報を流用して新たなソフトウェアロボット定義情報を生成処理する
ことを特徴とする付記７記載のソフトウェアロボット定義情報生成方法。
【００９０】
［付記９］
情報処理リソースを、
１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部に操作履歴として記録する操作履歴検出記録手段と、
記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する操作元特定手段と、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較手段と、
繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成手段、
として動作させることを特徴とするプログラム。
【００９１】
［付記１０］
前記操作内容比較手段は、ソフトウェアロボットが操作した操作であれば、該当箇所の操作履歴と、該当するソフトウェアロボット定義情報とを関連付けて記録する一方、
人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索し、且つ既に自動化している操作と似ている操作を行っていないかどうかを探索し、
前記ソフトウェアロボット定義情報生成手段は、人間が行った操作が既に自動化している操作と似ている操作を行っていた場合に、該当のソフトウェアロボット定義情報を流用して新たなソフトウェアロボット定義情報を生成処理する
ことを特徴とする付記９記載のプログラム。
【００９２】
［付記１１］
１ないし複数のソフトウェアロボットを導入済みのコンピュータに対する操作を、記憶部に操作履歴として記録する操作履歴検出記録部と、記録した操作がソフトウェアロボットによる操作であるか、人間による操作であるかを判別する操作元特定部と、人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、繰り返されている類似操作を探索する操作内容比較部と、繰り返し何度も類似操作を行っていた場合に、前記該当箇所の操作履歴に基づいて、ソフトウェアロボット定義情報を生成処理するソフトウェアロボット定義情報生成部を備え、前記ソフトウェアロボット定義情報は、操作内容、操作対象、及び付加情報を一単位として含んでいることを特徴とするソフトウェアロボット定義情報生成システム。
【００９３】
［付記１２］
前記ソフトウェアロボット定義情報は前記操作内容として“キー入力”及び前記操作対象として“検索ボックス画像”、及び前記付加情報として“検索数値列”を含んでいることを特徴とする付記１１記載のソフトウェアロボット定義情報生成システム。
【００９４】
［付記１３］
前記操作内容比較部は人間が行った操作であれば、該当箇所の操作履歴と、過去に記録した操作履歴とを比較することによって、何度も類似操作を繰り返し行っていたことが判定すると、前記ソフトウェアロボット定義情報生成部は前記該当箇所の操作履歴に基づいて、前記ソフトウェアロボット定義情報を通知することを特徴とする付記１１又は１２記載のソフトウェアロボット定義情報生成システム。
【符号の説明】
【００９５】
１、２  ソフトウェアロボット定義情報生成システム
１０  コンピュータ処理リソース
１１  操作履歴検出記録部
１２  操作元特定部
１３  操作内容比較部
１４  ソフトウェアロボット定義情報生成部
１５  記憶部
２１  制御部
２２  補助記憶装置
【図１】
2019169044.tif 000003
【図２】
2019169044.tif 000004
【図３】
2019169044.tif 000005
【図４】
2019169044.tif 000006
【図５】
2019169044.tif 000007
【図６】
2019169044.tif 000008