(57)【要約】【課題】デバイス管理に係る処理を自動的に行うための自動化プログラムの生成におけるユーザの負担を軽減する。【解決手段】デバイス３０とこのデバイスを管理するための画面を表示してユーザからの操作を受け取る端末４０との間の通信を仲介可能な位置に設けられた装置１００において、デバイスから端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込み（１０６）、管理画面を介して受け取ったユーザからの操作を端末からデバイスへ伝えるための通信に伴って、該操作の情報及びユーザインタフェースを介して行われた該操作の意味付けの情報を収集する（１０７，１０８）。そして、サーバ２００において、これらの情報を複数の装置１００から収集し（２０２）、複数の操作の情報を該操作の情報と共に収集された意味付けの情報に従って組み合わせることにより、自動化プログラムを生成する（２０３，２０４）。【選択図】図５
2018205897.tif 000002
【特許請求の範囲】
【請求項１】
デバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられ、デバイス管理に係る処理を自動的に行うための自動化プログラムの生成に寄与する装置であって、
前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込む手段と、
前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集して記録する手段とを備え、
前記自動化プログラムは、記録された複数の前記操作の情報を、該操作の情報と共に記録された前記意味付けの情報に従って組み合わせることにより、生成されるものであることを特徴とする装置。
【請求項２】
前記意味付けは、一つの前記処理に属する複数の操作に対して一つの操作名を対応付けることにより、行われるものであり、
前記ユーザインタフェースは、前記操作を受け取るための前記管理画面に、操作名の候補を表示して、前記ユーザに前記操作名を選択させる構成を含むものであることを特徴とする請求項１に記載の装置。
【請求項３】
前記管理画面を介して前記ユーザからの操作を複数受け取ることに代えて、前記自動化プログラムを実行することにより、該複数の操作を前記デバイスへ伝えるための通信を作り出す手段をさらに備えることを特徴とする請求項１又は２に記載の装置。
【請求項４】
前記意味付けは、前記操作がフィールドに値を入力するものである場合に、該フィールドの意味を定義することにより、行われるものであり、
前記ユーザインタフェースは、前記操作を受け取るための前記管理画面に、フィールドの意味の候補を表示して、前記ユーザに前記フィールドの意味を選択させる構成を含むものであることを特徴とする請求項１〜３のいずれか１項に記載の装置。
【請求項５】
前記操作がフィールドに値を入力するものである場合に、該フィールドの意味に対応付けて、デバイス毎に異なり得る値を記憶する手段と、
前記管理画面を介して前記ユーザからのフィールドへの入力値を含む操作を受け取ることに代えて、前記自動化プログラムを実行することにより、該操作を前記デバイスへ伝えるための通信を、該デバイスについて該フィールドの意味に対応付けて記憶されている前記値を用いて作り出す手段とをさらに備えることを特徴とする請求項１〜４のいずれか１項に記載の装置。
【請求項６】
前記意味付けは、一つの前記処理に属する複数の操作として一連の複数の前記管理画面に亘る操作が対応付けられるように、行われ得るものであり、
前記ユーザインタフェースは、前記操作を受け取るための前記管理画面に、前記一連の画面の開始と終了を前記ユーザが指定できるような表示を行うものであることを特徴とする請求項１〜５のいずれか１項に記載の装置。
【請求項７】
前記デバイスとして、異なる型の複数のデバイスが存在し、ある型のデバイスの管理画面と別の型のデバイスの管理画面は、異なる構成を有し得るものであり、
前記ユーザインタフェースは、ある型のデバイスに対する操作と別の型のデバイスに対する操作に、同一の意味付けを与えられるように作成されたものであることを特徴とする請求項１〜６のいずれか１項に記載の装置。
【請求項８】
前記操作がフィールドに値を入力するものである場合に、該フィールドの意味を定義することにより、前記意味付けが行われるものであり、
前記ユーザインタフェースは、ある操作におけるフィールドと別の操作におけるフィールドとが、異なる表現で示されていても、同一の意味付けを与えることができるように作成されたことを特徴とする請求項１〜７のいずれか１項に記載の装置。
【請求項９】
前記端末として、異なるユーザに使用される複数の端末が存在し、同一の操作に対してあるユーザにより記録された意味付けの情報と別のユーザにより記録された意味付けの情報が、異なり得るものであり、
前記自動化プログラムの生成は、同一の操作に対する異なる意味付けの情報それぞれの記録の多寡に応じて組み合わせるべき複数の操作の情報を決定することにより、行われることを特徴とする請求項１〜８のいずれか１項に記載の装置。
【請求項１０】
複数の前記装置のそれぞれで記録された前記操作の情報及び前記意味付けの情報に基づいて前記自動化プログラムを生成するサーバへ向けて、前記操作の情報及び前記意味付けの情報を送信する手段をさらに備え、
複数の前記装置は、それぞれ異なるユーザに使用されるものであり、
前記自動化プログラムの生成は、同一の操作に対する異なる意味付けの情報それぞれの記録の多寡に応じて組み合わせるべき複数の操作の情報を決定することにより、行われることを特徴とする請求項１〜９のいずれか１項に記載の装置。
【請求項１１】
前記自動化プログラムの生成は、一つの前記処理に属する複数の操作として不要な操作を含めて該処理に対応する意味付けを行ったユーザによる記録と、一つの前記処理に属する複数の操作として必要な操作を含めずに該処理に対応する意味付けを行ったユーザによる記録と、一つの前記処理に属する複数の操作に対して該処理とは異なる処理に対応する意味付けを行ったユーザによる記録と、一つの前記処理に属する一つ以上の操作に対して該操作の意味とは異なる意味付けを行ったユーザによる記録のうち、少なくとも一つを除外して、行われることを特徴とする請求項１〜１０のいずれか１項に記載の装置。
【請求項１２】
前記ユーザインタフェースは、前記操作を受け取るための前記管理画面に、前記操作の意味付けを支援するための情報を表示して、前記ユーザに前記操作の意味付けを促す構成を含み、
前記支援のための情報を作成するために参照する情報を記憶する手段をさらに備えることを特徴とする請求項１〜１１のいずれか１項に記載の装置。
【請求項１３】
前記参照する情報を、複数のユーザから得られた意味付けの情報に基づいて更新する手段をさらに備えることを特徴とする請求項１２に記載の装置。
【請求項１４】
前記支援のための情報が、同一の操作に対して複数のユーザから得られる意味付けの情報が同一になるように作成されることを特徴とする請求項１２又は１３に記載の装置。
【請求項１５】
前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信を、該デバイスへ向けて送信する手段と、
前記自動化プログラムを実行することにより、前記処理に属する複数の操作を前記デバイスへ伝えるための通信を作り出して、該通信を該デバイスへ向けて送信する手段とをさらに備えることを特徴とする請求項１〜１４のいずれか１項に記載の装置。
【請求項１６】
前記デバイスから前記端末への管理画面表示のための通信に、前記処理を指定して前記自動化プログラムの実行を開始させるためのユーザインタフェースを埋め込む手段をさらに備え、
前記管理画面を介してユーザから処理が指定されると、該処理を自動的に行うための前記自動化プログラムの実行を開始することを特徴とする請求項１〜１５のいずれか１項に記載の装置。
【請求項１７】
前記自動化プログラムの実行が自動的に開始されるべき条件を設定する手段をさらに備え、
前記条件が満たされると、前記自動化プログラムの実行を開始することを特徴とする請求項１〜１６のいずれか１項に記載の装置。
【請求項１８】
複数の前記装置のそれぞれで記録された前記操作の情報及び前記意味付けの情報に基づいて前記自動化プログラムを生成するサーバから、前記自動化プログラムを受信する手段をさらに備えることを特徴とする請求項１〜１７のいずれか１項に記載の装置。
【請求項１９】
前記操作の情報は、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信の内容を含むものであることを特徴とする請求項１〜１８のいずれか１項に記載の装置。
【請求項２０】
前記操作の情報は、前記管理画面に対してユーザが行った画面操作の内容を含むものであることを特徴とする請求項１〜１９のいずれか１項に記載の装置。
【請求項２１】
前記端末に組み込まれるものであることを特徴とする請求項１〜２０のいずれか１項に記載の装置。
【請求項２２】
前記端末とは別個であり、複数の前記端末に接続されることを特徴とする請求項１〜２０のいずれか１項に記載の装置。
【請求項２３】
それぞれがデバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられた複数の装置に接続されるサーバであって、
前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込んで、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集する前記装置から、該操作の情報及び該意味付けの情報を受信する手段と、
受信した複数の前記操作の情報を、該操作の情報と共に受信された前記意味付けの情報に従って組み合わせることにより、デバイス管理に係る処理を自動的に行うための自動化プログラムを生成する手段とを備えることを特徴とするサーバ。
【請求項２４】
前記自動化プログラムを実行することにより、前記処理に属する複数の操作を前記デバイスへ伝えるための通信を作り出して、該通信を該デバイスへ向けて送信する前記装置に対し、生成した前記自動化プログラムを配信する手段をさらに備えることを特徴とする請求項２３に記載のサーバ。
【請求項２５】
デバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられたコンピュータに、少なくとも一部がインストールされて、デバイス管理に係る処理を自動的に行うための自動化プログラムの生成に寄与するプログラムであって、
前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込むプログラムコードと、
前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集して記録するプログラムコードとを備え、
前記自動化プログラムは、記録された複数の前記操作の情報を、該操作の情報と共に記録された前記意味付けの情報に従って組み合わせることにより、生成されるものであることを特徴とするプログラム。
【請求項２６】
それぞれがデバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられた複数の装置に接続されるサーバコンピュータに、少なくとも一部がインストールされるプログラムであって、
前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込んで、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集する前記装置から、該操作の情報及び該意味付けの情報を受信するプログラムコードと、
受信した複数の前記操作の情報を、該操作の情報と共に受信された前記意味付けの情報に従って組み合わせることにより、デバイス管理に係る処理を自動的に行うための自動化プログラムを生成するプログラムコードとを備えることを特徴とするプログラム。
【請求項２７】
デバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられた装置において、前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込み、
前記装置において、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集し、収集した情報を複数の前記装置に接続されるサーバへ送信し、
前記サーバにおいて、受信した複数の前記操作の情報を、該操作の情報と共に受信された前記意味付けの情報に従って組み合わせることにより、デバイス管理に係る処理を自動的に行うための自動化プログラムを生成することを特徴とする方法。
【請求項２８】
請求項２７に係る方法を実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバイス管理に係る処理を自動的に行うための自動化プログラムを生成する技術に関する。
【背景技術】
【０００２】
現在、ＩｏＴ（Ｉｎｔｅｒｎｅｔ  ｏｆ  Ｔｈｉｎｇｓ）デバイスを不正操作する攻撃が増加し、問題になっている。例えば、２０１６年１０月の時点で、ウイルスに感染しているＩｏＴデバイスが、１３０万台も存在するという調査報告がある（ｈｔｔｐ：／／ｗｗｗ．ｔｏｋｙｏ−ｎｐ．ｃｏ．ｊｐ／ａｒｔｉｃｌｅ／ｎａｔｉｏｎａｌ／ｌｉｓｔ／２０１６１２／ＣＫ２０１６１２０１０２０００２５５．ｈｔｍｌ）。このようなウイルスに感染したＩｏＴデバイスが攻撃の踏み台にされると、例えば、２０１６年にアメリカでＴｗｉｔｔｅｒ（登録商標）やＳｐｏｔｉｆｙ（登録商標）等のサービスに長時間にわたって障害が発生した事例のように（ｈｔｔｐ：／／ｗｗｗ．ｉｔｍｅｄｉａ．ｃｏ．ｊｐ／ｎｅｗｓ／ａｒｔｉｃｌｅｓ／１６１０／２２／ｎｅｗｓ０２４．ｈｔｍｌ）、広範囲に影響が及ぶ事態を招くことになる。
【０００３】
ＩｏＴデバイスがウイルスの攻撃対象になる原因は、ＩｏＴデバイスの不適切な管理にあると考えられている。不適切な管理とは、初期パスワードが変更されていないことや、ファームウェアが更新されていないこと等を指す。このような設定変更は、デバイスに付属している説明書や公式ホームページに従って、デバイスの管理者（ユーザ）が操作を行えばよいが、実際には操作が行われていないデバイスが多く存在し、攻撃者の攻撃対象になっている。
【０００４】
ＩｏＴデバイスの管理は、多くの場合、ユーザが使用する端末にウェブ画面を表示して、ユーザにチェックボックスにチェックさせたり、ボタンを押下させたり、入力フィールドへ値を入力させたりする（ＩｏＴデバイスが、ウェブサーバの機能を有する）ことにより、行われる。
【０００５】
一方、ウェブ画面においてユーザによって行われる操作を自動化プログラムで代行させるための技術として、ユーザ自身が自動化プログラムを作成するためのｉＭａｃｒｏｓというツール（ｈｔｔｐ：／／ｗｗｗ．ｋｏｉｋｉｋｕｋａｎ．ｃｏｍ／ａｒｃｈｉｖｅｓ／２０１４／０５／１５−０２３３３３．ｐｈｐ）が知られている。また、ユーザ操作を受けてウェブサーバとの間で行われた通信シーケンスと同一の画面遷移を生じさせる通信シーケンスを自動的に実行するプログラムを、半自動的に生成するための技術（特許文献１）が提案されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−８７０３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＩｏＴデバイスの適切な管理を妨げている原因としては、一人のユーザが管理しなければならないＩｏＴデバイスの数が従来よりも格段に多くなってきていることと、情報機器の操作に不慣れな人がＩｏＴデバイスを保有し管理の必要に迫られていることとが考えられる。
【０００８】
よって、ＩｏＴデバイスが適切に管理され、攻撃対象となる危険性が低減されるようにするには、ユーザがウェブ画面において操作を行う代わりに自動化プログラムを実行することによってデバイス管理ができるようにするとともに、その自動化プログラムを、できるだけユーザに負担をかけずに、自動的に生成できるようにすることが望ましい。情報機器の操作に不慣れな人にとって、ｉＭａｃｒｏｓのようなツールがあっても、自身で自動化プログラムを作成することは難しい。
【０００９】
ＩｏＴデバイスの管理画面における操作の自動化プログラムを、自動的に生成するに当たって課題となるのは、操作方法をいかに学習するかということである。学習する内容としては、管理画面の操作手順と、入力フィールドの意味がある。入力フィールドの例としては、INPUTタグ、SELECTタグ、TEXTAREAタグ等が挙げられる。LINKタグ等も、入力フィールドに含めることができる。
【００１０】
ＩｏＴデバイスは、製品ごとに、管理画面の操作手順も入力フィールド等の表示内容も異なるため、操作方法を学習して自動化プログラムを生成する作業を、製品の数だけ行わなければならない。しかも、ＩｏＴデバイスは、現在までに多種多様な製品が流通している上、今後も増えていくと考えられる。
【００１１】
それに対し、特許文献１の技術では、自動的に実行する通信シーケンスの候補を検出する作業が自動化されるに止まり、その中で実際にどの通信シーケンスを自動化プログラムとして作成すべきなのか、各種入力パラメータがどのような意味を有しどのような値を設定すべきなのか等を、ユーザ自身が判断して指定しないと、自動化プログラムは生成されないから、ＩｏＴデバイスを管理するユーザの負担を十分に軽減することができない。
【００１２】
本発明は、上記の事情を鑑みてなされたもので、デバイス管理に係る処理を自動的に行うための自動化プログラムを、ユーザの負担を軽減しつつ生成することを可能にすることを目的とする。
【００１３】
なお、本発明は、ＩｏＴデバイスだけでなく、ウェブサーバ機能を有するどのようなデバイスに対しても（ウェブサーバ自体に対しても）、適用可能である。よって、ＩｏＴデバイスの管理への応用だけでなく、ウェブ画面操作をロボットに自動で行わせるといったＲＰＡ（Ｒｏｂｏｔｉｃ  Ｐｒｏｃｅｓｓ  Ａｕｔｏｍａｔｉｏｎ）分野への応用も可能である。
【課題を解決するための手段】
【００１４】
本発明の原理に従う一つの態様に係る装置は、デバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられ、デバイス管理に係る処理を自動的に行うための自動化プログラムの生成に寄与する。この装置は、前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込む手段と、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集して記録する手段とを備える。そして、前記自動化プログラムは、記録された複数の前記操作の情報を、該操作の情報と共に記録された前記意味付けの情報に従って組み合わせることにより、生成される。
【００１５】
本発明の原理に従う一つの態様に係るサーバは、それぞれがデバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられた複数の装置に接続される。この装置は、前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込んで、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集するものであり、サーバは、前記装置から、該操作の情報及び該意味付けの情報を受信する手段と、受信した複数の前記操作の情報を、該操作の情報と共に受信された前記意味付けの情報に従って組み合わせることにより、デバイス管理に係る処理を自動的に行うための自動化プログラムを生成する手段とを備える。
【００１６】
本発明の原理に従う一つの態様に係るプログラムは、デバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられたコンピュータに、少なくとも一部がインストールされて、デバイス管理に係る処理を自動的に行うための自動化プログラムの生成に寄与する。このプログラムは、前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込むプログラムコードと、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集して記録するプログラムコードとを備える。そして、前記自動化プログラムは、記録された複数の前記操作の情報を、該操作の情報と共に記録された前記意味付けの情報に従って組み合わせることにより、生成される。
【００１７】
本発明の原理に従う別の態様に係るプログラムは、それぞれがデバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられた複数の装置に接続されるサーバコンピュータに、少なくとも一部がインストールされる。この装置は、前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込んで、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集するものであり、サーバを実現するプログラムは、前記装置から、該操作の情報及び該意味付けの情報を受信するプログラムコードと、受信した複数の前記操作の情報を、該操作の情報と共に受信された前記意味付けの情報に従って組み合わせることにより、デバイス管理に係る処理を自動的に行うための自動化プログラムを生成するプログラムコードとを備える。
【００１８】
本発明の原理に従う一つの態様に係る方法は、デバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられた装置において、前記デバイスから前記端末への管理画面表示のための通信に、操作の意味付けを行うためのユーザインタフェースを埋め込み、前記装置において、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信に伴って、該操作の情報及び前記ユーザインタフェースを介して行われた該操作の意味付けの情報を収集し、収集した情報を複数の前記装置に接続されるサーバへ送信し、前記サーバにおいて、受信した複数の前記操作の情報を、該操作の情報と共に受信された前記意味付けの情報に従って組み合わせることにより、デバイス管理に係る処理を自動的に行うための自動化プログラムを生成する。
【００１９】
なお、上述したそれぞれの態様において、前記操作の情報及び前記意味付けの情報の収集は、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信を用いて行ってもよいし、該通信とは別の通信（前記端末から前記装置への通信）を用いて行ってもよいし、前記端末内部に存在する前記装置相当の機能によって（通信によらずに）行ってもよい。後２者の場合の収集は、前記端末から前記デバイスへの通信が行われるのとは、全く別のタイミングで行われて構わない。
【００２０】
また、上述したそれぞれの態様における装置、すなわちデバイスと端末との間の通信を仲介可能な位置に設けられる装置は、デバイスと端末との間のネットワークに接続される装置であってもよいし、端末の内部に端末と一体化して設けられる装置であってもよいし、デバイスの内部にデバイスと一体化して設けられる装置であってもよい。
【００２１】
端末の内部に端末と一体化して設けられる装置は、端末内部の画面表示ソフトウェア（例えば、ウェブブラウザ）に入出力される通信（例えば、ＨＴＭＬデータ）にユーザインタフェースを埋め込んで、端末外部の通信路との間で入出力するソフトウェア（ブラウザとは別個に動作するプログラムであってもよいし、ブラウザに取り込まれて動作するプラグインであってもよい）によって、実現することができる。同様に、デバイスの内部にデバイスと一体化して設けられる装置は、デバイス内部のウェブサーバ機能に入出力される通信にユーザインタフェースを埋め込んで、デバイス外部の通信路との間で入出力するソフトウェアによって、実現することができる。
【００２２】
上述したそれぞれの態様は、異なるカテゴリの態様としたり、組み合わせて別の態様としたり、部分的に抜き出して別の態様としたりすることも可能である。例えば、上記の方法を実行するためのプログラム、上記の装置において実行される方法、上記のサーバにおいて実行される方法、上記の装置と上記のサーバとを備えるシステム、上記の装置又は上記のサーバの一部の機能を実現する装置もしくは上記の装置と通信するデバイスや端末、そこで実行される方法やプログラム、上述したそれぞれのプログラムを記憶した記憶媒体等も、それぞれが本発明の原理に従う一つの態様となり得る。
【発明の効果】
【００２３】
本発明によれば、例えば、ユーザが、デバイス管理画面に対する操作を行いながら、そこに埋め込まれているユーザインタフェースに従って、自然に操作の意味付けの情報を入力することができ、それによって、デバイス管理に係る処理を自動的に行うための自動化プログラムを、自動的に生成することが可能になる。よって、例えば、ＩｏＴデバイスのように多数の自動化プログラムを生成しなければならない場合でも、ユーザの負担を軽減しつつ、自動化プログラムを生成することが可能になる。
【図面の簡単な説明】
【００２４】
【図１】本発明の一実施形態の有利な点を説明するための用語の意味を示す図。
【図２】本発明の一実施形態の有利な点を説明するための比較例を示す図。
【図３】本発明の一実施形態の有利な点の一例を説明するための図。
【図４】本発明の一実施形態に係るシステムを含む全体構成の一例を示す図。
【図５】本発明の一実施形態に係る各装置の内部構成の一例を示す図。
【図６】本発明の一実施形態に係るシステムを含む全体構成の別の例を示す図。
【図７】本発明の一実施形態に係るシステム（以下、本システムという）の動作の概要の一例を示す図。
【図８】本システムにおいてユーザに入力フィールドの意味を選択させるための画面インタフェース（グラフィック・ユーザ・インタフェース：ＧＵＩ）の一例を示す図。
【図９】本システムにおける入力フィールド標準意味ＤＢ（データベース）１０２，２０５に記憶される情報の一例を示す図。
【図１０】本システムにおける入力フィールド意味選択ＧＵＩ（図８）を作成するための動作（ＧＵＩ埋め込み部１０６）の一例を示す図。
【図１１】本システムにおける入力フィールド意味選択ＧＵＩによる情報収集の流れ（入力フィールド意味受信部１０７を含む）の一例を示す図。
【図１２】本システムにおける収集データＤＢ２０２に記憶される入力フィールドに関する情報の一例を示す図。
【図１３】本システムにおいてユーザによる操作手順を記録するための画面インタフェース（ＧＵＩ）の一例を示す図。
【図１４】本システムにおける自動化対象操作ＤＢ１０３，２０６に記憶される情報の一例を示す図。
【図１５】本システムにおける操作手順記録ＧＵＩ（図１３）を作成するための動作（ＧＵＩ埋め込み部１０６）の一例を示す図。
【図１６】本システムにおいて操作手順を記録するための動作の一例（ブラウザ操作方式の場合）を示す図。
【図１７】本システムにおいて操作手順を記録するための動作の一例（ＨＴＴＰリクエスト方式の場合）を示す図。
【図１８】本システムにおける操作手順記録ＧＵＩによる情報収集の流れ（操作手順記録部１０８を含む）の一例を示す図。
【図１９】本システムにおける収集データＤＢ２０２に記憶される意味付き操作記録集合の情報の一例（ブラウザ操作方式の場合）を示す図。
【図２０】本システムにおける収集データＤＢ２０２に記憶される意味付き操作記録集合の情報の一例（ＨＴＴＰリクエスト方式の場合）を示す図。
【図２１】本システムにおいて入力フィールドの意味を判定するための動作（入力フィールド意味判定部２０３）の一例を示す図。
【図２２】本システムにおける入力フィールド意味ＤＢ１０４，２０７に記憶される情報の一例を示す図。
【図２３】本システムにおいて自動化プログラムを作成するための動作（自動化プログラム作成部２０４）の一例を示す図。
【図２４】本システムにおける自動化プログラムＤＢ１０５，２０８に記憶される情報の一例（ブラウザ操作方式の場合）を示す図。
【図２５】本システムにおける自動化プログラムＤＢ１０５，２０８に記憶される情報の一例（ＨＴＴＰリクエスト方式の場合）を示す図。
【図２６】本システムにおけるデバイス情報ＤＢ１１１及び設定情報ＤＢ１１２に記憶される情報の一例を示す図。
【図２７】本システムにおいて自動化プログラムを実行するための動作（自動操作実行部１１０）の一例を示す図。
【図２８】本システムにおいて実行される自動化プログラムの一例（ブラウザ操作方式の場合）を示す図。
【図２９】本システムにおける自動化プログラムの実行による自動操作の流れの一例（ブラウザ操作方式の場合）を示す図。
【図３０】本システムにおいて実行される自動化プログラムの一例（ＨＴＴＰリクエスト方式の場合）を示す図。
【図３１】本システムにおける自動化プログラムの実行による自動操作の流れの一例（ＨＴＴＰリクエスト方式の場合）を示す図。
【図３２】本システムにおいてユーザの指示により自動操作を行うための画面インタフェース（ＧＵＩ）の一例を示す図。
【図３３】本システムにおける自動操作ＧＵＩ（図３２）を作成するための動作（ＧＵＩ埋め込み部１０６）の一例を示す図。
【図３４】本システムにおいて自動操作ＧＵＩを使用して自動化プログラムを実行する方法の一例を示す図。
【図３５】本システムにおいて定期的に自動化プログラムを実行する方法の一例を示す図。
【図３６】本システムの応用例を説明するための図。
【図３７】図３６の例において本システムが備える各ＤＢに記憶される情報の一例を示す図。
【図３８】図３６の例において多数のデバイスの初期パスワードを一括して変更する場合の動作の一例を示す図。
【図３９】図３６の例におけるデバイス初期パスワード一括変更及びその後のログイン認証の流れの一例を示す図。
【図４０】本システムにおいて入力フィールド標準意味ＤＢの内容及び自動化対象操作ＤＢの内容を更新する例を示す図。
【図４１】本システムにおいてＧＵＩを埋め込む方法のバリエーションを説明するための図。
【発明を実施するための形態】
【００２５】
以下、本発明の実施の形態について説明するが、以下の説明は、本発明の具体例を示すものであって、本発明の範囲を限定するものではない。
【００２６】
上述した本発明の原理に従う態様において、前記意味付けは、一つの前記処理に属する複数の操作に対して一つの操作名を対応付けることにより、行われてもよく、前記ユーザインタフェースは、前記操作を受け取るための前記管理画面に、操作名の候補を表示して、前記ユーザに前記操作名を選択させる構成を含むものであってもよい。
【００２７】
これにより、ユーザが一連の操作を行う際に、それら操作によって行われる処理を表す操作名を対応付けておけば、その後で自動的に、当該一連の操作に対応する自動化プログラムを生成して操作名を付与することが可能になる。しかも、操作名の対応付けは、ユーザインタフェースによって表示される候補の中から選択すればよいため、不慣れなユーザであっても、容易に行うことができる。
【００２８】
上述した本発明の原理に従う態様において、前記装置が、前記管理画面を介して前記ユーザからの操作を複数受け取ることに代えて、前記自動化プログラムを実行することにより、該複数の操作を前記デバイスへ伝えるための通信を作り出す手段をさらに備えるようにしてもよい。
【００２９】
つまり、本発明の原理に従って操作の情報及び意味付けの情報を収集する（操作方法を学習する）装置は、自動化プログラムの生成に寄与するものであるが、それにより生成された自動化プログラムを実行する手段は、当該装置とは別のデバイス管理装置に備えてもよいが、当該装置自体に備えてもよい。当該装置自体に備える場合の有利な点は、後述する。
【００３０】
上述した本発明の原理に従う態様において、前記意味付けは、前記操作がフィールドに値を入力するものである場合に、該フィールドの意味を定義することにより、行われてもよく、前記ユーザインタフェースは、前記操作を受け取るための前記管理画面に、フィールドの意味の候補を表示して、前記ユーザに前記フィールドの意味を選択させる構成を含むものであってもよい。
【００３１】
これにより、ユーザがフィールドへの値の入力という操作を行う際に、そのフィールドの意味（それによってどのような値を入力すべきかが定められる）を一緒に指示しておけば、その後で自動的に、当該フィールドへの値の入力を含む自動化プログラムを生成することが可能になる。しかも、フィールドの意味の指示は、ユーザインタフェースによって表示される候補の中から選択すればよいため、不慣れなユーザであっても、容易に行うことができる。
【００３２】
上述した本発明の原理に従う態様において、生成された自動化プログラムを実行する手段を備える装置が、前記操作がフィールドに値を入力するものである場合に、該フィールドの意味に対応付けて、デバイス毎に異なり得る値を記憶する手段と、前記自動化プログラムを実行することにより、フィールドへの入力値を含む操作を前記デバイスへ伝えるための通信を、該デバイスについて該フィールドの意味に対応付けて記憶されている前記値を用いて作り出す手段とを備えるようにしてもよい。
【００３３】
ここで、フィールドの意味に対応付けてデバイス毎の値を記憶する手段は、データベースとして予め当該装置に備えられていてもよいし、クラウド側のサーバから取得可能な情報を記憶するものであってもよいし、ユーザからの操作の情報及び意味付けの情報を収集することで得られた値の情報を記憶するものであってもよい。あるいは、フィールドへの値の入力を含む自動化プログラムを実行する際に、改めてフィールドの意味を示してユーザに値を入力させることによって記憶するものであってもよい。前３者の場合は、自動化プログラムを完全に自動で実行することが可能になり、後者の場合は、未登録のデバイスについてその場でユーザが値を入力するだけで、自動化プログラムを実行してデバイス管理を行うことが可能になる。
【００３４】
上述した本発明の原理に従う態様において、前記意味付けは、一つの前記処理に属する複数の操作として一連の複数の前記管理画面に亘る操作が対応付けられるように、行われ得るものであってもよく、前記ユーザインタフェースは、前記操作を受け取るための前記管理画面に、前記一連の画面の開始と終了を前記ユーザが指定できるような表示を行うものであってもよい。
【００３５】
つまり、一つの処理に属する（一つの操作名に対応する）複数の操作は、一つの管理画面内のものであってもよいが、複数の管理画面に亘るものであってもよい。そして、特に、複数の管理画面に亘る場合には、当該処理がどの管理画面から開始されてどの管理画面で終了となるのかを指定できるユーザインタフェースとなっていると、便利である。
【００３６】
上述した本発明の原理に従う態様において、前記デバイスとして、異なる型の複数のデバイスが存在し、ある型のデバイスの管理画面と別の型のデバイスの管理画面が、異なる構成を有し得るものである場合に、前記ユーザインタフェースを、ある型のデバイスに対する操作と別の型のデバイスに対する操作に、同一の意味付けを与えられるように作成されたものとしてもよい。
【００３７】
これにより、管理画面の操作手順や入力フィールド等の表示内容が製品ごとに異なる場合でも、それら製品に共通する意味付けを与えて自動化プログラムを生成することが可能になるため、例えば、ある処理（パスワードの変更、ファームウェアの更新等）を全ての製品に対して自動的に行いたい場合に、製品の相違を意識することなく、当該処理を同一の意味付けで指定（同一の操作名を指示）して、全てのデバイスに対して自動化プログラムを実行することができるようになる。
【００３８】
上述した本発明の原理に従う態様において、前記操作がフィールドに値を入力するものである場合に、該フィールドの意味を定義することにより、前記意味付けが行われるようにし、前記ユーザインタフェースを、ある操作におけるフィールドと別の操作におけるフィールドとが、異なる表現で示されていても、同一の意味付けを与えることができるように作成されたものとしてもよい。
【００３９】
これにより、例えば、本来同一の意味を有するフィールドであるにもかかわらず、管理画面によって異なる名前が表示されるような場合（同一デバイスであっても、同一の意味のフィールドに管理画面によって異なる名前が表示されることがあり得る）に、同一の意味付けができるようになり、管理画面による名前の相違を意識することなく、同一の意味のフィールドには同一の値を自動的に入力することが可能になる。また、フィールドの意味に対応付けて該フィールドに入力すべき値を記憶する手段を設ける場合に、その記憶を集約することができるため、記憶手段の管理を容易に行うことができるようになる。
【００４０】
上述した本発明の原理に従う態様において、前記端末として、異なるユーザに使用される複数の端末が存在する場合、同一の操作に対してあるユーザにより記録された意味付けの情報と別のユーザにより記録された意味付けの情報が、異なる可能性がある。その場合、前記自動化プログラムの生成を、同一の操作に対する異なる意味付けの情報それぞれの記録の多寡に応じて組み合わせるべき複数の操作の情報を決定することにより、行うようにしてもよい。
【００４１】
例えば、大半のユーザが大半の場合に各操作に対する意味付けを正しく行う（誤った意味付けを行うのは少数のユーザでありレアケースである）と想定すれば、各操作について高頻度で記録されている意味付けを採用して、自動化プログラムを生成すればよい。高頻度か否かは、例えば、その意味付けの絶対的な記録回数が所定以上か否かで判定してもよいし、所定の回数の操作の記録が蓄積された際にその意味付けの割合が所定以上か否かで判定してもよい。あるいは、デバイス管理の経験豊富なユーザによる意味付けに高い重み付けをしたり、意味の解析をすることで誤りと分かる意味付けを除いたりすることによって、妥当な意味付けを採用するようにしてもよい。
【００４２】
上述した本発明の原理に従う態様において、前記装置が、複数の前記装置のそれぞれで記録された前記操作の情報及び前記意味付けの情報に基づいて前記自動化プログラムを生成するサーバへ向けて、前記操作の情報及び前記意味付けの情報を送信する手段をさらに備えるようにしてもよい。そして、複数の前記装置を、それぞれ異なるユーザに使用されるものとし、前記自動化プログラムの生成を、同一の操作に対する異なる意味付けの情報それぞれの記録の多寡に応じて組み合わせるべき複数の操作の情報を決定することにより、行うようにしてもよい。
【００４３】
前記サーバを、複数の前記装置から見てクラウド側に設けることによって、より多くのユーザから操作の情報及び意味付けの情報を収集する（集合知を形成する）ことが可能になる。そうすると、その中に操作に不慣れなユーザが相当程度いても、クラウド側のサーバにおいて、全体として妥当な意味付けを行って、自動化プログラムを生成することができるようになる。
【００４４】
上述した本発明の原理に従う態様において、前記自動化プログラムの生成が、一つの前記処理に属する複数の操作として不要な操作を含めて該処理に対応する意味付けを行ったユーザによる記録と、一つの前記処理に属する複数の操作として必要な操作を含めずに該処理に対応する意味付けを行ったユーザによる記録と、一つの前記処理に属する複数の操作に対して該処理とは異なる処理に対応する意味付けを行ったユーザによる記録と、一つの前記処理に属する一つ以上の操作に対して該操作の意味とは異なる意味付けを行ったユーザによる記録のうち、少なくとも一つを除外して、行われるようにしてもよい。
【００４５】
このような分析は、多数のユーザから操作の情報及び意味付けの情報を収集することによって、自動的に行うことが可能であるため、各ユーザは、初期段階で、デバイス管理画面に対する操作を行いながらユーザインタフェースに従って操作の意味付けの情報を入力すれば、後は、自動プログラムの作成に関わらなくても、自動的に生成された自動化プログラムを使うことができるようになり、負担が軽減される。
【００４６】
上述した本発明の原理に従う態様において、前記ユーザインタフェースが、前記操作を受け取るための前記管理画面に、前記操作の意味付けを支援するための情報を表示して、前記ユーザに前記操作の意味付けを促す構成を含むようにし、前記装置が、前記支援のための情報を作成するために参照する情報を記憶する手段をさらに備えるようにしてもよい。
【００４７】
ここで、操作の意味付けを支援する表示のために参照する情報を記憶する手段は、予め当該装置に作り込まれていてもよいし、クラウド側のサーバから取得可能な情報を記憶するものであってもよい。操作の意味付けを支援する表示は、例えば、上述した操作名の候補やフィールドの意味の候補であってもよい。
【００４８】
これにより、自動化プログラムの生成のために必要な情報に絞って、支援する表示を行い、その範囲でだけ情報を収集することができるため、生成すべき自動化プログラムの量の増加に比べて、収集する情報の量を少なくすることが可能になる。
【００４９】
さらに、前記装置が、前記参照する情報を、複数のユーザから得られた意味付けの情報に基づいて更新する手段を備えるようにしてもよい。
【００５０】
この更新についても、当該装置が収集した操作の情報及び意味付けの情報に基づいて行ってもよいし、クラウド側のサーバがより広く収集した操作の情報及び意味付けの情報に基づいて行ってもよい。
【００５１】
更新された情報を参照することにより、例えば、上述した操作名の候補やフィールドの意味の候補として、妥当性の高そうなものに絞り込んだ候補を表示したり、自動化プログラムが既に生成された処理については候補の表示をしないようにしたりすることができ、ユーザの負担をさらに軽減することができる。
【００５２】
また、前記支援のための情報が、同一の操作に対して複数のユーザから得られる意味付けの情報が同一になるように作成されるようにしてもよい。
【００５３】
例えば、階層構造を有する複数の管理画面を辿って本来の目的となる操作が行われる場合、階層構造を辿る画面遷移における操作も一つの処理に属するものとするのか、本来の目的となる操作が行われる階層における操作を抽出して一つの処理に属するものとするのかや、ある処理を行うためには必ず行われるが別の処理にも属する操作を、当該ある処理に属するものとして扱うのか、属さないものとして扱うのか等は、体系的にどちらの方針を採用するか決めておかないと、各々のユーザによって意味付けがバラバラになり得る。
【００５４】
このような意味付けについては、予め決めた方針に沿うように支援のための表示を行うことによって、大部分のユーザが同一の意味付けをするようになり、大半のユーザが大半の場合に各操作に対する意味付けを正しく行うという想定の下に、自動的に自動化プログラムを生成することが可能になる。
【００５５】
上述した本発明の原理に従う態様において、前記装置が、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信を、該デバイスへ向けて送信する手段と、前記自動化プログラムを実行することにより、前記処理に属する複数の操作を前記デバイスへ伝えるための通信を作り出して、該通信を該デバイスへ向けて送信する手段とをさらに備えるようにしてもよい。
【００５６】
このように、操作の情報及び意味付けの情報を収集する装置自体が、自動化プログラムを実行する手段を備える場合、ユーザからの操作によるデバイス管理（及びそれに伴う操作方法の学習）と、自動化プログラムの実行によるデバイス管理とを、併存させることができるため、例えば、デバイス管理に係る様々な処理を、ユーザからの操作によって行いながら、自動化プログラムの生成に十分な情報が収集された処理から順次、自動化プログラムに置き換えていく（ある処理についてはユーザからの操作で行い、別の処理については自動化プログラムの実行で行う）というような運用が可能になる。
【００５７】
前記装置が、前記デバイスから前記端末への管理画面表示のための通信に、前記処理を指定して前記自動化プログラムの実行を開始させるためのユーザインタフェースを埋め込む手段をさらに備えるようにし、前記管理画面を介してユーザから処理が指定されると、該処理を自動的に行うための前記自動化プログラムの実行が開始されるようにしてもよい。
【００５８】
これにより、ユーザが指定した処理については、自動化プログラムの実行で行いつつ、それ以外の処理については、ユーザからの操作で行うようなことが可能になる。また、同一の処理について、ある時には自動化プログラムの実行で行い、別の時にはユーザからの操作で行うようなことも可能になる。
【００５９】
上述した本発明の原理に従う態様において、生成された自動化プログラムを実行する手段を備える装置が、前記自動化プログラムの実行が自動的に開始されるべき条件を設定する手段をさらに備え、前記条件が満たされると、前記自動化プログラムの実行を開始するようにしてもよい。
【００６０】
これにより、例えば、定期的に行うべき処理や、指定日時の到来とともに行うべき処理や、デバイスが所定の状態になったら行うべき処理等を、ユーザが介在することなく、自動化プログラムの実行で行うことが可能になる。
【００６１】
上述した本発明の原理に従う態様において、複数の前記装置のそれぞれで記録された前記操作の情報及び前記意味付けの情報に基づいて前記自動化プログラムを生成するサーバを設け、自動化プログラムを実行する手段を備える装置（前記装置又は別の装置）が、前記自動化プログラムを受信する手段をさらに備えるようにしてもよい。
【００６２】
前記装置又は別の装置を、前記自動化プログラムを実行することにより、前記処理に属する複数の操作を前記デバイスへ伝えるための通信を作り出して、該通信を該デバイスへ向けて送信する手段を備えるものとし、上記のサーバが、当該装置に対し、生成した前記自動化プログラムを配信する手段をさらに備えるようにしてもよい。
【００６３】
上記のサーバを、クラウド側のサーバとすることで、より多くのユーザから情報を収集して、自動化プログラムを精度よく生成することが可能になる。
【００６４】
上述した本発明の原理に従う態様において、前記操作の情報を、前記管理画面を介して受け取ったユーザからの操作を前記端末から前記デバイスへ伝えるための通信（例えば、ｈｔｔｐリクエスト）の内容を含むものとしてもよい。
【００６５】
なお、ｈｔｔｐリクエストによって伝えられる操作の内容は、対応するｈｔｔｐレスポンス（操作の意味付けを行うためのユーザインタフェースが埋め込まれた、前記デバイスから前記端末への管理画面表示のための通信）の内容にも依存することから、前記操作の情報を、ｈｔｔｐレスポンスの内容及びｈｔｔｐリクエストの内容としてもよい。
【００６６】
上述した本発明の原理に従う態様において、前記操作の情報を、前記管理画面に対してユーザが行った画面操作の内容を含むものとしてもよい。
【００６７】
これにより、ユーザによる画面操作の中で、ｈｔｔｐ通信メッセージには含まれない内容（例えば、入力フィールドの値が、ウェブ画面上でＪａｖａＳｃｒｉｐｔ（登録商標）等により変換される場合、ｈｔｔｐ通信メッセージの内容からは、ウェブ画面上で入力された値を知ることができない）を含めて、自動化プログラムを生成することが可能になる。
【００６８】
上述した本発明の原理に従う態様において、前記装置の機能を、それぞれの前記端末に組み込んで一体化して提供してもよいし、前記装置を前記端末とは別個のものとして、複数の前記端末に接続されるようにしてもよい。
【００６９】
以下には、例示として、本発明の一実施形態に係るデバイス管理自動化システムについて、図面を用いて説明する。
【００７０】
まず、図１〜３を参照して、本システムの有利な点について説明する。
【００７１】
図１（ａ−１）に示すように、ユーザによる操作の全てを自動で記録し、各操作が何を意味するかが不明であるもの（例えば、特許文献１によって収集される情報）を、意味無し操作記録と呼ぶ。ここでの操作には、例えば、ブラウザの操作（＜ａ… ／＞タグをクリックや＜ｉｎｐｕｔ…／＞タグに入力など）又はＨＴＴＰの通信が該当する。この状態で、図１（ａ−２）に示すように、意味無し操作記録を解析し、自動的に抽出した一連の操作の集合を、意味無し操作記録集合と呼ぶ。この集合が何を意味するか、各操作が何を意味するかは不明なため、意味無し操作記録集合は、そのままでは自動化プログラムとして利用することができない。
【００７２】
これに対し、図１（ｂ）に示すように、ユーザによる操作を人間によって意味付けられた状態で記録し、その意味付けにより一連の操作の集合としてまとめられるものを、意味付き操作記録集合と呼ぶ。本実施形態において収集される情報は、この意味付き操作記録集合となる。集合の意味（操作名）や各操作の意味（入力フィールドの意味を含む）は得られているが、人間による余分な操作や意味付け間違いを含む場合には、そのままで自動化プログラムとして利用することはできない。
【００７３】
よって、図１（ｃ）に示すような自動化プログラム（ユーザによる操作と同等の操作を自動で実行するプログラム）は、図１（ａ−２）の意味無し操作記録集合に対して、人間が意味付けを行って作成するか、図１（ｂ）の意味付き操作記録集合から、自動的に意味付け間違い等を除去して作成するか、いずれかによって作成されることになる。
【００７４】
図２は、図１（ａ−２）の意味無し操作記録集合に対して、人間が意味付けを行って自動化プログラムを作成するシステムの例を示している。この例では、まず、意味無し操作記録ＤＢを作成するために、デバイス管理画面において手動で行われた操作（１）の情報を収集する。次に、意味無し操作記録ＤＢから、規則的に行われる一連の操作の集合を自動的に抽出（２）し、意味無し操作記録集合ＤＢを作成する。最後に、手動で（例えば、ＧＵＩを使って）、自動化する操作に関連した意味無し操作記録集合を選び出し、意味付けや修正を行って、自動化プログラムを作成（３）する。
【００７５】
最後の手動で行う作業は、多数の意味無し操作記録集合から、自動化の対象として着目する意味無し操作記録集合（図の例では、ログイン認証とパスワード変更に関するもの）を選び出し、意味付けをしなければならないため、デバイスで行える設定が多くなるにつれて、その作業負荷が重くなる。なお、ログイン認証とパスワード変更は、安全なパスワードへ自動変更するために自動化が必要となる対象である。
【００７６】
ＩｏＴデバイスの管理画面では、ユーザの操作によって様々な処理を行うことができる。例えば、デバイスがカメラを有するものであれば、ログイン認証、パスワード変更、ファームウェア更新、出荷時の状態へ戻す初期化、ＩＰアドレス変更、無線設定、時刻設定、メール設定、ビデオ映像設定、ビデオ表示設定、ビデオ暗視設定、ビデオプライバシー設定、ビデオ音量設定、動作検知範囲、動作検知スケジュール、保存先設定、保存スケジュール、ＳＤカード保存設定、ＱＲコード（登録商標）作成などが挙げられる。
【００７７】
そのため、特に、ＩｏＴデバイスの場合、意味無し操作記録ＤＢ及び意味無し操作記録集合ＤＢのサイズが大きくなり、人間が、意味無し操作記録集合ＤＢから自動化対象の集合を選び出し、自動化プログラムを作成する負荷が重くなる。さらに、ＩｏＴデバイスは、多種多様な製品が流通しているため、同じ意味を有する処理であっても、製品のメーカによって、あるいは製品の属するカテゴリによって、また同じカテゴリでもその製品のモデルによって、さらには同じ製品でもその製品を管理する端末の種類によって、異なる管理画面を介した異なる操作の集合となり得るから、この問題が、ますます大きくなる。
【００７８】
図３は、図１（ｂ）の意味付き操作記録集合から、自動的に意味付け間違い等を除去して自動化プログラムを作成するシステムの例（本システム）を示している。この例では、デバイス管理画面において手動で行われた操作（１）を記録する際、人間による操作の意味付けを同時に行うことで、意味付き操作記録集合を収集する。
【００７９】
このとき、本システムは、人間による意味付けがし易くなるように、デバイス管理画面に意味付けを支援するＧＵＩを埋め込む。このうち、操作手順記録ＧＵＩは、集合の意味付け（例えば、各操作がどの処理に属するかを示す操作名の決定）を支援し、入力フィールド意味選択ＧＵＩは、操作の意味付け（例えば、その操作が含む入力フィールドの意味を決定）を支援する。これらＧＵＩを提供することで、人間が、デバイス管理画面を使って操作を行いながら、自然に意味付けの情報をシステムに与えることができるようになるため、多数の人間（デバイス管理画面を使うユーザ）から、意味付き操作記録集合を収集することが可能になる。
【００８０】
図３に示すように、本システムは、その後、意味付き操作記録集合ＤＢから自動化プログラムを、自動的に作成（２）する。意味付き操作記録集合ＤＢには、着目する処理にとって余分な操作を含む集合（３）や、着目する処理にとって必要な操作を含んでいない集合（図示せず）や、着目する処理に属する一連の操作を異なる処理と対応付けてしまった意味付け間違い（４）や、操作又は操作が含む入力フィールドに対する意味付け間違い（５）等が含まれ得るが、多数のユーザから収集すると、それらの誤りの頻度は少なくなると想定し、頻度に基づいてそれらを除外することで、自動化プログラムの自動的な生成（２）が可能になる。
【００８１】
このように、本システムでは、情報収集後の自動化プログラムの生成を自動化することで、人間による自動化プログラム作成の負荷を削減することが可能になる。また、本システムでは、自動化対象の処理に属する操作についてだけ情報を収集するため、収集するデータのサイズを削減することも可能になる。
【００８２】
よって、本システムは、自動化する製品数や操作数の増加による影響を小さくすることができ、ＩｏＴデバイスの管理画面操作の自動化プログラム作成にも適している。現在問題となっているＩｏＴデバイスの不適切な管理についても、本システムによって、多数のユーザからデバイス管理画面の操作に関する情報を収集し、様々な製品に対して操作を自動化したプログラムを生成することにより、解決することが可能になる。本システムにおいて、生成した自動化プログラムを多数のユーザで共有し、ＩｏＴデバイスの適切な管理操作を広範に自動化するようにすると、さらに効果が高い。
【００８３】
図４は、本システムの全体構成の一例を示している。図４（ａ）に示すように、この例における本システムの構成要素は、デバイス３０、クライアント４０、クライアント側装置１０及びクラウド側装置（サーバ）２０、これらの間を接続するネットワーク５０である。
【００８４】
ここで、デバイス３０は、例えば、テレビやカメラ、プリンタなどであり、ＩｏＴデバイスとすることができる。クライアント４０は、パーソナルコンピュータやスマートフォンなどの端末であり、ユーザ（例えば、デバイスを保有する人）が、クライアント４０のブラウザを使って、デバイス３０の管理画面を操作する。デバイスが異なっても、同一製品のデバイスであれば、同一端末から見たときの管理画面及びそれを用いた操作は同一になる。
【００８５】
クライアント側装置１０は、クライアント４０とデバイス３０間のＨＴＴＰ通信を中継し、クライアント４０上でユーザにより行われるデバイス管理画面の操作に関する情報を収集したり、デバイス３０に対して管理画面を介する操作を自動で行ったりする。クラウド側装置（サーバ）２０は、クライアント側装置１０が収集したデバイス管理画面の操作に関する情報に基づき、管理画面を介する操作を自動で行うための自動化プログラムを生成して、生成した自動化プログラムをクライアント側装置１０に配信する。
【００８６】
図４（ｂ）は、図４（ａ）の具体的な構成例を示している。この例では、クライアント側装置１００は、ローカルエリアネットワーク（ＬＡＮ）５０２ごとに設置され、ＬＡＮ内のデバイス３０とクライアント４０のＨＴＴＰ通信を中継する。クラウド側装置（サーバ）２００は、複数のクライアント側装置１００からインターネット５０１経由でデバイス管理画面の操作に関する情報を収集し、生成した自動化プログラムを配信する。クライアント４０やデバイス３０は、ＬＡＮ５０２に有線接続されていても、アクセスポイント５０３経由で無線接続されていてもよい。１つのクライアント４０から複数のデバイス３０を管理してもよいし、１つのデバイス３０が複数のクライアント４０から管理されてもよい。
【００８７】
図５は、クライアント側装置１００とクラウド側装置（サーバ）２００の機能構成の一例を示している。各機能部は、ソフトウェアで構成されてもハードウェアで構成されてもそれらの組み合わせで構成されてもよい。
【００８８】
クライアント側装置１００は、サーバ２００のデータ送信部２０９からデータを受信するデータ受信部１０１と、データ受信部１０１により受信されるサーバ２００のＤＢ２０５〜２０８の情報の一部または全部のコピーをそれぞれ記憶するＤＢ１０２〜１０５と、ＧＵＩ埋め込み部１０６と、入力フィールド意味受信部１０７と、操作手順記録部１０８と、入力フィールド意味受信部１０７及び操作手順記録部１０８からのデータをサーバ２００のデータ受信部２０１へ送信するデータ送信部１０９とを有する。
【００８９】
ＧＵＩ埋め込み部１０６は、デバイス３０からクライアント４０へ送信されたＨＴＴＰレスポンスに対して、入力フィールド意味選択ＧＵＩ及び操作手順記録ＧＵＩを埋め込んで、クライアント４０へ送信する。
【００９０】
入力フィールド意味受信部１０７は、入力フィールド意味選択ＧＵＩからデータを受信し、入力フィールド情報として、データ送信部１０９へ渡す。操作手順記録部１０８は、操作手順記録ＧＵＩからデータを受信し、クライアント−デバイス間のＨＴＴＰ通信やブラウザ操作を記録して、意味付き操作記録集合として、データ送信部１０９へ渡す。
【００９１】
クライアント側装置１００は、上記の各機能部に加えて、あるいは上記の各機能部を有する装置とは別に、自動操作実行部１１０を備えてもよい。自動操作実行部１１０は、自動化プログラムを使用して、デバイス管理画面を介する操作を自動で行う。
【００９２】
この自動化プログラムを実行させるために、ＧＵＩ埋め込み部１０６は、デバイス３０からクライアント４０へ送信されたＨＴＴＰレスポンスに対して、自動操作ＧＵＩを埋め込んで、クライアント４０へ送信してもよい。
【００９３】
クライアント側装置１００は、自動操作実行部１１０が使用する情報を記憶するＤＢとして、各デバイス３０のＭＡＣアドレスや製品名等を記憶するためのデバイス情報ＤＢ１１１や、デバイス管理画面の各フィールドに入力する値を記憶するための設定情報ＤＢ１１２を備えてもよい。
【００９４】
クラウド側装置（サーバ）２００は、クライアント側装置１００のデータ送信部１０９から受信したデータを収集データＤＢ２０２へ保存するデータ受信部２０１と、収集した入力フィールド情報や意味付き操作記録集合を記憶するための収集データＤＢ２０２と、収集データＤＢ２０２に記憶された入力フィールド情報から入力フィールドの意味を判定し、入力フィールド意味ＤＢ２０７へ保存する入力フィールド意味判定部２０３と、収集データＤＢ２０２に記憶された意味付き操作記録集合から自動化プログラムを生成し、自動化プログラムＤＢ２０８へ保存する自動化プログラム作成部２０４と、ＤＢ２０５〜２０８の情報の一部又は全部のコピーをクライアント側装置１００のデータ受信部１０１へ送信するデータ送信部２０９とを有する。
【００９５】
サーバ２００の入力フィールド標準意味ＤＢ２０５は、入力フィールド標準意味を記憶しており、クライアント側装置１００は、入力フィールド標準意味ＤＢ１０２に記憶されたこの情報のコピーを、入力フィールド意味選択ＧＵＩに表示する入力フィールド意味の候補として使用する。
【００９６】
サーバ２００の自動化対象操作ＤＢ２０６は、自動化対象の操作名を記憶しており、クライアント側装置１００は、自動化対象操作ＤＢ１０３に記憶されたこの情報のコピーを、操作手順記録ＧＵＩに表示する操作名の候補として、あるいは自動操作ＧＵＩの操作対象に表示する操作名として、使用する。
【００９７】
サーバ２００の入力フィールド意味ＤＢ２０７は、入力フィールド意味判定結果を記憶しており、クライアント側装置１００は、入力フィールド意味ＤＢ１０４に記憶されたこの情報のコピーを用いて、自動化プログラムを実行する。
【００９８】
サーバ２００の自動化プログラムＤＢ２０８は、生成された自動化プログラムを記憶しており、クライアント側装置１００は、自動化プログラムＤＢ１０５に記憶されたこの情報のコピーを用いて、自動化プログラムを実行する。
【００９９】
図６は、本システムの全体構成の別の例を示している。図６（ａ）に示すように、この例における本システムの構成要素は、デバイス３０、クライアント４０、クライアント側装置とクラウド側装置（サーバ）を兼ねる自動化装置６０、これらの間を接続するネットワーク５０である。
【０１００】
図６（ｂ）は、図６（ａ）の具体的な構成例を示している。この例では、ＬＡＮ５０２に、自動化装置６００が設置される。自動化装置６００は、例えば、各ＤＢ１０２〜１０５と、ＧＵＩ埋め込み部１０６と、入力フィールド意味受信部１０７と、操作手順記録部１０８と、収集データＤＢ２０２と、入力フィールド意味判定部２０３と、自動化プログラム作成部２０４とを有するものであってもよい。
【０１０１】
自動化装置６００は、上記の各機能部に加えて、あるいは上記の各機能部を有する装置とは別に、自動操作実行部１１０を備えてもよく、そのために、デバイス情報ＤＢ１１１や、設定情報ＤＢ１１２を備えてもよい。
【０１０２】
図６（ｂ）では、１つの自動化装置６００が、全てのデバイス３０及び全てのクライアント４０を配下として操作に関する情報を収集する例が示されているが、自動化装置６０を複数設け、それぞれの自動化装置６０が、自装置が配下とするデバイス３０及びクライアント４０について操作に関する情報を収集し、自装置が配下としないデバイス３０及びクライアント４０についての操作に関する情報は他装置から収集するようにしてもよい。そして、ある自動化装置が別の自動化装置へ生成した自動化プログラムを配信するようにしてもよい。
【０１０３】
その他の構成例として、クライアント側装置１００とクラウド側装置（サーバ）２００との間の通信を減らしたり、サーバ２００が行う処理を分散したりするため、図４（ｂ）のＬＡＮ５０２内に、エッジ装置を設置してもよい。この場合のエッジ装置は、クライアント側装置１００に対してサーバ２００の一部の機能を代行し、クライアント側装置１００−サーバ２００間の通信を中継する機能を有する。
【０１０４】
また別の構成例として、自動化装置６０を、図６（ｂ）のようにＬＡＮに設置するのではなく、クラウド（デバイス３０から見てインターネット５０１の向こう側）に設置してもよい。この場合、クラウドからデバイス３０に通信できるようにする。
【０１０５】
さらに別の構成例として、クライアント側装置１０の機能もしくは自動化装置６０の機能をソフトウェアとして配付するようにし、各クライアント４０にそのソフトウェアをインストールして使用するようにしてもよい。このソフトウェアは、ブラウザとは別個に動作するプログラム（図４１（ｂ））であってもよいし、ブラウザに取り込まれて動作するプラグイン（図４１（ｃ））であってもよい。
【０１０６】
本実施形態では、クライアント側装置１０又は自動化装置６０が、デバイス３０とクライアント４０との間のネットワークに接続される例（図４１（ａ））を中心に説明する。但し、この例は、デバイス３０のＷｅｂアプリケーションからクライアント４０のブラウザへ送信されたＨＴＴＰレスポンス（より具体的には、その中のＨＴＭＬデータ）にＧＵＩを埋め込むことにより実現することができる。よって、クライアント４０にソフトウェアをインストールする例（図４１（ｂ）（ｃ））も、ＨＴＭＬデータにＧＵＩを埋め込むことによって、同様に実現できることが明らかである。
【０１０７】
なお、本システムは、多数のユーザで使用すると効果的であるが、少数又は１人のユーザで使用するようにしても構わない。
【０１０８】
図７は、本システムの動作の概要を示している。本システムは、まず、デバイス管理画面の操作方法（操作に関する情報）を、多数のユーザから収集する（７００）。収集する内容は、入力フィールド情報と意味付き操作記録集合の２種類である。
【０１０９】
本システムは、次に、収集した情報を解析し、入力フィールド意味判定と自動化プログラム生成を行う（８００）。入力フィールド意味は、自動化プログラムを実行する際に、どの入力フィールドにどの値を入力するか決定するために使用する情報である。
【０１１０】
その後、本システムは、生成された自動化プログラムを使って、デバイス管理画面を自動操作する（９００）。
【０１１１】
図８〜１２を参照して、デバイス管理画面の入力フィールドに関する情報の収集方法を説明する。図８（ａ）は、デバイス管理画面の一例である。
【０１１２】
図８（ｂ）は、入力フィールド意味選択ＧＵＩへのリンクを、デバイス管理画面（図８（ａ））に埋め込んだ一例である。この例では、入力フィールドの意味が不明（本システムにとって未知もしくは不確定）な場合に、「？」アイコンを表示し、ユーザがこのアイコンをクリックすることで、入力フィールド意味選択ＧＵＩ（図８（ｃ））が表示されるようにしている。
【０１１３】
図８（ｃ）の入力フィールド意味選択ＧＵＩに表示する入力フィールド意味の候補は、対象となる入力フィールドのタグＩＤやラベル名などを利用して、可能性の高い候補を優先的に表示する。ユーザは、このＧＵＩを使って入力フィールド意味の選択を簡単に行うことができるため、本システムは、多くのユーザから入力フィールド情報を収集することができる。
【０１１４】
図９は、入力フィールド標準意味ＤＢ１０２，２０５に記憶される情報の一例を示している。入力フィールド標準意味は、入力フィールド意味選択ＧＵＩに表示する入力フィールド意味の候補として使用される。
【０１１５】
入力フィールド標準意味は、関連性の高い操作（関連操作）や入力フィールドタグＩＤやラベル名（関連キーワード）と対応付けて、記憶されている。これらの情報は、本システムの製造者もしくは管理者が予め登録しておくが、図４０に示すように、関連操作や関連キーワードを動的に登録、更新することも可能である。
【０１１６】
図１０は、ＨＴＴＰレスポンス内の入力フィールドを抽出し、必要に応じて（例えば、抽出された入力フィールドの意味が不明の場合に）、入力フィールド意味選択ＧＵＩを作成するために、ＧＵＩ埋め込み部１０６が行う動作の詳細を示している。
【０１１７】
まず、デバイス３０からクライアント４０へのＨＴＴＰレスポンスを解析し、ＨＴＴＰレスポンスに含まれる入力フィールドを抽出する（７１０）。そして、抽出した全ての入力フィールドに対して（７１２）、入力フィールド意味ＤＢ１０４を参照して、入力フィールドの意味が決定済みか確認し（７１４）、未決定の場合は（７１６）、入力フィールド意味選択ＧＵＩを作成する（７２２）。
【０１１８】
その際、入力フィールド意味選択ＧＵＩに入力フィールド意味の候補を表示するために、入力フィールド標準意味ＤＢ１０２を参照して、可能性の高い入力フィールド標準意味を取得する（７１８）。可能性の高い入力フィールド標準意味として、例えば、ＤＢ１０２に記憶されている全ての入力フィールド標準意味を取得してもよいし、行っている操作が関連操作と一致する入力フィールド標準意味を取得してもよいし、入力フィールドタグＩＤやラベル名が関連キーワードと一致する入力フィールド標準意味を取得してもよい。なお、図８（ｃ）の例では、ラベル名の「ユーザ名」を利用して、図９の関連キーワードと一致する「ログインＩＤ」と「人名」を取得している。
【０１１９】
次に、取得した入力フィールド標準意味を可能性の高い順に並び替える（７２０）。可能性の高さは、例えば、行っている操作が関連操作と一致し、かつ、入力フィールドタグＩＤ等が関連キーワードと一致する入力フィールド標準意味の可能性を高いと判断してもよいし、これまでに収集した入力フィールド情報の中で高頻度に選択された入力フィールド標準意味の可能性を高いと判断してもよい。
【０１２０】
最後に、入力フィールド意味選択ＧＵＩを作成し、取得した入力フィールド標準意味を入力フィールド意味の候補として表示する（７２２）ことにより、ユーザに当該入力フィールドの意味を標準意味の中から選択してもらう。
【０１２１】
図１１は、入力フィールド意味選択ＧＵＩを利用して、入力フィールド情報を収集するまでのユーザ４５、クライアント４０、クライアント側装置１０、デバイス３０、クラウド側装置（サーバ）２０の動作シーケンスの一例を示している。なお、クラウド側装置２０の機能をクライアント側装置１０に備えさせる場合には、自動化装置６０が、図中のクライアント側装置１０として動作する。
【０１２２】
ユーザ４５は、クライアント４０のブラウザを起動して、デバイス３０の認証画面にアクセスする。すると、クライアント４０から認証画面を取得するためにＨＴＴＰリクエストがクライアント側装置１０へ送信される。クライアント側装置１０は、ＨＴＴＰリクエストをそのままデバイスへ送信する。デバイス３０は、認証画面を表示するためのメッセージであるＨＴＴＰレスポンス（図８（ａ））を、クライアント側装置１０に送信する。
【０１２３】
クライアント側装置１０は、デバイス３０からＨＴＴＰレスポンス（図８（ａ））を受け取ると、そのＨＴＴＰレスポンスを解析し、入力フィールド意味選択ＧＵＩ作成処理（処理の詳細は図１０）により、入力フィールド意味選択ＧＵＩ（図８（ｃ））を作成する。そして、作成した図８（ｃ）及び図８（ｃ）へのリンクを埋め込んだＨＴＴＰレスポンス（図８（ｂ））を作成し、クライアント４０へ送信する。
【０１２４】
ユーザ４５は、クライアント４０のブラウザに表示された図８（ｂ）から図８（ｃ）へのリンクをクリックし、適切な入力フィールド意味を選択する。選択された入力フィールド意味は、入力フィールド情報として、クライアント側装置１０に送信される。クライアント側装置１０は、クラウド側装置（サーバ）２０に入力フィールド情報を送信し、クラウド側装置（サーバ）２０は、受信した入力フィールド情報を収集データＤＢ２０２へ登録する。
【０１２５】
図１２は、このようにして収集データＤＢ２０２に登録された入力フィールド情報の一例を示している。装置ＩＤやクライアントＩＰは、複数存在する装置（クライアント側装置１０もしくは自動化装置６０）やクライアント４０を識別するための情報の一例である。ユーザ４５を識別するために、ユーザ名を含めてもよい。ユーザによって選択された入力フィールド標準意味は、入力フィールドの識別情報（例えば、製品名、画面名、入力フィールドタグＩＤ等）と対応付けて保存する。なお、デバイス３０が同一製品であっても、クライアント４０の種類によって管理画面が異なる場合は、クライアントの種別を同時に記録してもよい。
【０１２６】
図１３〜２０を参照して、デバイス管理画面の操作手順に関する情報（意味付き操作記録集合）の収集方法を説明する。図１３（ａ）は、デバイス管理画面の一例である。
【０１２７】
図１３（ｂ）は、操作手順記録ＧＵＩを、デバイス管理画面（図１３（ａ））に埋め込んだ一例である。図１３（ｃ）は、操作手順記録ＧＵＩの対象操作のセレクトボックスをクリックした時の一例である。この例では、操作手順記録ＧＵＩの表示内容が、操作記録前（図１３（ｄ））と記録中（図１３（ｅ））とで変化する。
【０１２８】
対象操作のセレクトボックスには、自動化プログラムが未だ生成されていない処理の操作名を表示する（図１３（ｃ））。ここで、ユーザが、対象操作としてこれから行う操作が属する処理の操作名を選択し、開始ボタン（図１３（ｄ））をクリックする。次に、ユーザは、選択した操作名の処理に属する一連の操作（１つの管理画面内で完結する場合もあれば、複数の管理画面に亘る場合もある）を行う。その間、操作手順記録ＧＵＩは、操作記録中の表示となっており、ユーザは、一連の操作の最後に、記録を終えるため、終了ボタン（図１３（ｅ））をクリックする。
【０１２９】
図１４は、自動化対象操作ＤＢ１０３，２０６に記憶される情報の一例を示している。操作名は、操作手順記録ＧＵＩや自動操作ＧＵＩの対象操作のセレクトボックスに表示する操作名として使用する。
【０１３０】
操作名は、分類や重要度、関連キーワードと対応付けて保存されている。分類は、全ての製品に共通する操作と一部の製品に共通する操作を区別するために使用する。重要度は、自動化プログラム生成の重要性を表すために使用するものであり、デバイス管理に必要な操作ほど重要度を高くする。これらの情報は、本システムの製造者もしくは管理者が予め登録しておくが、図４０に示すように、関連キーワードを動的に登録、更新することも可能である。
【０１３１】
図１５は、ＨＴＴＰレスポンスに埋め込む操作手順記録ＧＵＩを作成するために、ＧＵＩ埋め込み部１０６が行う動作の詳細を示している。
【０１３２】
まず、操作手順記録ＧＵＩに表示する操作名を、自動化対象操作ＤＢ１０３から取得する（７３０）。この時、「分類＝共通」の操作名だけを取得してもよいし、必要に応じて「分類＝固有」の操作名を取得してもよい。そして、取得した操作名から、自動化プログラムＤＢ１０５を参照して、自動化プログラム作成済みの操作名を除外する（７３２）。
【０１３３】
次に、取得した操作名を優先度の高い順に並び替える（７３４）。優先度の高さは、例えば、自動化対象操作ＤＢに記憶されている重要度や関連キーワードを踏まえ、埋め込むＨＴＴＰレスポンスに関連キーワードが含まれる操作名の優先度を高いと判断してもよいし、重要度が高い操作名の優先度を高いと判断してもよいし、画面ごとにユーザが選択した操作名の頻度を計測し、選択頻度の高い操作名の優先度を高いと判断してもよい。また、優先度の低い操作名を、表示しないように除外してもよい。
【０１３４】
最後に、操作手順記録ＧＵＩを作成し、取得した操作名（除外されていない操作名）を対象操作のセレクトボックスに表示する（７３６）ことにより、ユーザが操作名を選択し、記録の開始、終了を指定できるようにする。
【０１３５】
図１６と図１７は、それぞれブラウザ操作方式とＨＴＴＰリクエスト方式の場合の、操作手順を記録する動作の詳細を示している。ブラウザ操作方式の場合は、ＨＴＴＰ通信及びブラウザ操作から自動化プログラムが生成され、ＨＴＴＰリクエスト方式の場合は、ＨＴＴＰ通信のみから自動化プログラムが生成される。
【０１３６】
図１６においては、まず、クライアントから受信したＨＴＴＰリクエストが、ボタンクリックや入力フィールドへの入力などのブラウザ操作の通知か、デバイスへのＨＴＴＰリクエストかを判定する（７４０）。ブラウザ操作の通知であれば、その操作内容を記録する（７４２）。デバイスへのＨＴＴＰリクエストであれば、その内容を記録し（７４４）、デバイスへ送信する（７４６）。そして、デバイスからＨＴＴＰレスポンスを受信し、記録（７４８）した後、図１５のように操作手順記録ＧＵＩを作成し（７５０）、ＨＴＴＰレスポンスに埋め込んでクライアントへ送信する（７５２）。この時の操作手順記録ＧＵＩには、記録中の内容を表示する。
【０１３７】
図１７における動作の内容は、図１６の条件分岐がＮｏの場合（７６０）と同様であるため、説明を省略する。
【０１３８】
図１８は、操作手順記録ＧＵＩを利用して、意味付き操作記録集合を収集するまでのユーザ４５、クライアント４０、クライアント側装置１０、デバイス３０、クラウド側装置（サーバ）２０の動作シーケンスの一例を示している。なお、クラウド側装置２０の機能をクライアント側装置１０に備えさせる場合には、自動化装置６０が、図中のクライアント側装置１０として動作する。
【０１３９】
ユーザ４５は、クライアント４０のブラウザを起動して、デバイス３０の認証画面にアクセスする。すると、クライアント４０から認証画面を取得するためにＨＴＴＰリクエストがクライアント側装置１０へ送信される。クライアント側装置１０は、ＨＴＴＰリクエストをそのままデバイス３０へ送信する。デバイス３０は、認証画面を表示するためのメッセージであるＨＴＴＰレスポンス（図１３（ａ））をクライアント側装置１０に送信する。
【０１４０】
クライアント側装置１０は、デバイス３０からＨＴＴＰレスポンス（図１３（ａ））を受け取ると、操作手順記録ＧＵＩ作成処理（処理の詳細は図１５）によって作成した操作手順記録ＧＵＩを埋め込んだＨＴＴＰレスポンス（図１３（ｂ））を作成し、クライアント４０へ送信する。
【０１４１】
ユーザ４５は、クライアント４０のブラウザに表示された操作手順記録ＧＵＩ（図１３（ｃ））の操作対象の操作名を選択して、開始ボタンをクリックする。開始ボタンのクリックと同時に、操作手順記録ＧＵＩの表示内容は、記録前（図１３（ｄ））から記録中（図１３（ｅ））の内容に変わる。
【０１４２】
ユーザ４５は、選択した操作名の処理に属する操作を、クライアント４０のブラウザに表示されたデバイス管理画面上で実施する。記録中は、ボタンクリックや入力フィールドへの入力などのブラウザ操作の情報と、クライアント４０とデバイス３０間のＨＴＴＰ通信の情報が、全てクライアント側装置１０へ送られて、記録される（詳細は図１６又は図１７）。
【０１４３】
この操作手順記録のためのクライアント４０からクライアント側装置１０への通信は、クライアント４０からデバイス３０へのＨＴＴＰ通信がクライアント側装置１０を経由することにより行われてもよいし、クライアント４０からデバイス３０へのＨＴＴＰ通信とは別の通信として行われてもよい。
【０１４４】
このとき、各ユーザの判断によって操作名に対応付ける操作の違いが生じ難くすることが有効である。例えば、「ＩＰアドレス変更」という操作名に、「トップ画面→メニュー一覧→ＩＰアドレス変更」というＩＰアドレス変更画面に辿り着くまでの操作を含めるかどうかの判断が、ユーザによって異なる可能性が高い。そのため、開始ボタンがクリックされたら、トップ画面へ強制的に戻るようにし、ユーザには、トップ画面から操作してもらうようにするとよい。
【０１４５】
ユーザが、選択した操作名の処理に属する最後の操作を終えて、操作手順記録ＧＵＩの終了ボタンをクリックすると、操作手順記録ＧＵＩの表示内容は、記録前（図１３（ｄ））の内容に変わる。また、クライアント側装置１０は、それまでに記録した内容を意味付き操作記録集合として、クラウド側装置（サーバ）２０へ送信する。クラウド側装置（サーバ）２０は、受信した意味付き操作記録集合を収集データＤＢ２０２に保存する。
【０１４６】
図１９と図２０は、このようにして収集データＤＢ２０２に登録された意味付き操作記録集合の情報の一例（図１９はブラウザ操作方式の場合、図２０はＨＴＴＰリクエスト方式の場合）を示している。
【０１４７】
図１９において、装置ＩＤやクライアントＩＰは、複数存在する装置（クライアント側装置１０もしくは自動化装置６０）やクライアント４０を識別するための情報の一例である。ユーザ４５を識別するために、ユーザ名を含めてもよい。ユーザによって行われた操作に関する情報（操作種別やＵＲＬ、操作内容、ＨＴＴＰボディ部、操作日時等）は、製品名や操作名と対応付けて保存する。なお、デバイス３０が同一製品であっても、クライアント４０の種類によって管理画面が異なる場合は、クライアントの種別を同時に記録してもよい。
【０１４８】
図２０において、図１９と異なるのは、「操作内容」の代わりに「入力パラメータ」を保存することである。それ以外は、ブラウザ操作方式もＨＴＴＰリクエスト方式も、同様の内容を保存する。
【０１４９】
図２１〜２５を参照して、収集した操作に関する情報の解析方法について説明する。
【０１５０】
図２１は、入力フィールド意味判定部２０３により、ユーザから収集した入力フィールド情報（図１２）から入力フィールド意味を判定する動作の一例を示している。
【０１５１】
まず、収集データＤＢ２０２から、入力フィールドごとに、入力フィールド情報を取得する（８１０）。各入力フィールドは、製品名、画面名、入力フィールドタグＩＤによって識別される。
【０１５２】
次に、取得した入力フィールド情報中の入力フィールド標準意味の頻度と比率を計算する（８１２）。
【０１５３】
そして、最も比率が高く、頻度と比率が閾値以上の入力フィールド標準意味がある場合、その入力フィールドの意味と判定する（８１４）。こうすることで、図３（５）のような意味付け間違いを除外する。閾値を超える入力フィールド標準意味がない場合は、判定不可とする。
【０１５４】
図２２は、判定した入力フィールド意味の情報の一例を示し、この情報は、入力フィールド意味ＤＢ１０４，２０７に記憶される。
【０１５５】
入力フィールド意味の判定結果（入力フィールド標準意味、判定結果）は、判定の基となった情報（選択頻度や選択比率）とともに、入力フィールドを識別する情報（製品名、画面名、入力フィールドタグＩＤ）に対応づけて保存される。入力フィールド意味ＤＢ１０４に情報が存在しない場合や判定結果が判定不可となっている場合、その入力フィールドの意味は不明と判断される。
【０１５６】
図２３は、収集した意味付き操作記録集合（図１９又は図２０）から、自動化プログラム作成部２０４が自動化プログラムを作成する動作の一例を示している。
【０１５７】
まず、収集データＤＢ２０２から、製品名及び操作名ごとに意味付き操作記録集合を取得する（８２０）。意味付き操作記録集合とは、ユーザが操作手順記録ＧＵＩを用い、開始ボタンをクリックして、終了ボタンをクリックするまでに記録された一連の操作を指し、以下の条件を満たすデータを、収集データＤＢ２０２から検索することで取得できる。
（ア）製品名及び操作名が同一
（イ）装置ＩＤが同一
（ウ）クライアントＩＰアドレスが同一
（エ）上記（ア）〜（ウ）を満たし、「操作種別」が「記録開始」と「記録終了」間に含まれるレコード
そして、取得した全ての意味付き操作記録集合の中で、高頻度に含まれる操作を抽出する（８２２）。こうすることで、図３（３）のようなユーザの余分な操作や、図３（４）のような意味付け間違いを除外する。
【０１５８】
最後に、抽出した操作を自動化プログラムの形式に変換し、自動化プログラムＤＢ２０８へ登録する（８２４）。
【０１５９】
図２４と２５は、それぞれブラウザ操作方式の場合とＨＴＴＰリクエスト方式の場合の、自動化プログラムＤＢ１０５，２０８に記憶される情報の一例を示している。
【０１６０】
図２４において保存されている自動化プログラムの情報は、製品名及び操作名ごとに、行う操作の順序及び操作内容（ＵＲＬ、入力フィールドタグＩＤ、入力値の取得方法、操作）を対応付けたものである。
【０１６１】
図２５において保存されている自動化プログラムの情報は、製品名及び操作名ごとに、送信するＨＴＴＰリクエストの順序及びメッセージ内容（ＵＲＬ、入力フィールドタグＩＤ、入力値の取得方法、操作）を対応付けたものである。
【０１６２】
「操作」に登録する内容は、ブラウザ操作方式の場合、ブラウザ上で行う操作内容であるのに対して、ＨＴＴＰリクエスト方式の場合、ＨＴＴＰリクエスト作成に関する操作内容である。
【０１６３】
図４０にその一例が示されているように、入力フィールド意味ＤＢ１０４，２０７と自動化プログラムＤＢ１０５，２０８に登録された情報を利用して、入力フィールド標準意味ＤＢ１０２，２０５と自動化対象操作ＤＢ１０３，２０６に記憶されている関連操作や関連キーワードを更新することができる。
【０１６４】
具体的には、入力フィールド意味ＤＢと自動化プログラムＤＢから、対応関係（１）を抽出する。対応関係（１）は、両ＤＢを『入力フィールドタグＩＤ＝ａｃｃｏｕｎｔ＿ｉｄ』で対応付けることで得られる。
【０１６５】
そして、入力フィールド標準意味ＤＢの『入力フィールド標準意味＝ログインＩＤ』レコードの関連操作に「ログイン認証」を追加し、関連キーワードに「ａｃｃｏｕｎｔ＿ｉｄ」を追加する。また、自動化対象操作ＤＢの『操作名＝ログイン認証』のレコードの関連キーワードに「ａｃｃｏｕｎｔ＿ｉｄ」を追加する。
【０１６６】
入力フィールド意味ＤＢや自動化プログラムＤＢで、入力フィールドラベル名や画面名などを登録しておけば、それらの情報を入力フィールド標準意味ＤＢや自動化対象操作ＤＢの関連キーワードに追加することもできる。
【０１６７】
図２６〜３５を参照して、自動化プログラムを実行することによりデバイスを自動操作する方法について説明する。
【０１６８】
図２６は、実行時に必要な情報を事前に用意する例を示している。自動化プログラムを実行する際は、例えば、ユーザが保有するデバイス情報とデバイスに設定する値情報が必要となる。
【０１６９】
図２６（ａ）は、デバイス情報ＤＢ１１１に記憶される情報の一例を示す。ユーザが保有するデバイスを識別する情報（例えば、ＭＡＣアドレスやＩＰアドレス）が、デバイスの製品名と対応付けて保存されている。
【０１７０】
図２６（ｂ）は、設定情報ＤＢ１１２に記憶される情報の一例を示す。ユーザが保有するデバイスを識別する情報（例えば、ＭＡＣアドレス）と入力フィールド標準意味が、その設定値と対応付けて保存されている。設定情報ＤＢ１１２は、デバイス毎に異なり得る値を記憶できるようになっており、例えば、初期パスワードのように製品ごとに値が異なる場合、アラーム送信先のようにユーザごとに値が異なる場合、ワンタイムパスワードのように毎回値が異なる場合等、いずれの場合にも利用できる。
【０１７１】
これらのＤＢは、手動で作成しても、自動で作成してもよく、別途用意されたＤＢを利用することもできる。また、ユーザが入力した値や本システムが自動生成した値を利用して、これらＤＢを動的に変更することもできる。
【０１７２】
図２７は、自動操作実行部１１０により、あるデバイスを自動操作するために、自動化プログラムを取得して、実行する動作の一例を示している。
【０１７３】
まず、実行対象のデバイスの製品名を取得する（９１０）。製品名は、デバイス情報ＤＢ１１１を、ＭＡＣアドレスで検索して取得する。
【０１７４】
そして、実行対象の操作の自動化プログラムを取得する（９１２）。自動化プログラムは、自動化プログラムＤＢ１０５を、製品名と操作名で検索して取得する。
【０１７５】
次に、取得した自動化プログラムに含まれる入力フィールドの意味（入力フィールド標準意味）を取得する（９１４）。入力フィールド標準意味は、入力フィールド意味ＤＢ１０４を、製品名、画面名、入力フィールドタグＩＤで検索して取得する。なお、入力フィールドの意味については、その情報収集及び意味判定を行わずに、自動化プログラムの実行時にユーザがその都度指定するように、あるいは本システムの外部から入力フィールド意味ＤＢに記憶される情報を入手するように、本システムを構成してもよい。
【０１７６】
そして、自動化プログラムに含まれる入力フィールドに設定する値を取得する（９１６）。設定する値は、設定情報ＤＢ１１２を、ＭＡＣアドレスと入力フィールド標準意味で検索して取得する。新たに生成した値を設定する場合（例えば、パスワード変更における新パスワード等）には、例えば、値をランダム生成し、その値を入力フィールドに設定するとともに、設定情報ＤＢ１１２に書き込む。なお、入力フィールドの設定値については、設定情報ＤＢ１１２を備えずに、自動化プログラムの実行時にユーザがその都度入力するように、あるいは本システムの外部から設定情報ＤＢに記憶される情報を入手するように、本システムを構成してもよい。
【０１７７】
最後に、取得した自動化プログラムと入力フィールド設定値を使って、デバイスに対する自動操作を実行する（９１８）。
【０１７８】
図２８は、ブラウザ操作方式の自動化プログラム（実行前）の情報の一例を示している。設定値の欄には、自動化プログラム実行処理（図２７）で取得した値が設定されている。図２９は、図２８の自動化プログラムによって、デバイスの自動操作が行われる流れを示している。
【０１７９】
自動化プログラム（１）で、ログイン画面を表示する。表示されたログイン画面に対して、自動化プログラム（２）〜（４）が、ログイン認証を行う。そして、自動化プログラム（５）が、ログイン後の画面のリンクをクリックし、パスワード変更画面を開く。最後に、自動化プログラム（６）〜（８）が、パスワード変更を完了する。
【０１８０】
なお、図２９の例において、『ログイン画面のパスワード入力フィールド』と『パスワード変更画面の旧パスワード入力フィールド』は、タグＩＤやラベル名は異なっているものの、本来同一の意味であるため、入力フィールド意味選択ＧＵＩを介して同一の意味を付与することにより、設定情報ＤＢには、その一つの意味に対応させて一つの値を記憶しておけば、自動化プログラムの実行が可能になる。
【０１８１】
図３０は、ＨＴＴＰリクエスト方式の自動化プログラム（実行前）の情報の一例を示している。設定値の欄には、自動化プログラム実行処理（図２７）で取得した値が設定されているが、ｈｉｄｄｅｎ＿ｉｄの設定値は、自動化プログラム実行時、直前のＨＴＴＰレスポンスから取得して設定する。図３１は、図３０の自動化プログラムによって、デバイスの自動操作が行われる流れを示している。
【０１８２】
自動化プログラム（１）が、ログイン画面を表示するためのＨＴＴＰリクエストを作成する。作成したＨＴＴＰリクエストをデバイスへ送信し、デバイスからＨＴＴＰレスポンス（１）’を受信する。次に、自動化プログラム（２）が、ログイン認証用のＨＴＴＰリクエストを作成する。この時、ｈｉｄｄｅｎ＿ｉｄの設定値は、ＨＴＴＰレスポンス（１）’から取得し設定する。作成したＨＴＴＰリクエストをデバイスへ送信し、デバイスからＨＴＴＰレスポンス（２）’を受信する。
【０１８３】
そして、自動化プログラム（３）が、パスワード変更画面を表示するためのＨＴＴＰリクエストを作成し、デバイスへ送信して、デバイスからＨＴＴＰレスポンス（３）’を受信する。最後に、自動化プログラム（４）が、パスワード変更用のＨＴＴＰリクエストを作成し、デバイスへ送信して、デバイスからＨＴＴＰレスポンス（４）’を受信し、パスワード変更が完了する。
【０１８４】
自動化プログラムを実行するには、自動操作ＧＵＩから実行する方法（例えば、図３２〜３４）と、所定の条件が満たされたら自動的に実行する方法（例えば、図３５）がある。
【０１８５】
図３２（ａ）は、デバイス管理画面の一例を示している。図３２（ｂ）は、自動操作ＧＵＩをデバイス管理画面に埋め込んだ一例を示しており、対象操作のセレクトボックスには、自動化プログラム作成済みの操作名が表示される。ユーザが、対象操作を選択して、実行ボタンをクリックすると、選択した操作の自動化プログラムを実行できる。
【０１８６】
図３３は、クライアント側装置１０又は自動化装置６０のＧＵＩ埋め込み部１０６により、ＨＴＴＰレスポンスに埋め込む自動操作ＧＵＩを作成する動作の一例を示している。
【０１８７】
まず、自動操作ＧＵＩに表示する操作名を取得する（９３０）。このとき、自動化対象操作ＤＢ１０３から 「分類＝共通」の操作名だけを取得してもよいし、必要に応じて「分類＝固有」の操作名を取得してもよい。
【０１８８】
そして、取得した操作名から、自動化プログラムＤＢ１０５を参照して、自動化プログラム未作成の操作名を除外する（９３２）。
【０１８９】
次に、取得した操作名を優先度の高い順に並び替える（９３４）。優先度の高さは、例えば、埋め込むＨＴＴＰレスポンスに関連キーワードが含まれる操作名の優先度を高いと判断してもよいし、重要度が高い操作名の優先度を高いと判断してもよいし、画面ごとにユーザが選択した操作名の頻度を計測し、選択頻度の高い操作名の優先度を高いと判断してもよい。また、優先度の低い操作名を、表示しないように除外してもよい。
【０１９０】
最後に、自動操作ＧＵＩを作成し、取得した操作名を対象操作のセレクトボックスに表示する（９３６）ことにより、ユーザが上記操作名を選択して、自動化プログラムを実行できるようにする。
【０１９１】
図３４は、自動操作ＧＵＩを利用して、自動化プログラムを実行するまでのユーザ４５、クライアント４０、装置１０又は６０、デバイス３０の動作シーケンスの一例を示している。
【０１９２】
ユーザ４５は、クライアント４０のブラウザを起動して、デバイス３０の認証画面にアクセスする。すると、クライアント４０から認証画面を取得するためにＨＴＴＰリクエストが装置１０／６０へ送信される。装置１０／６０は、ＨＴＴＰリクエストをそのままデバイス３０へ送信する。
【０１９３】
デバイス３０は、認証画面のデータを含むＨＴＴＰレスポンス（図３２（ａ））を装置１０／６０に送信する。装置１０／６０は、デバイス３０からＨＴＴＰレスポンス（図３２（ａ））を受け取ると、自動操作ＧＵＩ作成処理（処理の詳細は図３３）によって作成した自動操作ＧＵＩを埋め込んだＨＴＴＰレスポンス（図３２（ｂ））を作成し、クライアント４０へ送信する。
【０１９４】
ユーザ４５が、クライアント４０のブラウザに表示された自動操作ＧＵＩから操作対象の操作名を選択して実行ボタンをクリックすると、装置１０／６０は、当該操作の自動化プログラム実行処理（処理の詳細は図２７）によって、デバイスの自動操作を行う。
【０１９５】
図３５は、自動化プログラムを定期実行する方法を示しており、図３５（ａ）は、定期実行の設定をする際のクライアント４０及び装置１０／６０の動作シーケンスの一例を示し、図３５（ｂ）は、定期実行する際の装置１０／６０及びデバイス３０の動作シーケンスの一例を示す。
【０１９６】
定期実行の設定時には、クライアント４０から装置１０／６０に定期実行の設定をするが、この際、実行対象のデバイス及び操作を特定するために、デバイス識別情報（例えば、ＩＰアドレス又はＭＡＣアドレス等）、操作名、実行日時を対応付けて設定する。定期実行のためには、装置１０／６０は、設定された実行日時になると、自動化プログラム実行処理（処理の詳細は図２７）によって、特定されたデバイスの自動操作を行う。
【０１９７】
図３６は、本実施形態を活用し、ユーザが保有するデバイスの初期パスワードを一括変更する例を説明するための図である。
【０１９８】
ユーザが複数デバイスを保有している場合、デバイス管理画面のパスワードを１台ずつ変更し、変更後のパスワードを記憶することは大きな負担となる。本実施形態を活用すると、保有するデバイスの初期パスワードを一括変更し、変更後のパスワードの記憶が不要になる。パスワード変更後、各デバイスの管理画面へのログイン認証も、本実施形態の自動化プログラムを利用して行うことができる。
【０１９９】
図３７は、デバイスの初期パスワード一括変更のために、本実施形態の各ＤＢへ登録する情報の一例を示している。
【０２００】
デバイス情報ＤＢには、ユーザが保有するデバイスの情報を登録する。自動化プログラムＤＢには、保有するデバイスの製品に関するログイン認証とパスワード変更の自動化プログラムを登録する。入力フィールド意味ＤＢには、上記自動化プログラムに関連する入力フィールドの意味を登録する。
【０２０１】
初期パスワードＤＢは、保有するデバイスが初期パスワードから未変更か確認するために、新しく追加するＤＢである。このＤＢには、保有するデバイスの製品に関する初期アカウントとパスワードを登録する。
【０２０２】
設定情報ＤＢには、デバイス初期パスワード一括変更処理（処理の詳細は図３８）によって変更されたデバイス管理画面の新パスワードを登録する。新パスワードは、ログイン認証の自動化プログラム実行時に使用する。
【０２０３】
図３８に、保有するデバイスに対して、管理画面の初期パスワードを一括変更する処理の詳細を示す。
【０２０４】
まず、保有する全デバイスの情報を取得する。次に、初期パスワードＤＢを参照し、各デバイスに対して、デバイス管理画面に初期パスワードでログイン認証できるか確認する。ログイン認証できた場合は、新しいパスワードをランダムに生成し、設定情報ＤＢへの登録とパスワード変更を行う。
【０２０５】
図３９に、デバイス管理画面の初期パスワードを一括変更し、その後、デバイス管理画面へログインするまでのユーザ４５、クライアント４０、装置１０／６０、デバイス３０の動作シーケンスの一例を示す。
【０２０６】
ユーザ４５は、装置１０／６０に対して、デバイス初期パスワード一括変更を実行するように要求する。装置１０／６０は、デバイス初期パスワード一括変更処理（処理の詳細は図３８）によって、各デバイス３０の初期パスワードを新しいパスワードに変更する。
【０２０７】
デバイス初期パスワード一括変更後、ユーザ４５は、自動操作ＧＵＩを使用して、デバイス管理画面へのログイン認証を行ってもよい（自動操作ＧＵＩを使用した自動化プログラム実行の処理の詳細は図２７）。
【０２０８】
なお、上述した本システムのうち、入力フィールド意味ＧＵＩを介して収集した情報に基づいて（ＧＵＩ埋め込み部１０６、入力フィールド意味受信部１０７、収集データＤＢ２０２、入力フィールド意味判定部２０３により）作成される入力フィールド意味ＤＢ１０４，２０７は、本システムの自動操作実行部１１０で用いる以外にも、以下のような用途に供することができる。
【０２０９】
例えば、入力フィールド意味ＤＢ１０４，２０７と、必要に応じて設定情報ＤＢ１１２を用いることにより、複数のＷｅｂ画面（それぞれが入力フィールドを有する）に対して、同一の内容を自動入力したり、異なるデバイスの管理画面に対して、同一内容の設定を自動で行ったりすることができる。
【０２１０】
この場合の装置は、例えば、デバイスと該デバイスを管理するための画面を表示してユーザからの操作を受け取る端末との間の通信を仲介可能な位置に設けられて、前記デバイスから前記端末への管理画面表示のための通信に、前記操作がフィールドに値を入力するものである場合に、該フィールドの意味を付与するためのユーザインタフェース（前記管理画面にフィールドの意味の候補を表示してユーザに選択させる構成を含んでもよい）を埋め込む手段と、該ユーザインタフェースを介して付与された前記フィールドの意味の情報を収集して記録する手段とを備える。そして、この装置又は別の装置が、フィールドの意味に対応付けて該フィールドに入力すべき値を記憶する手段と、前記管理画面を介して行われる操作を前記端末から前記デバイスへ伝えるための通信に含まれる前記フィールドに、記憶されている前記値を入力する手段とを備える。
【０２１１】
以上、本発明の実施の形態について説明したが、上述の実施形態を当業者が種々に変形、改良、応用等して実施できることは勿論であり、そのような形態も本発明の範囲に含まれる。
【図１】
2018205897.tif 000003
【図２】
2018205897.tif 000004
【図３】
2018205897.tif 000005
【図４】
2018205897.tif 000006
【図５】
2018205897.tif 000007
【図６】
2018205897.tif 000008
【図７】
2018205897.tif 000009
【図８】
2018205897.tif 000010
【図９】
2018205897.tif 000011
【図１０】
2018205897.tif 000012
【図１１】
2018205897.tif 000013
【図１２】
2018205897.tif 000014
【図１３】
2018205897.tif 000015
【図１４】
2018205897.tif 000016
【図１５】
2018205897.tif 000017
【図１６】
2018205897.tif 000018
【図１７】
2018205897.tif 000019
【図１８】
2018205897.tif 000020
【図１９】
2018205897.tif 000021
【図２０】
2018205897.tif 000022
【図２１】
2018205897.tif 000023
【図２２】
2018205897.tif 000024
【図２３】
2018205897.tif 000025
【図２４】
2018205897.tif 000026
【図２５】
2018205897.tif 000027
【図２６】
2018205897.tif 000028
【図２７】
2018205897.tif 000029
【図２８】
2018205897.tif 000030
【図２９】
2018205897.tif 000031
【図３０】
2018205897.tif 000032
【図３１】
2018205897.tif 000033
【図３２】
2018205897.tif 000034
【図３３】
2018205897.tif 000035
【図３４】
2018205897.tif 000036
【図３５】
2018205897.tif 000037
【図３６】
2018205897.tif 000038
【図３７】
2018205897.tif 000039
【図３８】
2018205897.tif 000040
【図３９】
2018205897.tif 000041
【図４０】
2018205897.tif 000042
【図４１】
2018205897.tif 000043