(57)【要約】【課題】シナリオデータの改ざん等の有無を検出し、改ざん等されたシナリオデータの実行を防止することが可能な情報処理装置、表示制御方法及びプログラムを提供する。【解決手段】情報処理装置１は、シナリオデータ１１４が記憶される記憶部１１０と、記憶部１１０から取得した所定のシナリオデータ１１４のハッシュ値を算出し、算出したハッシュ値をシナリオデータ１１４に紐付けしてエクスポート用シナリオファイル４１を生成するエクスポート部１０５と、ハッシュ値が紐付けされたインポート用シナリオファイル４２を取り込んで、そのハッシュ値を再計算し、再計算されたハッシュ値及び紐付けされたハッシュ値を比較し、２つのハッシュ値が一致したとき、シナリオファイル４２のシナリオデータ１１４を記憶部１１０に格納するインポート部１０６と、を備える。【選択図】図１
2020102699.tif 000002
【特許請求の範囲】
【請求項１】
ロボット動作の具体的実行内容であるコマンド及び前記コマンドの組を、実行順に配列したシナリオデータに従って、前記コマンドを実行する情報処理装置であって、
前記シナリオデータが記憶される記憶部と、
前記記憶部から所定の前記シナリオデータを取得し、所定のハッシュ関数に従って前記シナリオデータのハッシュ値を算出し、算出した前記ハッシュ値を前記シナリオデータに紐付けしてエクスポート用シナリオファイルを生成するエクスポート部と、
前記ハッシュ値が紐付けされたインポート用シナリオファイルを取り込み、前記インポート用シナリオファイルの前記ハッシュ値を再計算し、再計算された前記ハッシュ値及び紐付けされた前記ハッシュ値を比較するインポート部と、を備え、
前記インポート部は、２つの前記ハッシュ値が一致すると判定したときは、前記インポート用シナリオファイルに含まれる前記シナリオデータを、前記記憶部に格納することを特徴とする情報処理装置。
【請求項２】
前記エクスポート部は、所定の暗号アルゴリズムに従って、所定の共通鍵を用いて前記エクスポート用シナリオファイルを暗号化するように構成され、前記インポート部は、所定の暗号アルゴリズムに従って、前記共通鍵を用いて前記インポート用シナリオファイルを復号するように構成されていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記エクスポート部は、前記エクスポート用シナリオファイルを外部記憶装置に出力し、前記インポート部は、前記外部記憶装置に格納された前記インポート用シナリオファイルを取り込むように構成されたことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記ロボット動作及び前記コマンドの入力をそれぞれ受け入れるコマンド入力部と、
前記コマンド入力部により入力が受け入れられた前記ロボット動作及び前記コマンドの組を、前記情報処理装置の実行順に配列した前記シナリオデータを作成するシナリオ作成部と、
前記ロボット動作の一覧を表示装置に表示させる表示制御部と、
前記シナリオデータに基づいて、実行順に配列された前記コマンドを前記情報処理装置において実行させるシナリオ実行部と、を有することを特徴とする請求項１〜３のいずれか一項に記載の情報処理装置。
【請求項５】
ロボット動作の具体的実行内容であるコマンド及び前記コマンドの組を、実行順に配列したシナリオデータに従って、前記コマンドを実行する情報処理装置の制御方法であって、
前記シナリオデータを記憶部に記憶する記憶工程と、
前記記憶部から所定の前記シナリオデータを取得し、所定のハッシュ関数に従って前記シナリオデータのハッシュ値を算出し、算出した前記ハッシュ値を前記シナリオデータに紐付けしてエクスポート用シナリオファイルを生成するエクスポート工程と、
前記ハッシュ値が紐付けされたインポート用シナリオファイルを取り込み、前記インポート用シナリオファイルの前記ハッシュ値を再計算し、再計算された前記ハッシュ値及び紐付けされた前記ハッシュ値を比較するインポート工程と、を有し、
前記インポート工程は、２つの前記ハッシュ値が一致すると判定したときは、前記インポート用シナリオファイルに含まれる前記シナリオデータを、前記記憶部に格納することを特徴とする情報処理装置の制御方法。
【請求項６】
コンピュータにより実行されるプログラムであって、
このプログラムは、前記コンピュータにより実行されると、このコンピュータを、
ロボット動作の具体的実行内容であるコマンド及び前記コマンドの組を、実行順に配列したシナリオデータを記憶する記憶部と、
前記記憶部から所定の前記シナリオデータを取得し、所定のハッシュ関数に従って前記シナリオデータのハッシュ値を算出し、算出した前記ハッシュ値を前記シナリオデータに紐付けしてエクスポート用シナリオファイルを生成するエクスポート部と、
前記ハッシュ値が紐付けされたインポート用シナリオファイルを取り込み、前記インポート用シナリオファイルの前記ハッシュ値を再計算し、再計算された前記ハッシュ値及び紐付けされた前記ハッシュ値を比較し、２つの前記ハッシュ値が一致すると判定したときは、前記インポート用シナリオファイルに含まれる前記シナリオデータを、前記記憶部に記憶するインポート部として機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、いわゆるＲＰＡ（Robotic Process Automation）を実行する情報処理装置、制御方法及びプログラムに関するものである。
【背景技術】
【０００２】
ＲＰＡソフトウエアと呼ばれる、コンピュータ等の情報処理装置が実行可能なコマンドを定められた実行順に従って情報処理装置に実行させるソフトウエアは既知である（例えば非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】“RPAソリューション Windows操作ロボット「WinActor」｜ＮＴＴデータ”，［online］，［平成30年10月10日検索］，インターネット＜URL：http://www.nttdata.com/jp/ja/lineup/winactor/index.html＞
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このようなＲＰＡソフトウエアにおいても、コマンドを実行順に配列したシナリオデータを記録媒体等に書き出し（エクスポート）、この記録媒体等からシナリオデータを他の情報処理装置に取り込んで（インポート）実行させる機能搭載の要望がある。しかしながら、エクスポートからインポートまでの間、記録媒体等に書込まれたシナリオデータがＲＰＡソフトウエアや開発者の管理下から離れるため、シナリオデータの不測の改ざんや、意に反した書き換え等のリスクに曝される。
【０００５】
そこで、本発明は、シナリオデータの改ざん等の有無を検出し、改ざん等されたシナリオデータの実行を防止することが可能な情報処理装置、表示制御方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００６】
前記目的を達成するために、本発明の情報処理装置は、ロボット動作の具体的実行内容であるコマンド及び前記コマンドの組を、実行順に配列したシナリオデータに従って、前記コマンドを実行する情報処理装置であって、前記シナリオデータが記憶される記憶部と、前記記憶部から所定の前記シナリオデータを取得し、所定のハッシュ関数に従って前記シナリオデータのハッシュ値を算出し、算出した前記ハッシュ値を前記シナリオデータに紐付けしてエクスポート用シナリオファイルを生成するエクスポート部と、前記ハッシュ値が紐付けされたインポート用シナリオファイルを取り込み、前記インポート用シナリオファイルの前記ハッシュ値を再計算し、再計算された前記ハッシュ値及び紐付けされた前記ハッシュ値を比較するインポート部と、を備え、前記インポート部は、２つの前記ハッシュ値が一致すると判定したときは、前記インポート用シナリオファイルに含まれる前記シナリオデータを、前記記憶部に格納することを特徴とする。
【発明の効果】
【０００７】
このように構成された本発明の情報処理装置では、シナリオデータのエクスポートの際には、エクスポート部が、シナリオデータのハッシュ値をシナリオデータに紐付けしてエクスポート用シナリオファイルを生成する。シナリオデータのインポートの際には、インポート部が、再計算したインポート用シナリオファイルのハッシュ値と、紐付けされたハッシュ値とを比較し、一致する場合のみシナリオデータを記憶部に格納する。
【０００８】
このようにすることで、シナリオデータの改ざん等の有無を検出し、改ざん等されたシナリオデータの実行を防止することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態である情報処理装置の概略構成を示す機能ブロック図である。
【図２】実施の形態である情報処理装置のシナリオデータの内容を示す図である。
【図３】実施の形態である情報処理装置のロボット動作一覧データの内容を示す図である。
【図４】実施の形態である情報処理装置の動作の一例を説明するためのフローチャートである。
【図５】実施の形態である情報処理装置により表示される操作画面の一例を示す図である。
【図６】実施の形態である情報処理装置により表示される操作画面の他の例を示す図である。
【図７】実施の形態である情報処理装置により表示される操作画面のまた他の例を示す図である。
【図８】実施の形態である情報処理装置により表示される操作画面のまた他の例を示す図である。
【図９】実施の形態である情報処理装置により表示される操作画面のまた他の例を示す図である。
【図１０】実施の形態である情報処理装置により表示される操作画面のまた他の例を示す図である。
【図１１】実施の形態である情報処理装置により表示される操作画面のまた他の例を示す図である。
【図１２】実施の形態である情報処理装置により表示される操作画面のまた他の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、この発明の実施の形態を図面に基づいて説明する。図１は、本発明の実施の形態である情報処理装置の概略構成を示す機能ブロック図である。
【００１１】
本実施の形態である情報処理装置１は、パーソナルコンピュータ、サーバー、スマートフォン、タブレット端末等の情報処理可能な装置である。情報処理装置１は、制御部１００、記憶部１１０、通信部１２０、入力Ｉ／Ｆ（インタフェース）１３０及び出力Ｉ／Ｆ１４０を有する。
【００１２】
制御部１００は、情報処理装置１全体の制御を行う。制御部１００はＣＰＵ、ＦＰＧＡなどのプログラマブルロジックデバイス、ＡＳＩＣ等の集積回路に代表される演算素子を有する。
【００１３】
情報処理装置１の記憶部１１０にはオペレーティングシステム１１１及びシナリオソフトウエア１１３が格納されており、オペレーティングシステム１１１が情報処理装置１の起動時に制御部１００により実行され、オペレーティングシステム１１１が実行された状態で、情報処理装置１のオペレータがシナリオソフトウエア１１３の実行を指示することでこのシナリオソフトウエア１１３が実行されると、情報処理装置１は図１に示すような機能構成を備えたものとなる。当然、シナリオソフトウエア１１３はオペレーティングシステム１１１の起動後に自動的に実行されるように設定してもよい。
【００１４】
制御部１００は、コマンド入力部１０１、シナリオ作成部１０２、シナリオ実行部１０３、表示制御部１０４、エクスポート部１０５、インポート部１０６、暗号処理部１０７及びハッシュ値算出部１０８を有する。
【００１５】
コマンド入力部１０１は、情報処理装置１のオペレーティングシステム１１１及びアプリケーションソフト１１２により実行されるコマンドの種類を示すロボット動作、及びこのロボット動作の具体的実行内容であるコマンドの入力をそれぞれ受け入れる。より詳細には、コマンド入力部１０１は、入力装置２を介して情報処理装置１のオペレータが入力したロボット動作及びコマンドの入力を、入力Ｉ／Ｆ１３０を介して受け入れる。
【００１６】
シナリオ作成部１０２は、コマンド入力部１０１により入力が受け入れられたロボット動作及びコマンドの組を、情報処理装置１の実行順に配列したシナリオデータ１１４を作成する。シナリオ作成部１０２が作成したシナリオデータ１１４は記憶部１１０に格納される。シナリオデータ１１４の詳細については後述する。
【００１７】
シナリオ実行部１０３は、シナリオ作成部１０２が作成したシナリオデータ１１４に基づいて、実行順に配列されたコマンドを情報処理装置１において実行させる。ここで、コマンドがオペレーティングシステム１１１により実行可能なコマンドであるならば、シナリオ実行部１０３はこのコマンドをオペレーティングシステム１１１において実行させ、コマンドがアプリケーションソフト１１２により実行可能なコマンドであるならば、シナリオ実行部１０３はこのコマンドをアプリケーションソフト１１２において実行させる。
【００１８】
表示制御部１０４は、表示装置３に所定の表示画面を表示させるための表示制御信号を送出する。具体的には、表示制御部１０４は、ロボット動作の一覧を、出力Ｉ／Ｆ１４０を介して情報処理装置１に接続された表示装置３の第１の領域に表示させるとともに、コマンド入力部１０１により入力が受け入れられたロボット動作及びコマンドの組を、表示装置３の第２の領域に情報処理装置１の実行順に配列して表示させる。
【００１９】
さらに、表示制御部１０４は、入力装置２を介して第２の領域に表示されているロボット動作及びコマンドの組の階層指定及び／または条件指定の入力があると、第２の領域に表示されているロボット動作及びコマンドの組の表示態様を変更させる。
【００２０】
好ましくは、表示制御部１０４は、入力装置２を介して第２の領域に表示されているロボット動作及びコマンドの組の階層指定の入力があると、第２の領域に表示されているロボット動作及びコマンドの組の階層表示を変更させる。
【００２１】
あるいは、表示制御部１０４は、入力装置２を介して第２の領域に表示されているロボット動作及びコマンドの組の条件指定の入力があると、第２の領域に表示されているロボット動作及び前記コマンドの組の条件表示を変更させる。
【００２２】
エクスポート部１０５は、入力装置２を介してシナリオデータ１１４のエクスポート指示の入力があると、指定されたシナリオデータ１１４を記憶部１１０から取得し、所定のデータフォーマットに変換してエクスポート用シナリオファイル４１（以下、単に「シナリオファイル４１」という。）を生成する。さらに、エクスポート部１０５は、ハッシュ値算出部１０８に指示して所定のハッシュ関数を用いてシナリオファイル４１のハッシュ値を算出させ、このハッシュ値とシナリオファイル４１とを紐付けて、所定の出力先、具体的には外部記憶装置４に出力して格納する。
【００２３】
また、本実施の形態では、エクスポート部１０５は、セキュリティ対策として暗号処理部１０７によって、フォーマット変換後のシナリオデータ１１４を暗号化してシナリオファイル４１を生成し、さらにこの暗号化されたシナリオファイル４１からハッシュ値を求めている。これにより、ハッシュ値に基づいて不測にシナリオファイル４１が復元されるのを回避することができる。このとき、ハッシュ値を暗号化してもよく、セキュリティ効果をより高めることができる。
【００２４】
なお、本実施の形態では、シナリオファイル４１とハッシュ値とを紐付けて外部記憶装置４へ格納しているが、この方式に限定されるものではない。他異なる方式として、例えばフォーマット変換及び暗号化後のシナリオデータ１１４と、そのハッシュ値とをまとめて１つのシナリオファイル４１を生成してもよい。または、フォーマット変換後のシナリオデータ１１４と、そのハッシュ値とを暗号化して１つのシナリオファイル４１を生成してもよい。
【００２５】
また、シナリオファイル４１のフォーマット形式は、特に限定されるものではなく、例えばＣＳＶ（Comma-Separated Values）形式であっても良いし、テキスト形式であってもよい。さらには、本実施の形態のためのオリジナルのフォーマット形式に変換し、暗号化やハッシュ値の算出を行うことで、改ざん防止効果や、不測の暗号解読等の防止効果をより高めることができる。
【００２６】
インポート部１０６は、インポート用シナリオファイル４２（以下、単に「シナリオファイル４２」という。）とこれに紐付けられたハッシュ値を外部記憶装置４から取り込み、この紐付けられたハッシュ値（オリジナル値）と、シナリオファイル４２から再計算したハッシュ値とを比較する。２つのハッシュ値が一致すれば、シナリオファイル４２に改ざんがないと判定し、不一致の場合は改ざんがあったと判定する。そして、インポート部１０６は、改ざんがないと判定したときのみ、暗号処理部１０７に指示してシナリオファイル４２を復号し、復号した内容（フォーマット変換されているシナリオデータ）を、シナリオデータ１１４として記憶部１１０に格納する。
【００２７】
暗号処理部１０７は、エクスポート部１０５の指示により、所定の暗号アルゴリズムに従って、所定の鍵を用いてシナリオファイル４１を暗号化する。また、暗号処理部１０７は、インポート部１０６の指示により、所定の鍵を用いてシナリオファイル４２を復号する。
【００２８】
本実施の形態では暗号化の鍵と復号の鍵として、共通の秘密鍵を用いている。また、この秘密鍵を、シナリオソフトウエア１１３の作成の際に開発者がシナリオソフトウエア１１３内に組み込んでおけば、秘密鍵の内容が開発者以外の者に知られることがなく、セキュリティ効果をより高めることができる。
【００２９】
ハッシュ値算出部１０８は、エクスポート部１０５の指示により、所定のハッシュ関数を用いて、暗号化されたシナリオファイル４１のハッシュ値を算出する。また、ハッシュ値算出部１０８は、インポート部１０６の指示により、所定のハッシュ関数を用いて、取り込んだシナリオファイル４２のハッシュ値を再計算する。
【００３０】
記憶部１１０は、ハードディスクドライブ等の大容量記憶媒体やＲＯＭ、ＲＡＭ等の半導体記憶媒体などの記憶媒体を有する。記憶部１１０には、制御部１００における各種動作の際に用いられる各種データが一時的または非一時的に格納される。
【００３１】
また、記憶部１１０には、オペレーティングシステム１１１、アプリケーションソフト１１２、シナリオソフトウエア１１３、シナリオデータ１１４及びロボット動作一覧データ１１５が格納されている。また、記憶部１１０には、エクスポート用シナリオファイル４１及びインポート用シナリオファイル４２が、一時的または非一時的に格納されてもよい。
【００３２】
オペレーティングシステム１１１は、情報処理装置１全体の動作を制御し、また、情報処理装置１に対する入出力制御を行うソフトウエアである。また、アプリケーションソフト１１２は、情報処理装置１に特定の機能を与え、また、特定の動作を行わせるソフトウエアである。アプリケーションソフト１１２の一例としてはワードプロセッシングソフトウエア、表計算ソフトウエアなどが挙げられる。
【００３３】
これらオペレーティングシステム１１１及びアプリケーションソフト１１２は、入力装置２を介した情報処理装置１のオペレータによる操作入力に基づいて動作するが、本実施の形態の情報処理装置１においては、オペレーティングシステム１１１及びアプリケーションソフト１１２のいずれも、入力装置２を介して情報処理装置１のオペレータが入力したコマンド、及び、シナリオ実行部１０３により実行指示されるコマンドに基づいても動作する。
【００３４】
既に説明したように、シナリオソフトウエア１１３は、情報処理装置１により実行されることで、情報処理装置１に図１に示すような機能構成を備えさせるソフトウエアである。また、シナリオデータ１１４は、ロボット動作及びコマンドの組が情報処理装置１の実行順に配列されたものであり、シナリオ作成部１０２により作成される。ロボット動作一覧データ１１５は、情報処理装置１のオペレーティングシステム１１１及びアプリケーションソフト１１２により実行されるコマンドの種類を示すロボット動作が一覧として（例えばテーブル形式で）格納されたデータである。ロボット動作一覧データ１１５の詳細についても後述する。
【００３５】
通信部１２０は、ＣＰＵやチップセットが有する通信制御機能、及びＬＡＮチップ等からなり、ＬＡＮ５及びこのＬＡＮ５に接続されたインターネット等のＷＡＮ（図略）上にある他の機器との間での通信を制御する。
【００３６】
入力装置２は、例えばキーボード、マウス等であり、情報処理装置１のオペレータからの操作入力に基づいて操作入力信号を情報処理装置１に送出する。入力Ｉ／Ｆ１３０は、ＣＰＵやチップセットが有するインタフェース機能、及びインタフェース用チップ等からなり、入力装置２からの操作入力信号を制御部１００に送出する。
【００３７】
表示装置３は、例えば液晶ディスプレイ等であり、表示制御部１０４からの表示制御信号に基づいて、所定の表示画面を表示する。出力Ｉ／Ｆ１４０は、ＣＰＵやチップセットが有するインタフェース機能、及びインタフェース用チップ等からなり、表示制御部１０４からの表示制御信号を表示装置に出力する。
【００３８】
外部記憶装置４は、エクスポート部１０５が生成したエクスポート用シナリオファイル４１、インポート部１０６が取り込むインポート用シナリオファイル４２が格納される。外部記憶装置４としては、例えばＵＳＢフラッシュメモリ装置、メモリーカード、ＳＳＤ、ＣＤ−Ｒ、ＣＤ−ＲＷ、書き込み型ＤＶＤ、ＨＤＤ等が挙げられる。
【００３９】
図１に示す、情報処理装置１を構成する各部の具体的動作については後に詳述する。
【００４０】
次に、記憶部１１０に格納されているシナリオデータ１１４の内容について図２を参照して説明する。
【００４１】
図２に示すように、シナリオデータ１１４は複数（図示例ではｎ（ｎ：自然数））のシナリオデータ＃１〜＃ｎ  １１４ａを有する。シナリオデータ＃１〜＃ｎ  １１４ａは、それぞれのシナリオデータ＃１〜＃ｎ  １１４ａを識別するためのシナリオ名称データ１１４ｂと、このシナリオデータ＃１〜＃ｎ  １１４ａに含まれるコマンドを表す複数（図示例ではｎ（ｎ：自然数））のコマンドデータ＃１〜＃ｎ  １１４ｃとを有する。なお、図示例では簡略化のためにそれぞれのシナリオデータ＃１〜＃ｎ  １１４ａはｎ個のコマンドデータ＃１〜＃ｎ  １１４ｃを有しているが、個々のシナリオデータ＃１〜＃ｎ  １１４ａが異なる数のコマンドデータ１１４ｃを有していてもよい。
【００４２】
コマンドデータ＃１〜＃ｎ  １１４ｃは、それぞれのコマンドデータ１１４ｃがどのロボット動作に対応するかを示すコマンド名称データ１１４ｄと、後述するコマンド実行データ１１４ｆにより実行されるコマンドの概要を記述できるコマンドメモデータ１１４ｅと、コマンド名称データ１１４ｄにより特定されるロボット動作の具体的実行内容であるコマンドが記述されるコマンド実行データ１１４ｆとを有する。コマンド実行データ１１４ｆに記述されるコマンドは、オペレーティングシステム１１１及び／またはアプリケーションソフト１１２が解釈可能でありさらにこれらにより実行可能なコマンドである。
【００４３】
それぞれのシナリオデータ＃１〜＃ｎ  １１４ａにおいて、コマンドデータ＃１〜＃ｎ  １１４ｃは情報処理装置１の実行順に配列されている。従って、シナリオ実行部１０３は、特定のシナリオデータ＃１〜＃ｎ  １１４ａを選択して実行する場合、選択したシナリオデータ＃１〜＃ｎ  １１４ａにおけるコマンドデータ＃１〜＃ｎ  １１４ｃを配列された順（つまりは＃１から昇順に）実行する。
【００４４】
次に、記憶部１１０に格納されているロボット動作一覧データ１１５の内容について図３を参照して説明する。
【００４５】
ロボット動作一覧データ１１５は、ロボット動作の内容を示すロボット動作欄１１５ａ、このロボット動作に分岐指定ができるか否かを示す分岐欄１１５ｂ及びこのロボット動作に階層指定ができるかどうかを示す階層欄１１５ｃを有する。
【００４６】
一例として、アプリ（ケーション）起動をするロボット動作は分岐指定も階層指定もできないが、シナリオの続行確認をするロボット動作は分岐指定のみでき、メールを受信するロボット動作は階層指定のみでき、そして、特定のディレクトリ（ファイルパス）におけるファイルの存在を確認するロボット動作は分岐指定も階層指定もできる。
【００４７】
なお、本実施の形態である情報処理装置１の制御部１００はメールクライアント機能を有し、シナリオデータ１１４（コマンドデータ１１４ｃ）により記述されたメールアドレス宛に到着したメールを受信することができる。
【００４８】
また、図３に示すロボット動作一覧データ１１５はあくまで一例であり、データの個数及び内容は図示のそれに限定されない。
【００４９】
次に、本実施の形態である情報処理装置１の動作の一例を図４のフローチャート及び図５〜図１２の操作画面の例を参照して説明する。
【００５０】
図４は情報処理装置１の動作を説明するためのフローチャートである。図４のフローチャートに示す動作は、情報処理装置１のオペレータによりシナリオソフトウエア１１３の起動が指示され、このシナリオソフトウエア１１３が起動することにより開始する。
【００５１】
シナリオソフトウエア１１３の起動時に表示装置３の表示画面に表示される画面を図５に示す。かかる画面は、情報処理装置１の制御部１００の表示制御部１０４により生成され、表示装置３に送出される。
【００５２】
図５に示す画面には、記憶部１１０に格納されているシナリオデータ１１４のそれぞれのシナリオデータ＃１〜＃ｎ  １１４ａのシナリオ名称データ１１４ｂが表示される表示領域２００と、新規シナリオ作成を指示する新規シナリオ作成ボタン２０１と、それぞれのシナリオデータ＃１〜＃ｎ  １１４ａに対する各種アクションを指示するアクションボタン２０２と、所定のシナリオデータ＃１〜＃ｎ  １１４ａのインポートを指示するインポートボタン２０３とが表示されている。アクションボタン２０２は、シナリオデータ＃１〜＃ｎ  １１４ａのエクスポートを指示するエクスポートボタン２０２ａを有し、この他にも、設定ボタン、編集ボタン、実行ボタン、複製ボタン、ログ表示ボタン、削除ボタン等を有している。
【００５３】
図４のフローチャートでは、新規シナリオ作成ボタン２０１が入力されたときの動作、つまり、新規シナリオデータ＃１〜＃ｎ  １１４ａを作成する際の手順と、エクスポートボタン２０２ａが入力されたときの動作、つまり、エクスポート用シナリオファイル４１を生成する際の手順と、インポートボタン２０３が入力されたときの動作、つまりインポート用シナリオファイル４２の改ざんの有無を判定する際の手順について説明する。
【００５４】
ステップＳ１では、入力装置２を介して表示装置３に表示されている新規シナリオ作成ボタン２０１に対するオペレータからの操作入力を待つ。そして、新規シナリオ作成ボタン２０１の操作入力があったら（ステップＳ１の判定がＹＥＳ）、プログラムはステップＳ２に進む。エクスポートボタン２０２ａの操作入力があったら（ステップＳ１の判定がＮＯかつステップＳ２０の判定がＹＥＳ）、プログラムはステップＳ２１に進む。インポートボタン２０３の操作入力があったら（ステップＳ１及びステップＳ２０の判定がＮＯかつステップＳ３０の判定がＹＥＳ）、プログラムはステップＳ３１に進む。
【００５５】
ステップＳ２に進むことで、新規シナリオ作成の各処理が開始される。このステップＳ２では、表示制御部１０４は表示装置３にシナリオ名称入力画面（図略）を表示させる。入力装置２を介してシナリオ名称の操作入力があったら、制御部１００のコマンド入力部１０１はこの操作入力を受け入れる。受け入れたシナリオ名称はシナリオ名称データ１１４ｂとしてシナリオ作成部１０２がシナリオデータ１１４の一部として記憶部１１０に格納する。
【００５６】
図６は、ステップＳ２におけるシナリオ名称入力動作の後に表示装置３の表示画面に表示されるシナリオ編集モード画面の一例を示す図である。図６に示す画面は、表示制御部１０４により生成され、表示装置３に送出される。
【００５７】
図６に示す画面は、ロボット動作の一覧が表示される第１の領域２１０と、後述するコマンド入力部１０１により入力されたロボット動作とコマンドの組が、情報処理装置１の実行順に上から下に配列された第２の領域２１１とを有する。第１の領域２１０に表示されるロボット動作の一覧表示は、ロボット動作一覧データ１１５を参照して表示制御部１０４が生成する。また、第２の領域２１１に表示されるロボット動作とコマンドの組の表示も、同様に表示制御部１０４が生成する。
【００５８】
図６に示す画面は、既にコマンド入力部１０１によりロボット動作とコマンドの組が複数入力された状態を示す。従って、ステップＳ２が終了してステップＳ３が実行される状態では、第２の領域２１１には何も表示されていない。
【００５９】
ステップＳ３では、情報処理装置１のオペレータが、第１の領域２１０に表示されているロボット動作の一覧のうち、いずれかのロボット動作の選択入力が入力装置２を介してされるのを待つ。そして、選択入力がされると（ステップＳ３の判定がＹＥＳ）、プログラムはステップＳ４に進み、表示制御部１０４がコマンド詳細設定画面を表示装置３に表示させる。
【００６０】
新規シナリオ作成の際に表示装置３に表示されるコマンド詳細設定画面の一例を図７〜図１０に示す。
【００６１】
図７に示すコマンド詳細設定画面２２０は、ロボット動作「アプリケーション＞起動」に対応するコマンドの詳細を入力するための画面である。図７に示すコマンド詳細設定画面２２０は、起動すべきアプリケーションソフト１１２を指定するアプリケーションソフト指定画面２２１、及びこのコマンドの具体的実行内容を示すコマンドメモデータ１１４ｅを入力するためのメモ入力画面２２２を有する。
【００６２】
情報処理装置１のオペレータは、入力装置２を介してコマンド詳細設定画面２２０に文字列等の入力を行う。図７に示す例では、オペレータはアプリケーションソフト指定画面２２１に「excel（登録商標）」と入力し、メモ入力画面２２２に「エクセル起動」と入力している。
【００６３】
次に、図８に示すコマンド詳細設定画面２３０は、ロボット動作「ファイル＞開く＞固定ファイル名」に対応するコマンドの詳細を入力するための画面である。図８に示すコマンド詳細設定画面２３０は、（ファイルに関連付けられたアプリケーションソフト１１２により）開くべきファイルの場所、言い換えればディレクトリ（ファイルパス）を指定するファイル場所指定画面２３１、及びこのコマンドの具体的実行内容を示すコマンドメモデータ１１４ｅを入力するためのメモ入力画面２３２を有する。
【００６４】
次に、図９に示すコマンド詳細設定画面２４０は、ロボット動作「流れ＞分岐（数値）」に対応するコマンドの詳細を入力するための画面である。図９に示すコマンド詳細設定画面２４０は、分岐条件となるデータを特定するためのＩＤを設定するデータＩＤ設定画面２４１、分岐条件となる数値との間の大小関係を設定する大小設定画面２４２、比較対象となる数値を入力する数値入力画面２４３、及びこのコマンドの具体的実行内容を示すコマンドメモデータ１１４ｅを入力するためのメモ入力画面２４４を有する。
【００６５】
そして、図１０に示すコマンド詳細設定画面２５０は、ロボット動作「ウィンドウ＞最前ウィンドウ記憶」に対応するコマンドの詳細を入力するための画面である。図１０に示すコマンド詳細設定画面２５０は、表示装置３の表示画面において最前に表示されている画面を記憶するＩＤを設定するウィンドウ参照ＩＤ設定画面２５１、及びこのコマンドの具体的実行内容を示すコマンドメモデータ１１４ｅを入力するためのメモ入力画面２５２を有する。
【００６６】
ステップＳ５では、ステップＳ４において表示されたコマンド詳細設定画面を用いてコマンド等の入力がされるのを待つ。そして、コマンド等の入力がされると（ステップＳ５の判定がＹＥＳ）、プログラムはステップＳ６に進み、コマンド入力部１０１が、ステップＳ４、Ｓ５において入力されたロボット動作、ロボット動作の具体的実行内容であるコマンドの入力及びコマンドメモデータ１１４ｅをそれぞれ受け入れる。次いで、シナリオ作成部１０２は、コマンド入力部１０１が受け入れたロボット動作及びコマンドの組、さらにはコマンドメモデータ１１４ｅを用いてシナリオデータ１１４を更新する。
【００６７】
さらに、表示制御部１０４は、コマンド入力部１０１が受け入れたロボット動作、ロボット動作の具体的実行内容であるコマンドの入力及びコマンドメモデータ１１４ｅに基づき、表示装置３の表示画面の第２の領域２１１の表示内容を更新する（図６参照）。
【００６８】
この際、表示制御部１０４は、コマンド入力部１０１が受け入れたロボット動作についてロボット動作一覧データ１１５を参照し、受け入れたロボット動作に分岐指定が可能であるかどうかを判定する。そして、分岐指定が可能であると判定したら、第２の領域２１１の表示内容に条件表示を付加する。
【００６９】
一例として、図６において、コマンドメモデータ１１４ｅが「注文数が１０以上の場合」であるロボット動作Ｒ１は分岐指定されている。従って、表示制御部１０４は、このロボット動作Ｒ１の条件を満たす（図中では「Ｔｒｕｅ」と表示）場合に分岐するロボット動作Ｒ２と、ロボット動作Ｒ１の条件を満たさない（図中では「Ｆａｌｓｅ」と表示）場合に分岐するロボット動作Ｒ３とを分別して視認可能な状態に表示する。
【００７０】
次いで、ステップＳ７では、入力装置２を介して情報処理装置１のオペレータが表示装置３の表示画面の第２の領域２１１に対して操作入力をするのを待つ。ここにいう操作入力の一例としては、第２の領域２１１に表示されているロボット動作に対して階層の変更を指示する操作入力であり、より具体的には、ロボット動作を図６において左右方向にドラッグすることで階層変更の指示を行う操作入力である。
【００７１】
ステップＳ８では、表示制御部１０４は、操作入力があったロボット動作についてロボット動作一覧データ１１５を参照し、受け入れたロボット動作に階層指定が可能であるかどうかを判定する。そして、階層指定が可能であると判定したら、第２の領域２１１の表示内容を更新し、階層表示を行う（あるいは変更する）。
【００７２】
一例として、図６において、コマンドメモデータ１１４ｅが「移動」であるロボット動作Ｒ４は、コマンドメモデータ１１４ｅが「各注文に対して繰り返し」であるロボット動作Ｒ５よりも図中右方向にシフトして表示されている。ロボット動作の表示を左右方向に所定距離だけシフトすることで階層表示が行われている。
【００７３】
この後、プログラムはステップＳ３に戻り、ステップＳ３〜Ｓ１０までの動作を繰り返す。また、図６の画面で、入力装置２を介して「シナリオ保存」の操作入力がされたら（ステップＳ１０の判定がＹＥＳ）、シナリオデータ１１４を記憶部１１０に格納して、シナリオ作成を終了し、ステップＳ１に戻る。
【００７４】
次に、ステップＳ１でエクスポートボタン２０２ａの操作入力があり、ステップＳ２１に進んだときの動作を説明する。このステップＳ２１以降の処理は、図５に示す操作画面で、情報処理装置１のオペレータによって、所定のシナリオ名称データ１１４ｂの横に表示されるエクスポートボタン２０２ａが選択されたときに実行される。
【００７５】
まず、ステップＳ２１では、エクスポート部１０５が、情報処理装置１のオペレータによって選択されたエクスポートボタン２０２ａに対応するシナリオデータ＃１〜＃ｎ  １１４ａを記憶部１１０から取得する。これと並行して、ステップＳ２２で、表示制御部１０４が、例えば、図１１に示すようなエクスポート画面２６０を表示装置３に表示させる。この図１１に示すエクスポート画面２６０は、シナリオデータ＃１〜＃ｎ  １１４ａをエクスポート（書き出し）するための画面であり、出力先のファイル名、言い換えればディレクトリ（ファイルパス）を指定する出力先指定画面２６１を有する。
【００７６】
オペレータは、入力装置２を介して出力先指定画面２６１において、出力先のディレクトリを指定し、ファイル名（文字列）の入力を行う。なお、出力先のディレクトリは、表示制御部１０４の制御により予め外部記憶装置４のディレクトリ（例えば、Ｄ：）を指定し、ファイル名としてシナリオ名称を表示してもよい。
【００７７】
出力先の入力が完了し、オペレータがＯＫボタン２６２を操作入力すると、この入力を受けて、ステップＳ２３で、エクスポート部１０５が、ステップＳ２１で取得したシナリオデータ＃１〜＃ｎ  １１４ａを所定のデータフォーマットに変換し、暗号処理部１０７に指示してこのデータフォーマット変換後のシナリオデータ＃１〜＃ｎ  １１４ａを暗号化することで、シナリオファイル４１を生成する。ステップＳ２４で、ハッシュ値算出部１０８が、所定のハッシュ関数を用いて、この暗号化されたシナリオファイル４１のハッシュ値を算出する。
【００７８】
次いで、ステップＳ２５で、エクスポート部１０５が、暗号化されたシナリオファイル４１を、ステップＳ２４で算出されたハッシュ値と紐付けて、指定されたファイル名で外部記憶装置４に出力する。これにより、エクスポート処理が完了する。その後、ステップＳ１に戻ることで、次に指定される処理を続行することができる。
【００７９】
次に、ステップＳ１でインポートボタン２０３の操作入力があり、ステップＳ３１に進んだときの動作を説明する。このステップＳ３１以降の処理は、図５に示す操作画面で、情報処理装置１のオペレータによって、インポートボタン２０３が選択されたときに実行される。
【００８０】
まず、ステップＳ３１では、表示制御部１０４が、例えば、図１２に示すようなインポート画面２７０を表示装置３に表示させる。この図１２に示すインポート画面２７０は、インポートすべきシナリオファイル４２を指定するための画面であり、インポートのために開くべきファイルの場所、言い換えればディレクトリ（ファイルパス）を指定するファイル場所指定画面２７１を有する。
【００８１】
オペレータは、ファイル場所指定画面２７１で、外部記憶装置４に格納されているシナリオファイル４２のファイルパスを指定し、ＯＫボタン２７２を操作入力する。この入力を受けて、インポート部１０６は、外部記憶装置４からシナリオファイル４２とこれに紐付けられたハッシュ値を取り込む。次いで、ステップＳ３３で、ハッシュ値算出部１０８が、所定のハッシュ関数を用いて、取り込んだシナリオファイル４２（暗号化ファイル）のハッシュ値を再計算する。
【００８２】
ステップＳ３４で、インポート部１０６は、ステップＳ３２で取得したハッシュ値（オリジナル値）と、ステップＳ３３で再計算したハッシュ値とを比較する。２つのハッシュ値が一致すれば（ステップＳ３４の判定がＹＥＳ）、シナリオファイル４２の改ざんがないと判定して、ステップＳ３５に進む。
【００８３】
ステップＳ３５では、暗号処理部１０７が改ざんがないと判定したシナリオファイル４２を、秘密鍵を用いて復号する。ステップＳ３６で、この復号されたシナリオファイル４２（つまり、データフォーマット変換されているシナリオデータ）に基づいて、インポート部１０６がシナリオデータ＃１〜＃ｎ  １１４ａを生成し、記憶部１１０に格納する。これにより、インポートが完了し、情報処理装置１において、インポートされたシナリオデータ＃１〜＃ｎ  １１４ａを実行することが可能となる。
【００８４】
一方、２つのハッシュ値が不一致の場合（ステップＳ３４の判定がＮＯ）は、シナリオファイル４２が改ざんされた可能性があるため、その後のインポート処理を中止し、ステップＳ３７に進む。ステップＳ３７では、表示制御部１０４が、エラーメッセージ（例えば、「ハッシュ値が不一致のため、インポート処理を中止します。」、「シナリオファイルの改ざんを検出したため、インポート処理を中止します。」）を表示装置３に表示させる。このエラーメッセージを視認することで、オペレータはシナリオファイル４２に改ざんがあったことを認識することができる。そして、オペレータによるインポート画面２７０のキャンセルボタン２７３の操作入力等を受けて、ステップＳ１に戻ることで、次に指定される処理を続行することができる。
【００８５】
以上のように構成された本実施の形態である情報処理装置１では、表示制御部１０４が、入力装置２を介して第２の領域２１１に表示されているロボット動作及びコマンドの組の階層指定及び／または条件指定の入力があると、第２の領域２１１に表示されているロボット動作及びコマンドの組の表示態様を変更させている。
【００８６】
このようにすることで、コマンドの階層化表示、及び／または条件設定の表示を操作画面において簡易に表示させることが可能となる。
【００８７】
また、本実施の形態である情報処理装置１では、シナリオデータ１１４のエクスポートに際して、生成したシナリオファイル４１のハッシュ値を算出している。そして、シナリオデータ１１４のインポートに際して、シナリオファイル４２のハッシュ値を再計算し、エクスポート先で算出したハッシュ値と比較している。このようにすることで、シナリオデータ１１４の改ざん等の有無を検出し、改ざん等されたシナリオデータ１１４の実行を防止することができる。
【００８８】
また、本実施の形態では、所定の秘密鍵を用いて暗号化したシナリオファイル４１，４２のハッシュ値を算出または再計算している。このようにすることで、ハッシュ値をより複雑化して、ハッシュ値からシナリオファイルが不測に復号されるのを防止することができ、セキュリティ効果をより高めることができる。その結果、改ざん等されたシナリオデータ１１４の実行の防止効果を高めることができる。また、本実施の形態では、秘密鍵がシナリオソフトウエア１１３内に組み込まれていることで、権限のないオペレータや第三者が不測にエクスポート用シナリオファイル４１を生成したり、インポート用シナリオファイル４２を取り込んだりするのを防止することもでき、セキュリティ効果をより高めることができる。
【００８９】
以上、図面を参照して、本発明の実施の形態を詳述してきたが、具体的な構成は、この実施の形態及び実施例に限らず、本発明の要旨を逸脱しない程度の設計的変更は、本発明に含まれる。
【００９０】
一例として、表示制御部１０４による表示装置３の表示画面への表示態様は図示例に限定されず、種々の変形が可能である。
【００９１】
そして、上述の実施の形態において、情報処理装置１を動作させるプログラムは記憶部１１０に格納されて提供されていたが、不図示の光学ディスクドライブ、ＵＳＢインタフェース等を用いて、プログラムが格納された光ディスク、ＵＳＢフラッシュメモリ装置、メモリーカード等を接続し、このＤＶＤ等からプログラムを情報処理装置１に読み込んで動作させてもよい。また、ＷＡＮ上の外部サーバー内にプログラムを格納しておき、通信部１２０を介してこのプログラムを情報処理装置１に読み込んで動作させてもよい。さらに、上述の各実施形態において、情報処理装置１は複数のハードウェア要素により構成されていたが、これらハードウェア要素の一部の動作をＣＰＵ等がプログラムの動作により実現することも可能である。
【００９２】
また、上述の実施の形態では、フォーマット変換後のシナリオデータ１１４からシナリオファイル４１を生成し、そのハッシュ値を算出しているが、これに限定されるものではない。他の異なる実施形態として、例えば、フォーマット変換後のシナリオデータ１１４及び所定の画像ファイルからシナリオファイル４１を生成し、そのハッシュ値を算出することもできる。より具体的に説明すれば、画面上でマウスを移動させるコマンドを実行する場合、画面上の座標を指定することで自動的にマウスを移動させる方法と、所定の画像に向かってマウスの移動をするように指定する方法とがある。このような画像を利用したコマンドをインポート先の情報処理装置１でも実行するには、画像（画像ファイル）もシナリオデータ１１４とともにエクスポートする必要がある。よって、シナリオデータ１１４及び複数の画像ファイルを含めてシナリオファイル４１を生成し、このシナリオファイル４１のハッシュ値を算出することで、容易に解読等されることのないハッシュ値が得られる。よって、シナリオデータ１１４の改ざん等の防止効果をより高めることができる。
【００９３】
また、上述の実施の形態では、図５の画面でエクスポートボタン２０２ａの操作入力によって指定されたシナリオ名称データ１１４ｂに対応するシナリオデータ１１４のエクスポートを実行しているが、複数のシナリオデータ１１４をまとめてエクスポートすることも可能である。例えば、本実施の形態では、所定のシナリオデータ１１４に、他のシナリオデータ１１４を呼び出して実行させるコマンドを指定することが可能である。この場合、エクスポート部１０５は、エクスポートの指定がされた所定のシナリオデータ１１４とともに、これに呼び出される依存関係の他のシナリオデータ１１４を自動的に検出し、これらをまとめて１つのシナリオファイル４１として出力し、そのハッシュ値を算出する。そして、他の情報処理装置１に、これら複数のシナリオデータ１１４をインポートすることで、呼び出し元及び呼び出し先の各コマンドを正常に実行することができる。
【００９４】
また、更に異なる実施の形態として、図５に示す画面で、複数のシナリオ名称データ１１４ｂを選択可能とし（グループ化）、選択されたシナリオ名称データ１１４ｂに対応するすべてのシナリオデータ１１４からシナリオファイル４１を生成し、そのハッシュ関数を算出する構成とすることもできる。この場合、すべてのシナリオデータ１１４をまとめて１つのシナリオファイル４１を生成してもよいし、シナリオデータ１１４ごとにシナリオファイル４１を生成してもよい。
【００９５】
また、上述の実施の形態では、エクスポート部１０５は、シナリオファイル４１を外部記憶装置４に出力し、インポート部１０６は、外部記憶装置４からシナリオファイル４２を取り込んでいるが、これに限定されるものではない。例えば、通信部１２０を介してシナリオファイル４１を他の情報処理装置１に向けて出力する構成としてもよい。また、通信部１２０を介してシナリオファイル４２を情報処理装置１に読み込む構成としてもよい。この場合でも、エクスポート側とインポート側で、それぞれハッシュ値を算出して比較することで、シナリオデータ１１４の改ざん等の有無を検出し、改ざん等されたシナリオデータ１１４の実行を確実に防止することができる。
【符号の説明】
【００９６】
１    情報処理装置
２    入力装置
３    表示装置
４    外部記憶装置
４１    エクスポート用シナリオファイル
４２    インポート用シナリオファイル
１００    制御部
１０１    コマンド入力部
１０２    シナリオ作成部
１０３    シナリオ実行部
１０４    表示制御部
１０５    エクスポート部
１０６    インポート部
１０７    暗号処理部
１０８    ハッシュ値算出部
１１０    記憶部
１１４    シナリオデータ
【図１】
2020102699.tif 000003
【図２】
2020102699.tif 000004
【図３】
2020102699.tif 000005
【図４】
2020102699.tif 000006
【図５】
2020102699.tif 000007
【図６】
2020102699.tif 000008
【図７】
2020102699.tif 000009
【図８】
2020102699.tif 000010
【図９】
2020102699.tif 000011
【図１０】
2020102699.tif 000012
【図１１】
2020102699.tif 000013
【図１２】
2020102699.tif 000014