説明

情報処理装置

【課題】多階層モデルでソフトウェアを構成した情報処理装置において、ソフトウェア動作に対する監視機能の独立性を高めるとともに、監視機能の層間の連携を高める。
【解決手段】多階層モデルでソフトウェアを構成した情報処理装置であって、各階層における動作を行なう複数のモジュールと、モジュールに対応して設けられ、対応するモジュールの動作を監視する複数の監視部とを備え、監視部は、対応するモジュールの動作とは独立して監視動作を行ない、対応するモジュールの監視の際に、より下位層の監視部に対して、監視要求を行なう。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置に関し、特に、多階層モデルでソフトウェアを構成した情報処理装置に関する。
【背景技術】
【0002】
近年、組込み機器等の情報処理装置に対するディペンダビリティへの要求が高まっている。ディペンダビリティとは、情報処理装置の非機能要件を指し、例えば、リアルタイム性、信頼性、可用性、セキュリティ等を含む概念である。情報処理装置のディペンダビリティを確保するためには、情報処理装置の動作を監視し、異常発生時には、その対応処理を実施することが重要となる。このため、ソフトウェアに監視機能を組み込んでおくことが従来から行なわれている。
【0003】
ところで、ソフトウェアが動作する情報処理装置では、オペレーティングシステム(以下「OS」と称す)上でアプリケーションを動作させたり、OS上にミドルウェアを搭載して、ミドルウェア上でアプリケーションを動作させたりするように、内部のソフトウェアを、多階層モデルで構成する場合が多い。以下では、各層のソフトウェア(OS、ミドルウェア、ソフトウェア)をモジュールと称する。
【0004】
このような構成において、ソフトウェアに監視機能を設ける場合には、それぞれの層のモジュールにおいて独自の監視機能が組み込まれる。図10は、内部のソフトウェアが多階層モデルで構成され、それぞれの層に監視機能を持たせた情報処理装置の構成例を示すブロック図である。
【0005】
本図の例では、ハードウェア300で動作するOS310上にミドルウェア320を搭載し、ミドルウェア320上でアプリケーション330が動作するようになっている。ここで、ミドルウェア320は、OS310上で動作するアプリケーション実行環境であり、例えば、JavaVM(登録商標)等が該当する。
【0006】
そして、OS310は、OS監視機能部311を備え、ミドルウェア320は、ミドルウェア監視機能部321を備え、アプリケーション330は、アプリケーション監視機能部331を備えている。すなわち、各監視機能部は、OS310、ミドルウェア320、アプリケーション330に個別に組み込まれている。ただし、監視機能部が必要な層にのみ監視機能部を組み込む場合もある。
【0007】
各監視機能部は、監視対象の状態、例えば、メモリ内容や動作履歴等を監視し、必要に応じて情報処理装置内部に記録したり、ネットワーク等を通じて情報処理装置外部に発信する等の処理を行なう。また、監視結果からモジュールに異常が発生したことが判明した場合は、異常対応の処理を実行する。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平7−302236号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
従来のように、多階層モデルで構成されたソフトウェアの各層に個別に監視機能部を設けた場合には、情報処理装置全体の統括的な監視ができないという問題がある。
【0010】
例えば、図10において、アプリケーション330は、ミドルウェア320が提供する機能を用いて実現され、ミドルウェア320は、OS310が提供する機能を用いて実現される。このため、アプリケーション330の動作状態を詳細に知るためには、アプリケーション330の動作に関連したミドルウェア320の動作状態と、OS310の動作状態とを知る必要がある。このためには、各モジュールの監視機能部が連動して監視を行なわなければならないが、従来は、モジュール毎に独自の監視機能を設けているため、各モジュールの監視結果を関連付けることができない。
【0011】
さらに、モジュール間で監視機能が連携していないために、いずれかの監視機能が監視対象モジュールの異常を検知した際の異常対象の処理内容が限られる場合が多い。これは、各モジュールで可能な異常対応処理は、通常、そのモジュールで処理可能なものと、その上層で動作するモジュールの制御に限定されるためである。例えば、アプリケーション330の異常により、情報処理装置の再起動が必要となった場合でも、アプリケーション330では、情報処理装置の再起動を行なえないことが多い。
【0012】
また、多階層モデルで構成されたソフトウェアの各層に個別に監視機能部を組み込んだ場合には、監視機能が情報処理装置本来の機能に悪影響を与えるという問題もある。ここで、情報処理装置本来の機能とは、情報処理装置本来の使用目的を満たすための機能である。例えば、情報処理装置がプラント制御用コントローラであれば、情報処理装置本来の機能は、コントローラに接続されたプラントを構成する情報処理装置を制御する機能であり、コントローラの状態監視は、情報処理装置本来の機能には含まれない。
【0013】
監視機能は、情報処理装置本来の機能には含まれないが、CPU、メモリ、ネットワーク等の計算資源を、情報処理装置本来の機能と共有して動作する。このため、情報処理装置本来の機能の使用資源量は、監視機能の動作の影響を受ける。したがって、監視機能の動作によって、情報処理装置本来の機能の応答性やスループット等が悪化する場合がある。
【0014】
さらに、多階層モデルで構成されたソフトウェアの各層に個別に監視機能を組み込んだ場合には、何らかの原因により情報処理装置本来の機能が暴走すると、監視機能も影響を受けるという問題がある。上述のように、監視機能と情報処理装置本来の機能とは、情報処理装置の計算資源を共有して動作する。このため、情報処理装置本来の機能が暴走して、情報処理装置の計算資源を占有してしまうと、監視機能は動作できず、監視を継続できなくなってしまう。
【0015】
以上の問題は、監視機能が情報処理装置本来の機能に組み込まれており、従属性が高いのに加え、監視機能の層間の連携が十分でないことに起因すると考えられる。
【0016】
そこで、本発明は、上述の問題を鑑みてなされたものであり、多階層モデルでソフトウェアを構成した情報処理装置において、ソフトウェア動作に対する監視機能の独立性を高めるとともに、監視機能の層間の連携を高めることを目的とする。
【課題を解決するための手段】
【0017】
上記課題を解決するため、本発明の情報処理装置は、多階層モデルでソフトウェアを構成した情報処理装置であって、各階層における動作を行なう複数のモジュールと、前記モジュールに対応して設けられ、対応するモジュールの動作を監視する複数の監視部とを備え、前記各監視部は、対応するモジュールの動作とは独立して監視動作を行ない、対応するモジュールの監視の際に、より下位層の監視部に対して、監視要求を行なうことを特徴とする。
【0018】
ここで、前記各監視部は、対応するモジュールの動作を監視した結果、異常を検出した場合は、当該監視部で対応可能であるかどうかを判定し、当該監視部で対応不可能と判定した際に、より下位の監視部に対して異常対応処理要求を行なうことができる。
【0019】
また、前記各監視部は、対応するモジュールから、あらかじめ定められた形式の監視データを取得することで対応するモジュールの動作を監視することができる。
【0020】
また、前記各モジュールは、上位のモジュールおよび当該モジュールに対応した監視部に対して、前記情報処理装置のリソースの割り当てを行なうことができる。このとき、前記各モジュールは、上位のモジュールと当該モジュールに対応した監視部とで、異なるリソースを割り当てることができる。
【0021】
また、前記複数のモジュールとして、オペレーティングシステム、ミドルウェア、アプリケーションのうち、少なくとも2つを含むことができる。
【発明の効果】
【0022】
本発明によれば、多階層モデルでソフトウェアを構成した情報処理装置において、ソフトウェア動作に対する監視機能の独立性を高めるとともに、監視機能の層間の連携を高めることができる。
【図面の簡単な説明】
【0023】
【図1】本実施形態に係る情報処理装置の構成を示すブロック図である。
【図2】各資源管理部が行なう、情報処理装置の持つ資源の割り当ての例について説明する図である。
【図3】各監視部の状態監視の処理の流れを説明するフローチャートである。
【図4】アプリケーション監視部が、アプリケーションから監視要求を受けた場合、あるいは、アプリケーション監視部の任意の起動タイミングで実行する監視処理の流れを示すフローチャートである。
【図5】各監視部の異常判定処理の流れについて説明するフローチャートである。
【図6】アプリケーション監視部が、アプリケーションの異常対応処理を行なう場合の流れを示すフローチャートである。
【図7】応用例における情報処理装置の構成を示すブロック図である。
【図8】本応用例における情報処理装置による通信パケット受信処理の流れについて説明するフローチャートである。
【図9】異常判定処理の手順について説明するフローチャートである。
【図10】多階層モデルで構成された従来の情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【0024】
本発明の実施の形態について図面を参照して説明する。図1は、本実施形態に係る情報処理装置の構成を示すブロック図である。本実施形態に係る情報処理装置は、内部のソフトウェアを、OS層、ミドルウェア層、アプリケーション層の多階層モデルで構成している。
【0025】
そして、OS層は、ハードウェア資源管理部(R0)上で動作するOS(M1)とOS監視部(C1)とを含み、ミドルウェア層は、OS(M1)上で動作するミドルウェア(M2)とミドルウェア監視部(C2)とを含み、アプリケーション層は、ミドルウェア(M2)上で動作するアプリケーション(M3)と、アプリケーション監視部(C3)とを含んでいる。
【0026】
本実施形態では、情報処理装置本来の機能を実現するOS(M1)と、ミドルウェア(M2)と、アプリケーション(M3)とについて、それぞれの監視部、すなわち、OS監視部(C1)、ミドルウェア監視部(C2)、アプリケーション監視部(C3)を独立させて設けおり、各監視部が互いに連携して、OS(M1)、ミドルウェア(M2)、アプリケーション(M3)の状態監視を行なう。
【0027】
ここで、各監視部が監視するデータは、メモリ内容や動作履歴等の動作情報と、計算資源使用量等である。さらに、情報処理装置本来の機能に異常が発生した場合には、必要に応じて各監視部が連携して、異常対応処理を実行する。
【0028】
以下に、本図における各ブロックについて説明する。
【0029】
ハードウェア資源管理部(R0)は、ハードウェア100のリソースを管理し、ハードウェア100とソフトウェアとのやり取りを管理する。具体的には、情報処理装置が持つ計算資源を、OS(M1)とOS監視部(C1)に割り当て、それぞれの資源使用量を制限する。
【0030】
OS資源管理部(R1)は、OS(M1)上で動作するミドルウェア(M2)とミドルウェア監視部(C2)に資源を割り当て、それぞれの資源使用量を制限する。OS資源管理部(R1)が割り当て可能な資源の総量は、ハードウェア資源管理部(R0)により、OS(M1)に割り当てられた資源量から、OS(M1)自体の使用資源量を除いた量である。
【0031】
ミドルウェア資源管理部(R2)は、ミドルウェア(M2)上で動作するアプリケーション(M3)とアプリケーション監視部(C3)に資源を割り当て、それぞれの資源使用量を制限する。ミドルウェア資源管理部(R2)が割り当て可能な資源の総量は、OS資源管理部(R1)により、ミドルウェア(M2)に割り当てられた資源量から、ミドルウェア(M2)自体の使用資源量を除いた量である。
【0032】
ここで、ハードウェア資源管理部(R0)、OS資源管理部(R1)、ミドルウェア資源管理部(R2)の各資源管理部が行なう、情報処理装置の持つ資源の割り当ての例について、図2を参照して説明する。各資源管理部は、以下の処理を情報処理装置の起動時、すなわち、情報処理装置本来の機能と、後述する監視処理の実行前に実施する。
【0033】
まず、ハードウェア資源管理部(R0)は、情報処理装置の持つ全資源を2つに分割し、OS層への割り当てとして、OS(M1)とOS監視部(C1)に資源を割り当てる。次に、OS資源管理部(R1)は、OS(M1)に割り当てられた資源の中から、OS(M1)自体の使用資源を除いた量を2つに分割し、ミドルウェア層への割り当てとして、ミドルウェア(M2)とミドルウェア監視部(C2)に資源を割り当てる。そして、ミドルウェア資源管理部(R2)は、ミドルウェア(M2)に割り当てられた資源の中から、ミドルウェア(M2)自体の使用資源を除いた量を2つに分割し、アプリケーション層への割り当てとして、アプリケーション(M3)とアプリケーション監視部(C3)に資源を割り当てる。
【0034】
図1のブロック図の説明に戻って、OS(M1)は、従来の一般的なOS機能に加え、以下の特徴を有している。
1)OS資源管理部(R1)を有する。
2)OS監視部(C1)に対して、OS監視データを公開するインタフェースを有する。
3)必要に応じて、OS監視部(C1)に対して、OS監視要求を行なう。
【0035】
ミドルウェア(M2)は、従来のミドルウェアの一般的な機能に加えて、以下の特徴を有している。
1)ミドルウェア資源管理部(R2)を有する。
2)ミドルウェア監視部(C2)に対して、ミドルウェア監視データを公開するインタフェースを有する。
3)必要に応じて、ミドルウェア監視部(C2)に対して、ミドルウェア監視要求を行なう。
【0036】
アプリケーション(M3)は、従来のアプリケーションの一般的な機能に加えて、以下の特徴を有している。
1)アプリケーション監視部(C3)に対して、アプリケーション監視データを公開するインタフェースを有する。
2)必要に応じて、アプリケーション監視部(C3)に対して、アプリケーション監視要求を行なう。
【0037】
OS監視部(C1)、ミドルウェア監視部(C2)、アプリケーション監視部(C3)は、状態監視部(C0)を構成し、情報処理装置本来の機能の状態を監視する。
【0038】
次に、各ブロック間でやり取りされるデータと要求について、再度図1を参照して説明する。
【0039】
OS(M1)からOS監視部(C1)に対しては、OS監視データ(S1)とOS監視要求(O1)が送られる。OS監視データ(S1)は、OS(M1)の動作情報、例えば、メモリ内容や動作履歴等と、OS(M1)上で動作するミドルウェア(M2)の資源使用量の情報を含むデータである。OS監視要求(O1)は、OS監視部(C1)に対するOS監視の実行要求である。
【0040】
ミドルウェア(M2)からミドルウェア監視部(C2)に対しては、ミドルウェア監視データ(S2)とミドルウェア監視要求(O2)が送られる。ミドルウェア監視データ(S2)は、ミドルウェア(M2)の動作情報、例えば、メモリ内容や動作履歴等と、ミドルウェア(M2)上で動作するアプリケーション(M3)の資源使用量の情報を含むデータである。ミドルウェア監視要求(O2)は、ミドルウェア監視部(C2)に対するミドルウェア監視の実行要求である。
【0041】
アプリケーション(M3)からアプリケーション監視部(C3)に対しては、アプリケーション監視データ(S3)とアプリケーション監視要求(O3)が送られる。アプリケーション監視データ(S3)は、アプリケーション(M3)の動作情報、例えば、メモリ内容や動作履歴等を含むデータである。アプリケーション監視要求(O3)は、アプリケーション監視部(C3)に対するアプリケーション監視の実行要求である。
【0042】
アプリケーション監視部(C3)からミドルウェア監視部(C2)に対しては、ミドルウェア監視要求(O2)と異常対応処理要求(O4)が送られる。異常対応処理要求(O4)は、異常対応処理の実行要求である。
【0043】
ミドルウェア監視部(C2)からOS監視部(C1)に対しては、OS監視要求(O1)と異常対応処理要求(O4)が送られる。
【0044】
次に、OS監視部(C1)、ミドルウェア監視部(C2)、アプリケーション監視部(C3)の各監視部が行なう処理について説明する。各監視部は、それぞれの監視対象の状態監視と、監視対象に異常が発生した際の異常対応処理を実行する。ここで、監視対象は、各監視部がそれぞれ監視するモジュールであり、OS監視部(C1)はOS(M1)、ミドルウェア監視部(C2)はミドルウェア(M2)、アプリケーション監視部(C3)はアプリケーション(M3)である。
【0045】
状態監視において、各監視部は、監視対象から監視データを取得し、この監視データを基に監視対象の異常を判定する。判定基準は、例えば、エラー発生の有無、メモリの値が特定の閾値を超過していなか等とすることができ、任意に定めることができる。
【0046】
図3は、各監視部の状態監視の処理の流れを説明するフローチャートである。本図に示すように、本実施形態において監視データを取得するタイミングは3種類あり、以下のような判断が行なわれる。
【0047】
すなわち、定周期や定時刻等の各監視部独自の起動タイミングであるかどうか(S101)、それぞれの監視対象から監視要求を受けたかどうか(S102)、上層の監視部から監視要求を受けたかどうか(S103)である。ただし、アプリケーション監視部(C3)は、上層がないため、(S103)の判断は行なわない。
【0048】
これらの判断の結果、いずれかの条件を満たす場合には、監視対象から監視データを取得する(S104)。また、他層の監視部との連携した監視を実現するため、監視データ取得の際には、下層の監視部に対しても監視要求を行なう(S105)。これらの順序は、逆であってもよい。なお、OS監視部(C1)については、下層の監視部が存在しないため、下層への監視要求は行なわない。
【0049】
そして、取得した監視データに基づいて、監視対象の異常判定を行なう(S106)。各監視部は、以上の監視処理を繰り返す(S107)。
【0050】
図4は、監視部の状態監視処理のより具体的な例として、アプリケーション監視部(C3)が、アプリケーション(M3)から監視要求を受けた場合、あるいは、アプリケーション監視部(C3)の任意の起動タイミングで実行する監視処理の流れを示すフローチャートである。
【0051】
アプリケーション監視部(C3)が、監視処理を開始すると、下位層であるミドルウェア監視部(C2)に、ミドルウェア監視要求を行なう(S201)。そして、アプリケーション(M3)からアプリケーション監視データを取得する(S202)。なお、ここでは、下位層に監視要求を行なってから、監視対象から監視データを取得するようにしている。そして、取得した監視データを基に、アプリケーション(M3)の異常判定を行なう(S203)。
【0052】
また、アプリケーション監視部(C3)からミドルウェア監視要求を受けたミドルウェア監視部(C2)は、下位層であるOS監視部(C1)に、OS監視要求を行なう(S211)。そして、ミドルウェア(M2)からミドルウェア監視データを取得し(S212)、取得した監視データを基に、ミドルウェア(M2)の異常判定を行なう(S213)。
【0053】
また、ミドルウェア監視部(C2)からOS監視要求を受けたOS監視部(C2)は、OS(M1)からOS監視データを取得する(S231)。OS監視部(C1)には、下位層がないため、監視要求は行なわない。そして、取得した監視データを基に、OS(M1)の異常判定を行なう(S232)。
【0054】
状態監視の結果、監視対象に異常が発生したと判定した場合、各監視部は、あらかじめ定められた異常対応処理を実施する。ここで、各監視部が実行可能な異常対応処理は、属する層毎に異なる。例えば、情報処理装置の再起動は、通常、OS層でのみ可能であるため、OS監視部(C1)がOS(M1)に指示することで実施する。また、ミドルウェアやアプリケーションの再起動は、通常、それぞれの動作環境であるOS層とミドルウェア層でのみ可能であるため、OS監視部(C1)とミドルウェア監視部(C2)が各監視対象に指示することで実施する。
【0055】
このように、監視部毎に可能な異常対応処理が異なるため、ある監視部が監視対象の異常を検知し、その監視部では対応処理を実行できない場合は、下層の監視部に異常対応処理要求を行なう。
【0056】
図5は、各監視部の異常判定処理の流れについて説明するフローチャートである。各監視部は、取得した監視対象の監視データを基に異常判定を行ない、異常と判定した場合(S301:Yes)は、監視対象モジュールで対処可能かどうかを判定する(S302)。この判定は、例えば、異常内容と対処方法とを対応させたテーブル等をあらかじめ監視部内等に用意しておき、このテーブル等を参照することで行なうことができる。
【0057】
その結果、監視対象のモジュールで対処可能な場合(S302:Yes)は、あらかじめ定められた異常対応処理を実行する(S303)。一方、監視対象のモジュールで対処可能でない場合(S302:No)は、下位層監視部に異常対応処理を要求する(S304)。
【0058】
図6は、監視部の異常対応処理のより具体的な例として、アプリケーション監視部(C3)が、アプリケーション(M3)の異常対応処理を行なう場合の流れを示すフローチャートである。
【0059】
アプリケーション監視部(C3)が、アプリケーション(M3)が異常であると判定すると、実行すべき異常対応処理がアプリケーション層で実行可能であるかどうかを判断する(S401)。
【0060】
その結果、アプリケーション層で実行可能であると判定した場合(S401:Yes)は、アプリケーション層であらかじめ定められた異常対応処理を実行する(S402)。一方、アプリケーション層で実行可能ではないと判定した場合(S401:No)は、下位層であるミドルウェア監視部(C2)に異常対応処理を要求する(S403)。
【0061】
異常対応処理要求を受けたミドルウェア監視部(C2)は、実行すべき異常対応処理がミドルウェア層で実行可能であるかどうかを判断する(S411)。その結果、ミドルウェア層で実行可能であると判定した場合(S411:Yes)は、ミドルウェア層であらかじめ定められた異常対応処理を実行する(S412)。一方、ミドルウェア層で実行可能ではないと判定した場合(S411:No)は、下位層であるOS監視部(C1)に異常対応処理を要求する(S413)。
【0062】
そして、異常対応処理要求を受けたOS監視部(C1)は、OS層であらかじめ定められた異常対応処理を実行する(S421)。
【0063】
以上説明したように、本実施形態の多階層モデル情報処理装置は、情報処理装置本来の機能を構成する各モジュールと、それぞれの監視部の使用資源とを分離して個別に管理することにより、監視処理が情報処理装置本来の機能に影響を与えないようにしている。この結果、以下に列挙するような効果を得ることができる。
1)情報処理装置本来の機能が定常動作している状態での情報処理装置の監視が可能となる。
2)監視処理内容の変更を情報処理装置の定常動作状態で行なうことが可能となる。例えば、情報処理装置内部への監視データの保存処理や、ネットワークを通じた情報処理装置外部への監視データ配信処理などを情報処理装置の定常動作中に各監視部に追加することが可能となる。
3)監視処理が暴走しても、情報処理装置本来の機能は影響を受けることなく動作を継続することが可能となる。
4)情報処理装置本来の機能のモジュールの動作タイミングで監視を実施する場合も、モジュールは監視部に対して監視要求を行なうだけでよく、実際の監視処理には各監視部に割り当てた資源が使用されるため、情報処理装置本来の機能への影響はほとんどない。
5)情報処理装置本来の機能がハングアップや暴走した場合も、監視処理を継続することができる。この結果、ハングアップや暴走の原因究明のために、ハングアップや暴走時の監視データを取得することが可能となる。また、異常対応処理として、情報処理装置本来の機能を構成するモジュールを置き換える処理を定義しておくことで、例えば、ハングアップが発生したアプリケーションを正常動作するアプリケーションに置き換えることが可能となる。
6)各層の監視部を連携させることで、情報処理装置全体の統括的な監視と、異常対応処理が可能となる。これにより、あるモジュールが下層のモジュールの機能を使用して動作する場合に、下層のモジュールを含めた統括的な監視を行なうことができるようになる。また、異常が発生したモジュールでは実行不可能な異常対応処理も実行可能となる。
【0064】
次に、監視機能を情報処理装置本来の機能と分離した構成の別例として、本発明を受信パケット監視に適用した応用例について説明する。図7は、応用例における情報処理装置の構成を示すブロック図である。
【0065】
応用例では、多階層モデルとしてネットワークのTCP/IPスタックを用い、各層に監視部を設けることで、ネットワークセキュリティを向上させる場合について説明する。なお、TCP/IPスタックは、OSI参照モデルのように、TCP/IPの機能を階層化構造の概念に基づいて分割管理するものである。
【0066】
本図に示す応用例では、情報処理装置が受信したTCP/IPパケットは、OSI参照モデルにおけるOS(M21)内のデータリンク層(M22)、ネットワーク層(M23)、トランスポート層(M24)の順に処理された後、OS(M21)上で動作するアプリケーション(M25)に通知されるものとする。ただし、上記の例のように、ミドルウェアを介在させるようにしてもよい。
【0067】
また、情報処理装置には、OS(M21)を監視するOS監視部(C21)が、OS(M21)から独立して設けられている。ハードウェア100、ハードウェア資源管理部(R0)は、図1に示したハードウェア100、ハードウェア資源管理部(R0)と同様の構成である。
【0068】
OS(M21)内のそれぞれの層での処理内容は、カプセル化される。また、データリンク層(M22)において、TCP/IPパケットに含まれる物理層フレームが処理され、ネットワーク層(M23)において、TCP/IPパケットに含まれるIPデータグラムが処理され、トランスポート層(M24)において、TCP/IPパケットに含まれるTCPセグメントが処理される。
【0069】
通常、情報処理装置のネットワークセキュリティを向上させるためには、層毎に処理するデータを解析し、異常がないことを確認する必要がある。しかし、この手法では、パケットの異常判定機能が、情報処理装置本来の機能と資源を共有するため、情報処理装置本来の機能のスループットが低下するなどの問題が生じる場合がある。この問題を解決するために、本発明を適用することが効果的である。以下では、外部機器からのデータ受信を例にして説明する。
【0070】
応用例に係る情報処理装置において、OS(M21)は、一般的なOSの機能に加えて、TCP/IPスタックの各層の処理時に、OS監視部(C21)にデータ判定要求を行なうという特徴を有している。また、TCP/IPスタックの各層は、それぞれの処理データをOS監視部(C21)に公開する。
【0071】
OS監視部(C21)は、データリンク層監視部(C22)、ネットワーク層監視部(C23)、トランスポート層監視部(C24)を備えている。各監視部は、OS(M21)のTCP/IPスタックの各層からデータ判定要求を受けると、層毎で処理されるデータを取得し、特定の判定基準にしたがって異常データでないかを判定する。そして、判定結果を要求元に通知する。
【0072】
次に、各ブロック間でやり取りされるデータと要求について説明する。データリンク層(M22)からデータリンク層監視部(C22)に対しては、パケットに含まれる物理層フレーム(S21)と、物理層フレームの異常判定要求である物理層フレーム判定要求(O21)が送られる。
【0073】
データリンク層監視部(C22)からデータリンク層(M22)に対しては、物理層フレーム異常判定結果(S24)が送られる。
【0074】
ネットワーク層(M23)からネットワーク層監視部(C23)に対しては、パケットに含まれるIPデータグラム(S22)と、IPデータグラムの異常判定要求であるIPデータグラム判定要求(O22)が送られる。
【0075】
ネットワーク層監視部(C23)からネットワーク層(M23)に対しては、IPデータグラム判定結果(S25)が送られる。
【0076】
トランスポート層(M24)からトランスポート層監視部(C24)に対しては、パケットに含まれるTCPセグメント(S23)と、TCPセグメントの異常判定要求であるTCPセグメント判定要求(O23)が送られる。
【0077】
トランスポート層監視部(C24)からトランスポート層(M24)に対しては、TCPセグメント判定結果(S26)が送られる。
【0078】
次に、本応用例における情報処理装置による通信パケット受信処理の流れについて図8のフローチャートを参照して説明する。
【0079】
本応用例における情報処理装置は、外部機器から通信パケットを受信すると(S501)、まず、データリンク層(M22)で物理層フレームを解析し、異常判定を実行する(S502)。この結果、物理層フレームが異常であれば(S503:Yes)、通信パケットを破棄する(S509)。
【0080】
物理層フレームが異常でなければ(S503:No)、ネットワーク層(M23)でIPデータグラムを解析し、異常判定を実行する(S504)。この結果、IPデータグラムが異常であれば(S505:Yes)、通信パケットを破棄する(S509)。
【0081】
IPデータグラムが異常でなければ(S505:No)、トランスポート層(M24)でTCPセグメントを解析し、異常判定を実行する(S506)。この結果、TCPセグメントが異常であれば(S507:Yes)、通信パケットを破棄する(S509)。TCPセグメントが異常でなければ(S507:No)、アプリケーション(M25)に受信データを通知し(S508)、パケット受信処理を終了する。
【0082】
次に、異常判定処理のより具体的な手順について図9のフローチャートを参照して説明する。ここでは、データリンク層(M22)における物理層フレームの異常判定を例に説明する。
【0083】
まず、OS(M21)のデータリンク層(M22)で、通信パケットから物理層フレームを抽出する(S601)。そして、データリンク層監視部(C22)に物理層フレーム判定処理要求を行なう(S602)。
【0084】
これに対して、OS監視部(C21)のデータリンク層監視部(C22)は、物理層フレームをOS(M21)のデータリンク層(M22)から取得する(S611)。そして、あらかじめ定められた基準にしたがって物理層フレームの異常判定を行ない(S612)、判定結果をOS監視部(C21)のデータリンク層監視部(C22)に通知する(S613)。なお、他の層においても、同様の手順で異常判定処理が行なわれる。
【0085】
このように、本変形例では、OS監視部(C21)をOS(M21)から独立して設け、受信パケットの異常判定処理を、OS監視部(C21)に割り当てた資源を使用して行なうことにより、情報処理装置本来の機能に影響を与えることなく受信パケットの監視を行なうことが可能となる。
【符号の説明】
【0086】
100…ハードウェア、300…ハードウェア、310…OS、311…OS監視機能部、320…ミドルウェア、321…ミドルウェア監視機能部、330…アプリケーション、331…アプリケーション監視機能部、M1…OS、M2…ミドルウェア、M3…アプリケーション、M21…OS、M22…データリンク層、M23…ネットワーク層、M24…トランスポート層、M25…アプリケーション、R0…ハードウェア資源管理部、R1…OS資源管理部、R2…ミドルウェア資源管理部、R3…アプリケーション資源管理部、C0…状態監視部、C1…OS監視部、C2…ミドルウェア監視部、C3…アプリケーション監視部、C21…OS監視部、C22…データリンク層監視部、C23…ネットワーク層監視部、C24…トランスポート層監視部

【特許請求の範囲】
【請求項1】
多階層モデルでソフトウェアを構成した情報処理装置であって、
各階層における動作を行なう複数のモジュールと、
前記モジュールに対応して設けられ、対応するモジュールの動作を監視する複数の監視部とを備え、
前記各監視部は、対応するモジュールの動作とは独立して監視動作を行ない、対応するモジュールの監視の際に、より下位層の監視部に対して、監視要求を行なうことを特徴とする情報処理装置。
【請求項2】
前記各監視部は、対応するモジュールの動作を監視した結果、異常を検出した場合は、当該監視部で対応可能であるかどうかを判定し、当該監視部で対応不可能と判定した際に、より下位の監視部に対して異常対応処理要求を行なうことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記各監視部は、対応するモジュールから、あらかじめ定められた形式の監視データを取得することで対応するモジュールの動作を監視することを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記各モジュールは、上位のモジュールおよび当該モジュールに対応した監視部に対して、前記情報処理装置のリソースの割り当てを行なうことを特徴とする請求項1〜3のいずれか1項に記載の情報処理装置。
【請求項5】
前記各モジュールは、上位のモジュールと当該モジュールに対応した監視部とで、異なるリソースを割り当てることを特徴とする請求項4に記載の情報処理装置。
【請求項6】
前記複数のモジュールとして、オペレーティングシステム、ミドルウェア、アプリケーションのうち、少なくとも2つを含むことを特徴とする請求項1〜5のいずれか1項に記載の情報処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−79274(P2012−79274A)
【公開日】平成24年4月19日(2012.4.19)
【国際特許分類】
【出願番号】特願2010−226758(P2010−226758)
【出願日】平成22年10月6日(2010.10.6)
【出願人】(000006507)横河電機株式会社 (4,443)
【Fターム(参考)】