(57)【要約】【課題】  制御システムを構成しているパソコンやコントローラはＳＮＭＰを使用して管理されていたが、ＳＮＭＰで管理できるのは機器のみであり、アプリケーションを管理することができないので、アプリケーションの動作状況に応じた制御を行うことができなかったという課題を解決する。【解決手段】  遠隔地に置かれた管理ツールの要請により、エージェントモジュールがプローブモジュールを用いてアプリケーションの情報収集と操作を行い、その結果を管理ツールに送信する。また、管理ツールとエージェントモジュールの間に置かれた通信モジュールを用いて、管理ツールの通信プロトコルに適合させる。遠隔地からアプリケーションを集中管理することができ、また通信モジュールを変えることにより、汎用ウエブブラウザ等種々の管理ツールを使用することができる。【選択図】                    図１
2008015648.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションから情報を収集してその情報を送信し、また要求によりこのアプリケーションを操作するプローブモジュールと、
少なくとも１つのプローブモジュールが接続され、このプローブモジュールに情報の収集、または操作を要求し、その結果を前記プローブモジュールから受け取るエージェントモジュールと、
前記エージェントモジュールに接続され、外部に置かれた管理ツールから送信された要求を前記エージェントモジュールに通知し、前記エージェントモジュールから通知された結果を前記管理ツールに送信する通信モジュールと、
を具備したことを特徴とするアプリケーション管理フレームワーク。
【請求項２】
前記プローブモジュールは独自のＩＤ(identifier)を保持し、前記エージェントモジュールはこのＩＤを用いて前記プローブモジュールを管理するようにしたことを特徴とする請求項１記載のアプリケーション管理フレームワーク。
【請求項３】
前記プローブモジュールは、要求があったときのみアプリケーションから情報を収集するようにしたことを特徴とする請求項１若しくは請求項２記載のアプリケーション管理フレーム。
【請求項４】
前記プローブモジュールは、所定の周期でアプリケーションから情報を収集するようにしたことを特徴とする請求項１乃至請求項３いずれかに記載のアプリケーション管理フレーム。
【請求項５】
前記通信モジュールと管理ツール間通信のプロトコルは、ＸＭＬ(Extensible Markup Language)で記述されていることを特徴とする請求項１乃至請求項４いずれかに記載のアプリケーション管理フレームワーク。
【請求項６】
前記通信モジュールは、ＨＴＴＰ(HyperText Transfer Protocol)を用いて管理ツールと通信するようにしたことを特徴とする請求項１乃至請求項５いずれかに記載のアプリケーション管理フレームワーク。
【請求項７】
前記通信モジュールは、ＳＮＭＰ(Simple Network Management Protocol)を用いて管理ツールと通信するようにしたことを特徴とする請求項１乃至請求項６いずれかに記載のアプリケーション管理フレームワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機器管理アプリケーションやデータ分析アプリケーション等のアプリケーションを管理するフレームワークに関し、特に制御システムに用いて好適なアプリケーション管理フレームワークに関するものである。
【背景技術】
【０００２】
制御システムは、ＤＣＳ(Distributed Control System)で用いられるプロセス制御を行うアプリケーションだけでなく、機器管理を行うアプリケーションやロガー、データ分析アプリケーション等種々のアプリケーションで構成されている。これらのアプリケーションを動作させているパソコンやコントローラは、ＳＮＭＰ(Simple Network Management Protocol)を使用した機器管理が行われている。
【０００３】
ＳＮＭＰは管理対象機器に常駐するエージェントと、管理する側の機器（監視サーバ）上で動作するマネージャで構成される。マネージャとエージェントの間でやりとりされる情報は、次の３種類に分類される。
（１）マネージャがエージェントに管理対象機器の情報を要求し、エージェントは要求された情報を取得してマネージャに送信する。
（２）マネージャからエージェントに管理対象機器の設定変更を要求する。エージェントは要求された設定変更を実行し、結果をマネージャに返す。
（３）管理対象機器の状態が変化すると、エージェントはマネージャに変化を通知する。
【０００４】
エージェントは、ＭＩＢ(Management Information Base)と呼ばれる管理データベースを参照して管理対象機器の情報を取得し、マネージャに送信する。マネージャは受信した情報から管理対象機器の状態を判断する。ＭＩＢはエージェント側とマネージャ側に両方に存在する。ＭＩＢに規定することにより、種々の情報を管理することができる。
【０００５】
【特許文献１】特開２０００−２５９５８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような機器管理の手法では、制御のためのアプリケーションが動作しているパソコンやコントローラなどの機器を管理することはできるが、アプリケーションが正常に動作しているかを管理することはできない。そのため、アプリケーションの動作状況に応じた制御を行うことができないという課題があった。
【０００７】
従って本発明の目的は、アプリケーションを管理するためのフレームワークを提供することにある。
【課題を解決するための手段】
【０００８】
このような課題を達成するために、本発明のうち請求項１記載の発明は、
アプリケーションから情報を収集してその情報を送信し、また要求によりこのアプリケーションを操作するプローブモジュールと、
少なくとも１つのプローブモジュールが接続され、このプローブモジュールに情報の収集、または操作を要求し、その結果を前記プローブモジュールから受け取るエージェントモジュールと、
前記エージェントモジュールに接続され、外部に置かれた管理ツールから送信された要求を前記エージェントモジュールに通知し、前記エージェントモジュールから通知された結果を前記管理ツールに送信する通信モジュールと、
を具備したものである。アプリケーションを遠隔地から管理することができる。
【０００９】
請求項２記載の発明は、請求項１記載の発明において、
前記プローブモジュールは独自のＩＤ(identifier)を保持し、前記エージェントモジュールはこのＩＤを用いて前記プローブモジュールを管理するようにしたものである。プローブモジュールの管理が容易になる。
【００１０】
請求項３記載の発明は、請求項１若しくは請求項２記載の発明において、
前記プローブモジュールは、要求があったときのみアプリケーションから情報を収集するようにしたものである。システムにかかる負荷を少なくすることができる。
【００１１】
請求項４記載の発明は、請求項１乃至請求項３いずれかに記載の発明において、
前記プローブモジュールは、所定の周期でアプリケーションから情報を収集するようにしたものである。常に最新の情報が得られる。
【００１２】
請求項５記載の発明は、請求項１乃至請求項４いずれかに記載の発明において、
前記通信モジュールと管理ツール間通信のプロトコルは、ＸＭＬ(Extensible Markup Language)で記述するようにしたものである。システムのプラットフォームや構築言語に影響されない。
【００１３】
請求項６記載の発明は、請求項１乃至請求項５ずれかに記載の発明において、
前記通信モジュールは、ＨＴＴＰ(HyperText Transfer Protocol)を用いて管理ツールと通信するようにしたものである。管理ツールとして汎用のウエブブラウザを使用することができる。
【００１４】
請求項７記載の発明は、請求項１乃至請求項６いずれかに記載の発明において、
前記通信モジュールは、ＳＮＭＰ(Simple Network Management Protocol)を用いて管理ツールと通信するようにしたものである。従来使用されていたＳＮＭＰを使用することができる。
【発明の効果】
【００１５】
以上説明したことから明らかなように、本発明によれば次のような効果がある。
請求項１，２、３、４、５、６および７の発明によれば、遠隔地に置かれた管理ツールの指令により、エージェントモジュールがプローブモジュールを使用してアプリケーションの情報収集、または操作を行い、その結果を管理ツールに返すようにした。また、通信モジュールを用いて、管理ツールの通信プロトコルに適合させるようにした。
【００１６】
遠隔地に置かれた管理ツールを用いて、複数のアプリケーションを集中管理し、また稼働状況を確認することができるという効果がある。アプリケーションの稼働状況には、メモリの使用量、スレッド数、デッドロックの有無、アプリケーション固有の情報等があり、操作にはシャットダウン、再起動、ログレベルの変更、イベント通知の登録などがある。
【００１７】
また、管理ツールが使用する通信プロトコルに合わせて通信モジュールを入れ替えることにより、汎用ウエブブラウザやＳＮＭＰツールなど、種々の管理ツールを使用することができるという効果もある。
【００１８】
さらに、管理ツールと通信モジュール間の通信プロトコルをＸＭＬで記述することにより、システムのプラットフォームや構築言語に影響されずにアプリケーションを管理することができるという効果もある。
【発明を実施するための最良の形態】
【００１９】
以下本発明を図面を用いて詳細に説明する。図１は本発明に係るアプリケーション管理フレームワークの一実施例を示す構成図である。図１において、１１はアプリケーションであり、情報を保持しているオブジェクト１１ａ、１１ｂ、１１ｃを内蔵している。なお、１１ａ、１１ｂ、１１ｃはコンポーネントの場合もある。
【００２０】
１２はプローブモジュールであり、オブジェクト１１ａ、１１ｂから情報を収集する。１３もプローブモジュールであり、オブジェクト１１ｃから情報を収集する。１４はエージェントモジュールであり、プローブモジュール１２、１３が接続される。エージェントモジュール１４はプローブモジュール１２、１３に要求を通知し、またプローブモジュール１２、１３が出力した情報を取得する。エージェントモジュール１４はプローブモジュール１２、１３のコンテナとなる。プローブモジュール１２、１３およびエージェントモジュール１４はソフトウエアモジュールとして構成される。
【００２１】
１５、１６、１７は通信モジュールであり、それぞれエージェントモジュール１４に接続される。通信モジュール１５は独自プロトコルを用いて独自プロトコル管理ツール２１と通信を行う。通信モジュール１６はＨＴＴＰ(HyperText Transfer Protocol)を用いて、管理ツールとして動作するウエブブラウザ２２と通信を行う。通信モジュール１７はＳＮＭＰを用いてＳＮＭＰ管理ツール２３と通信を行う。すなわち、通信モジュールを変えることにより、エージェントモジュール１４は種々の管理ツールと通信を行うことができる。なお、管理ツール２１〜２３はアプリケーション１１が稼働する機器とは離れた遠隔地に設置される場合が多い。
【００２２】
アプリケーション１１、プローブモジュール１２、１３、エージェントモジュール１４および通信モジュール１５〜１７でプロセス１０を構成している。また、プローブモジュール、エージェントモジュール、通信モジュールでアプリケーション管理フレームワークを構成している。なお、プローブモジュール１２，１３がアプリケーション１１を操作する場合もある。
【００２３】
オブジェクト指向言語で作成されたアプリケーションの場合、情報の保持方法や操作方法はアプリケーション毎に異なっている。従って、プローブモジュール１２、１３は情報を収集するアプリケーション毎に作り込みを行わなければならない。しかし、エージェントモジュール１４とのインターフェイスは共通とする。従って、プローブモジュール１２、１３はエージェントモジュール１４以外のエージェントモジュールとも接続することができる。
【００２４】
プローブモジュール１２、１３が収集する情報はアプリケーションによって異なるが、例えばＣＰＵ時間、メモリの使用量、稼働ステータス、オブジェクトの個数、スレッド数、デッドロックの有無、操作しているユーザ名、トランザクションやログなどがある。また、操作の例としては、シャットダウン、再起動、ログレベルの変更、処理の中断や割込などがある。
【００２５】
エージェントモジュール１４は管理ツール２１〜２３と通信を行い、プローブモジュール１２、１３が収集した情報を管理ツール２１〜２３に送信し、また管理ツール２１〜２３から操作要求があると、操作対象オブジェクトに接続しているプローブモジュールに操作要求を送信する。
【００２６】
プローブモジュール１２、１３は独自のＩＤ(identifier)を保持し、エージェントモジュール１４はこのＩＤを用いてプローブモジュール１２、１３を管理する。プローブモジュール１２、１３はコンパイル時に静的に作成され、ＩＤはプローブモジュール１２、１３の作成時に割り付けられる。従って、管理ツール２１〜２３は常に同じＩＤでプローブモジュールにアクセスすることができる。
【００２７】
プローブモジュール１２、１３が情報収集する手法には、定期的に行う手法と、管理ツール２１〜２３からの要請があった場合のみ行う手法がある。この実施例ではどちらの手法でも可能であるとするが、制御システムではリアルタイムで動作するアプリケーションが多くあるために、制御以外の用途では不必要に負荷をかけないようにしていることが多い。そのため、デフォルトでは要請があった場合のみ情報収集することとし、設定によって定期的に情報収集することも可能であるようにした方がよい。
【００２８】
エージェントモジュール１４と管理ツール２１〜２３の間の通信は、管理対象アプリケーションを作成している言語や動作しているプラットフォームによる差異をなくすために、ＸＭＬ(Extensible Markup Language)等の汎用言語をベースにしたプロトコルを用いる。通信プロトコルの例を下記に示す。
（１）管理ツールからエージェントモジュールへの通信
<mng>
<get id="factory1.area2.asset.mem" key="usedmemory" />
<get id="factory1.area2.asset.cpu" key="cputimemory" />
<get id="factory1.area2.asset.cpu." key="usertimemory" />
</mng>
（２）エージェントモジュールから管理ツールへの通信
<mng>
<reply  id="factory1.area2.asset.mem"  key="usedmemory"  val="192" type="int"  unit="KB" />
<reply  id="factory1.area2.asset.cpu"  key="cputimeory"  val="89"  type="int"  unit="ms" />
<reply  id="factory1.area2.asset.cpu."  key="usertimeory"  vale="20"  type="int"  unit="ms" />
</mng>
【００２９】
図１に示すように、管理ツールとの通信プロトコルにＨＴＴＰを用いると、汎用のウエブブラウザ２２を管理ツールとして用いることができる。ＳＮＭＰを用いる場合は、プローブモジュール１２、１３が収集した情報をプライベートＭＩＢ形式に変換して通信を行う。通信モジュール１５〜１７を交換できるようにしておくと、状況に応じて種々の管理ツールを使用することができる。
【００３０】
なお、図１の実施例では情報を収集するアプリケーションを１つとしたが、複数アプリケーションの情報を収集するようにすることもできる。この場合、エージェントモジュール１４に接続するプローブモジュールを増加させればよい。また、別プロセスで動作しているアプリケーションの情報を収集するようにすることもできる。
【００３１】
また、この実施例では管理ツールとして独自管理ツール２１、ウエブブラウザ２２、ＳＮＭＰ管理ツール２３の３種類の管理ツールを用いることとしたが、いずれか１つまたは２つを用いるようにしてもよい。例えば、デフォルトとして独自プロトコルを用いるようにし、ＨＴＴＰやＳＮＭＰはオプションとすることもできる。通信モジュールを交換することにより、どのプロトコルを用いるかを選択できる。
【００３２】
図２は、図１に示したアプリケーション管理フレームワークの動作を表したフローチャートである。図２において、工程（Ｐ２−１）で管理ツールは対応する通信モジュールと接続する。そして、工程（Ｐ２−２）で動作しているプローブモジュールの情報を管理ツールが持っているかを調べ、持っていないと、工程（Ｐ２−３）に移行して、管理ツールはエージェントモジュールにプローブモジュールの一覧を要求する。情報を持っていると、工程（Ｐ２−３）をスキップする。
【００３３】
次に、工程（Ｐ２−４）で、管理ツールはプローブモジュールのＩＤを指定して、エージェントモジュールに情報収集または操作の要求を送信する。通信モジュールは、工程（Ｐ２−５）で受信した要求をエージェントモジュールに通知する。工程（Ｐ２−６）で、エージェントモジュールは受信内容を解釈して、指定されたＩＤを有するプローブモジュールに情報収集あるいは操作を要求する。
【００３４】
プローブモジュールは、工程（Ｐ２−７）で要求された動作を実行し、その結果（収集した情報あるいは操作結果）を取得して、エージェントモジュールに通知する。エージェントモジュールは、工程（Ｐ２−８）で受信した結果を通信モジュールに通知し、管理ツールへの返信を指示する。通信モジュールは、工程（Ｐ２−９）で管理ツールに返信する。管理ツールは、工程（Ｐ２−１０）でこの返信を受信する。このようにして、管理ツールはアプリケーションの情報を取得し、またアプリケーションを操作する。
【００３５】
図３に、本発明の応用例を示す。図３において、３０および５０は広い範囲に分散設置された制御アプリケーション、４０および６０はそれぞれ制御アプリケーション３０、５０内に配置されたプロセスである。プロセス４０はアプリケーション４１、このアプリケーション４１内の情報を保持しているオブジェクト４２、このオブジェクト４２から情報を取得し、またアプリケーション４１を操作するプローブモジュール４３、プローブモジュール４３を操作するエージェントモジュール４４、外部と通信を行う通信モジュール４５で構成されている。すなわち、プロセス４０は図１のプロセス１０と同様の構成を有している。
【００３６】
プロセス６０もプロセス４０と同様の構成を有している。すなわち、アプリケーション６１、オブジェクト６２、プローブモジュール６３、エージェントモジュール６４、通信モジュール６５で構成されている。
【００３７】
７０は管理ツールであり、インターネットなどの広域ネットワークでプロセス４０、６０と接続されている。管理ツール７０は、エージェントモジュール４４、６４を介して制御アプリケーション３０、５０から情報を取得し、また操作する。このように、複数の制御アプリケーションを１台の管理ツール７０で集中管理することができる。
【００３８】
例えば、ＡＭＥＤＡＳ(Automated Meteorological Data Acquisition System、アメダス)のような広域に渡って計測器が設置されるシステムを集中管理することも可能になる。このようなシステムでは、計測器の設置場所が分散しており、保守要員が直接計測器の所に赴いて動作が正常であるかを管理することは、人員配置等さまざまな困難がある。そこで、本発明を応用して計測器群と管理ツールをネットワークで接続することにより、広域に分散したシステムを集中管理することができる。
【図面の簡単な説明】
【００３９】
【図１】本発明の一実施例を示す構成図である。
【図２】本発明の一実施例の動作を示すフローチャートである。
【図３】本発明の応用を示す構成図である。
【符号の説明】
【００４０】
１０、４０、６０プロセス
１１、４１、６１  アプリケーション
１１ａ、１１ｂ、１１ｃ、４２、６２  オブジェクト
１２、１３、４３、６３  プローブモジュール
１４、４４、６４  エージェントモジュール
１５〜１７、４５、６５  通信モジュール
３０、５０  制御アプリケーション
７０  管理ツール
【図１】
2008015648.tif 000003
【図２】
2008015648.tif 000004
【図３】
2008015648.tif 000005