(57)【特許請求の範囲】
【請求項１】
ＡＣＴ系サーバ及びＳＢＹ系サーバがそれぞれ、サービスの処理が記述されたファイルと、冗長構成の状態管理及び障害監視を行う系構成管理部と、上記ファイルの起動制御や監視などの管理を行う再開制御部と、系切替え時のデータの一致を確保するように同値データでなる同期情報を格納する共有メモリ上の同期対象メモリエリアとを有する冗長システムにおいて、
上記ＳＢＹ系サーバにおけるファイル更新時に、上記ＳＢＹ系サーバは、更新前のファイルに対応した旧の上記同期対象メモリエリアに加え、更新後のファイルに対応した新たな同期対象メモリエリアを別途確保し、
上記ＳＢＹ系サーバの上記系構成管理部は、上記新たな同期対象メモリエリアが確保されている間に、上記ＡＣＴ系サーバから更新前のファイル用の同期情報が到来したときに、その同期情報を旧の上記同期対象メモリエリアに格納すると共に、生成された更新後のファイルに与え、
この生成された更新後のファイルは、更新前のファイル用の同期情報が与えられると直ちに、当該同期情報について上記新たな同期対象メモリエリアに適応させる型変換の要否を判定し、型変換が必要と判定された場合には、当該同期情報を上記新たな同期対象メモリエリアに適応させる型変換を行う
ことを特徴とする冗長システムのファイル更新方法。
【請求項２】
上記ＳＢＹ系サーバの上記系構成管理部は、ファイル更新時に、ファイル更新が完了するまで、更新前のファイルを残存させ、
ファイル更新が完了する前にロールバックが必要となったときに、上記ＳＢＹ系サーバの上記系構成管理部は、旧の上記同期対象メモリエリアを利用する残存されている上記更新前のファイルを再開させる
ことを特徴とする請求項１に記載の冗長システムのファイル更新方法。
【請求項３】
上記ＳＢＹ系サーバにおけるファイル更新時に、上記ＳＢＹ系サーバの上記系構成管理部は、
更新後のファイルを再開させる前に、
上記更新後のファイルに、上記同期対象メモリエリアに格納されている更新前のファイルの同期情報に基づき、上記更新後のファイルがそれに適応できるようにする型変換を行う
ことを特徴とする請求項１又は２に記載の冗長システムのファイル更新方法。
【請求項４】
上記更新後のファイルは、上記型変換の要否をメモリセグメント毎に判断することを特徴とする請求項１〜３のいずれかに記載の冗長システムのファイル更新方法。
【請求項５】
上記更新後のファイルから上記更新前のファイルのバージョン情報を認識し、上記更新前のファイルのバージョンが、上記更新後のファイルが対象としてバージョンのときに、旧の上記同期対象メモリエリアに係るメモリ救済を行うことを特徴とする請求項１〜４のいずれかに記載の冗長システムのファイル更新方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は冗長システムのファイル更新方法に関し、例えば、コールサーバのような高い信頼性が求められるシステムにおいて、提供中のサービスを継続させたまま、そのサービスを提供している実行プログラムなどのファイルの更新を行う場合に適用し得るものである。
【背景技術】
【０００２】
一般に、コールサーバなどの高い信頼性を求められるシステムにおいては、信頼性を維持するために、図２に示すように、ＡＣＴ系（運用系）サーバＡ００１とＳＢＹ系（待機系）サーバＳ００１を有する２重の冗長システムを採用している。
【０００３】
各サーバＡ００１、Ｓ００１は、他系とのインターフェース部（ネットワークインタフェースカード；ＮＩＣ）Ａ００７、Ｓ００７やハードディスクＡ００８、Ｓ００８などを有するハードウェアＡ００６、Ｓ００６と、後述するソフトウェアを連携させるための汎用的なＯＳを備える。図２においては、汎用的なＯＳに関し、カーネルＡ００５、Ｓ００５のみが記載されている。
【０００４】
各サーバＡ００１、Ｓ００１は、ソフトウェアとして、サービスプロセスＡ００２、Ｓ００２、再開制御部Ａ００３、Ｓ００３、及び、系構成管理部Ａ００４、Ｓ００４などを有している。なお、共有メモリＡ００９、Ｓ００９は、ＲＡＭなどの半導体メモリなどで構成されているハードウェアであるが、上述したソフトウェアの部分が利用するものであるので、ソフトウェア部分と同様な階層で示している。
【０００５】
系構成管理部Ａ００４、Ｓ００４は冗長構成の状態管理及び障害監視を行うものである。再開制御部Ａ００３、Ｓ００３は、サービスプロセスＡ００２、Ｓ００２の起動制御や監視などの管理を行う。サービスプロセスＡ００２、Ｓ００２は、サービス（例えば、呼処理サービス）に必要なメモリエリアＡ０１０、Ｓ０１０を保持し、サービスを実施するものである。サービスに必要なメモリエリアＡ０１０、Ｓ０１０は、ハードウェアやソフトウェアにおける障害時においても救済されなければならず、ＡＣＴサーバＡ００１及びＳＢＹサーバＳ００１間の同期対象メモリエリアとなる。
【０００６】
ここでの同期対象メモリエリアとは、ＳＢＹサーバＳ００１に切り替わったときにも、ＡＣＴサーバＡ００１と同一サービスを提供できるように、ＡＣＴサーバＡ００１が有しているデータと同値のデータをＳＢＹサーバＳ００１が格納できるようにするための、各系でのメモリエリアをいう。なお、呼制御データを一致させると共に、一元管理する技術については、特許文献１に記載されている。
【０００７】
図２におけるサービスプロセスＡ００２、Ｓ００２は、ハードディスクＡ００８、Ｓ００８に格納されている実行ファイルに基づいて生成されるものである。
【０００８】
例えば、サービスプロセスＡ００２、Ｓ００２の生成の元となる実行ファイルなどのソフトウェアは、その運用中にバグが発見されて書き直されることが多い。以下では、図２に示すような冗長システムにおいて、ファイル更新を行う従来の方法を、図３のシーケンス図を参照しながら説明する。
【０００９】
一般に、冗長システムでは、まず、ＳＢＹ系から新ファイルを配置し、ＡＣＴ系は旧ファイルのままにしておく。その後、系切替えをすることで、新ファイルでのサービスを開始するが、新ファイルにおいて障害が発生した場合も、再び、系切替えを行うことで、すばやく、旧ファイルにロールバックすることができる。このような方式により、サービスプロセスのファイル更新を行う場合のシーケンスを図３に示している。
【００１０】
図３では記載されていないが、ＡＣＴ系サーバＡ００１が旧サービスプロセスＡ００２にてサービスを提供している間に、例えば、オペレータは、ＳＢＹ系サーバＳ００１のハードディスクＳ００８上に展開されている実行ファイルを新しい実行ファイルに更新する。
【００１１】
このような状態で、例えば、オペレータがＡＣＴ系サーバＡ００１に対して系切替えを指示操作し（この操作は、新ファイルに切り替えるための系切替えであることを明確にしたものであっても良い）、このとき、ＡＣＴ系の系構成管理部Ａ００４は、ＳＢＹ系の系構成管理部Ｓ００４へ系切替えを指示する（Ｐ１００）。
【００１２】
ＳＢＹ系において、再開制御部Ｓ００３は、系構成管理部Ｓ００４から再開要求が与えられると（Ｐ１０１）、今までのサービスプロセス（旧サービスプロセス）Ｓ００２を終了させ（Ｐ１０２）、更新された新実行ファイルをハードディスクＳ００８からワーキングメモリ上にロードし、新サービスプロセスを生成する（Ｐ１０３）。その後、再開制御部Ｓ００３によって、新サービスプロセスＳ００２を適用し得るように再開処理が行われる（Ｐ１０４、Ｐ１０５）。なお、再開とは、その新サービスプロセスＳ００２を動作し得る状態に立ち上げることを言う。
【００１３】
ＡＣＴ系サーバＡ００１においては、ＳＢＹ系サーバＳ００１に系切替えを指示したときには（上述したＰ１０１）、直ちに、又は、所定時間経過に、自己をＳＢＹ系に移行する。そのため、ＳＢＹ系の再開処理中の期間では、サービスは中断する。新サービスプロセスＳ００２についての再開処理が終了し、再開制御部Ｓ００３がそのことを認識すると（Ｐ１０６）、系構成管理部Ｓ００４に再開完了を通知し（Ｐ１０７）、これにより、今までＳＢＹ系であったサーバＳ００１が、新サービスプロセスに対応したＡＣＴ系として動作を開始する。
【００１４】
このような状態では、系切替えの開始前でＡＣＴ系であったサーバＡ００１は、旧サービスプロセスを搭載し、系切替えの開始前でＳＢＹ系であったサーバＳ００１は、新サービスプロセスを搭載した状態となり、両系のサーバＡ００１、Ｓ００１は非同期状態になる。
【００１５】
系切替えの開始前でＡＣＴ系であった現時点でＳＢＹ系のサーバＡ００１は、他系のサーバＳ００１からのＡＣＴ系に切り替わった旨の通知などの到来により、自系も、新サービスプロセスに対応する状態への切替え動作を行い（Ｐ１０８〜Ｐ１１５）、これにより、新サービスプロセスに対応したＳＢＹ系の状態に移行し、両系が再び同期状態となる。
【００１６】
系切替え後の再開処理（Ｐ１０５）においては、新サービスプロセスにおいて旧サービスプロセスが使用していた同期対象メモリエリアＳ０１０を引き継ぐ必要がある。例えば、新サービスプロセスと旧サービスプロセスとで、いわゆるオブジェクト指向言語におけるクラスやインスタンスの定義やクラス間の関係などの構造体が異なることが多く、このような構造体の相違に応じ、同期対象メモリエリアＳ０１０を新サービスプロセスが利用するには、型変換処理が必要となる。
【００１７】
サービスプロセスが使用する同期対象メモリエリアＳ０１０は、その領域の種類などにより、セグメントに分けて管理されている。型変換処理は、それぞれのセグメントにより異なる処理になるため、セグメント毎に実行する必要がある。
【特許文献１】特開２００１−３４５８５０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１８】
従来のファイル更新方法では、系切替え後に、新サービスプロセスを立ち上げ、その新サービスプロセスの再開処理の中で型変換処理を実施する。型変換処理は、メモリの管理セグメント毎に実施する必要があるため、セグメントの数だけ呼び出す必要がある。コールサーバのような大規模なシステムを構築する場合、そのセグメント数は膨大であるため、型変換処理を含んだ再開処理に時間がかかり、ファイル更新中のサービス中断時間が長くなるという課題があった。
【００１９】
また、ＳＢＹ系において、旧サービスプロセスで使用していた同期対象メモリエリアは型変換処理により上書きされてしまう。そのため、型変換処理が開始された以降で再開処理に失敗して旧ファイルにロールバックするには、ＳＢＹ系においてロールバックできず、他系（旧ＡＣＴ系）への系切替え処理を伴い、旧ファイルでのサービス復旧完了までに時間がかかるという課題があった。
【００２０】
そのため、提供中のサービスを継続させたまま、そのサービスを提供している実行プログラムなどのファイル更新を短時間に行うことが可能な冗長システムのファイル更新方法が求められている。また、ファイル更新時においてロールバックが必要となっても迅速にロールバックさせることができる冗長システムのファイル更新方法が求められている。
【課題を解決するための手段】
【００２１】
第１の本発明の冗長システムのファイル更新方法は、ＡＣＴ系サーバ及びＳＢＹ系サーバがそれぞれ、サービスの処理が記述されたファイルと、冗長構成の状態管理及び障害監視を行う系構成管理部と、上記ファイルの起動制御や監視などの管理を行う再開制御部と、系切替え時のデータの一致を確保するように同値データでなる同期情報を格納する共有メモリ上の同期対象メモリエリアとを有する冗長システムにおいて、上記ＳＢＹ系サーバにおけるファイル更新時に、上記ＳＢＹ系サーバは、更新前のファイルに対応した旧の上記同期対象メモリエリアに加え、更新後のファイルに対応した新たな同期対象メモリエリアを別途確保し、上記ＳＢＹ系サーバの上記系構成管理部は、上記新たな同期対象メモリエリアが確保されている間に、上記ＡＣＴ系サーバから更新前のファイル用の同期情報が到来したときに、その同期情報を旧の上記同期対象メモリエリアに格納すると共に、生成された更新後のファイルに与え、この生成された更新後のファイルは、更新前のファイル用の同期情報が与えられると直ちに、当該同期情報について上記新たな同期対象メモリエリアに適応させる型変換の要否を判定し、型変換が必要と判定された場合には、当該同期情報を上記新たな同期対象メモリエリアに適応させる型変換を行うことを特徴とする。
【００２２】
ここで、上記ＳＢＹ系サーバの上記系構成管理部は、ファイル更新時に、ファイル更新が完了するまで、更新前のファイルを残存させ、ファイル更新が完了する前にロールバックが必要となったときに、上記ＳＢＹ系サーバの上記系構成管理部は、旧の上記同期対象メモリエリアを利用する残存されている上記更新前のファイルを再開させることが好ましい。
【発明の効果】
【００２４】
本発明によれば、サービスを提供している実行プログラムなどのファイル更新を短時間に行うことができる。また、本発明によれば、ファイル更新時においてロールバックが必要となると迅速にロールバックさせることができる。
【発明を実施するための最良の形態】
【００２５】
（Ａ）実施形態
以下、本発明による冗長システムのファイル更新方法の一実施形態を、図面を参照しながら詳述する。
【００２６】
この実施形態の基本的な概念は以下の通りである。ＡＣＴ系が旧ファイルにてサービスを提供している間に、ＳＢＹ系において、旧ファイルと新ファイルを並行して実行する。さらに、ＡＣＴ系の同期対象メモリエリアでのデータ遷移を契機にイベントドリブンで行われる旧メモリエリア間のデータ同期に並行して、新メモリエリアへの型変換処理も系切替え前に行う。これにより、系切替え後の再開処理において、型変換処理が不要になり、新ファイルでのサービス開始を迅速に行うことができる。さらに、新ファイルが、旧メモリエリアと新メモリエリアを区別して割り付け、新メモリエリアへの型変換処理が行われても旧メモリエリアを保存させる。これにより、再開失敗時に自系にてメモリを救済して旧ファイルへのロールバックが可能となる。
【００２７】
図１は、この実施形態の冗長システムの、ＳＢＹ系サーバがファイル更新のための系切替えを実行中の状態における機能ブロック図を示しており、上述した図２との同一、対応部分には同一符号を付して示している。
【００２８】
この実施形態の冗長システムも、ＡＣＴ系サーバＡ００１とＳＢＹ系サーバＳ００１を有する。これらサーバＡ００１、Ｓ００１は、図示は省略するが、他の情報処理装置と同様に、ＣＰＵ、メモリ（ＲＯＭ、ＲＡＭなど）、通信部、ハードディスクなどを備えて構成されているが、上述した状態におけるハードウェア及びソフトウェアの機能を階層的に整理して示すと、図１で表すことができる。
【００２９】
なお、通常の運用状態では、この実施形態の冗長システムも、上述した図２のように表すことができる。
【００３０】
図１において、各サーバＡ００１、Ｓ００１は、他系とのインターフェース部Ａ００７、Ｓ００７やハードディスクＡ００８、Ｓ００８などを有するハードウェアＡ００６、Ｓ００６と、後述するソフトウェアを連携させるための汎用的なＯＳ（図１ではカーネルＡ００５、Ｓ００５のみ記載）を備える。
【００３１】
各サーバＡ００１、Ｓ００１は、ソフトウェアとして、サービスプロセス（図１においては旧サービスプロセスと表記している）Ａ００２、Ｓ００２、再開制御部Ａ００３、Ｓ００３、及び、系構成管理部Ａ００４、Ｓ００４などを有している。共有メモリＡ００９、Ｓ００９は、ＲＡＭなどの半導体メモリなどで構成されているハードウェアであるが、ソフトウェアの部分が利用するものであるので、ソフトウェア部分と同様な階層で示している。共有メモリＡ００９、Ｓ００９内には、両系の同値のデータ（例えば、インスタンス）を格納するための同期対象メモリエリア（図１では旧メモリエリアと表記している）Ａ０１０、Ｓ０１０が設けられている。
【００３２】
なお、再開制御部Ａ００３、Ｓ００３や系構成管理部Ａ００４、Ｓ００４は、ファイル更新機能に関し、従来とは異なる処理を実行する（後述する図４参照）。
【００３３】
ファイル更新が実行される前であれば、以上の構成要素によって冗長システムが成り立っているが、ＳＢＹ系サーバＳ００１がファイル更新のための系切替えを実行している途中状態においては、ＳＢＹ系サーバＳ００１は、ファイル更新によるサービスプロセス（図１においては新サービスプロセスと表記している）Ｓ０１１と、新サービスプロセスＳ０１１が同期処理で利用する同期対象メモリエリア（図１では新メモリエリアと表記している）Ｓ０１２とが生成されている。
【００３４】
図４は、実施形態の冗長システムにおけるファイル更新方法を示すシーケンス図であり、従来に係る図３と対応するものである。
【００３５】
図４では省略しているが、ＡＣＴ系サーバＡ００１が旧サービスプロセスＡ００２にてサービスを提供している間に、例えば、オペレータは、ＳＢＹ系サーバＳ００１のハードディスクＳ００８上に展開されている実行ファイルを新しい実行ファイルに更新する。
【００３６】
このような状態で、例えば、オペレータがＳＢＹ系サーバＳ００１に対して新ファイル取込みを指示操作すると、ＳＢＹ系の系構成管理部Ｓ００４は再開制御部Ｓ００３にプロセス生成要求を発行し（Ｐ２００）、これにより、再開制御部Ｓ００３は、ＡＣＴ系としての新サービスプロセスＳ０１１を生成する（Ｐ２０１）。なお、ＳＢＹ系サーバＳ００１の系構成管理部Ｓ００４が、ハードディスクＳ００８上に新しい実行ファイルが展開されたことを認識することにより、自動的に上述したステップＰ２００の処理を行うようにしても良い。
【００３７】
この実施形態の場合、ＡＣＴ系としての新サービスプロセスＳ０１１は、サービスの提供処理を行うサービスプロセス本体部分と、生成された直後の処理を行う生成直後処理部分と、初めて系切替えが指示されたときの再開処理を行う再開処理部分とからなる（Ｐ２０２、Ｐ２０３）。
【００３８】
生成直後処理部分は、新メモリエリアＳ０１２を生成させ、使用中の旧メモリエリアＳ０１０に関し、新メモリエリアＳ０１２を利用して型変換を実施する処理と、ＡＣＴ系から到来してバッファリング中の同期情報の型変換を実施する処理と、バッファリング中の同期情報がなくなった以降に行うＡＣＴ系から到来した同期情報の型変換を実施する処理とでなる（後述する図６参照）。なお、図４において、「イベントドリブン同期状態」とは、バッファリング中の同期情報がなくなった以降に行うＡＣＴ系から到来した同期情報の型変換を実施している状態を言う。
【００３９】
以上のように、新サービスプロセスＳ０１１が生成された状態では、旧サービスプロセスＳ００２と並行して実行される。また、ＳＢＹ系の共有メモリＳ１０９上には、旧サービスプロセスＳ００２が使用する旧メモリエリアＳ０１０に加えて、新サービスプロセスＳ０１１が使用する新メモリエリアＳ０１２が確保される。
【００４０】
新サービスプロセスＳ０１１は、イベントドリブン同期状態になったことを、例えば、系構成管理部Ｓ００４を介してオペレータに通知するものであっても良い（通知は、例えばディスプレイへの表示であっても良く、ＬＥＤなどの点灯などであっても良い）。また、新サービスプロセスＳ０１１は、イベントドリブン同期状態になったことを、例えば、系構成管理部Ｓ００４を介してＡＣＴ系に通知するものであっても良い。
【００４１】
例えば、オペレータが、イベントドリブン同期状態になったことを通知によって認識すると、又は、ＳＢＹ系サーバＳ００１に対して系切替えを指示操作したときから十分な時間が経過してイベントドリブン同期状態になったことを認識すると、ＡＣＴ系サーバＡ００１に対して系切替えを指示操作し、このとき、ＡＣＴ系の系構成管理部Ａ００４は、ＳＢＹ系の系構成管理部Ｓ００４へ系切替えを指示する（Ｐ２０４）。なお、ＡＣＴ系の系構成管理部Ａ００４は、イベントドリブン同期状態の通知によって、ＳＢＹ系の系構成管理部Ｓ００４へ系切替えを指示するようにしても良い。
【００４２】
ＡＣＴ系サーバＡ００１は、系切替えを指示した後に、自系をＳＢＹ系に移行させる（Ｐ２０５）。なお、この際に移行されたＳＢＹ系は、旧サービスプロセスＡ００２に係るＳＢＹ系である。
【００４３】
以上のように、この実施形態の場合、ＡＣＴ系サーバＡ００１が旧ファイル（旧サービスプロセスＡ００２）にてサービスを提供している間に、ＳＢＹ系サーバＳ００１は、旧サービスプロセスＳ００２に並行して新サービスプロセスＳ０１１を生成し、サービスプロセスＳ００２で使用しているメモリセグメントに関し、新サービスプロセスＳ０１１に適応するように型変換処理を行う。さらに、ＡＣＴ系サーバＡ００１が旧ファイル（旧サービスプロセスＡ００２）にてサービスを提供している間に、通常行われている旧メモリエリアＡ０１０、Ｓ０１０における両系の同期に加えて、同期要求があったセグメントに関して新メモリエリアＳ０１２への型変換処理も並行して行う。
【００４４】
すなわち、ＡＣＴ系サーバＡ００１がＳＢＹ系サーバＳ００１に系切替えを指示したときには、型変換処理は既に終了している。
【００４５】
ＳＢＹ系において、再開制御部Ｓ００３は、系構成管理部Ｓ００４から再開要求が与えられると（Ｐ２０６）、今までのサービスプロセス（旧サービスプロセス）Ｓ００２を終了させ（Ｐ２０７）、新サービスプロセスＳ０１１に再開処理を指示する（Ｐ２０８）。新サービスプロセスＳ０１１は、型変換処理を除く再開処理を実行し（Ｐ２０９）、再開処理が完了したときに再開制御部Ｓ００３を介してその旨を系構成管理部Ｓ００４に通知し（Ｐ２１０、Ｐ２１１）、系構成管理部Ｓ００４は、自系を、新サービスプロセスＳ０１１を使用するＡＣＴ系にする（Ｐ２１２）。このＡＣＴ系と動作し得る状態になった瞬間に、旧サービスプロセスＳ００２や旧メモリエリアＳ０１０がワーキングメモリ上から消失する。
【００４６】
上述した図１に示す機能ブロック図の状態は、新サービスプロセスＳ０１１が生成されたとき（Ｐ２０１）から、新サービスプロセスＳ０１１を使用するＡＣＴ系になる（Ｐ２１２）直前までの状態である。
【００４７】
ＳＢＹ系サーバＳ００１が、新サービスプロセスＳ０１１を使用するＡＣＴ系になった状態では、両系のサーバＡ００１、Ｓ００１は非同期状態になる。
【００４８】
系切替えの開始前でＡＣＴ系であった現時点でＳＢＹ系のサーバＡ００１は、他系のサーバＳ００１からのＡＣＴ系に切り替わった旨の通知などの到来により、自系も、新サービスプロセスに対応する状態への切替え動作を行う（Ｐ２１３〜Ｐ２２１）。なお、この切替え動作の開始前において、オペレータは、サーバＡ００１のハードディスクＡ００８上に展開されている実行ファイルを新しい実行ファイルに更新しておく。
【００４９】
すなわち、サーバＡ００１の切替え動作では、まず、サーバＡ００１の系構成管理部Ａ００４は再開制御部Ａ００３を介して旧サービスプロセスＡ００２を終了させる（Ｐ２１３、Ｐ２１４）。また、サーバＡ００１の系構成管理部Ａ００４は再開制御部Ａ００３を介して新サービスプロセス（ＳＢＹ系用の新サービスプロセス）を生成させる（Ｐ２１５〜Ｐ２１７）。さらに、系構成管理部Ａ００４は、その生成完了の通知を受領した後に（Ｐ２１８、Ｐ２１９）、新たなＡＣＴ系になったサーバＳ００１側から、同期対象メモリエリア（新メモリエリア）Ｓ０１２のデータの全ての値を取り込んで格納し（Ｐ２２０）、自系を新サービスプロセスを適用するＳＢＹ系の状態にする（Ｐ２２１）。
【００５０】
以上のようにして、更新されたファイル（新サービスプロセス）を適用する同期状態が確立する。
【００５１】
上述したように、新サービスプロセスＳ０１１が生成され、新サービスプロセスＳ０１１及び旧サービスプロセスＳ００２が並行して実行される状態では、新メモリエリアＳ１１２及び旧メモリエリアＳ０１０がＳＢＹ系の共有メモリＳ１０９上に確保されている。図５は、新旧サービスプロセスのメモリ割り付けの状態を示している。
【００５２】
ＡＣＴ系旧サービスプロセスＡ００２は、ＡＣＴ系共有メモリＡ００９上に、旧メモリエリアＡ０１０を割り付けている。同様に、ＳＢＹ系旧サービスプロセスＳ００２は、ＳＢＹ系共有メモリＳ００９上に、旧メモリエリアＳ０１０を割り付けている。さらに、ＳＢＹ系においては、新サービスプロセスＳ０１１がＳＢＹ系共有メモリＳ００９上に、旧メモリエリアＳ０１０と新メモリエリアＳ０１２の両方を、新サービスプロセスにおける仮想空間内の異なる領域に割り付けている。
【００５３】
新サービスプロセスＳ０１１は、旧メモリエリアＳ０１０上のセグメントを、新メモリエリアＳ０１２の情報へ型変換する記述を含んでいる。
【００５４】
図６は、ＳＢＹ系の系構成管理部Ｓ００４及び新サービスプロセスＳ０１１による同期情報の処理の流れを示すシーケンス図である。図６に示す処理部分は、図４のステップＰ２０２及びＰ２０３に対応し、ステップＰ２０２及びＰ２０３における同期情報の処理部分を詳細に示したものである。
【００５５】
ＡＣＴ系で同期対象セグメントにおいてデータ遷移が起こると、ＡＣＴ系の系構成管理部Ａ００４から同期情報が送信され、ＳＢＹ系の系構成管理部Ｓ００４がこれを受信する。このとき、受信する同期情報は、同期対象セグメントのアドレスとサイズ、及び、書き込むべき実際のデータなどである。これら３つの情報を用いて、メモリエリア（旧メモリエリア）Ｓ０１０へ同期データを書き込むことによりメモリ同期がとれる。
【００５６】
このような同期状態でサービスプロセスのファイル更新が実行される。ＳＢＹ系において、再開制御部Ｓ００３により、新サービスプロセスＳ０１１が生成されると、新サービスプロセスＳ０１１では、サービスで使用中の全メモリセグメントに対する型変換処理を実施する（Ｐ３００）。
【００５７】
この型変換処理中も、ＳＢＹ系の系構成管理部Ｓ００４は、ＡＣＴ系からの同期情報を受信し、旧メモリエリアＳ０１０に書き込む（Ｐ３０１）。しかし、新サービスプロセスＳ０１１では、使用中の全メモリセグメントの型変換処理を行っているので、同期情報の処理が行えないため、この処理中では、系構成管理部Ｓ００４は受信した同期情報をバッファリングしておく（Ｐ３０２）。
【００５８】
新サービスプロセスＳ０１１では、使用中の全メモリセグメントの型変換処理が終わると、系構成管理部Ｓ００４によってバッファリングされている同期情報を新メモリエリアＳ０１２に反映する(Ｐ３０３)。新サービスプロセスＳ０１１は、異なる領域に旧メモリエリアＳ０１０と新メモリエリアＳ０１２を割り付けているため、既に同期が取られている旧メモリエリアＳ０１０のセグメントのアドレス、サイズを受信し、旧メモリエリアＳ０１０から新メモリエリアＳ０１２上の当該セグメントに同期情報を反映させることができる。
【００５９】
新サービスプロセスＳ０１１によって、バッファリングされている全ての同期情報の処理が完了したことを契機に、系構成管理部Ｓ００４は、受信した同期情報を旧メモリエリアＳ０１０に書き込むと（Ｐ３０４）、直ちに、バッファを介さずに新サービスプロセスＳ０１１に転送するようになる（Ｐ３０５）。新サービスプロセスＳ０１１は、この同期情報を受信すると、直ちに旧メモリエリアＳ０１０から新メモリエリアＳ０１２に型変換処理を実行するため、旧メモリエリアＳ０１０の同期と並行して新メモリエリアＳ０１２への型変換を実現する（Ｐ３０６）。
【００６０】
以上のような同期情報の処理に関して、図７に、ＳＢＹ系の系構成管理部Ｓ００４の処理フローチャートを示し、図８に、新サービスプロセスＳ０１１の処理フローチャートを示している。
【００６１】
ＳＢＹ系の系構成管理部Ｓ００４は、ＡＣＴ系からの同期情報を待ち受けており（Ｐ４００）、同期情報を受信すると（Ｐ４０１）、旧メモリエリアＳ０１０に同期データを書き込む（Ｐ４０２）。その後、新サービスプロセスＳ０１１が生成されているか否かを判別し（Ｐ４０３）、生成されていなければ、同期情報の待ち受け状態に戻る。新サービスプロセスＳ０１１が生成されていれば、同期情報をバッファリングする状態にあるか否かを示すフラグの状態を判別する（Ｐ４０４）。フラグが、同期情報をバッファリングする状態にあることを示していると（立っていないと）、受信した同期情報をバッファリングした後（Ｐ４０５）、同期情報の待ち受け状態に戻る。フラグが、同期情報をバッファリングする状態にないことを示していると（立っていると）、受信した同期情報を新サービスプロセスＳ０１１に送信した後（Ｐ４０６）、同期情報の待ち受け状態に戻る。
【００６２】
新サービスプロセスＳ０１１は、旧メモリエリアＳ０１０の使用中の全てのメモリセグメントの型変換処理を実施する（Ｐ５００）。次に、バッファリングされている同期情報を新メモリエリアＳ０１２に反映する（Ｐ５０１）。その後、上述したフラグを立てる（Ｐ５０２）。なお、フラグは初期状態では立てられてなく、バッファリングされた同期情報を処理することを表している。
【００６３】
その後、新サービスプロセスＳ０１１は、同期情報の受信待ちの状態に移行し（Ｐ５０３）、系構成管理部Ｓ００４から同期情報を受信すると（Ｐ５０４）、同期対象セグメントの型変換処理を呼び出し、新メモリエリアＳ０１２に反映して同期情報の受信待ちの状態に戻る。
【００６４】
次に、系切替え後の再開処理に失敗した際に旧ファイルへロールバックする場合を説明する。
【００６５】
図９は、再開処理失敗時におけるＳＢＹ系の新旧サービスプロセスでのメモリ割り付け状態の変化を示している。
【００６６】
新サービスプロセスＳ０１１の生成から系切替えまでの間は、図５を用いて説明したように、また、図９（Ａ）に示すように、ＳＢＹ系において、新サービスプロセスＳ０１１では、旧メモリエリアＳ０１０と新メモリエリアＳ０１２を新サービスプロセスＳ０１１における仮想空間内の異なる領域にマッピングしている。
【００６７】
ＡＣＴ系から系切替え指示を受けると、ＳＢＹ系では、新サービスプロセスＳ０１１の再開処理が開始される。再開処理では、新サービスプロセスＳ０１１がサービスを開始するために、スレッドの生成やメモリの救済判定などの初期設定が行われる。新サービスプロセスＳ０１１では、新メモリエリアＳ０１２を旧メモリエリアＳ０１０とは異なる領域に割り付けているため、図９（Ｂ）に示すように、再開処理中も、旧メモリエリアＳ０１０は影響を受けることなく保存されている。
【００６８】
この新サービスプロセスＳ０１１の再開処理に失敗した場合、新サービスプロセスＳ０１１は終了され、旧サービスプロセスＳ００２にてサービスを開始するために旧サービスプロセスＳ００２の再開処理が行われる。このとき、旧サービスプロセスＳ００２においては、図９(ｃ)に示すように、保存されている旧メモリエリアＳ０１０を、図９（Ａ）の「系切替え前」の状態と同様にマッピングすることにより、旧メモリエリアＳ０１０のメモリ救済が可能となる。
【００６９】
図９の例では、新サービスプロセスＳ０１１の再開処理時に旧サービスプロセスＳ００２を終了させているが、旧サービスプロセスＳ００２を維持している場合も、上記と同様に動作する。
【００７０】
次に、ファイル更新時におけるバージョン管理方法を説明する図である。
【００７１】
ファイル更新において、メモリエリア内の構造体の構成が変更になった場合など、旧メモリエリアＳ０１０から新メモリエリアＳ０１２へ型変換する処理は、新ファイルのプログラム（サービスプログラム）内に実装される。一方、このファイル更新実施時点までの全ての旧ファイルのバージョンから移行することは、全ての旧ファイルのバージョンと新ファイルのバージョンにおけるメモリ内の構造上の相違点を把握する必要があり、その型変換処理を実装することは事実上不可能である。
【００７２】
このため、型変換処理を旧ファイルのバージョン情報を元に制限する。すなわち、新ファイルプログラムによりメモリ変換可能対象である当該バージョンの旧ファイルからのみ旧ファイルから新ファイルへメモリの引き継ぎを行う。旧ファイルのバージョンが新ファイルにおける変換対象外のバージョンであった場合には、旧メモリは破棄される。また、メモリ引継ぎを実施可能なバージョンからのファイル更新であった場合でも、メモリセグメント毎に型変換が必要であるか、型変換は不要であり、旧メモリエリアからコピーするかの決定が可能である。
【００７３】
図１０は、新ファイルプログラム（新サービスプログラムＳ０１１）が旧ファイルのバージョン情報を内蔵するバージョン認証プログラムによって収集し（Ｐ６００）、認証後（Ｐ６０１）、内蔵するメモリエリア変換プログラムによって、メモリ変換を実施している（Ｐ６０２）処理のイメージ図である。
【００７４】
図１１は、新ファイルプログラムにおける旧ファイルバージョン認証の処理を示すフローチャートである。
【００７５】
旧ファイルのバージョン情報４３１ｂａは、その旧プログラムファイルのビルド時にユニークな情報として書き込まれ、プログラムがロードされたときに、共有メモリ（図１参照）上に展開されることにより、新ファイルプログラム４３１ａから参照可能となる。
【００７６】
新ファイルプログラムの旧ファイルバージョン認証プログラム４３１ａａは、予めビルド時に、オブジェクト変換を許容する変換許容バージョン情報４３１ａａａを保持しておく。
【００７７】
新ファイルプログラムがロードされたとき（サービスプログラムが生成されたとき）、旧メモリ変換処理を実施する前に、共有メモリに保持された旧ファイルバージョン情報４３１ｂａを収集し（Ｐ７００）、変換許容バージョン情報４３１ａａａと照らし合わせることによって認証を実施する（Ｐ７０１）。
【００７８】
この認証により、新ファイルのプログラムで旧ファイルメモリエリアから型変換することが可能であるかどうかの判断することが可能となり、メモリエリア変換プログラム４３１ａｂがメモリセグメント毎に呼び出され、型変換処理が動作する（Ｐ７０２）。
【００７９】
この型変換処理では、型変換が不要なメモリセグメントは旧メモリエリアから新メモリエリアへコピーされる。コピー処理の場合、型変換と異なり、要求単位に実施するのではなく、メモリ変換を実施していない残りのセグメント全てを新ファイルの再開処理直前で実行する。この複数のセグメントを一括してコピーする場合、カーネル内で実施されるため小さなセグメント毎に実施することに比べ高速に行われる。
【００８０】
型変換処理の実行後においては、呼救済処理も実行される（Ｐ７０３）。なお、図４や図６のシーケンス図を用いた説明における「型変換」の用語には、このような呼救済処理も含まれる。
【００８１】
旧ファイルバージョン情報４３１ｂａが変換許容バージョン情報４３１ａａａにふくまれておらず、バージョンの認証が失敗したときには、旧メモリエリアを破棄し、新メモリエリアを初期化し、再開の指示（図４参照）を待ってファイル更新再開を実施する（Ｐ７０４）。
【００８２】
上記実施形態の冗長システム及びそのファイル更新方法によれば、以下のような効果を奏することができる。
【００８３】
上記実施形態によれば、旧メモリエリアの同期と並行して新メモリエリアへの型変換をリアルタイムに行うため、系切替え後の再開処理において時間のかかる型変換処理が不要になり、新サービスプロセスによってサービスを開始するまでの時間を短縮することができる。
【００８４】
また、上記実施形態のファイル更新では、新旧メモリエリア、新旧サービスプロセス、及び、プログラム内の新旧動作が分離しており、旧サービスプロセスに必要な旧メモリエリアの同期には影響がないため、ファイル更新動作中にＡＣＴ系で障害が発生した場合には、ＡＣＴ系と同期状態にあるＳＢＹ系の旧メモリエリア及び旧サービスプロセスを利用して迅速にサービスの復旧ができるため、信頼性を確保したまま、ファイル更新を実施することができる。
【００８５】
さらに、上記実施形態によれば、ファイル更新時の新サービスプロセス再開処理に失敗した場合にも、旧サービスプロセスが保存されている旧メモリエリアをマッピングすることにより、自系にてメモリを救済してロールバックすることができ、他系の状態によらず、安全、迅速な旧ファイル（旧サービスプロセス）でのサービス復旧が可能となる。
【００８６】
さらにまた、上記実施形態によれば、上述したようなファイルバージョン管理を用いることによって、ファイル更新過程が異なるシステム環境において、新ファイルが認識していない旧ファイルバージョンからのファイル更新を要求された場合、的確に呼救済を伴わないファイル更新へ移行し得る。
【００８７】
また、上記実施形態によれば、メモリエリアが複数のメモリセグメントに分かれているようなシステムの場合、メモリセグメント毎に、型変換／コピー処理の分岐を行うことが可能となる。これにより、型変換が不要なメモリセグメントについては、旧メモリエリアから単純にコピーすることが可能となり、処理の高速化を実現できる。
【００８８】
（Ｂ）他の実施形態
本発明は、冗長構成を備え、実行ファイルの更新中においてもサービスの継続性が求められるような、高い信頼性が求められるシステムに適用することで、ファイル更新が与えるシステムへの影響度を小さくし、ファイル更新時においてもシステムの信碩性を維持できる。
【図面の簡単な説明】
【００８９】
【図１】実施形態の冗長システムの、ＳＢＹ系サーバがファイル更新のための系切替えを実行中の状態における機能ブロック図である。
【図２】従来の冗長システムの機能ブロック図である。
【図３】従来の冗長システムにおけるファイル更新処理を示すシーケンス図である。
【図４】実施形態の冗長システムにおけるファイル更新方法を示すシーケンス図である。
【図５】実施形態の新旧サービスプロセスのメモリ割り付けの状態を示す説明図である。
【図６】実施形態の冗長システムにおけるファイル更新処理を示すシーケンス図である。
【図７】実施形態のＳＢＹ系の系構成管理部における同期情報処理を示すフローチャートである。
【図８】実施形態のＳＢＹ系の新サービスプロセスにおける同期情報処理を示すフローチャートである。
【図９】実施形態の再開処理失敗時におけるＳＢＹ系の新旧サービスプロセスでのメモリ割り付け状態の変化を示す説明図である。
【図１０】実施形態の新ファイルプログラムにおける旧ファイルバージョン認証の処理を示すイメージ図である。
【図１１】実施形態の新ファイルプログラムにおける旧ファイルバージョン認証の処理を示すフローチャートである。
【符号の説明】
【００９０】
Ａ００１…ＡＣＴ系サーバ、Ａ００２…サービスプロセス（旧サービスプロセス）、Ａ００３…再開制御部、Ａ００４…系構成管理部、Ａ００９…共有メモリ、Ａ０１０…同期対象メモリエリア（旧メモリエリア）、
Ｓ００１…ＳＢＹ系サーバ、Ｓ００２…サービスプロセス（旧サービスプロセス）、Ｓ００３…再開制御部、Ｓ００４…系構成管理部、Ｓ００９…共有メモリ、Ｓ０１０…同期対象メモリエリア（旧メモリエリア）、Ｓ０１１…新サービスプロセス、Ｓ０１２…新同期対象メモリエリア（新メモリエリア）Ｓ０１２。
【図１】
0004710688.tif 000002
【図２】
0004710688.tif 000003
【図３】
0004710688.tif 000004
【図４】
0004710688.tif 000005
【図５】
0004710688.tif 000006
【図６】
0004710688.tif 000007
【図７】
0004710688.tif 000008
【図８】
0004710688.tif 000009
【図９】
0004710688.tif 000010
【図１０】
0004710688.tif 000011
【図１１】
0004710688.tif 000012