(57)【要約】【課題】連携サービスにおいて、複数の構成要素サービスの設定項目の設定順序を決定することを可能とする。【解決手段】サービス構築順序決定装置１００は、構成要素の設定項目と、この設定項目が依存する依存先設定項目を関連付けた設定項目表２００を含む連携サービスカタログ１４０を記憶する。サービス構築順序決定装置１００の構築順序決定部１１１は、依存先設定項目が設定されていない設定項目、または、依存先設定項目の設定順序が決定している設定項目から順番に設定順序を決定していく。【選択図】図１
2019028905.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続される複数の構成要素からなる連携サービスシステムのサービス構築順序を決定するサービス構築順序決定装置であって、
前記構成要素の設定項目と、前記設定項目が依存する設定項目である依存先設定項目と、構築順序とを関連付けて格納する設定項目情報を記憶する記憶部と、
前記設定項目情報を参照し、前記依存先設定項目が設定されてない前記設定項目、または、前記依存先設定項目の前記構築順序が決定している前記設定項目から順番に構築順序を設定していく構築順序決定部と、
を備えることを特徴とするサービス構築順序決定装置。
【請求項２】
前記設定項目は、前記構成要素に関する設定項目であるノード系設定項目と、前記構成要素間の通信接続に関する設定項目であるリンク系設定項目からなり、
前記リンク系設定項目の前記依存先設定項目は、前記リンク系設定項目が示す通信接続により接続される構成要素の設定項目であること、
を特徴とする請求項１に記載のサービス構築順序決定装置。
【請求項３】
前記リンク系設定項目の前記依存先設定項目は、前記通信接続により接続される１端の構成要素の設定項目のみであるか、前記通信接続により接続される１端の構成要素の設定項目と接続が想定される１つの構成要素の設定項目とであるかのいずれか一方であること、
を特徴とする請求項２に記載のサービス構築順序決定装置。
【請求項４】
前記構成要素は、複数の構成要素グループに分割され、さらに、前記構成要素グループ間で構築順序の設定の順序であるグループ構築順序が設定され、
前記構築順序決定部は、前記グループ構築順序の順序に従って、各構成要素グループ内での構築順序を設定していくこと、
を特徴とする請求項１に記載のサービス構築順序決定装置。
【請求項５】
ネットワークで接続される複数の構成要素からなる連携サービスシステムのサービス構築順序を決定するサービス構築順序決定装置のサービス構築順序決定方法であって、
前記サービス構築順序決定装置は、
前記構成要素の設定項目と、前記設定項目が依存する設定項目である依存先設定項目と、構築順序とを関連付けて格納する設定項目情報を記憶する記憶部を備えており、
前記設定項目情報を参照し、前記依存先設定項目が設定されてない前記設定項目、または、前記依存先設定項目の前記構築順序が決定している前記設定項目から順番に構築順序を設定していく構築順序決定ステップ
を実行することを特徴とするサービス構築順序決定方法。
【請求項６】
前記構成要素は、複数の構成要素グループに分割され、さらに、前記構成要素グループ間で構築順序の設定の順序であるグループ構築順序が設定され、
前記構築順序決定ステップは、前記グループ構築順序の順序に従って、各構成要素グループ内での構築順序を設定すること、
を特徴とする請求項５に記載のサービス構築順序決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の構成要素からなる連携サービスの構築を可能とするサービス構築順序決定装置およびサービス構築順序決定方法に関する。
【背景技術】
【０００２】
現在、ネットワークサービス、計算機基盤サービスおよびアプリケーションサービスなど各種サービスを提供する卸サービス事業者が出現している。これに伴い、エンドユーザにサービスを提供するサービス事業者の中には、自社で資産を保有せず、卸サービス事業者が提供するサービスを組み合わせて独自サービスを提供するサービス事業者も現れている。
【０００３】
図１２は、卸サービスを連携させて独自サービスを構築する例を説明するための図である。図１２を参照しながら、ＷｅｂアプリケーションとＷｅｂアプリケーションへのアクセスを提供するＷｅｂアプリ通信サービスの構築例を説明する。
仮想ネットワーク３００ａは、計算機基盤サービス上の仮想的なネットワーク空間であり、そのサブネットワークとして、公開サブネット３１０ａと非公開サブネット３２０ａとを含む。仮想ネットワーク３００ａは、計算機基盤サービス上の他の仮想ネットワークから論理的に分離されている。
【０００４】
公開サブネット３１０ａは、仮想ネットワーク３００ａのサブネットであり、ＶＭ１（Virtual Machine 1、仮想マシン１）３１１ａを含んで構成される。ＶＭ１（３１１ａ）上で、アプリケーションサービスであるＡＰＬ１（Application 1）３１２ａが稼働する。公開サブネット３１０ａは、仮想ネットワーク３００ａの外部にサービスを提供するＶＭが稼働するネットワークである。ＶＭ１（３１１ａ）は、後述するＴ１（６０１ａ）、Ｔ２（６０２ａ）の端末にサービスを提供するＷｅｂアプリケーションサービスのサーバである。
【０００５】
非公開サブネット３２０ａは、仮想ネットワーク３００ａのサブネットであり、ＶＭ２（３２１ａ）を含んで構成される。ＶＭ２（３２１ａ）上で、アプリケーションサービスであるＡＰＬ２（３２２ａ）が稼働する。非公開サブネット３２０ａは、仮想ネットワーク３００ａの外部と直接に通信することはなく、公開サブネット３１０ａで稼働するＶＭに対してサービスを提供するＶＭが稼働する。ＡＰＬ２（３２２ａ）は、ＡＰＬ１（３１２ａ）に対してサービスを提供する、例えばデータベースサービスである。
【０００６】
ＶＮＧＷ（Virtual Network Gateway）４００ａは、後述するＭＲ（Mobile Router）５００ａから仮想ネットワーク３００ａへの通信を仲介するゲートウェイである。ＭＲ５００ａは、３ＧやＬＴＥ（Long Term Evolution）などのデータ通信を経由して、無線ＬＡＮ（Local Area Network）機器をＶＮＧＷ４００ａを経由して仮想ネットワーク３００ａに接続する通信機器である。Ｔ１（６０１ａ）とＴ２（６０２ａ）とは端末（例えば、パソコン）であって、無線ＬＡＮ通信でＭＲ５００に接続し、ＡＰＬ１（３１２ａ）が提供するサービスにアクセスする。
【０００７】
上記した仮想ネットワーク３００ａやＶＭ１（３１１ａ）は、計算基盤サービスの例であり、ＶＮＧＷ４００ａやＭＲ５００ａは、ネットワークサービスの例である。これらのサービスを連携させて、１つのサービスとして利用者に提供するためには、サービスを提供する個々の構成要素であるノードに対して、ノード間で連携させるための設定が必要となる。
【０００８】
設定ＳＴ１は、Ｔ１（６０１ａ）の設定項目の一部であり、デバイス名やＩＰアドレス、サブネットマスク、ＧＷ（Gateway）アドレス、ポート番号などを含む。設定ＳＴ２は、ＭＲ５００ａの設定項目の一部であり、接続先のＡＰＮ(Access Point Name)や接続時の認証方式、ＬＡＮ側ＩＰアドレス、端末１マッピング情報としてのＬＡＮ側ホストＩＰアドレスなどを含む。設定ＳＴ３は、ＶＮＧＷ４００ａの設定項目の一部であり、ＶＮＧＷ名の他に、接続先の仮想ネットワーク３００ａの識別情報（「ＶＮ  ＩＤ」（Virtual Network Identifier））、ネットワークアドレス（ＶＮアドレスレンジ）、ＶＭ１（３１１ａ）のアドレス（「ＶＭ１  ＩＰアドレス」）、および、ＭＲ５００ａのＳＩＭ（Subscriber Identity Module）カードの情報(ＳＩＭ情報)などを含む。
【０００９】
設定ＳＴ４は、仮想ネットワーク３００ａの設定項目の一部であり、名称（ＶＮ名）、ネットワークアドレス（「ＩＰ  ＣＩＤＲ（Internet Protocol Classless Inter-Domain Routing）ブロック」）に関する設定項目を含む。さらに、設定ＳＴ４は、仮想ネットワーク３００ａのサブネットである公開サブネット３１０ａの名称（サブネット名）やネットワークアドレス（ＩＰアドレスレンジ）に関する設定項目を含む。設定ＳＴ５は、公開サブネット３１０ａの設定項目の一部であり、ルートテーブル（送信先ネットワークアドレス（送信先ＩＰアドレス）、そのゲートウェイ（Target ID））やセキュリティグループ（グループ名、インバウンドトラフィックの許可ルール（Inbound Rule））など、ネットワークのルーティングやフィルタリングに関わる設定を含む。設定ＳＴ６は、ＶＭ２（３２１ａ）の設定項目の一部であり、ＣＰＵ（Central Processing Unit）やメモリ等のＶＭのハードウェア仕様（Type）、稼働する仮想ネットワーク（「ＶＮ  ＩＤ」）やサブネット名、セキュリティグループ名、ＩＰアドレスなどの設定項目を含む。
【００１０】
サービス事業者が、サービスを構築して利用者に提供するには、構成要素のリソースを確保するだけではなく、各構成要素を個別に設定する必要がある。また、個々の構成要素を連携させて１つのサービスとして提供するために、関連する他の構成要素の識別情報やアドレスを設定する必要がある。例えば、ＶＭ２（３２１ａ）の設定ＳＴ６には、自身が稼働する仮想ネットワーク３００ａの識別情報（「ＶＮ  ＩＤ」）やサブネット名を含んでいる。また、ＶＮＧＷ４００ａの設定ＳＴ３には、接続先の仮想ネットワーク３００ａの識別情報「ＶＮ  ＩＤ」やＶＭ１（３１１ａ）のＩＰアドレス（「ＶＭ１  ＩＰアドレス」）を含んでいる。
【００１１】
サービス事業者が、卸サービスを連携させて、提供サービスを一括で構築するためのアーキテクチャとして、非特許文献１に記載の技術がある。この技術を用いることで、提供サービスのカタログを指定してサービスが要求されると、構成要素となる個々のサービスが生成され、個々のサービスの設定項目が設定されて、１つのサービスとして提供される。なお、サービスのカタログには、サービス名称やサービス内容などのサービス利用者向けの説明文書の他に、構成要素となるサービスの情報、構成要素サービスを連携させるための設定手順（サービス連携ルール）が含まれる。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】高橋謙輔, 他４名, "B2B2Xにおける複数事業者間サービス設定連携方式," 2016年度電子情報通信学会通信ソサイエティ大会 B-14-10, 2016年09月20日
【発明の概要】
【発明が解決しようとする課題】
【００１３】
非特許文献１の技術では、提供サービスがカタログとして定義されており、カタログに含まれるサービス連携ルールに従って、個々のサービスの設定が行われる。サービス連携ルールを作成するのに、サービス事業者は、ネットワークや計算機基盤、アプリケーションなどの構成要素となるサービスの仕様書を読み込む。続いて、サービス事業者は、これらのサービスを連携させて提供サービスを構築するための手順を整理し決定する。このために、サービス事業者にとっては、連携サービスの構築順序（構築手順）の決定が、大きな負担となっている。
【００１４】
このような背景を鑑みて本発明がなされたのであり、本発明は、複数の構成要素サービスを連携させてサービスを提供する場合に、従来の人手による構築順序決定と比べて、より効率的に構成要素サービスの設定項目の設定順序を決定することを可能とするサービス構築順序決定装置およびサービス構築順序決定方法を提供することを課題とする。
【課題を解決するための手段】
【００１５】
前記した課題を解決するため、請求項１に記載の発明は、ネットワークで接続される複数の構成要素からなる連携サービスシステムのサービス構築順序を決定するサービス構築順序決定装置であって、前記構成要素の設定項目と、前記設定項目が依存する設定項目である依存先設定項目と、構築順序とを関連付けて格納する設定項目情報を記憶する記憶部と、前記設定項目情報を参照し、前記依存先設定項目が設定されていない前記設定項目、または、前記依存先設定項目の前記構築順序が決定している前記設定項目から順番に構築順序を設定していく構築順序決定部とを備えることを特徴とするサービス構築順序決定装置とした。
【００１６】
また、請求項５に記載の発明は、ネットワークで接続される複数の構成要素からなる連携サービスシステムのサービス構築順序を決定するサービス構築順序決定装置のサービス構築順序決定方法であって、前記サービス構築順序決定装置が、前記構成要素の設定項目と、前記設定項目が依存する設定項目である依存先設定項目と、構築順序とを関連付けて格納する設定項目情報を記憶する記憶部を備え、前記設定項目表を参照し、前記依存先設定項目が設定されていない前記設定項目、または、前記依存先設定項目の前記構築順序が決定している前記設定項目から順番に構築順序を設定していく構築順序決定ステップを実行することを特徴とするサービス構築順序決定方法とした。
【００１７】
このようにすることで、サービス構築順序決定装置は、依存先が設定されていない設定項目または依存先の構築順序が決定済みの設定項目から順番に構築順序を設定するので、設定項目間の依存関係を考慮した構築順序を決定することができる。このために、サービス構築順序決定装置は、従来よりも効率的に構築順序を決定することができる。
【００１８】
請求項２に記載の発明は、前記設定項目が、前記構成要素に関する設定項目であるノード系設定項目と、前記構成要素間の通信接続に関する設定項目であるリンク系設定項目からなり、前記リンク系設定項目の前記依存先設定項目が、前記リンク系設定項目が示す通信接続により接続される構成要素の設定項目であることを特徴とする請求項１に記載のサービス構築順序決定装置とした。
【００１９】
このようにすることで、サービス構築順序決定装置は、構築要素が通信接続に係る設定項目を含む場合であっても、この通信接続の依存関係を考慮した構築順序を従来よりも効率的に決定することができる。
【００２０】
請求項３に記載の発明は、前記リンク系設定項目の前記依存先設定項目が、前記通信接続により接続される１端の構成要素の設定項目のみであるか、前記通信接続により接続される１端の構成要素の設定項目と接続が想定される１つの構成要素の設定項目とであるかのいずれか一方であることを特徴とする請求項２に記載のサービス構築順序決定装置とした。
【００２１】
このようにすることで、サービス構築順序決定装置は、例えば、連携サービス構築後に追加される端末のように、連携サービス構築時には含まれていない構成要素があった場合であっても、構築順序を決定することができる。
【００２２】
請求項４に記載の発明は、前記構成要素が、複数の構成要素グループに分割され、さらに、前記構成要素グループ間で構築順序の設定の順序であるグループ構築順序が設定され、前記構築順序決定部が、前記グループ構築順序の順序に従って、各構成要素グループ内での構築順序を設定していくことを特徴とする請求項１に記載のサービス構築順序決定装置とした。
【００２３】
また、請求項６に記載の発明は、前記構成要素が、複数の構成要素グループに分割され、さらに、前記構成要素グループ間で構築順序の設定の順序であるグループ構築順序が設定され、前記構築順序決定ステップが、前記グループ構築順序の順序に従って、各構成要素グループ内での構築順序を設定していくことを特徴とする請求項５に記載のサービス構築順序決定方法とした。
【００２４】
このようにすることで、サービス構築順序決定装置は、構成要素の中で関連性の強い構築要素の設定項目をまとめて設定可能にする構築順序を決定することができる。これにより、サービス構築順序決定装置は、設定効率が向上するような構築順序を決定することができる。関連性の強い構築要素としては、例えば、モバイル通信サービスとしてセットでレンタルされるＭＲと端末があり、レンタル時にまとめて設定することで設定効率を向上させることができる。
【発明の効果】
【００２５】
本発明によれば、複数の構成要素サービスを連携させてサービスを提供する場合に、従来の人手による構築順序決定と比べて、より効率的に構成要素サービスの設定項目の設定順序を決定することを可能とするサービス構築順序決定装置およびサービス構築順序決定方法を提供することができる。
【図面の簡単な説明】
【００２６】
【図１】本実施形態に係るサービス構築順序決定装置の全体構成を例示する図である。
【図２】本実施形態に係る構築対象の連携サービスの構成要素を説明するための図である。
【図３】本実施形態に係る構築対象の連携サービスの設定項目に対する識別子の割り振りを説明するための図である。
【図４】本実施形態に係る連携サービスカタログに含まれる設定項目表のデータ構成を示す図である。
【図５】本実施形態に係る、依存先設定項目に示される依存関係から、構築順序決定部が、構築順序を決定した後の設定項目表を示す図である。
【図６】本実施形態に係る構築順序決定部が実行する構築順序決定処理（設定順序決定処理）の流れを示すフローチャートである。
【図７】本実施形態の変形例１に係る構築範囲を説明するための図である。
【図８】本実施形態の変形例１に係る、構築範囲の行を追加し、構築範囲Ａの中で構築順序が決定した設定項目表を示す図である。
【図９】本実施形態の変形例１に係る、構築範囲Ａに続いて構築範囲Ｃの中で構築順序が決定した設定項目表を示す図である。
【図１０】本実施形態の変形例１に係る、構築範囲Ａ、構築範囲Ｃに続いて、構築範囲Ｂの中で構築順序が決定した設定項目表を示す図である。
【図１１】本実施形態の変形例１に係る、構築範囲Ａと構築範囲Ｃとを並行して構築順序を決定し、その後に構築範囲Ｂの構築順序を決定した場合の設定項目表を示す図である。
【図１２】卸サービスを連携させて独自サービスを構築する例を説明するための図である。
【発明を実施するための形態】
【００２７】
≪サービス構築順序決定装置の構成≫
以下、本発明を実施するための形態（実施形態）であるサービス構築順序決定装置１００について説明する。図１は、本実施形態に係るサービス構築順序決定装置１００の全体構成を例示する図である。サービス構築順序決定装置１００は、制御部１１０と、入出力部１２０と、記憶部１３０とを含んで構成される。
【００２８】
制御部１１０は、記憶部１３０に格納されたプログラムを実行することにより、構成要素サービスの設定項目の設定順序決定処理（構築順序決定処理）を行う。制御部１１０は、構築順序決定部１１１を備える。構築順序決定部１１１は、後述する連携サービスカタログ１４０に含まれる設定項目間の依存関係を参照して、設定する順序を決定する。
【００２９】
入出力部１２０は、ディスプレイ（不図示）やキーボード（不図示）などとのデータの入出力や他の装置とのデータ送受信を行う。記憶部１３０は、ＲＡＭ（Random Access Memory）やハードディスク、不揮発性メモリなどの記憶デバイスから構成され、サービス構築順序決定装置１００を機能させるプログラム、連携サービスカタログ１４０を含んで記憶する。連携サービスカタログ１４０は、サービス名称やサービス内容などのサービス利用者向け説明文書の他に、構成要素となるサービスの情報、設定項目表（設定項目情報）（後述する図４参照）２００を含んで構成される。
【００３０】
≪連携サービスの構成≫
図２は、本実施形態に係る構築対象の連携サービスの構成要素を説明するための図である。以下の説明では、図２に示す連携サービスの構築順序を決定する処理（設定順序決定処理）を例として説明していく。
仮想ネットワーク３００、公開サブネット３１０、ＶＭ１（３１１）、ＡＰＬ１（３１２）、非公開サブネット３２０、ＶＭ２（３２１）、ＡＰＬ２（３２２）、Ｔ１（６０１）、Ｔ２（６０２）、ＭＲ５００およびＶＮＧＷ４００は、図１２記載の仮想ネットワーク３００ａ、公開サブネット３１０ａ、ＶＭ１（３１１ａ）、ＡＰＬ１（３１２ａ）、非公開サブネット３２０ａ、ＶＭ２（３２１ａ）、ＡＰＬ２（３２２ａ）、Ｔ１（６０１ａ）、Ｔ２（６０２ａ）、ＭＲ５００ａおよびＶＮＧＷ４００ａのそれぞれと同様の機能を備える。よって説明を省略する。
【００３１】
インターネットＧＷ７００は、ＶＭ１（３１１）をインターネット８００に接続するゲートウェイである。インターネットＧＷ７００を設定するには、接続先となるＶＭ１（３１１）のアドレス情報が必要である。Ｔ３（６０３）はパソコンなどの通信端末であり、インターネット８００やインターネットＧＷ７００を経由してＶＭ１（３１１）にアクセスする。
【００３２】
図３は、本実施形態に係る構築対象の連携サービスの設定項目に対する識別子の割り振りを説明するための図である。図３を参照しながら、図２に示した連携サービスに含まれる構成要素の設定項目と設定項目の識別子とを説明する。まず、設定項目について説明する。
設定項目は、ノード系とリンク系に分類される。ノード系とは、設定項目が構成要素（ノード）単体に係る設定項目であることを示す。例えば、仮想ネットワークのＶＮ名は、ノード系の設定項目である。リンク系とは、複数の構成要素を物理的または仮想的に接続するための設定項目である。例えば、ＶＮＧＷ４００の「ＶＭ１  ＩＰアドレス」は、ＭＲ５００を経由した、端末からサーバへのアクセスを、ＶＮＧＷ４００が中継するために必要な設定項目であり、リンク系の設定項目である。
【００３３】
また、設定項目間には依存関係がある場合がある。一方の設定内容が決まらないと他方の設定内容が決まらないという関係である。依存関係の例として、ＶＭと仮想ネットワークがある。ＶＭを構築するときには、どの仮想ネットワーク上に配置するか決める必要があり、ＶＭの設定項目である「ＶＮ  ＩＤ」に配置する仮想ネットワークの識別情報を設定する必要がある。
なお、識別子は、連携サービスカタログ１４０に予め記載されている。すなわち、連携サービスの構成要素の各設定項目に対して識別子が割り振られている。
【００３４】
続いて、図３記載の設定項目の識別子について説明する。Ｎ１〜Ｎ１３は、図２に記載の構成要素であるＴ１（６０１）、Ｔ２（６０２）、ＭＲ５００、ＶＮＧＷ４００、仮想ネットワーク３００、公開サブネット３１０、非公開サブネット３２０、ＶＭ１（３１１）、ＶＭ２（３２１）、ＡＰＬ１（３１２）、ＡＰＬ２（３２２）、インターネットＧＷ７００およびＴ３（６０３）のノード系設定項目に割り振った識別子である。
【００３５】
以下、図１２記載の設定項目（符号ＳＴ１〜ＳＴ６参照）を参照しながら設定項目に割り振る識別子の例をあげる。Ｎ１（図３参照）は、Ｔ１（６０１）（図２参照）のノード系設定項目であるデバイス名（図１２の符号ＳＴ１参照）に対する識別子である。Ｎ４は、ＶＮＧＷ４００のノード系設定項目であるＶＮＧＷ名（符号ＳＴ３参照）に対する識別子である。Ｎ５は、ＶＮ名や「ＩＰ  ＣＩＤＲブロック」（符号ＳＴ４参照）に対する識別子である。Ｎ６は、公開サブネット３１０のセキュリティグループ名（セキュリティグループのグループ名）やルートテーブル（符号ＳＴ５参照）に対する識別子である。Ｎ８は、ＶＭ１（３１１）のノード系設定項目であるセキュリティグループ名（符号ＳＴ６参照）に対する識別子である。
１つの構成要素には、複数の設定項目があるのが通常であり、その１つを代表としてＮ１〜Ｎ１３の識別子を割り振る、ないしは、複数の設定項目をまとめて識別子を割り振ると考えてもよい。
【００３６】
Ｌ１〜Ｌ７は、構成要素の中のリンク系設定項目に対して割り振られた識別子である。例えば、Ｌ４（図３参照）は、ＶＮＧＷ４００（図２参照）とＶＭ１（３１１）との接続関係に係る設定項目であり、ＶＮＧＷ４００の「ＶＭ１  ＩＰアドレス」（符号ＳＴ３参照）やＶＭ１（３１１）が許可するインバウンド通信の設定項目（セキュリティグループ名）（不図示）に割り振られた識別子である。
【００３７】
≪連携サービスカタログに含まれる設定項目表の構成≫
図４は、本実施形態に係る連携サービスカタログ１４０に含まれる設定項目表（設定項目情報）２００のデータ構成を示す図である。設定項目表２００は、例えば、表形式のデータであり、各列は１つの設定項目を表している。図４では、スペースの関係上、３つの表（２１０、２２０および２３０）に分割して記載しているが、論理上はこれらを横に１つにつなげた３行からなる表形式のデータである。
【００３８】
第１行は、設定項目に割り振られた識別子である設定項目識別子２１１である。第２行は、依存関係にある設定項目の識別子である依存先設定項目２１２である。依存先がない場合には、「−」となる。第３行は、設定順序を示す構築順序２１３である。構築順序決定処理（設定順序決定処理）を実行する前なので、全ての設定項目において構築順序２１３は、未定を示す「−」となっている。
【００３９】
続いて、図４に記載した依存先設定項目２１２について説明する。例えば、Ｎ６である公開サブネット３１０のルートテーブルは、Ｎ５である仮想ネットワーク３００の「ＩＰ  ＣＩＤＲブロック」（図１２の符号ＳＴ４参照）に依存している。同様に、Ｎ７はＮ５に依存する。
Ｎ８であるＶＭ１（３１１）のセキュリティグループ名は、Ｎ６である公開サブネット３１０のセキュリティグループ名（符号ＳＴ５参照）に依存している。同様に、Ｎ９はＮ７に依存する。
【００４０】
Ｎ１０であるＡＰＬ１（３１２）の設定には、自身が稼働するＶＭ１（３１１）の設定項目（設定項目識別子はＮ８）が必要である。同様に、Ｎ１１はＮ９に依存する。構成要素（ノード）間に入れ子の関係がある場合には、内側の構成要素は、外側の構成要素に依存する。
Ｎ１２であるインターネットＧＷ７００の設定は、Ｎ５である仮想ネットワーク３００のアドレス情報（「ＩＰ  ＣＩＤＲブロック」、符号ＳＴ４参照）に依存する。また、リンク系の設定項目（Ｌ１〜Ｌ７）は、接続する構成要素に依存する。例えば、Ｌ４の設定項目は、接続するＮ４やＮ８のアドレス情報に依存する。
【００４１】
図４に示すように、設定項目識別子２１１と依存先設定項目２１２は、連携サービスカタログ１４０に予め記載されている。
【００４２】
図５は、本実施形態に係る、依存先設定項目２１２に示される依存関係から、構築順序決定部１１１が、構築順序２１３を決定した後の設定項目表２００Ａを示す図である。構築順序決定部１１１は、依存先設定項目２１２が設定されていない（「−」）設定項目（Ｎ１〜Ｎ５、Ｎ１３）の構築順序２１３を１とする。次に、構築順序（設定順序）が１と決まった設定項目（Ｎ１〜Ｎ５、Ｎ１３）を依存先設定項目２１２とする設定項目の構築順序２１３を２とする。例えば、Ｎ５を依存先設定項目２１２とするＮ６や、Ｎ１とＮ３とを依存先設定項目２１２とするＬ１の構築順序を２とする。
【００４３】
続いて、構築順序が１または２と決まった設定項目を依存先設定項目２１２とする設定項目の構築順序２１３を３とする。例えば、Ｎ６を依存先設定項目２１２とするＮ８の構築順序を３とする。以下これを繰り返す。依存先設定項目２１２に複数の設定項目がある場合（Ｌ１〜Ｌ７）には、全ての依存先設定項目２１２の構築順序（設定順序）が決まった後に、構築順序を割り振る。構築順序決定処理の詳細は、後述する図６を用いて詳細に説明する。
【００４４】
≪構築順序決定処理≫
図６は、本実施形態に係る構築順序決定部１１１が実行する構築順序決定処理（設定順序決定処理）の流れを示すフローチャートである。図６を参照しながら、構築順序決定部１１１が実行する構築順序決定処理の詳細を説明する。
【００４５】
ステップＳ１１において、構築順序決定部１１１は、設定項目表２００の中で構築順序２１３が未設定（「−」）である設定項目を探索する。
ステップＳ１２において、構築順序決定部１１１は、探索結果である設定項目（以下、選択設定項目とも記す。）の構築順序２１３が未設定の項目があれば（Ｓ１２→Ｙ）、ステップＳ１３に進む。構築順序２１３が未設定の設定項目がなければ（Ｓ１２→Ｎ）、全ての設定項目の構築順序２１３が決定済みであり、構築順序決定部１１１は、構築順序決定処理を終える。
【００４６】
ステップＳ１３において、構築順序決定部１１１は、選択設定項目がノード系であれば（Ｓ１３→Ｙ）、ステップＳ１４に進み、ノード系ではなくリンク系であれば（Ｓ１３→Ｎ）、ステップＳ１８に進む。
ステップＳ１４において、構築順序決定部１１１は、選択設定項目が、構築順序が未設定の他のノード系設定項目に依存するか判定する。依存するか否かは、依存先設定項目２１２にある設定項目の構築順序２１３が設定済みか、未設定であるかで判定できる。例えば、Ｎ１〜Ｎ５に構築順序が１に設定済みであり、他は未設定の状態であるとする。この状態の場合、Ｎ６については、依存先であるＮ５は構築順序が設定済みであり、構築順序未設定の他のノード系設定項目に依存しない（Ｎ）。Ｎ８については、依存先であるＮ６は構築順序が未設定であり、構築順序未設定の他のノード系設定項目に依存する（Ｙ）。
【００４７】
ステップＳ１５において、構築順序決定部１１１は、ステップＳ１４の判定が依存する（Ｓ１５→Ｙ）ならば、ステップＳ１６に進み、依存しない（Ｓ１５→Ｎ）ならば、ステップＳ１７に進む。
ステップＳ１６において、構築順序決定部１１１は、選択設定項目を依存先設定項目２１２である設定項目に変更して、ステップＳ１４に戻る。
【００４８】
ステップＳ１７において、構築順序決定部１１１は、選択設定項目の構築順序２１３を設定する。詳しくは、選択設定項目が依存している設定項目の中で構築順序２１３が最大のものに１加えた構築順序２１３を設定する。例えば、Ｎ１〜Ｎ５に構築順序が１に設定済みであり、他は未設定の状態であるとする。この状態の場合、Ｎ６については、依存先であるＮ５は構築順序が１であるので、構築順序を２と設定する。依存先が設定されていない場合には、構築順序を１とする。
【００４９】
ステップＳ１８において、構築順序決定部１１１は、リンク系である選択設定項目の両端のノード系設定項目（依存先設定項目２１２）の構築順序２１３が設定済みか判定する。
ステップＳ１９において、構築順序決定部１１１は、ステップＳ１８の判定が設定済み（Ｓ１９→Ｙ）であれば、ステップＳ２１に進み、いずれかが未設定（Ｓ１９→Ｎ）であれば、ステップＳ２０に進む。
【００５０】
ステップＳ２０において、構築順序決定部１１１は、両端のノード系設定項目のうち未設定であるノード系設定項目を選択設定項目として、ステップＳ１４に進む。
ステップＳ２１において、構築順序決定部１１１は、リンク系である選択設定項目の構築順序２１３を設定する。詳しくは、両端のノード系設定項目の中で構築順序２１３が最大のものに１加えた構築順序２１３を設定する。例えば、Ｎ１〜Ｎ５、Ｎ１３に構築順序が１に設定済みであり、Ｎ１２に構築順序が２に設定済みの状態であるとする。この状態の場合、Ｌ７については、依存先のＮ１２は構築順序が２であり、他の依存先のＮ１３は構築順序が１であるので、構築順序を３と設定する。
【００５１】
以上、説明したように本実施形態によれば、構築順序決定部１１１は、設定項目表２００に記載された構成要素の設定項目の依存関係に注目して構築順序（設定項目の設定順序）を決定する。このために、サービス構築順序決定装置１００は、最短の構築順序を効率的に決定することができる。また、サービス構築順序決定装置１００は、並列的に設定可能な設定項目を決定し、示すことができる。
【００５２】
≪変形例１：構築範囲を指定して構築順序決定≫
上記した実施形態では、連携サービス全体にわたって構築順序を決定している。これに対して、連携サービスの構成要素を複数の構築範囲（構成要素グループ）に分割し、さらに構築範囲間で構築順序を設定した上で、設定項目間の構築順序（設定順序）を決定することも可能である。
【００５３】
図７は、本実施形態の変形例１に係る構築範囲を説明するための図である。設定項目への識別子の割り振りは、図３と同じである。ここでは、構築範囲を３つに分割する例を説明する。構築範囲Ａには、Ｎ１〜Ｎ３、Ｌ１およびＬ２が含まれる。構築範囲Ｂには、Ｎ４、Ｌ３およびＬ４が含まれる。残りの設定項目は、構築範囲Ｃに含まれる。このように構築範囲に分割した上で、例えば、構築範囲Ａ、構築範囲Ｃ、構築範囲Ｂの順序で連携サービスを構築する。
【００５４】
最初に、構築範囲Ａの中で、構築順序決定部１１１が構築順序決定処理を実行する。図８は、本実施形態の変形例１に係る、構築範囲２１４の行を追加し、構築範囲Ａの中で構築順序が決定した設定項目表２００Ｂを示す図である。構築範囲２１４がＡであるＮ１〜Ｎ３、Ｌ１、Ｌ２の設定項目の構築順序２１３が決定しており、構築順序の番号は１〜２である。
【００５５】
次に、構築範囲Ｃの中で、構築順序決定部１１１が構築順序決定処理を実行する。図９は、本実施形態の変形例１に係る、構築範囲Ａに続いて構築範囲Ｃの中で構築順序が決定した設定項目表２００Ｃを示す図である。図８と比較して、構築範囲２１４がＣであるＮ５〜Ｎ１３、Ｌ５〜Ｌ７の設定項目の構築順序２１３が決定しており、構築順序の番号は３〜６である。
【００５６】
続いて、構築範囲Ｂの中で、構築順序決定部１１１が構築順序決定処理を実行する。図１０は、本実施形態の変形例１に係る、構築範囲Ａ、構築範囲Ｃに続いて、構築範囲Ｂの中で構築順序が決定した設定項目表２００Ｄを示す図である。図９と比較して、構築範囲２１４がＢであるＮ４、Ｌ３、Ｌ４の設定項目の構築順序２１３が決定しており、構築順序の番号は７〜８である。
【００５７】
上記の構築範囲Ａ、構築範囲Ｃ、構築範囲Ｂの構築順序とは異なる、構築範囲間の構築順序での例を説明する。図１１は、本実施形態の変形例１に係る、構築範囲Ａと構築範囲Ｃとを並行して構築順序を決定し、その後に構築範囲Ｂの構築順序を決定した場合の設定項目表２００Ｅを示す図である。構築順序決定部１１１が実行する構築順序決定処理は、上記した実施形態と同様であり、最初に構築範囲Ａと構築範囲Ｃとに限定して構築順序決定処理（図６参照）を実行して、続いて、構築範囲Ｂに限定して構築順序決定処理を実行する。構築範囲Ａ、構築範囲Ｃの順で構築順序を決定した図８の場合には、構築順序は１〜８であった。これに比べて図１１の場合には、構築範囲Ａと構築範囲Ｃとで並行して構築順序を決定したため、１〜６と少ない構築順序で、全体が構築可能となっている。
【００５８】
変形例１では、サービス単位など、関連性が強い構成要素をまとめて１つの構築範囲としてまとめて設定するようにしている。構築範囲に分割して、構築範囲内の構成要素をまとめて設定することで、設定の効率を向上させることができる。例えば、構築範囲Ａは、端末とＭＲであり、モバイル通信サービスとして、これらの機器をレンタルするときにまとめて設定するのが効率的である。また、構築範囲Ｃは、計算機基盤サービスであり、１つの卸サービスの中で一括して設定するのが効率的である。
【００５９】
≪変形例２：任意のノードと接続するリンク≫
図２に示した連携サービスでは、構築する時点で全ての構成要素が決まっている。しかしながら、一部の構築要素が未定のまま、連携サービスを構築する場合もある。例えば、図２において、インターネット８００経由でＶＭ１（３１１）にアクセスする端末であるＴ３（６０３）は、連携サービス開始後に随時追加されることが考えられる。このような場合には、追加される端末の設定項目を一括りにしてＮ１３（図３参照）として構築順序を決定してもよいし、Ｎ１３がないものとして構築順序を決定してもよい。
このようにすることで、連携サービスカタログ１４０に含まれていない構成要素がある場合でも、構築順序が決定できる。
【００６０】
≪その他の変形例≫
変形例１では、サービス単位など、関連性が強い構成要素をまとめて１つの構築範囲としてまとめて設定するようにしている。これに対して、サービス構築順序決定装置１００は、リンク系の設定項目を除いて、ノード系の設定項目の依存関係だけに着目して、構築範囲を決定し、さらに決定した構築範囲内で構築順序を決定してもよい。図４を参照して説明する。１つのノード系設定項目として、例えばＮ６に着目し、Ｎ６のみを構築範囲とする。次に、構築範囲に含まれる設定項目の依存先設定項目、および、構築範囲に含まれる設定項目を依存先設定項目とする設定項目を構築範囲に加える。現段階では構築範囲はＮ６なので、Ｎ５およびＮ８を構築範囲に加える。以下これを繰り返すと、Ｎ７、Ｎ１２、Ｎ１０が加わり、次にＮ９が加わり、最後にＮ１１が加わる。
このような方法でサービス構築順序決定装置１００が、構築範囲を決定することで、ノード系に着目した構築範囲に分割でき、並列的に構築可能な構築範囲を特定することができる。
さらに、構築範囲に含まれる設定項目のみに依存するリンク系項目があれば、サービス構築順序決定装置１００は、これを構築範囲に加えてもよい。上記の例では、Ｌ５を構築範囲に加えてもよい。
【００６１】
設定項目間に依存関係がない場合には、図５のＮ１〜Ｎ５のように同時並列的に構築可能である。このような場合には、設定処理時間が長くかかる設定項目から先に設定処理を開始して、全体として設定時間（連携サービスの構築時間）が短くなるように連携サービスを構築するのが望ましい。このために、サービス構築順序決定装置１００は、予め各設定項目の設定処理時間を計測して記憶部１３０に記憶しておき、設定項目表２００に設定処理時間の行を追加し、各設定項目の設定処理時間を格納するようにしてもよい。連携サービスを構築するときには、構築順序が同じ設定項目の中で、設定処理時間が長いものから設定が開始される。
【００６２】
設定項目間に依存関係がある場合であっても、項目内容によっては、設定内容を事前に定めておくことで、先に設定したり並列に設定したりすることが可能である。例えば、仮想ネットワーク３００内のＩＰアドレスは、設定開始時に予め割り振ることが可能な場合がある。このために、依存先設定項目２１２がＩＰアドレスによるものであれば、サービス構築順序決定装置１００は、依存先がないものとして構築順序を決定してもよい。ルートテーブルやノードの名称も、予め割り振ることが可能であり、サービス構築順序決定装置１００は、依存先がないものとして構築順序を決定してもよい。
【００６３】
１つの構成要素について複数の設定項目があり、同じ構成要素に対して設定のためのアクセスを繰り返し行う場合がある。１つの構成要素に対する設定項目の中で、早い構築順序の設定項目を後ろにずらして設定可能ならば、サービス構築順序決定装置１００は、複数の設定項目をまとめて設定するように構築順序を変更してもよい。また、設定項目表２００にグループの行を加え、サービス構築順序決定装置１００は、並行して設定可能な設定項目を１つの同じグループとして設定し、連携サービス構築時には、同じグループの設定項目がまとめて設定されるようにしてもよい。こうすることで、構成要素に対するアクセス回数を削減して、効率的に設定する（連携サービスを構築する）ことができる。
【００６４】
連携サービスを構築するときには、各設定項目について、構築順序が小さい設定項目の設定が完了していない場合であっても、依存先の設定項目の設定が完了していれば、設定が開始されてもよい。図５において、例えば、Ｎ６は、構築順序が２であり、構築順序が１であるＮ１〜Ｎ５およびＮ１３が完了しないと、開始できない。しかしながら、Ｎ６の依存先設定項目はＮ５のみであり、Ｎ５の設定が完了していれば、Ｎ１〜Ｎ４およびＮ１３の設定完了を待たずに設定が開始されてもよい。図５は、１つの連携サービスの中での構築順序の例であるが、１つの構成要素の中や変形例１で示した構築範囲の中においてでも同様に、構築順序にとらわれず、依存先設定項目の設定完了を待って設定項目の設定を開始してよい。
【００６５】
≪効果≫
連携サービスの構築において、サービス構築順序決定装置１００は、構成要素の各設定項目の依存関係に注目して構築順序（設定項目の設定順序）を決定している。このために、サービス構築順序決定の過程を単純化させることができ、サービス構築順序決定装置１００は、最短の構築順序を効率的に決定することができる。また、サービス構築順序決定装置１００は、並列的に設定可能な設定項目を示すことができ、複数同時設定が可能な構築順序を決定することができる。
【００６６】
従来までは、並列に設定可能な設定項目まで順序を付けて設定していた。このために設定に失敗したときには、当該設定項目が依存する設定項目まで戻って再設定して、続いて、本来再設定が不要な依存関係のない設定項目まで再設定する場合があった。サービス構築順序決定装置１００は、依存関係のある設定項目から順番に設定していく構築順序を決定している。このために、連携サービス構築作業では、構築の途中でリソース不足などによってサービス構築の失敗が生じたとしても、依存関係のある設定項目のみが再設定されて、依存関係がない設定項目の再設定を回避することができる。このために、従来と比較して再設定する回数を削減することができ、効率的に連携サービスを構築できる。
【００６７】
連携サービスカタログ１４０に含まれる設定項目表２００では、設定項目をノード系とリンク系とに分類して記載している。このように分類することで、単に構築順序決定が効率化されるだけではなく、連携サービスカタログ１４０の作成者にとって設定項目間の依存関係が把握しやすくなり、効率的に設定項目表２００が作成できるようになる。
【符号の説明】
【００６８】
１００  サービス構築順序決定装置
１１０  制御部
１１１  構築順序決定部
１３０  記憶部
１４０  連携サービスカタログ
２００、２００Ａ、２００Ｂ、２００Ｃ、２００Ｄ、２００Ｅ  設定項目表（設定項目情報）
【図１】
2019028905.tif 000003
【図２】
2019028905.tif 000004
【図３】
2019028905.tif 000005
【図４】
2019028905.tif 000006
【図５】
2019028905.tif 000007
【図６】
2019028905.tif 000008
【図７】
2019028905.tif 000009
【図８】
2019028905.tif 000010
【図９】
2019028905.tif 000011
【図１０】
2019028905.tif 000012
【図１１】
2019028905.tif 000013
【図１２】
2019028905.tif 000014