(57)【特許請求の範囲】
【請求項１】
ＣＯＲＢＡ（Common Object Request Broker Architecture）ライブラリ、サーバ、クライアントが使用するメモリ領域をメモリ情報により管理するメモリ管理機能部と、
前記ＣＯＲＢＡライブラリで異常が発生したときにその旨を管理部に通知する手段と、自身に異常が発生したときにその旨を前記管理部に通知する手段と、自身が使用するメモリ領域についてのメモリ情報の生成を前記メモリ管理機能部に要求する機能を有するコンストラクタと、を備えるクライアントと、
前記ＣＯＲＢＡライブラリで異常が発生したときにその旨を前記管理部に通知する手段と、自身に異常が発生したときにその旨を前記管理部に通知する手段と、自身が使用するメモリ領域についてのメモリ情報の生成を前記メモリ管理機能部に要求する機能を有するコンストラクタと、を備えるサーバと、
前記クライアント又は前記サーバから前記ＣＯＲＢＡライブラリ、前記クライアント又は前記サーバの異常の通知を受けたときに前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを停止する手段と、前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを停止した後に前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリが使用するメモリ領域が、それぞれのディストラクタ又はメモリクリア機能部により、解放されたならば、前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを起動する手段と、を備える管理部と、
前記ＣＯＲＢＡライブラリは、指令を受けたときに前記メモリ情報を参照して前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリで使用していたメモリ領域を開放するメモリクリア機能部を備え、
前記管理部は、前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを停止しても前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリで使用するメモリ領域が解放されていないことを、前記メモリ情報を参照することにより、検出する手段と、前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを停止しても前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリで使用するメモリ領域が解放されていないことが検出されたときに前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリで使用するメモリ領域を解放する指令を前記メモリクリア機能部に送信する手段と、
を備えることを特徴とする組み込み装置におけるＣＯＲＢＡ単独再起動方式。
【請求項２】
請求項１に記載の組み込み装置におけるＣＯＲＢＡ単独再起動方式において、前記サーバは自身が通信に際して使用するメモリ領域についてのメモリ情報の生成を前記メモリ管理機能部に要求する手段を更に備え、前記クライアントは自身が通信に際して使用するメモリ領域についてのメモリ情報の生成を前記メモリ管理機能部に要求する手段を更に備えることを特徴とする組み込み装置におけるＣＯＲＢＡ単独再起動方式。
【請求項３】
請求項１又は２に記載の組み込み装置におけるＣＯＲＢＡ単独再起動方式において、前記メモリ管理機能部が、前記サーバ及び前記クライアントがＯＲＢ(Object Request Broker)インターフェースを使用するに際し必要とするメモリ領域を確保し、そのメモリ領域についてメモリ情報を生成することを特徴とする組み込み装置におけるＣＯＲＢＡ単独再開方式。
【請求項４】
請求項１乃至３のいずれか１項に記載の組み込み装置におけるＣＯＲＢＡ単独再開方式において、前記サーバが除かれていることを特徴とする組み込み装置におけるＣＯＲＢＡ単独再開方式。
【請求項５】
請求項１乃至３のいずれか１項に記載の組み込み装置におけるＣＯＲＢＡ単独再開方式において、前記クライアントが除かれていることを特徴とする組み込み装置におけるＣＯＲＢＡ単独再開方式。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、分散オブジェクト技術に関し、特にＣＯＲＢＡ（Common Object Request Broker Architecture）に関する。
【０００２】
【従来の技術】
ＣＯＲＢＡは分散オブジェクト技術の標準仕様である。クライアントはネットワーク上に存在するサーバ内のオブジェクトをリモートで呼び出すことが可能である。
【０００３】
このときクライアントはサーバの位置、使用しているＯＳ、使用されている言語を意識することなくサーバ内のオブジェクトを呼び出すことが可能である。
【０００４】
【発明が解決しようとする課題】
ＣＯＲＢＡ機能部、サーバ、クライアントのみを含む通常のホストではなく、ＣＯＲＢＡ機能部、サーバ、クライアントのみならずそれ以外の独自機能部をも含む交換機等の組み込み装置においては、ＣＯＲＢＡライブラリ（ＯＲＢコア、ＯＲＢインタフェース、静的スタブインタフェース、動的呼び出しインタフェース、オブジェクトアダプタ、静的スケルトンインタフェース、動的スケルトンインタフェースを含む）、サーバ又はクライアントに何らかの異常が発生し、ＣＯＲＢＡによる通信が不能となった場合、組み込み装置の再起動を行う必要があった。しかし、独自機能部の動作を継続することを必要とし、組み込み装置全体の再起動を頻繁に行いたくない組み込み装置において、ＣＯＲＢＡライブラリ、サーバ、クライアントのみの再起動を行う機能が必要とされていた。
【０００５】
再起動したくない独自機能部としては、例えば、組み込み装置が交換機である場合には、呼処理機能部、課金処理機能部等である。
【０００６】
本発明は、ＣＯＲＢＡライブラリ、サーバ又はクライアントに異常が発生したときに、組み込み装置全体を再開しないで、ＣＯＲＢＡライブラリ、サーバ、クライアントのみを単独で再起動することを可能とする組み込み装置におけるＣＯＲＢＡ単独再起動方式を提供することを目的とする。
【０００７】
【課題を解決するための手段】
本発明による組み込み装置におけるＣＯＲＢＡ単独再起動方式は、ＣＯＲＢＡライブラリ、サーバ、クライアントが使用するメモリ領域をメモリ情報により管理するメモリ管理機能部と、前記ＣＯＲＢＡライブラリで異常が発生したときにその旨を管理部に通知する手段と、自身に異常が発生したときにその旨を前記管理部に通知する手段と、自身が使用するメモリ領域についてのメモリ情報の生成を前記メモリ管理機能部に要求する機能を有するコンストラクタと、を備えるクライアントと、前記ＣＯＲＢＡライブラリで異常が発生したときにその旨を前記管理部に通知する手段と、自身に異常が発生したときにその旨を前記管理部に通知する手段と、自身が使用するメモリ領域についてのメモリ情報の生成を前記メモリ管理機能部に要求する機能を有するコンストラクタと、を備えるサーバと、前記クライアント又は前記サーバから前記ＣＯＲＢＡライブラリ、前記クライアント又は前記サーバの異常の通知を受けたときに前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを停止する手段と、前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを停止した後に前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリが使用するメモリ領域が、それぞれのディストラクタ又はメモリクリア機能部により、解放されたならば、前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを起動する手段と、を備える管理部と、前記ＣＯＲＢＡライブラリは、指令を受けたときに前記メモリ情報を参照して前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリで使用していたメモリ領域を開放するメモリクリア機能部を備え、前記管理部は、前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを停止しても前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリで使用するメモリ領域が解放されていないことを、前記メモリ情報を参照することにより、検出する手段と、前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリのプロセスを停止しても前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリで使用するメモリ領域が解放されていないことが検出されたときに前記クライアント、前記サーバ及び前記ＣＯＲＢＡライブラリで使用するメモリ領域を解放する指令を前記メモリクリア機能部に送信する手段と、を備えることを特徴とする。
【０００８】
また、本発明による組み込み装置におけるＣＯＲＢＡ単独再起動方式は、上記の組み込み装置におけるＣＯＲＢＡ単独再起動方式において、前記サーバは自身が通信に際して使用するメモリ領域についてのメモリ情報の生成を前記メモリ管理機能部に要求する手段を更に備え、前記クライアントは自身が通信に際して使用するメモリ領域についてのメモリ情報の生成を前記メモリ管理機能部に要求する手段を更に備えることを特徴とする。
【０００９】
更に、本発明による組み込み装置におけるＣＯＲＢＡ単独再起動方式は、上記の組み込み装置におけるＣＯＲＢＡ単独再起動方式において、前記メモリ管理機能部が、前記サーバ及び前記クライアントがＯＲＢ(Object Request Broker)インターフェースを使用するに際し必要とするメモリ領域を確保し、そのメモリ領域についてメモリ情報を生成することを特徴とする組み込み装置における。
【００１０】
更に、本発明による組み込み装置におけるＣＯＲＢＡ単独再起動方式は、上記の組み込み装置におけるＣＯＲＢＡ単独再開方式において、前記サーバが除かれていることを特徴とする。
【００１１】
更に、本発明による組み込み装置におけるＣＯＲＢＡ単独再起動方式は、上記の組み込み装置におけるＣＯＲＢＡ単独再開方式において、前記クライアントが除かれていることを特徴とする。
【００１２】
【発明の実施の形態】
以下、図面を参照して本発明の実施形態について詳細に説明する。
【００１３】
図１を参照すると、例えば交換機といった組み込み装置１００は、ネットワーク１３０を介して、ホスト１１０、１２０と接続されている。組み込み装置１００は、システム部１０１と管理部１０２を備え、システム部１０１は、ＣＯＲＢＡ機能部２００、クライアント２０１、サーバ２０２より成る。ホスト１１０、１２０は、例えば、ワークステーションであり、クライアント、サーバ、ＣＯＲＢＡ機能部を有する。また、組み込み装置１００には、再起動したくない機能部がシステム部１０１、管理部１０２の他にあるが図に示していない。
【００１４】
ＣＯＲＢＡ機能部２００は、図２に示すＣＯＲＢＡアーキテクチャのうちのＯＲＢコア９０１、静的スタブインタフェース９０２、動的呼び出しインタフェース９０３、ＯＲＢインタフェース９０４、オブジェクトアダプタ９０５、静的スケルトンインタフェース９０６、動的スケルトンインタフェース９０７を含む。また、図３を参照すると、ＣＯＲＢＡ機能部２００は、ＣＯＲＢＡライブラリ２１０、メモリ管理機能部２１２、メモリ領域２１１を含む。ＣＯＲＢＡライブラリ２１０は、ＯＲＢコア９０１、静的スタブインタフェース９０２、動的呼び出しインタフェース９０３、ＯＲＢインタフェース９０４、オブジェクトアダプタ９０５、静的スケルトンインタフェース９０６、動的スケルトンインタフェース９０７、メモリクリア機能部２１３を含む。メモリ管理機能部２１２は、メモリ情報２１２ａを有する。メモリ領域２１２は、サーバ２０２が使用するメモリ領域２１１ａ、クライアント２０１が使用するメモリ領域２１１ｂ、ＣＯＲＢＡライブラリ２１０が使用するメモリ領域２１１ｃを含む。
【００１５】
メモリ管理機能部２１２は、メモリ領域２１１にメモリ領域２１１ａ、２１１ｂ、２１１ｃを生成する機能を有する。メモリクリア機能部２１３は、メモリ領域２１１に生成されたメモリ領域２１１ａ、２１１ｂ、メモリ領域２１１ｃをクリアする機能を有する。メモリ情報２１２ａは、メモリ管理機能部２１２がメモリ領域２１１を管理するために必要な情報である。
【００１６】
クライアント２０１、サーバ２０２は、それぞれ、図２に示すＣＯＲＢＡアーキテクチャのうちのクライアント９０９、サーバ（オブジェクト実装）９１０に対応するが、クライアント２０１、サーバ２０２は同一の組み込み装置に備わる。
【００１７】
システム部１０１は、クライアント２０１、サーバ２０２によるＣＯＲＢＡ通信処理、メモリ領域２１１全体の確保機能、解放機能を有する。
【００１８】
管理部１０２は、（１）クライアント２０１、サーバ２０２の起動、停止をする機能、（２）ＣＯＲＢＡ機能部２００内のメモリ領域２１１の解放指示を行う機能、（３）クライアント２０１が実装しているメソッドの起動指示（４）サーバ２０２が実装しているメソッドの起動指示を行う機能を有する。
【００１９】
なお、メモリ領域の確保指示は、クライアント２０１、サーバ２０２、ＣＯＲＢＡライブラリ２００が出し、管理部１０２が出すことはない。
【００２０】
管理部１０２はＣＯＲＢＡライブラリ２１０の機能部のうちメモリクリア機能２１３以外の機能部を起動、停止することはない。
【００２１】
ＣＯＲＢＡライブラリ２１０内の機能部のうちメモリクリア機能部２１３以外の機能部は、通常クライアント２０１、サーバ２０２から呼ばれる。つまり、クライアント２０１、サーバ２０２が停止されたとき、それらの機能部も連動して停止する。管理部１０２が直接呼び出すことができるＣＯＲＢＡライブラリ内の機能部はメモリクリア機能部２１３のみである。
【００２２】
次に、本発明の実施形態の動作について説明する。
【００２３】
まず、組み込み装置を起動した直後にシステム部１０１は、ＣＯＲＢＡで使用するメモリ情報２１２ａを記憶するためのメモリ領域（位置、容量）をメモリ管理機能部２１２に登録する。
【００２４】
図４を参照すると、本実施形態による組み込み装置におけるＣＯＲＢＡ単独再起動方式は、ＣＯＲＢＡ通信が不能になると（Ａ１）、ＣＯＲＢＡを単独で再起動する（Ａ２）。ＣＯＲＢＡを単独で再開する処理は、サーバ、クライアント、ＣＯＲＢＡライブラリを停止するステップ（Ａ２−１）と、サーバ、クライアント、ＣＯＲＢＡライブラリで使用していたメモリ領域を開放するステップ（Ａ２−２）と、サーバ、クライアント、ＣＯＲＢＡライブラリを再起動するステップ（Ａ２−３）と、サーバ、クライアント、ＣＯＲＢＡライブラリで使用するメモリ領域を確保するステップ（Ａ２−４）を有する。
【００２５】
次に、管理部１０２がＣＯＲＢＡライブラリ２１０、クライアント２０１、サーバ２０２の異常を検出する方法について説明する。
【００２６】
ＣＯＲＢＡライブラリ２１０で異常が発生したときには、ＣＯＲＢＡライブラリ２１０は、ＣＯＲＢＡの仕様で決まっている例外をクライアント２０１又はサーバ２０２に通知する。この異常の通知を受けたクライアント２０１又はサーバ２００は、ＣＯＲＢＡライブラリの異常を検出した旨のメッセージを管理部１０２に送る。
【００２７】
クライアント２０１で異常が発生したときには、クライアント２０１は異常発生のメッセージを管理部１０２に送る。同様に、サーバ２０２で異常が発生したときには、サーバ２０２は異常発生のメッセージを管理部１０２に送る。
【００２８】
次に、ＣＯＲＢＡライブラリ２００、クライアント２０１、サーバ２０２のプロセスを停止させる方法について説明する。
【００２９】
管理部１０２は、ＣＯＲＢＡライブラリ２００のプロセス、クライアント２０１のプロセス、サーバ２０２のプロセスの起動（又は再起動）・停止を行うための独自の機能を有する。管理部１０２は、ＣＯＲＢＡライブラリ２００のプロセス、クライアント２０１のプロセス、サーバ２０２のプロセスを停止させるための機能を実行することによりこれらを停止させる。
【００３０】
ＣＯＲＢＡライブラリ２００のプロセス、クライアント２０１のプロセス、サーバ２０２のプロセスを停止する際に、これらのデストラクタが実行される。但し、デストラクタが正常に実行されない可能性がある。
【００３１】
次に、ＣＯＲＢＡライブラリ２１０が使用するメモリ領域２１１ｃ、クライアント２０１が使用するメモリ領域２１１ｂ、サーバ２０２が使用するメモリ領域２１１ａを解放する方法について説明する。
【００３２】
ＣＯＲＢＡライブラリ２１０が使用するメモリ領域２１１ｃ、クライアント２０１が使用するメモリ領域２１１ｂ、サーバ２０２が使用するメモリ領域２１１ａは、ＣＯＲＢＡライブラリ２１０のデストラクタ、クライアント２０１のデストラクタ、サーバ２０２のデストラクタが解放する。
【００３３】
しかし、組み込み装置１００においてＣＯＲＢＡ通信が不可能となった場合には、デストラクタの実行失敗等の原因により未解放のままになっているメモリ領域がメモリ領域２１１に残っている可能性がある。この場合には、ＣＯＲＢＡライブラリ２１０のデストラクタ、クライアント２０１のデストラクタ、サーバ２０２のデストラクタ以外の機能部によりメモリ領域を開放する必要がある。
【００３４】
管理部１０２は、ＣＯＲＢＡ通信が不可能となったことを、次の方法により知ることができる。▲１▼ＣＯＲＢＡ通信が不可能となったことによる例外がクライアント２０１、サーバ２０２に発生し、その例外を通知するメッセージが管理部１０２に通知される。▲２▼クライアント２０１が何らかのメソッドを送信したが応答を得られないときに、その旨のメッセージを管理部１０２に送信する。
【００３５】
管理部１０２は、未解放のままになっているメモリ領域がメモリ領域２１１に残っていることを次の方法により知ることができる。管理部１０２がメモリ解放指示をメモリクリア機能部２１３に送り、その指示を受けたメモリクリア機能部２１３がメモリ情報２１２ａを参照することによりメモリ使用状況を知り、メモリ使用状況を管理部１０２に送る。また、ＣＯＲＢＡライブラリ２１０にメモリ情報２１２ａを参照することによりメモリ使用状況を知りそれを管理部１０２に通知するメモリ使用状況チェック機能部を設け、それを管理部１０２が起動するようにしてもよい。
【００３６】
ＣＯＲＢＡ通信が不可能となったこと又は未解放のままになっているメモリ領域がメモリ領域に残っていることを知った管理部１０２は、メモリ解放指示をメモリクリア機能部２１３に送り、メモリ解放指示を受けたメモリクリア機能部２１３はメモリ情報２１２ａを参照して未解放になっているメモリ領域の位置、大きさを知り、未解放になっているメモリ領域をクリアする。
【００３７】
次に、ＣＯＲＢＡライブラリ２００、クライアント２０１、サーバ２０２を再起動する方法について説明する。
【００３８】
まず、ＣＯＲＢＡライブラリ２００、クライアント２０１、サーバ２０２のプロセスを再起動させる方法について説明する。
【００３９】
管理部１０２は、ＣＯＲＢＡライブラリ２００のプロセス、クライアント２０１のプロセス、サーバ２０２のプロセスの起動（又は再起動）・停止を行うための独自の機能を有する。管理部１０２は、ＣＯＲＢＡライブラリ２００のプロセス、クライアント２０１のプロセス、サーバ２０２のプロセスを再起動させるための機能を実行することによりこれらを再起動させる。
【００４０】
ＣＯＲＢＡライブラリ２００のプロセス、クライアント２０１のプロセス、サーバ２０２のプロセスを再起動した後に、これらのコンストラクタが実行される。
【００４１】
次に、ＣＯＲＢＡライブラリ２１０が使用するメモリ領域２１１ｃ、クライアント２０１が使用するメモリ領域２１１ｂ、サーバ２０２が使用するメモリ領域２１１ａを確保する方法について説明する。
【００４２】
ＣＯＲＢＡライブラリ２１０が使用するメモリ領域２１１ｃ、クライアント２０１が使用するメモリ領域２１１ｂ、サーバ２０２が使用するメモリ領域２１１ａは、ＣＯＲＢＡライブラリ２１０のコンストラクタ、クライアント２０１のコンストラクタ、サーバ２０２のコンストラクタが確保する。ＣＯＲＢＡライブラリ２１０のコンストラクタ、クライアント２０１のコンストラクタ、サーバ２０２のコンストラクタは、メモリ管理機能部２１２のメモリ情報２１２ａを登録するためのメソッドを呼ぶ。メモリ管理機能部２１２はそれに応じて、確保されたメモリ領域の位置、容量の情報をメモリ情報２１２ａに登録する。
【００４３】
また、クライアント２０１、サーバ２０２が通信を行うのに際して送受信データのメモリ領域を確保したいときにも、クライアント２０１、サーバ２０２はメモリ領域２１１にメモリ領域を確保する。このようなときにもクライアント２０１、サーバ２０２は、メモリ管理機能部２１２のメモリ情報２１２ａを登録するためのメソッドを呼ぶ。これに応じて、メモリ管理機能部２１２は、確保されたメモリ領域の位置、容量をメモリ情報２１２ａに登録する。
【００４４】
更に、クライアント２０１及びサーバ２０２がＯＲＢインタフェース９０４を使用する上で必要とするパラメータを記憶するメモリ領域を確保したいときには、メモリ管理機能部２１２がメモリ領域２１１にメモリ領域を確保する。この場合、確保されたメモリ領域の位置、容量はメモリ管理機能部２１２がメモリ情報２１２ａに登録する。
【００４５】
なお、上記の実施形態においては、システム部１０１には、クライアント２０１、サーバ２０２、ＣＯＲＢＡ機能部２００があるとしたが、組み込み装置１００の種類によっては、クライアント２０１が除かれていたり、サーバ２０２が除かれていたりする。
【００４６】
【発明の効果】
以上説明したように、本発明によれば、組み込み装置全体の再起動をすることなく、ＣＯＲＢＡの単独再開を行うことが可能となるので、ＣＯＲＢＡに異常が発生したときに、組み込み装置の運転継続が必要な機能部を停止させずに済む。
【図面の簡単な説明】
【図１】本発明の実施形態による組み込み装置におけるＣＯＲＢＡ単独再起動方式の構成を示す概念図である。
【図２】ＣＯＲＢＡアーキテクチャを示す概念図である。
【図３】図１に示すＣＯＲＢＡ機能部の内部構成を示す概念図である。
【図４】本発明の実施形態による組み込み装置におけるＣＯＲＢＡ単独再起動方式の動作を示すフローチャートである。
【符号の説明】
１００  組み込み装置
１０１  システム部
１０２  管理部
１１０  ホスト
１２０  ホスト
１３０  ネットワーク
２００  ＣＯＲＢＡ機能部
２０１  クライアント
２０２  サーバ
２１１ａ  サーバが使用するメモリ領域
２１１ｂ  クライアントが使用するメモリ領域
２１１ｃ  ＣＯＲＢＡライブラリが使用するメモリ領域
【図１】
0003675292.tif 000002
【図２】
0003675292.tif 000003
【図３】
0003675292.tif 000004
【図４】
0003675292.tif 000005