以下、実施の形態について、図面を参照して説明する。
(第1の実施形態)
〈システム構成〉
図1は、第1の実施形態に係る監視統制システム1の構成例を表す模式図である。図1に示される監視統制システム1は、ノードとして機能する信号処理装置10−1〜10−6を備える。
信号処理装置10−1〜10−6は、ネットワークにそれぞれ接続された、例えば、パーソナルコンピュータである。本実施形態では、ネットワークは、例えば、同一の組織内に敷設されるLAN(Local Area Network)である。信号処理装置10−1〜10−6は、ネットワークと、例えば、有線又は無線により接続されている。信号処理装置10−1〜10−6は、ピア・ツー・ピア方式を利用した分散型ネットワークを形成している。
信号処理装置10−1〜10−6は、少なくとも1つのRPA(Robotic Process Automation)アプリがそれぞれインストールされている。RPAアプリは、例えば、人間がコンピュータを操作して業務を遂行する手順に基づいて構築されるプログラムである。なお、第1及び第2の実施形態において、この種のプログラムには、例えば、スクリプト(例えば、バッチファイル、JAVA(登録商標)スクリプト、又はVBスクリプト等)、又はマクロプログラム等も含まれ得る。信号処理装置10−1〜10−6は、インストールされているRPAアプリに所定のジョブを実行させる。また、信号処理装置10−1〜10−6は、RPAアプリにより実行されるジョブの実行状況を監視する。第1及び第2の実施形態では、RPAアプリによりジョブが実行される場合を例に説明するが、信号処理装置10−1〜10−6にインストールされ、所定のジョブを実行するプログラムは、例えば、スクリプト(例えば、バッチファイル、JAVAスクリプト、又はVBスクリプト等)、又はマクロプログラム等であっても構わない。つまり、ソフトウェアロボットには、例えば、RPAアプリ、スクリプト、又はマクロプログラム等が含まれ得る。
信号処理装置10−1〜10−6は、RPAアプリの実行状況を管理するための管理データを記憶している。管理データには、例えば、RPAアプリにより実行されるジョブのスケジュールに関する情報が含まれるスケジュール設定データ121と、RPAアプリがジョブを実行することで作成された作業結果が含まれる作業結果データ122とが含まれ得る。信号処理装置10−1〜10−6は、スケジュール設定データ121、及び作業結果データ122等に基づき、RPAアプリによるジョブの実行を管理する。スケジュール設定データ121及び作業結果データ122は、信号処理装置10−1〜10−6間で、ピア・ツー・ピア方式を利用して共有される。
なお、監視統制システム1の構成は、図1に示されるものに限定されない。例えば、監視統制システム1が備える信号処理装置10の台数は、6台に限定されず、2台以上であれば何台でも構わない。また、監視統制システム1は、RPAアプリのバージョンを管理する管理サーバを備えていても構わない。信号処理装置10−1〜10−6は、例えば、管理サーバから送信される最新バージョンのRPAアプリを受信してインストールする。
〈信号処理装置の構成〉
図2は、図1に示される信号処理装置10の機能構成の例を表すブロック図である。なお、図1では、信号処理装置10−1〜10−6が存在するが、信号処理装置10−1〜10−6の構成は同一でも構わない。そこで、図2では、信号処理装置10として説明する。
図2に示される信号処理装置10は、例えば、処理部11、記憶部12、入力インタフェース13、出力インタフェース14、及び通信インタフェース15を備える。処理部11、記憶部12、入力インタフェース13、出力インタフェース14、及び通信インタフェース15は、例えば、バスを介して互いに通信可能に接続されている。
処理部11は、例えば、CPU(Central Processing Unit)、CPUが処理を実行する際に主記憶装置として用いるRAM(Random Access Memory)により構成される。CPUは、例えば、記憶部12に記憶されているプログラムをRAMに読み込み実行することで、プログラムに対応する種々の機能を実現する。
記憶部12は、種々の情報を記憶するHDD(hard disk drive)、及びSSD(solid state drive)等の不揮発性の記憶回路を備える、いわゆる補助記憶装置である。なお、記憶部12は、CD−ROM、DVD、及びフラッシュメモリ等の可搬性記憶媒体との間で種々の情報を読み書きする駆動装置等であってもよい。
記憶部12は、本実施形態に係るプログラム、例えば、監視統制プログラムを記憶している。また、記憶部12は、自装置に割り当てられたジョブを実行するためのRPAアプリに関するプログラムを記憶している。なお、監視統制プログラム、及びRPAアプリに関するプログラムは、例えば、記憶部12に予め記憶されていてもよい。また、例えば、非一過性の記憶媒体に記憶されて配布され、非一過性の記憶媒体から読み出されて記憶部12にインストールされてもよい。また、監視統制プログラムは、図示しない所定のサーバからダウンロードされてインストールされてもよい。また、RPAアプリに関するプログラムは、図示しない管理サーバからダウンロードされてインストールされてもよい。
また、記憶部12は、スケジュール設定データ121を記憶している。スケジュール設定データ121には、例えば、監視統制システム1に含まれる信号処理装置10−1〜10−6のRPAアプリにより実行される全てのジョブのスケジュールに関する情報が含まれている。スケジュール設定データ121は、処理部11からの制御により更新される。
また、記憶部12は、作業結果データ122−1〜122−6を記憶している。作業結果データ122−1〜122−6それぞれには、例えば、信号処理装置10−1〜10−6それぞれで生成された作業結果に関する情報が含まれている。作業結果データ122−1〜122−6は、処理部11からの制御により更新される。
なお、記憶部12には、下記のデータが記憶されていてもよい。すなわち、記憶部12には、例えば、ジョブマスタの設定に関する情報が含まれるジョブ設定データ、RPAアプリのバージョンに関する情報が含まれるジョブバージョン管理データ、RPAアプリの利用が許諾されているアカウントに関する情報が含まれるアカウント管理データ、報告の通知先に関する情報が含まれる通知先管理データ、監視統制システム1を構成する端末に関する情報が含まれる端末管理データ、及びRPAアプリの設定に関する情報が含まれるApp設定データが含まれ得る。
入力インタフェース13は、例えば、マウス、キーボード、及び、操作面へ触れることで指示が入力されるタッチパネル等により実現される。入力インタフェース13は、操作者からの入力指示を電気信号へ変換し、電気信号を処理部11へ出力する。なお、入力インタフェース13は、マウス、及びキーボード等の物理的な操作デバイスに限定されない。入力インタフェース13には、例えば、外部の入力機器から入力される電気信号を受け付ける受信ポートが含まれてもよい。
出力インタフェース14は、例えば、表示機器、及び印刷機器等により実現される。表示機器としては、例えば、液晶ディスプレイ、有機ELディスプレイ、LEDディスプレイ、プラズマディスプレイ、及びCRTディスプレイ等、任意のディスプレイが利用可能である。表示機器は、表示対象についての画像データを表示する。印刷機器は、例えば、プリンタである。印刷機器は、印刷対象についての画像データを所定用紙に印刷する。なお、出力インタフェース14は、表示機器、及び印刷機器等の物理的な出力装置に限定されない。出力インタフェース14には、例えば、外部の出力装置へ画像データを送信する送信ポートが含まれてもよい。
通信インタフェース15は、例えば、ネットワークと接続する回路により実現される。通信インタフェース15は、ネットワークを介し、他の信号処理装置10のうち、少なくともいずれかと通信する。
図2に示される処理部11は、記憶部12に記憶されているプログラムを実行することで、当該プログラムに対応する機能を実現する。例えば、処理部11は、プログラムを実行することで、記憶制御部111、RPA管理部112、通信制御部113、表示制御部114、及び監視部115の機能を実現する。
図2に示される処理部11は、複数のCPUが組み合わされて形成されていても構わない。すなわち、図2に示される記憶制御部111、RPA管理部112、通信制御部113、表示制御部114、及び監視部115は、例えば、各CPUがプログラムを実行することで実現されても構わない。
また、処理部11は、記憶制御部111、RPA管理部112、通信制御部113、表示制御部114、及び監視部115の機能をそれぞれ有する専用のハードウェア構成により形成されていても構わない。また、処理部11は、記憶制御部111、RPA管理部112、通信制御部113、表示制御部114、及び監視部115の機能をそれぞれ有する専用のハードウェア回路を組み込んだ特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、フィールド・プログラマブル・ゲート・アレイ(Field Programmable Gate Array:FPGA)、他の複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、又は単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)により形成されていても構わない。
記憶制御部111は、記憶部12へのデータの記憶を制御する。具体的には、例えば、記憶制御部111は、スケジュールに関する情報が変更されると、変更された情報に基づき、記憶部12に記憶されているスケジュール設定データ121を更新する。また、記憶制御部111は、他の信号処理装置10から送信されたスケジュール設定データ121を受信すると、記憶部12に記憶されているスケジュール設定データ121を、受信したスケジュール設定データ121に基づいて更新する。
また、例えば、記憶制御部111は、自装置にインストールされているRPAアプリがジョブを実行すると、記憶部12に記憶されている、自装置についての作業結果データ122を、ジョブの実行により作成された作業結果を含むように更新する。また、記憶制御部111は、他の信号処理装置10から少なくとも1つの作業結果データ122を受信すると、記憶部12に記憶されている作業結果データ122−1〜122−6のうち、受信したデータと対応する作業結果データ122を、受信したデータに基づいて更新する。
RPA管理部112は、RPAアプリの動作を管理する、管理部の一例である。具体的には、例えば、RPA管理部112は、記憶部12に記憶されているスケジュール設定データ121に基づき、RPAアプリに対して起動指示を出す。また、RPA管理部112は、ジョブを実行したRPAアプリから結果通知を受け取る。
図3は、図2に示されるRPA管理部112によるRPAアプリの動作管理の一例を表す模式図である。図3によれば、RPA管理部112は、インストールされている3台のRPAアプリ16−1〜16−3の動作を管理している。具体的には、例えば、RPA管理部112は、スケジュール設定データ121で規定される第1時刻にRPAアプリ16−1へ起動指示を出力する。RPAアプリ16−1は、起動指示を受けると、第1ジョブを実行し、第1ジョブが完了すると、第1ジョブの結果を用いて第2ジョブを実行する。第2ジョブが完了すると、RPAアプリ16−1は、結果通知をRPA管理部112へ出力する。
RPA管理部112は、スケジュール設定データ121で規定される第2時刻になると、RPAアプリ16−2へ起動指示を出力する。RPAアプリ16−2は、起動指示を受けると、第2ジョブの結果を用いて第3ジョブを実行する。第3ジョブが完了すると、RPAアプリ16−2は、結果通知をRPA管理部112へ出力する。RPA管理部112は、スケジュール設定データ121で規定される第3時刻になると、RPAアプリ16−3へ起動指示を出力する。RPAアプリ16−3は、起動指示を受けると、第3ジョブの結果を用いて第4ジョブを実行する。第4ジョブが完了すると、RPAアプリ16−3は、結果通知をRPA管理部112へ出力する。
また、RPA管理部112は、ジョブの実行に問題が発生したか否かを監視する。例えば、RPA管理部112は、RPAアプリから返信される結果通知に基づき、RPAアプリがジョブを正常に完了させたか否かを判断する。RPA管理部112は、問題が発生した場合、設定されている通知先へ問題が発生した旨を通知する。
通信制御部113は、信号処理装置10−1〜10−6間で、ピア・ツー・ピアネットワークが形成されるように通信を制御する。
表示制御部114は、出力インタフェース14であるディスプレイへの表示処理を制御する。具体的には、例えば、表示制御部114は、記憶部12に記憶されているスケジュール設定データ121、及び作業結果データ122−1〜122−6に基づく画像を表示するように、ディスプレイを制御する。
監視部115は、スケジュール設定データ121に基づき、他の信号処理装置10によるジョブの実行に問題が発生したか否かを監視する。監視部115は、問題が発生した場合、設定されている通知先へ問題が発生した旨を通知する。
〈スケジュール設定データ、及び作業結果データ〉
本実施形態に係る監視統制システム1は、例えば、RPAアプリを実行させるスケジュールに関するスケジュール設定データ121、及びRPAアプリがジョブを実行することで作成される作業結果に関する作業結果データ122を管理する。スケジュール設定データ121のデータ構造の一例を図4を参照して説明し、作業結果データ122のデータ構造の一例を図5〜図7を参照して説明する。
図4に示されるように、スケジュール設定データ121は、例えば、レコード毎に、次のような情報を含み得る。すなわち、スケジュール設定データ121は、データの種類を示すデータ種類、及びレコードの番号を示すレコード番号を含み得る。なお、図4において、データ種類の値は、スケジュール設定データ121のレコードであることを表す値となっている。
また、スケジュール設定データ121は、仕事を担当するグループを示すワークグループ、実行されるジョブの名称を示す作業名、及びジョブを実行するRPAアプリのバージョンを示す作業バージョンを含み得る。また、スケジュール設定データ121は、RPAアプリがジョブを実行する周期を示す繰返時間、RPAアプリがジョブを実行する上限回数を示す制限回数、RPAアプリが起動する初回の日時を示す初回起動日時、RPAアプリがジョブの実行を開始する時刻を示す稼働開始時刻、RPAアプリがジョブの実行を終了する時刻を示す稼働終了時刻、RPAアプリがジョブを実行する曜日を示す稼働曜日を含み得る。また、スケジュール設定データ121は、問題が発生した際にその旨を通知する宛先を示す通知先を含み得る。なお、スケジュール設定データ121に含まれる情報は、上述の一部でもよいし、その他の情報であってもよい。
図5に示されるように、作業結果データ122は、例えば、レコード毎に、次のような情報を含み得る。すなわち、作業結果データ122は、データ種類、及びレコード番号を含み得る。なお、図5において、データ種類の値は、作業結果データ122のレコードであることを表す値となっている。
また、作業結果データ122は、ワークグループ、作業名、及び作業バージョンを含み得る。また、作業結果データ122は、RPAアプリがジョブを実行した日付を示すスケジュール日付、RPAアプリがジョブを実行したスケジュールのバージョンを示すスケジュールバージョン、RPAアプリを起動させた信号処理装置10の名称を示す端末名、RPAアプリがジョブの実行を開始した時刻を示す作業開始時刻、及びRPAアプリがジョブの実行を終了した時刻を示す作業終了時刻を含み得る。
本実施形態において、作業結果データ122は、RPAアプリを実行した信号処理装置10毎に記憶されている。そのため、図5に示される作業結果データ122では、端末名の値は、全レコードで同一の値となっている。端末名の値が異なるレコードは、例えば、図6で示されるように、異なる作業結果データ122で記憶される。また、本実施形態では、スケジュールバージョンが更新されると、更新されたスケジュールバージョンに応じた新たな作業結果データ122が作成されるようになっている。そのため、図5に示される作業結果データ122では、スケジュールバージョンの値は、全レコードで同一の値となっている。スケジュールバージョンの値が異なるレコードは、例えば、図7で示されるように、異なる作業結果データ122で記憶される。なお、作業結果データ122に含まれる情報は、上述の一部でもよいし、その他の情報であってもよい。
〈監視統制システムにおける信号処理装置の動作〉
監視統制システム1における信号処理装置10−1〜10−6の動作を説明する。なお、以下では、信号処理装置10−1〜10−6間でピア・ツー・ピア方式を利用したデータ通信が実施される場合を例に説明するが、データ通信が実施される装置の台数は6台に限定されない。
図8は、図1に示される監視統制システム1においてスケジュール設定データ121が共有される際の信号処理装置10−1〜10−6の動作の例を説明する図である。なお、図8では、信号処理装置10−1に指示が入力されて、信号処理装置10−1で記憶されているスケジュール設定データ121がまず更新される場合を例に説明する。
まず、信号処理装置10−1で記憶されているスケジュール設定データ121に対して指示が入力される(ステップS81)。このとき、入力される指示は、例えば、新たなレコードデータの追加、既に存在するレコードデータにおける所定項目の変更、又は既に存在するレコードデータの削除等を含み得る。また、指示は、入力インタフェース13を介して操作者から入力されてもよいし、図示しない所定のサーバから入力されてもよい。
指示が入力されると、信号処理装置10−1の記憶制御部111は、入力された指示に基づいてスケジュール設定データ121を変更し、この変更が反映されるように、記憶部12に記憶されているスケジュール設定データ121を更新する(ステップS82)。スケジュール設定データ121が更新されると、信号処理装置10−1の通信制御部113は、スケジュール設定データ121が更新されたことを表す更新信号を予め設定されている送信先へ送信する(ステップS83)。本実施形態において、予め設定されている送信先は、例えば、信号処理装置10−2〜10−6である。更新信号には、例えば、データ種類、送信元の端末のアドレス、更新が最初に実行された端末名、更新が最初に実行された更新日時、及び更新を識別する識別番号等が含まれ得る。
信号処理装置10−2〜10−6の通信制御部113は、更新信号を受信する。更新信号を受信すると、信号処理装置10−2〜10−6の記憶制御部111は、受信した更新信号により表される更新を既に反映済であるか否かを判断する(ステップS84)。このとき、記憶制御部111は、例えば、受信した更新信号に含まれるデータ種別、端末名、更新日時、及び識別番号等に基づいて更新が反映済か否かを判断する。更新が反映済でない場合、通信制御部113は、更新信号に含まれるデータ種別に基づき、スケジュール設定データ121の読出要求を、更新信号の送信元である信号処理装置10−1へ送信する(ステップS85)。更新が反映済である場合、通信制御部113は、読出要求を送信しない。
信号処理装置10−1の通信制御部113は、読出要求を受信する。読出要求を受信すると、通信制御部113は、記憶部12に記憶されているスケジュール設定データ121を読出要求を送信した信号処理装置10へ送信する(ステップS86)。
信号処理装置10−2〜10−6のうち少なくともいずれかの信号処理装置10の通信制御部113は、スケジュール設定データ121を受信する。スケジュール設定データ121を受信した信号処理装置10の記憶制御部111は、受信したスケジュール設定データ121で、記憶部12に記憶されているスケジュール設定データ121を更新する(ステップS87)。
なお、スケジュール設定データ121を共有する際の信号処理装置10−1〜10−6の動作は図8に限定されない。例えば、信号処理装置10の通信制御部113は、他の信号処理装置10から送信されるスケジュール設定データ121に基づいて記憶部12に記憶されるスケジュール設定データ121が更新された場合、更新信号を予め設定されている信号処理装置10へ送信してもよい。これにより、例えば、ネットワーク、又は信号処理装置10のいずれかに問題が発生したとしても、最新のスケジュール設定データ121が信号処理装置10−1〜10−6間で共有されることになる。
また、信号処理装置10の通信制御部113は、読出要求を送信した後、予め設定した期間経過してもスケジュール設定データ121が受信されない場合、異なる信号処理装置10へ読出要求を送信してもよい。
また、記憶部12に記憶されているスケジュール設定データ121の更新は、信号処理装置10−1への指示の入力をトリガとするものに限られない。信号処理装置10−1の記憶制御部111は、自装置内で新たなレコードデータが作成されたことをトリガとして、スケジュール設定データ121を更新してもよい。例えば、信号処理装置10−1のRPA管理部112は、ジョブ設定データに含まれる情報に基づき、新たなレコード番号が付されたレコードデータを作成する。RPA管理部112によりレコードデータが作成されるタイミングは、所定の時刻でもよいし、操作者により指定されたときであってもよい。
図9は、図1に示される監視統制システム1において作業結果データ122が共有される際の信号処理装置10−1〜10−6の動作の例を説明する図である。なお、図9では、信号処理装置10−1でRPAアプリがジョブを実行することで作業結果が作成される場合を例に説明する。
信号処理装置10−1のRPA管理部112は、記憶部12に記憶されるスケジュール設定データ121を参照し、カウントしている時刻が稼働開始時刻に達すると、RPAアプリへ起動指示を出す。起動指示を受けると、RPAアプリは設定されているジョブを実行する。RPAアプリは、実行したジョブが完了すると、結果通知をRPA管理部112へ返す。結果通知を受けると、RPA管理部112は、作業結果を作成する(ステップS91)。
信号処理装置10−1の記憶制御部111は、作成された作業結果に含まれるスケジュールバージョンを確認する(ステップS92)。記憶制御部111は、作成された作業結果とスケジュールバージョンが同一の作業結果データ122−1を、作成された作業結果を含むように更新する(ステップS93)。作業結果データ122−1が更新されると、信号処理装置10−1の通信制御部113は、作業結果データ122−1が更新されたことを表す更新信号を予め設定されている送信先へ送信する(ステップS94)。本実施形態において、予め設定されている送信先は、例えば、信号処理装置10−2〜10−6である。
信号処理装置10−2〜10−6の通信制御部113は、更新信号を受信する。更新信号を受信すると、信号処理装置10−2〜10−6の記憶制御部111は、受信した更新信号により表される更新を既に反映済であるか否かを判断する(ステップS95)。このとき、記憶制御部111は、例えば、受信した更新信号に含まれるデータ種別、端末名、更新日時、及び識別番号等に基づいて更新が反映済か否かを判断する。更新が反映済でない場合、通信制御部113は、更新信号に含まれるデータ種別、及び端末名に基づき、作業結果データ122−1の読出要求を、更新信号の送信元である信号処理装置10−1へ送信する(ステップS96)。更新が反映済である場合、通信制御部113は、読出要求を送信しない。
信号処理装置10−1の通信制御部113は、読出要求を受信する。読出要求を受信すると、通信制御部113は、記憶部12に記憶されている作業結果データ122−1を読出要求を送信した信号処理装置10へ送信する(ステップS97)。
信号処理装置10−2〜10−6のうち少なくともいずれかの信号処理装置の通信制御部113は、作業結果データ122−1を受信する。スケジュール設定データ121を受信した信号処理装置10の記憶制御部111は、受信した作業結果データ122−1で、記憶部12に記憶されている作業結果データ122−1を更新する(ステップS98)。
なお、作業結果データ122を共有する際の信号処理装置10−1〜10−6の動作は図9に限定されない。例えば、信号処理装置10の通信制御部113は、他の信号処理装置10から送信される作業結果データ122に基づいて記憶部12に記憶される作業結果データ122が更新された場合、更新信号を予め設定されている信号処理装置10へ送信してもよい。
また、信号処理装置10は、読出要求を送信した後、予め設定した期間経過しても作業結果データ122が受信されない場合、異なる信号処理装置10へ読出要求を送信してもよい。
図10は、図1に示される監視統制システム1において異常が検知される際の信号処理装置10の動作の例を表すフローチャートである。なお、信号処理装置10−1〜10−6の動作はそれぞれ同様であるため、図10の説明では、信号処理装置10として説明する。
まず、信号処理装置10の監視部115は、スケジュール設定データ121を参照し、稼働終了時刻から所定の期間が経過しても更新信号が送信されないレコードがあるか否かを判断する(ステップS101)。更新信号が送信されないレコードがある場合(ステップS101のYes)、監視部115は、当該レコードにより表されるジョブにエラーが発生したと判断する(ステップS102)。ジョブにエラーが発生したと判断すると、監視部115は、当該レコードで設定されている通知先へエラーが発生した旨を通知する(ステップS103)。
〈信号処理装置でのジョブ管理〉
本実施形態に係る信号処理装置10−1〜10−6は、スケジュール設定データ121、及び作業結果データ122−1〜122−6等に基づき、ジョブの実行状況を管理する。信号処理装置10−1〜10−6は、管理している実行状況を操作者へ提示するため、ジョブ管理画面140を出力インタフェース14としてのディスプレイに表示する。ジョブ管理画面140の一例を図11〜図17を参照して説明する。
図11に示されるように、ジョブ管理画面140は、例えば、詳細情報領域141、及び管理設定領域142を含み得る。詳細情報領域141は、例えば、ジョブ管理画面140の上側に設けられ、次に自装置内で実行されるジョブについての詳細情報を表示する。なお、詳細情報領域141は、操作者により選択されたジョブについての詳細情報を表示してもよい。管理設定領域142は、例えば、ジョブ管理画面140の下側に設けられ、スケジュールを管理するための情報、又はスケジュールを設定するための情報等を表示する。
具体的には、例えば、詳細情報領域141は、第1領域1411、第2領域1412、第3領域1413、第4領域1414、及び第5領域1415を含み得る。第1領域1411には、選択されたジョブを実行するRPAアプリがインストールされている端末に関する端末情報が表示される。図11においては、第1領域1411には、PC名:総務処理、ログインユーザー:AAAA、環境:P2P、IPアドレス:192.168.1.32、起動時間:2019/05/06 16:58が端末情報として表示されている。端末情報は、例えば、信号処理装置10の表示制御部114により、記憶部12で記憶される端末管理データ、及びApp設定データに基づいて表示される。
第2領域1412には、指定されたジョブについての実行情報が表示される。図11においては、第2領域1412には、CountDown:−、スケジュールNo:1905060008、予定時刻:19/05/06 16:58、JobNo:102000002、通知No:1、WorkGroup:総務担当、Job名:交通費2、Version:190505、使用アカウント:1が実行情報として表示されている。実行情報は、例えば、表示制御部114により、記憶部12で記憶されるスケジュール設定データ121、及びアカウント管理データに基づいて表示される。
第3領域1413には、指定されたジョブを実行するRPAアプリについてのアカウント情報が表示される。図11においては、第3領域1413には、sampleアカウントが表示されている。アカウント情報は、例えば、表示制御部114により、記憶部12で記憶されるアカウント管理データに基づいて表示される。
第4領域1414には、指定されたジョブについての報告の通知先に関する通知情報が表示される。図11においては、第4領域1414には、通知先:BBBB、及び条件:エラー時が表示されている。通知情報は、例えば、表示制御部114により、記憶部12で記憶される通知先管理データに基づいて表示される。
第5領域1415には、指定されたジョブを実行するRPAアプリのバージョンについてのバージョン情報が表示される。図11において、第5領域1415には、FileName:sample190505.xlms、MethodName:乗換案内、及びFilepath:C:\Users:…が表示されている。バージョン情報は、例えば、表示制御部114により、記憶部12で記憶されるジョブバージョン管理データに基づいて表示される。
また、詳細情報領域141は、例えば、スケジュール更新ボタン1416、及びJob取得ボタン1417を含み得る。スケジュール更新ボタン1416は、スケジュールを更新する際の入力を受け付けるためのボタンである。例えば、スケジュールの更新を希望する操作者により、スケジュール更新ボタン1416が押下されると、スケジュールを変更するための入力フォームが表示される。Job取得ボタン1417は、新たなレコードデータを作成するためのボタンである。例えば、Job取得ボタン1417が押下されると、ジョブ設定データに含まれる情報に基づいた新たなレコードデータが作成される。
なお、詳細情報領域141に含まれる情報は、上述の一部でもよいし、その他の情報であってもよい。
管理設定領域142は、例えば、スケジュール、Job設定、JobVersion管理、アカウント管理、通知先管理、端末管理、及びアプリケーション設定に関する情報を表示し得る。管理設定領域142では、これらの情報の表示は、例えば、タブによる選択に応じて切り替えられる。例えば、図11において、第1タブ1421〜第7タブ1427が選択されると、スケジュール、Job設定、JobVersion管理、アカウント管理、通知先管理、端末管理、及びアプリケーション設定がそれぞれ表示される。スケジュール、Job設定、JobVersion管理、アカウント管理、通知先管理、端末管理、及びアプリケーション設定についての表示は、例えば、図11〜図17の管理設定領域142でそれぞれ示される。
第1タブ1421が選択された際に表示されるスケジュールでは、所定期間、例えば、1日の間に信号処理装置10−1〜10−6で実行されるジョブについてのレコードデータが表示される。スケジュールで表示されるレコードデータは、例えば、信号処理装置10の表示制御部114により、記憶部12で記憶されているスケジュール設定データ121、作業結果データ122、及びジョブ設定データ等に基づいて表示される。
スケジュールで表示される情報は、図11で示されるように、ローカルNo、WorkGroup、Job名、Version、予定起動時刻、毎時、及び通知先についての情報を含み得る。ローカルNo、WorkGroup、Job名、Version、予定起動時刻、毎時、及び通知先は、ジョブのスケジュールに関する項目であり、スケジュール設定データ121におけるレコード番号、ワークグループ、作業名、作業バージョン、稼働開始時刻、繰返時間、及び通知先にそれぞれ対応する。表示制御部114は、スケジュール設定データ121が更新されると、更新されたデータに含まれるレコード番号、ワークグループ、作業名、作業バージョン、稼働開始時刻、繰返時間、及び通知先についての値を、スケジュールのローカルNo、WorkGroup、Job名、Version、予定起動時刻、毎時、及び通知先に表示する。
また、スケジュールで表示される情報は、JobマスタNo、及び役割端末名についての情報を含み得る。JobマスタNo、及び役割端末名は、例えば、ジョブ設定データに基づく。
また、スケジュールで表示される情報は、処理開始日時、及び処理終了日時についての情報を含みうる。処理開始日時、及び処理終了日時は、RPAアプリの作業結果を表す項目であり、作業結果データ122−1〜122−6における作業開始日時、及び作業終了日時にそれぞれ対応する。表示制御部114は、作業結果データ122−1〜122−6が更新されると、更新されたデータに含まれる作業開始日時、及び作業終了日時についての値を、スケジュールにおける処理開始日時、及び処理終了日時に表示する。
また、スケジュールで表示される情報は、処理状態を含み得る。自装置におけるジョブの処理状態は、例えば、RPA管理部112がRPAアプリから受ける結果通知に基づいて設定する。他の信号処理装置10の処理状態は、監視部115が他の信号処理装置10の動作状況に基づいて設定する。表示制御部114は、設定された処理状態をスケジュールに表示する。なお、スケジュールで表示される情報は、上述の一部でもよいし、その他の情報であってもよい。
第2タブ1422が選択された際に表示されるJob設定では、ジョブマスタに関する情報が表示される。Job設定で表示されるレコードデータは、例えば、表示制御部114により、記憶部12で記憶されているジョブ設定データに基づいて表示される。Job設定で表示される情報は、図12で示されるように、JobマスタNo、役割端末名、WorkGroup、Job名、JobVer、初回起動日時、トリガ、制限数、毎時、次回稼働日、稼働Start、稼働Close、月火水木金土日祝、及び設定者についての情報を含み得る。スケジュール設定データ121におけるレコードデータは、例えば、ジョブ設定データに含まれるWorkGroup、Job名、JobVer、初回起動日時、毎時、稼働Start、稼働Close、及び月火水木金土に基づき、RPA管理部112により、算出される。なお、Job設定で表示される情報は、上述の一部でもよいし、その他の情報であってもよい。
第3タブ1423が選択された際に表示されるJobVersion管理では、ジョブを実行するRPAアプリについてのバージョン情報が表示される。JobVersion管理で表示されるレコードデータは、例えば、表示制御部114により、記憶部12で記憶されているジョブバージョン管理データに基づいて表示される。JobVersion管理で表示される情報は、図13で示されるように、JobVer、Job名、ツールパス、リンク、ファイル名、Version、更新日時、及びメソッド名についての情報を含み得る。メソッド名は、例えば、呼出メソッド名等のコマンドを意味する。また、JobVersion管理で表示される情報は、合計起動時間、起動回数、平均起動時間、最大起動時間、及び引数パターンNoについての情報を含み得る。合計起動時間、起動回数、平均起動時間、最大起動時間、及び引数パターンNoについての情報は、RPAアプリを使用した結果を分析することで得られる情報である。なお、JobVersion管理で表示される情報は、上述の一部でもよいし、その他の情報であってもよい。
第4タブ1424が選択された際に表示されるアカウント管理では、信号処理装置10を利用することが許諾されているアカウントに関する情報が表示される。アカウント管理で表示されるレコードデータは、例えば、表示制御部114により、記憶部12で記憶されているアカウント管理データに基づいて表示される。アカウント管理で表示される情報は、図14で示されるように、アカウント、及びツール名等についての情報を含み得る。なお、アカウント管理で表示される情報は、上述の一部でもよいし、その他の情報であってもよい。
第5タブ1425が選択された際に表示される通知先管理では、通知先に関する情報が表示される。通知先管理で表示されるレコードデータは、例えば、表示制御部114により、記憶部12で記憶されている通知先管理データに基づいて表示される。通知先管理で表示される情報は、図15で示されるように、通知先No、通知先名、通知アドレス、及び通知する状態についての情報を含み得る。なお、通知先管理で表示される情報は、上述の一部でもよいし、その他の情報であってもよい。
第6タブ1426が選択された際に表示される端末管理では、監視統制システム1を構成する端末に関する情報が表示される。端末管理で表示されるレコードデータは、例えば、表示制御部114により、記憶部12で記憶されている端末管理データに基づいて表示される。端末管理で表示される情報は、図16で示されるように、端末管理No、役割端末名、IPアドレス、スケジュール更新日時、テーブル更新指令Flag、スケジュール更新指令Flag、及びAppVersionについての情報を含み得る。なお、端末管理で表示される情報は、上述の一部でもよいし、その他の情報であってもよい。
第7タブ1427が選択された際に表示されるアプリケーション設定(App設定)では、RPAアプリの設定に関する情報が表示される。App設定で表示される情報は、例えば、表示制御部114により、記憶部12で記憶されているApp設定データに基づいて表示される。App設定で表示される情報は、図17で示されるように、使用環境、役割PC名、及びRPAアプリの保存先についての情報を含み得る。なお、App設定で表示される情報は、上述の一部でもよいし、その他の情報であってもよい。
以上のように、第1の実施形態では、監視統制システム1は、人間がコンピュータを操作して業務を遂行する手順に基づいて構築されるRPAアプリがそれぞれインストールされた複数の信号処理装置10を備える。複数の信号処理装置10のそれぞれは、記憶部12に、RPAアプリの実行状況を管理するための管理データ121,122を記憶する。複数の信号処理装置10のそれぞれは、通信制御部113により、複数の信号処理装置10と分散型ネットワークを形成し、管理データを複数の信号処理装置10間で共有する。そして、複数の信号処理装置10のそれぞれは、RPA管理部112により、管理データ121,122に基づいてRPAアプリにジョブを実行させるようにしている。これにより、どの信号処理装置10も統制管理端末として使用することが可能となる。また、中央統制型運用とは異なり、中央統制端末がダウンしても運用を止めるリスクがなくなる。また、信号処理装置の動作を統括する統括サーバを設けなくてもよくなるため、システム導入の迅速化、及び導入コストの低下を期待することが可能となる。
また、第1の実施形態では、管理データは、スケジュール設定データ121と、作業結果データ122とを含む。複数の信号処理装置10のそれぞれは、記憶制御部111により、スケジュール設定データ121と、作業結果データ122とを別々に更新する。そして、複数の信号処理装置10のそれぞれは、通信制御部113により、スケジュール設定データ121の更新と、作業結果データ122の更新と別々に複数の信号処理装置10間で共有するようにしている。これにより、スケジュール設定データ121と、作業結果データ122とを別々に管理することが可能となり、セキュリティが向上することになる。
また、第1の実施形態では、作業結果データ122を、信号処理装置毎に記憶するようにしている。これにより、スケジュール設定データ121において所定の信号処理装置10に対する変更があった場合、この信号処理装置10についての作業結果データ122のみを更新することが可能となる。つまり、信号処理装置10の処理負荷を軽減することが可能となる。
また、第1の実施形態では、複数の信号処理装置10のそれぞれは、監視部115により、作業結果データ122の更新が共有されたか否かを監視するようにしている。これにより、故障した信号処理装置10を検出することが可能となり、故障した信号処理装置10の役割を、空いている予備端末に移すことが可能となる。すなわち、故障が発生した場合であっても、運用を停止せず、迅速に復旧することが可能となる。
(第2の実施形態)
第1の実施形態では、監視統制システム1が備える信号処理装置10−1〜10−6が、ピア・ツー・ピア方式を利用してスケジュール設定データ121、及び作業結果データ122を信号処理装置10−1〜10−6間で共有する場合を説明した。第2の実施形態では、さらに、ブロックチェーン技術を利用してスケジュール設定データ、及び作業結果データを共有する場合について説明する。
〈システム構成〉
図18は、第2の実施形態に係る監視統制システム1aの構成例を表す模式図である。図18に示される監視統制システム1aは、ノードとして機能する信号処理装置10a−1〜10a−6を備える、分散型システムである。
信号処理装置10a−1〜10a−6は、ネットワークにそれぞれ接続された、例えば、パーソナルコンピュータである。本実施形態では、ネットワークは、LANであってもよく、インターネット、及び通信事業者が提供する通信網等の公開されているネットワークであってもよい。信号処理装置10a−1〜10a−6は、ネットワークと、例えば、有線又は無線により接続されている。信号処理装置10−1〜10−6は、ピア・ツー・ピア方式を利用して互いに通信する。
信号処理装置10a−1〜10a−6は、少なくとも1つのRPAアプリがそれぞれインストールされている。信号処理装置10a−1〜10a−6は、インストールされているRPAアプリに所定のジョブを実行させる。また、信号処理装置10a−1〜10a−6は、RPAアプリにより実行されるジョブの実行状況を監視する。
信号処理装置10a−1〜10a−6は、スケジュール設定データ121aをブロックチェーン技術を用いて記憶している。また、信号処理装置10a−1〜10a−6は、作業結果データ122aをブロックチェーン技術を用いて記憶している。例えば、信号処理装置10a−1〜10a−6のいずれか1つの信号処理装置10aは、記録すべきデータを取得する。信号処理装置10aは、取得したデータを含むブロックを作成し、ブロックチェーンに追加する。信号処理装置10aは、追加したブロックの情報を他の信号処理装置10aへ送信する。他の信号処理装置10aは、受信したブロックの正しさを検証し、正しさが検証されると、ブロックチェーンに追加する。信号処理装置10a−1〜10a−6は、例えば、連結されるブロックの数(承認数)に従ってブロックチェーンを確定する。これにより、信号処理装置10a−1〜10a−6で、同一のスケジュール設定データ121a、及び作業結果データ122aが保存されることになる。なお、保存されるデータは、適宜に暗号化されてもよい。信号処理装置10a−1〜10a−6は、スケジュール設定データ121a、及び作業結果データ122a等に基づき、RPAアプリによるジョブの実行を管理する。
なお、監視統制システム1aの構成は、図18に示されるものに限定されない。例えば、監視統制システム1aが備える信号処理装置10aの台数は、2台以上であれば何台でも構わない。また、監視統制システム1aは、RPAアプリのバージョンを管理する管理サーバを備えていても構わない。
〈信号処理装置の構成〉
図19は、図18に示される信号処理装置10aの機能構成の例を表すブロック図である。なお、図18では、信号処理装置10a−1〜10a−6が存在するが、図19では、信号処理装置10aとして説明する。
図19に示される信号処理装置10aは、例えば、処理部11a、記憶部12a、入力インタフェース13、出力インタフェース14、及び通信インタフェース15を備える。処理部11a、記憶部12a、入力インタフェース13、出力インタフェース14、及び通信インタフェース15は、例えば、バスを介して互いに通信可能に接続されている。
処理部11aは、例えば、CPU、CPUが処理を実行する際に主記憶装置として用いるRAMにより構成される。CPUは、例えば、記憶部12aに記憶されているプログラムをRAMに読み込み実行することで、プログラムに対応する種々の機能を実現する。
記憶部12aは、種々の情報を記憶するHDD、及びSSD等の不揮発性の記憶回路を備える、いわゆる補助記憶装置である。なお、記憶部12aは、CD−ROM、DVD、及びフラッシュメモリ等の可搬性記憶媒体との間で種々の情報を読み書きする駆動装置等であってもよい。
記憶部12aは、本実施形態に係るプログラム、例えば、監視統制プログラムを記憶している。また、記憶部12aは、自装置に割り当てられたジョブを実行するためのRPAアプリに関するプログラムを記憶している。なお、監視統制プログラム、及びRPAアプリに関するプログラムは、例えば、記憶部12aに予め記憶されていてもよい。また、例えば、非一過性の記憶媒体に記憶されて配布され、非一過性の記憶媒体から読み出されて記憶部12aにインストールされてもよい。また、監視統制プログラムは、図示しない所定のサーバからダウンロードされてインストールされてもよい。また、RPAアプリに関するプログラムは、図示しない管理サーバからダウンロードされてインストールされてもよい。
また、記憶部12aは、ブロックチェーン技術を用い、スケジュール設定データ121aを記憶している。スケジュール設定データ121aは、例えば、監視統制システム1aに含まれる信号処理装置10a−1〜10a−6でスケジュールに対して加えられた変更、例えば、追加、修正、又は削除等の履歴がブロックとして連結されたブロック群である。ブロックは、処理部11aからの制御に従い作成される。
また、記憶部12aは、作業結果データ122a−1〜122a−6を記憶している。作業結果データ122a−1〜122a−6それぞれは、例えば、信号処理装置10a−1〜10a−6それぞれで生成された作業結果に関する情報がブロックとして連結されたブロック群である。作業結果データ122a−1〜122a−6は、処理部11aからの制御に従い作成される。
なお、記憶部12aには、ジョブ設定データ、ジョブバージョン管理データ、アカウント管理データ、通知先管理データ、端末管理データ、及びApp設定データが記憶されていてもよい。
図19に示される処理部11aは、記憶部12aに記憶されているプログラムを実行することで、当該プログラムに対応する機能を実現する。例えば、処理部11aは、プログラムを実行することで、記憶制御部111a、RPA管理部112、通信制御部113、表示制御部114a、及び監視部115の機能を実現する。
なお、図19に示される処理部11aは、複数のCPUが組み合わされて形成されていても構わない。また、処理部11aは、各種機能をそれぞれ有する専用のハードウェア構成により形成されていても構わない。また、処理部11aは、各種機能をそれぞれ有する専用のハードウェア回路を組み込んだ特定用途向け集積回路、FPGA、CPLD、又はSPLDにより形成されていても構わない。
記憶制御部111aは、記憶部12へのデータの記憶を制御する。具体的には、例えば、記憶制御部111aは、スケジュールに関する情報が変更されると、変更された情報を含むブロックを作成する。記憶制御部111aは、作成したブロックを、スケジュール設定データ121aのブロックチェーンに追加する。また、記憶制御部111aは、他の信号処理装置10aが作成した、スケジュール設定データ121aについてのブロックの正しさを検証し、正しさが検証されると、当該ブロックをスケジュール設定データ121aのブロックチェーンに追加する。
また、例えば、記憶制御部111aは、自装置にインストールされているRPAアプリがジョブを実行すると、ジョブの実行により作成される作業結果を含むブロックを作成する。記憶制御部111aは、作成したブロックを、自装置についての作業結果データ122aのブロックチェーンに追加する。また、記憶制御部111aは、他の信号処理装置10が作成した、作業結果データ122aについてのブロックの正しさを検証し、正しさが検証されると、当該ブロックを作業結果データ122aのブロックチェーンに追加する。
表示制御部114aは、出力インタフェース14であるディスプレイへの表示処理を制御する。具体的には、例えば、表示制御部114aは、記憶部12aに記憶されているスケジュール設定データ121a、及び作業結果データ122a−1〜122a−6に基づく画像を表示するように、ディスプレイを制御する。
〈スケジュール設定データ、及び作業結果データ〉
本実施形態に係る監視統制システム1aは、例えば、ブロックチェーン技術を用い、スケジュール設定データ121a、及び作業結果データ122a−1〜122a−6を記憶している。スケジュール設定データ121aのデータ構造の一例を図20を参照して説明し、作業結果データ122a−1〜122a−6のデータ構造の一例を図21を参照して説明する。
図20に示されるように、ブロックチェーン20として記憶されるスケジュール設定データ121aは、複数のブロックを含む。例えば、ブロックチェーン20は、n−1番目のブロック21と、n番目のブロック22と、n+1番目のブロック23とが連結されている。
各ブロックには、ブロックヘッダと、スケジュール設定データ121aに対する履歴データとが含まれる。履歴データは、例えば、スケジュール設定データ121aへ新たに追加されたデータ、スケジュール設定データ121aから変更されたデータ、又はスケジュール設定データ121aから削除されたデータ等を含み得る。ブロックヘッダは、少なくともブロック番号、直前のブロックのブロックヘッダのハッシュ値、時刻情報、及び履歴データのマークルルートを含む。
具体的には、例えば、n−1番目のブロック21には、ブロックヘッダ211と、履歴データ212とが含まれる。ブロックヘッダ211は、ブロック21を識別可能なブロック番号2111を含む。また、ブロックヘッダ211は、n−2番目のブロックのブロックヘッダのハッシュ値2112を含む。また、ブロックヘッダ211は、当該ブロックを作成する時の時刻情報2113を含む。また、ブロックヘッダ211は、履歴データ212に関するハッシュ値である、マークルルート2114を含む。
履歴データ212は、例えば、図4で示されるレコードと同様、次のような情報を含み得る。すなわち、履歴データ212は、データ種類、レコード番号、ワークグループ、作業名、作業バージョン、繰返時間、制限回数、初回起動日時、稼働開始時刻、稼働終了時刻、稼働曜日、及び通知先の情報を含み得る。なお、履歴データ212に含まれる情報は、上述の一部でもよいし、その他の情報であってもよい。
また、n番目のブロック22には、ブロックヘッダ221と、履歴データ222とが含まれる。ブロックヘッダ221は、ブロック22を識別可能なブロック番号2211を含む。また、ブロックヘッダ221は、n−1番目のブロック21のブロックヘッダ211のハッシュ値2212を含む。また、ブロックヘッダ221は、ブロックが作成される時の時刻情報2213、及び履歴データ222のマークルルート2214を含む。
同様に、n+1番目のブロック23は、ブロック23を識別可能なブロック番号2311、n番目のブロック22のブロックヘッダ221のハッシュ値2312と、時刻情報2313と、履歴データ232のマークルルート2314とを含むブロックヘッダ231と、履歴データ232とを含む。
仮にn番目のブロック22の履歴データ222が変更されると、当該ブロック22の履歴データ222とマークルルート2214とが整合しないことになる。仮に履歴データ222に合わせてマークルルート2214を変更すると、次のn+1番目のブロック23に記録された直前ブロックのブロックヘッダのハッシュ値2312がn番目のブロック22のブロックヘッダ221のハッシュ値と整合しないことになる。このように、ブロックチェーン20に保存された履歴データの改変は、容易に発見され得る。これにより、ブロックチェーン技術を用いて記憶されているスケジュール設定データ121aの真正性は保証される。
なお、履歴データ212,222,232に追加、変更、削除等についての複数のデータが含まれている場合、マークルルート2114,2214,2314は、これらのアクションを纏めたハッシュ値となる。
図21に示されるように、ブロックチェーン30−1〜30−6としてそれぞれ記憶される作業結果データ122a−1〜122a−6は、複数のブロックを含む。ブロックチェーン30−1〜30−6の構造はそれぞれ同様であるため、ここでは、ブロックチェーン30−1をブロックチェーン30と称し説明する。なお、ここでは、監視統制システム1aを構成する信号処理装置10a−1〜10a−6の台数に合わせてブロックチェーンの数を6としているが、ブロックチェーンの数は6に限定されない。監視統制システム1aを構成する信号処理装置10aの数に合わせ、ブロックチェーンの数は任意に設定し得る。
ブロックチェーン30は、n−1番目のブロック31と、n番目のブロック32と、n+1番目のブロック33とが連結されている。各ブロックには、ブロックヘッダと、RPAアプリがジョブを実行することで作成される作業結果データアイテムが含まれる。ブロックヘッダは、少なくともブロック番号、直前のブロックのブロックヘッダのハッシュ値、時刻情報、及び作業結果データアイテムのマークルルートを含む。
具体的には、例えば、n−1番目のブロック31には、ブロックヘッダ311と、作業結果データアイテム312とが含まれる。ブロックヘッダ311は、ブロック31を識別可能なブロック番号3111、n−2番目のブロックのブロックヘッダのハッシュ値3112と、時刻情報3113と、作業結果データアイテム312のマークルルート3114とを含む。
作業結果データアイテム312は、例えば、図5〜図7で示されるレコードと同様、次のような情報を含み得る。すなわち、作業結果データアイテム312は、データ種類、スケジュール日付、スケジュールバージョン、端末名、レコード番号、ワークグループ、作業名、作業バージョン、作業開始日時、及び作業終了日時の情報を含み得る。なお、作業結果データアイテム312に含まれる情報は、上述の一部でもよいし、その他の情報であってもよい。
また、n番目のブロック32には、ブロックヘッダ321と、作業結果データアイテム322とが含まれる。ブロックヘッダ321は、ブロック32を識別可能なブロック番号3211、n−1番目のブロック31のブロックヘッダ311のハッシュ値3212、時刻情報3213、及び作業結果データアイテム322のマークルルート3214を含む。
同様に、n+1番目のブロック33は、ブロック33を識別可能なブロック番号3311、n番目のブロック32のブロックヘッダ321のハッシュ値3312と、時刻情報3313と、作業結果データアイテム332のマークルルート2314とを含むブロックヘッダ331と、作業結果データアイテム332とを含む。
なお、作業結果データアイテム312,322,332に複数の作業結果が含まれている場合、マークルルート3114,3214,3314は、これら複数の作業結果を纏めたハッシュ値となる。
なお、ここでは、各ブロックは、直前ブロックのブロックヘッダのハッシュ値を含むものとしたが、これに限らない。各ブロックは、例えば直前ブロック全体のハッシュ値を含んでいてもよい。つまり、各ブロックは、過去に保存したデータに基づいて算出された値であって、過去に保存したデータが変化したら変化する値を含んでいればよい。
〈監視統制システムにおける信号処理装置の動作〉
監視統制システム1aにおける信号処理装置10a−1〜10a−6の動作を説明する。なお、以下では、信号処理装置10−1〜10−6間でピア・ツー・ピア方式を利用したデータ通信が実施される場合を例に説明するが、データ通信が実施される装置の台数は6台に限定されない。
図22は、図18に示される監視統制システム1aにおいてスケジュール設定データ121aが共有される際の信号処理装置10a−1〜10a−6の動作の例を説明する図である。なお、図22では、信号処理装置10a−1に指示が入力される場合を例に説明する。
まず、信号処理装置10a−1に対して指示が入力される(ステップS221)。このとき、入力される指示は、例えば、新たなレコードデータの追加、既に存在するレコードデータにおける所定項目の変更、又は既に存在するレコードデータの削除等を含み得る。また、指示は、入力インタフェース13を介して操作者から入力されてもよいし、図示しない所定のサーバから入力されてもよい。
指示が入力されると、信号処理装置10a−1の記憶制御部111aは、指示に基づく履歴データを含むブロックを作成する(ステップS222)。具体的には、例えば、記憶制御部111aは、ブロック番号を設定し、前のブロックのブロックヘッダのハッシュ値を算出し、履歴データのマークルルートを算出する。このとき、ハッシュ関数として、例えば、RIPEMD−160、SHA−1、SHA−256/SHA−384/SHA−512等が用いられる。記憶制御部111aは、ブロック番号、ハッシュ値、現在の時刻を表す時刻情報、及びマークルルートをブロックヘッダに含める。記憶制御部111aは、ブロックヘッダと、取得した履歴データとを含め、ブロックを作成する。記憶制御部111aは、作成したブロックをブロックチェーンに追加する(ステップS223)。
作成したブロックをブロックチェーンに追加すると、信号処理装置10a−1の通信制御部113は、スケジュール設定データ121aが更新されたことを表す更新信号を予め設定されている送信先へ送信する(ステップS224)。更新信号には、例えば、データ種類、送信元のアドレス等が含まれ得る。
信号処理装置10a−2〜10a−6の通信制御部113は、更新信号を受信する。更新信号を受信すると、通信制御部113は、更新信号に含まれるデータ種別に基づき、スケジュール設定データ121aについて新たに作成したブロックの読出要求を、更新信号の送信元である信号処理装置10a−1へ送信する(ステップS225)。
信号処理装置10a−1の通信制御部113は、読出要求を受信する。読出要求を受信すると、通信制御部113は、作成したブロックについてのブロック情報を、読出要求を送信した信号処理装置10aへ送信する(ステップS226)。
信号処理装置10a−2〜10a−6のうち少なくともいずれかの信号処理装置10aの通信制御部113は、ブロック情報を受信する。ブロック情報を受信した信号処理装置10aの記憶制御部111aは、受信したブロック情報に基づき、信号処理装置10a−1が作成したブロックが正しいか否かを検証する(ステップS227)。正しさが検証された場合、記憶制御部111aは、ブロック情報に基づいてブロックを作成し(ステップS228)、作成したブロックをブロックチェーンに追加する(ステップS229)。正しさが検証されない場合、記憶制御部111aは、信号処理装置10a−1で作成されたブロックを承認しない。
信号処理装置10a−1〜10a−6の記憶制御部111aは、例えば、ブロックチェーンに連結されるブロックに、予め設定された数のブロックが直列して連結されると、予め設定された数のブロックが連結されたブロックに含まれる履歴が確定されたと判断してもよい。
なお、スケジュール設定データ121aを共有する際の信号処理装置10a−1〜10a−6の動作は図22に限定されない。例えば、信号処理装置10aの通信制御部113は、他の信号処理装置10aから送信されたブロックが承認された場合、つまり、ブロックチェーンに連結された場合、更新信号を予め設定されている信号処理装置10aへ送信してもよい。これにより、例えば、ネットワーク、又は信号処理装置10aのいずれかに問題が発生したとしても、最新のスケジュール設定データ121aが信号処理装置10a−1〜10a−6間で共有されることになる。
また、信号処理装置10aの通信制御部113は、読出要求を送信した後、予め設定した期間経過してもブロック情報が受信されない場合、異なる信号処理装置10aへ読出要求を送信してもよい。
また、記憶部12aに記憶されているスケジュール設定データ121aの更新は、信号処理装置10a−1への指示の入力をトリガとするものに限られない。信号処理装置10a−1の記憶制御部111aは、自装置内で新たなレコードデータが作成されたことをトリガとして、ブロックを作成してもよい。例えば、信号処理装置10a−1のRPA管理部112aは、ジョブ設定データに含まれる情報に基づき、新たなレコード番号が付されたレコードデータを作成する。RPA管理部112aによりレコードデータが作成されるタイミングは、所定の時刻でもよいし、操作者により指定されたときであってもよい。記憶制御部111aは、新たに作成されたレコードデータを含むようにブロックを作成する。
図23は、図18に示される監視統制システム1aにおいて作業結果データ122aが共有される際の信号処理装置10a−1〜10a−6の動作の例を説明する図である。なお、図23では、信号処理装置10a−1でRPAアプリがジョブを実行することで作業結果が作成される場合を例に説明する。
信号処理装置10a−1のRPA管理部112aは、記憶部12aに記憶されるスケジュール設定データ121aを参照し、カウントしている時刻が稼働開始時刻に達すると、RPAアプリへ起動指示を出す。起動指示を受けると、RPAアプリは設定されているジョブを実行する。RPAアプリは、実行したジョブが完了すると、結果通知をRPA管理部112aへ返す。結果通知を受けると、RPA管理部112aは、作業結果を作成する(ステップS231)。
信号処理装置10a−1の記憶制御部111aは、作成された作業結果に含まれるスケジュールバージョンを確認する(ステップS232)。記憶制御部111aは、作業結果データアイテムを含むブロックを作成する(ステップS233)。具体的には、例えば、記憶制御部111aは、ブロック番号を設定し、スケジュールバージョンが同一のブロックチェーンにおける前のブロックのブロックヘッダのハッシュ値を算出し、作業結果データアイテムのマークルルートを算出する。記憶制御部111aは、ブロック番号、ハッシュ値、現在の時刻を表す時刻情報、及びマークルルートをブロックヘッダに含める。記憶制御部111aは、ブロックヘッダと、取得した作業結果データアイテムとを含め、ブロックを作成する。記憶制御部111aは、作成したブロックを、スケジュールバージョンが同一のブロックチェーンに追加する(ステップS234)。
作成したブロックをブロックチェーンに追加すると、信号処理装置10a−1の通信制御部113は、作業結果データ122a−1が更新されたことを表す更新信号を予め設定されている送信先へ送信する(ステップS235)。更新信号には、例えば、データ種類、更新が最初に実行された端末名、送信元のアドレス等が含まれ得る。
信号処理装置10a−2〜10a−6の通信制御部113は、更新信号を受信する。更新信号を受信すると、信号処理装置10a−2〜10a−6の記憶制御部111aは、更新信号に含まれるデータ種別、及び端末名に基づき、作業結果データ122a−1について新たに作成したブロックの読出要求を、更新信号の送信元である信号処理装置10a−1へ送信する(ステップS236)。
信号処理装置10a−1の通信制御部113は、読出要求を受信する。読出要求を受信すると、通信制御部113は、作成したブロックについてのブロック情報を、読出要求を送信した信号処理装置10aへ送信する(ステップS237)。
信号処理装置10a−2〜10a−6のうち少なくともいずれかの信号処理装置10aの通信制御部113は、ブロック情報を受信する。ブロック情報を受信した信号処理装置10aの記憶制御部111aは、受信したブロック情報に基づき、信号処理装置10a−1が作成したブロックが正しいか否かを検証する(ステップS238)。具体的には、例えば、記憶制御部111aは、受信したブロック情報に含まれるスケジュールバージョンを確認する。記憶制御部111aは、信号処理装置10a−1についてのブロックチェーンのうち、スケジュールバージョンが同一のブロックチェーンについて、信号処理装置10a−1が作成したブロックが正しいか否かを検証する。正しさが検証された場合、記憶制御部111aは、ブロック情報に基づいてブロックを作成する(ステップS239)。記憶制御部111aは、作成したブロックを、信号処理装置10a−1についてのブロックチェーンのうち、スケジュールバージョンが同一のブロックチェーンに追加する(ステップS2310)。正しさが検証されない場合、記憶制御部111aは、信号処理装置10a−1で作成されたブロックを承認しない。
信号処理装置10a−1〜10a−6の記憶制御部111aは、例えば、ブロックチェーンに連結されるブロックに、予め設定された数のブロックが直列して連結されると、予め設定された数のブロックが連結されたブロックに含まれる履歴が確定されたと判断してもよい。
なお、作業結果データ122aを共有する際の信号処理装置10a−1〜10a−6の動作は図23に限定されない。例えば、信号処理装置10aの通信制御部113は、他の信号処理装置10aから送信されたブロックが承認された場合、つまり、ブロックチェーンに連結された場合、更新信号を予め設定されている信号処理装置10aへ送信してもよい。
また、信号処理装置10aの通信制御部113は、読出要求を送信した後、予め設定した期間経過してもブロック情報が受信されない場合、異なる信号処理装置10aへ読出要求を送信してもよい。
〈信号処理装置でのジョブ管理〉
本実施形態に係る信号処理装置10a−1〜10a−6は、スケジュール設定データ121a、及び作業結果データ122a−1〜122a−6等に基づき、ジョブの実行状況を管理する。信号処理装置10a−1〜10a−6は、管理している実行状況を操作者へ提示するため、例えば、図11〜図17で示されるジョブ管理画面140を出力インタフェース14としてのディスプレイに表示する。つまり、信号処理装置10a−1〜10a−6の表示制御部114aは、記憶部12aに記憶されているスケジュール設定データ121a、及び作業結果データ122a−1〜122a−6等を参照し、図11〜図17で示されるジョブ管理画面140を表示するように、ディスプレイを制御する。
以上のように、第2の実施形態では、監視統制システム1aは、人間がコンピュータを操作して業務を遂行する手順に基づいて構築されるRPAアプリがそれぞれインストールされた複数の信号処理装置10aを備える。複数の信号処理装置10aのそれぞれは、記憶制御部111aにより、RPAアプリの実行状況を管理するための管理データ121a,122aを、複数の信号処理装置10a間で互いに承認し合いながら記憶部12aに記憶する。複数の信号処理装置10aのそれぞれは、通信制御部113により、複数の信号処理装置10aと分散型ネットワークを形成し、管理データを複数の信号処理装置10a間で共有する。そして、複数の信号処理装置10aのそれぞれは、RPA管理部112により、管理データ121a,122aに基づいてRPAアプリにジョブを実行させるようにしている。これにより、どの信号処理装置10aも統制管理端末として使用することが可能となる。また、中央統制型運用とは異なり、中央統制端末がダウンしても運用を止めるリスクがなくなる。また、信号処理装置の動作を統括する統括サーバを設けなくてもよくなるため、システム導入の迅速化、及び導入コストの低下を期待することが可能となる。また、ブロックチェーン技術の利用により、管理データの改竄が困難となるようにしている。
また、第2の実施形態では、管理データは、スケジュール設定データ121aと、作業結果データ122aとを含む。そして、複数の信号処理装置10aのそれぞれは、記憶制御部111aにより、スケジュール設定データ121aと、作業結果データ122aとを、複数の信号処理装置10a間で互いに承認し合いながら別々に更新するようにしている。これにより、スケジュール設定データ121aと、作業結果データ122aとを別々に管理することが可能となり、セキュリティがより向上することになる。
また、第2の実施形態では、作業結果データ122aを、信号処理装置毎に記憶するようにしている。これにより、スケジュール設定データ121aにおいて所定の信号処理装置10aに対する変更があった場合、この信号処理装置10aと対応する作業結果データ122aのみを更新することが可能となる。つまり、信号処理装置10aの処理負荷を軽減することが可能となる。
また、第2の実施形態では、複数の信号処理装置10aのそれぞれは、監視部115により、作業結果データ122aの更新が共有されたか否かを監視するようにしている。これにより、故障した信号処理装置10aを検出することが可能となり、故障した信号処理装置10aの役割を、空いている予備端末に移すことが可能となる。すなわち、故障が発生した場合であっても、運用を停止せず、迅速に復旧することが可能となる。
また、上記第1及び第2の実施形態では、監視統制システム1,1aが信号処理装置10−1〜10−6,10a−1〜10a−6を備える分散型システムである場合を例に説明した。しかしながら、監視統制システム1,1aの構成はこれに限定されない。監視統制システム1,1aの一部は、中央集権型システムであってもよい。すなわち、監視統制システム1,1aは、分散型システムと、中央集権型システムとが混在したシステムであって構わない。このとき、監視統制システム1,1aは、少なくともいずれかの信号処理装置の動作を統括する統括サーバを備える。また、信号処理装置10−1〜10−6,10a−1〜10a−6それぞれが、統括サーバと通信する機能を有していても構わない。これにより、監視統制システム1,1aは、分散型システムとしても、中央集権型システムとしても利用可能となる。
以上説明した少なくとも1つの実施形態によれば、監視統制システム1,1aは、ソフトウェアロボットによるジョブの実行状況を監視し、ソフトウェアロボットを統制することができる。
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の発明が含まれており、開示される複数の構成要件から選択された組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、課題が解決でき、効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。