【課題】画面上の項目に設定値を設定することが不可能であるかないかを自動的に判定することにより、予め設定したたった1つの定義に基づいて、設定を実行することができる設定実行装置、設定実行方法および設定実行プログラムの提供を課題とする。
【解決手段】本実施形態では、(1)定義マスタにおける定義に従い、画面上の項目についての項目IDに対応する読込データ中の入力値を取得し、(2)前記画面上の前記項目に前記入力値を入力することが不可能であるかないかを識別するための文字列であって前記取得した入力値に対応する前記項目についてのものが、前記不可能であることを示すものであるかないかを判定し、(3)前記不可能であることを示すものではないと判定した場合、前記取得した入力値を前記画面上の前記項目に入力するという処理を、前記画面上の最初の前記項目から前記画面上の最後の前記項目までについて順に実行する。
【発明を実施するための形態】
【0016】
以下に、本発明に係る設定実行装置、設定実行方法および設定実行プログラムの実施形態を、図面に基づいて詳細に説明する。なお、本実施形態により本発明が限定されるものではない。
【0017】
[1.背景と概要]
まず、本発明の背景について
図2〜
図5を用いて説明し、本発明の概要について
図6〜
図7を用いて説明する。
【0018】
[1−1.本発明の背景]
近年、アプリケーション自動操作(RPA)の需要が高まっている。働き方改革等の動きもあり、定型作業の自動化が進んでいる。アプリケーションの自動操作には、例えば
図2に示すような定義の作成が必要となるが、その定義作成のしやすさや、想定の動きをしない際の調査のしやすさが求められている。
【0019】
ここで、アプリケーション自動操作においては、画面上の対象となる項目の状態が変化してしまうことがある。アプリケーション自動操作の際には、入力値は、一般的に、Excel、csv、txtおよびxml等のデータファイルから読み込みを行う。このため、同じ定義であっても入力値を変えることが可能であるが、アプリケーションによっては、その入力値によって他の項目の状態(例えば、入力可能かどうか等)が変化することがある。具体的に、
図3には、項目Aの値によって他の項目の状態が変わる例を示している。
図3の(X)では、項目Aとして左のラジオボタンを選択すると、項目Bも項目Cも入力可能となる。
図3の(Y)では、項目Aとして真ん中のラジオボタンを選択すると、項目Bは入力不可(読取専用項目)となり、項目Cは入力可能となる。
図3の(Z)では、項目Aとして右のラジオボタンを選択すると、項目Bは入力可能となり、項目Cは入力不可(非表示項目)となる。
【0020】
従来の自動操作技術においては、前段落で説明したようなある項目の入力値によって他の項目の状態が変化するという実装に対応するためには、画面項目の状態ごとに
図4に示すように自動操作を定義する必要があった。例えば、
図3の(X)のパターンに対応するためには、
図4に定義1で示すように「Aに値をセット、Bに値をセット、Cに値をセット」という定義を作成する必要があり、
図3の(Y)のパターンに対応するためには、
図4に定義2で示すように「Aに値をセット、Bはスキップ、Cに値をセット」という定義を作成する必要があり、
図3の(Z)のパターンに対応するためには、
図4に定義3で示すように「Aに値をセット、Bに値をセット、Cはスキップ」という定義を作成する必要があった。しかしながら、このように画面項目の状態ごとに定義を作成するのは、定義作成の難易度が高く、かつ、そのパターンの定義も煩雑になってしまうという問題があった。本段落で説明した課題を、課題1とする。
【0021】
また、従来の自動操作技術においては、本発明の主たる課題ではないが、画面項目の状態等に起因して自動操作が止まった場合、何が原因で失敗しているか分かりにくいため、定義の保守に多大なコストがかかってしまうという問題があった。例えば、
図5に示すように、項目Bに値をセットする旨が定義されているが項目Bが読取専用項目である場合には、項目Bへの値のセットは失敗し自動操作は停止する。従来においては、項目Bへの値のセットが失敗したこと自体はわかっても、失敗の原因(=項目Bが読取専用項目であるために値の設定が失敗した)まではわからなかった。本段落で説明した課題を、課題2とする。
【0022】
[1−2.本発明の概要]
そこで、本実施形態においては、前記課題1を解決するために、例えば、
図6に示すように、操作対象の項目の状態(非表示や読取専用等)やセットする値を判断し、操作を行うべきか等のオペレーションを自動で変更できるようにした。これにより、1つの自動操作定義(
図6では、「Aに値をセット、Bに値をセット、Cに値をセット」という定義)を作成するのみで、多くの入力パターンに対応できるようになる。
【0023】
また、本実施形態においては、前記課題2を解決するために、例えば、操作対象の項目の状態(非表示や読取専用等)を判断し、操作をスキップした場合の理由や、操作に失敗した場合の原因をログに残せるようにした。つまり、
図7に示すように、自動操作の判定結果をログとして残せるようにした。これにより、失敗原因がわかるので、自動操作の定義の保守がしやすくなる。以下、具体的な構成および動作について説明する。
【0024】
[2.構成]
本実施形態に係る設定実行装置100の構成の一例について、
図1を参照して説明する。
図1は、設定実行装置100の構成の一例を示すブロック図である。
【0025】
設定実行装置100は、市販のデスクトップ型パーソナルコンピュータである。なお、設定実行装置100は、デスクトップ型パーソナルコンピュータのような据置型情報処理装置に限らず、市販されているノート型パーソナルコンピュータ、PDA(Personal Digital Assistants)、スマートフォン、タブレット型パーソナルコンピュータなどの携帯型情報処理装置であってもよい。
【0026】
設定実行装置100は、制御部102と通信インターフェース部104と記憶部106と入出力インターフェース部108と、を備えている。設定実行装置100が備えている各部は、任意の通信路を介して通信可能に接続されている。
【0027】
通信インターフェース部104は、ルータ等の通信装置および専用線等の有線または無線の通信回線を介して、設定実行装置100をネットワーク300に通信可能に接続する。通信インターフェース部104は、他の装置と通信回線を介してデータを通信する機能を有する。ここで、ネットワーク300は、設定実行装置100とサーバ200とを相互に通信可能に接続する機能を有し、例えばインターネットやLAN(Local Area Network)等である。なお、後述する各種マスタ等のデータは、例えばサーバ200に格納されてもよい。
【0028】
入出力インターフェース部108には、入力装置112および出力装置114が接続されている。出力装置114には、モニタ(家庭用テレビを含む)の他、スピーカやプリンタを用いることができる。入力装置112には、キーボード、マウス、及びマイクの他、マウスと協働してポインティングデバイス機能を実現するモニタを用いることができる。なお、以下では、出力装置114をモニタ114とし、入力装置112をキーボード112またはマウス112として記載する場合がある。
【0029】
記憶部106には、各種のデータベース、テーブルおよびファイルなどが格納される。記憶部106には、OS(Operating System)と協働してCPU(Central Processing Unit)に命令を与えて各種処理を行うためのコンピュータプログラムが記録される。記憶部106として、例えば、RAM(Random Access Memory)・ROM(Read Only Memory)等のメモリ装置、ハードディスクのような固定ディスク装置、フレキシブルディスク、および光ディスク等を用いることができる。
【0030】
記憶部106は、例えば、読込データ106aと、定義マスタ106bと、を備えている。
【0031】
読込データ106aは、
図19に示すように、例えば、画面上の項目を識別するための項目識別データ(項目ID)と、前記項目に設定するべき設定値(入力値)と、等を対応付けて含む。例えば、
図19の読込データ106aは、項目「操作モード」に設定するべき設定値として「新規」を含み、項目「事業所」に設定するべき設定値として「TKY」を含み、項目「発生日」に設定するべき設定値として「2019/02/15」を含む。
【0032】
定義マスタ106bは、
図19に示すように、画面上の項目のすべてに対して、対応する前記設定値を設定するべき旨を定義する。例えば、
図19の定義マスタ106bにおいては、項目「操作モード」に設定値を設定するべき旨「操作モードのコンボボックスに値をセット」が定義され、項目「事業所」に設定値を設定するべき旨「事業所のテキストボックスに値をセット」が定義され、項目「発生日」に設定値を設定するべき旨「発生日のテキストボックスに値をセット」が定義されている。つまり、すべての項目「操作モード」、「事業所」および「発生日」に対して、対応する前記設定値を設定するべき旨が定義されている。本発明においては、このように、予めたった1つの定義(=すべての項目に対して、設定値をセットするべき旨が定義された定義)のみを作成しておけばよいため、従来のように項目の状態ごとの定義を作成する(=複数の定義を作成する)必要がない。
【0033】
制御部102は、設定実行装置100を統括的に制御するCPU等である。制御部102は、OS等の制御プログラム・各種の処理手順等を規定したプログラム・所要データなどを格納するための内部メモリを有し、格納されているこれらのプログラムに基づいて種々の情報処理を実行する。
【0034】
制御部102は、機能概念的に、例えば、(1)前記定義マスタにおける定義に従い、前記画面上の前記項目についての前記項目識別データに対応する前記読込データ中の設定値を取得する取得手段としての取得部102aと、(2)前記画面上の前記項目に前記設定値を設定することが不可能であるかないかを識別するための設定可否識別情報であって前記取得手段で取得した設定値に対応する前記項目についてのものが、前記不可能であることを示すものであるかないかを判定する判定手段としての判定部102bと、(3)前記判定手段で前記不可能であることを示すものではないと判定した場合、前記取得手段で取得した設定値を前記画面上の前記項目に設定する設定手段としての設定部102cと、(4)前記判定手段で前記不可能であることを示すものであると判定した旨または前記同じ値が設定済であると判定した旨を前記項目単位で含むログを生成するログ生成手段としてのログ生成部102dと、を備えている。
【0035】
取得部102aは、定義マスタ106bにおける定義に従い、画面上の項目についての項目識別データ(項目ID)に対応する読込データ106a中の設定値(入力値)を取得する。
【0036】
判定部102bは、前記画面上の前記項目に前記設定値を設定することが不可能であるかないかを識別するための設定可否識別情報であって取得部102aで取得した設定値に対応する前記項目についてのものが、前記不可能であることを示すものであるかないかを判定する。前記画面上の前記項目に前記設定値を設定することが不可能であることを示す設定可否識別情報とは、例えば、前記項目が非表示項目であることを示す情報(display:noneおよびvisibility:hidden等の文字列)、または、前記項目が読取専用項目であることを示す情報(disabled="disabled"およびreadonly="readonly"等の文字列)である。
【0037】
なお、判定部102bは、前記不可能であることを示すものではないと判定した場合、更に、前記項目に設定するべき設定値と同じ値が前記項目に設定済であるかないかを判定してもよい。
【0038】
設定部102cは、判定部102bで前記不可能であることを示すものではないと判定した場合、取得部102aで取得した設定値を前記画面上の前記項目に設定する。
【0039】
なお、設定部102cは、判定部102bで前記不可能であることを示すものではないと判定し、かつ、前記同じ値が設定済でないと判定した場合に、取得部102aで取得した設定値を前記画面上の前記項目に設定してもよい。
【0040】
取得部102a、判定部102bおよび設定部102cは、それぞれ、前記取得、前記判定および前記設定を、前記画面上の最初の前記項目から前記画面上の最後の前記項目までについて順に実行する。
【0041】
ログ生成部102dは、判定部102bで前記不可能であることを示すものであると判定した旨または前記同じ値が設定済であると判定した旨を前記項目単位で含むログを生成する。
【0042】
[3.処理の概要]
本項目では、本実施形態に係る処理の概要を、
図8を用いて説明する。
【0043】
取得部102aは、定義マスタ106bにおける定義「Aに値をセット」の定義に従い、画面上の項目Aについての項目IDに対応する読込データ106a中の入力値として、値「001」を取得する。
【0044】
以下、当該取得した値「001」の項目Aへの設定が成功する場合と失敗する場合とに分けて、判定部102b、設定部102cおよびログ生成部102dが行う処理について
図8のフローチャートに沿って説明する。
【0045】
(1)取得した値「001」の項目Aへの設定が成功する場合
判定部102bは、まず、項目Aが非表示項目かどうかを判定する(
図8のステップS1)。非表示項目ではないと判定した場合(
図8のステップS1:No)、判定部102bは、次に、項目Aが読取専用項目かどうかを判定する(
図8のステップS2)。読取専用項目ではないと判定した場合(
図8のステップS2:No)、判定部102bは、項目Aに設定するべき設定値「001」と同じ値「001」が、項目Aにセット済かどうかを判定する(
図8のステップS3)。セット済ではないと判定した場合(
図8のステップS3:No)、設定部102cは、取得部102aで取得した設定値「001」を項目Aに設定する。以上の処理により、設定部102cは、取得した値「001」の項目Aへの設定を成功し、ログ生成部102dは、「値セット Aに[001]を入力しました。」のログを生成する(
図8のステップS4)。
【0046】
(2)取得した値「001」の項目Aへの設定が失敗する場合
判定部102bが、項目Aが非表示項目であると判定した場合(
図8のステップS1:Yes)、設定部102cは、取得した値「001」の項目Aへの設定を失敗し、ログ生成部102dは、「スキップ Aは非表示項目です。」のログを生成する(
図8のステップS5)。
【0047】
判定部102bが、項目Aが読取専用項目であると判定した場合(
図8のステップS2:Yes)、設定部102cは、取得した値「001」の項目Aへの設定を失敗し、ログ生成部102dは、「スキップ Aは読取専用項目です。」のログを生成する(
図8のステップS6)。
【0048】
判定部102bが、項目Aに設定するべき設定値「001」と同じ値「001」が、項目Aにセット済であると判定した場合(
図8のステップS3:Yes)、設定部102cは、取得した値「001」の項目Aへの設定を失敗し、ログ生成部102dは、「スキップ Aは同じ値で変更済みです。」のログを生成する(
図8のステップS7)。
【0049】
(3)項目Aの次の項目以降の処理について
そして、取得部102a、判定部102b、設定部102cおよびログ生成部102dは、画面上における項目Aの次の項目から画面上における最後の項目までについて、本項目[3.処理の概要]で説明した処理と同様の処理を行う。
【0050】
以上、本項目[3.処理の概要]で説明したように、本実施形態に係る設定実行装置100によれば、例えば、操作前に対象項目の状態を取得し、処理を分岐させることができる。言い換えると、処理を行う前に、操作対象項目の状態(非表示や読取専用等)を取得し、操作をスキップする等の判断を行うことができる。
【0051】
[4.処理の詳細]
本項目では、本実施形態に係る処理の詳細を、主に、
図8、
図10〜
図17を用いて説明する。本項目では、Webにおいてテキストボックスへの値のセット処理を行うという場面において、画面上のテキストボックスへの値のセットに先立ち行うチェック(実行前チェック)を[4−1]で説明し、画面上のテキストボックスへの値のセット(実行処理)を[4−2]で説明する。
【0052】
なお、本項目においては、Webにおける「テキストボックスの値入力処理」(
図18に●印で示す)を実行する場合における実行前チェックおよび実行処理について説明するが、本発明で扱うことが可能な処理は、当処理に限定されず、例えば、
図18の表に示す処理であってもよい。
【0053】
[4−1.実行前チェック]
(1)対象のテキストボックスが非表示項目かどうかの判定
判定部102bは、操作対象のプロパティと親のプロパティを見て、操作対象のテキストボックスが非表示かどうかを判定する(
図8のステップS1に相当)。具体的には、
図15の(A)に示すように操作対象がdisplay:noneの場合、
図15の(B)に示すように操作対象がvisibility:hiddenの場合、
図15の(C)に示すように操作対象の親の要素がdisplay:noneの場合、または、
図15の(D)に示すように操作対象の親の要素がvisibility:hiddenの場合、操作対象のテキストボックスが非表示であると判定する(
図8のステップS1:Yesに相当)。
【0054】
そして、判定部102bが操作対象のテキストボックスが非表示であると判定し、かつ、セット値(読込データ106a中の設定値を指す。以下同じ。)が未指定の場合、ログ生成部102dは
図10の(A)に示すログを出力して、設定部102cは処理をスキップする。
【0055】
これに対して、判定部102bが操作対象のテキストボックスが非表示であると判定し、かつ、セット値が指定されている場合、ログ生成部102dは
図10の(B)に示すログを出力して、設定部102cは処理をスキップする。
【0056】
(2)対象のテキストボックスが読取専用項目かどうかの判定
判定部102bは、操作対象のテキストボックスが非表示ではないと判定した場合(
図8のステップS1:Noに相当)、操作対象のプロパティと親のプロパティを見て、操作対象のテキストボックスが読取専用かどうかを判定する(
図8のステップS2に相当)。具体的には、
図16の(A)に示すように操作対象がdisabled="disabled"の場合、
図16の(B)に示すように操作対象がreadonly="readonly"の場合、
図16の(C)に示すように操作対象の親の要素がdisabled="disabled"の場合、または、
図16の(D)に示すように操作対象の親の要素がreadonly="readonly"の場合、操作対象のテキストボックスが読取専用であると判定する(
図8のステップS2:Yesに相当)。
【0057】
そして、判定部102bが操作対象のテキストボックスが読取専用であると判定し、かつ、セット値が未指定の場合、ログ生成部102dは
図11の(A)に示すログを出力して、設定部102cは処理をスキップする。
【0058】
これに対して、判定部102bが操作対象のテキストボックスが読取専用であると判定し、かつ、セット値が指定されている場合、ログ生成部102dは
図11の(B)に示すログを出力して、設定部102cは処理をスキップする。
【0059】
(3)セット値が未指定かどうかの判定
判定部102bは、操作対象のテキストボックスが非表示ではなく(
図8のステップS1:Noに相当)、かつ、操作対象のテキストボックスが読取専用ではないと判定した場合(
図8のステップS2:Noに相当)、セット値が未指定かどうかを判定する。未指定の場合、ログ生成部102dは
図12に示すログを出力して、設定部102cは処理をスキップする。
【0060】
(4)テキストボックスが、既にセットしようとする値になっているかどうかの判定
判定部102bは、操作対象のテキストボックスが非表示ではなく(
図8のステップS1:Noに相当)、操作対象のテキストボックスが読取専用ではなく(
図8のステップS2:Noに相当)、かつ、セット値が未指定でははいと判定した場合、操作対象のプロパティを見て、テキストボックスが、既にセットしようとする値になっているかどうかを判定する(
図8のステップS3に相当)。具体的には、
図17に示すように、操作対象がvalue="テスト123"となっており、かつ、「テスト123」をセットしようとしている場合、判定部102bは、既に同じ値がセットされていると判定する(
図8のステップS3:Yesに相当)。この場合、ログ生成部102dは
図13に示すログを出力して、設定部102cは処理をスキップする。
【0061】
[4−2.実行処理]
(1)値のセットに成功する場合
判定部102bが、操作対象のテキストボックスが非表示ではなく(
図8のステップS1:Noに相当)、操作対象のテキストボックスが読取専用ではなく(
図8のステップS2:Noに相当)、セット値が未指定でははく、かつ、テキストボックスが既にセットしようとする値になってはいないと判定した場合(
図8のステップS3:Noに相当)、ログ生成部102dは
図14の(A)に示すログを出力して、設定部102cはテキストボックスに値をセットして(=値のセットに成功して)処理を終了する。
【0062】
(2)値のセットに失敗する場合
判定部102bが、[4−1.実行前チェック]で説明したように処理をスキップした場合、ログ生成部102dは
図14の(B)に示すログを出力して、設定部102cはテキストボックスに値をセットせずに(=値のセットに失敗して)処理を終了する。
【0063】
[5.本実施形態のまとめ]
このように、本実施形態に係る設定実行装置100によれば、画面上の項目に設定値を設定することが不可能であるかないかを自動的に判定することにより、予め設定したたった1つの定義に基づいて、設定を実行することができる。本実施形態に係る設定実行装置100は、例えば、パソコン画面上において、膨大な数の項目に値の入力や設定を行う場合(例えば、伝票入力を行う場合)において極めて有用である。
【0064】
ここで、アプリケーション自動操作時に操作方法の自動判断をするためには、従来においては、以下の1〜2の対応および問題点が存在した。
1.画面項目の状態ごとに自動操作を定義する必要があった。これに起因して、従来においては、定義作成の難易度が高く、そのパターンの定義も煩雑になってしまうという問題があった。
2.画面項目の状態等に起因して自動操作が止まった場合、原因が分かりにくかった。これに起因して、従来においては、失敗の原因調査や定義の保守に多大なコストがかかるという問題があった。
【0065】
そこで、本実施形態においては、前記「1.」に記載した問題を解決するために、例えば、操作対象の項目の状態(非表示や読取専用等)やセットする値を自動判断し、操作を行うべきかどうか等のオペレーションを自動で変更できるようにした。これにより、例えば、自動定義作成の際に画面項目の状態を考慮する必要がなくなり、1つの自動操作定義で多くの入力パターンに対応できるようになった。すなわち、本実施形態においては、簡便にかつ低コストで自動操作定義を作成できるようになった。
【0066】
また、本実施形態においては、前記「2.」に記載した問題を解決するために、例えば、
図9に示すように自動判断した結果や不適切な操作をログに残すため、自動操作が意図しない動きをした場合に原因の調査がしやすく、結果として、簡便にかつ低コストで自動操作定義の保守をできるようになった。
【0067】
[6.他の実施形態]
本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
【0068】
例えば、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【0069】
また、本明細書中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
【0070】
また、設定実行装置100に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
【0071】
例えば、設定実行装置100が備える処理機能、特に制御部にて行われる各処理機能については、その全部または任意の一部を、CPUおよび当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、本実施形態で説明した処理を情報処理装置に実行させるためのプログラム化された命令を含む一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて設定実行装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部などには、OSと協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
【0072】
また、このコンピュータプログラムは、設定実行装置100に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
【0073】
また、本実施形態で説明した処理を実行するためのプログラムを、一時的でないコンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USB(Universal Serial Bus)メモリ、SD(Secure Digital)カード、フレキシブルディスク、光磁気ディスク、ROM、EPROM(Erasable Programmable Read Only Memory)、EEPROM(登録商標)(Electrically Erasable and Programmable Read Only Memory)、CD−ROM(Compact Disk Read Only Memory)、MO(Magneto−Optical disk)、DVD(Digital Versatile Disk)、および、Blu−ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
【0074】
また、「プログラム」とは、任意の言語または記述方法にて記述されたデータ処理方法であり、ソースコードまたはバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OSに代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成および読み取り手順ならびに読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
【0075】
記憶部に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
【0076】
また、設定実行装置100は、既知のパーソナルコンピュータまたはワークステーション等の情報処理装置として構成してもよく、また、任意の周辺装置が接続された当該情報処理装置として構成してもよい。また、設定実行装置100は、当該装置に本実施形態で説明した処理を実現させるソフトウェア(プログラムまたはデータ等を含む)を実装することにより実現してもよい。
【0077】
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じてまたは機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。