JP2022147500A - ネットワーク設計支援方法およびネットワーク設計支援プログラム - Google Patents

ネットワーク設計支援方法およびネットワーク設計支援プログラム Download PDF

Info

Publication number
JP2022147500A
JP2022147500A JP2021048762A JP2021048762A JP2022147500A JP 2022147500 A JP2022147500 A JP 2022147500A JP 2021048762 A JP2021048762 A JP 2021048762A JP 2021048762 A JP2021048762 A JP 2021048762A JP 2022147500 A JP2022147500 A JP 2022147500A
Authority
JP
Japan
Prior art keywords
design
network
module
design module
functional element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2021048762A
Other languages
English (en)
Inventor
孝通 西島
Takamichi Nishijima
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2021048762A priority Critical patent/JP2022147500A/ja
Publication of JP2022147500A publication Critical patent/JP2022147500A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】通信要件に対応するネットワークの設定工期を短縮することを課題とする。【解決手段】各設計モジュールを組み合わせて、要求された通信要件を満たす論理ネットワークを設計するネットワーク設計支援装置は、各設計モジュールに設定される、設計モジュールを適用する適用条件と論理ネットワークへ機能を追加または削除する内容を示す設計内容とに基づき、各設計モジュールの依存関係を導出する。ネットワーク設計支援装置は、依存関係に基づき、通信要件へ適用する各設計モジュールの適用順番を決定する。【選択図】図11

Description

本発明は、ネットワーク設計支援方法およびネットワーク設計支援プログラムに関する。
デジタルビジネスを支えるインフラには、新規サービスの展開、既存サービスの拡張を素早く実現するスピードが求められる。例えば、エンタープライズ領域においては、VM(Virtual Machine)やコンテナ技術によってサーバインフラをダイナミックに展開することが普及してきているが、ネットワークインフラの構築および変更は、依然として人手に頼ることが主流であり、デジタルビジネスが求めるスピードを実現しているとは言いがたい。すなわち、人手に頼ったネットワークのインテグレーションでは速度が遅く、デジタルビジネスの拡大に向けた妨げになってしまう恐れがある。
このようなことから、ユーザがサービス提供のためにネットワークに求める要件から、要件を満たすネットワークを素早く設計し、設計したネットワークの実現に必要な各ネットワーク装置への設定内容を自動導出する技術が提案されている。なお、ユーザがサービス提供のためにネットワークに求める要件とは、例えば「業務アプリケーション間はHTTP(Hyper Text Transfer Protocol)通信だけを許可したい」、「1Mbpsで映像配信したい」といったものであり、これらを通信要件と呼ぶ。
近年では、通信要件に必要なネットワークを実現するための装置への設定内容を導出する技術として、ユーザの通信要件やネットワーク構成(例えばトポロジ、装置の型番、OS(Operating System)、機能など)ごとに設定機能を事前に開発しておき、その機能を用いて各装置を設定する方式が用いられている。
例えば、クライアント端末、ファイアウォール、Webサーバの3つの装置がつながったネットワーク構成において、「ユーザ端末とWebサーバ間のHTTP通信だけを許可したい」場合には、「1.クライアント端末に経路表を設定」、「2.ファイアウォールに経路表を設定」、「3.Webサーバに経路表を設定」、「4.ファイアウォールにWebサーバへのアクセス許可を設定」を行う機能を事前に開発しておくことにより、その機能を実行するだけで各装置に必要な設定を行うことができる。
特開2016-015672号公報 特開平08-095884号公報
しかしながら、上記技術では、設定内容や設定手順が固定されており、限定された要件や構成にしか対応できない。すなわち、通信要件及び現在のネットワーク構成に一致する設計機能が事前に用意されていない場合は、ネットワークの設定を行うことができない。また、入力情報により、送信元端末や宛先サーバを変更したり、許可する通信内容を変更したり設定が発生することもあるが、事前に想定した要件や構成の範囲でしか設定することができない。
一つの側面では、通信要件に対応するネットワークの設定工期を短縮することができるネットワーク設計支援方法およびネットワーク設計支援プログラムを提供することを目的とする。
第1の案では、ネットワーク設計支援方法は、各設計モジュールを組み合わせて、要求された通信要件を満たす論理ネットワークを設計するコンピュータが、前記各設計モジュールに設定される、設計モジュールを適用する適用条件と前記論理ネットワークへ機能を追加または削除する内容を示す設計内容とに基づき、前記各設計モジュールの依存関係を導出し、前記依存関係に基づき、前記通信要件へ適用する前記各設計モジュールの適用順番を決定する、処理を実行することを特徴とする。
一つの側面では、通信要件に対応するネットワークの設定工期を短縮することができる。
図1は、実施例1にかかるネットワーク設計支援装置を説明する図である。 図2は、論理ネットワークの設計を説明する図である。 図3は、論理ネットワークの内部モデルを説明する図である。 図4は、実ネットワークとの照合を説明する図である。 図5は、実ネットワークへの設定内容の一例を説明する図である。 図6は、実施例1にかかるネットワーク設計支援装置の機能構成を示す機能ブロック図である。 図7は、設計モジュールを説明する図である。 図8は、設計モジュールの詳細を説明する図である。 図9は、設計モジュールから各要素を抽出する一例を説明する図である。 図10は、設計モジュール間の依存関係の導出を説明する図である。 図11は、設計モジュールの適用順番の決定を説明する図である。 図12は、設計モジュールの適用順序の決定処理の流れを示すフローチャートである。 図13は、ネットワーク設計支援処理の流れを示すフローチャートである。 図14は、実施例2にかかる設計モジュールの追加を説明する図である。 図15は、追加する設計モジュールから各要素を抽出する一例を説明する図である。 図16は、依存関係の再導出を説明する図である。 図17は、適用順番の再決定を説明する図である。 図18は、設計モジュールの追加時の処理の流れを示すフローチャートである。 図19は、実施例3にかかる論理ネットワーク設計の具体例を説明する図である。 図20は、実施例3にかかる論理ネットワーク設計の具体例を説明する図である。 図21は、実施例3にかかる論理ネットワーク設計の具体例を説明する図である。 図22は、実施例3にかかる論理ネットワーク設計の具体例を説明する図である。 図23は、実施例3にかかる論理ネットワーク設計の具体例を説明する図である。 図24は、実施例3にかかる論理ネットワーク設計の具体例を説明する図である。 図25は、ハードウェア構成例を説明する図である。
以下に、本願の開示するネットワーク設計支援方法およびネットワーク設計支援プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
[全体構成]
図1は、実施例1にかかるネットワーク設計支援装置を説明する図である。近年、ビジネスニーズの変化に従い新しいサービスを提供するために、新しい通信要件を満たしたネットワーク(以下では、単に「NW」と記載する場合がある。)の設計が要求される。また、ビジネスの拡大に伴うネットワークの増強や障害によるネットワーク装置の故障など、ネットワーク構成の変化も考えられる。しかし、一般技術では、新しい通信要件やネットワーク構成に対応するために、設定機能を一から作り直す必要があり、通信要件やネットワーク構成を限定して開発された設定機能では、他の要件や構成に対して使いまわすことも困難である。その結果、ユーザの求めるスピード感でネットワークの構築や変更ができず、ユーザのビジネスニーズを迅速に反映できず、ユーザビリティの低下に繋がっていた。
そこで、実施例1にかかるネットワーク設計支援装置10は、ネットワーク構成に依存しない処理と、依存する処理とを分離することで、新しい通信要件やネットワーク構成への対応にかかる時間を短縮できるネットワーク設定方法を実現する。
具体的には、図1に示すように、ネットワーク設計支援装置10は、通信要件のみから論理ネットワークを設計する「論理ネットワーク設計」と、論理設計結果と実ネットワークとを照合して必要な物理的なネットワークを設計する「実ネットワークとの照合機能」とを実行することで、設定の自動化を実現する。
例えば、ネットワーク設計支援装置10は、ユーザから「Webアクセスを安全に実行したい」などの通信要件を受信すると、適用条件と設計内容とが対応付けられた各設計モジュールを用いて、通信経路内に設定する各条件に対応した各論理モジュールを組み合わせた論理ネットワークを設計する。続いて、ネットワーク設計支援装置10は、各物理モジュールを用いて構成される物理ネットワーク100(以下では、「実ネットワーク」と記載する場合がある)と、各論理モジュールを用いて設計された論理ネットワークとの対応関係を検証する。
このようにして、ネットワーク設計支援装置10は、実ネットワーク100を考慮した設計を実行する。そして、ネットワーク設計支援装置10は、当該設計に基づき、実ネットワーク100を構成するクライアント端末(以下では、単に「クライアント」と記載する場合がある)、ファイアウォール(以下では、単に「FW」と記載する場合がある)、Webサーバなどの各物理モジュールに設定コマンドを発行してパラメータの設定や更新を行うことで、論理ネットワークを満たすネットワーク構成を実ネットワーク上で生成する。
ここで、ネットワーク設計支援装置10が実行する「論理ネットワークの設計」と「実ネットワークとの照合」について説明する。
(論理ネットワーク設計の説明)
図2は、論理ネットワークの設計を説明する図である。図2に示すように、ネットワーク設計支援装置10が実行する「論理ネットワークの設計」とは、ユーザの通信要件から、通信要件を満たすために必要な論理ノードやその接続、各論理ノードや接続に必要なネットワーク機能の組合せや並びを導出する処理である。例えば、ネットワーク設計支援装置10は、ユーザの通信要件を満たすネットワーク設計を行うために、複数の設計モジュール(設計ルール)に順番に適用して、通信要件に応じて複数の設計モジュールを組み合わせることにより、多種多様な通信要件を満たす論理ネットワークの設計を実現する。
設計モジュールとは、内部モデルが適用条件を満たしている場合に内部モデルを変換するルールであって専門家のノウハウをルール化したものであり、モジュールを適用する条件と適用した場合の設計内容を有する。例えば、設計モジュールの一例としては、適用条件「安全なアクセスが必要」に設計内容「送信元と宛先との間にアクセスコントロール機能を持つ論理ノードが必要」を対応付けた「安全なアクセスを実現するルール」などがある。また、条件「宛先へのアクセスが必要」に設計内容「送信元と宛先との間の全ノードにルーティング機能が必要」を対応付けた「Webサーバへのアクセスを実現する設計モジュール」などがある。
このような設計モジュールを保持するネットワーク設計支援装置10は、通信要件として「クライアントからWebサーバへのHTTP通信だけを許可して固定経路でアクセスしたい」という要件が入力された場合、上記の2つの設計モジュールを適用する。その結果、ネットワーク設計支援装置10は、「クライアントからWebサーバへの間にアクセスコントロール機能を有する装置が必要であり、それら3つの装置すべてに静的ルーティング機能が必要である」ことが導出される。このように、これらの設計モジュールを組み合わせることにより、多種多様な通信要件に対応した論理ネットワークを設計することが可能になる。
ここで、通信要件や論理ネットワーク、物理ネットワーク構成を一貫して表現可能な内部モデルを説明する。図3は、内部モデルを説明する図である。図3に示すように、ネットワーク設計支援装置10は、通信要件「Webアクセスを安全に実行したい」が入力された場合に、図3の(P)に示す内部モデルのプログラム(P)を生成して、内部モデルのイメージ(論理ネットワーク)を生成する。ここで、図3の(a)は、例えば論理ノードやポートを示し、装置やインタフェースなどを抽象化したものである。図3の(b)は、例えば機能要素を示し、装置やインタフェース間のつながりが持つべき機能や役割である。図3の(c)は、例えばリレーションであり、装置やインタフェース間のつながりである。なお、論理ノードであるか論理ポートであるかを区別させることもできる。
(実ネットワークとの照合の説明)
図4は、実ネットワークとの照合を説明する図である。図4に示すように、ネットワーク設計支援装置10が実行する「実ネットワークとの照合」とは、論理ネットワークの設計で導出された論理ノードや必要なネットワーク機能を、実際にどの物理的なネットワーク装置で有効にするかを実ネットワークの構成情報をもとに決定する処理である。ここでは、実ネットワークの構成情報とは、設定対象のネットワークに存在するネットワーク装置や、それらの接続関係、各装置で利用可能なネットワーク機能の一覧、各装置で有効化されている各機能の設定内容などである。
具体的には、ネットワーク設計支援装置10は、実ネットワークとの照合の実現例として、実ネットワークの構成情報から、送信元から宛先に通信できるパターンをすべて列挙し、論理設計結果を満たすパターンを一つ選択する。
例えば、図4に示すように、ネットワーク設計支援装置10は、通信要件を満たす論理設計結果として、「クライアント機能とルーティング機能とを有する送信元」、「アクセスコントロール機能とルーティング機能とを有するノード」、「Webサーバ機能とルーティング機能とを有する宛先」とを特定したとする。
続いて、ネットワーク設計支援装置10は、実ネットワークの構成情報を参照し、実ネットワークが「ルーティング機能を有する「クライアント」、ルーティング機能を有する「ルータ」、ルーティング機能とアクセスコントロール機能を有する「ファイアウォール」、ルーティング機能を有する「Webサーバ」」から構成されることを特定する。
そして、ネットワーク設計支援装置10は、通信経路としては経路1「クライアント、ルータ、Webサーバ」と経路2「クライアント、ファイアウォール、Webサーバ」を特定する。その後、ネットワーク設計支援装置10は、経路1については論理設計結果の「アクセスコントロール機能」を有していないと判定し、論理設計結果の全てを満たす経路2を選択する。
このように、ネットワーク設計支援装置10は、事前に、実ネットワークの構成情報として、各装置で利用可能なネットワークの機能の一覧の情報を管理しておく。そして、送信元から宛先に通信できる各パターンで経由する装置で利用可能なネットワークの機能と、論理設計で導出された必要なネットワーク機能とを比較することで、各パターンが論理設計結果を満たすかどうかを判断する。その結果、ネットワーク設計支援装置10は、実際に各ネットワーク機能を有効にする装置(配備先)を決定する。
(配備先への設定内容の説明)
図5は、実ネットワークへの設定内容の一例を説明する図である。図5に示すように、ネットワーク設計支援装置10は、実ネットワークとの照合に決定された配備先の決定結果をもとに、必要なネットワーク機能を有効にするための各装置への設定内容を導出し、導出した各設定内容を各装置に設定することにより、通信要件を満たすネットワークを実現する。
ネットワーク設計支援装置10は、設定内容の導出の実現例として、ネットワーク機能ごとに必要な設定項目やパラメータを決めておき、入力された通信要件や各装置のアドレス情報などの構成情報をもとに各パラメータ値を決定する。
例えば、実ネットワークとの照合により配備先が図4にように決定されたとする。この場合、ネットワーク設計支援装置10は、論理設計で導出されたノードが割り当てられたファイアウォールにはアクセスコントロール機能が必要であり、それを有効化するためのアクセスコントロールリスト(ACL:Access Control List)の設定が必要であることを特定する。また、ネットワーク設計支援装置10は、各装置にはルーティング機能も必要であり、それを有効化するための経路表(Routing TB(Table))の設定が必要であり、それらを設定するためには、図5に示すようなパラメータを決定する必要があることを特定する。例えば、経路表であれば宛先(Dest:Destination)と次の通信先となるルータのアドレス(Nexthop)を決定する必要がある。最終的に、各装置のインタフェースのIP(Internet Protocol)アドレスなどを用いて、図5に示す設定内容が決定される。
具体的には、ネットワーク設計支援装置10は、「クライアント」に対しては、「DST」および「Nexthp」をパラメータとする設定項目「経路表」と、「IPアドレス」をパラメータとする設定項目「インタフェース」との設定を実行する。
また、ネットワーク設計支援装置10は、「ファイアウォール」に対しては、ACL、経路表、インタフェース1、インタフェース2の設定を実行する。ここで、「ACL」は、送信元のアドレスを示す「Src IP」と、宛先のアドレスを示す「Dest IP」と、宛先のポート番号を示す「Dest Port」と、使用するプロトコルを示す「Protocol」と、アクセス許可(accept)やアクセス拒否などのアクセス制御内容を示す「Action」とをパラメータとする設定項目である。「経路表」は、「Dest」と「Necthp」とをパラメータとする設定項目である。「インタフェース1」は、アクセス元のIPアドレスをパラメータとする設定項目であり、「インタフェース2」は、アクセス先のIPアドレスをパラメータとする設定項目である。
また、ネットワーク設計支援装置10は、「Webサーバ」に対しては、「DST」および「Nexthp」をパラメータとする設定項目「経路表」と、「IPアドレス」をパラメータとする設定項目「インタフェース」との設定を実行する。なお、各装置に設定される設定項目等は、一般的に利用される設定項目を採用することができ、設定するためのコマンド等も一般的に利用される設定項目を採用することができる。
(改善点)
上述した論理ネットワーク設計の説明では、ネットワーク設計支援装置10は、ユーザの通信要件を満たすネットワーク設計を行うために、複数の設計モジュールに順番に適用して、通信要件に応じて複数の設計モジュールを組み合わせることにより、多種多様な通信要件を満たす論理ネットワークの設計を実現する。しかし、ネットワーク設計支援装置10は、正しい順番で設計モジュールを適用(または適用可能かを判断)しないと、適切な論理ネットワークが設計できないことがある。また、新しい設計モジュールを追加する際、その設計モジュールと他のすべての設計モジュールの内容とを比較して人が適切な順番を判断して追加する必要があった。このように、設計モジュールの数が増えるにつれて、他の設計モジュールとの比較が困難になり、時間やコストがかかる。また、人為的なミスにより間違った順番にしてしまった場合に適切な論理ネットワークが構築できない懸念もある。
そこで、ネットワーク設計支援装置10は、設計モジュールの正しい適用順番を自動決定する。具体的には、ネットワーク設計支援装置10は、設計モジュール間の依存関係をもとに順番を決定する。例えば、ネットワーク設計支援装置10は、第1の設計モジュールの「適用条件」が、第2の設計モジュールの「内部モデルの変換結果」で追加されるものであれば、第1の設計モジュールは第2の設計モジュールに依存していると判定し、第2の設計モジュールを第1の設計モジュールよりも先に適用する。このようにすることで、ネットワーク設計支援装置10は、大量の設計モジュールが存在しても、短時間で、人為的なミスを回避して、正しい論理ネットワークを構築することができる。
[機能構成]
次に、ネットワーク設計支援装置10の機能構成について説明する。図6は、実施例1にかかるネットワーク設計支援装置10の機能構成を示す機能ブロック図である。図6に示すように、ネットワーク設計支援装置10は、通信部11、記憶部12、制御部20を有する。
通信部11は、他の装置との間の通信を制御する処理部であり、例えば通信インタフェースにより実現される。例えば、通信部11は、ユーザ端末との間でWebブラウザによる通信を確立して通信要件を受信したり、ユーザ端末からコマンド等により通信要件を受信したりする。また、通信部11は、物理ネットワークを構成する各物理モジュールにコマンド等を送信する。
記憶部12は、各種データや制御部20が実行するプログラムなどを記憶する記憶装置の一例であり、例えばメモリやハードディスクにより実現される。記憶部12は、設計モジュールDB13、実ネットワークの構成情報14、ネットワークの設計結果15を記憶する。
設計モジュールDB13は、設計モジュールを適用する「適用条件」と論理ネットワークへ機能を追加または削除する内容を示す「設計内容」の組から構成される設計モジュールを記憶するデータベースである。すなわち、「適用条件」には、設計モジュールを適用するための条件が定義され、「設計内容」には、設計モジュールを適用した場合に、物理モジュールに設定される具体的な内容が定義される。
図7は、設計モジュールを説明する図である。図7に示すように、設計モジュールは、「適用条件と設計内容」、「適用条件の機能要素」、「追加される機能要素(削除する機能要素)」を含んで構成される。なお、「適用条件と設計内容」は、予め設定されている情報であり、「適用条件の機能要素」と「追加される機能要素(削除する機能要素)」は、後述する事前処理部20aにより抽出される情報である。
図7の例では、設計モジュール#Aは、適用条件が「論理ノード間を固定経路で接続したいなら」であり、設計内容が「各論理ノードには論理ポートが必要」である。また、設計モジュール#Aの「適用条件の機能要素」として、「要素1:固定経路の機能要素を持つ接続がある」と「要素1:その接続元と接続先が論理ノードである」とが抽出されたことを示す。また、設計モジュール#Aの「追加される機能要素(削除する機能要素)」として、「要素3:接続元の論理ノードに論理ポートを追加し、接続先の論理ノードに論理ポートを追加する」が抽出されたことを示す。
なお、各設計モジュールは、プログラムで記述されているので、ネットワーク設計支援装置10は、そのプログラムを解釈することで、上記「適用条件と設計内容」を抽出することができる。このときの解釈方法は、既存の手法を採用することができる。
実ネットワークの構成情報14は、設定対象のネットワークに存在するネットワーク装置や、それらの接続関係、各装置で利用可能なネットワーク機能の一覧の情報、各装置の現在の設定内容の情報である。例えば、実ネットワークの構成情報14には、各装置について、識別子、利用可能なネットワーク機能の一覧、有効化されている各機能の設定内容、各インタフェースのアドレス情報、設定反映に必要なアクセスのための情報(管理用インタフェースのアドレス情報など)の情報などが定義される。また、それらの装置間や各装置のインタフェ-ス間の接続の有無の情報を保持している。
ネットワークの設計結果15は、通信要件や論理ネットワークの設計結果や配備先の情報を表す情報である。例えば、ネットワークの設計結果15は、論理ノードや論理ポート、それらの間の接続関係、ネットワーク機能、それらが持つべき要件や制約を含む情報である。例えば、制約は、各論理ノードや論理ポート、接続関係に必要なネットワーク機能や、それらの配備先を表す識別子の情報を保持する。
制御部20は、ネットワーク設計支援装置10全体を司る処理部であり、例えばプロセッサなどにより実現される。この制御部20は、事前処理部20a、受信部21、設計部22、照合部23、設定反映部24を有する。なお、事前処理部20a、受信部21、設計部22、照合部23、設定反映部24は、プロセッサが有する電子回路の一例として実現することもでき、プロセッサが実行するプロセスの一例として実現することもできる。
事前処理部20aは、設計モジュールDB13に記憶される各設計モジュールの依存関係を特定して、論路ネットワーク設計時の適用順序を決定する処理部である。例えば、事前処理部20aは、各設計モジュールのソースコードを参照し、if文の判定式に記載されている機能要素を「適用条件の機能要素」として抽出するとともに、if文の中の処理で内部モデルに追加されている機能要素を「追加される機能要素(削除する機能要素)」として抽出する。そして、事前処理部20aは、各設計モジュールの機能要素の依存関係により、各設計モジュールの適用順序を決定する。なお、事前処理部20aは、抽出結果を設計モジュールDB13に反映する。
受信部21は、ユーザが入力した通信要件を受けて、設計部22、照合部23、設定反映部24に対して、各種処理の実行を要求する処理部である。例えば、受信部21は、コマンドベースやGUI(Graphical User Interface)などにより、通信要件を受信する。そして、受信部21は、受信された通信要件を記憶部12に格納したり、各処理部に出力したりする。
設計部22は、入力された通信要件に基づき特定される、通信経路内に設定する通信条件に対応した各論理モジュールを通信経路内に配置した論理ネットワークを設計する処理部である。具体的には、設計部22は、入力された通信要件の情報から、通信要件を満たすために必要な論理ネットワークを設計し、設計結果をネットワークの設計結果15の情報として記憶部12に格納する。
照合部23は、各物理モジュールを用いて構成される物理ネットワークと、各論理モジュールを用いて設計された論理ネットワークとの対応関係を検証する処理部である。具体的には、照合部23は、ネットワークの設計結果の情報(論理設計結果)と実ネットワークの構成情報から、論理設計結果を満たすネットワークを設計し、設計結果をネットワークの設計結果15の情報として記憶部12に格納する。
設定反映部24は、照合部23による照合結果に応じた、該当する物理モジュールに各種設定を実行する処理部である。具体的には、設定反映部24は、ネットワークの設計結果の情報(配備先)から、設定内容を決定し、各ネットワーク装置に設定を行う。なお、各ネットワーク装置への各設定は、一般的なネットワーク装置への設定に利用される機能やコマンド等を採用することができる。
[具体例]
次に、図8から図11を用いて、設計モジュールの解析および適用順序の決定について説明する。図8は、設計モジュールの詳細を説明する図である。図8に示すように、事前処理部20aは、設計モジュールのソースコードを走査して、各設計モジュールの「適用条件の機能要素」と「追加される機能要素(削除する機能要素)」を抽出する。
例えば、事前処理部20aは、ソースコード内の適用条件に含まれる「機能要素」として、例えばif文の判定式に記載されている機能要素をすべて抽出する。図8の例では、事前処理部20aは、ソースコードの「2.その接続が“ALLOW”の機能要素を持つ場合」を「適用条件の機能要素」として抽出する(図8の(a)参照)。
また、事前処理部20aは、ソースコード内で内部モデルの変換結果として追加される「機能要素」として、例えばif文の中の処理で内部モデルに追加する機能要素をすべて抽出する。図8の例では、事前処理部20aは、ソースコードの「(1)“Function access-control”の機能要素を持つ論理ノードを作成」を「追加される機能要素(削除する機能要素)」として抽出する(図8の(b)参照)。
次に、図7に示す設計モジュール#Cを例にして、図8で説明した処理をより具体的に説明する。図9は、設計モジュールから各要素を抽出する一例を説明する図である。図9では、設計モジュール#Cのソースコードを、説明を分かりやすくするために、コンピュータ(例えばネットワーク設計支援装置10)が解釈する内容を文字化している。例えば、ソースコードのif文の判定式の内容(a)は、「2.その接続が“Routing static”の機能要素を持ち」と解釈され、内容(b)は、「その接続の接続元に“Is port”の機能要素を持ち、その接続の接続先に“Is port”の機能要素を持つ場合」と解釈される。同様に、ソースコードのif文内の処理(c)は、「(1)接続元に“Function static-routing”の機能要素を追加、(2)接続先に“Function static-routing”の機能要素を追加」と解釈される。
この結果、図9に示すように、事前処理部20aは、if文の判定式に記載されている機能要素である「「Routing static」の機能要素」と「「Is port」の機能要素」」とを、「適用条件の機能要素」として抽出する。同様に、事前処理部20aは、if文の中の処理で内部モデルに追加する機能要素である「「Function static-routing」の機能要素」を、「追加される機能要素(削除する機能要素)」として抽出する。
上述した処理により要素が抽出された結果が図7に示すとおりである。具体的には、図7に示すように、設計モジュール#Aに対しては、事前処理部20aは、「適用条件の機能要素」として「要素1:固定経路の機能要素を持つ接続がある」と「要素2:その接続元と接続先が論理ノードである」を抽出する。同様に、事前処理部20aは、「追加される機能要素(削除する機能要素)」として「要素3:接続元の論理ノードに論理ポートを追加し、接続先の論理ノードに論理ポートを追加する」を抽出する。
また、設計モジュール#Bに対しては、事前処理部20aは、「適用条件の機能要素」として「要素3:単一の論理ノードが2つ以上の論理ポートを持つ」と「要素4:それらが静的なルーティング機能を持つ論理ノードである」を抽出する。同様に、事前処理部20aは、「追加される機能要素(削除する機能要素)」として「要素5:当該論理ノードに転送機能の機能要素を追加」を抽出する。
また、設計モジュール#Cに対しては、事前処理部20aは、「適用条件の機能要素」として「要素1:固定経路の機能要素を持つ接続がある」と「要素3:その接続元と接続先が論理ポートである」を抽出する。同様に、事前処理部20aは、「追加される機能要素(削除する機能要素)」として「要素4:接続元の論理ポートに静的なルーティング機能の機能要素を追加、接続先の論理ポートに静的なルーティング機能の機能要素を追加」を抽出する。
なお、ここでは、要素の番号は、登場した順番に割り振ればよい。また、同じ機能要素をチェックする、または、追加するコードが複数ある場合は、機能要素として一つにまとめている。また、若干表現が異なる記述を同じ要素と判定する手法としては、同じ表記と判定する対応表などを予め用意しておくこともでき、一般的な言語解析手法などを用いることもできる。
続いて、事前処理部20aは、抽出した各要素に基づき、設計モジュール間の依存関係を導出する。図10は、設計モジュール間の依存関係の導出を説明する図である。図10に示すように、事前処理部20aは、設計モジュール#Aについて、「適用条件の機能要素」として「要素1、要素2」を抽出し、「追加される機能要素(削除する機能要素)」として「要素3」を抽出する。また、事前処理部20aは、設計モジュール#Bについて、「適用条件の機能要素」として「要素3、要素4」を抽出し、「追加される機能要素(削除する機能要素)」として「要素5」を抽出する。また、事前処理部20aは、設計モジュール#Cについて、「適用条件の機能要素」として「要素1、要素3」を抽出し、「追加される機能要素(削除する機能要素)」として「要素4」を抽出する。
このような状態において、事前処理部20aは、各設計モジュールの適用条件の機能要素を追加する設計モジュールが存在するかを確認することで、各設計モジュールの依存先を導出する。すなわち、事前処理部20aは、設計モジュール#Aについては、適用条件の機能要素を追加される設計モジュールが存在しないので、依存先は存在しないと導出する。事前処理部20aは、設計モジュール#Bについては、設計モジュール#Aと#Cで追加される機能要素を条件とするので、設計モジュール#Aと#Cに依存すると導出する。事前処理部20aは、設計モジュール#Cについては、設計モジュール#Aで追加される機能要素を条件とするので、設計モジュール#Aに依存すると導出する。なお、要素1や要素2のように、他の設計モジュールで追加されない機能要素については、初期状態として入力される可能性があり、依存先は初期状態とも言える。
その後、事前処理部20aは、依存関係を考慮して適用順番を決定する。具体的には、事前処理部20aは、設計モジュールの中で依存先の設計モジュールが存在しない設計モジュール群を選択し、未選択の設計モジュールの中で依存先の設計モジュールがすべて選択済の設計モジュール群を選択し、すべての設計モジュールが選択されるまでを繰り返すことで選択された順番を適用順番とする。
図11は、設計モジュールの適用順番の決定を説明する図である。図11に示すように、事前処理部20aは、まず、依存先がない設計モジュール#Aを選択し、各設計モジュールの未選択の依存先を更新する。次に、事前処理部20aは、未選択であり、未選択の依存先がない設計モジュール#Cを選択し、各設計モジュールの未選択の依存先を更新する。
最後に、事前処理部20aは、未選択であり、未選択の依存先がない設計モジュール#Bを選択し、すべての設計モジュールが選択されたので終了する。この結果、事前処理部20aは、選択された順番を適用順番とする。すなわち、設計モジュール#A、設計モジュール#C、設計モジュール#Bの順番で適用される。
[適用順序の決定処理の流れ]
図12は、設計モジュールの適用順序の決定処理の流れを示すフローチャートである。図12に示すように、事前処理部20aは、すべての設計モジュールを未確認に初期化し(S101)、すべての設計モジュールについての確認が終了するまで、S102からS106のループ処理を実行する。
すなわち、事前処理部20aは、未確認の設計モジュールを1つ選択し(S103)、ソースコードを走査し、適用条件の機能要素と追加(または削除)される機能要素を抽出し(S104)、選択した設計モジュールの情報を記録する(S105)。
続いて、当該ループ処理が完了すると、事前処理部20aは、すべての設計モジュールを設計モジュールAとして未確認に初期化し(S107)、設計モジュールAとしてすべての設計モジュールAを確認したら終了するS108からS116までのループ処理を実行する。
すなわち、事前処理部20aは、設計モジュールAとして未選択の設計モジュール1つを選択し(S109)、すべての設計モジュールを設計モジュールBとして未確認に初期化する(S110)。その後、事前処理部20aは、設計モジュールBとしてすべての設計モジュールBを確認したら終了するS111からS115までのループ処理を実行する。
すなわち、事前処理部20aは、設計モジュールBとして未選択の設計モジュール1つを選択し(S112)、設計モジュールAの「適用条件の機能要素」に、設計モジュールBの「追加される機能要素」が1つでも含まれる場合(S113:Yes)、設計モジュール#Aの依存先として設計モジュールBを記録する(S114)。なお、事前処理部20aは、設計モジュールAの「適用条件の機能要素」に、設計モジュールBの「追加される機能要素」が1つも含まれていない場合(S113:No)、S114を実行することなく、ループ処理を継続する。
その後、これらのループ処理が完了すると、事前処理部20aは、すべての設計モジュールを未確認に初期化し(S117)、すべての設計モジュールの未選択の依存先を初期化し(S118)、すべての設計モジュールが選択済みになれば終了するS119からS124のループ処理を実行する。
すなわち、事前処理部20aは、未確認の依存先が存在しない未選択の設計モジュールをすべて抽出し(S120)、それらを選択済みにする(S121)。そして、事前処理部20aは、選択済みにした順番を記録し(S122)、すべての設計モジュールの未選択の依存先からそれらを削除する(S123)。
その後、当該ループ処理が完了すると、事前処理部20aは、選択済みにした順番を適用順番として、記憶部12等に記録する(S124)。なお、上記フローで登場するAやBは、処理を実行する際の変数である。
[設計支援処理の流れ]
図13は、ネットワーク設計支援処理の流れを示すフローチャートである。図13に示すように、ネットワーク設計支援装置10は、通信要件を取得すると(S201)、通信要件をもとに論理設計結果を初期化する(S202)。
そして、ネットワーク設計支援装置10は、図12で決定した適用順番を読み込み(S203)、未選択の設計モジュールに対するS204からS208のループ処理を実行する。
すなわち、ネットワーク設計支援装置10は、未選択の設計モジュールを適用順番にしたがって1つ選択し(S205)、通信要件の適用条件を満たしているか否かを判定する(S206)。ここで、ネットワーク設計支援装置10は、通信要件の適用条件を満たしている場合(S206:Yes)、論理設計結果に選択した設計モジュールを適用し(S207)、通信要件の適用条件を満たしていない場合(S206:No)、S207を実行しない。
その後、当該ループ処理が終了すると、ネットワーク設計支援装置10は、実ネットワークの構成情報14を取得し(S209)、送信元と宛先との全経路パターンを計算する(S210)。そして、ネットワーク設計支援装置10は、選択されていない経路パターンを1つ選択し(S211)、当該経路パターンが論理設計結果を満たすか否かを判定する(S212)。
ここで、ネットワーク設計支援装置10は、選択された経路パターンが論理設計結果を満たす場合(S212:Yes)、論理設計結果と当該経路パターンをもとに設定内容を導出し(S213)、実ネットワーク100への設定反映を実行する(S214)。この結果、ユーザの希望する経路を実ネットワーク100上で実現される。
一方、ネットワーク設計支援装置10は、選択された経路パターンが論理設計結果を満たさない場合(S212:No)、選択されていない未処理の経路パターンが存在するか否かを判定する(S215)。
ここで、ネットワーク設計支援装置10は、選択されていない経路パターンが存在する場合(S215:Yes)、S211以降を繰り返す。一方、ネットワーク設計支援装置10は、選択されていない経路パターンが存在しない場合(S215:No)、ユーザの希望する経路の設定ができないと判断して処理を終了する(S216)。
[効果]
上述したように、ネットワーク設計支援装置10は、設計モジュール間の依存関係を抽出し、依存関係をもとに設計モジュールの適用順番を決定するので、人為的なミスを回避して正しい論理ネットワークを短時間で構築することができる。特に、ネットワーク設計支援装置10は、大量の設計モジュールが存在しても、適用順番のミスにより論理ネットワークが構築できない事象ややり直しの事象の発生を抑制できるので、適用順番を決定しない場合と比較して、論理ネットワークの構築にかかる時間を短縮することができる。
また、ネットワーク設計支援装置10は、設計モジュールのソースコード内のif文を走査することで、適用条件の機能要素と追加される機能要素とを自動で抽出することができるので、依存関係の導出の人為的なミスを抑制し、処理の高速化を図ることができる。
また、ネットワーク設計支援装置10は、第1の設計モジュールの適用条件の機能要素が第2の設計モジュールで追加される機能要素と一致する場合に、第1の設計モジュールが第2の設計モジュールに依存している判定し、第2の設計モジュールを第1の設計モジュールより先に適用すると判定するので、依存関係を正確に導出することができる。
また、ネットワーク設計支援装置10は、依存関係により決定した適用順番で設計モジュールを適して論理ネットワークの設計を実行することができるので、やり直しなどの無用な処理の発生を抑制して、処理全体を高速化することができる。また、ネットワーク設計支援装置10は、人為的なミスを考慮しての事前検証や試験の作業も不要になり、更に処理時間の短縮やコストの削減が実現できる。
ところで、新たな設計モジュールが追加された場合であっても、ネットワーク設計支援装置10は、設計モジュールの適用順番を適切に決定することができ、追加に伴う処理遅延の発生を抑制することができる。
図14は、実施例2にかかる設計モジュールの追加を説明する図である。図14に示すように、実施例2では、図7に示した設計モジュール#A、#B、#Cに対して、新たな設計モジュール#Dと#Eを追加する例を説明する。ここで、設計モジュール#Dは、適用条件と設計内容として「アクセスコントロール機能を持つ論理ノードと接続したいなら、その論理ノードとの間には固定経路での接続が必要」が設定されている。設計モジュール#Eは、適用条件と設計内容として「通信を許可したいなら、アクセスコントロール機能を持つ論理ノードが必要」が設定されている。
次に、設計モジュール#Eを例にして、機能要素の抽出処理をより具体的に説明する。図15は、追加する設計モジュールから各要素を抽出する一例を説明する図である。図15では、設計モジュール#Eのソースコードを、説明を分かりやすくするために、コンピュータが解釈する内容を文字化している。例えば、ソースコードのif文の判定式の内容(a)は、「2.その接続が“Allow”の機能要素を持つ場合」と解釈され、ソースコードのif文内の処理(b)は、「(1)“Function access-control”の機能要素を持つ論理ノードを作成」と解釈される。
この結果、図15に示すように、事前処理部20aは、if文の判定式に記載されている機能要素である「「Allow http」の機能要素」を、「適用条件の機能要素」として抽出する。同様に、事前処理部20aは、if文の中の処理で内部モデルに追加されている機能要素である「「Function access-control」の機能要素」を、「追加される機能要素(削除する機能要素)」として抽出する。
次に、図16を用いて、追加された設計モジュールを含む依存関係の再導出を説明する。図16は、依存関係の再導出を説明する図である。図16に示すように、実施例1で説明した設計モジュール#A、#B、#Cに加えて、設計モジュール#Dと#Eが追加されている。
ここで、設計モジュール#Dに対しては、「適用条件の機能要素」として「要素6:アクセスコントロール機能の機能要素を持つ論理ノードがある」が抽出され、「追加される機能要素(削除する機能要素)」として「要素1:送信元と当該論理ノードの間に固定経路の機能要素を持つ接続を追加、当該論理ノードと宛先の間に固定経路の機能要素を持つ接続を追加」が抽出されている。同様に、設計モジュール#Eに対しては、「適用条件の機能要素」として「要素7:通信許可の機能要素を持つ接続がある」が抽出され、「追加される機能要素(削除する機能要素)」として「要素6:アクセスコントロール機能の機能要素を持つ論理ノードを追加」が抽出されている。
続いて、事前処理部20aは、抽出した各要素に基づき、設計モジュール間の依存関係を導出する。図16に示すように、事前処理部20aは、設計モジュール#Aについて、「適用条件の機能要素」として「要素1、要素2」を抽出し、「追加される機能要素(削除する機能要素)」として「要素3」を抽出する。また、事前処理部20aは、設計モジュール#Bについて、「適用条件の機能要素」として「要素3、要素4」を抽出し、「追加される機能要素(削除する機能要素)」として「要素5」を抽出する。また、事前処理部20aは、設計モジュール#Cについて、「適用条件の機能要素」として「要素1、要素3」を抽出し、「追加される機能要素(削除する機能要素)」として「要素4」を抽出する。また、事前処理部20aは、設計モジュール#Dについて、「適用条件の機能要素」として「要素6」を抽出し、「追加される機能要素(削除する機能要素)」として「要素1」を抽出する。また、事前処理部20aは、設計モジュール#Eについて、「適用条件の機能要素」として「要素7」を抽出し、「追加される機能要素(削除する機能要素)」として「要素6」を抽出する。
このような状態において、事前処理部20aは、各設計モジュールの適用条件の機能要素を追加する設計モジュールが存在するかを確認することで、各設計モジュールの依存先を導出する。すなわち、事前処理部20aは、各設計モジュールの適用条件の機能要素を追加する設計モジュールが存在するかを確認することで、各設計モジュールの依存先を導出。その際、元々の設計モジュールの依存先が変わる可能性もある。
例えば、図16に示すように、事前処理部20aは、設計モジュール#Aについては、設計モジュール#Dで追加される機能要素を条件とするので、設計モジュール#Dに依存すると導出し、設計モジュール#Bについては、実施例1と変更なしと導出する。また、事前処理部20aは、設計モジュール#Cについては、設計モジュール#Aおよび#Dで追加される機能要素を条件とするので、設計モジュール#Aおよび#Dに依存すると導出する。また、事前処理部20aは、設計モジュール#Dについては、設計モジュール#Eで追加される機能要素を条件とするので、設計モジュール#Eに依存すると導出し、設計モジュール#Eについては、適用条件の機能要素を追加される設計モジュールが存在しないため依存先は存在しないと導出する。
なお、要素1、要素2、要素7のように、他の設計モジュールで追加されない機能要素については、初期状態として入力される可能性があるので、依存先は初期状態とも言える。この初期状態も、設計モジュールの追加に合わせて変わる場合もある。
その後、事前処理部20aは、依存関係を考慮して適用順番を決定する。図17は、適用順番の再決定を説明する図である。図17に示すように、事前処理部20aは、まず、依存先がない設計モジュール#Eを選択し、各設計モジュールの未選択の依存先を更新する。次に、事前処理部20aは、未選択であり、未選択の依存先がない設計モジュール#Dを選択する。これにより、すべての設計モジュールが選択される。
次に、事前処理部20aは、未選択であり、未選択の依存先がない設計モジュール#Aを選択し、各設計モジュールの未選択の依存先を更新する。続いて、事前処理部20aは、未選択であり、未選択の依存先がない設計モジュール#Cを選択し、各設計モジュールの未選択の依存先を更新する。最後に、事前処理部20aは、未選択であり、未選択の依存先がない設計モジュール#Bを選択し、すべての設計モジュールが選択されたので処理を終了する。この結果、事前処理部20aは、選択された順番を適用順番とする。すなわち、設計モジュール#E、設計モジュール#D。設計モジュール#A、設計モジュール#C、設計モジュール#Bの順番で適用される。
次に、上述した追加時の処理の流れを説明する。図18は、設計モジュールの追加時の処理の流れを示すフローチャートである。図18に示すように、事前処理部20aは、追加された設計モジュールを未確認に初期化し(S301)、すべての設計モジュールについての確認が終了するまで、S302からS306のループ処理を実行する。
すなわち、事前処理部20aは、未確認の設計モジュールを1つ選択し(S303)、ソースコードを走査し、適用条件の機能要素と追加(または削除)される機能要素を抽出し(S304)、選択した設計モジュールの情報を記録する(S305)。
続いて、当該ループ処理が完了すると、事前処理部20aは、元々の設計モジュールの適用条件の機能要素と追加される機能要素を読み込む(S307)。そして、事前処理部20aは、すべての設計モジュールを設計モジュールAとして未確認に初期化し(S308)、設計モジュールAとしてすべての設計モジュールAを確認したら終了するS309からS317までのループ処理を実行する。
すなわち、事前処理部20aは、設計モジュールAとして未選択の設計モジュール1つを選択し(S310)、すべての設計モジュールを設計モジュールBとして未確認に初期化する(S311)。その後、事前処理部20aは、設計モジュールBとしてすべての設計モジュールBを確認したら終了するS312からS316までのループ処理を実行する。
すなわち、事前処理部20aは、設計モジュールBとして未選択の設計モジュール1つを選択し(S313)、設計モジュールAの「適用条件の機能要素」に、設計モジュールBの「追加される機能要素」が1つでも含まれる場合(S314:Yes)、設計モジュールAの依存先として設計モジュール#Bを記録する(S315)。なお、事前処理部20aは、設計モジュールAの「適用条件の機能要素」に、設計モジュールBの「追加される機能要素」が1つも含まれていない場合(S314:No)、ループ処理を継続する。
その後、これらのループ処理が完了すると、事前処理部20aは、すべての設計モジュールを未確認に初期化し(S318)、すべての設計モジュールの未選択の依存先を初期化し(S319)、すべての設計モジュールが選択済みになれば終了するS320からS325のループ処理を実行する。
すなわち、事前処理部20aは、未確認の依存先が存在しない未選択の設計モジュールをすべて抽出し(S321)、それらを選択済みにする(S322)。そして、事前処理部20aは、選択済みにした順番を記録し(S323)、すべての設計モジュールの未選択の依存先からそれらを削除する(S324)。
その後、当該ループ処理が完了すると、事前処理部20aは、選択済みにした順番を適用順番として、記憶部12等に記録する(S326)。
上述したように、ネットワーク設計支援装置10は、設計モジュールが追加された場合であっても、人為的な再検討を行うことなく、適切なネットワーク設計を実行することができる。また、ネットワーク設計支援装置10は、大規模なネットワーク設計であって、設計モジュールが膨大にある状態で、新たに設計モジュールを追加する場合でも、設計モジュールの適用順番を高速かつ正確に決定することができる。
例えば、既に99個設計モジュールがあり、100番目の設計モジュールを追加する際、追加する設計モジュールの適用順番は100パターン考えられる。このときに、人手で追加位置等を判断する場合、100パターンをすべて検討するのに時間がかかるとともに、100パターンを検討する過程で人為的なミスが生じる可能性がある。一方で、実施例2による手法を用いることで、自動的に適用順番を1つに絞れるので、処理時間を短縮することができるとともに、依存関係を考慮した正しい適用順番を導出できるので、人為的なミスを回避することができる。
次に、図19から図24を用いて、上記実施例により適切に決定された適用順番で、設計モジュールを適用する具体例を説明する。図19から図24は、実施例3にかかる論理ネットワーク設計の具体例を説明する図である。ここでは、設計モジュール#E、設計モジュール#D。設計モジュール#A、設計モジュール#C、設計モジュール#Bの順番で適用される例で説明する。なお、各設計モジュールの機能要素は省略しているが、図16に示す各機能要素が対応付けられているものとする。
図19に示すように、ネットワーク設計支援装置10は、ユーザの通信要件から「ノードAとノードBとをHTTP通信で許可(Allow)する」内部モデルを生成する。具体的には、ネットワーク設計支援装置10は、クライアント端末のノードA(論理ノードA)とサーバのノードBとをHTTP通信で接続する論理ネットワークを生成する。
続いて、図20に示すように、ネットワーク設計支援装置10は、適用順番1位の設計モジュール#Eを適用する。ここでは、ネットワーク設計支援装置10は、通信要件に「ノードAとノードBとをHTTP通信で許可する」要件があることを根拠に、設計モジュール#Eの適用条件「要素7:通信許可の機能要素を持つ接続があるなら」を満たすと判定する。この結果、ネットワーク設計支援装置10は、設計モジュール#Eの追加される機能要素「要素6:アクセスコントロール機能の機能要素を持つ論理ノードを追加」にしたがって、論理ネットワークを更新する。すなわち、ネットワーク設計支援装置10は、論理ネットワークにおけるノードAとノードBの間に、アクセスコントロール機能を有するノードCを追加する。
続いて、図21に示すように、ネットワーク設計支援装置10は、適用順番2位の設計モジュール#Dを適用する。ここでは、ネットワーク設計支援装置10は、論理ネットワーク上で「アクセスコントロール機能を有するノードC」があることから、設計モジュール#Dの適用条件「要素6:アクセスコントロール機能の機能要素を持つ論理ノードがあるなら」を満たすと判定する。この結果、ネットワーク設計支援装置10は、設計モジュール#Dの追加される機能要素「要素1:送信元と当該論理ノードの間に固定経路の機能要素を持つ接続を追加、当該論理ノードと宛先の間に固定経路の機能要素を持つ接続を追加」にしたがって、論理ネットワークを更新する。すなわち、ネットワーク設計支援装置10は、論理ネットワークに対して、ノードAとノードCとの間に固定経路を追加するとともに、ノードCとノードBとの間に固定経路を追加する。
続いて、図22に示すように、ネットワーク設計支援装置10は、適用順番3位の設計モジュール#Aを適用する。ここでは、ネットワーク設計支援装置10は、論理ネットワーク上で「ノード間を固定経路で接続する」要件があることから、設計モジュール#Aの適用条件「要素1:固定経路の機能要素を持つ接続がある」と「要件2:その接続元と接続先が論理ノードである」を満たすと判定する。この結果、ネットワーク設計支援装置10は、設計モジュール#Aの追加される機能要素「要素3:接続元の論理ノードに論理ポートを追加し、接続先の論理ノードに論理ポートを追加する」にしたがって、論理ネットワークを更新する。すなわち、ネットワーク設計支援装置10は、ノードAにポート1とノードCにポート2を追加して当該ポートを用いた固定経路で接続するとともに、ノードCにポート3とノードBにポート4を追加して当該ポートを用いた固定経路で接続する。
続いて、図23に示すように、ネットワーク設計支援装置10は、適用順番4位の設計モジュール#Cを適用する。ここでは、ネットワーク設計支援装置10は、論理ネットワーク上で「ノード間を固定経路で接続する」要件があることから、設計モジュール#Cの適用条件「要素1:固定経路の機能要素を持つ接続がある」と「要素3:その接続元と接続先が論理ポートである」を満たすと判定する。この結果、ネットワーク設計支援装置10は、設計モジュール#Aの追加される機能要素「要素4:接続元の論理ポートに静的なルーティング機能の機能要素を追加、接続先の論理ポートに静的なルーティング機能の機能要素を追加」にしたがって、論理ネットワークを更新する。すなわち、ネットワーク設計支援装置10は、ノードAとノードCとの固定経路のために、ノードAのポート1とノードCのポート2それぞれに静的なルーティング機能を追加する。同様に、ネットワーク設計支援装置10は、ノードCとノードBとの固定経路のために、ノードCのポート3とノードBのポート4それぞれに静的なルーティング機能を追加する。
続いて、図24に示すように、ネットワーク設計支援装置10は、適用順番5位の設計モジュール#Bを適用する。ここでは、ネットワーク設計支援装置10は、論理ネットワーク上で「ノードCに2つのポートがあり、各ポートがルーティング機能を有する」要件があることから、設計モジュール#Bの適用条件「要素3:単一の論理ノードが2つ以上の論理ポートを持つ」と「要素4:それらが静的なルーティング機能を持つ論理ノードである」を満たすと判定する。この結果、ネットワーク設計支援装置10は、設計モジュール#Bの追加される機能要素「要素5:当該論理ノードに転送機能の機能要素を追加」にしたがって、論理ネットワークを更新する。すなわち、ネットワーク設計支援装置10は、2つのポートを有し、各ポートがルーティング機能を有するノードCに、転送機能を追加する。
このように、ネットワーク設計支援装置10は、適切な順番で設計モジュールを適用して論理ネットワークを設計することができるので、ユーザの要件に合致したネットワークを、ミスなく高速に設計することができる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
[数値等]
上記実施例で用いた数値例、ネットワーク構成、設計モジュール、ネットワーク機器の台数等は、あくまで一例であり、任意に変更することができる。また、各フローチャートで説明した処理の流れも矛盾のない範囲内で適宜変更することができる。
また、各設計モジュールに設定する適用条件や設計内容も例示したものに限らず、任意に設定変更することができる。上記実施例では、設計モジュールのif文から抽出する例を説明したが、これに限定されるものではなく、ユーザ等により指定することもでき、設計モジュール内でコメント文などにより指定することもできる。
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
[ハードウェア]
次に、ネットワーク設計支援装置10のハードウェア構成例を説明する。図25は、ハードウェア構成例を説明する図である。図25に示すように、ネットワーク設計支援装置10は、ネットワークインタフェース10a、補助記憶装置10b、出力装置10c、入力装置10d、主記憶装置10e、プロセッサ10fを有する。また、図25に示した各部は、バス等で相互に接続される。
ネットワークインタフェース10aは、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース10aは、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース10aは、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)カード等である。ネットワークインタフェース10aで受信されたデータ等は、プロセッサに出力される。
補助記憶装置10bは、様々なプログラムや、各プログラムの実行に際してプロセッサが使用するデータを格納する。補助記憶装置10bは、例えば、EPROM(Erasable Programmable ROM(Read Only Memory))、又はハードディスクドライブ(Hard Disc Drive)等の不揮発性のメモリである。補助記憶装置10bは、例えば、オペレーティングシステム(OS:Operating System)、データ蓄積先決定プログラム、その他様々なアプリケーションプログラムを保持する。
出力装置10cは、プロセッサの処理の結果を出力する。出力装置10cは、例えば、スピーカ等の音声出力装置、ディスプレイ、プリンタを含む。入力装置10dは、例えば、キーボード、マウス等のポインティングデバイス等である。入力装置10dから入力されたデータは、プロセッサに出力される。
主記憶装置10eは、プロセッサ10fに、補助記憶装置10bに格納されているプログラムをロードする記憶領域及び作業領域を提供したり、バッファとして用いられたりする。主記憶装置10eは、例えば、RAM(Random Access Memory)のような半導体メモリである。
プロセッサ10fは、例えば、CPU(Central Processing Unit)である。プロセッサは、補助記憶装置又は可搬記録媒体に保持されたOSや様々なアプリケーションプログラムを主記憶装置にロードして実行することによって、様々な処理を実行する。プロセッサ10fは、1つに限られず、複数備えられてもよい。
プロセッサ10fは、図6に示した各処理部と同様の処理を実行するプログラムを補助記憶装置10b等から読み出して主記憶装置10eに展開することで、図6等で説明した各機能を実行するプロセスを動作させる。例えば、このプロセスは、ネットワーク設計支援装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10fは、事前処理部20a、受信部21、設計部22、照合部23、設定反映部24等と同様の機能を有するプログラムを補助記憶装置10b等から読み出す。そして、プロセッサ10fは、事前処理部20a、受信部21、設計部22、照合部23、設定反映部24等と同様の処理を実行するプロセスを実行する。
このように、ネットワーク設計支援装置10は、プログラムを読み出して実行することでネットワーク設計支援方法を実行する情報処理装置として動作する。また、ネットワーク設計支援装置10は、媒体読取装置によって記録媒体から上記プログラムを読み出し、読み出された上記プログラムを実行することで上記した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、ネットワーク設計支援装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本発明を同様に適用することができる。
このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行することができる。
10 ネットワーク設計支援装置
11 通信部
12 記憶部
13 設計モジュールDB
14 実ネットワークの構成情報
15 ネットワークの設計結果
20 制御部
20a 事前処理部
21 受信部
22 設計部
23 照合部
24 設定反映部

Claims (5)

  1. 各設計モジュールを組み合わせて、要求された通信要件を満たす論理ネットワークを設計するコンピュータが、
    前記各設計モジュールに設定される、設計モジュールを適用する適用条件と前記論理ネットワークへ機能を追加または削除する内容を示す設計内容とに基づき、前記各設計モジュールの依存関係を導出し、
    前記依存関係に基づき、前記通信要件へ適用する前記各設計モジュールの適用順番を決定する、
    処理を実行することを特徴とするネットワーク設計支援方法。
  2. 前記導出する処理は、
    前記各設計モジュールの前記適用条件から、前記適用条件の適用要否を判定する前記論理ネットワークの状態を示す少なくとも1つの第1の機能要素を生成し、
    前記各設計モジュールの前記設計内容から、前記適用条件を満たす場合に前記論理ネットワークに追加または削除する少なくとも1つの第2の機能要素を生成し、
    前記決定する処理は、
    前記第1の機能要素と前記第2の機能要素の依存関係に基づき、前記通信要件へ適用する前記各設計モジュールの適用順番を決定する、
    処理を含むことを特徴とする請求項1に記載のネットワーク設計支援方法。
  3. 前記導出する処理は、
    前記各設計モジュールのソースコード内のif文の判定式に記載されている機能要素を前記第1の機能要素として抽出し、
    前記各設計モジュールのソースコード内のif文内で規定されている処理を前記第2の機能要素として抽出する、
    処理を含むことを特徴とする請求項2に記載のネットワーク設計支援方法。
  4. 前記決定する処理は、
    前記各設計モジュールのうちの第1の設計モジュールの前記第1の機能要素が、前記各設計モジュールのうちの第2の設計モジュールの前記第2の機能要素と一致する場合に、前記第1の設計モジュールが前記第2の設計モジュールに依存していると判定し、
    前記第2の設計モジュールを前記第1の設計モジュールより先に適用する前記適用順番を決定する、
    処理を含むことを特徴とする請求項2または3に記載のネットワーク設計支援方法。
  5. 各設計モジュールを組み合わせて、要求された通信要件を満たす論理ネットワークを設計するコンピュータに、
    前記各設計モジュールに設定される、設計モジュールを適用する適用条件と前記論理ネットワークへ機能を追加または削除する内容を示す設計内容とに基づき、前記各設計モジュールの依存関係を導出し、
    前記依存関係に基づき、前記通信要件へ適用する前記各設計モジュールの適用順番を決定する、
    処理を実行させることを特徴とするネットワーク設計支援プログラム。
JP2021048762A 2021-03-23 2021-03-23 ネットワーク設計支援方法およびネットワーク設計支援プログラム Pending JP2022147500A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2021048762A JP2022147500A (ja) 2021-03-23 2021-03-23 ネットワーク設計支援方法およびネットワーク設計支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2021048762A JP2022147500A (ja) 2021-03-23 2021-03-23 ネットワーク設計支援方法およびネットワーク設計支援プログラム

Publications (1)

Publication Number Publication Date
JP2022147500A true JP2022147500A (ja) 2022-10-06

Family

ID=83462647

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021048762A Pending JP2022147500A (ja) 2021-03-23 2021-03-23 ネットワーク設計支援方法およびネットワーク設計支援プログラム

Country Status (1)

Country Link
JP (1) JP2022147500A (ja)

Similar Documents

Publication Publication Date Title
US11600276B2 (en) Graph based prediction for next action in conversation flow
US10038753B2 (en) Network-independent programming model for online processing in distributed systems
AU2020240106B2 (en) Systems and methods for a virtual agent in a cloud computing environment
US20220045948A1 (en) Path creation method and device for network on chip and electronic apparatus
CN107800781A (zh) 一种配置数据处理方法和装置
US20230082372A1 (en) Enhanced self-assembling and self-configuring microservices
WO2021136233A1 (zh) 业务升级的方法、装置和系统
CN112988572A (zh) 多环境多渠道多版本模拟测试方法及装置
US9697300B2 (en) Graph syntax validation system and method
KR101926566B1 (ko) 다중 서버 환경을 갖는 문서 공동 편집 시스템에서 편집 명령 처리를 수행하기 위한 편집 명령 처리 서버 장치 및 그 동작 방법
CN110569987A (zh) 自动化运维方法、运维设备、存储介质及装置
JP2022147500A (ja) ネットワーク設計支援方法およびネットワーク設計支援プログラム
CN111984623A (zh) 数据库集群自动化部署方法、装置、介质和电子设备
US10200445B2 (en) Method for analyzing performance of network application program in software defined networking environment, apparatus therefor, and computer program therefor
JP2019070972A (ja) 情報処理システム、情報処理装置及びプログラム
WO2023238302A1 (ja) 生成装置、生成方法及び生成プログラム
WO2022176032A1 (ja) コンフィグ投入装置、コンフィグ投入方法、および、コンフィグ投入プログラム
JP2016015672A (ja) ネットワーク制御装置、及びネットワーク設定システム
JP2021136692A (ja) ネットワーク設計支援装置、ネットワーク設計支援方法およびネットワーク設計支援プログラム
WO2023021631A1 (ja) 通信制御装置、通信制御方法及び通信制御プログラム
CN116029380B (zh) 量子算法处理方法、装置、设备、存储介质及程序产品
CN116225624B (zh) 基于kubernets的裸机管理方法、系统和装置
JP6721549B2 (ja) サービス構築順序決定装置およびサービス構築順序決定方法
WO2023157201A1 (ja) 変換装置、変換方法及び変換プログラム
CN114615150B (zh) 一种仿真网络生成方法和装置