以下に、本願の開示するパラメータ設定支援プログラム、パラメータ設定支援装置およびパラメータ設定支援方法の実施例を図面に基づいて詳細に説明する。なお、実施例によりこの発明が限定されるものではない。
[パラメータ設定支援装置の構成]
図1は、実施例に係るパラメータ設定支援装置の構成を示す機能ブロック図である。かかるパラメータ設定支援装置1は、システムの設計の際に用いられるパラメータの設定を支援する。パラメータ設定支援装置1は、例えばクラウドシステム内にシステムを新たに追加する場合に、当該システム(「対象システム」という)にパラメータを設定する。パラメータ設定支援装置1は、例えばクラウドシステム内で稼動中の類似している類似システムのパラメータの設定情報(教師データ21)を用いて、パラメータの設定で用いられる設計ルールや設計手順を生成する。ここでは、設計ルールは、システムの設計に関わるパラメータの設定上のルールであり、条件と定義からなる。設計手順とは、設計ルールを実行順に並べたものである。そして、パラメータ設定支援装置1は、生成した設計ルールおよび設計手順に基づいて、対象システム2に対するパラメータを生成して設定する。
図1に示すように、パラメータ設定支援装置1は、記憶部11と、設計ルール生成部12と、設計手順生成部13と、パラメータ生成部14とを有する。
記憶部11は、例えばフラッシュメモリ(Flash Memory)やFRAM(登録商標)(Ferroelectric Random Access Memory)等の不揮発性の半導体メモリ素子等の記憶装置に対応する。記憶部11は、教師データ21と、設定順序リスト22と、マニュアル入力パラメータ23とを有する。教師データ21は、対象システム2と構成が類似する類似システムのパラメータの設定情報であり、後述するクラスタリング部121によって記憶部11に格納される。なお、教師データ21のデータ構造の一例については後述する。設定順序リスト22は、パラメータを設定する順序であって設計ルールを実行する順序を示すリストであり、設計手順に対応する。設定順序リスト22は、後述する設計手順生成部13によって記憶部11に格納される。マニュアル入力パラメータ23は、マニュアル入力で値が設定されるパラメータであり、後述するパラメータ判別部122および後述する設計手順生成部13によって記憶部11に格納される。
ここで、ある類似システムにおける教師データ21のデータ構造の一例を、図2を参照して説明する。図2は、教師データのデータ構造の一例を示す図である。図2に示すように、教師データ21は、パラメータ、サーバA1、サーバA2、サーバA3およびサーバA4を対応付けて記憶する。
サーバA1、サーバA2、サーバA3およびサーバA4は、ある類似システムに搭載されているサーバの名称である。ここでは、サーバが4個搭載されているが、これに限定されず、サーバが5個搭載されていても良いし、サーバが3個搭載されていても良いし、類似システムに搭載されているサーバであれば良い。
パラメータは、システムの設計に用いられるパラメータである。ここでは、パラメータには、「Role」、「nameserver」、「LANG」、「UTC」および「IP」が含まれる。「Role」は、サーバの役割を示す。「nameserver」は、DNS(Domain Name Service)のIPアドレスを示す。「LANG」は、サーバの使用言語を示す。「UTC」は、協定世界時を使用するか否かを示し、例えば、「true」の場合協定世界時を使用することを意味し、「false」の場合協定世界時を使用しないことを意味する。「IP」は、IPアドレスの割当てを動的にするか静的にするかを示し、例えば、「dhcp」の場合動的であることを意味し、「static」の場合静的であることを意味する。
各サーバには、これらのパラメータの値がそれぞれ設定されている。一例として、サーバA1の場合、パラメータ「Role」に「admin」が設定され、パラメータ「nameserver」に「192.168.1.1」が設定されている。さらに、パラメータ「LANG」に「jp」が設定され、パラメータ「UTC」に「false」が設定され、パラメータ「IP」に「dhcp」が設定されている。
図1に戻って、設計ルール生成部12は、パラメータの設定で用いられる設計ルールを生成する。設計ルール生成部12は、クラスタリング部121およびパラメータ判別部122を有する。
クラスタリング部121は、教師データ21を用いて設計ルールを複数生成する。なお、生成される設計ルールは、以降で使用する「クラスタ」と同義である。例えば、クラスタリング部121は、クラスタリング手法を用いて、教師データ21から設計単位の共通部分を特定する。そして、クラスタリング部121は、クラスタリング結果から設計ルールを生成する。ここでいう設計単位とは、例えば、データセンタ単位であったり、ロケーション単位であったり、サーバ単位であったりする。なお、クラスタリング手法は、クラスタリングのいかなる手法を用いても構わない。
ここで、設計単位をデータセンタ単位とした場合のクラスタリング部121による共通部分を特定する方法を、図3を参照して説明する。図3は、クラスタリング部による共通部分を特定する方法を説明する図である。
データセンタA,B,C,Dのそれぞれの教師データ21には、図3上段に示すように、各サーバについて、パラメータ「Role」,「Lang」の値が同じ値に設定されている。クラスタリング部121は、クラスタリング手法を用いて、教師データ21から共通部分を特定する。ここでは、図3下段に示すように、データセンタA,B,C,Dでは、パラメータ「Lang」について、値が「Japanese」のサーバ部分、値が「English」のサーバ部分が共通部分となる。
そして、クラスタリング部121は、クラスタリング結果から設計ルールを生成する。ここでは、パラメータ「Role」が「admin」であれば、パラメータ「Lang」が「Japanese」になるという設計ルールが生成される。また、パラメータ「Role」が「admin」以外であれば、パラメータ「Lang」が「English」になるという設計ルールが生成される。すなわち、クラスタリング部121によって生成される設計ルール(クラスタ)は、<1>、<2>のように表される。
IF Role=“admin” THEN LANG=Japanese・・・<1>
IF Role!=“admin” THEN LANG=Japanese・・<2>
なお、設計ルールは、条件と定義からなっている。例えば、<1>について、設計ルールの条件は、「IF Role=“admin”」であり、設計ルールの定義は、「THEN LANG=Japanese」である。
図1に戻って、パラメータ判別部122は、教師データ21に含まれるパラメータの中で、マニュアル入力となるパラメータを判別する。例えば、パラメータ判別部122は、それぞれの設計単位内で全てのサーバが固有の値を持つパラメータを、マニュアル入力パラメータとして判別する。全てのサーバが固有の値を持つパラメータの場合、パラメータ判別部122は、条件と定義でパラメータに値を設定できないからである。また、パラメータ判別部122は、それぞれの設計単位間で固有の値を持つパラメータ、すなわちそれぞれの設計単位ごとに固有の値を持っているパラメータを、マニュアル入力パラメータとして判別する。設計単位間で固有の値を持つパラメータの場合、パラメータ判別部122は、条件と定義でパラメータに値を設定できないからである。そして、パラメータ判別部122は、判別されたマニュアル入力パラメータを記憶部11のマニュアル入力パラメータ23に格納する。
ここで、設計単位をデータセンタ単位とした場合のパラメータ判別部122によるマニュアル入力パラメータを判別する方法を、図4Aおよび図4Bを参照して説明する。図4Aおよび図4Bは、パラメータ判別部によるマニュアル入力パラメータを判別する方法を説明する図である。
図4A上段、下段に示すように、データセンタA,B,C,Dのそれぞれの教師データ21には、各サーバに対応するパラメータ「nameserver」の値がデータセンタA,B,C,D内で固有の値となっている。パラメータ判別部122は、それぞれのデータセンタ内で全てのサーバが固有の値を持つパラメータを、マニュアル入力パラメータとして判別する。ここでは、パラメータ判別部122は、それぞれのデータセンタA,B,C,D内で固有の値を持つパラメータ「nameserver」を、マニュアル入力パラメータとして判別する。
図4B上段、下段に示すように、データセンタA,B,C,Dのそれぞれの教師データ21には、各サーバに対応するパラメータ「nameserver」の値がデータセンタA,B,C,D間で固有の値となっている。パラメータ判別部122は、それぞれのデータセンタ間で固有の値を持つパラメータ、すなわちそれぞれのデータセンタごとに固有の値を持っているパラメータを、マニュアル入力パラメータとして判別する。ここでは、パラメータ判別部122は、それぞれのデータセンタ間で固有の値を持つパラメータ「nameserver」を、マニュアル入力パラメータとして判別する。
図1に戻って、設計手順生成部13は、クラスタリング部121によってパラメータごとに生成された設計ルールおよびパラメータ判別部122によって判別されたマニュアル入力パラメータに基づいて、設計手順を生成する。例えば、設計手順生成部13は、マニュアル入力されたパラメータの値を用いて設計ルールの条件が満たされる設計ルールを特定する。そして、設計手順生成部13は、特定した設計ルールを設計手順として設定順序リスト22に追加する。また、設計手順生成部13は、マニュアル入力および特定した設計ルールの定義を用いて条件が満たされる設計ルールを特定し、特定した設計ルールを設計手順として設定順序リスト22に追加する。このように、設計手順生成部13は、マニュアル入力および特定できた設計ルールの定義を用いて条件が満たされる設計ルールを繰り返し特定し、特定した設計ルールを設定順序リスト22に追加していくことで、設計手順を生成する。
ここで、設計手順生成部13による設計手順を生成する処理を、図5Aおよび図5Bを参照して説明する。図5Aおよび図5Bは、設計手順生成部による処理を説明する図である。
図5Aに示すように、設計手順生成部13は、マニュアル入力から設計ルールの条件が満たされる設計ルール「Rule(0)」を特定する。この設計ルール「Rule(0)」が1番目の設計手順として設定順序リスト22に追加される。そして、設計手順生成部13は、設計ルール「Rule(0)」の定義「ParaSet(1)」を用いて、次に条件が満たされる設計ルール「Rule(1)」を特定する。この設計ルール「Rule(1)」が2番目の設計手順として設定順序リスト22に追加される。このようにして、設計手順生成部13は、マニュアル入力から順番に再帰的に設計ルールを特定し、設計手順を決定していく。
図5Bに示すように、マニュアル入力パラメータである「NETMASK」に対してマニュアル入力で値「255.255.255.0」が設定されたとする。設計手順生成部13は、マニュアル入力で設定された「NETMASK」の情報から(1)と(2)の設計ルールの条件が満たされるので、(1)と(2)の設計ルールを特定する。(1)と(2)の設計ルールが設定順序リスト22に追加される。そして、設計手順生成部13は、(2)の設計ルールの定義である「<uuid>=abcdefg1000」の情報から(3)の設計ルールの条件が満たされるので、(3)の設計ルールを特定する。(3)の設計ルールが設定順序リスト22に追加される。したがって、図5Bで示す設計ルールの設計手順は、(1)→(2)→(3)の順となる。なお、図5Bで示す設計ルールの設計手順は、(2)→(1)→(3)の順であっても良い。
図1に戻って、設計手順生成部13は、マニュアル入力および特定された設計ルールの定義によって条件が満たされない設計ルールがある場合、以下のような処理を行う。設計手順生成部13は、条件があと1つで満たされる設計ルールの集合を抽出する。そして、設計手順生成部13は、設計ルールの集合の中でいずれか2つの設計ルールであって各定義が互いの条件に含まれる2つの設計ルールを検出する。なお、2つの設計ルールの各定義が互いの条件に含まれる、すなわち、各定義が互いの条件を参照できることを「循環参照」というものとする。そして、設計手順生成部13は、循環参照している2つの設計ルールが定義するそれぞれのパラメータのどちらか一方を教師データ21から除外する。そして、設計手順生成部13は、他方のパラメータに対するクラスタリング処理を、除外したパラメータ以外のパラメータを用いて再びクラスタリング部121に実行させる。これにより、設計手順生成部13は、再びクラスタリング処理が実行された後、循環参照をおこしているパラメータが関わらない設計ルールを生成させることができる。
また、設計手順生成部13は、再びクラスタリング処理を実行させた後、マニュアル入力されたパラメータの値および既に特定された設計ルールの定義によって条件が満たされる設計ルールを特定する。そして、設計手順生成部13は設計ルールを特定できれば当該設計ルールを設計手順として設定順序リスト22に追加することになる。一方、設計手順生成部13は、設計ルールを特定できなければ、特定できない設計ルールの定義に含まれるパラメータをマニュアル入力パラメータとし、記憶部11のマニュアル入力パラメータ23に格納する。このように、再帰的にクラスタリング処理を実行させながら設計手順を生成する処理のことを、「再帰的クラスタリングアルゴリズム」というものとする。
ここで、再帰的クラスタリングアルゴリズムの処理を、図6を参照して説明する。図6は、再帰的クラスタリングアルゴリズムの処理を説明する図である。
図6上段に示すように、設計ルールAと設計ルールBは、循環参照の設計ルールである。すなわち、設計ルールAの定義「NETMASK=“D”」が設計ルールBの条件に含まれ、設計ルールBの定義「ZONE=“C”」が設計ルールAの条件に含まれている。設計手順生成部13は、循環参照の設計ルールA,Bを検出する。そして、設計手順生成部13は、循環参照しているパラメータを一時的に1つ教師データ21から除外する。ここでは、設計手順生成部13は、循環参照をおこしている一方のパラメータ「ZONE」を除外する。そして、設計手順生成部13は、他方のパラメータ「NETMASK」に対して、クラスタリング部121に再びクラスタリング処理を実行させる。これにより、循環参照をおこしているパラメータ「ZONE」が関わらない設計ルールが生成される。
図6下段に示すように、クラスタリング部121によってパラメータ「NETMASK」に対して、新たな設計ルールが生成される。そして、設計手順生成部13は、マニュアル入力および既に特定された設計ルールの定義によって条件が満たされる設計ルールを特定する。ここでは、設計手順生成部13は、新設計ルールの条件が満たされるので、新設計ルールを特定する。そして、設計手順生成部13は、新設計ルールを設計手順として設定順序リスト22に追加することになる。
図1に戻って、パラメータ生成部14は、設計手順生成部13によって生成された設計手順にしたがって、新たな設計対象である対象システム2の設計に用いられるパラメータの情報を生成する。そして、パラメータ生成部14は、生成したパラメータの情報を対象システム2に設定する。例えば、パラメータ生成部14は、マニュアル入力パラメータ23に記憶されたパラメータに対してマニュアル入力を受け付けると、受け付けた入力データを用いてマニュアル入力パラメータの情報を生成する。そして、パラメータ生成部14は、設定順序リスト22に記憶された設定手順にしたがって、順々にパラメータの情報を生成する。ここで、パラメータ生成部14は、生成できていない箇所が存在する場合、生成できていない箇所の内、順序が最も早いパラメータに対応する箇所のマニュアル入力を、管理者に依頼する。生成できていない箇所が存在する場合の一例として、対象システム2に新しいサーバが増設される場合がある。また、別の一例として、対象システム2に設定すべき新しいパラメータが増える場合がある。また、さらに別の一例として、対象システム2の設計方針が変る場合がある。そして、パラメータ生成部14は、生成したパラメータを対象システム2に設定する。
次に、設計単位をデータセンタ単位とした場合のパラメータ設定支援処理の具体例を、図7〜図14を参照して説明する。図7は、教師データの具体例を示す図である。図7に示すように、教師データ21には、データセンタA,B,Cに搭載されたサーバごとに各種パラメータに対応する値が設定されている。
図8Aおよび図8Bは、クラスタリング部による処理の具体例を示す図である。図8Aに示すように、クラスタリング部121は、クラスタリング手法を用いて、教師データ21から設計単位であるデータセンタの共通部分を特定する。ここでは、クラスタリング部121は、パラメータ「Role」について、データセンタA,B,C内で「admin」、「DNS」、「security」、「Web server」のようにそれぞれ固有の値が設定されているので、共通部分を特定できない。また、パラメータ「nameserver」について、データセンタAでは全てのサーバで「192.168.1.1」、データセンタBでは全てのサーバで「192.168.3.1」、データセンタCでは全てのサーバで「192.168.5.1」が設定されている。したがって、クラスタリング部121は、それぞれのデータセンタごとに固有の値が設定されているので、共通部分を特定できない。また、クラスタリング部121は、パラメータ「LANG」について、値が「jp」であるサーバ部分と値が「en」であるサーバ部分とを、共通部分として特定する。また、クラスタリング部121は、パラメータ「UTC」について、値が「false」であるサーバ部分と値が「true」であるサーバ部分とを、共通部分として特定する。また、クラスタリング部121は、パラメータ「IP」について、値が「dhcp」であるサーバ部分と値が「static」であるサーバ部分とを、共通部分として特定する。
図8Bに示すように、クラスタリング部121は、クラスタリング結果から設計ルールを生成する。ここでは、クラスタリング部121は、パラメータ「Role」について、「データセンタ内固有」という設計ルールを生成する。また、クラスタリング部121は、パラメータ「nameserver」について、「データセンタ間固有」という設計ルールを生成する。また、クラスタリング部121は、パラメータ「LANG」について、「IF Role=admin THEN LANG=jp」、「IF Role=DNS,security,Webserver THEN LANG=en」という設計ルールを生成する。また、クラスタリング部121は、パラメータ「UTC」について、「IF LANG=jp THEN UTC=false」、「IF LANG=en THEN UTC=true」という設計ルールを生成する。また、クラスタリング部121は、パラメータ「IP」について、「IF UTC=false THEN IP=dhcp」、「IF UTC=true THEN IP=static」という設計ルールを生成する。
図9Aは、パラメータ判別部による処理の具体例を示す図である。図9Aに示すように、パラメータ判別部122は、パラメータの中で、マニュアル入力となるパラメータを判別する。ここでは、パラメータ判別部122は、「データセンタ内固有」を設計ルールとしたパラメータ「Role」を、マニュアル入力パラメータとして判別する。設計ルールが「データセンタ内固有」である場合、パラメータ判別部122は、条件と定義で値を設定できないからである。また、パラメータ判別部122は、「データセンタ間固有」を設計ルールとしたパラメータ「nameserver」を、マニュアル入力パラメータとして判別する。設計ルールが「データセンタ間固有」である場合、パラメータ判別部122は、条件と定義で値を設定できないからである。
なお、設計単位が、データセンタ単位に代えてサーバ単位とすると、マニュアル入力パラメータと判別されるパラメータが異なる。図9Bは、設計単位をサーバ単位とした場合のパラメータ判別部による処理の具体例を示す図である。設計単位をサーバ単位とした場合、1つのデータセンタ内でクラスタリング部121によるクラスタリング処理が行われる。すると、図9Bに示すように、パラメータ「nameserver」について、全てのサーバで「192.168.1.1」が設定されているので、クラスタリング部121によって、全てのサーバ部分が共通部分として特定される。一方、パラメータ「Role」について、サーバ1,2,3,4で「admin」、「DNS」、「security」、「Web server」のようにそれぞれ固有の値が設定されているので、クラスタリング部121によって、共通部分が特定されない。すなわち、「Role」について、「サーバ間固有」という設計ルールがクラスタリング部121によって生成される。そこで、パラメータ判別部122は、「サーバ間固有」を設計ルールとしたパラメータ「Role」を、マニュアル入力パラメータとして判別する。つまり、設計単位が、データセンタ単位、サーバ単位というように異なると、マニュアル入力パラメータと判別されるパラメータが異なる。
図10A〜図10Dは、設計手順生成部による処理の具体例を示す図である。図10Aに示すように、設計ルールがパラメータに対応させて定められている。設計ルールは、クラスタリング部121およびパラメータ判別部122によって定められる。なお、マニュアル入力パラメータは、「Role」および「nameserver」である。
そして、設計手順生成部13は、マニュアル入力を用いて条件が満たされる設計ルールを特定し、特定した設計ルールを設定順序リスト22に追加する。ここでは、マニュアル入力パラメータ「Role」およびマニュアル入力された値を用いてパラメータ「LANG」の設計ルール(1),(2)の条件がそれぞれ満たされるので、設計ルール(1),(2)が特定される。そして、パラメータ「LANG」の設計ルール(1),(2)が設定順序リスト22に追加される。
そして、設計手順生成部13は、マニュアル入力と既に特定した設計ルールの定義を用いて条件が満たされる設計ルールを特定し、特定した設計ルールを設定順序リスト22に追加する。ここでは、既に特定した設計ルール(1)の定義「LANG=jp」を用いてパラメータ「UTC」の設計ルール(3)の条件が満たされるので、設計ルール(3)が特定される。同様に、既に特定した設計ルール(2)の定義「LANG=jp」を用いてパラメータ「UTC」の設計ルール(4)の条件が満たされるので、設計ルール(4)が特定される。そして、パラメータ「UTC」の設計ルール(3)、(4)が設定順序リスト22に追加される。
さらに、既に特定した設計ルール(3)の定義「UTC=false」を用いてパラメータ「IP」の設計ルール(5)の条件が満たされるので、設計ルール(5)が特定される。同様に、既に特定した設計ルール(4)の定義「UTC=true」を用いてパラメータ「IP」の設計ルール(6)の条件が満たされるので、設計ルール(6)が特定される。そして、パラメータ「IP」の設計ルール(5)、(6)が設定順序リスト22に追加される。このようにして、設計手順生成部13は、検査対象の設計ルールがなくなるまで、設計ルールを実行する手順を生成する処理を繰り返し行う。この結果、設計手順生成部13は、設定順序リスト22に、(1)→(2)→(3)→(4)→(5)→(6)の順序で設計ルールを追加することができ、設計手順を生成できる。
ところが、例えばパラメータ入力を用いても条件が満たされる設計ルールを特定できない場合がある。かかる場合について、図10B〜図10Dを参照して説明する。図10Bに示すように、設計ルールがパラメータに対応させて定められている。設計ルールは、クラスタリング部121およびパラメータ判別部122によって定められる。なお、マニュアル入力パラメータは、「Role」および「nameserver」である。
そして、設計手順生成部13は、マニュアル入力を用いて条件が満たされない設計ルールがある場合、循環参照している2つの設計ルールを検出する。ここでは、設計ルール(1)の定義「LANG=jp」が設計ルール(3)の条件を参照し、設計ルール(3)の定義「UTC=false」が設計ルール(1)の条件を参照しているので、循環参照している設計ルールとして(1)と(3)が検出される。
次に、設計手順生成部13は、循環参照している2つの設計ルールが定義するパラメータのどちらか一方を教師データ21から除外したうえで、他方のパラメータに対して、クラスタリング部121に再びクラスタリング処理を実行させる。ここでは、設計手順生成部13は、循環参照している2つの設計ルール(1),(3)のうち、設計ルール(3)が定義するパラメータ「UTC」を除外する。そして、設計手順生成部13は、他方のパラメータ「LANG」に対して、クラスタリング部121に再びクラスタリング処理を実行させる。
この結果、パラメータ「LANG」について、クラスタリング部121によって新たな設計ルールが生成される。図10Cに示すように、パラメータ「LANG」について、循環参照に関係したパラメータ「UTC」が関わらない設計ルール(1),(2)が生成される。そして、設計手順生成部13は、除外していたパラメータを戻したうえで、マニュアル入力と既に特定した設計ルールの定義とを用いて、条件が満たされる設計ルールを特定する。そして、設計手順生成部13は、特定した設計ルールを設定順序リスト22に追加する。この結果、設計手順生成部13は、設定順序リスト22に、(1)→(2)→(3)→(4)→(5)→(6)の順序で設計ルールを追加することができ、設計手順を生成できる。図10Dには、設定順序リスト22に記憶されている設計手順の内容が示されている。
次に、新たなデータセンタDが増える場合のパラメータ生成部による処理を、図11を参照して説明する。図11は、新たなデータセンタが増える場合のパラメータ生成部による処理の具体例を示す図である。なお、パラメータ生成部14による処理は、図10Dに示す設計手順を用いるとする。また、マニュアル入力パラメータ23は、「Role」と「nameserver」であるとする。
図11上段に示すように、データセンタDに搭載されるサーバD1〜D4に対して、まだパラメータが生成されていない。
図11中段に示すように、パラメータ生成部14は、マニュアル入力パラメータに対してマニュアル入力を受け付けると、マニュアル入力パラメータの情報を生成する。ここでは、サーバD1に対してマニュアル入力パラメータ「Role」に入力された値「admin」が割り当てられる。サーバD2に対してマニュアル入力パラメータ「Role」に入力された値「DNS」が割り当てられる。サーバD3に対してマニュアル入力パラメータ「Role」に入力された値「security」が割り当てられる。サーバD4に対してマニュアル入力パラメータ「Role」に入力された値「Web server」が割り当てられる。そして、サーバD1〜D4に対してマニュアル入力パラメータ「nameserver」に入力された値「192.168.7.1」が割り当てられる。
図11下段に示すように、パラメータ生成部14は、設計手順にしたがって、順々にパラメータの情報を生成する。ここでは、図10Dに示す設計手順の設計ルール(1)にしたがって、サーバD1のパラメータ「LANG」に「jp」が割り当てられる。また、設計手順の設計ルール(2)にしたがって、サーバD2〜D4のパラメータ「LANG」に「en」が割り当てられる。また、設計手順の設計ルール(3)にしたがって、サーバD1のパラメータ「UTC」に「false」が割り当てられる。また、設計手順の設計ルール(4)にしたがって、サーバD2〜D4のパラメータ「UTC」に「true」が割り当てられる。また、設計手順の設計ルール(5)にしたがって、サーバD1のパラメータ「IP」に「dhcp」が割り当てられる。また、設計手順の設計ルール(6)にしたがって、サーバD2〜D4のパラメータ「IP」に「static」が割り当てられる。
これにより、パラメータ生成部14は、新たなデータセンタDが増える場合、設計手順にしたがって、パラメータを生成することができ、対象システム2に設定することができる。
次に、データセンタDに新たなサーバD5が増える場合のパラメータ生成部による処理を、図12Aおよび図12Bを参照して説明する。図12Aおよび図12Bは、サーバが増える場合のパラメータ生成部による処理の具体例を示す図である。なお、パラメータ生成部による処理は、図10Dに示す設計手順を用いるとする。また、マニュアル入力パラメータは、「Role」と「nameserver」であるとする。
図12A上段に示すように、データセンタDに搭載されるサーバD1〜D5に対して、まだパラメータが生成されていない。
図12A中段に示すように、パラメータ生成部14は、マニュアル入力パラメータに対してマニュアル入力を受け付けると、マニュアル入力パラメータの情報を生成する。ここでは、サーバD1〜D4に対する処理は、図11中段の説明と同様であるので、その説明を省略する。そして、新たなサーバD5に対して、マニュアル入力パラメータ「Role」に入力された値「WebDAV」が割り当てられる。そして、サーバD5に対して、マニュアル入力パラメータ「nameserver」に入力された値「192.168.7.1」が割り当てられる。
図12A下段に示すように、パラメータ生成部14は、図10Dに示す設計手順にしたがって、順々にパラメータの情報を生成する。ここでは、サーバD1〜D4に対する処理は、図11下段の説明と同様であるので、その説明を省略する。そして、パラメータ生成部14は、サーバD5に対して、設計手順に該当する設計ルールがないのでパラメータの情報を生成できない。
図12B上段に示すように、パラメータ生成部14は、生成できていない箇所が存在する場合、生成できていない箇所の内、順序が最も早いパラメータに対応する箇所のマニュアル入力を、管理者に依頼する。ここでは、生成できていない箇所の内、順序が最も早いパラメータは「LANG」であるので、パラメータ生成部14による依頼の結果、パラメータ「LANG」に入力された値「en」が割り当てられる。
図12B下段に示すように、パラメータ生成部14は、設計手順にしたがって、順々にパラメータの情報を生成する。ここでは、図10Dに示す設計手順の設計ルール(4)にしたがって、サーバD5のパラメータ「UTC」に「true」が割り当てられる。また、設計手順の設計ルール(6)にしたがって、サーバD5のパラメータ「IP」に「static」が割り当てられる。
これにより、パラメータ生成部14は、データセンタDに新たなサーバD5が増える場合、設計手順にしたがって、パラメータを生成することができ、新たなサーバD5に設定することができる。
次に、データセンタDの設計方針が変わる場合のパラメータ生成部による処理を、図13Aおよび図13Bを参照して説明する。図13Aおよび図13Bは、設計方針が変わる場合のパラメータ生成部による処理の具体例を示す図である。なお、全てのサーバについてパラメータ「LANG」の値を「en」とするように、設計方針が変わる場合とする。また、パラメータ生成部による処理は、図10Dに示す設計手順を用いるとする。また、マニュアル入力パラメータは、「Role」と「nameserver」であるとする。
図13Aに示すように、設計方針が変わったパラメータ「LANG」をマニュアル入力パラメータとすべく、設計手順の中でパラメータ「LANG」に値を定義する設計ルール(1),(2)がスキップされる。設計ルールのスキップは、例えば管理者によって行われる。すなわち、設計手順の中で設計ルール(1),(2)をはずした設計手順が用いられる。
図13B上段に示すように、パラメータ生成部14は、マニュアル入力パラメータに対してマニュアル入力を受け付けると、マニュアル入力パラメータの情報を生成する。ここでは、サーバD1〜D4に対する、マニュアル入力パラメータ「Role」、「nameserver」に関する処理は、図11中段の説明と同様であるので、その説明を省略する。そして、パラメータ生成部14は、生成できていない箇所が存在する場合、生成できていない箇所の内、順序が最も早いパラメータに対応する箇所のマニュアル入力を、管理者に依頼する。ここでは、設計手順の中でパラメータ「LANG」に値を定義する設計ルール(1),(2)がスキップされるので、生成できていない箇所の内、順序が最も早いパラメータは「LANG」である。パラメータ生成部14による依頼の結果、設計方針が変わったパラメータ「LANG」に入力された値「en」が割り当てられる。
図13B下段に示すように、パラメータ生成部14は、設計手順にしたがって、順々にパラメータの情報を生成する。ここでは、各サーバに対するパラメータ「LANG」の値が全て「en」であるので、図13Aに示す設計手順の設計ルール(4)にしたがって、パラメータ「UTC」に「true」が割り当てられる。続いて、設計手順の設計ルール(6)にしたがって、パラメータ「IP」に「static」が割り当てられる。
これにより、パラメータ生成部14は、設計方針が変わった場合でも、設計手順にしたがって、パラメータを生成することができ、設計方針が変わった対象システム2に設定することができる。
次に、新しいパラメータが増える場合のパラメータ生成部による処理を、図14を参照して説明する。図14は、新しいパラメータが増える場合のパラメータ生成部による処理の具体例を示す図である。なお、パラメータ生成部による処理は、図10Dに示す設計手順を用いるとする。また、マニュアル入力パラメータは、「Role」、「nameserver」および新しいパラメータである「OS version」であるとする。
図14上段に示すように、データセンタDに搭載されるサーバD1〜D4に対して、まだパラメータが生成されていない。
図14中段に示すように、パラメータ生成部14は、マニュアル入力パラメータに対してマニュアル入力を受け付けると、マニュアル入力パラメータの情報を生成する。ここでは、サーバD1〜D4に対するマニュアル入力パラメータ「Role」,「nameserver」の処理は、図11中段の説明と同様であるので、その説明を省略する。そして、サーバD1〜D4に対して新しいマニュアル入力パラメータ「OS version」に入力された値「CentOS 2.1」が割り当てられる。
図14下段に示すように、パラメータ生成部14は、設計手順にしたがって、順々にパラメータの情報を生成する。ここでは、サーバD1〜D4に対するパラメータ「LANG」,「UTC」,「IP」の値が、それぞれ設計手順にしたがって生成される。サーバD1〜D4に対する処理は、図11下段の説明と同様であるので、その説明を省略する。
これにより、パラメータ生成部14は、新しいパラメータが増える場合でも、設計手順にしたがって、パラメータを生成することができ、新しいパラメータを含めて対象システム2に設定することができる。
[設計ルール生成部の処理手順]
次に、設計ルール生成部の処理手順を、図15を参照して説明する。図15は、設計ルール生成部の処理手順を示すフローチャートである。なお、対象システム2にパラメータを設定する旨の要求が設計ルール生成部12によって受け付けられたとする。ここでは、対象システム2は、データセンタであるとする。
設計ルール生成部12のクラスタリング部121は、教師データ21に対してクラスタリングを行い、クラスタ(設計ルール)を生成する(ステップS11)。すなわち、クラスタリング121は、クラスタリング手法を用いて、教師データ21から設計単位、ここではデータセンタ単位の共通部分を特定し、クラスタリング結果から設計ルールを生成する。
そして、設計ルール生成部12のパラメータ判別部122は、教師データ21に含まれる全てのパラメータの中で、設計単位内、ここではデータセンタ単位内において固有の値を持つパラメータを抽出し、マニュアル入力として判別する(ステップS12)。パラメータ判別部122は、教師データ21に含まれる全てのパラメータの中で、設計単位間、ここではデータセンタ単位間において固有の値を持つパラメータを抽出し、マニュアル入力として判別する(ステップS13)。
そして、設計ルール生成部12のパラメータ判別部122は、マニュアル入力パラメータとクラスタ(設計ルール)を設計手順生成部13に出力する(ステップS14)。
[設計手順生成部の処理手順]
次に、設計手順生成部の処理手順を、図16を参照して説明する。図16は、設計手順生成部の処理手順を示すフローチャートである。なお、パラメータ判別部122からマニュアル入力パラメータとクラスタ(設計ルール)が受け付けられたとする。
設計手順生成部13は、パラメータ判別部122から受け付けられた全てのクラスタ(設計ルール)の中で、マニュアル入力のみで条件を満たすクラスタを特定する(ステップS21)。そして、設計手順生成部13は、条件を満たすクラスタを1つ以上特定できたか否かを判定する(ステップS22)。条件を満たすクラスタを1つ以上特定できたと判定した場合(ステップS22;Yes)、設計手順生成部13は、特定されたクラスタの条件および定義を設定順序リスト22に記録する(ステップS23)。なお、設計手順生成部13は、以降の検査では、特定されたクラスタの定義を既知の情報として扱うこととする。
続いて、設計手順生成部13は、特定されたクラスタを以降の検査対象から除外する(ステップS24)。特定されたクラスタは、設定順序リスト22に記録されたことで、既に順序に組み込まれたからである。そして、設計手順生成部13は、検査対象となるクラスタが存在するか否かを判定する(ステップS25)。検査対象となるクラスタが存在すると判定した場合(ステップS25;Yes)、設計手順生成部13は、既知の定義とマニュアル入力のみで条件を満たすクラスタを特定し(ステップS26)、ステップS22へ移行する。
ステップS22では、条件を満たすクラスタを1つも特定できなかったと判定した場合(ステップS22;No)、設計手順生成部13は、再帰的クラスタリングアルゴリズムを実行する(ステップS27)。そして、設計手順生成部13は、再帰的クラスタリングアルゴリズムによって処理された結果、検査対象のクラスタがマニュアル入力の必要なクラスタであるか否かを判定する(ステップS28)。マニュアル入力の必要なクラスタであると判定した場合(ステップS28;Yes)、設計手順生成部13は、当該クラスタに対するマニュアル入力を依頼すべく、ステップS26へ移行する。一方、マニュアル入力の必要なクラスタでないと判定した場合(ステップS28;No)、設計手順生成部13は、当該クラスタを記録すべく、ステップS23へ移行する。なお、再帰的クラスタリングアルゴリズムの処理手順は、図17で後述する。
ステップS25では、設計手順生成部13は、検査対象となるクラスタが存在しないと判定した場合(ステップS25;No)、設定順序リスト22に記録された順にクラスタの条件および定義を並べ、設計手順として出力する(ステップS29)。引き続き、処理は、パラメータ生成部13へ移行する。
[再帰的クラスタリングアルゴリズムの処理手順]
次に、図16のS27で示した再帰的クラスタリングアルゴリズムの処理手順を、図17を参照して説明する。図17は、再帰的クラスタリングアルゴリズムの処理手順を示すフローチャートである。
設計手順生成部13は、検査対象のクラスタ(設計ルール)で循環参照のクラスタがあるか否かを判定する(ステップS31)。例えば、設計手順生成部13は、条件があと1つで満たされるクラスタの集合を抽出する。そして、設計手順生成部13は、クラスタの集合の中でいずれか2つのクラスタであって各定義が互いの条件に含まれる2つのクラスタの検出を試みる。
検査対象のクラスタで循環参照のクラスタがあると判定した場合(ステップS31;Yes)、設計手順生成部13は、循環参照しているパラメータを1つマスクし、残りのデータで再クラスタリングを実行する(ステップS32)。例えば、設計手順生成部13は、循環参照している2つのクラスタが定義するそれぞれのパラメータのどちらか一方のパラメータを教師データ21から除外する。そして、設計手順生成部13は、他方のパラメータに対するクラスタリング処理を、除外したパラメータ以外のパラメータを用いて再びクラスタリング部121に実行させる。そして、設計手順生成部13は、ステップS31に移行する。
一方、検査対象のクラスタで循環参照のクラスタがないと判定した場合(ステップS31;No)、設計手順生成部13は、検査対象のクラスタが既知の情報で条件を満たすか否かを判定する(ステップS33)。ここでいう既知の情報とは、既に特定されたクラスタの定義と、マニュアル入力パラメータおよび入力された値とを意味する。そして、検査対象のクラスタが既知の情報で条件を満たすと判定した場合(ステップS33;Yes)、検査対象のクラスタがマニュアル入力の必要でないクラスタであると判断し、元の処理へ戻る。一方、検査対象のクラスタが既知の情報で条件を満たさないと判定した場合(ステップS33;No)、設計手順生成部13は、検査対象のクラスタの定義が示すパラメータをマニュアル入力とする(ステップS34)。すなわち、設計手順生成部13は、検査対象のクラスタがマニュアル入力の必要であるクラスタであると判断し、元の処理へ戻る。
[パラメータ生成部の処理手順]
次に、パラメータ生成部の処理手順を、図18を参照して説明する。図18は、パラメータ生成部の処理手順を示すフローチャートである。なお、マニュアル入力パラメータ23および設定手順リスト22が生成されているとする。
パラメータ生成部14は、マニュアル入力パラメータ23に記憶されたパラメータに対して、マニュアル入力データを用いて値を設定する(ステップS41)。そして、パラメータ生成部14は、設定手順リスト22に記憶された設定手順を順々に実行し、条件に当てはまる設定箇所を特定する(ステップS42)。
そして、パラメータ生成部14は、特定した設定箇所に既に値が入力されているか否かを判定する(ステップS43)。特定した設定箇所に既に値が入力されていると判定した場合(ステップS43;Yes)、パラメータ生成部14は、特定した設定箇所をスキップして次の手順に進む(ステップS44)。そして、パラメータ生成部14は、ステップS46に移行する。
一方、特定した設定箇所に未だ値が入力されていないと判定した場合(ステップS43;No)、パラメータ生成部14は、クラスタの定義を設定箇所に設定し、次の手順に進む(ステップS45)。そして、パラメータ生成部14は、ステップS46に移行する。
ステップS46では、パラメータ生成部14は、次の手順が存在するか否かを判定する(ステップS46)。次の手順が存在すると判定した場合(ステップS46;Yes)、パラメータ生成部14は、次の手順の処理をすべく、ステップS42に移行する。一方、次の手順が存在しないと判定した場合(ステップS46;No)、パラメータ生成部14は、終了検査へ進む。
[終了検査の処理手順]
次に、パラメータ生成部14による終了検査の処理手順を、図19を参照して説明する。図19は、終了検査の処理手順を示すフローチャートである。
パラメータ生成部14は、未だ設定できていない箇所が存在するか否かを判定する(ステップS51)。未だ設定できていない箇所が存在すると判定した場合(ステップS51;Yes)、パラメータ生成部14は、設定できていない箇所の内、順序が最も早いパラメータに対応する箇所のマニュアル入力を管理者に依頼する(ステップS52)。そして、パラメータ生成部14は、ステップS41に移行する。
一方、未だ設定できていない箇所が存在しないと判定した場合(ステップS51;No)、パラメータ生成部14は、処理を終了する。
[実施例の効果]
上記実施例によれば、パラメータ設定支援装置1は、過去に設計された設計対象である対象システム2を構成する複数の機器と、設計に用いられたパラメータの設定に関する情報との対応情報を対象システム2毎に記憶部11に記憶する。そして、パラメータ設定支援装置1は、記憶部11に記憶された対応情報を用いて、対象システム2間で共通するパラメータに関し当該パラメータの設定に用いられる条件および定義を示す設計ルールを複数生成する。そして、パラメータ設定支援装置1は、マニュアル入力されたパラメータの値と、複数生成した設計ルールとに基づいて、設計ルールを実行する設計手順を生成する。かかる構成によれば、パラメータ設定支援装置1は、設計ルールおよび設計手順を自動的に生成するので、生成した設計手順を用いて新たな対象システム2におけるパラメータに適正な値を設定できる。すなわち、パラメータ設定支援装置1は、新たな対象システム2における設計を自動で行うことが可能となる。
また、上記実施例によれば、パラメータ設定支援装置1は、マニュアル入力のパラメータおよび当該パラメータに入力された値を用いて条件が満たされる設計ルールを特定する。そして、パラメータ設定支援装置1は、特定した設計ルールを設計手順として生成する。そして、パラメータ設定支援装置1は、特定した設計ルールの定義を用いて条件が満たされる設計ルールを繰り返し特定し、特定した設計ルールを設計手順として生成する。かかる構成によれば、パラメータ設定支援装置1は、設計ルールの定義を用いて条件が満たされる設計ルールを繰り返し特定することで、設計ルールを実行する設計手順を容易に生成することができる。
また、上記実施例によれば、パラメータ設定支援装置1は、マニュアル入力のパラメータおよび当該パラメータに入力された値、または/および特定した設計ルールの定義を用いて条件が満たされない設計ルールを複数抽出する。そして、パラメータ設定支援装置1は、複数抽出した設計ルールの中でいずれか2つの設計ルールであって各定義が互いの条件に含まれる2つの設計ルールを検出する。そして、パラメータ設定支援装置1は、検出した2つの設計ルールのどちらか一方の定義に含まれるパラメータを除外したうえで、他方の定義に含まれるパラメータに対して設計ルールを生成する処理を再び実行する。そして、パラメータ設定支援装置1は、実行して得られた設計ルールを用いて、設計手順を生成する。かかる構成によれば、パラメータ設定支援装置1は、条件が満たされない設計ルールがあっても、各定義が互いの条件に含まれる設計ルールのどちらか一方の定義に含まれるパラメータを除外し、他方の定義に含まれるパラメータに対して設計ルールを再生成する。この結果、パラメータ設定支援装置1は、再生成された設計ルールから設計手順を生成することが可能になる。
また、上記実施例によれば、パラメータ設定支援装置1は、生成された設計手順を用いて、新たな設計対象である対象システム2の設計に用いられるパラメータを設定する。かかる構成によれば、パラメータ設定支援装置1は、新たな設計対象である対象システム2の設計に用いられるパラメータを自動的に設定することができる。この結果、パラメータ設定支援装置1は、システム構築者の対象システム2における設計負担を減らすことができる。
[その他]
なお、パラメータ設定支援装置1は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置に、上記した設計ルール生成部12と、設計手順生成部13などの各機能を搭載することによって実現することができる。
また、図示した装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、装置の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、クラスタリング部121とパラメータ判別部122とを1個の部として統合しても良い。一方、設計手順生成部13を、設計ルールの定義によって条件が満たされる場合の処理部と設計ルールの定義によって条件が満たされない場合の処理部とに分散しても良い。また、記憶部11をパラメータ設定支援装置1の外部装置に記憶するようにしても良いし、記憶部11を記憶した外部装置をパラメータ設定支援装置1とネットワーク経由で接続するようにしても良い。
また、上記実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーション等のコンピュータで実行することによって実現することができる。そこで、以下では、図1に示したパラメータ設定支援装置1と同様の機能を実現するパラメータ設定支援プログラムを実行するコンピュータの一例を説明する。図20は、パラメータ設定支援プログラムを実行するコンピュータの一例を示す図である。
図20に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク211用の装置である。HDD205は、パラメータ設定支援プログラム205aおよびパラメータ設定支援関連情報205bを記憶する。
CPU203は、パラメータ設定支援プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、パラメータ設定支援装置1の各機能部に対応する。パラメータ設定支援関連情報205bは、教師データ21、設定順序リスト22およびマニュアル入力パラメータ23に対応する。そして、例えばリムーバブルディスク211が、教師データ21などの各情報を記憶する。
なお、パラメータ設定支援プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカード等の「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからパラメータ設定支援プログラム205aを読み出して実行するようにしても良い。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)過去に設計された設計対象を構成する複数の機器と、設計に用いられたパラメータの設定に関する情報との対応情報を設計対象毎に記憶部に記憶し、
前記記憶部に記憶された対応情報を用いて、設計対象間で共通するパラメータに関し当該パラメータの設定に用いられる条件および定義を示すルールを複数生成し、
マニュアル入力されたパラメータの値と、該複数生成したルールとに基づいて、前記ルールを実行する手順を生成する
処理をコンピュータに実行させることを特徴とするパラメータ設定支援プログラム。
(付記2)前記手順を生成する処理は、マニュアル入力されたパラメータの値を用いて条件が満たされる前記ルールを特定し、特定したルールを前記手順として生成し、特定したルールの定義を用いて条件が満たされる前記ルールを特定し、特定したルールを前記手順として生成する処理を繰り返すことで前記手順を生成する
処理をコンピュータに実行させることを特徴とする付記1に記載のパラメータ設定支援プログラム。
(付記3)前記手順を生成する処理は、マニュアル入力されたパラメータの値および特定したルールの定義を用いて条件が満たされないルールを複数抽出し、複数抽出したルールの中でいずれか2つのルールであって各定義が互いの条件に含まれる2つのルールを検出し、検出した2つのルールのどちらか一方の定義に関するパラメータを除外したうえで、他方の定義に関するパラメータに対して前記ルールを生成する処理を再び実行し、実行して得られたルールを用いて、前記手順を生成する
処理をコンピュータに実行させることを特徴とする付記2に記載のパラメータ設定支援プログラム。
(付記4)前記手順を生成する処理によって生成された手順を用いて、新たな設計対象の設計に用いられるパラメータを設定する
処理をコンピュータに実行させることを特徴とする付記3に記載のパラメータ設定支援プログラム。
(付記5)過去に設計された設計対象を構成する複数の機器と、設計に用いられたパラメータの設定に関する情報との対応情報を設計対象毎に記憶する記憶部と、
前記記憶部によって記憶された対応情報を用いて、設計対象間で共通するパラメータに関し当該パラメータの設定に用いられる条件および定義を示すルールを複数生成するルール生成部と、
マニュアル入力されたパラメータの値と、前記ルール生成部によって複数生成されたルールとに基づいて、前記ルールを実行する手順を生成する手順生成部と
を有することを特徴とするパラメータ設定支援装置。
(付記6)コンピュータが、
過去に設計された設計対象を構成する複数の機器と、設計に用いられたパラメータの設定に関する情報との対応情報を設計対象毎に記憶部に記憶し、
前記記憶部に記憶された対応情報を用いて、設計対象間で共通するパラメータに関し当該パラメータの設定に用いられる条件および定義を示すルールを複数生成し、
マニュアル入力されたパラメータの値と、該複数生成したルールとに基づいて、前記ルールを実行する手順を生成する
各処理を実行することを特徴とするパラメータ設定支援方法。