(57)【要約】【課題】ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現する。【解決手段】ソフトウェア更新管理装置１は、ネットワークを１つ以上のブロックに分割し、分割したブロックそれぞれに属するネットワーク装置が現用装置または予備装置であることを示すブロック管理情報１００が記憶される記憶部１２と、ソフトウェア更新指示を受け付ける更新指示受信部１０１と、ソフトウェア更新情報２００を生成するソフトウェア更新情報生成部１０２と、ソフトウェア更新情報２００を参照して、ソフトウェア更新対象装置が現用装置であると判定した場合に、トラヒックを現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行し、現用装置または予備装置に対するソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部１０３と、を備える。【選択図】図２
2020136840.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置であって、
前記ネットワークを１つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報が記憶される記憶部と、
ソフトウェア更新の対象となるネットワーク装置を示すソフトウェア更新対象装置と、当該ソフトウェア更新対象装置のソフトウェア更新処理の開始時刻を示すソフトウェア更新時刻とを含むソフトウェア更新指示を受け付ける更新指示受信部と、
受け付けた前記ソフトウェア更新指示を用いて、前記ソフトウェア更新対象装置に対応付けた前記ソフトウェア更新時刻を含むソフトウェア更新情報を生成するソフトウェア更新情報生成部と、
前記ソフトウェア更新情報を参照して前記ソフトウェア更新時刻になると、前記ソフトウェア更新対象装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるソフトウェア更新対象装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行するとともに、前記予備装置であると判定した場合には、前記予備装置であるソフトウェア更新対象装置に対してソフトウェア更新処理を実行し、前記現用装置または前記予備装置に対する前記ソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部と、
を備えることを特徴とするソフトウェア更新管理装置。
【請求項２】
ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置であって、
前記ネットワークを１つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報、前記ネットワーク装置単体の不稼働率、および、前記ネットワーク全体の目標不稼働率を記憶する記憶部と、
ソフトウェア更新の対象装置が前記ネットワーク内のすべてのネットワーク装置であることを示す情報を含む全ネットワーク装置更新指示を受け付ける更新指示受信部と、
前記ブロック管理情報と、前記ネットワーク装置単体の不稼働率とを用いた所定の手法でネットワーク全体の不稼働率を算出することにより、当該ネットワーク全体の不稼働率を前記ネットワーク全体の目標不稼働率以下に収めるようにして、１回のソフトウェア更新で実行できる最大のソフトウェア更新台数を示す同時ソフトウェア更新台数を、前記ブロック毎に算出する同時更新台数算出部と、
算出された前記ブロック毎の前記同時ソフトウェア更新台数で示される台数分毎に、各ソフトウェア更新回においてソフトウェア更新を実行するネットワーク装置を前記ブロック毎に選択することにより更新スケジュール情報を生成する更新スケジュール情報生成部と、
前記更新スケジュール情報を参照して、ソフトウェア更新回毎に、選択された前記ネットワーク装置のソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部と、
を備えることを特徴とするソフトウェア更新管理装置。
【請求項３】
前記ソフトウェア更新実行部は、
前記ソフトウェア更新処理の際に、前記ソフトウェア更新を実行するネットワーク装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるネットワーク装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行し、前記予備装置であると判定した場合には、前記予備装置であるネットワーク装置に対してソフトウェア更新処理を実行すること
を特徴とする請求項２に記載のソフトウェア更新管理装置。
【請求項４】
ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置のソフトウェア更新管理方法であって、
前記ソフトウェア更新管理装置は、
前記ネットワークを１つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報が記憶される記憶部を備えており、
ソフトウェア更新の対象となるネットワーク装置を示すソフトウェア更新対象装置と、当該ソフトウェア更新対象装置のソフトウェア更新処理の開始時刻を示すソフトウェア更新時刻とを含むソフトウェア更新指示を受け付けるステップと、
受け付けた前記ソフトウェア更新指示を用いて、前記ソフトウェア更新対象装置に対応付けた前記ソフトウェア更新時刻を含むソフトウェア更新情報を生成するステップと、
前記ソフトウェア更新情報を参照して前記ソフトウェア更新時刻になると、前記ソフトウェア更新対象装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるソフトウェア更新対象装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行するとともに、前記予備装置であると判定した場合には、前記予備装置であるソフトウェア更新対象装置に対してソフトウェア更新処理を実行し、前記現用装置または前記予備装置に対する前記ソフトウェア更新処理を、各ブロックについて並列で実行するステップと、
を実行することを特徴とするソフトウェア更新管理方法。
【請求項５】
ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置のソフトウェア更新管理方法であって、
前記ソフトウェア更新管理装置は、
前記ネットワークを１つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報、前記ネットワーク装置単体の不稼働率、および、前記ネットワーク全体の目標不稼働率を記憶する記憶部を備えており、
ソフトウェア更新の対象装置が前記ネットワーク内のすべてのネットワーク装置であることを示す情報を含む全ネットワーク装置更新指示を受け付けるステップと、
前記ブロック管理情報と、前記ネットワーク装置単体の不稼働率とを用いた所定の手法でネットワーク全体の不稼働率を算出することにより、当該ネットワーク全体の不稼働率を前記ネットワーク全体の目標不稼働率以下に収めるようにして、１回のソフトウェア更新で実行できる最大のソフトウェア更新台数を示す同時ソフトウェア更新台数を、前記ブロック毎に算出するステップと、
算出された前記ブロック毎の前記同時ソフトウェア更新台数で示される台数分毎に、各ソフトウェア更新回においてソフトウェア更新を実行するネットワーク装置を前記ブロック毎に選択することにより更新スケジュール情報を生成するステップと、
前記更新スケジュール情報を参照して、ソフトウェア更新回毎に、選択された前記ネットワーク装置のソフトウェア更新処理を、各ブロックについて並列で実行するステップと、
を実行することを特徴とするソフトウェア更新管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェア更新管理装置およびソフトウェア更新管理方法に関する。
【背景技術】
【０００２】
従来、運用システムと予備運用システムで構成される二重化システムにおいて、予備運用システムへソフトウェア更新対象となる新プログラムをロードし、運用システムの運用中データを引き継いだ後、予備運用システムが運用システムを停止することで、予備運用システムを運用システムに切り替えることが行われている。これにより、二重化したシステムの中で、予備系システムの更新の後に、現用系システムの更新を行うことで、システム全体としてサービスを停止することなく、プログラムの修正やサービスの追加を行うことができる（例えば、特許文献１参照）。
【０００３】
通信事業者や大規模データセンタなどで運用されているネットワークにおいては、数百から数千万台以上といったスイッチ（以下、「ネットワーク装置」という場合がある。）が相互接続される。図１６は、データセンタ等で用いられる、スパイン（Spine）−リーフ（Leaf）構成のネットワークを示す図である。ここでサーバを収容するスイッチをリーフ（Leaf）スイッチと呼び、各サーバと接続するＴｏＲ（Top of Rack）スイッチに接続される。また、リーフ（Leaf）スイッチを相互に接続するスイッチをスパイン（Spine）スイッチと呼ぶ。現状、図１６に示すような大規模ネットワークにおいては、サーバの利用者やトラヒックに影響がでないように、ＴｏＲスイッチ等が冗長構成で接続されているスイッチ群の単位でネットワークを分割し、ソフトウェア更新の作業を行っている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平０９−０５０３８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
通信事業者や大規模データセンタで用いられるネットワークには、非常に高い信頼性が求められる。従来のソフトウェア更新手法のように、ネットワーク装置について現用装置と予備装置とを切り替えてソフトウェア更新を行う場合、ソフトウェア更新中は予備として利用できる装置が減少することを意味する。そのため、ソフトウェア更新中はネットワーク全体の信頼性が低下している。この点、従来手法では、ネットワークを分割することにより、並列でソフトウェア更新作業を行うスケジューリングを実行してはいるが、それらのスケジューリングは基本的に作業者が手作業で行っており、ソフトウェア更新作業の並列化によりネットワークの信頼性が確保されるものであるかが十分に保証されるものではなかった。
また、大規模ネットワークにおける各ネットワーク装置のバグ対処や新規の機能追加等を目的としたＯＳアップグレード等のソフトウェア更新作業の長期化を抑制し、ソフトウェア更新作業を効率的に実行するための自動化手法は確立されていなかった。
【０００６】
このような点に鑑みて本発明がなされたのであり、本発明は、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現する、ソフトウェア更新管理装置およびソフトウェア更新管理方法を提供することを課題とする。
【課題を解決するための手段】
【０００７】
前記した課題を解決するため、請求項１に記載の発明は、ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置であって、前記ネットワークを１つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報が記憶される記憶部と、ソフトウェア更新の対象となるネットワーク装置を示すソフトウェア更新対象装置と、当該ソフトウェア更新対象装置のソフトウェア更新処理の開始時刻を示すソフトウェア更新時刻とを含むソフトウェア更新指示を受け付ける更新指示受信部と、受け付けた前記ソフトウェア更新指示を用いて、前記ソフトウェア更新対象装置に対応付けた前記ソフトウェア更新時刻を含むソフトウェア更新情報を生成するソフトウェア更新情報生成部と、前記ソフトウェア更新情報を参照して前記ソフトウェア更新時刻になると、前記ソフトウェア更新対象装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるソフトウェア更新対象装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行するとともに、前記予備装置であると判定した場合には、前記予備装置であるソフトウェア更新対象装置に対してソフトウェア更新処理を実行し、前記現用装置または前記予備装置に対する前記ソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部と、を備えることを特徴とするソフトウェア更新管理装置とした。
【０００８】
また、請求項４に記載の発明は、ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置のソフトウェア更新管理方法であって、前記ソフトウェア更新管理装置が、前記ネットワークを１つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報が記憶される記憶部を備えており、ソフトウェア更新の対象となるネットワーク装置を示すソフトウェア更新対象装置と、当該ソフトウェア更新対象装置のソフトウェア更新処理の開始時刻を示すソフトウェア更新時刻とを含むソフトウェア更新指示を受け付けるステップと、受け付けた前記ソフトウェア更新指示を用いて、前記ソフトウェア更新対象装置に対応付けた前記ソフトウェア更新時刻を含むソフトウェア更新情報を生成するステップと、前記ソフトウェア更新情報を参照して前記ソフトウェア更新時刻になると、前記ソフトウェア更新対象装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるソフトウェア更新対象装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行するとともに、前記予備装置であると判定した場合には、前記予備装置であるソフトウェア更新対象装置に対してソフトウェア更新処理を実行し、前記現用装置または前記予備装置に対する前記ソフトウェア更新処理を、各ブロックについて並列で実行するステップと、を実行することを特徴とするソフトウェア更新管理方法とした。
【０００９】
このようにすることで、ソフトウェア更新管理装置は、制御対象となるネットワークにおいて、トラヒックに影響を与えずに、更新対象となるネットワーク装置のソフトウェア更新を、ブロック毎に、つまり複数同時に自動で実行することができる。よって、従来のような手動での作業に比べ、ソフトウェア更新作業の効率化を実現することができる。
【００１０】
請求項２に記載の発明は、ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置であって、前記ネットワークを１つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報、前記ネットワーク装置単体の不稼働率、および、前記ネットワーク全体の目標不稼働率を記憶する記憶部と、ソフトウェア更新の対象装置が前記ネットワーク内のすべてのネットワーク装置であることを示す情報を含む全ネットワーク装置更新指示を受け付ける更新指示受信部と、前記ブロック管理情報と、前記ネットワーク装置単体の不稼働率とを用いた所定の手法でネットワーク全体の不稼働率を算出することにより、当該ネットワーク全体の不稼働率を前記ネットワーク全体の目標不稼働率以下に収めるようにして、１回のソフトウェア更新で実行できる最大のソフトウェア更新台数を示す同時ソフトウェア更新台数を、前記ブロック毎に算出する同時更新台数算出部と、算出された前記ブロック毎の前記同時ソフトウェア更新台数で示される台数分毎に、各ソフトウェア更新回においてソフトウェア更新を実行するネットワーク装置を前記ブロック毎に選択することにより更新スケジュール情報を生成する更新スケジュール情報生成部と、前記更新スケジュール情報を参照して、ソフトウェア更新回毎に、選択された前記ネットワーク装置のソフトウェア更新処理を、各ブロックについて並列で実行するソフトウェア更新実行部と、を備えることを特徴とするソフトウェア更新管理装置とした。
【００１１】
また、請求項５に記載の発明は、ネットワークを構成する複数のネットワーク装置のソフトウェア更新を実行するソフトウェア更新管理装置のソフトウェア更新管理方法であって、前記ソフトウェア更新管理装置が、前記ネットワークを１つ以上のブロックに分割し、分割した前記ブロックそれぞれに属する前記ネットワーク装置の情報を、当該ネットワーク装置が現用装置または予備装置であることを示す情報とともに格納するブロック管理情報、前記ネットワーク装置単体の不稼働率、および、前記ネットワーク全体の目標不稼働率を記憶する記憶部を備えており、ソフトウェア更新の対象装置が前記ネットワーク内のすべてのネットワーク装置であることを示す情報を含む全ネットワーク装置更新指示を受け付けるステップと、前記ブロック管理情報と、前記ネットワーク装置単体の不稼働率とを用いた所定の手法でネットワーク全体の不稼働率を算出することにより、当該ネットワーク全体の不稼働率を前記ネットワーク全体の目標不稼働率以下に収めるようにして、１回のソフトウェア更新で実行できる最大のソフトウェア更新台数を示す同時ソフトウェア更新台数を、前記ブロック毎に算出するステップと、算出された前記ブロック毎の前記同時ソフトウェア更新台数で示される台数分毎に、各ソフトウェア更新回においてソフトウェア更新を実行するネットワーク装置を前記ブロック毎に選択することにより更新スケジュール情報を生成するステップと、前記更新スケジュール情報を参照して、ソフトウェア更新回毎に、選択された前記ネットワーク装置のソフトウェア更新処理を、各ブロックについて並列で実行するステップと、を実行することを特徴とするソフトウェア更新管理方法とした。
【００１２】
このようにすることで、ソフトウェア更新管理装置は、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現することができる。つまり、ソフトウェア更新管理装置によれば、ネットワーク全体の目標不稼働率を超えない範囲で、ソフトウェア更新に要する時間を最も短縮できるソフトウェア更新のスケジュールを生成して実行することが可能となる。
【００１３】
請求項３に記載の発明は、前記ソフトウェア更新実行部が、前記ソフトウェア更新処理の際に、前記ソフトウェア更新を実行するネットワーク装置が現用装置であるかまたは予備装置であるかを前記ブロック管理情報に基づき判定し、前記現用装置であると判定した場合には、前記現用装置であるネットワーク装置が処理中のトラヒックを前記現用装置と同じブロック内の予備装置に移行した上でソフトウェア更新処理を実行し、前記予備装置であると判定した場合には、前記予備装置であるネットワーク装置に対してソフトウェア更新処理を実行することを特徴とする請求項２に記載のソフトウェア更新管理装置とした。
【００１４】
このようにすることで、ソフトウェア更新管理装置は、制御対象となるネットワークにおいて、トラヒックに影響を与えずに、ネットワーク装置のソフトウェア更新を、ブロック毎に、つまり複数同時に自動で実行することができる。
【発明の効果】
【００１５】
本発明によれば、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現する、ソフトウェア更新管理装置およびソフトウェア更新管理方法を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本実施形態に係るソフトウェア更新管理装置を含むネットワーク管理システムの構成を示す図である。
【図２】本発明の第１実施形態に係るソフトウェア更新管理装置の構成例を示す機能ブロック図である。
【図３】本実施形態に係るブロック管理情報のデータ構成例を示す図である。
【図４】本発明の第１実施形態に係るソフトウェア更新管理装置の処理概要を説明するための図である。
【図５】本発明の第１実施形態に係るソフトウェア更新情報のデータ構成例を例示する図である。
【図６】本発明の第１実施形態に係るソフトウェア更新管理装置の処理の流れを示すフローチャートである。
【図７】本発明の第２実施形態に係るソフトウェア更新管理装置の構成例を示す機能ブロック図である。
【図８】本発明の第２実施形態に係る同時更新台数算出部による、ブロック毎の同時ソフトウェア更新台数の算出処理の概要を説明するための図である。
【図９】本発明の第２実施形態に係る同時更新台数算出部による、ブロック毎の同時ソフトウェア更新台数の算出処理における計算手法の一例を説明するための図である。
【図１０】本発明の第２実施形態に係る更新スケジュール生成部による更新スケジュール情報の生成を説明するための図である。
【図１１】本発明の第２実施形態に係るソフトウェア更新実行部による、ソフトウェア更新回ごとに並列で行われる各ブロックのソフトウェア更新を説明するための図である。
【図１２】本発明の第２実施形態に係るソフトウェア更新管理装置の処理の流れを示すフローチャートである。
【図１３】本発明の第２実施形態に係るソフトウェア更新管理装置が制御対象とするネットワークの構成例を示す図である。
【図１４】本発明の第２実施形態に係るソフトウェア更新管理装置により、ネットワーク全体の不稼働率と同時ソフトウェア更新台数とを算出した実験結果を示す図である。
【図１５】従来手法と、本発明の第２実施形態に係るソフトウェア更新管理装置による手法とを比較した実験結果を示す図である。
【図１６】従来の大規模なネットワークにおけるネットワーク装置のソフトウェア更新の手法を示す図である。
【発明を実施するための形態】
【００１７】
次に、本発明を実施するための形態（以下、「本実施形態」と称する。）について説明する。
図１は、本実施形態に係るソフトウェア更新管理装置１を含むネットワーク管理システム１０００の構成を示す図である。
本実施形態に係るソフトウェア更新管理装置１は、通信事業者や大規模データセンタなどで運用される数百から数千台以上のスイッチ（ネットワーク装置５）が、例えば、図１６に示したように、スパイン（Spine）−リーフ（Leaf）構成で相互に接続されるネットワークの各ネットワーク装置５におけるソフトウェア更新を実行する。なお、図１においては、図１６に示したような、各ネットワーク装置５間の接続を示す線を省略している。また、ソフトウェア更新管理装置１が対象とするネットワーク装置５の構成は、スパイン（Spine）−リーフ（Leaf）構成に限定されるものではない。
【００１８】
ソフトウェア更新管理装置１は、ネットワーク管理システム１０００内の各ネットワーク装置５と通信接続され、各ネットワーク装置５に対して、コマンド実行やファイル転送を実行する。また、図１に示すように、ソフトウェア更新管理装置１は、制御対象となるネットワークを１つ以上のブロックに分割して管理する。そして、各ブロックには、通常時にトラヒックを処理する１つ以上の現用装置と、現用装置の故障時やソフトウェア更新時にトラヒックを処理する１つ以上の予備装置が設定されているものとする。
【００１９】
以下、本実施形態に係るソフトウェア更新管理装置１が実行するネットワーク内の各ネットワーク装置５に対するソフトウェア更新について、第１および第２実施形態として説明する。
【００２０】
＜第１実施形態＞
まず、第１実施形態に係るソフトウェア更新管理装置１Ａ（後記する図２参照）を含むネットワーク管理システム１０００について説明する。なお、第１実施形態の全体構成は、図１で示したシステムと同様である。
【００２１】
第１実施形態に係るソフトウェア更新管理装置１Ａは、以下に示す特徴を有する。
ソフトウェア更新管理装置１Ａは、ネットワーク装置５のソフトウェア更新時に実行するコマンド群の処理、ＯＳアップグレード等を行う際に、制御対象となるネットワークを１つ以上に分割した情報であるブロック管理情報１００（後記する図３参照）を保持する。このブロック管理情報１００には、各ブロックに属する現用装置と予備装置に関する情報が格納されている。そして、ソフトウェア更新管理装置１Ａは、保守者（具体的には、例えば、オペレータ端末（図示省略）等）から、ソフトウェア更新対象を示すネットワーク装置の識別情報と、その更新処理の開始時刻とを含むソフトウェアの更新を指示する情報（後記する「ソフトウェア更新指示２０」）を受け付ける。そして、ソフトウェア更新管理装置１Ａは、開始時刻となった時に、当該ネットワーク装置５のトラヒックを予備装置へ移し、ソフトウェア更新用コマンド群を実行し、さらに、指示のあったＯＳイメージファイルを転送してＯＳの更新を行い、予備装置へ移していたトラヒックを元のネットワーク装置に戻す。
このようにすることで、第１実施形態に係るソフトウェア更新管理装置１Ａは、制御対象となるネットワークにおいて、トラヒックに影響を与えずに、管理するネットワーク装置５のソフトウェア更新を、ブロック毎、同時に自動で実行することができる。よって、ソフトウェア更新作業の効率化を実現することができる。
【００２２】
≪ソフトウェア更新管理装置１Ａ≫
図２は、本発明の第１実施形態に係るソフトウェア更新管理装置１Ａの構成例を示す機能ブロック図である。
ソフトウェア更新管理装置１Ａは、制御対象となるネットワークをブロックに分割した情報であるブロック管理情報１００（図３）を保持する。そして、ソフトウェア更新管理装置１Ａは、オペレータ端末等からソフトウェア更新指示２０（図４参照）を受け取ると、その指示内容にしたがって、各ネットワーク装置５のソフトウェア更新処理を実行する。
このソフトウェア更新管理装置１Ａは、図２に示すように、制御部１０と、入出力部１１と、記憶部１２とを含んで構成される。
【００２３】
入出力部１１は、オペレータ端末（図示省略）や各ネットワーク装置５（図１参照）との間で情報の送受信を行うための通信インタフェース、および、タッチパネルやキーボード等の入力装置や、モニタ等の出力装置との間で情報の送受信を行うための入出力インタフェースからなる。
【００２４】
記憶部１２は、フラッシュメモリやハードディスク、ＲＡＭ（Random Access Memory）等により構成される。このソフトウェア更新管理装置１Ａの記憶部１２には、後記するブロック管理情報１００（図３）やソフトウェア更新情報２００（図５）等が格納される。また、この記憶部１２には、制御部１０の各機能を実行させるためのプログラムや、制御部１０の処理に必要な情報が一時的に記憶される。
【００２５】
図３は、本実施形態に係るブロック管理情報１００のデータ構成例を示す図である。
ブロック管理情報１００には、各ブロックに属する現用装置と予備装置を示す情報が格納される。具体的には、図３に示すように、ブロックの識別情報（ＩＤ）に対応付けて、そのブロックに属するネットワーク装置５のうち、現用装置の装置ＩＤと、予備装置の装置ＩＤとが格納される。例えば、１行目に示すように、ブロック「１」には、装置ＩＤが「１」〜「７」の現用装置（ネットワーク装置５）と、装置ＩＤが「８」〜「１０」の予備装置（ネットワーク装置５）とが属することが示される。
【００２６】
このブロック管理情報１００は、ネットワークの保守者（オペレータ）等により、予め設定される情報である。また、ブロックの分割は、あるブロック内のネットワーク装置５において、現用と予備を切り替えた場合に、他のブロックでの通信の疎通性に影響を与えない範囲で設定される。
【００２７】
図２に戻り、制御部１０は、ソフトウェア更新管理装置１Ａの処理全般を司り、更新指示受信部１０１と、ソフトウェア更新情報生成部１０２と、ソフトウェア更新実行部１０３とを含んで構成される。
【００２８】
更新指示受信部１０１は、オペレータ端末（図示省略）等から、ソフトウェア更新対象を示すネットワーク装置５の識別情報と、その更新処理の開始時刻とを含むソフトウェア更新指示２０を受け付ける。そして、更新指示受信部１０１は、受け付けたソフトウェア更新指示２０を、ソフトウェア更新情報生成部１０２に出力する。
【００２９】
図４は、本発明の第１実施形態に係るソフトウェア更新管理装置１Ａの処理概要を説明するための図である。
図４に示すように、ソフトウェア更新指示２０には、「ソフトウェア更新対象装置」および「ソフトウェア更新時刻」の情報が含まれ、「ソフトウェア更新用コマンドファイルの格納場所」、「ソフトウェア更新用イメージファイルの格納場所」の情報を含めるようにしてもよい。
【００３０】
「ソフトウェア更新対象装置」は、ソフトウェア更新対象のネットワーク装置５の識別情報である。例えば、ネットワーク装置５のＩＤ「ａ」が格納される。
「ソフトウェア更新時刻」には、ソフトウェアの更新処理の開始時刻が、例えば、年月日時間分秒の形式「YYYYMMDD_hhmmss」で格納される。
「ソフトウェア更新用コマンドファイルの格納場所」には、ソフトウェア更新管理装置１Ａが、各ネットワーク装置５に対し実行するコマンドが格納されるファイルが指定される。
「ソフトウェア更新用イメージファイルの格納場所」には、ＯＳのアップグレードを実行する場合に必要となるアップグレード用のイメージファイルの格納場所を指定される。
なお、この「ソフトウェア更新用コマンドファイルの格納場所」および／または「ソフトウェア更新用イメージファイルの格納場所」の情報が、ソフトウェア更新指示２０に含まれない場合には、ソフトウェア更新管理装置１Ａが、ソフトウェア更新対象装置の情報（識別情報）に基づき、適切なコマンドファイルやイメージファイルを選択して決定するようにしてもよい。
【００３１】
図２に戻り、ソフトウェア更新情報生成部１０２は、取得したソフトウェア更新指示２０の情報を、記憶部１２内のソフトウェア更新情報２００として格納する。
【００３２】
図５は、本発明の第１実施形態に係るソフトウェア更新情報２００のデータ構成例を例示する図である。
ソフトウェア更新情報２００は、図５に示すように、ソフトウェア更新指示２０で示される情報が、対象装置毎に格納される。具体的には、「ソフトウェア更新対象装置（図５では「対象装置」と記載）」に対応付けて、「ソフトウェア更新時刻（図５では「更新時刻」と記載）」「コマンドファイルの格納場所」「イメージファイルの格納場所」の情報が格納される。なお、例えば、ソフトウェア更新指示２０に、「ソフトウェア更新用イメージファイルの格納場所」の情報が含まれていない場合には、ＯＳの更新はないものとして、ソフトウェア更新情報２００には「―」が格納される。
【００３３】
図２に戻り、ソフトウェア更新実行部１０３は、ソフトウェア更新情報２００の「更新時刻」を監視しており、「更新時刻」で示される時刻になると、そのソフトウェア更新対象装置のソフトウェア更新処理を実行する。
具体的には、図４に示すように、ソフトウェア更新時刻になると、ソフトウェア更新実行部１０３は、該当するソフトウェア更新対象装置が処理を行っているトラヒックを、同じブロック内の予備装置に移行させる（ステップＳ１）。続いて、ソフトウェア更新実行部１０３は、ソフトウェア更新用のコマンドファイルで示されるコマンドを実行する（ステップＳ２）。このとき、ソフトウェア更新実行部１０３は、ソフトウェア更新情報２００において、イメージファイルの格納場所が指定されている場合には、ＯＳのアップグレードが必要であるものとして、ソフトウェア更新用のイメージファイルを転送する。そして、ソフトウェア更新実行部１０３は、予備装置に移行していたトラヒックを、ソフトウェアの更新後の現用装置に戻す（ステップＳ３）。
【００３４】
≪処理の流れ≫
次に、ソフトウェア更新管理装置１Ａの処理の流れについて説明する。
図６は、本発明の第１実施形態に係るソフトウェア更新管理装置１Ａの処理の流れを示すフローチャートである。
ここでは、制御対象のネットワークを、１つ以上のブロックに分割した情報が、ブロック管理情報１００（図３）として、ソフトウェア更新管理装置１の記憶部１２に予め記憶されているものとする。
【００３５】
まず、ソフトウェア更新管理装置１Ａ（更新指示受信部１０１）は、オペレータ端末（図示省略）等から、ソフトウェア更新対象を示すネットワーク装置５の識別情報と、その更新処理の開始時刻とを含むソフトウェア更新指示２０（図４参照）を受け付ける（ステップＳ１０）。そして、更新指示受信部１０１は、受け付けたソフトウェア更新指示２０を、ソフトウェア更新情報生成部１０２に出力する。
【００３６】
続いて、ソフトウェア更新情報生成部１０２は、取得したソフトウェア更新指示２０の情報に基づき、ソフトウェア更新情報２００を生成し、記憶部１２内に記憶する（ステップＳ１１）。
【００３７】
次に、ソフトウェア更新実行部１０３は、記憶部１２内のソフトウェア更新情報２００の「更新時刻」を監視し、現在時刻が「更新時刻」に設定されているいずれかの時刻になったか否かを判定する（ステップＳ１２）。
ソフトウェア更新実行部１０３は、現在時刻が更新時刻ではないと判定した場合（ステップＳ１２→Ｎｏ）、更新時刻になるまで待つ。一方、現在時刻が更新時刻であると判定した場合には（ステップＳ１２→Ｙｅｓ）、次のステップＳ１３に進む。
【００３８】
次に、ソフトウェア更新実行部１０３は、図４のステップＳ１〜Ｓ３で示したソフトウェア更新処理を実行する。
具体的には、まず、ソフトウェア更新実行部１０３は、ソフトウェア更新情報２００（図５参照）において更新時刻であると判定したソフトウェア更新対象装置（ネットワーク装置５）を特定する。そして、そのソフトウェア更新対象装置（ネットワーク装置５）が現用装置であるか否かを判定する（ステップＳ１３）。つまり、ソフトウェア更新実行部１０３は、そのネットワーク装置５が、現用装置か予備装置かを判定する。
【００３９】
ここで、判定結果が現用装置である場合には（ステップＳ１３→Ｙｅｓ）、ソフトウェア更新実行部１０３は、そのソフトウェア更新対象装置（ネットワーク装置５）が処理を行っているトラヒックを、同じブロック内の予備装置に移行させる（ステップＳ１４）。
続いて、ソフトウェア更新実行部１０３は、ソフトウェア更新情報２００を参照し、ソフトウェア更新用のコマンドファイルで示されるコマンドを実行する（ステップＳ１５：ソフトウェア更新処理）。このとき、ソフトウェア更新実行部１０３は、ソフトウェア更新情報２００において、イメージファイルの格納場所が指定されている場合には、ＯＳのアップグレードが必要であるものとして、ソフトウェア更新用のイメージファイルを転送する。
そして、ソフトウェア更新実行部１０３は、更新が完了すると、予備装置に移行していたトラヒックを、ソフトウェアの更新後の現用装置に戻す（ステップＳ１６）。そして、ステップＳ１２に戻り、処理を続ける。
【００４０】
一方、ソフトウェア更新実行部１０３は、判定結果が現用装置ではなく、予備装置である場合には（ステップＳ１３→Ｎｏ）、ステップＳ１７へ進む。
ステップＳ１７において、ソフトウェア更新実行部１０３は、ステップＳ１５と同様に、ソフトウェア更新情報２００を参照し、ソフトウェア更新用のコマンドファイルで示されるコマンドを実行する。このとき、ソフトウェア更新実行部１０３は、ソフトウェア更新情報２００において、イメージファイルの格納場所が指定されている場合には、ＯＳのアップグレードが必要であるものとして、ソフトウェア更新用のイメージファイルを転送する。そして、ステップＳ１２に戻り、処理を続ける。
【００４１】
このように、本発明の第１実施形態に係るソフトウェア更新管理装置１Ａによれば、制御対象となるネットワークにおいて、トラヒックに影響を与えずに、管理するネットワーク装置５のソフトウェア更新を、ブロック毎に、つまり複数同時に自動で実行することができる。
【００４２】
＜第２実施形態＞
次に、第２実施形態に係るソフトウェア更新管理装置１Ｂ（後記する図７参照）を含むネットワーク管理システム１０００について説明する。なお、第２実施形態の全体構成は、図１で示したシステムと同様である。
【００４３】
第２実施形態に係るソフトウェア更新管理装置１Ｂは、以下に示す特徴と有する。
第２実施形態に係るソフトウェア更新管理装置１Ｂは、第１実施形態に係るソフトウェア更新管理装置１Ａと同様に、制御対象となるネットワークを１つ以上に分割した情報であるブロック管理情報１００（図３）を保持する。また、ソフトウェア更新管理装置１Ｂは、制御対象となるネットワーク全体の目標不稼働率（詳細は後記）を予め記憶しておく。そして、ソフトウェア更新管理装置１Ｂは、制御対象となるネットワーク内のすべてのネットワーク装置５を一括でソフトウェア更新する指示情報（後記する「全ネットワーク装置更新指示２５」）を受け付ける。ソフトウェア更新管理装置１Ｂは、ソフトウェア更新実行中における制御対象のネットワーク全体の不稼働率を、ネットワーク全体の目標不稼働率以下に収めた上で、ソフトウェア更新時間を最も短くするスケジューリングを計算する。具体的には、ソフトウェア更新管理装置１Ｂは、ネットワーク全体の目標不稼働率を満たす最大の同時ソフトウェア更新台数を、ブロック毎に計算する。そして、ソフトウェア更新管理装置１Ｂは、各ブロックについて、計算した最大の同時ソフトウェア更新台数でソフトウェアを更新するようにスケジューリングを行い、制御対象のネットワーク装置５のソフトウェア更新を実行する。
【００４４】
このようにすることで、本実施形態に係るソフトウェア更新管理装置１Ｂは、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現することができる。
【００４５】
図７は、本発明の第２実施形態に係るソフトウェア更新管理装置１Ｂの構成例を示す機能ブロック図である。
ソフトウェア更新管理装置１Ｂは、オペレータ端末（図示省略）等からネットワーク内のすべてのネットワーク装置５に対する全ネットワーク装置更新指示２５（図１０）を受け付けると、ネットワーク全体の目標不稼働率を満たし、１回のソフトウェア更新で実行できる最大の同時ソフトウェア更新台数を、ブロック毎に計算する。そして、ソフトウェア更新管理装置１Ｂは、ブロック毎に、計算した最大の同時ソフトウェア更新台数でソフトウェアを更新するようにスケジューリングを行い、各ネットワーク装置５のソフトウェア更新処理を実行する。
このソフトウェア更新管理装置１Ｂは、図７に示すように、制御部１０と、入出力部１１と、記憶部１２とを含んで構成される。なお、図２に示したソフトウェア更新管理装置１Ａと、同じ構成を備える機能は、同一の名称と符号を付し、詳細な説明は省略する。
【００４６】
記憶部１２には、第１実施形態と同様に、各ブロックに属する現用装置と予備装置を示す情報であるブロック管理情報１００（図３）が格納される。
また、記憶部１２には、ネットワーク全体の目標不稼働率（「αtarget」）と装置単体の不稼働率（「α」）の情報が、不稼働率情報１５０として格納される。
ここで、不稼働率は、トラヒックの障害が発生する確率である「り障トラヒック発生確率」を示す。そして、装置単体の不稼働率（α）は、以下の（式１）で求められる。
不稼働率（α） ＝  ＭＴＴＲ ÷ （ＭＴＢＦ ＋ ＭＴＴＲ）  ・・・（式１）
ＭＴＴＲ（Mean Time To Repair）は、平均修復時間である。ＭＴＢＦ（Mean Time Between Failures）は、平均故障間隔である。なお、ネットワーク全体の不稼働率の算出手法の例は、後記する。
記憶部１２には、各ネットワーク装置５の不稼働率（α）と、ネットワーク全体として目標とする不稼働率を示す「ネットワーク全体の目標不稼働率」（αtarget）とが、予め格納される。
また、記憶部１２には、後記する同時更新台数算出部１０４が算出する同時ソフトウェア更新台数情報４００（図８）と、後記する更新スケジュール生成部１０５が生成する更新スケジュール情報５００（図１０）とが記憶される。
なお、この記憶部１２には、制御部１０の各機能を実行させるためのプログラムや、制御部１０の処理に必要な情報が一時的に記憶される。
【００４７】
図７に戻り、制御部１０は、ソフトウェア更新管理装置１Ｂの処理全般を司り、更新指示受信部１０１と、同時更新台数算出部１０４と、更新スケジュール生成部１０５と、ソフトウェア更新実行部１０３Ｂとを含んで構成される。
【００４８】
更新指示受信部１０１は、オペレータ端末（図示省略）等から、制御対象となるネットワーク内のすべてのネットワーク装置５を一括でソフトウェア更新する指示情報である全ネットワーク装置更新指示２５（図１０）を受け付ける。更新指示受信部１０１は、全ネットワーク装置更新指示２５を受け付けると、その情報を同時更新台数算出部１０４に出力する。
この全ネットワーク装置更新指示２５には、全ネットワーク装置のソフトウェア更新を開始する時刻や、各ブロックについて複数回にわけて行われるソフトウェア更新の間隔を指定する情報（ソフトウェア更新間隔）が含まれていてもよい。
【００４９】
更新指示受信部１０１は、例えば、後記する図１０に示すような全ネットワーク装置更新指示２５を受信する。この全ネットワーク装置更新指示２５には、「ソフトウェア更新対象装置」としてすべてのネットワーク装置５を示す「ＡＬＬ」が格納される。
「ソフトウェア更新開始時刻」には、全ソフトウェアの更新処理の全体を開始させる時刻が、例えば、年月日時間分秒の形式「YYYYMMDD_hhmmss」で格納される。また、「ソフトウェア更新間隔」として、各ソフトウェア更新回におけるソフトウェアの更新を開始する間隔が、例えば「３０分」のように格納される。つまり、１回目に設定したソフトウェア更新をスタートさせた後、３０分後に２回目に設定したソフトウェア更新をスタートさせ、以降、３０分毎に、３回目以降のソフトウェア更新を実行させることを意味する。
「ソフトウェア更新用コマンドファイルの格納場所」および「ソフトウェア更新用イメージファイルの格納場所」の情報は、第１実施形態のソフトウェア更新指示２０（図４）と同様の情報である。なお、ネットワーク装置５毎に異なるコマンド処理やイメージファイルの送信を行いたい場合には、各ネットワーク装置５に応じたコマンドファイルやイメージファイルの対応情報を予め記憶部１２内に格納するようにしてもよい。
【００５０】
図７に戻り、同時更新台数算出部１０４は、ネットワーク全体の目標不稼働率を満たした上で、１回のソフトウェア更新で実行できる最大のソフトウェア更新台数をブロック毎に算出する。
以下、図８および図９を参照して、同時更新台数算出部１０４によるブロック毎の同時ソフトウェア更新台数の算出処理について説明する。
【００５１】
図８は、同時更新台数算出部１０４による、ブロック毎の同時ソフトウェア更新台数の算出処理の概要を説明するための図である。図９は、同時更新台数算出部１０４による、ブロック毎の同時ソフトウェア更新台数の算出処理における計算手法の一例を説明するための図である。
図８に示すように、ソフトウェア更新管理装置１Ｂには、ネットワーク全体の目標不稼働率（αtarget）と、各ネットワーク装置５の装置単体の不稼働率（α）とが予め記憶される。なお、装置単体の不稼働率（α）は、各ネットワーク装置５毎に、上記した（式１）を用いて算出してもよいが、以下においては、説明を簡単にするため、すべてのネットワーク装置５が同一の装置単体の不稼働率（α）であるものとして説明する。
【００５２】
同時更新台数算出部１０４は、まず、装置単体の不稼働率（α）と、各ブロックに属する現用装置と予備装置を示す情報であるブロック管理情報１００（図８）とを用いて、ネットワーク全体の不稼働率を計算する。ネットワーク全体の不稼働率（り障トラヒック発生確率）の算出手法については、様々な手法（所定の手法）が適用可能であるが、以下その所定の手法の一例について説明する。
【００５３】
図９の符号９０に示すように、ブロック「ｉ」において、各ネットワーク装置５の装置単体の不稼働率を「α」とし、現用装置の台数を「Ｎｉ」、予備装置の台数を「Ｍｉ」とする。そして、同時ソフトウェア更新台数を「Ｒｉ」とする。ここで、同時ソフトウェア更新台数は、予備装置台数以下であるものとする（Ｒｉ≦Ｍｉ）。
この場合、ソフトウェア更新中のブロックｉにおけるブロック内不稼働率「Ｗｉ」を、以下の（式２）により計算する。
【００５４】
【数１】
2020136840.tif 000003
【００５５】
このＷｉは、同時故障台数（ｋ）が、稼働している予備装置の台数（Ｍｉ−Ｒｉ）より多くなる確率を示している。
なお、上記の（式２）のうち、以下のカッコで示す部分（式２−１）は、Ｎｉ＋Ｍｉ−Ｒｉの中からｋ個を選び出す組合せ数を示す。
【００５６】
【数２】
2020136840.tif 000004
【００５７】
また、（式２）のうち、以下の部分（式２−２）は、全装置台数（Ｎｉ＋Ｍｉ）から、ソフトウェア更新中の装置台数を引いた台数（Ｎｉ＋Ｍｉ−Ｒｉ）のうち、ｋ台が同時故障する確率を示す。
【００５８】
【数３】
2020136840.tif 000005
【００５９】
上記のブロック内不稼働率（Ｗｉ）を示す（式２）に基づき、各ブロックの「同時ソフトウェア更新台数に対するブロック内不稼働率」（図８の更新台数毎ブロック内不稼働率３００）を求めることができる。
【００６０】
また、ネットワーク全体の不稼働率（Ｗ）を以下の（式３）に計算する。
【００６１】
【数４】
2020136840.tif 000006
【００６２】
ここで、（式３）のうち、以下の部分（式３−１）は、すべてのブロックでり障トラヒックが発生しない確率を示す。
【００６３】
【数５】
2020136840.tif 000007
【００６４】
同時更新台数算出部１０４は、ネットワーク全体の目標不稼働率（αtarget）と、計算したネットワーク全体の不稼働率（Ｗ）とを用いて、以下の（式４）に示す最適化問題を解く。つまり、制約条件をαtarget≧Ｗを満たし、目的関数をαtarget−Ｗを最小化するソフトウェア更新台数（Ｒｉ）を算出する。
【００６５】
【数６】
2020136840.tif 000008
【００６６】
同時更新台数算出部１０４は、上記（式４）を計算することにより、各ブロックにおける同時ソフトウェア更新台数Ｒを算出する。そして、同時更新台数算出部１０４は、算出結果を、図８に示す同時ソフトウェア更新台数情報４００として記憶部１２に格納する。
【００６７】
図８に示す同時ソフトウェア更新台数情報４００の例では、ブロック「１」の同時ソフトウェア更新台数は「２」と算出され、ブロック「２」「３」以降については、同時ソフトウェア更新台数がそれぞれ「５」「３」として算出されたことを示している。
【００６８】
図７に戻り、更新スケジュール生成部１０５は、同時更新台数算出部１０４が生成した同時ソフトウェア更新台数情報４００（図８）を用いて、１回のソフトウェア更新で実行できる各ブロックのソフトウェア更新台数を決定し、各ブロックですべてのネットワーク装置５をいつソフトウェア更新するのかを示すスケジュール（更新スケジュール情報５００）を生成する。
【００６９】
図１０は、更新スケジュール生成部１０５による更新スケジュール情報５００の生成を説明するための図である。
更新スケジュール生成部１０５は、全ネットワーク装置更新指示２５に含まれる「ソフトウェア更新開始時刻」と「ソフトウェア更新間隔」に基づき、各ソフトウェア更新回の「ソフトウェア更新実行時刻」を決定する。また、更新スケジュール生成部１０５は、同時ソフトウェア更新台数情報４００に基づき、各回ごとに、各ブロックにおいて同時にソフトウェア更新する台数分だけ、各ブロック内のネットワーク装置５を選択する。図１０に示す例では、ブロック１は、同時ソフトウェア更新台数が「２（台）」であるので、ブロック１内のネットワーク装置「１」「２」を１回目に選択し、２回目にネットワーク装置「３」「４」を選択するようにする。また、ブロック２は、同時ソフトウェア更新台数が「５（台）」であるので、ブロック２内のネットワーク装置「１１」「１２」「１３」「１４」「１５」を１回目に選択し、２回目にネットワーク装置「１６」「１７」「１８」「１９」「２０」を選択するようにする。更新スケジュール情報５００の生成に関し、各ブロック内において、どのネットワーク装置５をどの順番で更新するかは任意に設定することができる。例えば、図１０のように昇順でもよいし、降順でもよいし、ランダムに選択することも可能である。
また、ソフトウェア更新間隔は、特に指定をしない場合であっても、各ソフトウェア更新回において、すべてのブロックのソフトウェア更新が完了した場合に、次回のソフトウェア更新を開始するように設定してもよい。
【００７０】
図７に戻り、ソフトウェア更新実行部１０３Ｂは、更新スケジュール生成部１０５が生成した更新スケジュール情報５００（図１０）に基づき、各ソフトウェア更新回に割り振られているネットワーク装置５のソフトウェア更新を並列で実行する。
なお、ソフトウェア更新実行部１０３Ｂは、第１実施形態のソフトウェア更新実行部１０３と同様に、該当するソフトウェア更新対象装置（現用装置）が処理を行っているトラヒックを、同じブロック内の予備装置に移行させ、ソフトウェア更新用のコマンドファイルで示されるコマンドを実行し、必要に応じてソフトウェア更新用のイメージファイルを転送する。そして、ソフトウェア更新実行部１０３Ｂは、予備装置に移行していたトラヒックを、ソフトウェアの更新後の現用装置に戻す。
【００７１】
図１１は、ソフトウェア更新実行部１０３Ｂによる、ソフトウェア更新回ごとに並列で行われる各ブロックのソフトウェア更新を説明するための図である。
図１１に示すように、１回目のソフトウェア更新においては、ブロック１では、例えば、ネットワーク装置「１」「２」の２台が同時にソフトウェア更新される。ブロック２では、例えば、ネットワーク装置「１１」「１２」「１３」「１４」「１５」の５台が同時にソフトウェア更新される。ブロック３以降も同様である。
そして、１回目のソフトウェア更新がすべて完了すると、ソフトウェア更新実行部１０３Ｂは、２回目以降のソフトウェア更新を更新スケジュール情報５００に従って自動的に実行する。
【００７２】
≪処理の流れ≫
次に、ソフトウェア更新管理装置１Ｂの処理の流れについて説明する。
図１２は、本発明の第２実施形態に係るソフトウェア更新管理装置１Ｂの処理の流れを示すフローチャートである。
ここでは、制御対象のネットワークを１つ以上のブロックに分割した情報が、ブロック管理情報１００（図３）として、ソフトウェア更新管理装置１の記憶部１２に予め記憶されているものとする。また、不稼働率情報１５０として、ネットワーク全体の目標不稼働率（αtarget）と、各ネットワーク装置５の装置単体の不稼働率（α）とが予め記憶部１２に記憶されているものとする。
【００７３】
まず、ソフトウェア更新管理装置１Ｂ（更新指示受信部１０１）は、オペレータ端末（図示省略）等から、制御対象となるネットワーク内のすべてのネットワーク装置５を一括でソフトウェア更新する指示情報である全ネットワーク装置更新指示２５（図１０参照）を受け付ける（ステップＳ２０）。そして、更新指示受信部１０１は、受け付けた全ネットワーク装置更新指示２５を、同時更新台数算出部１０４に出力する。
【００７４】
続いて、同時更新台数算出部１０４は、ネットワーク全体の目標不稼働率を満たした上で、１回のソフトウェア更新で実行できる最大のソフトウェア更新台数をブロック毎に算出し、同時ソフトウェア更新台数情報４００（図８）を生成する。
このとき、同時更新台数算出部１０４は、装置単体の不稼働率（α）と、各ブロックに属する現用装置と予備装置を示す情報であるブロック管理情報１００（図８）とを用いて、ネットワーク全体の不稼働率を計算する。そして、同時更新台数算出部１０４は、ネットワーク全体の不稼働率（Ｗ）が、ネットワーク全体の目標不稼働率（αtarget）に最も近づく最大の同時ソフトウェア更新台数（Ｒ）を各ブロックについて算出する（ステップＳ２１）。
【００７５】
次に、更新スケジュール生成部１０５は、同時更新台数算出部１０４が生成した同時ソフトウェア更新台数情報４００（図８）を用いて、１回のソフトウェア更新で各ブロックにおいて同時に実行できるソフトウェア更新台数を決定し、更新スケジュール情報５００（図１０）を生成する（ステップＳ２２）。このとき、更新スケジュール生成部１０５は、全ネットワーク装置更新指示２５に含まれる「ソフトウェア更新開始時刻」と「ソフトウェア更新間隔」に基づき、各ソフトウェア更新回の「ソフトウェア更新実行時刻」を決定する。
【００７６】
そして、ソフトウェア更新実行部１０３Ｂは、記憶部１２内の更新スケジュール情報５００（図１０）の「ソフトウェア更新実行時刻」を監視し、現在時刻がソフトウェア更新実行時刻に設定されている時刻になったか否かを判定する（ステップＳ２３）。
ソフトウェア更新実行部１０３Ｂは、現在時刻がソフトウェア更新実行時刻ではないと判定した場合（ステップＳ２３→Ｎｏ）、ソフトウェア更新実行時刻になるまで待つ。一方、現在時刻がソフトウェア更新実行時刻であると判定した場合には（ステップＳ２３→Ｙｅｓ）、次のステップＳ２４に進む。
【００７７】
次に、ソフトウェア更新実行部１０３Ｂは、前回のソフトウェア更新回が存在する場合に、そのソフトウェア更新回におけるソフトウェア更新が、すべてのブロックにおいて完了しているかを判定する（ステップＳ２４）。
ここで、ソフトウェア更新実行部１０３Ｂは、まだ、ソフトウェア更新が完了していないブロックがある場合には（ステップＳ２４→Ｎｏ）、そのブロックの当該ネットワーク更新回におけるネットワーク装置５のネットワーク更新が完了するまで待つ。一方、すべてのブロックにおいて前回のネットワーク更新が完了している場合には（ステップＳ２４→Ｙｅｓ）、次のステップＳ２５に進む。
【００７８】
ステップＳ２５において、ソフトウェア更新実行部１０３Ｂは、記憶部１２内の更新スケジュール情報５００に基づき、当該ネットワーク更新回においてブロック毎に設定された台数のネットワーク装置５のソフトウェア更新を並列で実行する。
なお、このとき、ソフトウェア更新実行部１０３Ｂは、第１実施形態のソフトウェア更新実行部１０３と同様に、更新対象となるネットワーク装置５が現用装置か予備装置かを判定し、現用装置の場合はトラヒックを予備装置に移行させた上で、ソフトウェア更新を実行する。
【００７９】
続いて、ソフトウェア更新実行部１０３Ｂは、更新スケジュール情報５００で設定されたすべてのソフトウェア更新回の処理を終了したか否かを判定する（ステップＳ２６）。つまり、制御対象のネットワーク内のすべてのネットワーク装置５のソフトウェア更新が終了したか否かを判定する。
ここで、まだ実行していないソフトウェア更新回がある場合には（ステップＳ２６→Ｎｏ）、ステップＳ２３に戻り処理を続ける。一方、すべてのソフトウェア更新回の処理を終了した場合には（ステップＳ２６→Ｙｅｓ）、制御対象のネットワーク内のすべてのネットワーク装置５のソフトウェア更新が完了したものとして、ソフトウェア更新処理を終了する。
【００８０】
≪実験例≫
次に、第２実施形態に係るソフトウェア更新管理装置１Ｂが実行する更新スケジュールの自動化手法の実験例について説明する。
【００８１】
図１３は、第２実施形態に係るソフトウェア更新管理装置１Ｂが制御対象とするネットワークの構成例を示す図である。
制御対象とするネットワークは、現用装置（ＡＣＴ）と予備装置（ＳＢＹ）を備える５つのブロック（ブロック１〜５）に分割されるものとする。図１３に示すように、ブロック１は、現用装置（ＡＣＴ）が２００台、予備装置（ＳＢＹ）が２０台である。ブロック２は、現用装置（ＡＣＴ）が５０台、予備装置（ＳＢＹ）が１５台である。ブロック３は、現用装置（ＡＣＴ）が５０台、予備装置（ＳＢＹ）が１０台である。ブロック４は、現用装置（ＡＣＴ）が３０台、予備装置（ＳＢＹ）が１０台である。ブロック５は、現用装置（ＡＣＴ）が１０台、予備装置（ＳＢＹ）が１０台である。
ネットワーク装置５の装置単体の不稼働率（α）は、α＝0.0002である。ここで、ＭＴＢＦ［ｈ］＝200,000、ＭＴＴＲ［ｈ］＝48とする。また、ネットワーク全体の目標不稼働率（αtarget）は、αtarget ＝0.000001とする。
【００８２】
この条件において、ソフトウェア更新管理装置１Ｂの同時更新台数算出部１０４は、上記した（式２）〜（式４）を用いて計算することにより、図１４に示すような結果を得た。図１４に示すように、ネットワーク全体の不稼働率（Ｗ）は、「0.000000891」であり、ネットワーク全体の目標不稼働率（αtarget）以下である。そして、同時ソフトウェア更新台数は、ブロック１は「１７（台）」、ブロック２は「１３（台）」、ブロック３は「８（台）」、ブロック４は、「８（台）」、ブロック５は「８（台）」であった。
【００８３】
図１５は、特に計画を行わず、各ブロックの予備装置をすべて利用してソフトウェア更新を実行した場合（「従来手法」と称する。）と、本発明の第２実施形態に係るソフトウェア更新管理装置１Ｂによる更新スケジュールを実行した場合（「本発明の手法」と称する。）を比較した図である。
従来手法では、ネットワーク全体の不稼働率（Ｗ）は「0.066」でありネットワーク全体の目標不稼働率（αtarget）を上回る結果となった。本発明の手法では、従来手法と比較して、ソフトウェア更新回数は増加するが、ネットワーク全体の目標不稼働率（αtarget）以下にネットワーク全体の不稼働率（Ｗ）を抑えた上で、各ブロックの同時ソフトウェア更新台数を求めることができた。
【００８４】
以上説明したように、本発明の第２実施形態に係るソフトウェア更新管理装置１Ｂによれば、ソフトウェア更新作業時のネットワーク全体の信頼性を確保しつつ、ソフトウェア更新作業の効率化を実現することができる。つまり、ソフトウェア更新管理装置１Ｂによれば、ネットワーク全体の目標不稼働率（αtarget）を超えない範囲で、ソフトウェア更新に要する時間を最も短縮できるソフトウェア更新のスケジュールを生成して実行することが可能となる。
【符号の説明】
【００８５】
１，１Ａ，１Ｂ      ソフトウェア更新管理装置
５      ネットワーク装置
１０    制御部
１１    入出力部
１３    記憶部
１００  ブロック管理情報
１０１  更新指示受信部
１０２  ソフトウェア更新情報生成部
１０３，１０３Ｂ  ソフトウェア更新実行部
１０４  同時更新台数算出部
１０５  更新スケジュール生成部
１５０  不稼働率情報
２００  ソフトウェア更新情報
３００  更新台数毎ブロック内不稼働率情報
４００  同時ソフトウェア更新台数情報
５００  更新スケジュール情報
【図１】
2020136840.tif 000009
【図２】
2020136840.tif 000010
【図３】
2020136840.tif 000011
【図４】
2020136840.tif 000012
【図５】
2020136840.tif 000013
【図６】
2020136840.tif 000014
【図７】
2020136840.tif 000015
【図８】
2020136840.tif 000016
【図９】
2020136840.tif 000017
【図１０】
2020136840.tif 000018
【図１１】
2020136840.tif 000019
【図１２】
2020136840.tif 000020
【図１３】
2020136840.tif 000021
【図１４】
2020136840.tif 000022
【図１５】
2020136840.tif 000023
【図１６】
2020136840.tif 000024