JP4517923B2 - オブジェクト救済システム及び方法 - Google Patents

オブジェクト救済システム及び方法 Download PDF

Info

Publication number
JP4517923B2
JP4517923B2 JP2005102347A JP2005102347A JP4517923B2 JP 4517923 B2 JP4517923 B2 JP 4517923B2 JP 2005102347 A JP2005102347 A JP 2005102347A JP 2005102347 A JP2005102347 A JP 2005102347A JP 4517923 B2 JP4517923 B2 JP 4517923B2
Authority
JP
Japan
Prior art keywords
class
virtual function
function table
server
service
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.)
Active
Application number
JP2005102347A
Other languages
English (en)
Other versions
JP2006285443A (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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
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 Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2005102347A priority Critical patent/JP4517923B2/ja
Priority to CN200610002449A priority patent/CN100576805C/zh
Priority to US11/391,387 priority patent/US8230254B2/en
Publication of JP2006285443A publication Critical patent/JP2006285443A/ja
Application granted granted Critical
Publication of JP4517923B2 publication Critical patent/JP4517923B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/203Failover techniques using migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)
  • Telephonic Communication Services (AREA)

Description

本発明は、オブジェクト救済システム及び方法に関し、例えば、オブジェクト指向のプログラムにより構築された呼処理サービスを提供する音声通信サービス装置において、呼処理オブジェクトに障害が生じた場合でも、その呼を迅速、確実に救済するシステム及び方法に適用し得る。
例えば、既存の音声通信サービス提供装置は、システムの信頼性を保持するために、ACT系サーバとSBY系サーバとを有し、ACT系サーバに障害が生じた場合に、提供中のサービスをSBY系サーバが引き継ぐ冗長構成を備える。
ACT系サーバの障害時にSBY系サーバが同一サービスを提供するためには、SBY系サーバがACT系サーバの有するデータと同値のデータを利用できることが必要となる。
特許文献1には、複数のコールエージェント(CA)間で、それぞれ搭載する呼制御データを一致させると共に、その呼制御データを一元管理する技術が開示されている。具体的には、特許文献1は、オリジナルデータを有する情報サーバを備え、各コールエージェントが、情報サーバからオリジナルデータを受け取り、そのオリジナルデータを複製することで、オリジナルデータと同値のデータ(複製データ)を実装する技術が開示されている。これにより、各コールエージェントは、それぞれ一致する呼制御データを実装し、利用できる。
従来、オブジェクト指向プログラムにより各種サービスを提供する音声通信サービス装置では、サービス提供開始前に、サービスを提供するために必要なリソースを予約することが行なわれる。
そのため、音声通信サービス装置は、収容端末からに対して呼処理サービスを提供する場合にも、呼処理をする前に呼処理オブジェクトのメモリ領域等のリソースを確保することとなる。そして、プロセスが生成すると、呼処理サービスに必要な多岐にわたる1又は複数のオブジェクトがメモリ上に生成され、各オブジェクトにおいてクラスが設定される。
ここで、一般的に、クラス設定されるオブジェクトは、自身を記述するオブジェクトデータと、仮想関数テーブルを通じてサービス提供に必要な仮想関数を呼び出すために割り当てられた変数(仮想関数テーブルポインタ(VFTP:Virtual Function Table Pointer))とを有する。仮想関数テーブルは、VFTPと仮想関数の領域とを対応付けて管理するものであり、クラスオブジェクトは、このVFTPを仮想関数テーブルに指す示すことにより、VFTPに対応の仮想関数の領域を呼び出すことができる。
特開2001−345850号公報
ところで、呼処理サービスを提供しているときに、ハードウェアやソフトウェアに障害が生じると、呼処理サービスを提供するプロセスを再生成して呼を復旧する必要がある。
しかしながら、従来の音声通信サービス装置によっては、障害発生により、それまで提供していた呼処理サービスに必要なデータが消えてしまい、プロセス再生成の際に、もう一度初めから行なう必要があった。そのため、呼の救済に時間を要していた。
なお、上述した課題は呼処理オブジェクトに限らず、オブジェクト指向プログラムで構築された他のオブジェクトに対しても同様に課せられる課題である。
そこで、ハードウェア又はソフトウェアに障害が生じた場合に、提供中のサービスに係るオブジェクトを、高速、確実に救済することができるオブジェクト救済システム及び方法が求められている。
かかる課題を解決するためには、第1の本発明のオブジェクト救済システムは、プロセス再生成しても消去しないメモリ領域上に、オブジェクト指向のプログラムによって構築された1又は複数のオブジェクトを操作してサービス提供を実現するサーバ内で、異常が生じたオブジェクトを救済するオブジェクト救済システムにおいて、各オブジェクトは、各クラスの仮想関数を示す仮想関数テーブルのメモリ領域を識別する仮想関数テーブル識別情報、当該オブジェクトが属すクラスを識別するクラス識別情報、オブジェクトデータを有して構成し、サービス提供の際、提供するサービスに必要な1又は複数のオブジェクトを、機能処理の順序に応じて予め確保されたメモリ領域に配列して管理するインスタンス管理手段と、プロセスが生成する毎に異なるメモリ領域に仮想関数テーブルを記憶する仮想関数テーブル記憶領域と、異常発生に応じてプロセスを再生成する際、異常があったプロセスに係るオブジェクトのクラス識別情報に基づいて、当該オブジェクトのクラス属性を判定し、この判定したクラスのオブジェクトを呼び出してプロセスを再生成し、新たなプロセスの生成により、仮想関数テーブル記憶領域での仮想関数テーブルの新たなメモリ領域を示す仮想関数テーブル識別情報をオブジェクトに設定する再設定手段とを備えることを特徴とする。
また、第2の本発明のオブジェクト救済方法は、プロセス再生成しても消去しないメモリ領域上に、オブジェクト指向のプログラムによって構築された1又は複数のオブジェクトを操作してサービス提供を実現するサーバ内で、異常が生じたオブジェクトを救済するオブジェクト救済方法において、各オブジェクトは、各クラスの仮想関数を示す仮想関数テーブルのメモリ領域を識別する仮想関数テーブル識別情報、当該オブジェクトが属すクラスを識別するクラス識別情報、オブジェクトデータを有して構成し、サービス提供の際、提供するサービスに必要な1又は複数のオブジェクトを、機能処理の順序に応じて予め確保されたメモリ領域に配列して管理するインスタンス管理工程と、プロセスが生成する毎に異なるメモリ領域に仮想関数テーブルを記憶する仮想関数テーブル記憶領域と、異常発生に応じてプロセスを再生成する際、異常があったプロセスに係るオブジェクトの上記クラス識別情報に基づいて、当該オブジェクトのクラス属性を判定し、この判定したクラスのオブジェクトを呼び出してプロセスを再生成し、新たなプロセスの生成により、仮想関数テーブル記憶領域での仮想関数テーブルの新たなメモリ領域を示す仮想関数テーブル識別情報をオブジェクトに設定する再設定工程とを備えることを特徴とする。
本発明のオブジェクト救済システム及び方法によれば、ハードウェア又はソフトウェアに障害が生じた場合に、提供中のサービスに係るオブジェクトを、高速、確実に救済することができる。
(A)実施形態
以下、本発明のオブジェクト救済システム及び方法の実施形態について図面を参照して説明する。
本実施形態は、オブジェクト指向プログラムで構築されたオブジェクトを実行して呼処理サービスを提供する音声通信サービス装置(以下、サーバ)において、ハードウェアやソフトウェアに障害が発生したときに、呼処理オブジェクトを救済するシステムに、本発明のオブジェクト救済システム及び方法を適用した場合を説明する。
本実施形態のサーバは、収容する1又は複数の電話端末間の呼を確立する呼処理サービスを提供する音声通信サービス装置(コールエージェント)であって、図2に示すように、ACT系サーバ1AとSBY系サーバ1Bとを有する冗長構成を備える。なお、図2ではSBY系サーバ1Bを1台としたが複数台としてもよい。
ACT系サーバ1Aはメインで利用される装置であり、SBY系サーバ1BはACT系サーバ1Aに異常が生じた場合にACT系サーバ1Aから切り替えられて利用される装置である。これにより、ACT系サーバ1Aに障害が生じたときでも、SBY系サーバ1Bにそれまでの処理を引き継がせることができ、ユーザに対して引き続き同様のサービスを提供できる。
また、ACT系サーバ1AとSBY系サーバ1Bとはそれぞれ対応する構成及び機能を備え得るものであるが、以下では、ACT系サーバ1Aの構成及び動作を代表して説明する。
図3は、本実施形態のサーバのハードウェア構成を示すブロック図である。図3に示すように、本実施形態に係るサーバ10は、CPU11、メモリ12、外部記憶装置13、通信部14、保守用通信部15を少なくとも備える。
図3において、CPU11は、サーバ10全体の制御を司るものである。CPU11は、通信部14を通じて収容する電話端末から呼要求等の呼処理段階で、ROM内の処理プログラムを、RAMをワーキングエリアとして利用しながら、処理に必要な固定データを適宜用いて処理を実現するものである。また、CPU11は、サーバ10内のハードウェアやソフトウェアに障害が生じているか否かを検出する機能を有しており、障害が生じた際又は障害に備えて、再開制御機能、系構成管理機能、データ2重化機能、プラグイン機能、コマンド制御機能等を実現するものである。なお、本実施形態において、処理プログラムは、オブジェクト指向言語(例えば、C++言語等)により構築されたプログラムとする。
メモリ12及び外部記憶装置13は、例えば、ROM、RAM、フラッシュメモリ等が該当し、処理プログラム、固定データ等を記憶するものである。
通信部14は、所定の通信方式に従って、サーバ10が収容する複数の電話端末(図示しない)との間で呼処理に必要なメッセージを授受するものである。また、通信部14は、呼確立のために必要なデータベースサーバ等と接続するものである。
保守用通信部15は、障害発生時にサーバ系を切り替えるために必要な情報を、他のサーバとの間で授受するものである。
図4は、サーバ10が実現するソフトウェア構成を示す図である。図4において、サーバ10は、障害発生時又は障害に備えて、少なくとも、再開制御機能部11A、系構成管理機能部11B、データ2重化機能部11C、プラグイン機能部11D、コマンド制御機能部11Eを、共通プラットフォーム上に備える。
これら再開制御機能部11A、系構成管理機能部11B、データ2重化機能部11C、プラグイン機能部11D及びコマンド制御機能部11Eは、オペレーションシステム(OS:例えば、Linux(登録商標)等)11Fの上位に位置し、上位のアプリケーション11Gに対してそれぞれの機能を提供するものである。
なお、上述したように、共通プラットフォームはオブジェクト指向言語(例えば、C++言語)で記述される。また、共通プラットフォームとユーザ間の起動方法は、例えばC言語関数コールあるいは関数アドレスコールを基本とする。すなわち、共通プラットフォームとユーザとは、ソケットやセマフォなどによる通信を行なわない。このため、ユーザプロセスと共通プラットフォームのみで構成するプロセスとの間で通信を行なう場合、共通プラットフォームプロセスへのアクセス関数をライブラリ化し、このライブラリをユーザプロセスにリンクしてもらうことにより通信を実現する。
再開制御機能部11Aは、所定の再開フェーズに従ってシステムの初期設定をしたり、後述するように、異常となったプロセスのみを再起動する個別の初期設定をしたり、稼働中のプロセスの状態を監視したり、個別初期設定対象スレッドを管理したりするものである。ここで、システムの再開起動には、大別して、再開コマンド・ユーザ指示等による外部要因の再開起動と、ハードウェアやソフトウェアの異常検出による自律再開起動とがある。ACT系サーバ1Aにおいては、再開制御機能部11Aは自律再開起動を行なう。SBY系サーバ1Bにおいては、再開制御機能部11Aは後述する系構成管理機能部11BからACT系サーバ1Aの障害発生通知を受けることで起動する。
系構成管理機能部11Bは、ACT系サーバ1AとSBY系サーバ1Bとの間の2重化構成を管理するものであり、ACT系サーバ1A及びSBY系サーバ1Bの決定や、ACT系サーバ1Aの障害時に系切替を行なうものである。また、系構成管理機能部11Bは、系切替時に、通信部14の先に接続する側(収容する電話端末側)に存在する中継装置(例えばルータ等)のARPテーブル(IPアドレス/MACアドレス変換テーブル)の書き換え遅延を回避するため、インターフェースのIPアドレス及びMACアドレスとは別に、仮想的なIPアドレス及びMACアドレスを設定し、仮想IPアドレス及び仮想MACアドレスを用いて通信を実現するものである。そして、SBY系サーバ1Bの系構成管理機能部11Bは、仮想IPアドレス及び仮想MACアドレスを用いてACT系サーバ1Aの動作を監視し、ACT系サーバ1Aの障害を検出すると、SBY系サーバ1B内の再開制御機能部11Aにその旨を通知する。また、SBY系サーバ1Bの系構成管理機能部11Bは、再開制御機能部11Aから系切替指示を受け取ると、仮想IPアドレス及び仮想MACアドレスを設定することで迅速かつ確実な通信を実現する。
データ2重化機能部11Cは、ACT系サーバ1Aに障害が生じたとき、ACT系サーバ1Aが提供中であったサービスを、SBY系サーバ1Bに引き継ぐため、サービス提供に必要なデータを同期化(データを同値にすること)するものである。データ2重化機能部11Cによるデータ2重化方法は、共有メモリ上に、同期対象データを保持する同期対象メモリエリアと、同期対象メモリエリア上の仮想的なセグメントを管理する管理bitmapテーブルと、同期要求キューを備え、共有メモリ上にあることで、それぞれ異なるプロセスが発生した場合でも共通に認識することができるようにする。そして、アプリケーションプロセスの実行につれ、同期対象データの変更があると、その変更に係る同期対象データのセグメントについて、管理bitmapテーブル上の対応部分にフラグを立てる。また同時に、そのセグメントの先頭アドレス及びサイズを同期要求キューにキューイングする。その後、アプリケーションプロセスとは異なる送信プロセスを発生し、送信プロセスが、同期要求キューにキューイングされているセグメントの先頭アドレス及びサイズを取り出し、その取り出した先頭アドレス及びサイズを用いて管理bitmapテーブルを参照し、同期対象エリア上の変更したデータを、他系サーバに送信する。これにより、実行しているアプリケーションプロセスが障害を生じても、そのプロセスとは異なる送信プロセスが、共有メモリ上の同期要求キュー及び管理bitmapテーブルを用いて同期対象エリアから変更データを他系サーバに送信することができるのでデータの同期化を図ることができ、サービスの中断を回避できる。
プラグイン機能部11Dは、システムを停止することなく、実行プログラムを更新するものである。これにより、プログラムのバグ対処や、簡易な機能変更や機能追加などを可能とすることができる。なお、このプログラムの更新は、関数単位を基本とする。
コマンド制御機能部11Eは、ユーザプログラム作成の負荷軽減を目的として、保守者から投入されるCUIコマンドと実際にコマンド処理を行なうプロセスとの橋渡しを行なうものである。
続いて、本実施形態に係るサーバ10における呼処理オブジェクトの救済処理について説明する。
まず、サーバ10は、収容する電話端末(図示しない)から呼要求を受けると、呼処理サービスに必要な1又は複数の呼処理オブジェクトを含むクラスのインスタンスを確保するため、共有メモリ上に領域確保を行なう。
そして、呼処理サービスを提供するために必要なプロセスが順次生成し、そのための1又は複数のオブジェクトを処理に必要なデータ等を用いて動作させることで、呼処理サービスを実現することができる。
サーバ10が呼処理サービスを提供中に、ハードウェア又はソフトウェアに障害が発生すると、ACT系サーバの再開制御機能部11Aは、障害検出に基づいて所定の再開制御プロセスを起動する。
ここで、図5は、サーバ10における一般的なオブジェクトモデルのイメージ図である。
図5において、再開処理の開始を通知する再開制御51、クラス番号やマネジメント番号を管理するマネジメントマスタ52、オブジェクト生成や共有メモリの確保などの管理を行なうマネジメント53、メモリ管理を行なうメモリコントロール54、マネージメントデータ管理24、インスタンス管理21、インスタンス領域23を有する。
図5において、呼処理サービスに必要な各呼処理オブジェクトは、ユーザオブジェクトクラス22に位置する。そして、呼処理を司る各オブジェクトは、スタティックに存在するインストゥルメントクラスオブジェクトと、インスタンス管理クラス21、オブジェクトクラス(インスタンス領域)23の基底クラスが連携して管理される。
図5において、ハードウェア又はソフトウェアの障害が検出されると、再開制御51は、マネジメントマスタ52に再開処理の開始を通知する。マネジメントマスタ52は、再開処理に必要な1又は複数のクラスのマネジメント53に対して再開処理を合図する。これにより、サーバ10が有する種々の機能についての再開処理が行なわれることとなる。
マネジメント53は、複数のクラスのインスタンス管理を管理するものであり、オブジェクトの生成や、共有メモリの確保などの管理を行なうものである。
次に、サーバ10における、共有メモリ20とユーザプログラム30との関係について図6のイメージ図を参照して説明する。
共有メモリ20は、サーバ10において複数のプロセス間で共有することができるメモリ領域である。ユーザプログラム30は、サーバ10が実行するプログラムの領域である。
サーバ10において、提供するサービスに必要なリソースは、サービスの開始前にあらかじめ予約する必要があるため、呼処理が発生する前の段階で、呼処理を実行するために必要な呼処理オブジェクトのメモリ領域が共有メモリ20上に確保される。
本実施形態では、共有メモリ20上にサービス提供に必要なクラスインスタンス管理21を設け、このクラスインスタンス管理が呼処理サービスに必要な1又は複数オブジェクトを確保し、管理するものとする
図1は、クラスインスタンス管理における複数のオブジェクトの配列を説明するイメージ図である。
図1において、例えば呼処理サービスを提供する際、呼処理サービスを実行するためにn+1個のオブジェクト#0〜#nを必要とし、これらオブジェクト#0〜#nに設定されたクラスをクラスA及びクラスBとする。
従来、クラスのオブジェクト管理は、それぞれのクラスのオブジェクトを確保するものとしていた。そのため、サービス提供に必要なオブジェクトを呼び出す際、クラスをまたいでオブジェクトを呼び出すことが行なわれていた。
例えば、クラスAのインスタンス管理はクラスAのオブジェクトを管理し、クラスBのインスタンス管理はクラスBのオブジェクトを管理しているので、呼処理サービスに必要なそれぞれのオブジェクトの呼び出しは、クラスAのインスタンス管理から呼び出したり、クラスBのインスタンス管理から呼び出したりしている。
しかし、本実施形態では、図1に示すように、クラスのインスタンス管理21はサービス提供に必要なオブジェクトを所定順に配列して確保する構造である。このような構造にすることにより、サービス提供に応じて迅速な処理を図ることができる。
また、本実施形態のクラスのインスタンス管理21は、共有メモリ20上にある。クラスインスタンス管理21を共有メモリ20上にすることで、障害発生後にプロセスが再生成されても消えずに保持することができる。また、例えばACT系サーバ1AとSBY系サーバ1Bとの間でデータの同期化を図る所定のデータ2重化システムを利用することで、消えずに保持されたインスタンス管理のオブジェクトを別ホストへ転送し、ホストをまたいだ呼の救済も可能とする。
なお、本実施形態では、インスタンス管理21を共有メモリ20上としたが、プロセス再生成されても消えないメモリエリアであれば、共有メモリ20に限定されない。
また、例えば、複数の呼が発生すると、1種類のオブジェクトを複数使用することになるため、クラスインスタンス管理21が図1に示すように、サービスに必要なオブジェクトを配列する構造をとることにより、クラスインスタンス管理21は、呼処理発生時の要求に応じて、オブジェクトを切り出して引き渡したり、又は不要となり次第オブジェクトを次第再びプーリングするという管理を行なうことができる。
さらに、継承系列が同じクラスとして、要求に応じて生成クラスを選択するといった捕捉を行なうため、クラスインスタンス管理21によってメモリ領域は同一でそれぞれのクラスを要求時に切り替えて渡すことができる。
続いて、サーバ10において、呼処理サービスを提供中に、ハードウェアやソフトウェアに障害が発生したときの呼処理オブジェクトの救済について図面を参照して説明する。
本実施形態に係る共有メモリ20上における各呼処理オブジェクトの構造について図7を参照して説明する。図7に示すように、各呼処理オブジェクトは、仮想関数テーブルポインタ(VFTP)、クラス番号、オブジェクトデータを有する。図8は、呼処理オブジェクトの救済を説明する説明図である。
VFTPは、それぞれのクラスの仮想関数に対応させるため、仮想関数テーブルへのポインタである。
クラス番号は、少なくともクラスを識別することができる識別情報である。クラス番号は、例えばオブジェクト論理ID(LID)を適用することができる。オブジェクト論理ID(LID)は、クラス番号とインスタンス番号により構成される識別情報である。また、クラス番号は、オブジェクトを生成するときにクラスを選択した際に設定されるものである。
本実施形態では、VFTPのほかに共有メモリ20上のオブジェクトがどのクラスのオブジェクトであるかを判定するためのクラス番号を設ける。このように、クラス番号を設けることとしたのは次の理由からである。
オブジェクト指向言語(例えばC++言語)により生成される一般的なオブジェクト内には、それぞれクラスの関数に対応させるため、関数テーブルへのポインタを保持している。そして、承継系列が同様で異なる承継レベルのオブジェクトを生成した場合、VFTPを切り替えることによりオブジェクトの動作条件を決定している。
しかし、上記のような方式を用いて、呼処理オブジェクトを救済しようとすると適当に呼処理オブジェクトの救済が行なわれない。
その理由は、仮想関数テーブルは、プロセスの生成毎にメモリ(図8ではヒープ領域)上に生成するため、プロセスが再生成されると、同一エリアに捕捉される保証がない。すなわち、以前(プロセス再生成前)とは異なるエリアに割り付けられる。また、VFTPは救済メモリ領域に配置されているため、以前に生成された情報(変数)が残っている。そのため、VFTPに設定されている以前の情報(変数)の対応性が失われるからである。そこで、プロセス生成毎にVFTP自体を再設定する必要がある。
しかし、本実施形態では、同一メモリエリアに異なるクラスを割り付けるため(すなわち、本実施形態ではクラスインスタンス管理21にサービスに必要なオブジェクトを配置させるので、異なるクラスのオブジェクトが割り当てられるため)、当該メモリエリアにどのクラスのオブジェクトが以前割り当てられていたのか、このままでは判定するができないので、VFTPの再設定をすることができない。
このため、VFTPと同様、救済されるオブジェクト内に実際のクラスと対応付けされているクラス番号により、クラスを判定し、再設定するべきクラスを判定し、VFTPを再設定することができる。
そして、VFTPが再設定されると、そのVFTPを通じてオブジェクトが備える関数を呼び出して動作させることができ、呼処理オブジェクトを救済することができる。これにより、VFTPが、プロセス毎若しくはホスト毎に異なっても呼処理オブジェクトを救済することができる。
(B)他の実施形態
(B−1)上述した実施形態では、SBY系サーバを1台のサーバとした場合を例にして説明したが、SBY系サーバの設置台数は2台以上であってもよい。
(B−2)上述した実施形態では、上述した実施形態において、ユーザプログラム20A及び20B、データ2重化制御部データ2重化クライアントライブラリ30A及び30B、データ2重化制御部40A及び40B、系構成管理部50A及び50B、2重化開始・停止通知受付ライブラリ60A及び60Bは、それぞれのサーバにおけるOS(オペレーティングシステム)により管理されるソフトウェアとして実現可能なものである。
本実施形態のクラスインスタンス管理における複数のオブジェクトの配列を説明するイメージ図である。 本実施形態のACT系サーバ1AとSBY系サーバ1Bとを有する冗長構成を説明する図である。 本実施形態のサーバのハードウェア構成を示すブロック図である。 本実施形態のサーバが実現するソフトウェア構成を示す図である。 本実施形態のサーバにおける一般的なオブジェクトモデルのイメージ図である。 本実施形態の共有メモリとユーザプログラムとの関係を説明する説明図である。 本実施形態の共有メモリ上における各呼処理オブジェクトの構造を示す説明図である。 本実施形態の呼処理オブジェクトの救済を説明する説明図である。
符号の説明
11…CPU、12…メモリ、13…外部記憶装置、20…共有メモリ、11A…再開制御機能部、21…クラスインスタンス管理。

Claims (2)

  1. プロセス再生成しても消去しないメモリ領域上に、オブジェクト指向のプログラムによって構築された1又は複数のオブジェクトを操作してサービス提供を実現するサーバ内で、異常が生じたオブジェクトを救済するオブジェクト救済システムにおいて、
    上記各オブジェクトは、各クラスの仮想関数を示す仮想関数テーブルのメモリ領域を識別する仮想関数テーブル識別情報、当該オブジェクトが属すクラスを識別するクラス識別情報、オブジェクトデータを有して構成し、
    サービス提供の際、提供するサービスに必要な1又は複数の上記オブジェクトを、機能処理の順序に応じて予め確保されたメモリ領域に配列して管理するインスタンス管理手段と、
    プロセスが生成する毎に異なるメモリ領域に上記仮想関数テーブルを記憶する仮想関数テーブル記憶領域と、
    異常発生に応じてプロセスを再生成する際、異常があったプロセスに係る上記オブジェクトの上記クラス識別情報に基づいて、当該オブジェクトのクラス属性を判定し、この判定したクラスのオブジェクトを呼び出してプロセスを再生成し、新たなプロセスの生成により、上記仮想関数テーブル記憶領域での上記仮想関数テーブルの新たなメモリ領域を示す仮想関数テーブル識別情報を上記オブジェクトに設定する再設定手段と
    を備えることを特徴とするオブジェクト救済システム。
  2. プロセス再生成しても消去しないメモリ領域上に、オブジェクト指向のプログラムによって構築された1又は複数のオブジェクトを操作してサービス提供を実現するサーバ内で、異常が生じたオブジェクトを救済するオブジェクト救済方法において、
    上記各オブジェクトは、各クラスの仮想関数を示す仮想関数テーブルのメモリ領域を識別する仮想関数テーブル識別情報、当該オブジェクトが属すクラスを識別するクラス識別情報、オブジェクトデータを有して構成し、
    サービス提供の際、提供するサービスに必要な1又は複数の上記オブジェクトを、機能処理の順序に応じて予め確保されたメモリ領域に配列して管理するインスタンス管理工程と、
    プロセスが生成する毎に異なるメモリ領域に上記仮想関数テーブルを記憶する仮想関数テーブル記憶領域と、
    異常発生に応じてプロセスを再生成する際、異常があったプロセスに係る上記オブジェクトの上記クラス識別情報に基づいて、当該オブジェクトのクラス属性を判定し、この判定したクラスのオブジェクトを呼び出してプロセスを再生成し、新たなプロセスの生成により、上記仮想関数テーブル記憶領域での上記仮想関数テーブルの新たなメモリ領域を示す仮想関数テーブル識別情報を上記オブジェクトに設定する再設定工程と
    を備えることを特徴とするオブジェクト救済方法。
JP2005102347A 2005-03-31 2005-03-31 オブジェクト救済システム及び方法 Active JP4517923B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005102347A JP4517923B2 (ja) 2005-03-31 2005-03-31 オブジェクト救済システム及び方法
CN200610002449A CN100576805C (zh) 2005-03-31 2006-01-26 对象补救系统及方法
US11/391,387 US8230254B2 (en) 2005-03-31 2006-03-29 Redundant system using object-oriented program and method for rescuing object-oriented program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005102347A JP4517923B2 (ja) 2005-03-31 2005-03-31 オブジェクト救済システム及び方法

Publications (2)

Publication Number Publication Date
JP2006285443A JP2006285443A (ja) 2006-10-19
JP4517923B2 true JP4517923B2 (ja) 2010-08-04

Family

ID=37030880

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005102347A Active JP4517923B2 (ja) 2005-03-31 2005-03-31 オブジェクト救済システム及び方法

Country Status (3)

Country Link
US (1) US8230254B2 (ja)
JP (1) JP4517923B2 (ja)
CN (1) CN100576805C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055314B2 (en) 2016-06-14 2018-08-21 International Business Machines Corporation Managing the execution of software applications running on devices having device functions

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8768652B1 (en) 2010-07-16 2014-07-01 The Mathworks, Inc. Managing dynamic state of a physical system
US9201986B1 (en) * 2010-07-16 2015-12-01 The Mathworks, Inc. Managing dynamic state of a physical system
US8738784B1 (en) 2010-07-16 2014-05-27 The Mathworks, Inc. Managing dynamic state of a physical system
US8543611B1 (en) 2010-07-16 2013-09-24 Brian Mirtich Managing dynamic state of a physical system
US8380467B1 (en) 2010-07-16 2013-02-19 The Mathworks, Inc. Representing geometry of a system in a modeling environment
JP2015153128A (ja) * 2014-02-14 2015-08-24 日本電気株式会社 呼処理制御装置及びそのソフトウェア更新方法、呼処理システム、並びにコンピュータ・プログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324859A (ja) * 1993-03-30 1994-11-25 American Teleph & Telegr Co <Att> データオブジェクト処理方法
JPH10207849A (ja) * 1997-01-17 1998-08-07 Nippon Telegr & Teleph Corp <Ntt> 分散システムにおける高信頼化と負荷分散方法
JP2000163276A (ja) * 1998-12-01 2000-06-16 Nippon Telegr & Teleph Corp <Ntt> ネットワークワイド予備方式
JP2000187593A (ja) * 1998-12-22 2000-07-04 Oki Electric Ind Co Ltd プログラムシステムのオブジェクト管理装置
JP2004038518A (ja) * 2002-07-03 2004-02-05 Hitachi Ltd オブジェクト障害回復方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS647231A (en) * 1987-06-30 1989-01-11 Toshiba Corp Parallel processing device for object directional system
US5371891A (en) * 1992-04-09 1994-12-06 Microsoft Corporation Method for object construction in a compiler for an object-oriented programming language
EP0578207B1 (en) * 1992-07-06 1999-12-01 Microsoft Corporation Method for naming and binding objects
US5872973A (en) * 1995-10-26 1999-02-16 Viewsoft, Inc. Method for managing dynamic relations between objects in dynamic object-oriented languages
CA2211505C (en) * 1997-07-25 2002-02-05 Ibm Canada Limited-Ibm Canada Limitee Setting instance breakpoints in object oriented computer programs
US6633924B1 (en) * 1997-10-02 2003-10-14 Charles Wu Object synchronization between objects stores on different computers
US6704924B1 (en) * 1999-02-03 2004-03-09 William H. Gates, III Method and system for implementing virtual functions of an interface
JP3601777B2 (ja) 2000-06-02 2004-12-15 日本電気株式会社 コールエージェント用呼制御データの集中管理方法及びシステム
WO2002065309A1 (en) * 2001-02-13 2002-08-22 Candera, Inc. System and method for policy based storage provisioning and management
US20030005350A1 (en) * 2001-06-29 2003-01-02 Maarten Koning Failover management system
US7028287B2 (en) * 2001-11-14 2006-04-11 Sun Microsystems, Inc. Method and apparatus for facilitating compact object headers
US7152179B1 (en) * 2002-09-19 2006-12-19 Cisco Technology, Inc. IP redundancy with improved failover notification
CN1531277A (zh) * 2003-03-15 2004-09-22 中兴通讯股份有限公司 一种公共网络资源的控制方法
US20060072483A1 (en) * 2004-10-01 2006-04-06 Comcast Interactive Capital, Lp Method for enhancing telephone service
US7643472B2 (en) * 2005-10-19 2010-01-05 At&T Intellectual Property I, Lp Methods and apparatus for authorizing and allocating outdial communication services
US20070086432A1 (en) * 2005-10-19 2007-04-19 Marco Schneider Methods and apparatus for automated provisioning of voice over internet protocol gateways
US8432895B2 (en) * 2007-02-23 2013-04-30 Aip Acquisition Llc Intelligent routing of VoIP traffic

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06324859A (ja) * 1993-03-30 1994-11-25 American Teleph & Telegr Co <Att> データオブジェクト処理方法
JPH10207849A (ja) * 1997-01-17 1998-08-07 Nippon Telegr & Teleph Corp <Ntt> 分散システムにおける高信頼化と負荷分散方法
JP2000163276A (ja) * 1998-12-01 2000-06-16 Nippon Telegr & Teleph Corp <Ntt> ネットワークワイド予備方式
JP2000187593A (ja) * 1998-12-22 2000-07-04 Oki Electric Ind Co Ltd プログラムシステムのオブジェクト管理装置
JP2004038518A (ja) * 2002-07-03 2004-02-05 Hitachi Ltd オブジェクト障害回復方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10055314B2 (en) 2016-06-14 2018-08-21 International Business Machines Corporation Managing the execution of software applications running on devices having device functions
US10061661B2 (en) 2016-06-14 2018-08-28 International Business Machines Corporation Managing the execution of software applications running on devices having device functions

Also Published As

Publication number Publication date
CN100576805C (zh) 2009-12-30
CN1842025A (zh) 2006-10-04
US8230254B2 (en) 2012-07-24
US20060225035A1 (en) 2006-10-05
JP2006285443A (ja) 2006-10-19

Similar Documents

Publication Publication Date Title
JP4517923B2 (ja) オブジェクト救済システム及び方法
US7770062B2 (en) Redundancy system having synchronization function and synchronization method for redundancy system
US6859889B2 (en) Backup system and method for distributed systems
US8032786B2 (en) Information-processing equipment and system therefor with switching control for switchover operation
CN109286529B (zh) 一种恢复RabbitMQ网络分区的方法及系统
CN112506702B (zh) 数据中心容灾方法、装置、设备及存储介质
JP2009118063A (ja) 冗長システム、方法及びプログラム、並びに、サーバ
CN106161086B (zh) 主控板重启的控制方法及装置
CN109257235B (zh) 网络异常恢复方法、装置、设备及计算机可读存储介质
CN112492011A (zh) 分布式存储系统故障切换方法、系统、终端及存储介质
KR20030048503A (ko) 이중화 서버 구조의 데이터 동기화를 위한 통신 시스템 및방법
CN108984602B (zh) 一种数据库控制方法和数据库系统
JP2010003022A (ja) ファイル更新方法
CN110333973A (zh) 一种多机热备的方法和系统
US5455940A (en) Method for abnormal restart of a multiprocessor computer of a telecommunication switching system
US6721882B1 (en) Method and apparatus for warm starting a system where the system includes region(s) of software code incapable of warm starting
CN107122228A (zh) 超融合系统的管理平台的部署方法和装置
CN113176969A (zh) 服务提供方法、装置、设备及计算机可读存储介质
CN114598604A (zh) 虚拟网络功能实例信息的监控方法、监控装置及终端
JP2003298624A (ja) サービス制御アプリケーション実行システムにおける通信路確保方法
JP2006229512A (ja) サーバ切替方法,サーバ及びサーバ切替プログラム
JPH08329006A (ja) 障害通知方式
JP3008887B2 (ja) アプリケーションプログラム単位の現用予備切り替え機能を有するコンピュータシステム及びプログラムを記録した機械読み取り可能な記録媒体
JP2019197352A (ja) サービス継続システムおよびサービス継続方法
CN111563010B (zh) 一种基于双机冗余系统的数据同步方法、系统及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090724

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090811

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091007

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: 20100427

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: 20100510

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4517923

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20140528

Year of fee payment: 4