JP4744921B2 - ソフトウェア障害復旧システム - Google Patents

ソフトウェア障害復旧システム Download PDF

Info

Publication number
JP4744921B2
JP4744921B2 JP2005129695A JP2005129695A JP4744921B2 JP 4744921 B2 JP4744921 B2 JP 4744921B2 JP 2005129695 A JP2005129695 A JP 2005129695A JP 2005129695 A JP2005129695 A JP 2005129695A JP 4744921 B2 JP4744921 B2 JP 4744921B2
Authority
JP
Japan
Prior art keywords
configuration
information
management unit
repository
connection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005129695A
Other languages
English (en)
Other versions
JP2006309413A (ja
Inventor
雄三 別所
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2005129695A priority Critical patent/JP4744921B2/ja
Publication of JP2006309413A publication Critical patent/JP2006309413A/ja
Application granted granted Critical
Publication of JP4744921B2 publication Critical patent/JP4744921B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、無線機などの通信機器の機能をソフトウェアの入れ替えによって変更し、単一の機器により様々なシステムへの適用を可能にする機能更新技術におけるソフトウェア障害復旧システムに関するものである。
これまで、通信機器などのダウンロードによるソフトウェア入れ替え(機能更新)技術における障害発生時の復旧方法には、様々な取り組みが行われている。
一般的な障害復旧方式としては、分散環境においてソフトウェア資源を管理する方法であり、新旧バージョンに関するアプリケーション全体のファイル情報を管理テーブルに保持し、(必要に応じて)旧バージョンのアプリケーションに戻す手法が提案されている(例えば、特許文献1参照)。
また、ファームウェアの遠隔更新方法として、基地局から遠隔装置にダウンロードする際に、更新されるアドレス領域(旧部分)を遠隔装置内メモリの退避領域に退避しておき(差分退避)、新版での立上げに失敗した場合は、退避した旧部分を元のアドレス領域に復元することによって部分的な更新と復元を実現する方式が提案されている(例えば、特許文献2参照)。
また、移動通信システムでの運用プログラム更新方法であって、新規プログラムを上位装置から下位装置へダウンロードした後、下位装置にて起動失敗を判定すると、上位装置に対して失敗を通知し、通知された上位装置は、旧プログラムの再起動を下位装置へ指示することにより復旧する方式が提案されている。これは、下位装置にてメモリを2面持ち、新旧プログラムをそれぞれ保持し、上位装置の判断に基づきプログラムの切り替えを行うことで実現している(例えば、特許文献3参照)。
また、移動通信システム等のソフトウェア更新方法であって、新規ソフトウェアダウンロード時、現用ソフトウェアを保持し、下位装置にて新規ソフトウェアでの試運転結果や、ハードウェアとの適合性を自ら判断することにより、必要時(失敗時)に現運用(旧ソフトウェア)に復旧する方式についても提案されている(例えば、特許文献4参照)。
特開平10−171635号公報 特開2000−330779号公報 特開2001−134428号公報 特開2003―122574号公報
しかし、上述した特許文献1では、端末上のワークメモリのようなソフトウェア領域にアプリケーション・ファイルを登録しておき、必要時にアプリケーション・ファイル単位で再起動して復旧するソフトウェアの入れ替え方式であるため、アプリケーション・ファイルの差分のみの部分入れ替えには対応していない。
また、復旧時にオブジェクトの接続等の接続に関する処理が不要である反面、複数のファイルからアプリケーション・パッケージが構成され、ファイル間でデータの授受があるような場合には、通信のためのインタフェース仕様の規定がないため、インタフェース仕様は固定でないと対応できない。すなわち、受け渡しするデータなどインタフェースの仕様は変更できないという問題があった。
さらに、管理しているバージョンが新旧1つずつのため、障害時には直前に運用していた構成に戻すことはできるが、それ以前の任意の構成には戻すことができないという問題があった。
また、特許文献2では、基地局にて遠隔装置からバージョンを取得し、取得したバージョンから更新部分を解析することで入れ替え部分を特定し、入れ替え対象となるファームウェアの特定のアドレス領域のみダウンロードすることによって、遠隔装置は基地局から指示を受けたアドレス領域のみ退避しておけば良く、障害時には該当するアドレス領域のみ復元すればよいため、遠隔装置による解析処理を必要とせずに差分の保存と復元ができる。しかし、端末上のワークメモリやフラッシュROM(Read Only Memory)のようなソフトウェア領域毎に入れ替えるため、ワークメモリやフラッシュROMのアドレスやサイズなど領域管理が必要となり、管理が複雑になるという問題があった。
また、固定された全体のアドレス領域の中から任意のアドレス領域を入れ替える方式であるため、機能追加した場合には元の構成に復元することが難しいという問題があった。 また、基地局にて差分を解析するため、多数の端末を管理する場合には、基地局による解析処理の負荷が増大し、管理が困難になるという問題があった。
さらに、新旧のソフトウェア構成を同時に保持し、これらを入れ替えることにより、信頼性を確保しているが、更新部分のソフトウェアは再構成後の機能検証でのみ障害発生を検出しているため、更新途中の障害については検出することができず、障害検出までの時間が大きくなるという問題があった。
また、特許文献3では、上位装置から下位装置にプログラム全体のダウンロードを行い、プログラム毎に下位装置にて保存しておき、起動に失敗した場合は、保存していた旧プログラムの再起動を行うことによって復旧するため、複雑な処理を必要とせず容易に復旧することが可能である反面、プログラムの部分的な入れ替えには対応していないため、復旧のためにプログラム全体の情報を保持しなければならず、メモリ等のリソースに十分な容量が必要になるという問題があった。
また、特許文献4では、上位装置から下位装置にプログラム全体をダウンロードし、ダウンロードした新規プログラムを試運転することにより、試運転の結果、障害が発生した場合は元の構成に復旧する方式であるため、安全に更新と復旧が行える反面、一度更新してしまうと、復旧のために保存しておいた領域が新規のプログラムによって上書きされてしまうため、元の構成に戻すことができないという問題があった。
また、特許文献3と同様に、プログラムの部分的な入れ替えに対応していないため、復旧のためにプログラム全体の情報を保持しなければならず、メモリ等のリソースに十分な容量が必要になるという問題もある。
また、これらの従来のソフトウェア障害復旧方式では、動的な入れ替えには対応しておらず、いずれも復旧時に再起動の必要があり、復旧までの時間が大きくなる等の問題があった。
この発明は上記のような問題点を解決するためになされたもので、一般的なアプリケーション・パッケージ中のソフトウェアを構成するオブジェクト(機能)の接続関係(コネクション)を構成管理プロファイルにて定義した情報に基づいて確立し、プログラムの不具合改修や機能追加により新規のオブジェクトをダウンロードする際には、新規の構成が記述された構成管理プロファイルをダウンロードし、運用中の構成と比較することによって差分を抽出し、抽出した差分情報を保持しておくことにより、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合は、保持しておいた必要最小限の情報のみによって旧構成に戻すことを可能にし、オブジェクト単位の入れ替えにより、差分のみの部分的な復旧を実現し、管理情報や解析処理量、処理時間など再構成にかかるオーバヘッドを削減することができるソフトウェア障害復旧システムを得ることを目的とする。
この発明に係るソフトウェア障害復旧システムは、通信機器の機能をオブジェクトの集合として管理し、オブジェクトの入れ替えおよびオブジェクト間の相互接続の切り替えによって、単一の機器において種々の機能を実現するソフトウェア機能更新技術におけるソフトウェア障害復旧システムであって、通信機器内に、サーバである管理装置からダウンロードする、オブジェクトの接続関係を記述した構成管理プロファイルと管理対象のオブジェクト群からなるアプリケーション・パッケージと、前記アプリケーション・パッケージ内のオブジェクト間の通信をサポートするためのオブジェクト制御部とオブジェクト構成管理部とからなるミドルウェアとを備え、前記ミドルウェアのオブジェクト制御部は、前記構成管理プロファイルからデータを取り込み構成情報の登録とオブジェクトの起動、停止を行う構成管理部と、オブジェクトの起動、停止および構成登録後に管理された構成情報に基づきオブジェクトの接続を確立するためのオブジェクトの制御を行うコネクション管理部と、オブジェクト更新時に新規の構成管理プロファイルと運用中のオブジェクト構成とを比較し差分を解析する差分解析部とを有し、前記ミドルウェアのオブジェクト構成管理部は、運用中のオブジェクト構成を保持するオブジェクト構成リポジトリと、前記差分解析部にて差分として抽出した追加オブジェクトの情報を保持する追加オブジェクト情報リポジトリと、削除オブジェクトの情報を保持する削除オブジェクト情報リポジトリとを有し、前記オブジェクト制御部は、再構成の途中でオブジェクトの起動の失敗または他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗により障害が発生した場合は、前記追加オブジェクト情報リポジトリや前記削除オブジェクト情報リポジトリに保持しておいた差分情報を基に前回運用していた構成に戻す障害復旧部をさらに有することを特徴とする。
この発明によれば、一般的なアプリケーション・パッケージ中のソフトウェアを構成するオブジェクトの接続関係を構成管理プロファイルにて定義した情報に基づいて確立し、プログラムの不具合改修や機能追加により新規のオブジェクトをダウンロードする際には、新規の構成が記述された構成管理プロファイルをダウンロードし、運用中の構成と比較することによって差分を抽出し、抽出した差分情報を保持しておくことにより、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合は、保持しておいた必要最小限の情報のみによって旧構成に戻すことを可能にする。また、オブジェクト単位の入れ替えにより、差分のみの部分的な復旧を実現し、管理情報や解析処理量、処理時間など再構成にかかるオーバヘッドを削減することができる。
この発明に係るソフトウェア障害復旧システムは、分散オブジェクト技術の国際標準であるCORBA(Common Object Request Broker Architecture)をベースとし、オブジェクトの接続関係(コネクション)を構成管理プロファイルにより定義した情報に基づいて、オブジェクト間の接続関係を確立し、オブジェクトの入れ替え時に入れ替え対象となるオブジェクトを解析することにより、アプリケーション・パッケージ内のオブジェクト群の部分入れ替えを行い、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合に、差分として解析し、保持しておいた差分情報を基に前回運用していた構成に復元する。
実施の形態1.
<差分管理と差分のみのロールバックの動作>
図1は、この発明を実現するのに必要なソフトウェア障害復旧システムの機能構成を示す図である。図1に示すソフトウェア障害復旧システムは、通信機器の機能をオブジェクトの集合として管理し、オブジェクトの入れ替えおよびオブジェクト間の相互接続の切り替えによって、単一の機器において種々の機能を実現するソフトウェア機能更新技術におけるソフトウェア障害復旧システムであり、ソフトウェアの入れ替えによって機能を変更する通信機器(端末局、移動局あるいは基地局など)100内に備えられて、ネットワークを介して管理装置160からダウンロードする管理対象となるオブジェクト群から構成するアプリケーション・パッケージ(機能を実現するために必要となるファイルなど関連する機能一式)110と、パッケージ内のオブジェクト間の通信をサポートするためのオブジェクト制御部やオブジェクト構成管理部からなるミドルウェア120と、通信機器内のソフトウェアの基盤となるOS(Operating System)150とを備えている。なお、管理装置160は、ソフトウェア開発者によって新規に作成したソフトウェアのダウンロード元となり、ダウンロードや更新指示を実施する。
アプリケーション・パッケージ110は、アプリケーション・パッケージ110を構成するオブジェクトの接続情報やオブジェクト間の接続のために各オブジェクトが提供するインタフェース情報などの機能更新に必要なプロファイル111と、パッケージ内の管理対象となるオブジェクト群114とからなり、プロファイル111は、通信機器内に管理装置からダウンロードする機能(オブジェクト)の接続関係を記述した構成管理プロファイル112と、分散オブジェクト技術の国際標準であるCORBA標準の記述様式にてパッケージ内の各オブジェクトが提供するインタフェースの情報が記述されているインタフェース定義(IDL:Interface Definition Language)ファイル113とを有する。
ミドルウェア120は、オブジェクトの構成を管理するオブジェクト管理部やオブジェクトのコネクションを管理するコネクション管理部、オブジェクトの差分解析を行う差分解析部、障害発生時には元のオブジェクト構成にオブジェクト構成リポジトリの情報を復旧する障害復旧部、差分解析の結果を履歴として管理する履歴管理部からなるオブジェクト制御部130と、オブジェクトの構成を構築するためのリポジトリを管理するオブジェクト構成管理部140とを備える。
オブジェクト制御部130は、構成管理プロファイル112からデータを取り込み、オブジェクト構成リポジトリ142へ構成情報を登録し管理する構成管理部131と、構成登録後にオブジェクト構成リポジトリにて管理された構成情報に基づきオブジェクトの接続関係(コネクション)を確立するためのオブジェクトの制御を行うコネクション管理部132と、オブジェクト更新時に新規の構成管理プロファイルと運用中のオブジェクト構成を保持したオブジェクト構成リポジトリ142の情報に基づいて運用中のオブジェクト構成と新規のオブジェクト構成とを比較することで差分を解析し、解析した結果を追加オブジェクト情報リポジトリ143と削除オブジェクト情報リポジトリ144に登録する差分解析部133と、障害発生時に差分解析部133にて抽出した追加オブジェクト情報リポジトリ143と削除オブジェクト情報リポジトリ144に基づき、更新前のオブジェクト構成にオブジェクト構成リポジトリ142の情報を復旧する障害復旧部134と、差分解析部133により抽出した差分情報を更新毎に蓄積し、履歴として情報を管理することによって、過去に運用実績のある任意のオブジェクト構成にオブジェクト構成リポジトリ142の情報を復旧する履歴管理部135とを有する。
オブジェクト構成管理部140は、運用中のオブジェクト構成を保持するオブジェクト構成リポジトリ142と、障害時の復旧のため、差分解析部133にて抽出した差分情報の内、新規に追加したオブジェクトの情報を保持する追加オブジェクト情報リポジトリ143と、差分情報の内、入れ替え対象となり削除されるオブジェクトの情報を保持する削除オブジェクト情報リポジトリ144と、履歴管理部135により更新毎に蓄積した差分情報を履歴として保持するオブジェクト構成履歴リポジトリ145とからなり、オブジェクト構成を構築および復旧するために必要となるリポジトリ群141を有する。
次に、ソフトウェアの入れ替えによって機能を変更する通信機器100において、新規にソフトウェア開発者が開発したソフトウェアのアプリケーション・パッケージ110を管理装置160からダウンロードし、ダウンロードしたパッケージ中に存在する複数のオブジェクト間の接続関係を確立することにより、通信機器の機能を実現するまでのソフトウェアの入れ替えによる機能更新の際、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合に、保持しておいた必要最小限の情報のみによって旧構成に戻す障害復旧時の動作について説明する。
図1に示すこの発明の機能構成を表すブロック図と、図2に示すアプリケーション・パッケージ110中のオブジェクトが更新後に障害が発生し復旧するときの例と、図3に示すオブジェクト構成リポジトリ142のテーブル構造の例と、図4に示す構成管理プロファイル112のオブジェクト構成情報の例と、図5に示す追加オブジェクト情報リポジトリ143のテーブル構造の例と、図6に示す削除オブジェクト情報リポジトリ144のテーブル構造の例を利用しながら、図7に示すフローチャートに従って説明する。
この実施の形態1は、図2のようなオブジェクト構成にて、オブジェクトbのバージョンアップにより、オブジェクトbをb’に入れ替えることにより再構成した後に障害が発生し、復旧するときの動作について説明する。ただし、オブジェクトb'はプログラム内部のみの変更を想定しており、インタフェースには変更がないものとする。このため、オブジェクトaの接続先の変更はない(ミドルウェア120によって接続先bをb’に付け替えている)。
まず、ステップS100において、管理装置160から新規の構成管理プロファイル112を通信機器100へダウンロードする。
次に、ステップS101において、管理装置160からの更新指示または通信機器100のユーザからの指示あるいはダウンロードが完了したことを構成管理部131が識別し、差分解析の要求を差分解析部133へ要求する。次に、新規の構成管理プロファイル112と運用中の情報であるオブジェクト構成リポジトリ142の情報の差分を差分解析部133にて抽出する。
差分の解析は、オブジェクト構成リポジトリ142にあるオブジェクト名から順に比較していく。例えば、運用中のオブジェクトの構成情報を図3、ダウンロードされた新規の構成管理プロファイル112のオブジェクト構成を図4とすると、アプリケーション・パッケージ110を構成するオブジェクト数は同一であるが、オブジェクト名bがb’へ変更されたことがわかる。このため、差分解析部133では、差分となるのはオブジェクトbであると判断し、新規のオブジェクトb'の情報を追加オブジェクトとして追加オブジェクト情報リポジトリ143に、入れ替え対象となる旧オブジェクトbの情報を削除オブジェクトとして削除オブジェクト情報リポジトリ144に登録する(ステップS102)。
次に、ステップS103において、差分解析部133から差分解析の結果を受け、構成管理部131は、オブジェクト構成リポジトリ142を更新し、新規のオブジェクトb'のダウンロードを管理装置160へ要求し、通信機器100へのダウンロードを実施する。
次に、ステップS104において、構成管理部131は、ダウンロードした新規のオブジェクトb'の起動と旧オブジェクトbが接続している隣接オブジェクトとの接続関係を切断する。
次に、ステップS105において、構成管理部131は、接続関係の確立をコネクション管理部132へ要求する。要求を受けたコネクション管理部132は、構成情報をオブジェクト構成リポジトリ142から読み取り、対象となる新規オブジェクトb'のアドレスとして利用するIOR(Interoperable Object Reference)を検索し、オブジェクト構成情報とIORに基づいて新規オブジェクトb'の接続関係を確立する。確立後は、旧オブジェクトの情報であるオブジェクトbを停止することで、差分更新が完了する。
しかし、この再構成の途中で、オブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗、リポジトリへのデータ登録の失敗等、何らかの障害が発生した場合は、障害を回復するために更新前の元の構成に戻す必要がある。
そこで、次に更新時に発生した障害を復旧する動作について説明する。
ステップS106において、障害復旧部134にて障害を検出すると、追加オブジェクト情報リポジトリ142と削除オブジェクト情報リポジトリ144の情報に基づいて、オブジェクト構成リポジトリ142のオブジェクト構成情報を更新前の情報に復旧する。すなわち、図5と図6から追加されたオブジェクトはb’であり、削除されたオブジェクトはbであることから、オブジェクト構成リポジトリ142からオブジェクトb'に関係する情報を削除し、新たにオブジェクトbの情報を追加する。これによって、更新前の元のオブジェクト構成の情報に戻すことができる。
次に、ステップS107において、障害復旧部134より復旧の要求を受けた構成管理部131は、削除オブジェクト情報リポジトリ144に保持されたオブジェクトであるオブジェクトbの起動を行い、接続関係の確立をコネクション管理部132へ要求する。
次に、ステップS108において、要求を受けたコネクション管理部132は、構成情報をオブジェクト構成リポジトリ142から読み取り、対象となる旧オブジェクトbのアドレスとして利用するIOR(Interoperable Object Reference)を検索し、オブジェクト構成情報とIORに基づいて旧オブジェクトbの接続関係を確立する。確立後は、新規のオブジェクトの情報であるオブジェクトb'を停止する。
次に、ステップS109において、コネクション管理部132からのコネクション完了の結果を受け、障害復旧部134は追加オブジェクト情報リポジトリ143、削除オブジェクト情報リポジトリ144に保存していた情報をクリアすることで、障害復旧処理が完了する。
なお、この例では、オブジェクト名の変更時の例を説明しているが、オブジェクト名だけでなく、バージョン番号など、オブジェクト構成リポジトリ142にて保持している情報であれば、比較対象とすることができる。
また、通信機器のメモリ容量等リソースに余裕があれば、オブジェクトを停止せずに利用しても良い。すなわち、起動したまま待機させておくことも可能とする。一方、リソースが少ないようであれば、オブジェクトを停止し、オブジェクトのファイルを削除後、復旧時は再度ダウンロードすることによっても実現できる。
さらに、図4の構成管理プロファイル112ではテーブル構成を示したが、これらの情報が記述されていれば、XML(eXtensible Markup Language)などのテキスト・ファイルとして記述しても良い。
以上のように、実施の形態1によれば、差分解析部133にて抽出した差分情報を保持しておくことにより、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗、リポジトリへのデータ登録の失敗等、何らかの障害が発生した場合は、更新前の差分情報を保持しておくことで更新前の情報に復旧することができるため、安全な機能更新が実現可能となる。
また、差分として保持しておいた必要最小限の情報だけで更新前のオブジェクト構成に戻すことが可能になるため、管理情報や解析処理量、処理時間など再構成にかかるオーバヘッドを削減することができる。
また、従来のソフトウェア障害復旧方式とは異なり、ワークメモリやフラッシュROMのアドレス等の領域を管理する必要がなく、オブジェクトに関する情報のみ管理するだけで良いため、管理を容易にすることができる。
また、インタフェース情報を管理し、構成管理プロファイル112と合わせ差分を解析することにより、インタフェース仕様が変更された場合にも、差分情報のみで障害復旧が可能になる。
さらに、分散オブジェクト技術の国際標準であるCORBAをベースとしており、ダウンロードするオブジェクト(プロセス)の接続関係をインタフェース情報(IDL)による間接的な接続関係によって管理しており、再構成時は、ダウンロードした新規のオブジェクトの起動だけで既存の隣接オブジェクトとの接続関係が構築できるため、オブジェクトの入れ替え時にプログラムの再起動の必要が無く、動的かつ高速に復旧することができる。
実施の形態2.
<障害復旧時に履歴情報を利用したロールバックの動作>
上述した実施の形態1は、ソフトウェアの入れ替えによって機能を変更する通信機器100において、新規にソフトウェア開発者が開発したソフトウェアのアプリケーション・パッケージ110を管理装置160からダウンロードし、ダウンロードしたパッケージ中に存在する複数のオブジェクト間の接続関係を確立することにより、通信機器の機能を実現するまでのソフトウェアの入れ替えによる機能更新の際、再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗等、何らかの障害が発生した場合は、保持しておいた必要最小限の情報のみによって旧構成に戻す障害復旧時の動作についてであったが、この実施の形態2では、障害復旧時に履歴情報を利用したロールバックの動作について述べる。
すなわち、オブジェクト構成を再構成する毎に、履歴管理部135にて運用中のオブジェクト構成であるオブジェクト構成リポジトリ142と新規のオブジェクト構成との差分である追加オブジェクト情報リポジトリ143と削除オブジェクト情報リポジトリ144の情報を取得し、差分履歴としてオブジェクト構成履歴リポジトリ145に格納し、管理する。そして、再構成の途中で何らかの障害が発生した場合には、履歴管理部135により、オブジェクト構成履歴リポジトリ145から運用実績のある過去のオブジェクト構成を選択し、コネクション管理部132により、選択したオブジェクト構成に基づいてオブジェクトの接続関係を再確立することにより、過去に運用していた実績のあるオブジェクト構成に戻す障害復旧時の動作について説明する。
この実施の形態2を、図1に示すこの発明の機能構成を表すブロック図と、図8に示すオブジェクト構成の変化の例、図9に示すオブジェクト構成の差分の履歴を保持するオブジェクト構成履歴リポジトリのテーブル構造の例を利用しながら、図10に示すフローチャートに従って説明する。
この実施の形態2においては、図8のようにオブジェクト構成を変更し、4段目の構成から2段目の構成に復旧するときの動作について説明する。
まず、ステップS200において、差分解析部133は、機能更新毎に追加オブジェクトおよび削除オブジェクトとなる差分情報を抽出する。
次に、ステップS201において、差分解析部133から差分解析の結果を受け、履歴管理部135は、差分となるオブジェクト情報を追加オブジェクト情報リポジトリ143および削除オブジェクト情報リポジトリ144の情報に基づき、オブジェクト構成履歴リポジトリ145へ登録する。すなわち、前の行との差分のみ登録する。
例えば、図8の1段目の初期の構成状態から2段目の構成(オブジェクトbがバージョンアップしたことを想定)に変更したときは、追加オブジェクトがb’であり、削除オブジェクトがbであることから、bの入れ替えであると判断し差分情報として、オブジェクトb'のみオブジェクト構成履歴リポジトリ145に登録する。その他、変更なしであれば変更なしフラグ(図9では矢印とした)を設定し、差分情報が終了した場合には、該当行の最後の列に終了フラグ(図9では”null”とした)を各行単位で設定する。なお、削除したときも行の最後に終了フラグをつけている(図9の2段目)。このように、差分履歴のみ蓄積したテーブルが図9である。この処理をオブジェクト構成の変更毎に登録していく(ステップS202)。
しかし、この再構成の途中で、オブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗、リポジトリへのデータ登録の失敗等、何らかの障害が発生した場合は、障害を回復するために運用実績のある過去の構成に戻す必要がある。
そこで、次に更新時に発生した障害を復旧する動作について説明する。
次に、ステップS203において、履歴管理部135は、通信機器100上に存在するオブジェクトとオブジェクト構成履歴リポジトリ145の情報から復旧可能な情報を選択し、その情報を元にオブジェクト構成リポジトリ142の情報を元のオブジェクト構成に戻す。ここで、復旧可能な情報とは、通信機器100上にオブジェクトのファイルの有無やプロセスとして動作中であるかを示す。これは、存在しているオブジェクトを優先的に使用した構成への復旧や、無線機器等の通信機器における対応エリアにあった通信プログラムへの復旧を行うことを意図している。
次に、ステップS204において、履歴管理部135より登録した情報の復旧の要求を受けた構成管理部131は、復旧するオブジェクトの再起動(aとb’)を行い、接続関係の確立をコネクション管理部132へ要求する。なお、プロセスとして動作中であれば、再起動処理は不要である。
次に、ステップS205において、要求を受けたコネクション管理部132は、構成情報をオブジェクト構成リポジトリ142から読み取り、対象となる旧オブジェクトaとb’のアドレスとして利用するIOR(Interoperable Object Reference)を検索し、オブジェクト構成情報とIORに基づいて旧オブジェクトaとb’の接続関係を確立する。確立後は、新規のオブジェクトの情報であるオブジェクトa'とe、fを停止する。
以上のように、実施の形態2によれば、再構成の途中で何らかの障害が発生した場合には、オブジェクト構成履歴リポジトリ145にて過去に運用していた構成の履歴を管理することにより、更新の直前の構成に戻るだけでなく、運用実績のある過去のオブジェクト構成を選択することが可能になる。
また、存在しているオブジェクトを優先的に使用したオブジェクト構成に復旧することで、高速な復旧や、無線機器等の通信機器における対応エリアにあった通信プログラムへの自動的な復旧が可能になる。
また、オブジェクト構成履歴リポジトリ145にて管理する情報が差分のみの管理により、オブジェクトすべての構成履歴をバージョンとして管理する方法と比較し、履歴情報や解析処理量、処理時間など再構成にかかるオーバヘッドを削減することができる。
実施の形態3.
<履歴情報を利用し、任意のオブジェクト構成へのロールバックの動作>
上述した実施の形態2は、オブジェクト構成を再構成する毎に履歴管理部135にて運用中のオブジェクト構成であるオブジェクト構成リポジトリ142と新規のオブジェクト構成との差分である追加オブジェクト情報リポジトリ143と削除オブジェクト情報リポジトリ144の情報を取得し、差分履歴としてオブジェクト構成履歴リポジトリ145に格納し、管理し、再構成の途中で何らかの障害が発生した場合には、履歴管理部135にて、オブジェクト構成履歴リポジトリ145から運用実績のある過去のオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部132にてオブジェクトの接続関係を再確立することにより、過去に運用していた実績のあるオブジェクト構成に戻す障害復旧時の動作についてであったが、この実施の形態3では、障害復旧時に履歴情報を利用し、任意のオブジェクト構成へロールバックする動作について述べる。
すなわち、オブジェクト構成を再構成する毎に履歴管理部135にて運用中のオブジェクト構成であるオブジェクト構成リポジトリ142と新規のオブジェクト構成との差分である追加オブジェクト情報リポジトリ143と削除オブジェクト情報リポジトリ144の情報を取得し、差分履歴としてオブジェクト構成履歴リポジトリ145に格納し、管理し、そして、障害発生にかかわらず、管理装置160や通信機器100のユーザからの運用実績のある任意のオブジェクト構成への更新指示により、履歴管理部135にて、オブジェクト構成履歴リポジトリ145から指示されたオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部132にてオブジェクトの接続関係を再確立することにより、過去に運用していた実績のある任意のオブジェクト構成に戻す障害復旧時の動作について説明する。
この実施の形態3を、図1に示すこの発明の機能構成を表すブロック図と、図8に示すオブジェクト構成の変化の例、図9に示すオブジェクト構成の差分の履歴を保持するオブジェクト構成履歴リポジトリのテーブル構造の例を利用しながら説明する。
実施の形態2と同様に、差分解析部133は、機能更新毎に追加オブジェクトおよび削除オブジェクトとなる差分情報を抽出し、履歴管理部135が差分となるオブジェクト情報をオブジェクト構成履歴リポジトリ145に登録していく。
次に、管理装置160や通信機器100のユーザから過去のオブジェクト構成に戻す指示を構成管理部131へ要求する。
次に、要求を受けた構成管理部131は、管理装置160や通信機器100のユーザから指定されたオブジェクト構成への復旧を履歴管理部135へ要求する。この実施の形態3では、図8のように、4段目の構成から2段目の構成にオブジェクト構成を復旧する指示を出していることとする。
次に、要求を受けた履歴管理部135は、オブジェクト構成履歴リポジトリ145の情報に基づき、オブジェクト構成リポジトリ142の情報を管理装置160や通信機器100のユーザから指定されたオブジェクト構成に戻す(図9の2段目の構成を反映)。
これ以降の処理は、実施の形態2のステップS204以降の処理と同等である。
以上のように、実施の形態3によれば、オブジェクト構成履歴リポジトリ145にて過去に運用していたオブジェクト構成の履歴を管理することにより、障害の発生にかかわらず、管理装置160や通信機器100のユーザからの指示によって、運用実績のある過去の任意のオブジェクト構成を選択することが可能になる。
また、管理装置160や通信機器100のユーザからの指示により、無線機器等の通信機器における対応エリアにあった最適な通信プログラム(通信方式)への復旧が可能になる。
実施の形態4.
<多重化時のロールバックの動作>
上述した実施の形態3は、オブジェクト構成を再構成する毎に履歴管理部135にて運用中のオブジェクト構成であるオブジェクト構成リポジトリ142と新規のオブジェクト構成との差分である追加オブジェクト情報リポジトリ143と削除オブジェクト情報リポジトリ144の情報を取得し、差分履歴としてオブジェクト構成履歴リポジトリ145に格納し、管理し、そして、障害発生にかかわらず、管理装置160や通信機器100のユーザからの運用実績のある任意のオブジェクト構成への更新指示により、履歴管理部135にて、オブジェクト構成履歴リポジトリ145から指示されたオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部132にてオブジェクトの接続関係を再確立することにより、過去に運用していた実績のある任意のオブジェクト構成に戻す障害復旧時の動作についてであったが、この実施の形態4では、多重化時のロールバックの動作について説明する。
すなわち、履歴管理部135がオブジェクト構成履歴リポジトリ145から運用実績のある任意のオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部132によってオブジェクトの接続関係を再確立する際、オブジェクトの再構成処理を多重化して並列に処理することにより、過去に運用していた実績のある任意のオブジェクト構成を運用中のオブジェクト構成に影響を与えず、障害発生時および障害発生時以外の場合においても任意のオブジェクト構成に任意のタイミングで、かつ再構成にかかる切り替え時間を短縮する復旧方式の動作について説明する。
この実施の形態4を、図1に示すこの発明の機能構成を表すブロック図と、図8に示すオブジェクト構成の変化の例、図9に示すオブジェクト構成の差分の履歴を保持するオブジェクト構成履歴リポジトリのテーブル構造の例、図11に示す多重化によるオブジェクト再構成の例、図12に示す復旧時の多重化したオブジェクト構成リポジトリのテーブル構造の例、図13に示す復旧後の切り替え時の多重化したオブジェクト構成リポジトリのテーブル構造の例を利用しながら、図14に示すこの発明の実施の形態4における動作を示すフローチャートを参照して説明する。
この実施の形態においては、図8のようにオブジェクト構成を変更し、4段目の構成から2段目の構成に復旧するときの動作について説明する。
まず、ステップS400において、差分解析部133は機能更新毎に追加オブジェクトおよび削除オブジェクトとなる差分情報を抽出する。
次に、ステップS401において、差分解析部133から差分解析の結果を受け、履歴管理部135は差分となるオブジェクト情報をオブジェクト構成履歴リポジトリ145に登録する。すなわち、前の行との差分のみ登録する。
例えば、図8の1段目の初期の構成から2段目の構成(オブジェクトbがバージョンアップしたことを想定)に変更したときは、追加オブジェクトがb’であり、削除オブジェクトがbであることから、bの入れ替えであると判断し差分情報として、オブジェクトb'のみオブジェクト構成履歴リポジトリ145に登録する。その他、変更なしであれば変更なしフラグ(図9では矢印とした)を設定し、差分情報が終了した場合には、該当行の最後の列に終了フラグ(図9では”null”とした)を各行単位で設定する。なお、削除したときも行の最後に終了フラグをつけている(図9の2段目)。このように、差分履歴のみ蓄積したテーブルが図9である。
この処理をオブジェクト構成の変更毎に登録していく(ステップS402)。
次に、管理装置160や通信機器100のユーザから過去のオブジェクト構成に戻す指示を構成管理部131へ要求する(ステップS403)と、要求を受けた構成管理部131は、管理装置160や通信機器100のユーザから指定されたオブジェクト構成への復旧を履歴管理部135へ要求する(ステップS404)。この実施の形態4では、図8のように、4段目の構成から2段目の構成にオブジェクト構成を復旧する指示を出していることとする。
次に、ステップS405において、要求を受けた履歴管理部135は、オブジェクト構成履歴リポジトリ145の情報に基づき、管理装置160や通信機器100のユーザから指定されたオブジェクト構成をオブジェクト構成リポジトリ142の構築系(Side2)に登録する(図12)。
次に、ステップS406において、履歴管理部135より登録した情報の復旧の要求を受けた構成管理部131は、オブジェクト構成リポジトリ142の構築系(Side2)に基づいて、復旧するオブジェクト(aとb’)の再起動を行い、接続関係の確立をコネクション管理部132へ要求する。
次に、ステップS407において、要求を受けたコネクション管理部132は、構成情報をオブジェクト構成リポジトリ142の構築系(Side2)から読み取り、対象となる旧オブジェクト(aとb’)のアドレスとして利用するIOR(Interoperable Object Reference)を検索し、オブジェクト構成情報とIORに基づいて旧オブジェクト(aとb’)の接続関係を確立する。
次に、ステップS408において、コネクション管理部132からの接続関係の確立の通知を受け、構成管理部131は運用系(Side1)と構築系(Side2)を切り替えることでオブジェクト構成を復旧し、復旧前のオブジェクトの情報であるオブジェクトa'とe、fを停止する。併せて、オブジェクト構成リポジトリ142のSide情報を図13の様に更新する。
以降、管理装置160や通信機器100のユーザからオブジェクト構成の更新指示があったときは、同様に構築系(Side2)にて一旦オブジェクトを構築してから、オブジェクト構成の復旧を行う。
以上のように、実施の形態4によれば、選択したオブジェクト構成に基づいてコネクション管理部132によってオブジェクトの接続関係を再確立する際、オブジェクトの再構成処理を多重化して並列に処理することにより、過去に運用していた実績のある任意のオブジェクト構成を運用中のオブジェクト構成に影響を与えず、任意のオブジェクト構成に任意のタイミングで、かつ再構成にかかる切り替え時間を短縮した高速な復旧が可能になる。すなわち、切り替えのための通信機器の停止時間が短縮できる。
また、オブジェクトの停止をせずに、オブジェクトを動作したまま多重化して管理しておくことにより、障害発生時においても、高速な切り替えにより、通信機器の停止時間を短くした高速な復旧が可能になる。
実施の形態5.
<オブジェクト起動パラメータ変更時のロールバックの動作>
上述した実施の形態4は、履歴管理部135がオブジェクト構成履歴リポジトリ145から運用実績のある任意のオブジェクト構成を選択し、選択したオブジェクト構成に基づいてコネクション管理部132によってオブジェクトの接続関係を再確立する際、オブジェクトの再構成処理を多重化して並列に処理することにより、過去に運用していた実績のある任意のオブジェクト構成を運用中のオブジェクト構成に影響を与えず、任意のオブジェクト構成に任意のタイミングで、かつ再構成にかかる切り替え時間を短縮する復旧方式の動作についてであったが、この実施の形態5では、オブジェクト起動パラメータ変更時のロールバックの動作について説明する。
すなわち、オブジェクト構成の変更において、運用中のオブジェクトとオブジェクト名やバージョン番号が同一であり、オブジェクトの起動パラメータのみ異なるオブジェクトの入れ替えを行った際に、オブジェクト起動失敗等の障害発生により旧構成に戻す障害復旧方式の動作について説明する。
この実施の形態5を、図1に示すこの発明の機能構成を表すブロック図と、図3に示すオブジェクト構成リポジトリのテーブル構造の例と、図15に示すアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例、図16に示す新規の構成管理プロファイルのオブジェクト構成情報の例と、図17に示す追加オブジェクト情報リポジトリのテーブル構造の例、図18に示す削除オブジェクト情報リポジトリのテーブル構造の例、図19に示す更新後のオブジェクト構成リポジトリのテーブル構造の例を利用しながら説明する。
この実施の形態5においては、図15のようなオブジェクト構成にて、オブジェクトbの起動パラメータを変更して再起動した後に障害が発生し、元のオブジェクトの起動パラメータにて再起動することにより復旧するときの動作について説明する。
まず、実施の形態1と同様、管理装置160から新規の構成管理プロファイル112(図16)を通信機器100へダウンロードする。
次に、管理装置160からの更新指示または通信機器100のユーザからの指示あるいはダウンロードが完了したことを構成管理部131が識別し、差分解析の要求を差分解析部133へ要求する。次に、新規の構成管理プロファイル112である図16と図3の運用中の情報であるオブジェクト構成リポジトリ142の情報を差分解析部133にて差分を抽出する。差分の解析によりアプリケーション・パッケージ110を構成するオブジェクト数、オブジェクト名、バージョン番号は同一であるが、オブジェクトbの起動パラメータが追加(-Param)されたことがわかる。このため、差分解析部133では、差分となるのはオブジェクトbであると判断し、起動パラメータが追加された新規のオブジェクトbの情報を追加オブジェクトとして追加オブジェクト情報リポジトリ143に、入れ替え対象となる旧オブジェクトbの情報を削除オブジェクトとして削除オブジェクト情報リポジトリ144に登録する(図17、図18参照)。
次に、差分解析部133から差分解析の結果を受け、構成管理部131はオブジェクト構成リポジトリ142を更新する(図19参照)。
次に、構成管理部133は、オブジェクト構成リポジトリ142の更新後、旧オブジェクトbが接続している隣接オブジェクトaとの接続関係の切断をコネクション管理部132へ要求する。コネクション管理部132によって接続関係の切断処理を行い、構成管理部133は切断完了の通知を受けた後、旧オブジェクトbを停止し、起動パラメータを追加して再度オブジェクトbを起動し直す。
この再起動や再構成の途中でオブジェクトの起動の失敗や、他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗、リポジトリへのデータ登録の失敗等、何らかの障害が発生し、障害復旧部134にてその障害を検出すると、追加オブジェクト情報リポジトリ142と削除オブジェクト情報リポジトリ144の情報に基づいて、オブジェクト構成リポジトリ142のオブジェクト構成情報を更新前の情報に復旧する。すなわち、図17と図18から入れ替えられたオブジェクトはbであることがわかるため、オブジェクト構成リポジトリ142からオブジェクトbに関係する情報を削除し、起動パラメータの指定が無い旧オブジェクトbの情報へ戻す(図3に戻る)。
これ以降の処理は、旧オブジェクトbの再起動や隣接オブジェクトとの再接続など、実施の形態1のステップS107に続く処理を行っていくことで、更新前のオブジェクト構成に復旧することができる。
なお、この実施の形態5では、同じオブジェクト名の入れ替えであったため、一旦入れ替え対象となるオブジェクトを停止してから、再度新規のオブジェクトを起動していたが、実施の形態4のような多重化により並列に処理すれば、同時に起動しておくことも可能である。これは、オブジェクト起動時にはそれぞれ異なるプロセスID等の識別子が付与されるため、同じオブジェクト名でも識別することができることによる。
以上のように、実施の形態5によれば、オブジェクト構成の変更において、運用中のオブジェクトと新規のオブジェクトのオブジェクト名やバージョン番号が同一で、オブジェクトの起動パラメータのみ異なる場合であっても、差分解析部133にて差分情報を抽出し、保持しておくことにより、何らかの障害が発生した場合は、更新前の情報に復旧することが可能になる。
実施の形態6.
<オブジェクトの起動や停止に関する障害を検出する動作>
上述した実施の形態5は、オブジェクト構成の変更において、運用中のオブジェクトとオブジェクト名やバージョン番号が同一であり、オブジェクトの起動パラメータのみ異なるオブジェクトの入れ替えを行った際に、オブジェクト起動失敗等の障害発生により旧構成に戻す障害復旧方式の動作についてであったが、この実施の形態6では、オブジェクトの起動や停止に関する障害を検出する動作について説明する。
すなわち、オブジェクトの起動および停止の指示を出し、その結果として起動および停止の結果を判定することにより、構成管理部131にて障害を検出する動作について説明する。
この実施の形態6を、図1に示すこの発明の機能構成を表すブロック図と、図15に示すアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例、図20に示すオブジェクト起動による障害検出の処理シーケンスと、図21に示すオブジェクト停止による障害検出の処理シーケンスを利用しながら説明する。
まず、ステップS600において、差分解析部133からの差分解析の結果を受け、構成管理部131はオブジェクト構成リポジトリ142を更新する。
次に、ステップS601において、構成管理部133は、オブジェクト構成リポジトリ142の差分を確認し、旧オブジェクトbが接続している隣接オブジェクトaとの接続関係の解放をコネクション管理部132へ要求する(ステップS602)。要求を受けたコネクション管理部132は接続関係の解放処理を、制御インタフェースを介して(この実施の形態では、例として接続用の制御インタフェースをdisconnect()とする)行う(ステップS603)。
次に、ステップS604において、オブジェクトaは隣接するオブジェクトであるbとの接続を解放し、切断の完了をコネクション管理部132へ通知する(ステップS605)。
次に、ステップS606において、コネクション管理部132を介して、切断完了の通知を受けた後、構成管理部133は、新規のオブジェクトを起動するために、新規オブジェクトのプロセスを生成する。プロセス生成後、起動パラメータを追加して再度オブジェクトbを新規オブジェクトとして起動し直す(ステップS607)。この処理により、オブジェクトbは、起動パラメータを追加して起動される(ステップS608)。
なお、このプロセス生成とオブジェクトの起動の処理は、UNIX(登録商標)など一般的なOSに備わっているシステムコール(fork()、exec())を使用している。
次に、ステップS609において、構成管理部131は起動後の新規のオブジェクトbが正しく起動していることを確認する。ここで、新規のオブジェクトbの存在していなかった場合には、オブジェクトの起動が正常に終了しなかったと判断し、障害として検出する。これ以降の処理は、実施の形態5の障害検出後と同様の流れによって元の構成に復旧する。
なお、オブジェクト起動確認の処理は、起動したオブジェクト名前とそのプロセスIDにより識別することができる(UNIXなどのOSに一般的に備わっているpsコマンドなど)。
一方、起動パラメータを追加して新規のオブジェクトbの起動が正常に完了した場合には、旧オブジェクトbの停止処理が引き続き行われる。オブジェクト停止の場合は、同様に構成管理部133にて、オブジェクト構成リポジトリ142の差分を確認した後(ステップS611)、旧オブジェクトbを停止する(ステップS612)。
なお、このオブジェクトの停止の処理は、UNIXなど一般的なOSに備わっているシステムコール(kill())を使用している。
次に、ステップS613において、構成管理部131は停止した旧オブジェクトbが正しく停止していることを確認する。ここで、旧オブジェクトbが存在していた場合には、オブジェクトの停止が正常に終了しなかったと判断し、障害として検出する。
なお、オブジェクト停止確認の処理は、停止したオブジェクト名前とそのプロセスIDにより識別することができる(UNIXなどのOSに一般的に備わっているpsコマンドなど)。
以上のように、実施の形態6によれば、オブジェクトの起動および停止の指示を出し、その指示の結果として起動および停止の結果を判定することにより、オブジェクト起動時の障害が検出できる。また、これにより、オブジェクト(プロセス)単位での復旧も可能になる。
また、このようにオブジェクト毎に制御が可能になるため、メモリ領域毎の入れ替え方式と比較し、アプリケーション・パッケージの部分的な入れ替えによる復旧が可能になる。
また、オブジェクトの起動や停止の失敗を再構成の途中で障害として検出可能なため、障害復旧までの時間を短縮することができる。
さらに、構成管理プロファイル112に起動タイムアウトの時間を設定した場合には、タイムアウトの時間が満了するまでオブジェクト起動の確認処理を繰り返すことにより、起動時間が大きいオブジェクトについても、起動するのに十分な時間を設定することで、安全な起動確認と障害検出ができる。
実施の形態7.
<制御インタフェースによりオブジェクトの接続関係の接続または切断検出動作>
上述した実施の形態6は、オブジェクトの起動および停止の指示を出し、その結果としてオブジェクトの起動および停止の結果を判定することにより、構成管理部131にて障害を検出する動作についてであったが、この実施の形態7では、制御インタフェースによりオブジェクトの接続関係の接続または切断検出動作について説明する。
すなわち、構成管理部131およびコネクション管理部132に、管理対象となるオブジェクトの制御インタフェースを備えるとともに、管理対象となるオブジェクトに構成管理部131およびコネクション管理部132からの指示を受け取るための制御インタフェースを備え、制御インタフェースを介してオブジェクトの接続関係の確立や解放の指示を出し、管理対象となるオブジェクトは、制御インタフェースによって構成管理部131およびコネクション管理部132からの指示を受け、隣接オブジェクトとの接続または切断の処理を行い、その処理の結果として接続または切断における障害を検出する動作について説明する。
この実施の形態7を、図1に示すこの発明の機能構成を表すブロック図と、図22に示すアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例、図23に示すオブジェクトの接続関係の確立において障害の発生を検出する処理シーケンスを利用しながら説明する。
この実施の形態7は、図22のようなオブジェクト構成にて、オブジェクトbのバージョンアップにより、オブジェクトbをb’に入れ替えることにより再構成する際に、隣接オブジェクトとの接続関係の確立において障害発生を検出するときの動作について説明する。ただし、オブジェクトb'はプログラム内部のみの変更を想定しており、インタフェースには変更がないものとする。このため、オブジェクトaの接続先の変更はない(ミドルウェア120によって接続先bをb’に付け替えている)。
まず、差分解析部133からの差分解析の結果を受け、構成管理部131はオブジェクト構成リポジトリ142を更新し、構成管理部133は、オブジェクト構成リポジトリ142の差分の確認と、新規のオブジェクトb'の起動を行う。
次に、ステップS700において、旧オブジェクトbが接続している隣接オブジェクトaとの接続関係の解放をコネクション管理部132へ要求する。要求を受けたコネクション管理部132は接続関係の解放処理を、制御インタフェースを介して(この実施の形態では、例として接続用の制御インタフェースをdisconnect()とする)行う(ステップS701)。
次に、ステップS702において、オブジェクトaは隣接するオブジェクトであるbとの接続関係を解放し、切断処理の結果をコネクション管理部132へ通知する(ステップS703)。このとき、切断が正常に終了しなかった場合には、コネクション管理部132を介して、構成管理部131は障害として検出する。これにより、復旧処理を開始する。
一方、切断処理が完了した場合は、次にステップS704、S705において、構成管理部131は旧オブジェクトbの停止処理を引き続き行う。
次に、ステップS706において、構成管理部131は、新規のオブジェクトb'との接続関係の確立をコネクション管理部132へ要求する。要求を受けたコネクション管理部132は、構成情報をオブジェクト構成リポジトリ142から読み取り、対象となる新規オブジェクトb'に隣接するオブジェクトaに対して接続関係の確立処理を、制御インタフェースを介して(この実施の形態では、例として接続用の制御インタフェースをconnect()としている。また、新規のオブジェクトb'は、旧オブジェクトbとインタフェースの変更がないことからオブジェクトの入れ替えで対応できる。したがって、オブジェクトaの接続先の変更はなく、制御インタフェースconnect()にて接続先オブジェクトをbとして指示している。すなわち、インタフェースに変更がないため、ミドルウェア120によって接続先bをb’に付け替えることにより接続関係が確立できる)行う(ステップS707)。
次に、ステップS708において、オブジェクトaは隣接する新規のオブジェクトであるb’との接続関係を確立し、接続処理の結果をコネクション管理部132へ通知する(ステップS709)。このとき、接続が正常に終了しなかった場合には、コネクション管理部132を介して、構成管理部131は障害として検出する。これにより、復旧処理を開始する。
以上のように、実施の形態7によれば、制御インタフェースを介してオブジェクトの接続関係の確立や解放の指示を出し、管理対象となるオブジェクトは、制御インタフェースによって構成管理部131およびコネクション管理部132からの指示を受け、隣接オブジェクトとの接続または切断の処理を行い、その結果としてオブジェクトの起動および停止の結果を判定することにより、オブジェクト間の接続関係の確立または解放時に障害が検出できるため、オブジェクト構成後に障害を検出するのと比較し、高速な復旧が可能になる。
また、オブジェクト毎に制御が可能になるため、プログラム全体の再起動を不要とし、動的かつ高速な復旧が可能になる。
また、オブジェクトの接続関係の接続または切断の失敗を再構成の途中で障害として検出可能なため、障害復旧までの時間を短縮することができる。
さらに、構成管理プロファイル112に接続タイムアウトの時間を設定した場合には、タイムアウトの時間が満了するまでオブジェクト接続処理応答を待つことにより、接続時間が大きいオブジェクトについても、接続するのに十分な時間を設定することで、安全な接続確認と障害検出ができる。
この発明を実現するのに必要なソフトウェア障害復旧システムの機能構成を示す図である。 この発明の実施の形態1に係るアプリケーション・パッケージ110中のオブジェクトが更新後に障害が発生し復旧するときの例を示す説明図である。 この発明の実施の形態1及び5に係るオブジェクト構成リポジトリ142のテーブル構造の例を示す図である。 この発明の実施の形態1に係る構成管理プロファイル112のオブジェクト構成情報の例を示す図である。 この発明の実施の形態1に係る追加オブジェクト情報リポジトリ143のテーブル構造の例を示す図である。 この発明の実施の形態1に係る削除オブジェクト情報リポジトリ144のテーブル構造の例を示す図である。 この発明の実施の形態1に係るソフトウェア障害復旧システムの動作を説明するフローチャートである。 この発明の実施の形態2−4に係るオブジェクト構成の変化の例を示す図である。 この発明の実施の形態2−4に係るオブジェクト構成の差分の履歴を保持するオブジェクト構成履歴リポジトリのテーブル構造の例を示す図である。 この発明の実施の形態2に係るソフトウェア障害復旧システムの動作を説明するフローチャートである。 この発明の実施の形態4に係る多重化によるオブジェクト再構成の例を示す図である。 この発明の実施の形態4に係る復旧時の多重化したオブジェクト構成リポジトリのテーブル構造の例を示す図である。 この発明の実施の形態4に係る復旧後の切り替え時の多重化したオブジェクト構成リポジトリのテーブル構造の例を示す図である。 この発明の実施の形態4に係るソフトウェア障害復旧システムの動作を示すフローチャートである。 この発明の実施の形態5に係る図15に示すアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例を示す図である。 この発明の実施の形態5及び6に係る新規の構成管理プロファイルのオブジェクト構成情報の例を示す図である。 この発明の実施の形態5に係る追加オブジェクト情報リポジトリのテーブル構造の例を示す図である。 この発明の実施の形態5に係る削除オブジェクト情報リポジトリのテーブル構造の例を示す図である。 この発明の実施の形態5に係る更新後のオブジェクト構成リポジトリのテーブル構造の例を示す図である。 この発明の実施の形態6に係るオブジェクト起動による障害検出の処理シーケンスを示す図である。 この発明の実施の形態5及び6に係るオブジェクト停止による障害検出の処理シーケンスを示す図である。 この発明の実施の形態7に係るアプリケーション・パッケージ中のオブジェクトの起動パラメータを変更して再起動した後に障害が発生し復旧するときの例を示す図である。 この発明の実施の形態7に係るオブジェクトの接続関係の確立において障害の発生を検出する処理シーケンスを示す図である。
符号の説明
100 通信機器、110 アプリケーション・パッケージ、111 プロファイル、112 構成管理プロファイル、113 インタフェース定義ファイル、114 管理対象オブジェクト群、120 ミドルウェア、130 オブジェクト制御部、131 構成管理部、132 コネクション管理部、133 差分解析部、134 障害復旧部、135 履歴管理部、140 オブジェクト構成管理部、141 リポジトリ群、142 オブジェクト構成リポジトリ、143 追加オブジェクト情報リポジトリ、144 削除オブジェクト情報リポジトリ、145 オブジェクト構成履歴リポジトリ、150 OS(Operating System)、160 管理装置。

Claims (7)

  1. 通信機器の機能をオブジェクトの集合として管理し、オブジェクトの入れ替えおよびオブジェクト間の相互接続の切り替えによって、単一の機器において種々の機能を実現するソフトウェア機能更新技術におけるソフトウェア障害復旧システムであって、
    通信機器内に、サーバである管理装置からダウンロードする、オブジェクトの接続関係を記述した構成管理プロファイルと管理対象のオブジェクト群からなるアプリケーション・パッケージと、前記アプリケーション・パッケージ内のオブジェクト間の通信をサポートするためのオブジェクト制御部とオブジェクト構成管理部とからなるミドルウェアとを備え、
    前記ミドルウェアのオブジェクト制御部は、
    前記構成管理プロファイルからデータを取り込み構成情報の登録とオブジェクトの起動、停止を行う構成管理部と、
    オブジェクトの起動、停止および構成登録後に管理された構成情報に基づきオブジェクトの接続を確立するためのオブジェクトの制御を行うコネクション管理部と、
    オブジェクト更新時に新規の構成管理プロファイルと運用中のオブジェクト構成とを比較し差分を解析する差分解析部と
    を有し、
    前記ミドルウェアのオブジェクト構成管理部は、
    運用中のオブジェクト構成を保持するオブジェクト構成リポジトリと、
    前記差分解析部にて差分として抽出した追加オブジェクトの情報を保持する追加オブジェクト情報リポジトリと、
    削除オブジェクトの情報を保持する削除オブジェクト情報リポジトリと
    を有し、
    前記オブジェクト制御部は、再構成の途中でオブジェクトの起動の失敗または他のオブジェクトとのインタフェース仕様など仕様が合致しないことによる接続の失敗により障害が発生した場合は、前記追加オブジェクト情報リポジトリや前記削除オブジェクト情報リポジトリに保持しておいた差分情報を基に前回運用していた構成に戻す障害復旧部をさらに有する
    ことを特徴とするソフトウェア障害復旧システム。
  2. 請求項1に記載のソフトウェア障害復旧システムにおいて、
    ソフトウェアの運用中にソフトウェアの不具合修正や機能追加のため、新しいアプリケーション・パッケージを通信機器へダウンロードし、オブジェクトを更新する際に、
    前記ミドルウェアの前記差分解析部は、オブジェクトと共に新規にダウンロードされた前記構成管理プロファイルのオブジェクト構成情報と運用中のオブジェクト構成を保持する前記オブジェクト構成リポジトリとを比較し、差分情報を解析することで、追加オブジェクトと削除オブジェクトの情報を抽出し、それぞれ前記追加オブジェクト情報リポジトリと前記削除オブジェクト情報リポジトリに格納し、
    前記ミドルウェアの前記構成管理部は、前記差分情報を利用して、新規オブジェクトとなる追加オブジェクトの起動および入れ替え対象となる削除オブジェクトの削除を行い、
    前記ミドルウェアの前記コネクション管理部は、オブジェクトの接続関係に基づき、差分として抽出したオブジェクトの接続関係の接続や切断を行う
    ことを特徴とするソフトウェア障害復旧システム。
  3. 請求項1に記載のソフトウェア障害復旧システムにおいて、
    前記ミドルウェアのオブジェクト構成管理部は、運用していた一つ前の構成だけではなく、運用実績のある過去のオブジェクト構成と現在のオブジェクト構成までの差分の履歴を保持するオブジェクト構成管理部のオブジェクト構成履歴リポジトリをさらに有し、
    前記ミドルウェアのオブジェクト制御部は、前記オブジェクト構成履歴リポジトリにて管理された構成履歴情報を利用して、過去に運用していた実績のある任意のオブジェクト構成を選択する履歴管理部をさらに有する
    ことを特徴とするソフトウェア障害復旧システム。
  4. 請求項3に記載のソフトウェア障害復旧システムにおいて、
    前記履歴管理部は、ソフトウェアを更新し、オブジェクト構成を再構成する毎に運用中のオブジェクト構成である前記オブジェクト構成履歴リポジトリと新規のオブジェクト構成との差分である前記追加オブジェクト情報リポジトリと前記削除オブジェクト情報リポジトリの情報を取得することにより、差分履歴として前記オブジェクト構成履歴リポジトリに格納し、管理し、再構成の途中で何らかの障害が発生した場合には、前記オブジェクト構成履歴リポジトリから運用実績のある任意のオブジェクト構成を選択し、
    前記コネクション管理部は、選択したオブジェクト構成に基づいてオブジェクトの接続関係を再確立する
    ことを特徴とするソフトウェア障害復旧システム。
  5. 請求項4に記載のソフトウェア障害復旧システムにおいて、
    前記履歴管理部は、前記オブジェクト構成履歴リポジトリから運用実績のある任意のオブジェクト構成を選択し、選択したオブジェクト構成に基づいて前記コネクション管理部によってオブジェクトの接続関係を再確立する際、オブジェクトの再構成処理を多重化することにより、過去に運用していた実績のある任意のオブジェクト構成を運用中のオブジェクト構成に影響を与えず、並列に処理する
    ことを特徴とするソフトウェア障害復旧システム。
  6. 請求項1に記載のソフトウェア障害復旧システムにおいて、
    前記構成管理部および前記コネクション管理部に、管理対象となるオブジェクトの制御インタフェースを備えるとともに、
    管理対象となるオブジェクトに前記構成管理部および前記コネクション管理部からの指示を受け取るための制御インタフェースを備える
    ことを特徴とするソフトウェア障害復旧システム。
  7. 請求項6に記載のソフトウェア障害復旧システムにおいて、
    前記構成管理部および前記コネクション管理部から管理対象となるオブジェクトに対し、制御インタフェースを介してオブジェクトの起動および停止、オブジェクト構成の接続、切断の指示を出し、
    管理対象となるオブジェクトは、制御インタフェースから前記構成管理部および前記コネクション管理部からの指示を受け取ることにより、隣接オブジェクトとの接続または切断の処理を行い、その処理の結果として正常終了または異常終了を前記構成管理部または前記コネクション管理部へ返す
    ことを特徴とするソフトウェア障害復旧システム。
JP2005129695A 2005-04-27 2005-04-27 ソフトウェア障害復旧システム Expired - Fee Related JP4744921B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005129695A JP4744921B2 (ja) 2005-04-27 2005-04-27 ソフトウェア障害復旧システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005129695A JP4744921B2 (ja) 2005-04-27 2005-04-27 ソフトウェア障害復旧システム

Publications (2)

Publication Number Publication Date
JP2006309413A JP2006309413A (ja) 2006-11-09
JP4744921B2 true JP4744921B2 (ja) 2011-08-10

Family

ID=37476243

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005129695A Expired - Fee Related JP4744921B2 (ja) 2005-04-27 2005-04-27 ソフトウェア障害復旧システム

Country Status (1)

Country Link
JP (1) JP4744921B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2712778T3 (es) * 2007-05-30 2019-05-14 Ascensia Diabetes Care Holdings Ag Método y sistema para gestionar datos de salud
JP2009177466A (ja) * 2008-01-24 2009-08-06 Hitachi Software Eng Co Ltd ネットワーク接続機器の保持情報更新システム
JP4399014B2 (ja) 2008-04-24 2010-01-13 株式会社東芝 電話システムとその端末装置
CN102902562B (zh) * 2012-09-17 2018-04-27 中兴通讯股份有限公司 一种组件式多模网管补丁包安装方法及装置
JP7008832B2 (ja) * 2018-08-28 2022-01-25 三菱電機株式会社 空気調和システムおよび空気調和システムのプログラム更新方法
JP6980929B2 (ja) 2018-09-18 2021-12-15 株式会社日立国際電気 ソフトウェア無線機
CN116881039B (zh) * 2023-09-07 2024-04-19 荣耀终端有限公司 系统恢复方法、装置、可读存储介质以及电子设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0430218A (ja) * 1990-05-25 1992-02-03 Hitachi Ltd 差分インストール方式
JPH0954679A (ja) * 1995-08-14 1997-02-25 Oki Electric Ind Co Ltd エージェントからの切り戻し方法
JP2000194539A (ja) * 1998-12-24 2000-07-14 Nec Corp ソフトウェアインストールシステムおよびソフトウェアインストール方法
JP2000293365A (ja) * 1999-02-03 2000-10-20 Matsushita Electric Ind Co Ltd プログラム構成管理装置

Also Published As

Publication number Publication date
JP2006309413A (ja) 2006-11-09

Similar Documents

Publication Publication Date Title
JP4744921B2 (ja) ソフトウェア障害復旧システム
US6971095B2 (en) Automatic firmware version upgrade system
CN100525206C (zh) 自动恢复设备故障的实现方法及系统
US7912858B2 (en) Data synchronization method
CN104486108A (zh) 基于Zookeeper的节点配置方法和基于Zookeeper的节点配置系统
US20230393840A1 (en) File update method and apparatus, device and storage medium
CN112100005A (zh) 一种Redis副本集的实现方法及装置
US11755364B2 (en) Transferral of process state and/or components in computing environments
JP2005242691A (ja) プログラムダウンロード及び切替え方法及びその装置
WO2021120968A1 (zh) 一种服务器扩容方法及扩容系统
CN110677280A (zh) 服务节点切换方法、装置、设备及计算机可读存储介质
CN111698558A (zh) 电视软件升级方法、电视终端及计算机可读存储介质
US20020073409A1 (en) Telecommunications platform with processor cluster and method of operation thereof
JP3901060B2 (ja) アプリケーションの更新処理方法、更新処理システム及び更新処理プログラム
CN111752577B (zh) 一种系统版本的升级方法及设备
US20130086572A1 (en) Generation apparatus, generation method and computer readable information recording medium
CN114356711A (zh) 数据库故障自愈方法、系统及相关装置
CN110096226B (zh) 磁盘阵列部署方法和装置
JP2006113754A (ja) ソフトウェア更新装置及び方法
JP2001022627A (ja) 複数装置間でのデータベース同期方式および方法
CN115729590A (zh) 服务部署方法、装置、设备和计算机可读存储介质
CN115543429A (zh) 项目环境的搭建方法、电子设备及计算机可读存储介质
CN112199104B (zh) 一种软件升级方法、装置、电子设备和存储介质
JP4882291B2 (ja) モジュール更新プログラム
KR20080039727A (ko) 소프트웨어의 업데이트를 지원하는 소프트웨어 스트리밍시스템 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110323

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110510

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110511

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140520

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4744921

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees