(57)【要約】  依存関係検出装置２０は、構築対象システムの配備を自動で行う自動化ツールが配備で使用するひな型に定義される構築対象システムへの操作と、構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、操作が実行された後の構成要素の状態を前提とする配備の手順を学習する強化学習タスクを実行する実行手段２１を備える。
2020161994.tif 000002
【特許請求の範囲】
【請求項１】
構築対象システムの配備を自動で行う自動化ツールが前記配備で使用するひな型に定義される前記構築対象システムへの操作と、前記構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、前記操作が実行された後の前記構成要素の状態を前提とする前記配備の手順を学習する強化学習タスクを実行する実行手段を備える
ことを特徴とする依存関係検出装置。
【請求項２】
ひな型と、前記ひな型に定義される操作と、前記操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、前記操作が実行される前の前記構成要素の状態および前記操作が実行された後の前記構成要素の状態を示す強化学習タスクの実行結果とを基に、前記自動化ツールが前記ひな型を用いて実行する前記操作が成立するための条件が存在するか否かを分析する分析手段を備える
請求項１記載の依存関係検出装置。
【請求項３】
前記分析手段は、強化学習タスクの複数の実行結果を統計的に分析することによって取得された操作が成立するための条件を前記操作の依存関係として提示する
請求項２記載の依存関係検出装置。
【請求項４】
操作の依存関係は、前記操作と構成要素の状態との関係である
請求項３記載の依存関係検出装置。
【請求項５】
強化学習タスク定義を基に対応関係情報を生成する生成手段を備える
請求項２から請求項４のうちのいずれか１項に記載の依存関係検出装置。
【請求項６】
前記生成手段は、状態定義の名称の特徴または行動定義の名称の特徴のいずれかに関する所定のルールで強化学習タスク定義を解釈することによって対応関係情報を生成する
請求項５記載の依存関係検出装置。
【請求項７】
前記実行手段は、配備の手順を学習する前に実行される操作を探索アルゴリズムに従って探索する
請求項１から請求項６のうちのいずれか１項に記載の依存関係検出装置。
【請求項８】
構築対象システムの配備を自動で行う自動化ツールが前記配備で使用するひな型に定義される前記構築対象システムへの操作と、前記構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、前記操作が実行された後の前記構成要素の状態を前提とする前記配備の手順を学習する強化学習タスクを実行する
ことを特徴とする依存関係検出方法。
【請求項９】
ひな型と、前記ひな型に定義される操作と、前記操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、前記操作が実行される前の前記構成要素の状態および前記操作が実行された後の前記構成要素の状態を示す強化学習タスクの実行結果とを基に、前記自動化ツールが前記ひな型を用いて実行する前記操作が成立するための条件が存在するか否かを分析する
請求項８記載の依存関係検出方法。
【請求項１０】
コンピュータで実行されるときに、
構築対象システムの配備を自動で行う自動化ツールが前記配備で使用するひな型に定義される前記構築対象システムへの操作と、前記構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、前記操作が実行された後の前記構成要素の状態を前提とする前記配備の手順を学習する強化学習タスクを実行する
依存関係検出プログラム
を記録したコンピュータ読み取り可能な記録媒体。
【請求項１１】
コンピュータで実行されるときに、
ひな型と、前記ひな型に定義される操作と、前記操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、前記操作が実行される前の前記構成要素の状態および前記操作が実行された後の前記構成要素の状態を示す強化学習タスクの実行結果とを基に、前記自動化ツールが前記ひな型を用いて実行する前記操作が成立するための条件が存在するか否かを分析する分析処理を実行する
請求項１０記載の依存関係検出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、依存関係検出装置および依存関係検出方法に関し、特に情報システムの構築、デプロイ、または配備の自動化で使用される依存関係検出装置および依存関係検出方法に関する。
【背景技術】
【０００２】
サーバや通信ネットワーク機器等で構成されるIT(Information Technology)システムの構築作業は、設計、配備（デプロイ）作業の具体化、デプロイの実行の３つの手続きで主に構成される。設計の手続きには、例えば構成要素の具体化、構成要素間の関係性の決定、各構成要素内の設定項目の検討が含まれる。【０００３】
上記の構築作業は、例えば技術者が各手続きをそれぞれ手動で行うことによって実行される。しかし、デプロイに関する２つ目の手続きと３つ目の手続きを自動で行うツール（以下、自動化ツールと呼ぶ。）も、構築作業において多く使用されている。【０００４】
例えば、非特許文献１に記載されている自動化ツール、および非特許文献２に記載されている自動化ツールは、利用者が所望するITシステムの状態が宣言的に記述されると、対象のITシステムの状態を利用者が所望する状態に変更する。【０００５】
ITシステムの状態を変更する際、非特許文献１に記載されている自動化ツール、および非特許文献２に記載されている自動化ツールは、自動化ツールの利用者に具体的な変更作業を意識させない。自動化ツールを活用することによって、ITシステムの管理者は、デプロイに係る多くの作業を自動化できる。【０００６】
上記の各自動化ツールは、ITシステムの構成が記述可能なように、独自の文法に基づいた記法をそれぞれ定義している。自動化ツールの利用者は、所望するITシステムの状態を、定義されている記法に従って記述する。【０００７】
また、上記の各自動化ツールは、ミドルウェアや特定のネットワーク機器等、構成を設定する対象ごとに、構成を記述するための再利用可能なひな型をそれぞれ提供している。【０００８】
例えば、ひな型には、対象の構成を設定するために求められる操作と、操作のパラメータの定義が含まれる。対象の構成を設定するために求められる操作は、例えば設定ファイルの書き換え、コマンドラインインタフェースからのコマンドの投入、各種アプリケーションプログラミングインタフェース(Application Programming Interface:API) の実行である。【０００９】
また、パラメータは、主に設定ファイルに書き込まれる値、コマンド投入時やAPI 実行時の引数、および操作対象の操作後の状態を表す。自動化ツールの利用者は、独自に指定するパラメータの値のみをひな型に指定することによって、ITシステムの所望の状態をより簡便に表現できる。【００１０】
また、多くの自動化ツールが提供するひな型の構造は、再帰呼び出しを許す構造である。すなわち、自動化ツールの利用者は、複数のひな型を組み合わせることによって、新たなひな型を生成できる。【００１１】
上記の理由により、自動化ツールの利用者は、自動化ツールを用いて複数のミドルウェアや通信ネットワーク機器等が組み合わせられたITシステムの構成を一括で定義し、かつデプロイまで実行できる。なお、自動化ツールの利用者には、自動化ツールで利用される構成が記述されたひな型を原則手動で生成することが求められる。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】"Puppet"、[online]、Puppet、[ 平成31年1 月24日検索] 、インターネット<https://puppet.com/>
【非特許文献２】"Ansible" 、[online]、Red Hat 、[ 平成31年1 月24日検索] 、インターネット<https://www.ansible.com/>
【発明の概要】
【発明が解決しようとする課題】
【００１３】
上述したように、自動化ツールで利用されるひな型には、対象の構成の設定に求められる複数の操作が定義される。定義される複数の操作の間には、各操作が相手に与える影響や依存関係が存在する場合がある。すなわち、自動化ツールの利用者には、複数の操作の間に存在する影響や依存関係をよく検討し、重要な影響や依存関係をひな型に記述することも求められる場合がある。【００１４】
例えば、テキストファイルを設定ファイルとして有し、サービス起動時に設定ファイルを読み込むことによって設定ファイル内の記述内容に沿った動作を実現するソフトウェアを設定および制御する自動化ツールを考える。【００１５】
上記の自動化ツールが提供するひな型には、操作「設定ファイルの書き換え」、操作「サービス起動」という２つの操作が定義される。操作「設定ファイルの書き換え」は、ソフトウェアの設定を変更することを目的に行われる操作である。しかし、設定の変更が反映されるためには、上述したソフトウェアの動作の仕様上、操作「サービス起動」の実行も求められる。【００１６】
上記のような、２つの操作の間に存在する連動して実行されることが求められる関係性は、自動化ツールが提供するひな型において、対象の操作と、連動して実行されることが求められる別の操作の状態に関するパラメータとの間に定義される依存関係として表現される。【００１７】
上記の例であれば、自動化ツールが提供するひな型において、操作「設定ファイルの書き換え」に、操作「サービス起動」の状態に関するパラメータ「再起動」への依存関係が定義される。【００１８】
依存関係の定義に過不足があると、ひな型にパラメータが適切に設定されても、構成が正しく設定されない恐れがある。よって、ひな型を生成する自動化ツールの開発者やITシステムの開発者および運用者は、複数の操作間の関係性をよく確認したり、テストを行ったりして依存関係をひな型に定義している。以下、上記の複数の操作間の関係性に対する作業を、検証と呼ぶ。【００１９】
しかし、単一のひな型への操作の追加による操作数の増加やひな型が再帰的に定義されることによる操作数の増加等が原因で、検証の対象になる操作の組み合わせは、容易に指数関数的に増加する。すなわち、所定の規模以上のひな型に対して十分な検証を行うことは困難である。【００２０】
そこで、本発明は、上述した課題を解決する、規模の比較的大きなひな型における依存関係を容易に検出できる依存関係検出装置および依存関係検出方法を提供することを目的とする。
【課題を解決するための手段】
【００２１】
本発明による依存関係検出装置は、構築対象システムの配備を自動で行う自動化ツールが配備で使用するひな型に定義される構築対象システムへの操作と、構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、操作が実行された後の構成要素の状態を前提とする配備の手順を学習する強化学習タスクを実行する実行手段を備えることを特徴とする。【００２２】
本発明による依存関係検出方法は、構築対象システムの配備を自動で行う自動化ツールが配備で使用するひな型に定義される構築対象システムへの操作と、構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、操作が実行された後の構成要素の状態を前提とする配備の手順を学習する強化学習タスクを実行することを特徴とする。【００２３】
本発明による依存関係検出プログラムを記録したコンピュータ読み取り可能な記録媒体は、コンピュータで実行されるときに、構築対象システムの配備を自動で行う自動化ツールが配備で使用するひな型に定義される構築対象システムへの操作と、構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、操作が実行された後の構成要素の状態を前提とする配備の手順を学習する強化学習タスクを実行する依存関係検出プログラムを記憶する。
【発明の効果】
【００２４】
本発明によれば、規模の比較的大きなひな型における依存関係を容易に検出できる。
【図面の簡単な説明】
【００２５】
【図１】本発明による依存関係検出装置の第１の実施形態の構成例を示すブロック図である。
【図２】強化学習タスク定義の例を示す説明図である。
【図３】ひな型対応関係の例を示す説明図である。
【図４】強化学習実行部１３０が強化学習タスクを実行することによって取得する結果ログの例を示す説明図である。
【図５】結果ログ分析部１４０が結果ログから取得した分析結果の例を示す説明図である。
【図６】結果ログ分析部１４０が結果ログから取得した分析結果の他の例を示す説明図である。
【図７】第１の実施形態の依存関係検出装置１００による分析結果出力処理の動作を示すフローチャートである。
【図８】第１の実施形態の強化学習実行部１３０による強化学習処理の動作を示すフローチャートである。
【図９】本発明による依存関係検出装置の第２の実施形態の構成例を示すブロック図である。
【図１０】第２の実施形態の依存関係検出装置１０１による分析結果出力処理の動作を示すフローチャートである。
【図１１】本発明による依存関係検出装置のハードウェア構成例を示す説明図である。
【図１２】本発明による依存関係検出装置の概要を示すブロック図である。
【発明を実施するための形態】
【００２６】
＝＝第１の実施の形態＝＝
［構成の説明］
以下、本発明の実施形態を、図面を参照して説明する。図１は、本発明による依存関係検出装置の第１の実施形態の構成例を示すブロック図である。
【００２７】
上述したように、ITシステムの配備を自動化する自動化ツールが用いられる自動配備用に生成されるひな型に記述される操作と、操作が実行可能な状態との依存関係を正しく検証および記述することには、多くの手間を要する。特に、規模の比較的大きなひな型の場合、より多くの手間を要する。
【００２８】
本実施形態の依存関係検出装置は、検証対象のひな型を使用して強化学習を行うというタスク（以下、強化学習タスクと呼ぶ。）を実行する。事前に入力された状態遷移と状態との対応情報を用いて強化学習タスクで得られるログ情報を分析することによって、依存関係検出装置は、ひな型に定義された依存関係の過不足が無いか確認する。
【００２９】
配備を自動で行う自動化ツールが提供するひな型に定義された依存関係を効率的に検証するためには、膨大なテストパターンの組み合わせから適当な組み合わせを選択し、選択された組み合わせを実行した後に評価することが求められる。
【００３０】
組み合わせを選択し実行するという過程が、強化学習では探索プロセスで行われる。探索プロセスのログ情報を分析することによって、依存関係検出装置は、ひな型に定義された依存関係に過不足が無いか確認できる。
【００３１】
また、強化学習が行われると、環境の状態に応じて最適な制御が異なる制御タスクの学習が、通常の機械学習（教師あり学習）で使用される学習データが事前に準備されなくても実行可能になる。
【００３２】
なお、強化学習では、通常の機械学習の特徴量データに代えて環境の状態情報、ラベルデータに代えて報酬という環境から観測される値、または環境から与えられる値がそれぞれ利用される。
【００３３】
図１に示すように、本実施形態の依存関係検出装置１００は、強化学習タスク定義入力部１１０と、ひな型対応関係入力部１２０と、強化学習実行部１３０と、結果ログ分析部１４０と、分析結果出力部１５０とを備える。
【００３４】
また、図１に示すように、強化学習タスク定義入力部１１０には、強化学習タスク定義が入力される。また、ひな型対応関係入力部１２０には、ひな型対応関係が入力される。
【００３５】
また、図１に示すように、依存関係検出装置１００は、検証環境２００と通信可能に接続されている。強化学習実行部１３０は、検証環境２００で強化学習タスクを実行する。強化学習タスクが実行された後、分析結果出力部１５０は、分析結果を出力する。
【００３６】
利用者は、例えばITシステムのデプロイ手順が学習されるために実行される強化学習タスクを示す強化学習タスク定義を、強化学習タスク定義入力部１１０に入力する。また、利用者は、検証対象の自動化ツールが提供するひな型と強化学習タスク定義に定義された状態および行動との対応関係を示すひな型対応関係を、ひな型対応関係入力部１２０に入力する。
【００３７】
図２は、強化学習タスク定義の例を示す説明図である。図２に示す強化学習タスク定義は、オープンソースのクラウド基盤ソフトウェアであるOpenStack のアップグレード手順を学習するための強化学習タスクの定義例である。
【００３８】
また、図３は、ひな型対応関係の例を示す説明図である。図３に示すひな型対応関係は、図２に示す強化学習タスク定義に対応する。
【００３９】
図２に示す強化学習タスク定義に記載された行動定義が示す行動は、検証対象の自動化ツールが提供するひな型が使用されて実行されることを特徴とする。なお、行動定義が示す行動は、上述したひな型に定義される操作に相当する。
【００４０】
例えば、図２に示す行動定義の１行目「Keystoneパッケージ[upgrade/downgrade] 」は、OpenStack のサブコンポーネントであるKeystoneのソフトウェアのアップデートおよびダウングレードを行う操作を示す。
【００４１】
なお、Keystoneのソフトウェアのアップデートおよびダウングレードは、例えばAPT(Advanced Packaging Tool)やYUM(Yellowdog Updater Modified) 等のLinux （登録商標）系OS(Operating System)のパッケージ管理システムを用いて行われる。
【００４２】
本実施形態の行動定義が示す行動は、自動化ツールが提供するひな型が使用されて実行される。すなわち、検証対象の自動化ツールが提供するひな型は、図２に示す強化学習タスク定義に定義される行動が実行される際に利用される。
【００４３】
また、図２に示す強化学習タスク定義に記載された各状態定義は、状態を特徴付ける要素にそれぞれ対応している。学習対象のシステム全体に渡る状態空間は、各要素の直積で定義される。
【００４４】
例えば、図２に示す状態定義の１行目は、Keystoneのパッケージソフトウェアのバージョンを表す状態要素を示す。また、状態定義の１行目が示す状態要素が取り得る状態は、queens,rocky,otherの３種類であると定義されている。本実施形態の強化学習タスク定義は、定義される各行動に対して１つ以上の行動が実行された結果、変更が想定される状態の状態定義を有する。
【００４５】
また、図２に示す強化学習タスク定義に記載された探索アルゴリズム、学習アルゴリズム、および報酬関数は、いずれも強化学習タスクが実行される時に使用される。
【００４６】
図３に示すひな型対応関係では、図２に示す強化学習タスク定義に定義された行動と状態との対応関係に加えて、各行動が実行される際に使用されるひな型も指定される。
【００４７】
例えば、図３に示す最上段の対応関係は、Keystoneパッケージのアップグレードおよびダウングレードという行動がパッケージのバージョン(keystone package version)の状態を変更し、かつひな型「Keystone package」が使用されて実行されることを示す。
【００４８】
なお、図３に示す下線付きの状態は、行動後の遷移先として意図される状態である。例えば、図３に示す最下段の対応関係は、NovaDBマイグレーションという行動が実行されると、Novaデータベースのバージョンがrocky に遷移することが意図されていることを示す。
【００４９】
なお、下線は付されていないが、最上段の対応関係、および２段目の対応関係も、行動後の遷移先として意図される状態を含む。
【００５０】
入力された強化学習タスク定義は、強化学習タスク定義入力部１１０から強化学習実行部１３０に入力される。強化学習実行部１３０は、入力された強化学習タスク定義を用いて強化学習タスクを実行する。
【００５１】
本実施形態において、強化学習の対象のITシステムは、検証環境２００に構築されている。強化学習実行部１３０は、検証環境２００上で自動化ツールが提供するひな型を用いて、入力された強化学習タスク定義が示す行動を実行する。
【００５２】
さらに、強化学習実行部１３０は、行動が実行された後のITシステムの状態を取得する。強化学習実行部１３０は、取得された状態や報酬関数に基づいた報酬の計算等、一般的な強化学習タスクが実行される時に求められる処理を行う。
【００５３】
図４は、強化学習実行部１３０が強化学習タスクを実行することによって取得する結果ログの例を示す説明図である。取得された結果ログは、自動化ツールが使用された手順の学習で発生した探索のログデータである。
【００５４】
図４に示す各結果ログは、行動の実行前の状態と、行動の内容と、行動の実行後の状態とを示す。なお、図４に示す各状態は、図３に示す略称（括弧内の名称）で表されている。
【００５５】
例えば、上から１つ目の結果ログは、Keystoneのパッケージアップグレードという行動が実行されたことによって、Keystoneのパッケージバージョンの状態が、queensからrocky へ変化したことを示す。
【００５６】
強化学習タスクを終了した後、強化学習実行部１３０は、取得された結果ログを結果ログ分析部１４０に入力する。結果ログ分析部１４０は、ひな型対応関係入力部１２０から入力されたひな型対応関係が示す内容を基に、結果ログを分析する。
【００５７】
結果ログ分析部１４０は、分析処理において、ひな型対応関係が示す行動と状態との対応関係と、結果ログが示す行動と行動後に変化した状態との対応関係を比較する。比較した後、結果ログ分析部１４０は、各行動に関して行動後に意図された状態変化が発生する条件を、ITシステム全体の状態も踏まえて予測する。
【００５８】
図５は、結果ログ分析部１４０が結果ログから取得した分析結果の例を示す説明図である。図５に示す分析結果は、図４に示す上から５つ目の結果ログの内容に対応している。
【００５９】
図５に示す事後状態には、dbの状態がrocky ではなくqueens（図４に示す「362 」）のままであることが記載されている。よって、事前状態に関わらず行動「Nova database migration 」が実行されても意図された状態変化が発生していないため、結果ログ分析部１４０は、図５に示すように未知の依存関係が存在すると分析している。
【００６０】
なお、結果ログ分析部１４０は、複数回同様の行動が実行された結果が記録された結果ログの情報を基に統計的に判断した結果を分析結果としてもよい。統計的に判断された分析結果は、強化学習タスク定義に定義された状態以外に行動が依存している状態の存在を示唆する可能性がある。
【００６１】
例えば、図５に示す「nova flavor db migrationの実行」等、強化学習タスク定義に定義されていない行動（操作）の実行を要するという依存関係が判明する場合がある。すなわち、強化学習タスク定義に定義された状態以外に行動が依存している状態が、行動を成功させるための条件である。
【００６２】
また、結果ログ分析部１４０は、特定の行動が実行された際、強化学習タスク定義に定義された状態空間全体に関する条件を、強化学習タスクの結果ログを統計処理することによって分析してもよい。分析対象の条件は、ひな型対応関係で対応付けられた状態が変化するための条件である。分析した後、結果ログ分析部１４０は、特定の行動が成功するための状態に関する依存関係を提示する。
【００６３】
図６は、結果ログ分析部１４０が結果ログから取得した分析結果の他の例を示す説明図である。図６に示す分析結果は、図４に示す上から２つ目の結果ログの内容と、上から３つ目の結果ログの内容に対応している。
【００６４】
図６に示すように、結果ログ分析部１４０は、行動「Nova service start」が実行された後に意図された状態変化（sv:stopped→sv:started）が発生するか否かは、auの事前状態に依存すると分析している。具体的には、auの事前状態が5000であれば、意図された状態変化が発生する。また、auの事前状態が35357 であれば、意図された状態変化が発生しない。
【００６５】
よって、結果ログ分析部１４０は、行動「Nova service start」が状態「keystone認証ポートが5000番」に依存しているという依存関係を検出する。結果ログ分析部１４０は、図５および図６に示す分析結果を行動ごとにまとめる。
【００６６】
結果ログ分析部１４０は、行動ごとにまとめられた分析結果を分析結果出力部１５０に入力する。分析結果出力部１５０は、入力された内容を最終的な分析結果として出力する。分析結果出力部１５０が出力する分析結果が、依存関係検出装置１００が利用者に提示する分析結果である。
【００６７】
［動作の説明］
以下、本実施形態の依存関係検出装置１００の動作を図７〜図８を参照して説明する。
【００６８】
最初に、本実施形態の依存関係検出装置１００の分析結果を出力する動作を図７を参照して説明する。図７は、第１の実施形態の依存関係検出装置１００による分析結果出力処理の動作を示すフローチャートである。
【００６９】
最初に、利用者は、強化学習タスク定義を強化学習タスク定義入力部１１０に入力する（ステップS110）。強化学習タスク定義入力部１１０は、入力された強化学習タスク定義を強化学習実行部１３０に入力する。
【００７０】
次いで、強化学習実行部１３０は、入力された強化学習タスク定義を基に強化学習タスクを行う強化学習処理を実行する（ステップS120）。強化学習処理を実行した後、強化学習実行部１３０は、結果ログを取得する（ステップS130）。次いで、強化学習実行部１３０は、取得された結果ログを結果ログ分析部１４０に入力する。
【００７１】
また、利用者は、ひな型対応関係をひな型対応関係入力部１２０に入力する（ステップS140）。次いで、ひな型対応関係入力部１２０は、入力されたひな型対応関係を結果ログ分析部１４０に入力する。
【００７２】
次いで、結果ログ分析部１４０は、入力されたひな型対応関係を用いて、入力された結果ログを分析する（ステップS150）。次いで、結果ログ分析部１４０は、分析結果を行動ごとにまとめ、まとめられた内容を分析結果出力部１５０に入力する。
【００７３】
次いで、分析結果出力部１５０は、入力された内容を最終的な分析結果として出力する（ステップS160）。分析結果を出力した後、依存関係検出装置１００は、分析結果出力処理を終了する。
【００７４】
次に、図７に示す分析結果出力処理を構成するステップS120の強化学習処理を図８を参照して説明する。図８は、第１の実施形態の強化学習実行部１３０による強化学習処理の動作を示すフローチャートである。
【００７５】
強化学習処理が開始されると、強化学習実行部１３０は、最初に検証環境２００を初期化する（ステップS121）。
【００７６】
次いで、強化学習実行部１３０は、強化学習タスク定義に指定されている探索アルゴリズムに従って実行対象の行動を決定する（ステップS122）
【００７７】
次いで、強化学習実行部１３０は、自動化ツールが提供するひな型を用いて、ステップS122で決定された行動を検証環境２００で実行する（ステップS123）。
【００７８】
次いで、強化学習実行部１３０は、行動が実行された後の検証環境２００に構築されたITシステムの状態を確認する（ステップS124）。次いで、強化学習実行部１３０は、強化学習タスク定義に指定されている報酬関数を用いて報酬を計算する（ステップS125）。
【００７９】
次いで、強化学習実行部１３０は、ステップS122で決定された行動、ステップS124で確認された状態、およびステップS125で計算された報酬を基に、強化学習タスク定義に指定されている学習アルゴリズムに従って学習処理を実行する（ステップS126）。
【００８０】
ステップS126では、例えばITシステムの配備（デプロイ）の手順の学習処理が実行される。学習される配備の手順は、行動が実行された後の検証環境２００に構築されたITシステムの状態を前提とする手順である。
【００８１】
次いで、強化学習実行部１３０は、ステップS122〜ステップS126の各処理結果を結果ログに記録する。すなわち、強化学習実行部１３０は、結果ログを更新する（ステップS127）。
【００８２】
次いで、強化学習実行部１３０は、ステップS124で確認された現在のITシステムの状態が終了状態に該当するか否かを確認する（ステップS128）。なお、終了状態は、強化学習タスクごとに定義される。終了状態は、通常強化学習タスク定義に記述される。
【００８３】
現在のITシステムの状態が終了状態であれば（ステップS128におけるYes ）、強化学習実行部１３０は、強化学習処理を終了する。
【００８４】
現在のITシステムの状態が終了状態でなければ（ステップS128におけるNo）、強化学習実行部１３０は、ステップS122へ戻り強化学習処理を継続して実行する。
【００８５】
強化学習実行部１３０は、通常図８に示す処理全体をさらに複数回繰り返すことによって強化学習処理を行う。処理全体が複数回繰り返されて取得される学習ログは、エピソードと呼ばれる各回の学習ログが結合されたログデータである。
【００８６】
［第１の実施形態の効果］
本実施形態の依存関係検出装置１００は、自動化ツールによるITシステムのデプロイで使用されるひな型に定義される、十分な検証が困難であるシステムの状態と操作との間の依存関係を、人手を介さずに検証する機能を提供する。
【００８７】
具体的には、本実施形態の依存関係検出装置１００は、依存関係の検証対象の自動化ツールが提供するひな型を使用して、ITシステムの変更手順を学習する強化学習タスクを実行する。強化学習タスクを実行する強化学習実行部１３０は、学習中に様々な条件下でひな型に定義された操作を実行する。
【００８８】
次いで、強化学習実行部１３０は、操作が実行された結果を結果ログに記録する。結果ログは、検証対象の自動化ツールが提供するひな型に関して考えられる多くの検証対象の操作の中から選択された、実践的な状況下での操作に対する検証結果を示す。
【００８９】
なお、強化学習タスクが実行される際、本実施形態の依存関係検出装置１００では、事前に一般的な強化学習タスクにおける定義だけでなく、ひな型と、状態と、行動との対応関係を示すひな型対応関係も指定される。一般的な強化学習タスクにおける定義は、例えば状態定義、行動定義、学習アルゴリズムの定義、探索方法の定義、および報酬関数の定義である。
【００９０】
結果ログ分析部１４０は、ひな型対応関係を示す情報と結果ログとを基に意図された操作が任意の状態を予想通りの状態へ遷移させているか否かを分析することによって、ひな型に定義された依存関係の過不足が無いか確認する。次いで、分析結果出力部１５０は、確認された結果を利用者に提示する。
【００９１】
よって、本実施形態の依存関係検出装置１００の利用者は、自動化ツールが提供するひな型の検証内容を手動で決定、実行、および評価することなく、ひな型に定義される操作の依存関係を検出できる。
【００９２】
＝＝第２の実施の形態＝＝
［構成の説明］
次に、本発明による依存関係検出装置の第２の実施形態を、図面を参照して説明する。図９は、本発明による依存関係検出装置の第２の実施形態の構成例を示すブロック図である。
【００９３】
図９に示すように、本実施形態の依存関係検出装置１０１は、強化学習タスク定義入力部１１０と、強化学習実行部１３０と、結果ログ分析部１４０と、分析結果出力部１５０と、ひな型対応関係生成部１６０とを備える。
【００９４】
第１の実施形態の依存関係検出装置１００と異なり、本実施形態の依存関係検出装置１０１は、ひな型対応関係入力部１２０の代わりにひな型対応関係生成部１６０を備える。ひな型対応関係生成部１６０以外の本実施形態の依存関係検出装置１０１の構成は、第１の実施形態の依存関係検出装置１００の構成と同様である。
【００９５】
図１に示すように、第１の実施形態の依存関係検出装置１００にはひな型対応関係が外部から入力される。本実施形態では、ひな型対応関係生成部１６０が強化学習タスク定義入力部１１０から入力された強化学習タスク定義を基にひな型対応関係を生成する。
【００９６】
ひな型対応関係生成部１６０は、行動、状態、およびひな型の名称を基に事前に定義されたルールに従ってひな型対応関係を生成する。本実施形態の強化学習タスク定義の内容は、ひな型対応関係生成部１６０が用いるルールが適用可能な内容であることが求められる。
【００９７】
［動作の説明］
以下、本実施形態の依存関係検出装置１０１の分析結果を出力する動作を図１０を参照して説明する。図１０は、第２の実施形態の依存関係検出装置１０１による分析結果出力処理の動作を示すフローチャートである。
【００９８】
最初に、利用者は、強化学習タスク定義を強化学習タスク定義入力部１１０に入力する（ステップS210）。次いで、強化学習タスク定義入力部１１０は、入力された強化学習タスク定義を強化学習実行部１３０とひな型対応関係生成部１６０に入力する。
【００９９】
次いで、ひな型対応関係生成部１６０は、入力された強化学習タスク定義を基にひな型対応関係を生成する（ステップS240）。次いで、ひな型対応関係生成部１６０は、生成されたひな型対応関係を結果ログ分析部１４０に入力する。
【０１００】
ステップS220〜ステップS230の各処理は、図７に示すステップS120〜ステップS130の各処理とそれぞれ同様である。また、ステップS250〜ステップS260の各処理は、図７に示すステップS150〜ステップS160の各処理とそれぞれ同様である。
【０１０１】
［第２の実施形態の効果］
ひな型対応関係の生成ルールを理解した利用者は、本実施形態の依存関係検出装置１０１に第１の実施形態よりも簡素な内容を入力するだけで、依存関係の分析結果を得ることができる。
【０１０２】
以下、各実施形態の依存関係検出装置のハードウェア構成の具体例を説明する。図１１は、本発明による依存関係検出装置のハードウェア構成例を示す説明図である。
【０１０３】
図１１に示す依存関係検出装置は、ＣＰＵ（Central Processing Unit ）１１と、主記憶部１２と、通信部１３と、補助記憶部１４とを備える。また、ユーザが操作するための入力部１５や、ユーザに処理結果または処理内容の経過を提示するための出力部１６を備える。
【０１０４】
依存関係検出装置は、図１１に示すＣＰＵ１１が各構成要素が有する機能を提供するプログラムを実行することによって、ソフトウェアにより実現される。
【０１０５】
すなわち、ＣＰＵ１１が補助記憶部１４に格納されているプログラムを、主記憶部１２にロードして実行し、依存関係検出装置の動作を制御することによって、各機能がソフトウェアにより実現される。
【０１０６】
なお、図１１に示す依存関係検出装置は、ＣＰＵ１１の代わりにＤＳＰ（Digital Signal Processor）を備えてもよい。または、図１１に示す依存関係検出装置は、ＣＰＵ１１とＤＳＰとを併せて備えてもよい。
【０１０７】
主記憶部１２は、データの作業領域やデータの一時退避領域として用いられる。主記憶部１２は、例えばＲＡＭ（Random Access Memory）である。
【０１０８】
通信部１３は、有線のネットワークまたは無線のネットワーク（情報通信ネットワーク）を介して、周辺機器との間でデータを入力および出力する機能を有する。
【０１０９】
補助記憶部１４は、一時的でない有形の記憶媒体である。一時的でない有形の記憶媒体として、例えば磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory ）、ＤＶＤ−ＲＯＭ（Digital Versatile Disk Read Only Memory ）、半導体メモリが挙げられる。
【０１１０】
入力部１５は、データや処理命令を入力する機能を有する。入力部１５は、例えばキーボードやマウス等の入力デバイスである。強化学習タスク定義入力部１１０、およびひな型対応関係入力部１２０は、入力部１５で実現される。
【０１１１】
出力部１６は、データを出力する機能を有する。出力部１６は、例えば液晶ディスプレイ装置等の表示装置、またはプリンタ等の印刷装置である。分析結果出力部１５０は、出力部１６で実現される。
【０１１２】
また、図１１に示すように、依存関係検出装置において、各構成要素は、システムバス１７に接続されている。
【０１１３】
補助記憶部１４は、例えば第１の実施形態において、強化学習タスク定義入力部１１０、ひな型対応関係入力部１２０、強化学習実行部１３０、結果ログ分析部１４０、および分析結果出力部１５０を実現するためのプログラムを記憶している。
【０１１４】
また、補助記憶部１４は、例えば第２の実施形態において、強化学習タスク定義入力部１１０、強化学習実行部１３０、結果ログ分析部１４０、およびひな型対応関係生成部１６０を実現するためのプログラムを記憶している。
【０１１５】
なお、依存関係検出装置は、ハードウェアにより実現されてもよい。例えば、依存関係検出装置１００は、内部に図１に示すような機能を実現するＬＳＩ（Large Scale Integration ）等のハードウェア部品が含まれる回路が実装されてもよい。
【０１１６】
また、各構成要素の一部または全部は、汎用の回路（circuitry ）または専用の回路、プロセッサ等やこれらの組み合わせによって実現されてもよい。これらは、単一のチップ（例えば、上記のＬＳＩ）によって構成されてもよいし、バスを介して接続される複数のチップによって構成されてもよい。各構成要素の一部または全部は、上述した回路等とプログラムとの組み合わせによって実現されてもよい。
【０１１７】
各構成要素の一部または全部が複数の情報処理装置や回路等により実現される場合には、複数の情報処理装置や回路等は集中配置されてもよいし、分散配置されてもよい。例えば、情報処理装置や回路等は、クライアントアンドサーバシステム、クラウドコンピューティングシステム等、各々が通信ネットワークを介して接続される形態として実現されてもよい。
【０１１８】
次に、本発明の概要を説明する。図１２は、本発明による依存関係検出装置の概要を示すブロック図である。本発明による依存関係検出装置２０は、構築対象システムの配備を自動で行う自動化ツールが配備で使用するひな型に定義される構築対象システムへの操作と、構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、操作が実行された後の構成要素の状態を前提とする配備の手順を学習する強化学習タスクを実行する実行手段２１（例えば、強化学習実行部１３０）を備える。
【０１１９】
そのような構成により、依存関係検出装置は、規模の比較的大きなひな型における依存関係を容易に検出できる。
【０１２０】
また、依存関係検出装置２０は、ひな型と、ひな型に定義される操作と、操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、操作が実行される前の構成要素の状態および操作が実行された後の構成要素の状態を示す強化学習タスクの実行結果とを基に、自動化ツールがひな型を用いて実行する操作が成立するための条件が存在するか否かを分析する分析手段（例えば、結果ログ分析部１４０）を備えてもよい。
【０１２１】
対応関係情報は、強化学習タスク定義内の行動（操作）と、行動が実行された後に変化する状態とを対応付ける情報である。また、行動の実行に要する手段である自動化ツールで使用されるひな型を特定する情報も有する。
【０１２２】
そのような構成により、依存関係検出装置は、ひな型対応関係を用いて依存関係を容易に検出できる。
【０１２３】
また、分析手段は、強化学習タスクの複数の実行結果を統計的に分析することによって取得された操作が成立するための条件を操作の依存関係として提示してもよい。
【０１２４】
そのような構成により、依存関係検出装置は、依存関係の具体的な内容を提示できる。
【０１２５】
また、操作の依存関係は、操作と構成要素の状態との関係でもよい。
【０１２６】
そのような構成により、依存関係検出装置は、操作が成立するための構成要素の状態を提示できる。
【０１２７】
また、依存関係検出装置２０は、強化学習タスク定義を基に対応関係情報を生成する生成手段（例えば、ひな型対応関係生成部１６０）を備えてもよい。生成手段は、状態定義や行動定義の名称等の特徴に関する所定のルールで強化学習タスク定義を解釈することによって対応関係情報を生成してもよい。
【０１２８】
そのような構成により、依存関係検出装置は、利用者の手間を省くことができる。
【０１２９】
また、実行手段２１は、配備の手順を学習する前に実行される操作を探索アルゴリズムに従って探索してもよい。
【０１３０】
そのような構成により、依存関係検出装置は、ひな型に定義された操作を網羅できる。
【０１３１】
以上、実施形態および実施例を参照して本願発明を説明したが、本願発明は上記実施形態および実施例に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【０１３２】
この出願は、２０１９年２月６日に出願された日本特許出願２０１９−０１９３７７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【０１３３】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下に限られない。
【０１３４】
（付記１）構築対象システムの配備を自動で行う自動化ツールが前記配備で使用するひな型に定義される前記構築対象システムへの操作と、前記構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、前記操作が実行された後の前記構成要素の状態を前提とする前記配備の手順を学習する強化学習タスクを実行する実行手段を備えることを特徴とする依存関係検出装置。
【０１３５】
（付記２）ひな型と、前記ひな型に定義される操作と、前記操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、前記操作が実行される前の前記構成要素の状態および前記操作が実行された後の前記構成要素の状態を示す強化学習タスクの実行結果とを基に、前記自動化ツールが前記ひな型を用いて実行する前記操作が成立するための条件が存在するか否かを分析する分析手段を備える付記１記載の依存関係検出装置。
【０１３６】
（付記３）前記分析手段は、強化学習タスクの複数の実行結果を統計的に分析することによって取得された操作が成立するための条件を前記操作の依存関係として提示する付記２記載の依存関係検出装置。
【０１３７】
（付記４）操作の依存関係は、前記操作と構成要素の状態との関係である付記３記載の依存関係検出装置。
【０１３８】
（付記５）強化学習タスク定義を基に対応関係情報を生成する生成手段を備える付記２から付記４のうちのいずれかに記載の依存関係検出装置。
【０１３９】
（付記６）前記生成手段は、状態定義の名称の特徴または行動定義の名称の特徴のいずれかに関する所定のルールで強化学習タスク定義を解釈することによって対応関係情報を生成する付記５記載の依存関係検出装置。
【０１４０】
（付記７）前記実行手段は、配備の手順を学習する前に実行される操作を探索アルゴリズムに従って探索する付記１から付記６のうちのいずれかに記載の依存関係検出装置。
【０１４１】
（付記８）構築対象システムの配備を自動で行う自動化ツールが前記配備で使用するひな型に定義される前記構築対象システムへの操作と、前記構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、前記操作が実行された後の前記構成要素の状態を前提とする前記配備の手順を学習する強化学習タスクを実行することを特徴とする依存関係検出方法。
【０１４２】
（付記９）ひな型と、前記ひな型に定義される操作と、前記操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、前記操作が実行される前の前記構成要素の状態および前記操作が実行された後の前記構成要素の状態を示す強化学習タスクの実行結果とを基に、前記自動化ツールが前記ひな型を用いて実行する前記操作が成立するための条件が存在するか否かを分析する付記８記載の依存関係検出方法。
【０１４３】
（付記１０）コンピュータで実行されるときに、構築対象システムの配備を自動で行う自動化ツールが前記配備で使用するひな型に定義される前記構築対象システムへの操作と、前記構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、前記操作が実行された後の前記構成要素の状態を前提とする前記配備の手順を学習する強化学習タスクを実行する依存関係検出プログラムを記録したコンピュータ読み取り可能な記録媒体。
【０１４４】
（付記１１）コンピュータで実行されるときに、ひな型と、前記ひな型に定義される操作と、前記操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、前記操作が実行される前の前記構成要素の状態および前記操作が実行された後の前記構成要素の状態を示す強化学習タスクの実行結果とを基に、前記自動化ツールが前記ひな型を用いて実行する前記操作が成立するための条件が存在するか否かを分析する分析処理を実行する付記１０記載の依存関係検出プログラム。
【産業上の利用の可能性】
【０１４５】
本発明は、ITシステムを自動で変更するシステム自動変更ツールに好適に適用される。
【符号の説明】
【０１４６】
１１  ＣＰＵ
１２  主記憶部
１３  通信部
１４  補助記憶部
１５  入力部
１６  出力部
１７  システムバス
２０、１００、１０１  依存関係検出装置
２１  実行手段
１１０  強化学習タスク定義入力部
１２０  ひな型対応関係入力部
１３０  強化学習実行部
１４０  結果ログ分析部
１５０  分析結果出力部
１６０  ひな型対応関係生成部
２００  検証環境
【図１】
2020161994.tif 000003
【図２】
2020161994.tif 000004
【図３】
2020161994.tif 000005
【図４】
2020161994.tif 000006
【図５】
2020161994.tif 000007
【図６】
2020161994.tif 000008
【図７】
2020161994.tif 000009
【図８】
2020161994.tif 000010
【図９】
2020161994.tif 000011
【図１０】
2020161994.tif 000012
【図１１】
2020161994.tif 000013
【図１２】
2020161994.tif 000014
【手続補正書】
【提出日】令和3年7月29日(2021.7.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
構築対象システムの配備を自動で行う自動化ツールが前記配備で使用するひな型に定義される前記構築対象システムへの操作と、前記構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、前記操作が実行された後の前記構成要素の状態を前提とする前記配備の手順を学習する強化学習タスクを実行する実行手段を備える
ことを特徴とする依存関係検出装置。
【請求項２】
ひな型と、前記ひな型に定義される操作と、前記操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、前記操作が実行される前の前記構成要素の状態および前記操作が実行された後の前記構成要素の状態を示す強化学習タスクの実行結果とを基に、前記自動化ツールが前記ひな型を用いて実行する前記操作が成立するための条件が存在するか否かを分析する分析手段を備える
請求項１記載の依存関係検出装置。
【請求項３】
前記分析手段は、強化学習タスクの複数の実行結果を統計的に分析することによって取得された操作が成立するための条件を前記操作の依存関係として提示する
請求項２記載の依存関係検出装置。
【請求項４】
操作の依存関係は、前記操作と構成要素の状態との関係である
請求項３記載の依存関係検出装置。
【請求項５】
強化学習タスク定義を基に対応関係情報を生成する生成手段を備える
請求項２から請求項４のうちのいずれか１項に記載の依存関係検出装置。
【請求項６】
前記生成手段は、状態定義の名称の特徴または行動定義の名称の特徴のいずれかに関する所定のルールで強化学習タスク定義を解釈することによって対応関係情報を生成する
請求項５記載の依存関係検出装置。
【請求項７】
前記実行手段は、配備の手順を学習する前に実行される操作を探索アルゴリズムに従って探索する
請求項１から請求項６のうちのいずれか１項に記載の依存関係検出装置。
【請求項８】
構築対象システムの配備を自動で行う自動化ツールが前記配備で使用するひな型に定義される前記構築対象システムへの操作と、前記構築対象システムの構成要素の状態とがそれぞれ定義された強化学習タスク定義を用いて、前記操作が実行された後の前記構成要素の状態を前提とする前記配備の手順を学習する強化学習タスクを実行する
ことを特徴とする依存関係検出方法。
【請求項９】
ひな型と、前記ひな型に定義される操作と、前記操作により構成要素が遷移させられることが予測される状態との対応関係を示す対応関係情報と、前記操作が実行される前の前記構成要素の状態および前記操作が実行された後の前記構成要素の状態を示す強化学習タスクの実行結果とを基に、前記自動化ツールが前記ひな型を用いて実行する前記操作が成立するための条件が存在するか否かを分析する
請求項８記載の依存関係検出方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２３
【補正方法】削除
【補正の内容】
【国際調査報告】
2020161994.tif 000015
2020161994.tif 000016
2020161994.tif 000017
2020161994.tif 000018