(57)【要約】【課題】冗長性を確保しつつ装置の大型化を抑制すること。【解決手段】二重化システムは、現用装置と待機装置とを有するとともに、現用装置及び待機装置の間で二重化されたデータを更新する。現用装置は、二重化されたデータのうち一方のデータを保持する現用側記憶部と、一方のデータを更新する現用側更新部と、一方のデータの更新位置と当該更新位置における一方のデータの更新値とを待機装置へ書き込む書込み部とを備える。待機装置は、二重化されたデータのうち他方のデータを保持する待機側記憶部と、現用装置から書き込まれた更新位置と更新値とを対応付けて保持する更新情報記憶部とを備える。さらに、待機装置が、更新位置に対応する位置における他方のデータの値を当該更新位置に対応付けられた更新値で更新する待機側更新部を備える。【選択図】図１
2011253242.tif 000002
【特許請求の範囲】
【請求項１】
現用装置と待機装置とを有する二重化システムであって、
前記現用装置が、
二重化されたデータのうち一方のデータを保持する現用側記憶部と、
前記一方のデータを更新する現用側更新部と、
前記一方のデータの更新位置と当該更新位置における前記一方のデータの更新値とを前記待機装置へ書き込む書込み部と
を備え、
前記待機装置が、
前記二重化されたデータのうち他方のデータを保持する待機側記憶部と、
前記現用装置から書き込まれた更新位置と更新値とを対応付けて保持する更新情報記憶部と、
前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新する待機側更新部と
を備えたことを特徴とする二重化システム。
【請求項２】
前記更新情報記憶部は、前記更新位置と前記更新値との書き込みが完了したか否かを示す現用側更新完了フラグをさらに保持し、
前記待機側更新部は、前記更新情報記憶部を参照し、前記現用側更新完了フラグが完了を示す場合に、前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新することを特徴とする請求項１に記載の二重化システム。
【請求項３】
前記待機装置が、
前記現用装置の動作状態を所定の周期で監視する動作監視部をさらに備え、
前記待機側更新部は、前記所定の周期で前記更新情報記憶部を参照し、前記現用側更新完了フラグが完了を示す場合に、前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新することを特徴とする請求項２に記載の二重化システム。
【請求項４】
待機装置とともに二重化される現用装置であって、
二重化されたデータのうち一方のデータを保持する現用側記憶部と、
前記一方のデータを更新する現用側更新部と、
前記一方のデータの更新位置と当該更新位置における更新値とを前記待機装置へ書き込む書き込み部と
を備えたことを特徴とする現用装置。
【請求項５】
現用装置とともに二重化される待機装置であって、
二重化されたデータのうち一方のデータを保持する待機側記憶部と、
前記現用装置から書き込まれた前記二重化されたデータのうち他方のデータの更新位置と更新値とを対応付けて保持する更新情報記憶部と、
前記更新位置に対応する位置における前記一方のデータの値を当該更新位置に対応付けられた前記更新値で更新する待機側更新部と
を備えたことを特徴とする待機装置。
【請求項６】
二重化されたデータのうち一方のデータを現用側記憶部に保持する現用装置と他方のデータを待機側記憶部に保持する待機装置とを有する二重化システムにおけるデータ更新方法であって、
前記現用装置が、
前記一方のデータを更新する現用側更新ステップと、
前記一方のデータの更新位置と当該更新位置における更新値とを前記待機装置へ書き込む書込みステップと
を含み、
前記待機装置が、
前記現用装置から書き込まれた更新位置と更新値とを対応付けて保持する更新情報記憶部に保持される前記更新位置と前記更新値とを読み出し、前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新する待機側更新ステップ
を含んだことを特徴とするデータ更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二重化システム、現用装置、待機装置及びデータ更新方法に関する。
【背景技術】
【０００２】
二重化したＭＣＵ（Micro Controller Unit）の一方を現用装置として動作させるとともに他方を待機装置として待機させ、必要に応じて待機装置を現用化することで、システムの冗長性を保障するコールドスタンバイ（cold standby）という手法が知られている。このコールドスタンバイを採用する場合には、現用装置の障害発生時に現用装置と同一のデータを用いて待機装置を現用化する。そのため、現用装置内で保持したデータの更新が行われるたびに、現用装置が更新後のデータを待機装置へ書き込む。
【０００３】
このようなデータの更新手法について説明する。図９は、従来のデータ更新手法（その１）を説明するための図である。図９に示すデータ更新手法では、ハードの設定変更等が行われると、現用装置のＣＰＵ（Central Processing Unit）は、自装置内のＤＢ（Database）に保持された設定情報（Provisioning情報）を更新する（図９の（１）参照）。そして、現用装置のＣＰＵは、装置間通信を実行し、更新後の設定情報を待機装置内のＤＢへ書き込む（図９の（２）参照）。これにより、待機装置内の設定情報が更新される。
【０００４】
ここで、図９で説明したデータ更新手法では、待機装置内のＤＢへの書き込みが未だ完了していない場合に、現用装置に障害が発生すると、待機装置内のＤＢに保持された設定情報が破壊される。設定情報が破壊されると、待機装置の現用化が妨げられるため、システムの冗長性が失われる。
【０００５】
このような事態を回避するための手法として、設定情報の安全性を高めたデータ更新手法が知られている。図１０は、従来のデータ更新手法（その２）を説明するための図である。図１０に示す例では、待機装置側にメインＤＢとサブＤＢとの２つのＤＢが設けられている。図１０に示すデータ更新手法では、ハードの設定変更等が行われると、現用装置のＣＰＵは、自装置内のＤＢに保持された設定情報を更新する（図１０の（１）参照）。そして、現用装置のＣＰＵは、装置間通信を実行し、更新後の設定情報を待機装置内のメインＤＢへ書き込む（図１０の（２）参照）。メインＤＢへの書込みが完了すると、現用装置のＣＰＵは、装置間通信を実行し、メインＤＢへ書き込まれた設定情報を待機装置内のサブＤＢへ複写する（図１０の（３）参照）。その後、現用装置のＣＰＵは、自装置内のＤＢに保持された設定情報を更新するたびに、メインＤＢへの書込み処理及びメインＤＢからサブＤＢへの複写処理を実行する。これにより、現用装置の障害発生によってメインＤＢ又はサブＤＢに保持された設定情報が破壊されたとしても、待機装置は、サブＤＢ又はメインＤＢに保持された設定情報を用いて現用化することができる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平８−２２１２８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記２つのＤＢを用いてデータ更新を行う従来の手法では、設定情報の安全性を高めてシステムの冗長性を確保することができる一方で、２つのＤＢを収容するための記憶領域が増大し、装置全体が大型化するという問題がある。
【０００８】
開示の技術は、上記に鑑みてなされたものであって、冗長性を確保しつつ装置の大型化を抑制することができる二重化システム、現用装置、待機装置及びデータ更新方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本願の開示する二重化システムは、現用装置と待機装置とを有する二重化システムである。前記現用装置が、二重化されたデータのうち一方のデータを保持する現用側記憶部と、前記一方のデータを更新する現用側更新部と、前記一方のデータの更新位置と当該更新位置における前記一方のデータの更新値とを前記待機装置へ書き込む書込み部とを備える。前記待機装置が、前記二重化されたデータのうち他方のデータを保持する待機側記憶部と、前記現用装置から書き込まれた更新位置と更新値とを対応付けて保持する更新情報記憶部とを備える。さらに、前記待機装置が、前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新する待機側更新部を備える。
【発明の効果】
【００１０】
本願の開示する二重化システムの一つの態様によれば、冗長性を確保しつつ装置の大型化を抑制することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る二重化システムに含まれる各装置の構成を示すブロック図である。
【図２】図２は、実施例２に係るデータ更新方法について説明するための図である。
【図３】図３は、実施例２に係る二重化システムのシステム構成を示す図である。
【図４】図４は、実施例２に係る現用系のＭＣＵ及び待機系のＭＣＵの構成を示すブロック図である。
【図５】図５は、更新情報バッファに保持される情報の一例を示す図である。
【図６】図６は、実施例２に係る現用系のＭＣＵによる処理手順を示すフローチャートである。
【図７】図７は、実施例２に係る待機系のＭＣＵによる処理手順を示すフローチャートである。
【図８】図８は、更新情報バッファの更新態様を示す図である。
【図９】図９は、従来のデータ更新手法（その１）を説明するための図である。
【図１０】図１０は、従来のデータ更新手法（その２）を説明するための図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する二重化システム、現用装置、待機装置及びデータ更新方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。
【実施例１】
【００１３】
図１は、実施例１に係る二重化システムに含まれる各装置の構成を示すブロック図である。図１に示す二重化システム１は、現用装置３と待機装置５とが二重化されるとともに、現用装置３及び待機装置５の間で二重化されたデータを更新する。
【００１４】
現用装置３は、現用側記憶部３ａと、現用側更新部３ｂと、書込み部３ｃとを有する。現用側記憶部３ａは、二重化されたデータのうち一方のデータを保持する。現用側更新部３ｂは、現用側記憶部３ａに保持されたデータを更新する。書込み部３ｃは、現用側更新部３ｂによって更新されたデータの更新位置と当該更新位置におけるデータの更新値とを待機装置５へ書き込む。
【００１５】
また、待機装置５は、待機側記憶部５ａと、更新情報記憶部５ｂと、待機側更新部５ｃとを有する。待機側記憶部５ａは、二重化されたデータのうち他方のデータを保持する。更新情報記憶部５ｂは、現用装置３から書き込まれた更新位置と更新値とを対応付けて保持する。待機側更新部５ｃは、更新情報記憶部５ｂに保持される更新位置と更新値とを読み出し、読み出した更新位置に対応する位置における待機側記憶部５ａ内の他方のデータの値を当該更新位置に対応付けられた更新値で更新する。
【００１６】
このように、本実施例に係る二重化システム１では、現用装置３が更新後のデータの更新位置及び更新値のみを待機装置５の更新情報記憶部５ｂへ書き込み、書き込まれた更新位置及び更新値を用いて待機装置５が自身の保持するデータを更新する。このため、本実施例に係る二重化システム１では、現用装置３が更新後のデータを待機装置５の待機側記憶部５ａに直接書き込むことを不要化して待機装置５の保持するデータが破壊されることを回避し、冗長性を確保することができる。また、本実施例に係る二重化システム１では、更新位置及び更新値のみを保持する更新情報記憶部５ｂのサイズを待機側記憶部５ａと比して小さくすることができ、従来のようにデータを保持する記憶部を２つ設ける構成よりも装置全体を小型化することができる。すなわち、本実施例に係る二重化システム１によれば、冗長性を確保しつつ装置の大型化を抑制することが可能になる。
【実施例２】
【００１７】
続いて、実施例２に係る二重化システムについて説明する。まず、実施例２に係る二重化システムによるデータ更新方法について簡単に説明する。図２は、実施例２に係る二重化システムによるデータ更新方法について説明するための図である。
【００１８】
図２に示すように、本実施例に係る二重化システムでは、ハードの設定変更等が行われると、現用装置のＣＰＵは、自装置内の設定情報ＤＢに保持された設定情報を更新する（図２の（１）参照）。そして、現用装置のＣＰＵは、装置間通信を実行し、更新後の設定情報の更新位置と当該更新位置における設定情報の更新値とを待機装置へ書き込む（図２の（２）参照）。一方、待機装置のＣＰＵは、現用装置から書き込まれた更新位置と更新値とを対応付けて保持する更新情報バッファを定期的に参照する。そして、待機装置のＣＰＵは、更新情報バッファから更新位置と更新値とを読み出し、更新位置に対応する位置における設定情報ＤＢ内の設定情報の値を当該更新位置に対応付けられた更新値で更新する（図２の（３）参照）。
【００１９】
このように、本実施例に係るデータ更新方法では、現用装置が更新後の設定情報の更新位置及び更新値のみを待機装置の更新情報バッファへ書き込み、書き込まれた更新位置及び更新値を用いて待機装置が自身の保持する設定情報を更新する。
【００２０】
次に、実施例２に係る二重化システムのシステム構成を説明する。図３は、実施例２に係る二重化システムのシステム構成を示す図である。図３に示すように、二重化システム１０は、光通信用の伝送装置１００に搭載されており、現用系のＭＣＵ（Micro Controller Unit）３０と、待機系のＭＣＵ５０とを有する。なお、ここでは、ＭＣＵ３０が現に使用される現用装置として動作し、ＭＣＵ５０が将来の現用化を待機する待機装置として動作する場合を想定して以下の説明を行うこととする。
【００２１】
これらＭＣＵ３０及びＭＣＵ５０は、ＯＳ（Operating System）２０から受け取るコマンドを基に複数のＬＩＵ（Line Interface Unit）７０を管理する管理装置である。ＭＣＵ３０及びＭＣＵ５０は、コールドスタンバイ構成を採用しており、伝送装置１００内のスロットとＬＩＵ７０との接続関係や、ＬＩＵ７０どうしの接続関係等を示す設定情報を保持する。このようにコールドスタンバイ構成を採用する場合には、ＭＣＵ３０の障害発生時にＭＣＵ５０が代わって動作できるように、ＭＣＵ３０及びＭＣＵ５０の間で設定情報の同期がなされる。
【００２２】
ＭＣＵ３０及びＭＣＵ５０は、ＯＳ２０と、複数のＬＩＵ７０と通信可能に接続される。ＯＳ２０は、伝送装置１００内部のハードウェア構成の管理操作等を行う基本ソフトウェアである。ＯＳ２０は、ＬＩＵ７０がスロットに新設された等のハードウェア構成の設定変更をユーザから受け付けると、設定変更の内容を含む設定更新コマンドをＭＣＵ３０に通知する。ＬＩＵ７０は、伝送装置１００と外部の他の伝送装置との間で各種のデータの送受信を行うインターフェースである。
【００２３】
次に、本実施例に係る現用系のＭＣＵ３０及び待機系のＭＣＵ５０の構成について説明する。図４は、実施例２に係る現用系のＭＣＵ３０及び待機系のＭＣＵ５０の構成を示すブロック図である。以下では、現用系のＭＣＵ３０の構成について説明した後に、待機系のＭＣＵ５０の構成について説明する。
【００２４】
まず、現用系のＭＣＵ３０の構成について説明する。図４に示すように、現用系のＭＣＵ３０は、現用側Ｉ／Ｆ部３１と、現用側ポート部３２と、切替制御部３３と、ＭＣＵ間通信部３４と、設定情報ＤＢ３５と、現用側更新部３６と、更新情報書込み部３７とを有する。
【００２５】
現用側Ｉ／Ｆ部３１は、設定更新コマンドをＯＳ２０から受け付けると、受け付けた設定更新コマンドを切替制御部３３及び現用側更新部３６へ通知する。現用側ポート部３２は、複数のＬＩＵ７０と接続される物理ポート群である。
【００２６】
切替制御部３３は、現用側Ｉ／Ｆ部３１を介してＯＳ２０から設定変更コマンドを受け付けると、設定変更コマンドに従って物理ポートの切替制御を実施する。例えば、切替制御部３３は、設定変更コマンドに従って、現用側ポート部３２の物理ポートを切り替えて、伝送装置１００内のスロットと新設のＬＩＵ７０との接続を確立する。また、例えば、切替制御部３３は、設定変更コマンドに従って、現用側ポート部３２の物理ポートを切り替えて、既設のＬＩＵ７０と新設のＬＩＵ７０との接続を確立する。
【００２７】
ＭＣＵ間通信部３４は、現用系のＭＣＵ３０と待機系のＭＣＵ５０との間で通信リンクを構築し、構築した通信リンクを通じて各種のデータを送受信する。例えば、ＭＣＵ間通信部３４は、後述する更新情報書込み部３７が待機系のＭＣＵ５０に書き込む更新情報を待機系のＭＣＵ５０側に送信する。
【００２８】
設定情報ＤＢ３５は、現用系のＭＣＵ３０と待機系のＭＣＵ５０との間で二重化された設定情報のうち一方の設定情報を保持するデータベースである。例えば、設定情報ＤＢ３５は、伝送装置１００内のスロットと各ＬＩＵ７０との接続関係や、ＬＩＵ７０どうしの接続関係等を設定情報として保持する。
【００２９】
現用側更新部３６は、現用側Ｉ／Ｆ部３１を介してＯＳ２０から設定更新コマンドを受け付けると、設定更新コマンドに従って設定情報の更新処理を実施する。例えば、現用側更新部３６は、設定更新コマンドに従って、伝送装置１００内のスロットと新設のＬＩＵ７０との接続関係を設定情報ＤＢ３５に保持済みの設定情報に上書き登録することにより、設定情報ＤＢ３５に保持された設定情報を更新する。また、例えば、現用側更新部３６は、設定更新コマンドに従って、新設のＬＩＵ７０と既設のＬＩＵ７０との接続関係を設定情報ＤＢ３５に保持済みの設定情報に上書き登録することにより、設定情報ＤＢ３５に保持された設定情報を更新する。
【００３０】
更新情報書込み部３７は、設定情報の更新アドレスと当該更新アドレスにおける設定情報の更新値とを更新情報としてＭＣＵ間通信部３４を介して待機側のＭＣＵ５０へ書き込む。ここで、更新アドレスとは、設定情報ＤＢ３５の記憶領域のうち設定情報の更新部分が保持された記憶領域のアドレス（位置）を指す。また、更新値とは、現用側更新部３６によって更新された設定情報の更新部分のデータ値を指す。なお、更新情報書込み部３７によって行われる処理については、後に詳細に説明する。
【００３１】
次いで、待機系のＭＣＵ５０の構成について説明する。待機系のＭＣＵ５０は、待機側Ｉ／Ｆ部５１と、待機側ポート部５２と、切替制御部５３と、ＭＣＵ間通信部５４と、設定情報ＤＢ５５と、更新情報バッファ５６と、待機側更新部５７と、動作監視部５８と、起動処理部５９とを有する。
【００３２】
このうち、待機側Ｉ／Ｆ部５１、待機側ポート部５２及び切替制御部５３は、それぞれ現用系のＭＣＵ３０の現用側Ｉ／Ｆ部３１、現用側ポート部３２及び切替制御部３３と同様の機能を発揮する処理部である。これら待機側Ｉ／Ｆ部５１、待機側ポート部５２及び切替制御部５３は、現用系と待機系との系の切り替えが行われるまでは動作しない。
【００３３】
ＭＣＵ間通信部５４は、現用系のＭＣＵ３０と待機系のＭＣＵ５０との間で通信リンクを構築し、構築した通信リンクを通じて各種のデータを送受信する。例えば、ＭＣＵ間通信部５４は、現用系のＭＣＵ３０により書き込まれる更新情報を受信して更新情報バッファ５６へ出力する。
【００３４】
設定情報ＤＢ５５は、現用系のＭＣＵ３０と待機系のＭＣＵ５０との間で二重化された設定情報のうち他方の設定情報を保持するデータベースである。例えば、設定情報ＤＢ５５は、伝送装置１００内のスロットと各ＬＩＵ７０との接続関係や、ＬＩＵ７０どうしの接続関係等を設定情報として保持する。
【００３５】
更新情報バッファ５６は、ＭＣＵ３０及びＭＣＵ５０の間で設定情報の同期をとるために用いられるバッファである。更新情報バッファ５６は、現用系のＭＣＵ３０から書き込まれた更新情報に含まれている更新アドレスと更新値とを対応付けて保持する。
【００３６】
図５は、更新情報バッファ５６に保持される情報の一例を示す図である。図５に示す更新情報バッファ５６は、各アドレス０Ｘ０００〜０Ｘ１Ｆ０に、現用側更新開始アドレス、現用側更新終了アドレス、現用側更新開始フラグ、現用側更新完了フラグ、更新アドレス、更新値、待機側更新中フラグ及び待機側更新開始アドレスを保持する。
【００３７】
「現用側更新開始アドレス」は、更新情報バッファ５６の記憶領域うち更新アドレス及び更新値が実際に書き込まれた開始点のアドレスを指す。「現用側更新終了アドレス」は、更新情報バッファ５６の記憶領域のうち更新アドレス及び更新値が実際に書き込まれた終点のアドレスを指す。
【００３８】
「現用側更新開始フラグ」は、現用系のＭＣＵ３０から更新アドレス及び更新値の書込みが開始されたか否かを示すフラグである。例えば、現用側更新開始フラグがＯＮである場合には現用系のＭＣＵ３０から更新アドレス及び更新値の書込みが開始されたことを表し、現用側更新開始フラグがＯＦＦである場合には更新アドレス及び更新値の書込みが開始されていないことを表す。
【００３９】
「現用側更新完了フラグ」は、現用系のＭＣＵ３０から更新アドレス及び更新値の書込みが完了したか否かを示すフラグである。例えば、現用側更新完了フラグがＯＮである場合には現用系のＭＣＵ３０からの更新アドレス及び更新値の書込みが完了したことを表し、現用側更新完了フラグがＯＦＦである場合には現用系のＭＣＵ３０からの更新アドレス及び書込みが完了していないことを表す。
【００４０】
「更新アドレス」は、現用系のＭＣＵ３０から書き込まれた更新アドレスである。「更新値」は、現用系のＭＣＵ３０から書き込まれた更新値である。
【００４１】
「待機側更新中フラグ」は、後述する待機側更新部５７による設定情報ＤＢ５５の更新処理が実行されているか否かを示すフラグである。例えば、待機側更新中フラグがＯＮである場合には待機側更新部５７による設定情報ＤＢ５５の更新処理が実行されていることを表し、待機側更新中フラグがＯＦＦである場合には待機側更新部５７による設定情報ＤＢ５５の更新処理が実行されていないことを表す。
【００４２】
「待機側更新開始アドレス」は、現用側更新開始アドレスから現用側更新終了アドレスに至る更新情報バッファ５６の記憶領域に保持された更新アドレス及び更新値が待機側更新部５７により読み出された場合に現用側更新開始アドレスが複写される記憶領域である。この待機側更新開始アドレスは、待機側更新部５７による設定情報ＤＢ５５の更新処理が完了した場合に、現用系のＭＣＵ３０が次の更新情報をどのアドレスから書き込めばよいかを表すものである。
【００４３】
図４の説明に戻り、待機側更新部５７は、更新情報バッファ５６に保持される更新アドレスと更新値を用いて設定情報ＤＢ５５に保持された設定情報を更新する。なお、待機側更新部５７によって行われる処理については、後に詳細に説明する。
【００４４】
動作監視部５８は、現用系のＭＣＵ３０の動作状態を所定の周期で監視し、現用系のＭＣＵ３０の障害の有無を検知する。例えば、動作監視部５８は、動作中のＭＣＵ３０が取り外された場合等にＭＣＵ３０の障害を検知する。また、動作監視部５８は、現用系のＭＣＵ３０の監視結果を待機側更新部５７及び起動処理部５９に通知する。
【００４５】
起動処理部５９は、動作監視部５８によって現用系のＭＣＵ３０の障害が検知された場合に、ＭＣＵ５０を待機系から現用系に切り替える起動処理を実行する。例えば、起動処理部５９は、設定情報ＤＢ５５から読み出した設定情報を用いて切替制御部５３等を起動させて、物理ポートの切替制御を実施させる。
【００４６】
次に、本実施例に係る二重化システム１０による処理手順を説明する。ここでは、現用系のＭＣＵ３０による処理手順を説明した後に、待機系のＭＣＵ５０による処理手順を説明することとする。図６は、実施例２に係る現用系のＭＣＵ３０による処理手順を示すフローチャートである。図７は、実施例２に係る待機系のＭＣＵ５０による処理手順を示すフローチャートである。図８は、更新情報バッファ５６の更新態様を示す図である。
【００４７】
まず、現用系のＭＣＵ３０による処理手順を説明する。図６に示すように、まず、ＭＣＵ３０は、ＯＳ２０から設定更新コマンドを受け付けたか否かを判定する（ステップＳ１１）。ＯＳ２０から設定更新コマンドを受け付けていない場合には（ステップＳ１１否定）、ＭＣＵ３０はそのまま待機する。一方、ＯＳ２０から設定更新コマンドを受け付けた場合には（ステップＳ１１肯定）、ＭＣＵ３０の切替制御部３３は、設定更新コマンドに従って物理ポートの切替制御を実施する（ステップＳ１２）。続いて、現用側更新部３６は、設定変更コマンドに従って、設定情報ＤＢ３５に保持された設定情報の更新を行う（ステップＳ１３）。
【００４８】
続いて、更新情報書込み部３７は、待機系のＭＣＵ５０の更新情報バッファ５６を参照し、待機側更新中フラグがＯＮであるか否かを判定する（ステップＳ１４）。待機側更新中フラグがＯＮである場合には（ステップＳ１４肯定）、更新情報書込み部３７は、所定の時間、例えば１秒だけ待機し（ステップＳ１５）、待機側更新中フラグがＯＮであるか否かを再度判定する（ステップＳ１４）。
【００４９】
一方、待機側更新中フラグがＯＦＦである場合には（ステップＳ１４否定）、更新情報書込み部３７は、待機系のＭＣＵ５０の更新情報バッファ５６を参照し、現用側更新完了フラグがＯＮであるか否かを判定する（ステップＳ１６）。現用側更新完了フラグがＯＮである場合には（ステップＳ１６肯定）、更新情報書込み部３７は、更新情報バッファ５６から現用側更新終了アドレスを取得する（ステップＳ１８）。現用側更新完了フラグがＯＮである場合に現用側更新終了アドレスを取得することで、更新情報書込み部３７は、前回の更新情報を書き込んだアドレスに継続して今回の更新情報を書き込むことができる。
【００５０】
一方、現用側更新完了フラグがＯＦＦである場合には（ステップＳ１６否定）、更新情報書込み部３７は、更新情報バッファ５６から待機側更新開始アドレスを取得する（ステップＳ１７）。現用側更新完了フラグがＯＦＦである場合に待機側更新開始アドレスを取得することで、更新情報書込み部３７は、待機系のＭＣＵ５０側において既に読み取り済みである前回の更新情報に今回の更新情報を上書きすることができる。
【００５１】
その後、更新情報書込み部３７は、更新情報バッファ５６の現用側更新開始フラグをＯＮに設定するとともに、現用側更新完了フラグをＯＦＦに設定する（ステップＳ１９）。そして、更新情報書込み部３７は、ステップＳ１７又ステップＳ１８で取得したアドレスを書込み開始アドレスとして、更新情報（更新アドレス及び更新値）を更新情報バッファ５６に書き込む（ステップＳ２０）。
【００５２】
ここで、ステップＳ１９〜ステップＳ２０の処理により更新情報が書き込まれる前後の更新情報バッファ５６の態様を図８の（ａ）及び（ｂ）に例示する。例えば、図８の（ａ）に示すように、更新情報が書き込まれる前の更新情報バッファ５６では、現用側更新開始フラグ及び現用側更新完了フラグがＯＦＦに設定されており、待機側更新開始アドレスに初期値として「０Ｘ０２０」が保持されているとする。このような場合に、更新情報書込み部３７は、図８（ｂ）に示すように、更新情報バッファ５６の現用側更新開始フラグをＯＦＦからＯＮに設定するとともに、現用側更新完了フラグをＯＦＦに再設定する。そして、更新情報書込み部３７は、ステップＳ１７で取得した待機側更新開始アドレス「０Ｘ０２０」を書込み開始アドレスとして、更新情報（更新アドレス及び更新値）を更新情報バッファ５６に書き込む。例えば、図８の（ｂ）に示すように、更新情報バッファ５６のアドレス「０Ｘ０２０」に、更新アドレス「ａｄｄｒｅｓｓ０１」と更新値「ｄａｔａ０１」とが対応付けられて書き込まれる。また、更新情報バッファ５６のアドレス「０Ｘ０３０」に、更新アドレス「ａｄｄｒｅｓｓ０２」と更新値「ｄａｔａ０２」とが対応付けられて書き込まれる。また、更新情報バッファ５６のアドレス「０Ｘ０４０」に、更新アドレス「ａｄｄｒｅｓｓ０３」と更新値「ｄａｔａ０３」とが対応付けられて書き込まれる。
【００５３】
ステップＳ２０を終えると、更新情報書込み部３７は、更新情報バッファ５６にて更新アドレス及び更新値を実際に書き込んだ開始点のアドレス及び終点のアドレスを現用側更新開始アドレス及び現用側更新終了アドレスにそれぞれ書き込む（ステップＳ２１）。そして、更新情報書込み部３７は、更新情報バッファ５６の現用側更新開始フラグをＯＦＦに設定するとともに、現用側更新完了フラグをＯＮに設定する（ステップＳ２２）。その後、更新情報書込み部３７は、一連の処理（物理ポートの切替制御、自身の設定情報の更新及び更新情報バッファ５６への書込み）が完了した旨の応答を表示装置等に出力する（ステップＳ２３）。
【００５４】
ここで、ステップＳ２１〜Ｓ２２の処理によりアドレスが書き込まれた後の更新情報バッファ５６の態様を図８の（ｃ）に例示する。例えば、図８の（ｂ）に示すように、更新情報バッファ５６のアドレス「０Ｘ０２０」〜「０Ｘ０４０」に更新アドレス及び更新値が書き込まれたものとする。このような場合に、更新情報書込み部３７は、図８の（ｃ）に示すように、更新アドレス及び更新値を書き込んだ開始点のアドレス「０Ｘ０２０」及び終点のアドレス「０Ｘ０４０」を現用側更新開始アドレス及び現用側更新終了アドレスにそれぞれ書き込む。そして、更新情報書込み部３７は、更新情報バッファ５６の現用側更新開始フラグをＯＦＦに設定するとともに、現用側更新完了フラグをＯＮに設定する。
【００５５】
次いで、待機系のＭＣＵ５０による処理手順を説明する。図７に示すように、ＭＣＵ５０の動作監視部５８は、現用系のＭＣＵ３０の動作状態を所定の周期、例えば５００ｍｓで監視する（ステップＳ３１）。
【００５６】
動作監視部５８によって現用系のＭＣＵ３０の障害が検知されなかった場合には（ステップＳ３２否定）、待機側更新部５７は、更新情報バッファ５６を参照して、現用側更新完了フラグがＯＮであるか否かを判定する（ステップＳ３３）。現用側更新完了フラグがＯＦＦである場合には（ステップＳ３３否定）、待機側更新部５７は、処理をステップ３１に戻す。
【００５７】
一方、現用側更新完了フラグがＯＮである場合には（ステップＳ３３肯定）、待機側更新部５７は、更新情報バッファ５６の待機側更新中フラグをＯＮに設定する（ステップＳ３４）。待機側更新中フラグがＯＮに設定されることによって、ＭＣＵ３０の更新情報書込み部３７による更新情報バッファ５６の書込み処理が一時的に停止され、待機側更新部５７による更新処理中に更新情報バッファ５６内の情報が変更される事態が回避される。
【００５８】
続いて、待機側更新部５７は、更新情報バッファ５６から現用側更新開始アドレス及び現用側更新終了アドレスを取得する（ステップＳ３５）。そして、待機側更新部５７は、更新情報バッファ５６の記憶領域のうち、取得した現用側更新開始アドレスから現用側更新終了アドレスまでの記憶領域に保持された更新アドレス及び更新値を読み出す。そして、待機側更新部５７は、読み出した更新アドレスに対応するアドレスにおける設定情報ＤＢ５５内の設定情報の値を当該更新アドレスに対応付けられた更新値で更新する（ステップＳ３６）。
【００５９】
ここで、ステップＳ３４〜Ｓ３６の処理により更新アドレス及び更新値が読み出される更新情報バッファ５６の態様を図８の（ｄ）に例示する。例えば、図８の（ｃ）に示すように、更新情報バッファ５６のアドレス「０Ｘ０２０」及び「０Ｘ０４０」が現用側更新開始アドレス及び現用側更新終了アドレスにそれぞれ書き込まれているものとする。このような場合に、待機側更新部５７は、図８の（ｄ）に示すように、更新情報バッファ５６内の待機側更新中フラグをＯＦＦからＯＮに設定する。続いて、待機側更新部５７は、更新情報バッファ５６から現用側更新開始アドレス「０Ｘ０２０」及び現用側更新終了アドレス「０Ｘ０４０」を取得する。そして、待機側更新部５７は、更新情報バッファ５６の記憶領域のうち、取得したアドレス「０Ｘ０２０」からアドレス「０Ｘ０４０」までの記憶領域に保持された更新アドレス及び更新値を読み出す。そして、待機側更新部５７は、読み出した更新アドレス（例えば「ａｄｄｒｅｓｓ０１」）に対応するアドレスにおける設定情報ＤＢ５５内の設定情報の値を当該更新アドレスに対応付けられた更新値（例えば「ｄａｔａ０１」）で更新する。
【００６０】
ステップＳ３６を終えると、待機側更新部５７は、ステップＳ３５で読み出した現用側更新開始アドレスを待機側更新開始アドレスに複写する（ステップＳ３７）。その後、待機側更新部５７は、待機側更新中フラグをＯＦＦに設定するとともに、現用側更新完了フラグをＯＦＦに設定し（ステップＳ３８）、処理をステップＳ３１に戻す。
【００６１】
ここで、ステップＳ３７〜Ｓ３８の処理により待機側更新部５７による設定情報の更新処理が終了した後の更新情報バッファ５６の態様を図８の（ｅ）に例示する。図８の（ｅ）に示すように、待機側更新部５７は、更新情報バッファ５６から読み出した現用側更新開始アドレス「０Ｘ０２０」を待機側更新開始アドレスに複写する。その後、待機側更新部５７は、待機側更新中フラグをＯＦＦに設定するとともに、現用側更新完了フラグをＯＦＦに設定する。これにより、待機側更新部５７による設定情報の更新処理が終了する。
【００６２】
一方、動作監視部５８によって現用系のＭＣＵ３０の障害が検知された場合には（ステップＳ３２肯定）、起動処理部５９は、設定情報ＤＢ５５から読み出した設定情報を用いて切替制御部５３等を起動させる（ステップＳ３９）。そして、起動処理部５９は、更新情報バッファ５６を初期化し（ステップＳ４０）、処理を終了する。
【００６３】
上述してきたように、本実施例に係る二重化システム１０では、現用系のＭＣＵ３０が更新後の設定情報の更新アドレス及び更新値のみを待機系のＭＣＵ５０の更新情報バッファ５６へ書き込む。そして、待機系のＭＣＵ５０が更新情報バッファ５６に書き込まれた更新アドレス及び更新値を用いて自身の保持する設定情報を更新する。このため、本実施例に係る二重化システム１０では、現用系のＭＣＵ３０が更新後の設定情報を待機系のＭＣＵ５０の設定情報ＤＢ５５に直接書き込むことを不要化してＭＣＵ５０の保持する設定情報が破壊されることを回避し、冗長性を確保することができる。また、本実施例に係る二重化システム１０では、更新アドレス及び更新値のみを保持する更新情報バッファ５６のサイズを設定情報ＤＢ５５と比して小さくすることができ、従来のように設定情報ＤＢを２つ設ける構成よりも装置全体を小型化することができる。すなわち、本実施例に係る二重化システム１０、現用系のＭＣＵ３０及び待機系のＭＣＵ５０によれば、冗長性を確保しつつ装置の大型化を抑制することが可能になる。
【００６４】
また、本実施例に係る二重化システム１０では、待機系のＭＣＵ５０は、現用系のＭＣＵ３０による更新アドレスと更新値との書き込みが完了したか否かを示す現用側更新完了フラグを更新情報バッファ５６にさらに保持する。そして、待機系のＭＣＵ５０は、更新情報バッファ５６を参照し、現用側更新完了フラグが完了を示すＯＮである場合に、更新情報バッファ５６に書き込まれた更新アドレス及び更新値を用いて自身の保持する設定情報を更新する。このため、本実施例に係る二重化システム１０では、現用系のＭＣＵ３０による更新アドレス及び更新値の書き込みが完了する前に待機系のＭＣＵ５０が更新情報バッファ５６内の不完全なデータを用いて自身の設定情報を更新する事態を回避することができる。さらに、本実施例に係る二重化システム１０によれば、待機系のＭＣＵ５０内の設定情報に関する信頼性が向上するので、現用化時に行う設定情報の正当性チェックを不要化することができ、待機系のＭＣＵ５０を高速に現用化することが可能になる。
【００６５】
また、本実施例に係る二重化システム１０では、待機系のＭＣＵ５０は、現用系のＭＣＵ３０の動作状態を所定の周期で監視する。そして、待機系のＭＣＵ５０は、現用系のＭＣＵ３０の動作状態を監視する周期で更新情報バッファ５６を参照し、現用側更新完了フラグが完了を示すＯＮであるか否かを判定する。このため、本実施例に係る二重化システム１０によれば、コールドスタンバイを採用する待機系のＭＣＵ５０が通常行う現用系に対する監視処理の周期に併せて現用側更新完了フラグをチェックすることができ、処理を簡素化することができる。
【実施例３】
【００６６】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００６７】
例えば、上記実施例２では、二重化されるＭＣＵ３０及びＭＣＵ５０における現用系と待機系との系の切り換えは、待機系のＭＣＵ５０がＭＣＵ３０の障害を検知した場合に実行されることとした。しかし、ＭＣＵ５０を待機系から現用系に切り換える契機はこれに限られない。例えば、二重化されるＭＣＵ３０及びＭＣＵ５０における現用系と待機系との系の切り替えは、外部のコントロール端末から現用化の指示を受け付けた場合に実行されるようにしてもよい。
【００６８】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、現用側更新部３６または更新情報書込み部３７の一部を現用系のＭＣＵ３０の外部装置としてネットワーク経由で接続するようにしてもよい。例えば、待機側更新部５７の一部を待機系のＭＣＵ５０の外部装置としてネットワーク経由で接続するようにしてもよい。また、現用側更新部３６または更新情報書込み部３７を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の現用系のＭＣＵ３０の機能を実現するようにしてもよい。また、待機側更新部５７を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の待機系のＭＣＵ５０の機能を実現するようにしてもよい。また、設定情報ＤＢ３５の全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の現用系のＭＣＵ３０の機能を実現するようにしてもかまわない。また、設定情報ＤＢ５５または更新情報バッファ５６の全部または一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、上記の待機系のＭＣＵ５０の機能を実現するようにしてもかまわない。
【００６９】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００７０】
（付記１）現用装置と待機装置とを有する二重化システムであって、
前記現用装置が、
二重化されたデータのうち一方のデータを保持する現用側記憶部と、
前記一方のデータを更新する現用側更新部と、
前記一方のデータの更新位置と当該更新位置における前記一方のデータの更新値とを前記待機装置へ書き込む書込み部と
を備え、
前記待機装置が、
前記二重化されたデータのうち他方のデータを保持する待機側記憶部と、
前記現用装置から書き込まれた更新位置と更新値とを対応付けて保持する更新情報記憶部と、
前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新する待機側更新部と
を備えたことを特徴とする二重化システム。
【００７１】
（付記２）前記更新情報記憶部は、前記更新位置と前記更新値との書き込みが完了したか否かを示す現用側更新完了フラグをさらに保持し、
前記待機側更新部は、前記更新情報記憶部を参照し、前記現用側更新完了フラグが完了を示す場合に、前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新することを特徴とする付記１に記載の二重化システム。
【００７２】
（付記３）前記待機装置が、
前記現用装置の動作状態を所定の周期で監視する動作監視部をさらに備え、
前記待機側更新部は、前記所定の周期で前記更新情報記憶部を参照し、前記現用側更新完了フラグが完了を示す場合に、前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新することを特徴とする付記２に記載の二重化システム。
【００７３】
（付記４）待機装置とともに二重化される現用装置であって、
二重化されたデータのうち一方のデータを保持する現用側記憶部と、
前記一方のデータを更新する現用側更新部と、
前記一方のデータの更新位置と当該更新位置における更新値とを前記待機装置へ書き込む書き込み部と
を備えたことを特徴とする現用装置。
【００７４】
（付記５）現用装置とともに二重化される待機装置であって、
二重化されたデータのうち一方のデータを保持する待機側記憶部と、
前記現用装置から書き込まれた前記二重化されたデータのうち他方のデータの更新位置と更新値とを対応付けて保持する更新情報記憶部と、
前記更新位置に対応する位置における前記一方のデータの値を当該更新位置に対応付けられた前記更新値で更新する待機側更新部と
を備えたことを特徴とする待機装置。
【００７５】
（付記６）二重化されたデータのうち一方のデータを現用側記憶部に保持する現用装置と他方のデータを待機側記憶部に保持する待機装置とを有する二重化システムにおけるデータ更新方法であって、
前記現用装置が、
前記一方のデータを更新する現用側更新ステップと、
前記一方のデータの更新位置と当該更新位置における更新値とを前記待機装置へ書き込む書込みステップと
を含み、
前記待機装置が、
前記現用装置から書き込まれた更新位置と更新値とを対応付けて保持する更新情報記憶部に保持される前記更新位置と前記更新値とを読み出し、前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新する待機側更新ステップ
を含んだことを特徴とするデータ更新方法。
【００７６】
（付記７）二重化されたデータのうち一方のデータを現用側記憶部に保持する現用装置と他方のデータを待機側記憶部に保持する待機装置とを有する二重化システムにおけるデータ更新方法であって、
前記現用装置が、
前記一方のデータを更新する現用側更新ステップと、
前記一方のデータの更新位置と当該更新位置における更新値とを前記待機装置へ書き込む書込みステップと
を含んだことを特徴とするデータ更新方法。
【００７７】
（付記８）二重化されたデータのうち一方のデータを現用側記憶部に保持する現用装置と他方のデータを待機側記憶部に保持する待機装置とを有する二重化システムにおけるデータ更新方法であって、
前記待機装置が、
前記現用装置から書き込まれた更新位置と更新値とを対応付けて保持する更新情報記憶部に保持される前記更新位置と前記更新値とを読み出し、前記更新位置に対応する位置における前記他方のデータの値を当該更新位置に対応付けられた前記更新値で更新する待機側更新ステップ
を含んだことを特徴とするデータ更新方法。
【符号の説明】
【００７８】
１  二重化システム
３  現用装置
３ａ  現用側記憶部
３ｂ  現用側更新部
３ｃ  書込み部
５  待機装置
５ａ  待機側記憶部
５ｂ  更新情報記憶部
１０  二重化システム
２０  ＯＳ
３０  現用系のＭＣＵ
３１  現用側Ｉ／Ｆ部
３２  現用側ポート部
３３  切替制御部
３４  ＭＣＵ間通信部
３５  設定情報ＤＢ
３６  現用側更新部
３７  更新情報書込み部
５０  待機系のＭＣＵ
５１  待機側Ｉ／Ｆ部
５２  待機側ポート部
５３  切替制御部
５４  ＭＣＵ間通信部
５５  設定情報ＤＢ
５６  更新情報バッファ
５７  待機側更新部
５８  動作監視部
５９  起動処理部
７０  ＬＩＵ
１００  伝送装置
【図１】
2011253242.tif 000003
【図２】
2011253242.tif 000004
【図３】
2011253242.tif 000005
【図４】
2011253242.tif 000006
【図５】
2011253242.tif 000007
【図６】
2011253242.tif 000008
【図７】
2011253242.tif 000009
【図８】
2011253242.tif 000010
【図９】
2011253242.tif 000011
【図１０】
2011253242.tif 000012