(57)【要約】【課題】構成管理プロファイルをダウンロードし、運用中の構成と比較して抽出した差分情報を保持し、再構成の途中で障害発生時に、保持情報のみによって旧構成に戻す。【解決手段】通信機器１００内に、アプリケーション・パッケージ１１０と、ミドルウェア１２０とを備え、ミドルウェアのオブジェクト制御部１３０は、構成管理部１３１と、コネクション管理部１３２と、差分解析部１３３とを有し、ミドルウェアのオブジェクト構成管理部１３１は、オブジェクト構成リポジトリ１４２と、追加オブジェクト情報リポジトリ１４３と、削削除オブジェクト情報リポジトリ１４４とを有し、オブジェクト制御部１３０は、障害が発生した場合は、追加オブジェクト情報リポジトリ１４３や削除オブジェクト情報リポジトリ１４４に保持しておいた差分情報を基に前回運用していた構成に戻す障害復旧部１３４をさらに有する。【選択図】図１
2006309413.tif 000002
【特許請求の範囲】
【請求項１】
通信機器の機能をオブジェクトの集合として管理し、オブジェクトの入れ替えおよびオブジェクト間の相互接続の切り替えによって、単一の機器において種々の機能を実現するソフトウェア機能更新技術におけるソフトウェア障害復旧システムであって、
通信機器内に、サーバである管理装置からダウンロードする、オブジェクトの接続関係を記述した構成管理プロファイルと管理対象のオブジェクト群からなるアプリケーション・パッケージと、前記アプリケーション・パッケージ内のオブジェクト間の通信をサポートするためのオブジェクト制御部とオブジェクト構成管理部とからなるミドルウェアとを備え、
前記ミドルウェアのオブジェクト制御部は、
前記構成管理プロファイルからデータを取り込み構成情報の登録とオブジェクトの起動、停止を行う構成管理部と、
オブジェクトの起動、停止および構成登録後に管理された構成情報に基づきオブジェクトの接続を確立するためのオブジェクトの制御を行うコネクション管理部と、
オブジェクト更新時に新規の構成管理プロファイルと運用中のオブジェクト構成とを比較し差分を解析する差分解析部と
を有し、
前記ミドルウェアのオブジェクト構成管理部は、
運用中のオブジェクト構成を保持するオブジェクト構成リポジトリと、
前記差分解析部にて差分として抽出した追加オブジェクトの情報を保持する追加オブジェクト情報リポジトリと、
削除オブジェクトの情報を保持する削除オブジェクト情報リポジトリと
を有し、
前記オブジェクト制御部は、再構成の途中でオブジェクトの起動の失敗または他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗により障害が発生した場合は、前記追加オブジェクト情報リポジトリや前記削除オブジェクト情報リポジトリに保持しておいた差分情報を基に前回運用していた構成に戻す障害復旧部をさらに有する
ことを特徴とするソフトウェア障害復旧システム。
【請求項２】
請求項１に記載のソフトウェア障害復旧システムにおいて、
ソフトウェアの運用中にソフトウェアの不具合修正や機能追加のため、新しいアプリケーション・パッケージを通信機器へダウンロードし、オブジェクトを更新する際に、
前記ミドルウェアの前記差分解析部は、オブジェクトと共に新規にダウンロードされた前記構成管理プロファイルのオブジェクト構成情報と運用中のオブジェクト構成を保持する前記オブジェクト構成リポジトリとを比較し、差分情報を解析することで、追加オブジェクトと削除オブジェクトの情報を抽出し、それぞれ前記追加オブジェクト情報リポジトリと前記削除オブジェクト情報リポジトリに格納し、
前記ミドルウェアの前記構成管理部は、前記差分情報を利用して、新規オブジェクトとなる追加オブジェクトの起動および入れ替え対象となる削除オブジェクトの削除を行い、
前記ミドルウェアの前記コネクション管理部は、オブジェクトの接続関係に基づき、差分として抽出したオブジェクトの接続関係の接続や切断を行う
ことを特徴とするソフトウェア障害復旧システム。
【請求項３】
請求項１に記載のソフトウェア障害復旧システムにおいて、
前記ミドルウェアのオブジェクト構成管理部は、運用していた一つ前の構成だけではなく、運用実績のある過去のオブジェクト構成と現在のオブジェクト構成までの差分の履歴を保持するオブジェクト構成管理部のオブジェクト構成履歴リポジトリをさらに有し、
前記ミドルウェアのオブジェクト制御部は、前記オブジェクト構成履歴リポジトリにて管理された構成履歴情報を利用して、過去に運用していた実績のある任意のオブジェクト構成を選択する履歴管理部をさらに有する
ことを特徴とするソフトウェア障害復旧システム。
【請求項４】
請求項３に記載のソフトウェア障害復旧システムにおいて、
前記履歴管理部は、ソフトウェアを更新し、オブジェクト構成を再構成する毎に運用中のオブジェクト構成である前記オブジェクト構成履歴リポジトリと新規のオブジェクト構成との差分である前記追加オブジェクト情報リポジトリと前記削除オブジェクト情報リポジトリの情報を取得することにより、差分履歴として前記オブジェクト構成履歴リポジトリに格納し、管理し、再構成の途中で何らかの障害が発生した場合には、前記オブジェクト構成履歴リポジトリから運用実績のある任意のオブジェクト構成を選択し、
前記コネクション管理部は、選択したオブジェクト構成に基づいてオブジェクトの接続関係を再確立する
ことを特徴とするソフトウェア障害復旧システム。
【請求項５】
請求項４に記載のソフトウェア障害復旧システムにおいて、
前記履歴管理部は、前記オブジェクト構成履歴リポジトリから運用実績のある任意のオブジェクト構成を選択し、選択したオブジェクト構成に基づいて前記コネクション管理部によってオブジェクトの接続関係を再確立する際、オブジェクトの再構成処理を多重化することにより、過去に運用していた実績のある任意のオブジェクト構成を運用中のオブジェクト構成に影響を与えず、並列に処理する
ことを特徴とするソフトウェア障害復旧システム。
【請求項６】
請求項１に記載のソフトウェア障害復旧システムにおいて、
前記構成管理部および前記コネクション管理部に、管理対象となるオブジェクトの制御インタフェースを備えるとともに、
管理対象となるオブジェクトに前記構成管理部および前記コネクション管理部からの指示を受け取るための制御インタフェースを備える
ことを特徴とするソフトウェア障害復旧システム。
【請求項７】
請求項６に記載のソフトウェア障害復旧システムにおいて、
前記構成管理部および前記コネクション管理部から管理対象となるオブジェクトに対し、制御インタフェースを介してオブジェクトの起動および停止、オブジェクト構成の接続、切断の指示を出し、
管理対象となるオブジェクトは、制御インタフェースから前記構成管理部および前記コネクション管理部からの指示を受け取ることにより、隣接オブジェクトとの接続または切断の処理を行い、その処理の結果として正常終了または異常終了を前記構成管理部または前記コネクション管理部へ返す
ことを特徴とするソフトウェア障害復旧システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、無線機などの通信機器の機能をソフトウェアの入れ替えによって変更し、単一の機器により様々なシステムへの適用を可能にする機能更新技術におけるソフトウェア障害復旧システムに関するものである。
【背景技術】
【０００２】
これまで、通信機器などのダウンロードによるソフトウェア入れ替え（機能更新）技術における障害発生時の復旧方法には、様々な取り組みが行われている。
一般的な障害復旧方式としては、分散環境においてソフトウェア資源を管理する方法であり、新旧バージョンに関するアプリケーション全体のファイル情報を管理テーブルに保持し、（必要に応じて）旧バージョンのアプリケーションに戻す手法が提案されている（例えば、特許文献１参照）。
【０００３】
また、ファームウェアの遠隔更新方法として、基地局から遠隔装置にダウンロードする際に、更新されるアドレス領域（旧部分）を遠隔装置内メモリの退避領域に退避しておき（差分退避）、新版での立上げに失敗した場合は、退避した旧部分を元のアドレス領域に復元することによって部分的な更新と復元を実現する方式が提案されている（例えば、特許文献２参照）。
【０００４】
また、移動通信システムでの運用プログラム更新方法であって、新規プログラムを上位装置から下位装置へダウンロードした後、下位装置にて起動失敗を判定すると、上位装置に対して失敗を通知し、通知された上位装置は、旧プログラムの再起動を下位装置へ指示することにより復旧する方式が提案されている。これは、下位装置にてメモリを２面持ち、新旧プログラムをそれぞれ保持し、上位装置の判断に基づきプログラムの切り替えを行うことで実現している（例えば、特許文献３参照）。
【０００５】
また、移動通信システム等のソフトウェア更新方法であって、新規ソフトウェアダウンロード時、現用ソフトウェアを保持し、下位装置にて新規ソフトウェアでの試運転結果や、ハードウェアとの適合性を自ら判断することにより、必要時（失敗時）に現運用（旧ソフトウェア）に復旧する方式についても提案されている（例えば、特許文献４参照）。
【０００６】
【特許文献１】特開平１０−１７１６３５号公報
【特許文献２】特開２０００−３３０７７９号公報
【特許文献３】特開２００１−１３４４２８号公報
【特許文献４】特開２００３―１２２５７４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上述した特許文献１では、端末上のワークメモリのようなソフトウェア領域にアプリケーション・ファイルを登録しておき、必要時にアプリケーション・ファイル単位で再起動して復旧するソフトウェアの入れ替え方式であるため、アプリケーション・ファイルの差分のみの部分入れ替えには対応していない。
【０００８】
また、復旧時にオブジェクトの接続等の接続に関する処理が不要である反面、複数のファイルからアプリケーション・パッケージが構成され、ファイル間でデータの授受があるような場合には、通信のためのインタフェース仕様の規定がないため、インタフェース仕様は固定でないと対応できない。すなわち、受け渡しするデータなどインタフェースの仕様は変更できないという問題があった。
【０００９】
さらに、管理しているバージョンが新旧１つずつのため、障害時には直前に運用していた構成に戻すことはできるが、それ以前の任意の構成には戻すことができないという問題があった。
【００１０】
また、特許文献２では、基地局にて遠隔装置からバージョンを取得し、取得したバージョンから更新部分を解析することで入れ替え部分を特定し、入れ替え対象となるファームウェアの特定のアドレス領域のみダウンロードすることによって、遠隔装置は基地局から指示を受けたアドレス領域のみ退避しておけば良く、障害時には該当するアドレス領域のみ復元すればよいため、遠隔装置による解析処理を必要とせずに差分の保存と復元ができる。しかし、端末上のワークメモリやフラッシュＲＯＭ（Read Only Memory）のようなソフトウェア領域毎に入れ替えるため、ワークメモリやフラッシュＲＯＭのアドレスやサイズなど領域管理が必要となり、管理が複雑になるという問題があった。
【００１１】
また、固定された全体のアドレス領域の中から任意のアドレス領域を入れ替える方式であるため、機能追加した場合には元の構成に復元することが難しいという問題があった。  また、基地局にて差分を解析するため、多数の端末を管理する場合には、基地局による解析処理の負荷が増大し、管理が困難になるという問題があった。
【００１２】
さらに、新旧のソフトウェア構成を同時に保持し、これらを入れ替えることにより、信頼性を確保しているが、更新部分のソフトウェアは再構成後の機能検証でのみ障害発生を検出しているため、更新途中の障害については検出することができず、障害検出までの時間が大きくなるという問題があった。
【００１３】
また、特許文献３では、上位装置から下位装置にプログラム全体のダウンロードを行い、プログラム毎に下位装置にて保存しておき、起動に失敗した場合は、保存していた旧プログラムの再起動を行うことによって復旧するため、複雑な処理を必要とせず容易に復旧することが可能である反面、プログラムの部分的な入れ替えには対応していないため、復旧のためにプログラム全体の情報を保持しなければならず、メモリ等のリソースに十分な容量が必要になるという問題があった。
【００１４】
また、特許文献４では、上位装置から下位装置にプログラム全体をダウンロードし、ダウンロードした新規プログラムを試運転することにより、試運転の結果、障害が発生した場合は元の構成に復旧する方式であるため、安全に更新と復旧が行える反面、一度更新してしまうと、復旧のために保存しておいた領域が新規のプログラムによって上書きされてしまうため、元の構成に戻すことができないという問題があった。
【００１５】
また、特許文献３と同様に、プログラムの部分的な入れ替えに対応していないため、復旧のためにプログラム全体の情報を保持しなければならず、メモリ等のリソースに十分な容量が必要になるという問題もある。
【００１６】
また、これらの従来のソフトウェア障害復旧方式では、動的な入れ替えには対応しておらず、いずれも復旧時に再起動の必要があり、復旧までの時間が大きくなる等の問題があった。
【００１７】
この発明は上記のような問題点を解決するためになされたもので、一般的なアプリケーション・パッケージ中のソフトウェアを構成するオブジェクト（機能）の接続関係（コネクション）を構成管理プロファイルにて定義した情報に基づいて確立し、プログラムの不具合改修や機能追加により新規のオブジェクトをダウンロードする際には、新規の構成が記述された構成管理プロファイルをダウンロードし、運用中の構成と比較することによって差分を抽出し、抽出した差分情報を保持しておくことにより、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合は、保持しておいた必要最小限の情報のみによって旧構成に戻すことを可能にし、オブジェクト単位の入れ替えにより、差分のみの部分的な復旧を実現し、管理情報や解析処理量、処理時間など再構成にかかるオーバヘッドを削減することができるソフトウェア障害復旧システムを得ることを目的とする。
【課題を解決するための手段】
【００１８】
この発明に係るソフトウェア障害復旧システムは、通信機器の機能をオブジェクトの集合として管理し、オブジェクトの入れ替えおよびオブジェクト間の相互接続の切り替えによって、単一の機器において種々の機能を実現するソフトウェア機能更新技術におけるソフトウェア障害復旧システムであって、通信機器内に、サーバである管理装置からダウンロードする、オブジェクトの接続関係を記述した構成管理プロファイルと管理対象のオブジェクト群からなるアプリケーション・パッケージと、前記アプリケーション・パッケージ内のオブジェクト間の通信をサポートするためのオブジェクト制御部とオブジェクト構成管理部とからなるミドルウェアとを備え、前記ミドルウェアのオブジェクト制御部は、前記構成管理プロファイルからデータを取り込み構成情報の登録とオブジェクトの起動、停止を行う構成管理部と、オブジェクトの起動、停止および構成登録後に管理された構成情報に基づきオブジェクトの接続を確立するためのオブジェクトの制御を行うコネクション管理部と、オブジェクト更新時に新規の構成管理プロファイルと運用中のオブジェクト構成とを比較し差分を解析する差分解析部とを有し、前記ミドルウェアのオブジェクト構成管理部は、運用中のオブジェクト構成を保持するオブジェクト構成リポジトリと、前記差分解析部にて差分として抽出した追加オブジェクトの情報を保持する追加オブジェクト情報リポジトリと、削除オブジェクトの情報を保持する削除オブジェクト情報リポジトリとを有し、前記オブジェクト制御部は、再構成の途中でオブジェクトの起動の失敗または他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗により障害が発生した場合は、前記追加オブジェクト情報リポジトリや前記削除オブジェクト情報リポジトリに保持しておいた差分情報を基に前回運用していた構成に戻す障害復旧部をさらに有することを特徴とする。
【発明の効果】
【００１９】
この発明によれば、一般的なアプリケーション・パッケージ中のソフトウェアを構成するオブジェクトの接続関係を構成管理プロファイルにて定義した情報に基づいて確立し、プログラムの不具合改修や機能追加により新規のオブジェクトをダウンロードする際には、新規の構成が記述された構成管理プロファイルをダウンロードし、運用中の構成と比較することによって差分を抽出し、抽出した差分情報を保持しておくことにより、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合は、保持しておいた必要最小限の情報のみによって旧構成に戻すことを可能にする。また、オブジェクト単位の入れ替えにより、差分のみの部分的な復旧を実現し、管理情報や解析処理量、処理時間など再構成にかかるオーバヘッドを削減することができる。
【発明を実施するための最良の形態】
【００２０】
この発明に係るソフトウェア障害復旧システムは、分散オブジェクト技術の国際標準であるＣＯＲＢＡ（Common Object Request Broker Architecture）をベースとし、オブジェクトの接続関係（コネクション）を構成管理プロファイルにより定義した情報に基づいて、オブジェクト間の接続関係を確立し、オブジェクトの入れ替え時に入れ替え対象となるオブジェクトを解析することにより、アプリケーション・パッケージ内のオブジェクト群の部分入れ替えを行い、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合に、差分として解析し、保持しておいた差分情報を基に前回運用していた構成に復元する。
【００２１】
実施の形態１．
＜差分管理と差分のみのロールバックの動作＞
図１は、この発明を実現するのに必要なソフトウェア障害復旧システムの機能構成を示す図である。図１に示すソフトウェア障害復旧システムは、通信機器の機能をオブジェクトの集合として管理し、オブジェクトの入れ替えおよびオブジェクト間の相互接続の切り替えによって、単一の機器において種々の機能を実現するソフトウェア機能更新技術におけるソフトウェア障害復旧システムであり、ソフトウェアの入れ替えによって機能を変更する通信機器（端末局、移動局あるいは基地局など）１００内に備えられて、ネットワークを介して管理装置１６０からダウンロードする管理対象となるオブジェクト群から構成するアプリケーション・パッケージ（機能を実現するために必要となるファイルなど関連する機能一式）１１０と、パッケージ内のオブジェクト間の通信をサポートするためのオブジェクト制御部やオブジェクト構成管理部からなるミドルウェア１２０と、通信機器内のソフトウェアの基盤となるＯＳ（Operating System）１５０とを備えている。なお、管理装置１６０は、ソフトウェア開発者によって新規に作成したソフトウェアのダウンロード元となり、ダウンロードや更新指示を実施する。
【００２２】
アプリケーション・パッケージ１１０は、アプリケーション・パッケージ１１０を構成するオブジェクトの接続情報やオブジェクト間の接続のために各オブジェクトが提供するインタフェース情報などの機能更新に必要なプロファイル１１１と、パッケージ内の管理対象となるオブジェクト群１１４とからなり、プロファイル１１１は、通信機器内に管理装置からダウンロードする機能（オブジェクト）の接続関係を記述した構成管理プロファイル１１２と、分散オブジェクト技術の国際標準であるＣＯＲＢＡ標準の記述様式にてパッケージ内の各オブジェクトが提供するインタフェースの情報が記述されているインタフェース定義（ＩＤＬ：Interface Definition Language）ファイル１１３とを有する。
【００２３】
ミドルウェア１２０は、オブジェクトの構成を管理するオブジェクト管理部やオブジェクトのコネクションを管理するコネクション管理部、オブジェクトの差分解析を行う差分解析部、障害発生時には元のオブジェクト構成にオブジェクト構成リポジトリの情報を復旧する障害復旧部、差分解析の結果を履歴として管理する履歴管理部からなるオブジェクト制御部１３０と、オブジェクトの構成を構築するためのリポジトリを管理するオブジェクト構成管理部１４０とを備える。
【００２４】
オブジェクト制御部１３０は、構成管理プロファイル１１２からデータを取り込み、オブジェクト構成リポジトリ１４２へ構成情報を登録し管理する構成管理部１３１と、構成登録後にオブジェクト構成リポジトリにて管理された構成情報に基づきオブジェクトの接続関係（コネクション）を確立するためのオブジェクトの制御を行うコネクション管理部１３２と、オブジェクト更新時に新規の構成管理プロファイルと運用中のオブジェクト構成を保持したオブジェクト構成リポジトリ１４２の情報に基づいて運用中のオブジェクト構成と新規のオブジェクト構成とを比較することで差分を解析し、解析した結果を追加オブジェクト情報リポジトリ１４３と削除オブジェクト情報リポジトリ１４４に登録する差分解析部１３３と、障害発生時に差分解析部１３３にて抽出した追加オブジェクト情報リポジトリ１４３と削除オブジェクト情報リポジトリ１４４に基づき、更新前のオブジェクト構成にオブジェクト構成リポジトリ１４２の情報を復旧する障害復旧部１３４と、差分解析部１３３により抽出した差分情報を更新毎に蓄積し、履歴として情報を管理することによって、過去に運用実績のある任意のオブジェクト構成にオブジェクト構成リポジトリ１４２の情報を復旧する履歴管理部１３５とを有する。
【００２５】
オブジェクト構成管理部１４０は、運用中のオブジェクト構成を保持するオブジェクト構成リポジトリ１４２と、障害時の復旧のため、差分解析部１３３にて抽出した差分情報の内、新規に追加したオブジェクトの情報を保持する追加オブジェクト情報リポジトリ１４３と、差分情報の内、入れ替え対象となり削除されるオブジェクトの情報を保持する削除オブジェクト情報リポジトリ１４４と、履歴管理部１３５により更新毎に蓄積した差分情報を履歴として保持するオブジェクト構成履歴リポジトリ１４５とからなり、オブジェクト構成を構築および復旧するために必要となるリポジトリ群１４１を有する。
【００２６】
次に、ソフトウェアの入れ替えによって機能を変更する通信機器１００において、新規にソフトウェア開発者が開発したソフトウェアのアプリケーション・パッケージ１１０を管理装置１６０からダウンロードし、ダウンロードしたパッケージ中に存在する複数のオブジェクト間の接続関係を確立することにより、通信機器の機能を実現するまでのソフトウェアの入れ替えによる機能更新の際、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合に、保持しておいた必要最小限の情報のみによって旧構成に戻す障害復旧時の動作について説明する。
【００２７】
図１に示すこの発明の機能構成を表すブロック図と、図２に示すアプリケーション・パッケージ１１０中のオブジェクトが更新後に障害が発生し復旧するときの例と、図３に示すオブジェクト構成リポジトリ１４２のテーブル構造の例と、図４に示す構成管理プロファイル１１２のオブジェクト構成情報の例と、図５に示す追加オブジェクト情報リポジトリ１４３のテーブル構造の例と、図６に示す削除オブジェクト情報リポジトリ１４４のテーブル構造の例を利用しながら、図７に示すフローチャートに従って説明する。
【００２８】
この実施の形態１は、図２のようなオブジェクト構成にて、オブジェクトｂのバージョンアップにより、オブジェクトｂをｂ’に入れ替えることにより再構成した後に障害が発生し、復旧するときの動作について説明する。ただし、オブジェクトｂ'はプログラム内部のみの変更を想定しており、インタフェースには変更がないものとする。このため、オブジェクトａの接続先の変更はない（ミドルウェア１２０によって接続先ｂをｂ’に付け替えている）。
【００２９】
まず、ステップＳ１００において、管理装置１６０から新規の構成管理プロファイル１１２を通信機器１００へダウンロードする。
【００３０】
次に、ステップＳ１０１において、管理装置１６０からの更新指示または通信機器１００のユーザからの指示あるいはダウンロードが完了したことを構成管理部１３１が識別し、差分解析の要求を差分解析部１３３へ要求する。次に、新規の構成管理プロファイル１１２と運用中の情報であるオブジェクト構成リポジトリ１４２の情報の差分を差分解析部１３３にて抽出する。
【００３１】
差分の解析は、オブジェクト構成リポジトリ１４２にあるオブジェクト名から順に比較していく。例えば、運用中のオブジェクトの構成情報を図３、ダウンロードされた新規の構成管理プロファイル１１２のオブジェクト構成を図４とすると、アプリケーション・パッケージ１１０を構成するオブジェクト数は同一であるが、オブジェクト名ｂがｂ’へ変更されたことがわかる。このため、差分解析部１３３では、差分となるのはオブジェクトｂであると判断し、新規のオブジェクトｂ'の情報を追加オブジェクトとして追加オブジェクト情報リポジトリ１４３に、入れ替え対象となる旧オブジェクトｂの情報を削除オブジェクトとして削除オブジェクト情報リポジトリ１４４に登録する（ステップＳ１０２）。
【００３２】
次に、ステップＳ１０３において、差分解析部１３３から差分解析の結果を受け、構成管理部１３１は、オブジェクト構成リポジトリ１４２を更新し、新規のオブジェクトｂ'のダウンロードを管理装置１６０へ要求し、通信機器１００へのダウンロードを実施する。
【００３３】
次に、ステップＳ１０４において、構成管理部１３１は、ダウンロードした新規のオブジェクトｂ'の起動と旧オブジェクトｂが接続している隣接オブジェクトとの接続関係を切断する。
【００３４】
次に、ステップＳ１０５において、構成管理部１３１は、接続関係の確立をコネクション管理部１３２へ要求する。要求を受けたコネクション管理部１３２は、構成情報をオブジェクト構成リポジトリ１４２から読み取り、対象となる新規オブジェクトｂ'のアドレスとして利用するＩＯＲ（Interoperable Object Reference）を検索し、オブジェクト構成情報とＩＯＲに基づいて新規オブジェクトｂ'の接続関係を確立する。確立後は、旧オブジェクトの情報であるオブジェクトｂを停止することで、差分更新が完了する。
【００３５】
しかし、この再構成の途中で、オブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗、リポジトリへのデータ登録の失敗等、何らかの障害が発生した場合は、障害を回復するために更新前の元の構成に戻す必要がある。
【００３６】
そこで、次に更新時に発生した障害を復旧する動作について説明する。
【００３７】
ステップＳ１０６において、障害復旧部１３４にて障害を検出すると、追加オブジェクト情報リポジトリ１４２と削除オブジェクト情報リポジトリ１４４の情報に基づいて、オブジェクト構成リポジトリ１４２のオブジェクト構成情報を更新前の情報に復旧する。すなわち、図５と図６から追加されたオブジェクトはｂ’であり、削除されたオブジェクトはｂであることから、オブジェクト構成リポジトリ１４２からオブジェクトｂ'に関係する情報を削除し、新たにオブジェクトｂの情報を追加する。これによって、更新前の元のオブジェクト構成の情報に戻すことができる。
【００３８】
次に、ステップＳ１０７において、障害復旧部１３４より復旧の要求を受けた構成管理部１３１は、削除オブジェクト情報リポジトリ１４４に保持されたオブジェクトであるオブジェクトｂの起動を行い、接続関係の確立をコネクション管理部１３２へ要求する。
【００３９】
次に、ステップＳ１０８において、要求を受けたコネクション管理部１３２は、構成情報をオブジェクト構成リポジトリ１４２から読み取り、対象となる旧オブジェクトｂのアドレスとして利用するＩＯＲ（Interoperable Object Reference）を検索し、オブジェクト構成情報とＩＯＲに基づいて旧オブジェクトｂの接続関係を確立する。確立後は、新規のオブジェクトの情報であるオブジェクトｂ'を停止する。
【００４０】
次に、ステップＳ１０９において、コネクション管理部１３２からのコネクション完了の結果を受け、障害復旧部１３４は追加オブジェクト情報リポジトリ１４３、削除オブジェクト情報リポジトリ１４４に保存していた情報をクリアすることで、障害復旧処理が完了する。
【００４１】
なお、この例では、オブジェクト名の変更時の例を説明しているが、オブジェクト名だけでなく、バージョン番号など、オブジェクト構成リポジトリ１４２にて保持している情報であれば、比較対象とすることができる。
【００４２】
また、通信機器のメモリ容量等リソースに余裕があれば、オブジェクトを停止せずに利用しても良い。すなわち、起動したまま待機させておくことも可能とする。一方、リソースが少ないようであれば、オブジェクトを停止し、オブジェクトのファイルを削除後、復旧時は再度ダウンロードすることによっても実現できる。
【００４３】
さらに、図４の構成管理プロファイル１１２ではテーブル構成を示したが、これらの情報が記述されていれば、ＸＭＬ（eXtensible Markup Language）などのテキスト・ファイルとして記述しても良い。
【００４４】
以上のように、実施の形態１によれば、差分解析部１３３にて抽出した差分情報を保持しておくことにより、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗、リポジトリへのデータ登録の失敗等、何らかの障害が発生した場合は、更新前の差分情報を保持しておくことで更新前の情報に復旧することができるため、安全な機能更新が実現可能となる。
【００４５】
また、差分として保持しておいた必要最小限の情報だけで更新前のオブジェクト構成に戻すことが可能になるため、管理情報や解析処理量、処理時間など再構成にかかるオーバヘッドを削減することができる。
【００４６】
また、従来のソフトウェア障害復旧方式とは異なり、ワークメモリやフラッシュＲＯＭのアドレス等の領域を管理する必要がなく、オブジェクトに関する情報のみ管理するだけで良いため、管理を容易にすることができる。
【００４７】
また、インタフェース情報を管理し、構成管理プロファイル１１２と合わせ差分を解析することにより、インタフェース仕様が変更された場合にも、差分情報のみで障害復旧が可能になる。
【００４８】
さらに、分散オブジェクト技術の国際標準であるＣＯＲＢＡをベースとしており、ダウンロードするオブジェクト（プロセス）の接続関係をインタフェース情報（ＩＤＬ）による間接的な接続関係によって管理しており、再構成時は、ダウンロードした新規のオブジェクトの起動だけで既存の隣接オブジェクトとの接続関係が構築できるため、オブジェクトの入れ替え時にプログラムの再起動の必要が無く、動的かつ高速に復旧することができる。
【００４９】
実施の形態２．
＜障害復旧時に履歴情報を利用したロールバックの動作＞
上述した実施の形態１は、ソフトウェアの入れ替えによって機能を変更する通信機器１００において、新規にソフトウェア開発者が開発したソフトウェアのアプリケーション・パッケージ１１０を管理装置１６０からダウンロードし、ダウンロードしたパッケージ中に存在する複数のオブジェクト間の接続関係を確立することにより、通信機器の機能を実現するまでのソフトウェアの入れ替えによる機能更新の際、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合は、保持しておいた必要最小限の情報のみによって旧構成に戻す障害復旧時の動作についてであったが、この実施の形態２では、障害復旧時に履歴情報を利用したロールバックの動作について述べる。
【００５０】
すなわち、オブジェクト構成を再構成する毎に、履歴管理部１３５にて運用中のオブジェクト構成であるオブジェクト構成リポジトリ１４２と新規のオブジェクト構成との差分である追加オブジェクト情報リポジトリ１４３と削除オブジェクト情報リポジトリ１４４の情報を取得し、差分履歴としてオブジェクト構成履歴リポジトリ１４５に格納し、管理する。そして、再構成の途中で何らかの障害が発生した場合には、履歴管理部１３５により、オブジェクト構成履歴リポジトリ１４５から運用実績のある過去のオブジェクト構成を選択し、コネクション管理部１３２により、選択したオブジェクト構成に基づいてオブジェクトの接続関係を再確立することにより、過去に運用していた実績のあるオブジェクト構成に戻す障害復旧時の動作について説明する。
【００５１】
この実施の形態２を、図１に示すこの発明の機能構成を表すブロック図と、図８に示すオブジェクト構成の変化の例、図９に示すオブジェクト構成の差分の履歴を保持するオブジェクト構成履歴リポジトリのテーブル構造の例を利用しながら、図１０に示すフローチャートに従って説明する。
【００５２】
この実施の形態２においては、図８のようにオブジェクト構成を変更し、４段目の構成から２段目の構成に復旧するときの動作について説明する。
【００５３】
まず、ステップＳ２００において、差分解析部１３３は、機能更新毎に追加オブジェクトおよび削除オブジェクトとなる差分情報を抽出する。
【００５４】
次に、ステップＳ２０１において、差分解析部１３３から差分解析の結果を受け、履歴管理部１３５は、差分となるオブジェクト情報を追加オブジェクト情報リポジトリ１４３および削除オブジェクト情報リポジトリ１４４の情報に基づき、オブジェクト構成履歴リポジトリ１４５へ登録する。すなわち、前の行との差分のみ登録する。
【００５５】
例えば、図８の１段目の初期の構成状態から２段目の構成（オブジェクトｂがバージョンアップしたことを想定）に変更したときは、追加オブジェクトがｂ’であり、削除オブジェクトがｂであることから、ｂの入れ替えであると判断し差分情報として、オブジェクトｂ'のみオブジェクト構成履歴リポジトリ１４５に登録する。その他、変更なしであれば変更なしフラグ（図９では矢印とした）を設定し、差分情報が終了した場合には、該当行の最後の列に終了フラグ（図９では”null”とした）を各行単位で設定する。なお、削除したときも行の最後に終了フラグをつけている（図９の２段目）。このように、差分履歴のみ蓄積したテーブルが図９である。この処理をオブジェクト構成の変更毎に登録していく（ステップＳ２０２）。
【００５６】
しかし、この再構成の途中で、オブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗、リポジトリへのデータ登録の失敗等、何らかの障害が発生した場合は、障害を回復するために運用実績のある過去の構成に戻す必要がある。
【００５７】
そこで、次に更新時に発生した障害を復旧する動作について説明する。
【００５８】
次に、ステップＳ２０３において、履歴管理部１３５は、通信機器１００上に存在するオブジェクトとオブジェクト構成履歴リポジトリ１４５の情報から復旧可能な情報を選択し、その情報を元にオブジェクト構成リポジトリ１４２の情報を元のオブジェクト構成に戻す。ここで、復旧可能な情報とは、通信機器１００上にオブジェクトのファイルの有無やプロセスとして動作中であるかを示す。これは、存在しているオブジェクトを優先的に使用した構成への復旧や、無線機器等の通信機器における対応エリアにあった通信プログラムへの復旧を行うことを意図している。
【００５９】
次に、ステップＳ２０４において、履歴管理部１３５より登録した情報の復旧の要求を受けた構成管理部１３１は、復旧するオブジェクトの再起動（ａとｂ’）を行い、接続関係の確立をコネクション管理部１３２へ要求する。なお、プロセスとして動作中であれば、再起動処理は不要である。
【００６０】
次に、ステップＳ２０５において、要求を受けたコネクション管理部１３２は、構成情報をオブジェクト構成リポジトリ１４２から読み取り、対象となる旧オブジェクトａとｂ’のアドレスとして利用するＩＯＲ（Interoperable Object Reference）を検索し、オブジェクト構成情報とＩＯＲに基づいて旧オブジェクトａとｂ’の接続関係を確立する。確立後は、新規のオブジェクトの情報であるオブジェクトａ'とｅ、ｆを停止する。
【００６１】
以上のように、実施の形態２によれば、再構成の途中で何らかの障害が発生した場合には、オブジェクト構成履歴リポジトリ１４５にて過去に運用していた構成の履歴を管理することにより、更新の直前の構成に戻るだけでなく、運用実績のある過去のオブジェクト構成を選択することが可能になる。
【００６２】
また、存在しているオブジェクトを優先的に使用したオブジェクト構成に復旧することで、高速な復旧や、無線機器等の通信機器における対応エリアにあった通信プログラムへの自動的な復旧が可能になる。
【００６３】
また、オブジェクト構成履歴リポジトリ１４５にて管理する情報が差分のみの管理により、オブジェクトすべての構成履歴をバージョンとして管理する方法と比較し、履歴情報や解析処理量、処理時間など再構成にかかるオーバヘッドを削減することができる。
【００６４】
実施の形態３．
＜履歴情報を利用し、任意のオブジェクト構成へのロールバックの動作＞
上述した実施の形態２は、オブジェクト構成を再構成する毎に履歴管理部１３５にて運用中のオブジェクト構成であるオブジェクト構成リポジトリ１４２と新規のオブジェクト構成との差分である追加オブジェクト情報リポジトリ１４３と削除オブジェクト情報リポジトリ１４４の情報を取得し、差分履歴としてオブジェクト構成履歴リポジトリ１４５に格納し、管理し、再構成の途中で何らかの障害が発生した場合には、履歴管理部１３５にて、オブジェクト構成履歴リポジトリ１４５から運用実績のある過去のオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部１３２にてオブジェクトの接続関係を再確立することにより、過去に運用していた実績のあるオブジェクト構成に戻す障害復旧時の動作についてであったが、この実施の形態３では、障害復旧時に履歴情報を利用し、任意のオブジェクト構成へロールバックする動作について述べる。
【００６５】
すなわち、オブジェクト構成を再構成する毎に履歴管理部１３５にて運用中のオブジェクト構成であるオブジェクト構成リポジトリ１４２と新規のオブジェクト構成との差分である追加オブジェクト情報リポジトリ１４３と削除オブジェクト情報リポジトリ１４４の情報を取得し、差分履歴としてオブジェクト構成履歴リポジトリ１４５に格納し、管理し、そして、障害発生にかかわらず、管理装置１６０や通信機器１００のユーザからの運用実績のある任意のオブジェクト構成への更新指示により、履歴管理部１３５にて、オブジェクト構成履歴リポジトリ１４５から指示されたオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部１３２にてオブジェクトの接続関係を再確立することにより、過去に運用していた実績のある任意のオブジェクト構成に戻す障害復旧時の動作について説明する。
【００６６】
この実施の形態３を、図１に示すこの発明の機能構成を表すブロック図と、図８に示すオブジェクト構成の変化の例、図９に示すオブジェクト構成の差分の履歴を保持するオブジェクト構成履歴リポジトリのテーブル構造の例を利用しながら説明する。
【００６７】
実施の形態２と同様に、差分解析部１３３は、機能更新毎に追加オブジェクトおよび削除オブジェクトとなる差分情報を抽出し、履歴管理部１３５が差分となるオブジェクト情報をオブジェクト構成履歴リポジトリ１４５に登録していく。
【００６８】
次に、管理装置１６０や通信機器１００のユーザから過去のオブジェクト構成に戻す指示を構成管理部１３１へ要求する。
【００６９】
次に、要求を受けた構成管理部１３１は、管理装置１６０や通信機器１００のユーザから指定されたオブジェクト構成への復旧を履歴管理部１３５へ要求する。この実施の形態３では、図８のように、４段目の構成から２段目の構成にオブジェクト構成を復旧する指示を出していることとする。
【００７０】
次に、要求を受けた履歴管理部１３５は、オブジェクト構成履歴リポジトリ１４５の情報に基づき、オブジェクト構成リポジトリ１４２の情報を管理装置１６０や通信機器１００のユーザから指定されたオブジェクト構成に戻す（図９の２段目の構成を反映）。
これ以降の処理は、実施の形態２のステップＳ２０４以降の処理と同等である。
【００７１】
以上のように、実施の形態３によれば、オブジェクト構成履歴リポジトリ１４５にて過去に運用していたオブジェクト構成の履歴を管理することにより、障害の発生にかかわらず、管理装置１６０や通信機器１００のユーザからの指示によって、運用実績のある過去の任意のオブジェクト構成を選択することが可能になる。
【００７２】
また、管理装置１６０や通信機器１００のユーザからの指示により、無線機器等の通信機器における対応エリアにあった最適な通信プログラム（通信方式）への復旧が可能になる。
【００７３】
実施の形態４．
＜多重化時のロールバックの動作＞
上述した実施の形態３は、オブジェクト構成を再構成する毎に履歴管理部１３５にて運用中のオブジェクト構成であるオブジェクト構成リポジトリ１４２と新規のオブジェクト構成との差分である追加オブジェクト情報リポジトリ１４３と削除オブジェクト情報リポジトリ１４４の情報を取得し、差分履歴としてオブジェクト構成履歴リポジトリ１４５に格納し、管理し、そして、障害発生にかかわらず、管理装置１６０や通信機器１００のユーザからの運用実績のある任意のオブジェクト構成への更新指示により、履歴管理部１３５にて、オブジェクト構成履歴リポジトリ１４５から指示されたオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部１３２にてオブジェクトの接続関係を再確立することにより、過去に運用していた実績のある任意のオブジェクト構成に戻す障害復旧時の動作についてであったが、この実施の形態４では、多重化時のロールバックの動作について説明する。
【００７４】
すなわち、履歴管理部１３５がオブジェクト構成履歴リポジトリ１４５から運用実績のある任意のオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部１３２によってオブジェクトの接続関係を再確立する際、オブジェクトの再構成処理を多重化して並列に処理することにより、過去に運用していた実績のある任意のオブジェクト構成を運用中のオブジェクト構成に影響を与えず、障害発生時および障害発生時以外の場合においても任意のオブジェクト構成に任意のタイミングで、かつ再構成にかかる切り替え時間を短縮する復旧方式の動作について説明する。
【００７５】
この実施の形態４を、図１に示すこの発明の機能構成を表すブロック図と、図８に示すオブジェクト構成の変化の例、図９に示すオブジェクト構成の差分の履歴を保持するオブジェクト構成履歴リポジトリのテーブル構造の例、図１１に示す多重化によるオブジェクト再構成の例、図１２に示す復旧時の多重化したオブジェクト構成リポジトリのテーブル構造の例、図１３に示す復旧後の切り替え時の多重化したオブジェクト構成リポジトリのテーブル構造の例を利用しながら、図１４に示すこの発明の実施の形態４における動作を示すフローチャートを参照して説明する。
【００７６】
この実施の形態においては、図８のようにオブジェクト構成を変更し、４段目の構成から２段目の構成に復旧するときの動作について説明する。
【００７７】
まず、ステップＳ４００において、差分解析部１３３は機能更新毎に追加オブジェクトおよび削除オブジェクトとなる差分情報を抽出する。
【００７８】
次に、ステップＳ４０１において、差分解析部１３３から差分解析の結果を受け、履歴管理部１３５は差分となるオブジェクト情報をオブジェクト構成履歴リポジトリ１４５に登録する。すなわち、前の行との差分のみ登録する。
【００７９】
例えば、図８の１段目の初期の構成から２段目の構成（オブジェクトｂがバージョンアップしたことを想定）に変更したときは、追加オブジェクトがｂ’であり、削除オブジェクトがｂであることから、ｂの入れ替えであると判断し差分情報として、オブジェクトｂ'のみオブジェクト構成履歴リポジトリ１４５に登録する。その他、変更なしであれば変更なしフラグ（図９では矢印とした）を設定し、差分情報が終了した場合には、該当行の最後の列に終了フラグ（図９では”null”とした）を各行単位で設定する。なお、削除したときも行の最後に終了フラグをつけている（図９の２段目）。このように、差分履歴のみ蓄積したテーブルが図９である。
この処理をオブジェクト構成の変更毎に登録していく（ステップＳ４０２）。
【００８０】
次に、管理装置１６０や通信機器１００のユーザから過去のオブジェクト構成に戻す指示を構成管理部１３１へ要求する（ステップＳ４０３）と、要求を受けた構成管理部１３１は、管理装置１６０や通信機器１００のユーザから指定されたオブジェクト構成への復旧を履歴管理部１３５へ要求する（ステップＳ４０４）。この実施の形態４では、図８のように、４段目の構成から２段目の構成にオブジェクト構成を復旧する指示を出していることとする。
【００８１】
次に、ステップＳ４０５において、要求を受けた履歴管理部１３５は、オブジェクト構成履歴リポジトリ１４５の情報に基づき、管理装置１６０や通信機器１００のユーザから指定されたオブジェクト構成をオブジェクト構成リポジトリ１４２の構築系（Side２）に登録する（図１２）。
【００８２】
次に、ステップＳ４０６において、履歴管理部１３５より登録した情報の復旧の要求を受けた構成管理部１３１は、オブジェクト構成リポジトリ１４２の構築系（Side２）に基づいて、復旧するオブジェクト（ａとｂ’）の再起動を行い、接続関係の確立をコネクション管理部１３２へ要求する。
【００８３】
次に、ステップＳ４０７において、要求を受けたコネクション管理部１３２は、構成情報をオブジェクト構成リポジトリ１４２の構築系（Side２）から読み取り、対象となる旧オブジェクト（ａとｂ’）のアドレスとして利用するＩＯＲ（Interoperable Object Reference）を検索し、オブジェクト構成情報とＩＯＲに基づいて旧オブジェクト（ａとｂ’）の接続関係を確立する。
【００８４】
次に、ステップＳ４０８において、コネクション管理部１３２からの接続関係の確立の通知を受け、構成管理部１３１は運用系（Side１）と構築系（Side２）を切り替えることでオブジェクト構成を復旧し、復旧前のオブジェクトの情報であるオブジェクトａ'とｅ、ｆを停止する。併せて、オブジェクト構成リポジトリ１４２のSide情報を図１３の様に更新する。
【００８５】
以降、管理装置１６０や通信機器１００のユーザからオブジェクト構成の更新指示があったときは、同様に構築系（Side２）にて一旦オブジェクトを構築してから、オブジェクト構成の復旧を行う。
【００８６】
以上のように、実施の形態４によれば、選択したオブジェクト構成に基づいてコネクション管理部１３２によってオブジェクトの接続関係を再確立する際、オブジェクトの再構成処理を多重化して並列に処理することにより、過去に運用していた実績のある任意のオブジェクト構成を運用中のオブジェクト構成に影響を与えず、任意のオブジェクト構成に任意のタイミングで、かつ再構成にかかる切り替え時間を短縮した高速な復旧が可能になる。すなわち、切り替えのための通信機器の停止時間が短縮できる。
【００８７】
また、オブジェクトの停止をせずに、オブジェクトを動作したまま多重化して管理しておくことにより、障害発生時においても、高速な切り替えにより、通信機器の停止時間を短くした高速な復旧が可能になる。
【００８８】
実施の形態５．
＜オブジェクト起動パラメータ変更時のロールバックの動作＞
上述した実施の形態４は、履歴管理部１３５がオブジェクト構成履歴リポジトリ１４５から運用実績のある任意のオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部１３２によってオブジェクトの接続関係を再確立する際、オブジェクトの再構成処理を多重化して並列に処理することにより、過去に運用していた実績のある任意のオブジェクト構成を運用中のオブジェクト構成に影響を与えず、任意のオブジェクト構成に任意のタイミングで、かつ再構成にかかる切り替え時間を短縮する復旧方式の動作についてであったが、この実施の形態５では、オブジェクト起動パラメータ変更時のロールバックの動作について説明する。
【００８９】
すなわち、オブジェクト構成の変更において、運用中のオブジェクトとオブジェクト名やバージョン番号が同一であり、オブジェクトの起動パラメータのみ異なるオブジェクトの入れ替えを行った際に、オブジェクト起動失敗等の障害発生により旧構成に戻す障害復旧方式の動作について説明する。
【００９０】
この実施の形態５を、図１に示すこの発明の機能構成を表すブロック図と、図３に示すオブジェクト構成リポジトリのテーブル構造の例と、図１５に示すアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例、図１６に示す新規の構成管理プロファイルのオブジェクト構成情報の例と、図１７に示す追加オブジェクト情報リポジトリのテーブル構造の例、図１８に示す削除オブジェクト情報リポジトリのテーブル構造の例、図１９に示す更新後のオブジェクト構成リポジトリのテーブル構造の例を利用しながら説明する。
【００９１】
この実施の形態５においては、図１５のようなオブジェクト構成にて、オブジェクトｂの起動パラメータを変更して再起動した後に障害が発生し、元のオブジェクトの起動パラメータにて再起動することにより復旧するときの動作について説明する。
【００９２】
まず、実施の形態１と同様、管理装置１６０から新規の構成管理プロファイル１１２（図１６）を通信機器１００へダウンロードする。
【００９３】
次に、管理装置１６０からの更新指示または通信機器１００のユーザからの指示あるいはダウンロードが完了したことを構成管理部１３１が識別し、差分解析の要求を差分解析部１３３へ要求する。次に、新規の構成管理プロファイル１１２である図１６と図３の運用中の情報であるオブジェクト構成リポジトリ１４２の情報を差分解析部１３３にて差分を抽出する。差分の解析によりアプリケーション・パッケージ１１０を構成するオブジェクト数、オブジェクト名、バージョン番号は同一であるが、オブジェクトｂの起動パラメータが追加（-Param）されたことがわかる。このため、差分解析部１３３では、差分となるのはオブジェクトｂであると判断し、起動パラメータが追加された新規のオブジェクトｂの情報を追加オブジェクトとして追加オブジェクト情報リポジトリ１４３に、入れ替え対象となる旧オブジェクトｂの情報を削除オブジェクトとして削除オブジェクト情報リポジトリ１４４に登録する（図１７、図１８参照）。
【００９４】
次に、差分解析部１３３から差分解析の結果を受け、構成管理部１３１はオブジェクト構成リポジトリ１４２を更新する（図１９参照）。
【００９５】
次に、構成管理部１３３は、オブジェクト構成リポジトリ１４２の更新後、旧オブジェクトｂが接続している隣接オブジェクトａとの接続関係の切断をコネクション管理部１３２へ要求する。コネクション管理部１３２によって接続関係の切断処理を行い、構成管理部１３３は切断完了の通知を受けた後、旧オブジェクトｂを停止し、起動パラメータを追加して再度オブジェクトｂを起動し直す。
【００９６】
この再起動や再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗、リポジトリへのデータ登録の失敗等、何らかの障害が発生し、障害復旧部１３４にてその障害を検出すると、追加オブジェクト情報リポジトリ１４２と削除オブジェクト情報リポジトリ１４４の情報に基づいて、オブジェクト構成リポジトリ１４２のオブジェクト構成情報を更新前の情報に復旧する。すなわち、図１７と図１８から入れ替えられたオブジェクトはｂであることがわかるため、オブジェクト構成リポジトリ１４２からオブジェクトｂに関係する情報を削除し、起動パラメータの指定が無い旧オブジェクトｂの情報へ戻す（図３に戻る）。
【００９７】
これ以降の処理は、旧オブジェクトｂの再起動や隣接オブジェクトとの再接続など、実施の形態１のステップＳ１０７に続く処理を行っていくことで、更新前のオブジェクト構成に復旧することができる。
【００９８】
なお、この実施の形態５では、同じオブジェクト名の入れ替えであったため、一旦入れ替え対象となるオブジェクトを停止してから、再度新規のオブジェクトを起動していたが、実施の形態４のような多重化により並列に処理すれば、同時に起動しておくことも可能である。これは、オブジェクト起動時にはそれぞれ異なるプロセスＩＤ等の識別子が付与されるため、同じオブジェクト名でも識別することができることによる。
【００９９】
以上のように、実施の形態５によれば、オブジェクト構成の変更において、運用中のオブジェクトと新規のオブジェクトのオブジェクト名やバージョン番号が同一で、オブジェクトの起動パラメータのみ異なる場合であっても、差分解析部１３３にて差分情報を抽出し、保持しておくことにより、何らかの障害が発生した場合は、更新前の情報に復旧することが可能になる。
【０１００】
実施の形態６．
＜オブジェクトの起動や停止に関する障害を検出する動作＞
上述した実施の形態５は、オブジェクト構成の変更において、運用中のオブジェクトとオブジェクト名やバージョン番号が同一であり、オブジェクトの起動パラメータのみ異なるオブジェクトの入れ替えを行った際に、オブジェクト起動失敗等の障害発生により旧構成に戻す障害復旧方式の動作についてであったが、この実施の形態６では、オブジェクトの起動や停止に関する障害を検出する動作について説明する。
【０１０１】
すなわち、オブジェクトの起動および停止の指示を出し、その結果として起動および停止の結果を判定することにより、構成管理部１３１にて障害を検出する動作について説明する。
【０１０２】
この実施の形態６を、図１に示すこの発明の機能構成を表すブロック図と、図１５に示すアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例、図２０に示すオブジェクト起動による障害検出の処理シーケンスと、図２１に示すオブジェクト停止による障害検出の処理シーケンスを利用しながら説明する。
【０１０３】
まず、ステップＳ６００において、差分解析部１３３からの差分解析の結果を受け、構成管理部１３１はオブジェクト構成リポジトリ１４２を更新する。
【０１０４】
次に、ステップＳ６０１において、構成管理部１３３は、オブジェクト構成リポジトリ１４２の差分を確認し、旧オブジェクトｂが接続している隣接オブジェクトａとの接続関係の解放をコネクション管理部１３２へ要求する（ステップＳ６０２）。要求を受けたコネクション管理部１３２は接続関係の解放処理を、制御インタフェースを介して（この実施の形態では、例として接続用の制御インタフェースをdisconnect（）とする）行う（ステップＳ６０３）。
【０１０５】
次に、ステップＳ６０４において、オブジェクトａは隣接するオブジェクトであるｂとの接続を解放し、切断の完了をコネクション管理部１３２へ通知する（ステップＳ６０５）。
【０１０６】
次に、ステップＳ６０６において、コネクション管理部１３２を介して、切断完了の通知を受けた後、構成管理部１３３は、新規のオブジェクトを起動するために、新規オブジェクトのプロセスを生成する。プロセス生成後、起動パラメータを追加して再度オブジェクトｂを新規オブジェクトとして起動し直す（ステップＳ６０７）。この処理により、オブジェクトｂは、起動パラメータを追加して起動される（ステップＳ６０８）。
なお、このプロセス生成とオブジェクトの起動の処理は、ＵＮＩＸ（登録商標）など一般的なＯＳに備わっているシステムコール（fork（）、exec（））を使用している。
【０１０７】
次に、ステップＳ６０９において、構成管理部１３１は起動後の新規のオブジェクトｂが正しく起動していることを確認する。ここで、新規のオブジェクトｂの存在していなかった場合には、オブジェクトの起動が正常に終了しなかったと判断し、障害として検出する。これ以降の処理は、実施の形態５の障害検出後と同様の流れによって元の構成に復旧する。
なお、オブジェクト起動確認の処理は、起動したオブジェクト名前とそのプロセスＩＤにより識別することができる（ＵＮＩＸなどのＯＳに一般的に備わっているpsコマンドなど）。
【０１０８】
一方、起動パラメータを追加して新規のオブジェクトｂの起動が正常に完了した場合には、旧オブジェクトｂの停止処理が引き続き行われる。オブジェクト停止の場合は、同様に構成管理部１３３にて、オブジェクト構成リポジトリ１４２の差分を確認した後（ステップＳ６１１）、旧オブジェクトｂを停止する（ステップＳ６１２）。
なお、このオブジェクトの停止の処理は、ＵＮＩＸなど一般的なＯＳに備わっているシステムコール（kill（））を使用している。
【０１０９】
次に、ステップＳ６１３において、構成管理部１３１は停止した旧オブジェクトｂが正しく停止していることを確認する。ここで、旧オブジェクトｂが存在していた場合には、オブジェクトの停止が正常に終了しなかったと判断し、障害として検出する。
なお、オブジェクト停止確認の処理は、停止したオブジェクト名前とそのプロセスＩＤにより識別することができる（ＵＮＩＸなどのＯＳに一般的に備わっているpsコマンドなど）。
【０１１０】
以上のように、実施の形態６によれば、オブジェクトの起動および停止の指示を出し、その指示の結果として起動および停止の結果を判定することにより、オブジェクト起動時の障害が検出できる。また、これにより、オブジェクト（プロセス）単位での復旧も可能になる。
【０１１１】
また、このようにオブジェクト毎に制御が可能になるため、メモリ領域毎の入れ替え方式と比較し、アプリケーション・パッケージの部分的な入れ替えによる復旧が可能になる。
【０１１２】
また、オブジェクトの起動や停止の失敗を再構成の途中で障害として検出可能なため、障害復旧までの時間を短縮することができる。
【０１１３】
さらに、構成管理プロファイル１１２に起動タイムアウトの時間を設定した場合には、タイムアウトの時間が満了するまでオブジェクト起動の確認処理を繰り返すことにより、起動時間が大きいオブジェクトについても、起動するのに十分な時間を設定することで、安全な起動確認と障害検出ができる。
【０１１４】
実施の形態７．
＜制御インタフェースによりオブジェクトの接続関係の接続または切断検出動作＞
上述した実施の形態６は、オブジェクトの起動および停止の指示を出し、その結果としてオブジェクトの起動および停止の結果を判定することにより、構成管理部１３１にて障害を検出する動作についてであったが、この実施の形態７では、制御インタフェースによりオブジェクトの接続関係の接続または切断検出動作について説明する。
【０１１５】
すなわち、構成管理部１３１およびコネクション管理部１３２に、管理対象となるオブジェクトの制御インタフェースを備えるとともに、管理対象となるオブジェクトに構成管理部１３１およびコネクション管理部１３２からの指示を受け取るための制御インタフェースを備え、制御インタフェースを介してオブジェクトの接続関係の確立や解放の指示を出し、管理対象となるオブジェクトは、制御インタフェースによって構成管理部１３１およびコネクション管理部１３２からの指示を受け、隣接オブジェクトとの接続または切断の処理を行い、その処理の結果として接続または切断における障害を検出する動作について説明する。
【０１１６】
この実施の形態７を、図１に示すこの発明の機能構成を表すブロック図と、図２２に示すアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例、図２３に示すオブジェクトの接続関係の確立において障害の発生を検出する処理シーケンスを利用しながら説明する。
【０１１７】
この実施の形態７は、図２２のようなオブジェクト構成にて、オブジェクトｂのバージョンアップにより、オブジェクトｂをｂ’に入れ替えることにより再構成する際に、隣接オブジェクトとの接続関係の確立において障害発生を検出するときの動作について説明する。ただし、オブジェクトｂ'はプログラム内部のみの変更を想定しており、インタフェースには変更がないものとする。このため、オブジェクトａの接続先の変更はない（ミドルウェア１２０によって接続先ｂをｂ’に付け替えている）。
【０１１８】
まず、差分解析部１３３からの差分解析の結果を受け、構成管理部１３１はオブジェクト構成リポジトリ１４２を更新し、構成管理部１３３は、オブジェクト構成リポジトリ１４２の差分の確認と、新規のオブジェクトｂ'の起動を行う。
【０１１９】
次に、ステップＳ７００において、旧オブジェクトｂが接続している隣接オブジェクトａとの接続関係の解放をコネクション管理部１３２へ要求する。要求を受けたコネクション管理部１３２は接続関係の解放処理を、制御インタフェースを介して（この実施の形態では、例として接続用の制御インタフェースをdisconnect（）とする）行う（ステップＳ７０１）。
【０１２０】
次に、ステップＳ７０２において、オブジェクトａは隣接するオブジェクトであるbとの接続関係を解放し、切断処理の結果をコネクション管理部１３２へ通知する（ステップＳ７０３）。このとき、切断が正常に終了しなかった場合には、コネクション管理部１３２を介して、構成管理部１３１は障害として検出する。これにより、復旧処理を開始する。
【０１２１】
一方、切断処理が完了した場合は、次にステップＳ７０４、Ｓ７０５において、構成管理部１３１は旧オブジェクトｂの停止処理を引き続き行う。
【０１２２】
次に、ステップＳ７０６において、構成管理部１３１は、新規のオブジェクトｂ'との接続関係の確立をコネクション管理部１３２へ要求する。要求を受けたコネクション管理部１３２は、構成情報をオブジェクト構成リポジトリ１４２から読み取り、対象となる新規オブジェクトｂ'に隣接するオブジェクトａに対して接続関係の確立処理を、制御インタフェースを介して（この実施の形態では、例として接続用の制御インタフェースをconnect（）としている。また、新規のオブジェクトｂ'は、旧オブジェクトｂとインタフェースの変更がないことからオブジェクトの入れ替えで対応できる。したがって、オブジェクトａの接続先の変更はなく、制御インタフェースconnect（）にて接続先オブジェクトをbとして指示している。すなわち、インタフェースに変更がないため、ミドルウェア１２０によって接続先ｂをｂ’に付け替えることにより接続関係が確立できる）行う（ステップＳ７０７）。
【０１２３】
次に、ステップＳ７０８において、オブジェクトａは隣接する新規のオブジェクトであるｂ’との接続関係を確立し、接続処理の結果をコネクション管理部１３２へ通知する（ステップＳ７０９）。このとき、接続が正常に終了しなかった場合には、コネクション管理部１３２を介して、構成管理部１３１は障害として検出する。これにより、復旧処理を開始する。
【０１２４】
以上のように、実施の形態７によれば、制御インタフェースを介してオブジェクトの接続関係の確立や解放の指示を出し、管理対象となるオブジェクトは、制御インタフェースによって構成管理部１３１およびコネクション管理部１３２からの指示を受け、隣接オブジェクトとの接続または切断の処理を行い、その結果としてオブジェクトの起動および停止の結果を判定することにより、オブジェクト間の接続関係の確立または解放時に障害が検出できるため、オブジェクト構成後に障害を検出するのと比較し、高速な復旧が可能になる。
【０１２５】
また、オブジェクト毎に制御が可能になるため、プログラム全体の再起動を不要とし、動的かつ高速な復旧が可能になる。
【０１２６】
また、オブジェクトの接続関係の接続または切断の失敗を再構成の途中で障害として検出可能なため、障害復旧までの時間を短縮することができる。
【０１２７】
さらに、構成管理プロファイル１１２に接続タイムアウトの時間を設定した場合には、タイムアウトの時間が満了するまでオブジェクト接続処理応答を待つことにより、接続時間が大きいオブジェクトについても、接続するのに十分な時間を設定することで、安全な接続確認と障害検出ができる。
【図面の簡単な説明】
【０１２８】
【図１】この発明を実現するのに必要なソフトウェア障害復旧システムの機能構成を示す図である。
【図２】この発明の実施の形態１に係るアプリケーション・パッケージ１１０中のオブジェクトが更新後に障害が発生し復旧するときの例を示す説明図である。
【図３】この発明の実施の形態１及び５に係るオブジェクト構成リポジトリ１４２のテーブル構造の例を示す図である。
【図４】この発明の実施の形態１に係る構成管理プロファイル１１２のオブジェクト構成情報の例を示す図である。
【図５】この発明の実施の形態１に係る追加オブジェクト情報リポジトリ１４３のテーブル構造の例を示す図である。
【図６】この発明の実施の形態１に係る削除オブジェクト情報リポジトリ１４４のテーブル構造の例を示す図である。
【図７】この発明の実施の形態１に係るソフトウェア障害復旧システムの動作を説明するフローチャートである。
【図８】この発明の実施の形態２−４に係るオブジェクト構成の変化の例を示す図である。
【図９】この発明の実施の形態２−４に係るオブジェクト構成の差分の履歴を保持するオブジェクト構成履歴リポジトリのテーブル構造の例を示す図である。
【図１０】この発明の実施の形態２に係るソフトウェア障害復旧システムの動作を説明するフローチャートである。
【図１１】この発明の実施の形態４に係る多重化によるオブジェクト再構成の例を示す図である。
【図１２】この発明の実施の形態４に係る復旧時の多重化したオブジェクト構成リポジトリのテーブル構造の例を示す図である。
【図１３】この発明の実施の形態４に係る復旧後の切り替え時の多重化したオブジェクト構成リポジトリのテーブル構造の例を示す図である。
【図１４】この発明の実施の形態４に係るソフトウェア障害復旧システムの動作を示すフローチャートである。
【図１５】この発明の実施の形態５に係る図１５に示すアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例を示す図である。
【図１６】この発明の実施の形態５及び６に係る新規の構成管理プロファイルのオブジェクト構成情報の例を示す図である。
【図１７】この発明の実施の形態５に係る追加オブジェクト情報リポジトリのテーブル構造の例を示す図である。
【図１８】この発明の実施の形態５に係る削除オブジェクト情報リポジトリのテーブル構造の例を示す図である。
【図１９】この発明の実施の形態５に係る更新後のオブジェクト構成リポジトリのテーブル構造の例を示す図である。
【図２０】この発明の実施の形態６に係るオブジェクト起動による障害検出の処理シーケンスを示す図である。
【図２１】この発明の実施の形態５及び６に係るオブジェクト停止による障害検出の処理シーケンスを示す図である。
【図２２】この発明の実施の形態７に係るアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例を示す図である。
【図２３】この発明の実施の形態７に係るオブジェクトの接続関係の確立において障害の発生を検出する処理シーケンスを示す図である。
【符号の説明】
【０１２９】
１００  通信機器、１１０  アプリケーション・パッケージ、１１１  プロファイル、１１２  構成管理プロファイル、１１３  インタフェース定義ファイル、１１４  管理対象オブジェクト群、１２０  ミドルウェア、１３０  オブジェクト制御部、１３１  構成管理部、１３２  コネクション管理部、１３３  差分解析部、１３４  障害復旧部、１３５  履歴管理部、１４０  オブジェクト構成管理部、１４１  リポジトリ群、１４２  オブジェクト構成リポジトリ、１４３  追加オブジェクト情報リポジトリ、１４４  削除オブジェクト情報リポジトリ、１４５  オブジェクト構成履歴リポジトリ、１５０  ＯＳ（Operating System）、１６０  管理装置。
【図１】
2006309413.tif 000003
【図２】
2006309413.tif 000004
【図３】
2006309413.tif 000005
【図４】
2006309413.tif 000006
【図５】
2006309413.tif 000007
【図６】
2006309413.tif 000008
【図７】
2006309413.tif 000009
【図８】
2006309413.tif 000010
【図９】
2006309413.tif 000011
【図１０】
2006309413.tif 000012
【図１１】
2006309413.tif 000013
【図１２】
2006309413.tif 000014
【図１３】
2006309413.tif 000015
【図１４】
2006309413.tif 000016
【図１５】
2006309413.tif 000017
【図１６】
2006309413.tif 000018
【図１７】
2006309413.tif 000019
【図１８】
2006309413.tif 000020
【図１９】
2006309413.tif 000021
【図２０】
2006309413.tif 000022
【図２１】
2006309413.tif 000023
【図２２】
2006309413.tif 000024
【図２３】
2006309413.tif 000025