(57)【要約】【課題】定義情報を設定する保存手段を用いることなく、実行させるプログラムモジュールを容易に追加、削除するようにしたアプリケーションプログラムを得る。【解決手段】  監視制御分野におけるデータ収集を行うデータ収集サーバ１０１は、子局装置（１）１０２、子局装置（Ｎ）１０３から送信される監視データを収集するデータ収集プログラム１１０を有し、データ収集プログラム１１０は、データ収集プログラムの機能追加するためのプログラムモジュールをプログラムモジュール検索手段１２０により検索し、検索されたプログラムモジュールをプログラムモジュール読込み手段１２１により読込み、データ入力手段１２４により受信された監視データに合うプログラムモジュールをプログラムモジュール実行手段１２２により実行し、データ出力手段１２５により実行結果をデータベース１１５に格納する。【選択図】図１
2011107755.tif 000002
【特許請求の範囲】
【請求項１】
所定の規則により予めプログラムモジュールが格納されたプログラムモジュール格納フォルダから、上記プログラムモジュールを検索する第一のステップ、
この第一のステップにより検索されたプログラムモジュールを読み込む第二のステップ、
この第二のステップにより読み込まれたプログラムモジュールを実行する第三のステップを含み、
上記各ステップをコンピュータにより実行させることを特徴とするアプリケーションプログラム。
【請求項２】
上記プログラムモジュール格納フォルダには、上記プログラムモジュールの処理順が格納され、上記第三のステップは、上記プログラムモジュール格納フォルダに格納された上記プログラムモジュールの処理順により、上記プログラムモジュールを実行することを特徴とする請求項１に記載のアプリケーションプログラム。
【請求項３】
上記プログラムモジュール格納フォルダに格納されたプログラムモジュールは、通信用のプログラムモジュールを含み、
上記通信用のプログラムモジュールは、上記第一のステップにより検索され、上記第二のステップにより読み込まれ、上記第三のステップにより実行されることを特徴とする請求項１に記載のアプリケーションプログラム。
【請求項４】
上記第三のステップの実行後に、上記第二のステップにより読み込まれた上記プログラムモジュールを開放する第四のステップを上記コンピュータにより実行させることを特徴とする請求項１に記載のアプリケーションプログラム。
【請求項５】
上記第二のステップは、上記第一のステップにより検索されたプログラムモジュールがすでに読み込み済みの上記プログラムモジュールの場合には、当該プログラムモジュールのバージョン情報を取得し、この取得したバージョン情報に基づき、上記すでに読み込み済みのプログラムモジュールを更新することを特徴とする請求項４に記載のアプリケーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、監視制御分野において、演算・検定・集約機能等の各機能を実行するための複数のプログラムモジュールを利用するアプリケーションプログラムに関するものである。
【背景技術】
【０００２】
従来のシステムでは、複数のプログラムモジュールを利用するアプリケーションプログラムに対して、プログラムモジュールを追加・削除・変更する場合、容易に追加・削除・変更できるように、設定ファイル等の保存手段によって保存された定義情報を元に、追加・削除・変更を実現している。（例えば、特許文献１参照）
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−８５５２９号公報（第４〜１２頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の方法は、設定ファイル等の保存手段よって保存された定義情報を元に、プログラムモジュールの追加・削除・変更や処理順序による実行を実現していたが、定義情報を設定する設定ファイルが煩雑になるという問題があった。
【０００５】
この発明は、上記のような課題を解決するためになされたものであり、定義情報を設定する保存手段を用いることなく、実行させるプログラムモジュールを容易に追加、削除するようにしたアプリケーションプログラムを得ることを目的にしている。
【課題を解決するための手段】
【０００６】
この発明に係わるアプリケーションプログラムにおいては、所定の規則により予めプログラムモジュールが格納されたプログラムモジュール格納フォルダから、プログラムモジュールを検索する第一のステップ、
この第一のステップにより検索されたプログラムモジュールを読み込む第二のステップ、
この第二のステップにより読み込まれたプログラムモジュールを実行する第三のステップを含み、
各ステップをコンピュータにより実行させるものである。
【発明の効果】
【０００７】
この発明は、以上説明したように、所定の規則により予めプログラムモジュールが格納されたプログラムモジュール格納フォルダから、プログラムモジュールを検索する第一のステップ、
この第一のステップにより検索されたプログラムモジュールを読み込む第二のステップ、
この第二のステップにより読み込まれたプログラムモジュールを実行する第三のステップを含み、
各ステップをコンピュータにより実行させるので、アプリケーションプログラムにより実行されるプログラムモジュールを容易に追加、削除することができる。
【図面の簡単な説明】
【０００８】
【図１】この発明の実施の形態１によるアプリケーションプログラムを示すブロック図である。
【図２】この発明の実施の形態１によるアプリケーションプログラムの処理を示すフローチャートである。
【図３】この発明の実施の形態１によるアプリケーションプログラムのフォルダ構成を示す図である。
【図４】この発明の実施の形態２によるアプリケーションプログラムを示すブロック図である。
【図５】この発明の実施の形態２によるアプリケーションプログラムの処理を示すフローチャートである。
【図６】この発明の実施の形態２によるアプリケーションプログラムのフォルダ構    成を示す図である。
【図７】この発明の実施の形態３によるアプリケーションプログラムを示すブロック図である。
【図８】この発明の実施の形態３によるアプリケーションプログラムの処理を示すフローチャートである。
【図９】この発明の実施の形態３によるアプリケーションプログラムのフォルダ構    成を示す図である。
【図１０】この発明の実施の形態４によるアプリケーションプログラムを示すブロック図である。
【図１１】この発明の実施の形態４によるアプリケーションプログラムの処理を示すフローチャートである。
【図１２】この発明の実施の形態４によるアプリケーションプログラムのフォルダ構成を示す図である。
【図１３】この発明の実施の形態５によるアプリケーションプログラムを示すブロック図である。
【図１４】この発明の実施の形態５によるアプリケーションプログラムの処理を示すフローチャートである。
【図１５】この発明の実施の形態５によるアプリケーションプログラムのフォルダ構成を示す図である。
【発明を実施するための形態】
【０００９】
実施の形態１．
以下、この発明の実施の形態１について詳細に説明する。
図１は、この発明の実施の形態１によるアプリケーションプログラムを示すブロック図である。
図１において、データ収集プログラムがアプリケーションプログラムである。
監視制御分野におけるデータ収集は、データ収集サーバ１０１により行われ、データ収集サーバ１０１と、監視データを送信する子局装置（１）１０２、子局装置（Ｎ）１０３とは、ＬＡＮ１０４により接続されている。データ収集サーバ１０１は、データを収集するデータ収集プログラム１１０と、データ収集プログラム１１０で使用するプログラムモジュール（１）１１１、プログラムモジュール（２）１１２、プログラムモジュール（３）１１３、プログラムモジュール（Ｎ）１１４、収集データを保存するデータベース（以下、ＤＢと称す）１１５を有している。
データ収集プログラム１１０は、プログラムモジュールを検索するプログラムモジュール検索手段１２０（第一のステップ）、プログラムモジュールを読込むプログラムモジュール読込み手段１２１（第二のステップ）、プログラムモジュールを実行するプログラムモジュール実行手段１２２（第三のステップ）、イベントを処理するイベント処理手段１２３、データを受信するデータ入力手段１２４、プログラムモジュールを開放するプログラムモジュール開放手段１２６、収集データをＤＢ１１５に格納するデータ出力手段１２５を有している。
【００１０】
図２は、この発明の実施の形態１によるアプリケーションプログラムの処理を示すフローチャートである。
【００１１】
図３は、この発明の実施の形態１によるアプリケーションプログラムのフォルダ構成を示す図である。
図３において、データ収集プログラム構成フォルダ３００には、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されたデータ収集プログラム（ｐｒｏｇ．ｅｘｅ）３０２と、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されたデータ演算用フォルダ／ｃａｌｃ／３０３、データ検定用フォルダ／ａｓｓａｒｙ／３０４、データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５とが含まれる。
さらに、データ演算用のプログラムモジュール１（ｘｘｘ１．ｄｌｌ）４０１、プログラムモジュール２（ｘｘｘ２．ｄｌｌ）４０２、プログラムモジュール３（ｘｘｘ３．ｄｌｌ）４０３は、データ演算用フォルダ／ｃａｌｃ／３０３に配置され、データ検定用のプログラムモジュール４（ｙｙｙ１．ｄｌｌ）４０４、プログラムモジュール５（ｙｙｙ２．ｄｌｌ）４０５は、データ検定用フォルダ／ａｓｓａｙ／３０４に配置され、データ集約用のプログラムモジュール６（ｚｚｚ１．ｄｌｌ）４０６、プログラムモジュール７（ｙｙｙ２．ｄｌｌ）４０７、プログラムモジュール７（ｚｚｚ３．ｄｌｌ）４０８は、データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５に配置されている。
【００１２】
次に、実施の形態１のデータ収集全体の流れについて説明する。
図１において、子局装置１０２、子局装置１０３から、監視データをイベントとして送信し、ＬＡＮ１０４経由で、データ収集サーバ１０１へ送信され、データ収集プログラム１１０によって、ＤＢ１１５に格納される。
【００１３】
次いで、データ収集プログラム１１０の処理の流れについて説明する。
図２において、データ収集プログラム１１０は、Ｓ１０１（第一のステップ）の特定のモジュールフォルダ検索にて、データ収集プログラム構成フォルダ３００内の特定のプログラムモジュールを検索する。ここでは、後述するように、特定の規則で決められたプログラムモジュール格納フォルダ内を検索する。次いで、Ｓ１０２で、検索した結果を判断し、プログラムモジュール有と判断した場合、Ｓ１０３（第二のステップ）にて、検索したプログラムモジュールをデータ収集プログラム１１０にロードする。Ｓ１０２にて、プログラムモジュール無と判断するまで、繰り返しプログラムモジュールを読み込む。なお、この流れの説明では、Ｓ１０３でロードしたプログラムモジュールが１個も無い場合の処理は、例外的な処理のため、その説明を省略する。
【００１４】
Ｓ１０２にて、プログラムモジュール無と判断された場合、Ｓ１０４にて、要求イベントの有無を判断する。要求イベント無の場合は、Ｓ１０４を繰り返し、要求イベント有の場合は、Ｓ１０５にて、要求イベントを解析する要求イベント処理を実行する。
次いで、Ｓ１０６のデータ入力処理にて、送信されてきた監視データを受信し、次いで、Ｓ１０７（第三のステップ）のプログラムモジュール実行にて、Ｓ１０３でロードしたプログラムモジュールの中で、送信されてきたイベントに応じたプログラムモジュールを実行する。
次に、Ｓ１０８のデータ出力にて、Ｓ１０７の実行結果をＤＢ１１５に格納する。次いで、Ｓ１０９にて、プログラム終了を判断し、終了でない場合は、Ｓ１０４に戻り、終了の場合は、Ｓ１１０にて、Ｓ１０３で読み込んだプログラムモジュールを開放し、データ収集プログラム１１０の処理を終了する。
【００１５】
Ｓ１０１の特定のモジュールフォルダ検索は、特定の規則で決められたプログラムモジ
ュール格納フォルダ内を検索するものであるが、ここで、プログラムモジュールのフォルダ構成と規則について説明する。
図３において、データ収集プログラム構成フォルダ３００は、次のようになっている。
データ収集プログラム（ｐｒｏｇ．ｅｘｅ）３０２は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されており、そのフォルダ内にデータ演算用フォルダ／ｃａｌｃ／３０３、データ検定用フォルダ／ａｓｓａｒｙ／３０４、データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５が配置される。
【００１６】
データ演算用フォルダ／ｃａｌｃ／３０３にデータ演算用のプログラムモジュール１（ｘｘｘ１．ｄｌｌ）４０１、プログラムモジュール２（ｘｘｘ２．ｄｌｌ）４０２、プログラムモジュール３（ｘｘｘ３．ｄｌｌ）４０３が配置されている。
データ検定用フォルダ／ａｓｓａｙ／３０４にデータ検定用のプログラムモジュール４（ｙｙｙ１．ｄｌｌ）４０４、プログラムモジュール５（ｙｙｙ２．ｄｌｌ）４０５が配置されている。
データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５にデータ集約用のプログラムモジュール６（ｚｚｚ１．ｄｌｌ）４０６、プログラムモジュール７（ｙｙｙ２．ｄｌｌ）４０７、プログラムモジュール７（ｚｚｚ３．ｄｌｌ）４０８が配置されている。
【００１７】
データ演算用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃａｌｃ／３０３へ配置し、データ検定用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置し、データ集約用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｇｇｒｅｇａｔｅ／３０４へ配置する。
【００１８】
データ演算用のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃａｌｃ／３０３へ配置してある該当のプログラムモジュールを削除し、データ検定のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置してある該当のプログラムモジュールを削除し、データ集約楊のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置してある該当のプログラムモジュールを削除する。
【００１９】
プログラムモジュールの作成は、プログラムモジュール名とプログラムモジュールが実行されるメソッド名を揃えて作成する必要がある。例えば、プログラムモジュール名がａｄｄ．ｄｌｌの場合は、プログラムモジュールが実行されるメソッドは、ａｄｄ（）という関数名で作成し、引数、返り値は、データ演算、データ検定、データ集約毎に揃えて作成する。
【００２０】
図２のＳ１０１、Ｓ１０２、Ｓ１０３の処理で、データ収集プログラム１１０にロードされた複数のプログラムモジュールの中から、Ｓ１０７で実行されるプログラムモジュールは、Ｓ１０５で受け取ったイベントから解析し、決定される。
【００２１】
実施の形態１によれば、アプリケーションプログラムへの機能の追加・削除は、従来実施していたプログラムモジュールの再生成やプログラムモジュールに付随する設定ファイルの記述等を一切せずに、実現することができるため、アプリケーションプログラムの再生成の作業量、作業時間や、煩雑な設定ファイルの記述の作業量、作業時間を大幅に削減でき、生産性を向上できるという効果がある。
また、設定ファイル記述における定義漏れや誤った定義による品質劣化もなくなり、品質を向上できるという効果もある。
【００２２】
実施の形態２．
実施の形態１では、プログラムモジュールの追加・削除について述べたが、実施の形態２は、プログラムモジュールを予め決められた処理順にて実行する機能を実現するようにしたものである。
図４は、この発明の実施の形態２によるアプリケーションプログラムを示すブロック図である。
図４において、１０１〜１０４、１１１〜１１５、１２０〜１２６は図１におけるものと同一のものである。図４のデータ収集プログラム２０１は、処理順読込み手段２０２を有している。
図４では、データ収集サーバ１０１は、データを収集するデータ収集プログラム２０１と、データ収集プログラム２０１で使用するプログラムモジュール１１１、プログラムモジュール１１２、プログラムモジュール１１３、プログラムモジュール１１４、収集データを保存するＤＢ１１５を有している。
データ収集プログラム２０１は、プログラムモジュールを検索するプログラムモジュール検索手段１２０、プログラムモジュールを読込むプログラムモジュール読込み手段１２１、処理順を読込む処理順読込み手段２０２、プログラムモジュールを実行するプログラムモジュール実行手段１２２、イベントを処理するイベント処理手段１２３、監視データを受信するデータ入力手段１２４、プログラムモジュールを開放するプログラムモジュール開放手段１２６、収集データをＤＢ１１５に格納するデータ出力手段１２５を有している。
【００２３】
図５は、この発明の実施の形態２によるアプリケーションプログラムの処理を示すフローチャートである。
【００２４】
図６は、この発明の実施の形態２によるアプリケーションプログラムのフォルダ構    成を示す図である。
図６において、３００、３０１、３０３〜３０５、４０１〜４０８は図３におけるものと同一のものである。データ収集プログラム２（ｐｒｏｇ２．ｅｘｅ）３２０は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されている。
機能を表すフォルダ／ｘｘｘ／３１１は、データ演算用フォルダ／ｃａｌｃ／３０３に配置され、処理順を表すフォルダ／１／３２１、／２／３２２、／３／３２３は、機能を表すフォルダ／ｘｘｘ／３１１に配置されている。
機能を表すフォルダ／ｙｙｙ／３１２は、データ検定用フォルダ／ａｓｓａｙ／３０４に配置され、処理順を表すフォルダ／１／３２４、／２／３２５は、機能を表すフォルダ／ｙｙｙ／３１２に配置されている。
機能を表すフォルダ／ｚｚｚ／３１３は、データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５に配置され、処理順を表すフォルダ／１／３２６、／２／３２７、／３／３２８は、機能を表すフォルダ／ｚｚｚ／３１３に配置されている。
機能を表すフォルダ／ｗｗｗ／３１４は、データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５に配置され、処理順を表すフォルダ／１／３２９、／２／３３０、／３／３３１は、機能を表すフォルダ／ｗｗｗ／３１４に配置され、データ集約用のプログラムモジュール９（ｗｗｗ１．ｄｌｌ）４０９、プログラムモジュール１０（ｗｗｗ２．ｄｌｌ）４１０、プログラムモジュール１１（ｗｗｗ３．ｄｌｌ）４１１は、処理順を表すフォルダ／１／３２９、／２／３３０、／３／３３１にそれぞれ配置されている。
【００２５】
次に、データ収集プログラムの処理の流れについて説明する。
図５において、Ｓ１０１〜Ｓ１０６、Ｓ１０８〜Ｓ１１０は図２における処理と同一の処理である。図５では、Ｓ１０２でモジュール有りの場合に、Ｓ２０１を実行した後、Ｓ１０３を実行するようにしている。また、図５では、図２のＳ１０７の処理に替えて、Ｓ１１７の処理を実行するようにしている。
【００２６】
図５のデータ収集プログラム２０１は、Ｓ１０２にて、Ｓ１０１により検索した結果を判断し、プログラムモジュール有と判断した場合、Ｓ２０１にて、プログラムモジュールの処理順を取得し、この後に、Ｓ１０３にて、検索したプログラムモジュールをデータ収集プログラム１１０にロードする。Ｓ１０２にて、プログラムモジュール無と判断するまで、繰り返しプログラムモジュールを読み込む。
また、Ｓ１０２にて、プログラムモジュール無と判断された場合、Ｓ１０４にて、要求イベント有無を判断し、要求イベント無の場合は、Ｓ１０４を繰り返す。Ｓ１０４で、要求イベント有の場合は、Ｓ１０５にて、要求イベントを解析し、データ入力Ｓ１０６にて、送信されてきた監視データを受信する。次いで、Ｓ１１７にて、プログラムモジュールＳ１０３でロードしたモジュールの中で、送信されてきたイベントと、Ｓ２０１で取得したプログラムモジュール処理順に基づいて、プログラムモジュールを順次実行し、データ出力Ｓ１０８にて、実行結果をＤＢ１１５に格納する。
以後の処理は、図２の処理と同じである。
【００２７】
Ｓ２０１において、特定の規則で決められたプログラムモジュール格納フォルダを検索し、処理順を取得するが、実施の形態２のモジュールのフォルダ構成、規則について説明する。
フォルダ構成は、図６に示すとおり、データ収集プログラム構成フォルダ３００には、データ収集プログラム２（ｐｒｏｇ２．ｅｘｅ）３２０は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されており、そのフォルダ内にデータ演算用フォルダ、データ検定用フォルダ、データ集約用フォルダが配置される。
【００２８】
データ演算用プログラムモジュールは、フォルダパス／＊＊＊＊＊＊＊／３０１に／ｃａｌｃ／３０３フォルダがあり、それ以下に処理順を表す／１／３２１、／２／３２２、／３／３２３のフォルダがあり、各処理順フォルダに、プログラムモジュール１（ｘｘｘ１．ｄｌｌ）４０１、プログラムモジュール２（ｘｘｘ２．ｄｌｌ）４０２、プログラムモジュール３（ｘｘｘ３．ｄｌｌ）４０３が配置されている。
データ検定用プログラムモジュールは、フォルダパス／＊＊＊＊＊＊＊／３０１に／ａｓｓａｙ／３０４フォルダがあり、それ以下に／ｙｙｙ／３１２の機能を表すフォルダがあり、それ以下に処理順を表す／１／３２４、／２／３２５のフォルダがあり、各処理順フォルダに、プログラムモジュール４（ｙｙｙ１．ｄｌｌ）４０４、プログラムモジュール５（ｙｙｙ２．ｄｌｌ）４０５が配置されている。
【００２９】
データ集約プログラムモジュールは、フォルダパス／＊＊＊＊＊＊＊／３０１に／ａｇｇｒｅｇａｔｅ／３０５フォルダがあり、それ以下に／ｚｚｚ／３１３の機能を表すフォルダがあり、それ以下に処理順を表す／１／３２６、／２／３２７、／３／３２８のフォルダがあり、各処理順フォルダに、プログラムモジュール６（ｚｚｚ１．ｄｌｌ）４０６、プログラムモジュール７（ｚｚｚ２．ｄｌｌ）４０７、プログラムモジュール８（ｚｚｚ３．ｄｌｌ）４０８が配置されており、／ｗｗｗ／３１４の機能を表すフォルダがあり、それ以下に処理順を表す／１／３２９、／２／３３０、／３／３３１のフォルダがあり、各処理順フォルダにプログラムモジュール９（ｗｗｗ１．ｄｌｌ）４０９、プログラムモジュール１０（ｗｗｗ２．ｄｌｌ）４１０、プログラムモジュール１１（ｗｗｗ３．ｄｌｌ）４１１が配置されている。
【００３０】
図６においては、データ演算のｘｘｘ機能の処理順は、プログラムモジュール１（ｘｘｘ１．ｄｌｌ）４０１、プログラムモジュール２（ｘｘｘ２．ｄｌｌ）４０２、プログラムモジュール３（ｘｘｘ３．ｄｌｌ）４０３であり、上記処理順でプログラムモジュールが実行される。
データ検定のｙｙｙ機能の処理順は、プログラムモジュール４（ｙｙｙ１．ｄｌｌ）４
０４、プログラムモジュール５（ｙｙｙ２．ｄｌｌ）４０５であり、上記処理順でプログラムモジュールが実行される。
また、データ集約のｚｚｚ機能の処理順は、プログラムモジュール６（ｚｚｚ１．ｄｌｌ）４０６、プログラムモジュール７（ｚｚｚ２．ｄｌｌ）４０７、プログラムモジュール８（ｚｚｚ３．ｄｌｌ）４０８であり、上記処理順でプログラムモジュールが実行される。また、データ集約のｗｗｗ機能の処理順は、プログラムモジュール９（ｗｗｗ１．ｄｌｌ）４０９、プログラムモジュール１０（ｗｗｗ２．ｄｌｌ）４１０、プログラムモジュール１１（ｗｗｗ２．ｄｌｌ）４１０、プログラムモジュール１２（ｗｗｗ３．ｄｌｌ）４１１であり、上記処理順でプログラムモジュールが実行される。
【００３１】
プログラムモジュールの処理順を変更したい場合は、処理順を表すフォルダに入っているプログラムモジュールを移動することで、容易に変更することができ、処理を削除する場合は、処理順を表すフォルダを削除することで削除することができる。
【００３２】
実施の形態２によれば、従来、設定ファイル等の記憶装置に記述していたのを、特定の規則でフォルダにモジュールを配置することで、処理順に基づいたプログラムモジュールの実行を実現でき、設定ファイル等の記述が無くなることで、作業量、作業時間を大幅に削減でき、生産性を向上できるという効果がある。
また、設定ファイル等の記述がなくなるので、定義ファイル設定漏れや設定ミス等の人為ミスを排除することができ、品質が向上するという効果もある。
【００３３】
実施の形態３．
実施の形態１では、データ収集のプログラムモジュールの追加・削除について述べたが、実施の形態３は、データ収集用に加えて、データ入力機能を構成する通信用のプログラムモジュールの追加・削除を実現し、多段に機能拡張を実現するようにしたものである。
図７は、この発明の実施の形態３によるアプリケーションプログラムを示すブロック図である。
図７において、１０１、１０４、１１１〜１１５、１２０〜１２６は図１におけるものと同一のものである。図７のデータ収集プログラム２３０は、データ入力手段１２４内にプログラムモジュール実行手段２３１を有している。
監視制御分野におけるデータ収集は、データ収集サーバ１０１により行われ、データ収集サーバ１０１と、監視データを送信するデータ送信装置（１）１０７、データ送信装置（Ｎ）１０８とは、ＬＡＮ１０４により接続されている。
図７のデータ収集プログラム２３０は、プログラムモジュールを検索するプログラムモジュール検索手段１２０、プログラムモジュールを読込むプログラムモジュール読込み手段１２１、プログラムモジュールを実行するプログラムモジュール実行手段１２２、イベントを処理するイベント処理手段１２３、監視データを受信するデータ入力手段１２４、プログラムモジュールを開放するプログラムモジュール開放手段１２６、収集データをＤＢ１１５に格納するデータ出力手段１２５、データ入力手段１２４内にあるデータ入力（通信）用プログラムモジュールを実行する通信用プログラムモジュール実行手段２３１を有している。
【００３４】
図８は、この発明の実施の形態３によるアプリケーションプログラムの処理を示すフローチャートである。
【００３５】
図９は、この発明の実施の形態３によるアプリケーションプログラムのフォルダ構    成を示す図である。
図９において、３００、３０１、３０３〜３０５、４０１〜４０８は図３におけるものと同一のものである。
データ収集プログラム３（ｐｒｏｇ３．ｅｘｅ）５０１は、フォルダパス／＊＊＊＊＊
＊＊／３０１に配置されている。
通信用フォルダ／ｃｏｍｍ／５０２は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置され、通信用のプログラムモジュール９（ｔｃｐ１．ｄｌｌ）５０３、プログラムモジュール１０（ｕｄｐ２．ｄｌｌ）５０４、プログラムモジュール１１（ｈｔｔｐ３．ｄｌｌ）５０５は、通信用フォルダ／ｃｏｍｍ／５０２に配置されている。
【００３６】
次に、データ収集プログラムの処理の流れについて説明する。
図８において、Ｓ１０１〜Ｓ１０５、Ｓ１０７〜Ｓ１１０は図２における処理と同一の処理である。図８では、図２のＳ１０６が、Ｓ１２６に変更されている。
データ収集プログラム２３０は、Ｓ１０５にて、要求イベントを解析した後、Ｓ１２６にて、Ｓ１０３でロードした通信用プログラムモジュールを実行し、送信されてきた監視データを受信し、データを入力し、次いで、Ｓ１０７にて、データ収集用プログラムモジュールを実行し、Ｓ１０８にて、実行結果をＤＢ１１５に格納する。以後の処理は、図２における処理と同様の処理を行う。
【００３７】
Ｓ１０１において、特定の規則で決められたプログラムモジュール格納フォルダ内を検索するが、ここで、プログラムのモジュールフォルダ構成と規則について説明する。
図９において、データ収集プログラム構成フォルダ３００では、データ収集プログラム３（ｐｒｏｇ３．ｅｘｅ）５０１は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されており、そのフォルダ内にデータ演算用フォルダ／ｃａｌｃ／３０３、データ検定用フォルダ／ａｓｓａｒｙ／３０４、データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５、通信用フォルダ／ｃｏｍｍ／５０２が配置される。
【００３８】
データ演算用フォルダ／ｃａｌｃ／３０３にデータ演算用のプログラムモジュール１（ｘｘｘ１．ｄｌｌ）４０１、プログラムモジュール２（ｘｘｘ２．ｄｌｌ）４０２、プログラムモジュール３（ｘｘｘ３．ｄｌｌ）４０３が配置されている。
データ検定用フォルダ／ａｓｓａｙ／３０４にデータ検定用のプログラムモジュール４（ｙｙｙ１．ｄｌｌ）４０４、プログラムモジュール５（ｙｙｙ２．ｄｌｌ）４０５が配置されている。
データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５にデータ集約用のプログラムモジュール６（ｚｚｚ１．ｄｌｌ）４０６、プログラムモジュール７（ｙｙｙ２．ｄｌｌ）４０７、プログラムモジュール７（ｚｚｚ３．ｄｌｌ）４０８が配置されている。
通信用フォルダ／ｃｏｍｍ／５０２に通信用のプログラムモジュール９（ｔｃｐ１．ｄｌｌ）５０３、プログラムモジュール１０（ｕｄｐ２．ｄｌｌ）５０４、プログラムモジュール１１（ｈｔｔｐ３．ｄｌｌ）５０５が配置されている。
【００３９】
データ演算用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃａｌｃ／３０３へ配置し、データ検定用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置し、データ集約用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｇｇｒｅｇａｔｅ／３０４へ配置し、通信用プログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃｏｍｍ／５０２へ配置する。
【００４０】
データ演算用のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃａｌｃ／３０３へ配置してある該当のプログラムモジュールを削除し、データ検定のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置してある該当のプログラムモジュールを削除し、データ集約楊のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置してある該当のプログラムモジュールを削除し、削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃｏｍｍ／５０２へ配置してある該当のプログラムモジュールを削除する。
【００４１】
実施の形態３によれば、データ収集（演算・集約・検定）のみでなく、データ入力（通信）においても通信用のプログラムモジュールの追加・削除を行うことができる。したがって、アプリケーションモジュールの再生成の作業量や、煩雑な設定ファイルの記述の作業量、作業時間をより大幅に削減でき生産性向上できるよういう効果がある。
また、設定ファイル記述における定義漏れや誤った定義による品質劣化もなくなり、品質を向上できるという効果がある。
【００４２】
実施の形態４．
実施の形態１では、プログラムモジュールの追加・削除について述べたが、実施の形態４は、アプリケーションプログラムを再起動せずにプログラムモジュールの追加・削除が可能な機能を実現するものである。
図１０は、この発明の実施の形態４によるアプリケーションプログラムを示すブロック図である。
図１０において、１０１〜１０４、１１１〜１１５、１２０〜１２６は図１におけるものと同一のものである。図１０では、データ収集プログラム２４０が、データ収集サーバ１０１に搭載されている。データ収集プログラム２４０は、プログラムモジュールを検索するプログラムモジュール検索手段１２０、プログラムモジュールを読込むプログラムモジュール読込み手段１２１、プログラムモジュールを実行するプログラムモジュール実行手段１２２、イベントを処理するイベント処理手段１２３、監視データを受信するデータ入力手段１２４、プログラムモジュールを開放するプログラムモジュール開放手段１２６（第四のステップ）、収集データをＤＢ１１５に格納するデータ出力手段１２５を有している。
【００４３】
図１１は、この発明の実施の形態４によるアプリケーションプログラムの処理を示すフローチャートである。
【００４４】
図１２は、この発明の実施の形態４によるアプリケーションプログラムのフォルダ構成を示す図である。
図１２において、３００、３０１、３０３〜３０５、４０１〜４０８は図３におけるものと同一のものである。
データ収集プログラム４（ｐｒｏｇ４．ｅｘｅ）５４０は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されている。
【００４５】
次に、データ収集プログラムの処理の流れについて説明する。
図１１のＳ１０１〜Ｓ１１０の各処理は、図２のＳ１０１〜Ｓ１１０の各処理と同様の処理を実行するが、実行順序が図２とは、異なっている。
図１１では、データ収集プログラム２４０は、まず、要求イベントの有無を判定する処理Ｓ１０４を実行する。Ｓ１０４にて、要求イベント有無を判断し、要求イベント無の場合は、Ｓ１０４の処理を繰り返す。Ｓ１０４で、要求イベント有の場合は、Ｓ１０１にて、データ収集プログラム構成フォルダ３００内の特定のプログラムモジュールを検索する。次いで、Ｓ１０２にて、Ｓ１０１で検索した結果を判断し、プログラムモジュール有と判断した場合、Ｓ１０３にて、検索したプログラムモジュールをデータ収集プログラム２４０にロードする。
Ｓ１０２にて、プログラムモジュール無と判断するまで、繰り返し実施し、複数のプログラムモジュールを読み込む。なお、この流れの説明では、Ｓ１０３でロードしたプログラムモジュールが１個も無い場合の処理は、例外的な処理ため、説明を省く。
【００４６】
Ｓ１０２にて、プログラムモジュール無と判断された場合、Ｓ１０５の要求イベント処理実行にて、要求イベントを解析し、次いで、Ｓ１０６にて、送信されてきた監視データを受信し、Ｓ１０７にて、Ｓ１０３でロードしたプログラムモジュールの中で、送信されてきたイベントに応じたプログラムモジュールを実行し、Ｓ１１０（第四のステップ）にて、読み込んだプログラムモジュールを開放する。
次いで、Ｓ１０８のデータ出力にて、実行結果をＤＢ１１５に格納する。さらにＳ１０９にて、プログラム終了の判断を実施し、終了でない場合は、Ｓ１０４に戻り、終了の場合は、データ収集プログラム２４０を終了する。
【００４７】
Ｓ１０１において、特定の規則で決められたプログラムモジュール格納フォルダ内を検索するが、次に、プログラムのモジュールフォルダ構成と規則について説明する。
図１２において、データ収集プログラム構成フォルダ３００では、データ収集プログラム４（ｐｒｏｇ４．ｅｘｅ）５４０は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されており、そのフォルダにデータ演算用フォルダ／ｃａｌｃ／３０３、データ検定用フォルダ／ａｓｓａｙ／３０４、データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５が配置される。
【００４８】
データ演算用プログラムモジュールは、フォルダパス／＊＊＊＊＊＊＊／３０１に、／ｃａｌｃ／３０３フォルダがあり、そのフォルダに演算のプログラムモジュール１（ｘｘｘ１．ｄｌｌ）４０１、プログラムモジュール２（ｘｘｘ２．ｄｌｌ）４０２、プログラムモジュール３（ｘｘｘ３．ｄｌｌ）４０３が配置されている。
データ検定用プログラムモジュールは、フォルダパス／＊＊＊＊＊＊＊／３０１に、／ａｓｓａｙ／３０４フォルダがあり、そのフォルダにデータ検定用のプログラムモジュール４（ｙｙｙ１．ｄｌｌ）４０４、プログラムモジュール５（ｙｙｙ２．ｄｌｌ）４０５が配置されている。
データ集約用プログラムモジュールは、フォルダパス／＊＊＊＊＊＊＊／３０１に、／ａｇｇｒｅｇａｔｅ／３０５フォルダがあり、そのフォルダにデータ集約用のプログラムモジュール６（ｚｚｚ１．ｄｌｌ）４０６、プログラムモジュール７（ｙｙｙ２．ｄｌｌ）４０７、プログラムモジュール７（ｚｚｚ３．ｄｌｌ）４０８が配置されている。
【００４９】
データ演算用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃａｌｃ／３０３へ配置し、データ検定用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置し、データ集約用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｇｇｒｅｇａｔｅ／３０４へ配置する。
【００５０】
データ演算用のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃａｌｃ／３０３へ配置してある該当のプログラムモジュールを削除し、データ検定のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置してある該当のプログラムモジュールを削除し、データ集約楊のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置してある該当のプログラムモジュールを削除する。
【００５１】
実施の形態４によれば、アプリケーションプログラムへの機能追加・削除をアプリケーションプログラムを終了せずに実現可能なため、保守性、運用性、柔軟性が向上できるという効果がある。
【００５２】
実施の形態５．
実施の形態４では、アプリケーションプログラムを終了せずにプログラムモジュールの
追加・削除が可能な機能を実現したが、実施の形態５では、プログラムモジュールのバージョン情報を取得し、取得したバージョン情報に応じて、プログラムモジュールを更新する機能を実現するようにしたものである。
図１３は、この発明の実施の形態５によるアプリケーションプログラムを示すブロック図である。
図１３において、１０１〜１０４、１１１〜１１５、１２０〜１２６は図１におけるものと同一のものである。図１３では、データ収集プログラム２５０に、プログラムモジュールのバージョン情報を取得するモジュールバージョン取得手段１２９を設けている。
データ収集プログラム２５０は、プログラムモジュールを検索するプログラムモジュール検索手段１２０、プログラムモジュールを読込むプログラムモジュール読込み手段１２１、プログラムモジュールを実行するプログラムモジュール実行手段１２２、イベントを処理するイベント処理手段１２３、監視データを受信するデータ入力手段１２４、プログラムモジュールを開放するプログラムモジュール開放手段１２６、収集データをＤＢ１１５に格納するデータ出力手段１２５、プログラムモジュールのバージョン情報を取得するモジュールバージョン取得手段１２９を有している。
【００５３】
図１４は、この発明の実施の形態５によるアプリケーションプログラムの処理を示すフローチャートである。
【００５４】
図１５は、この発明の実施の形態５によるアプリケーションプログラムのフォルダ構成を示す図である。
図１５において、３００、３０１、３０３〜３０５、４０１〜４０８は図３におけるものと同一のものである。
データ収集プログラム５（ｐｒｏｇ５．ｅｘｅ）５５０は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されている。
【００５５】
次に、データ収集プログラム２５０の処理の流れについて説明する。
図１４において、データ収集プログラム２５０は、Ｓ１０４にて、要求イベント有無を判断し、要求イベント無の場合は、Ｓ１０４の処理を繰り返す。要求イベント有の場合は、Ｓ１０１にて、データ収集プログラム構成フォルダ３００内の特定のプログラムモジュールを検索し、次いで、Ｓ１０２にて、検索した結果を判断し、プログラムモジュール有と判断した場合、Ｓ１５４にて、新規に追加されたプログラムモジュールかどうかをチェックし、新規に追加されたプログラムモジュールの場合は、Ｓ１０３にて、プログラムモジュールをロードし、Ｓ１０１に戻る。Ｓ１５４で、新規に追加されたプログラムモジュールで無い場合は、Ｓ１５１にて、プログラムモジュールのバージョン情報を取得する。次いで、Ｓ１５２にて、新規に追加されたものでないプログラムモジュールのバージョン情報と、取得したバージョン情報とを比較して、プログラムモジュールの更新が必要かどうかを判断し、更新の必要無の場合は、Ｓ１０１に戻る。更新の必要有の場合は、Ｓ１５５にて、古いプログラムモジュールを開放し、Ｓ１０３にて、新規に追加されたプログラムモジュールをデータ収集プログラム２５０にロードする。
Ｓ１０２にて、プログラムモジュール無と判断するまで、繰り返し実施し、複数のプログラムモジュールを読み込む。なお、この流れの説明では、Ｓ１０３でロードしたプログラムモジュールが１個も無い場合の処理は、例外的な処理のため、その説明を省略する。
【００５６】
Ｓ１０２にて、プログラムモジュール無と判断された場合、Ｓ１５３にて、削除されたプログラムモジュールが無いかどうかをチェックし、削除されたプログラムモジュールが有る場合は、Ｓ１５６にて、ロードしている削除されたプログラムモジュールを開放する。無い場合は、Ｓ１０５へ遷移する。
Ｓ１０５の要求イベント処理実行にて、要求イベントを解析し、Ｓ１０６のデータ入力にて、送信されてきた監視データを受信し、Ｓ１０７にて、Ｓ１０３でロードしたプログ
ラムモジュールの中で、送信されてきたイベントに応じたプログラムモジュールを実行し、Ｓ１０８のデータ出力にて、実行結果をＤＢ１１５に格納する。
次いで、Ｓ１０９にて、プログラムの終了判断を実施し、終了でない場合は、Ｓ１０４に戻り、終了の場合は、Ｓ１１０にて、全てのプログラムモジュールを開放し、データ収集プログラム２５０を終了する。
【００５７】
Ｓ１０１において、特定の規則で決められたプログラムモジュール格納フォルダ内を検索するが、次に、プログラムモジュールのフォルダ構成と規則について説明する。
図１５において、データ収集プログラム構成フォルダ３００では、データ収集プログラム５（ｐｒｏｇ５．ｅｘｅ）５５０は、フォルダパス／＊＊＊＊＊＊＊／３０１に配置されており、そのフォルダにデータ演算用フォルダ／ｃａｌｃ／３０３、データ検定用フォルダ／ａｓｓａｙ／３０４、データ集約用フォルダ／ａｇｇｒｅｇａｔｅ／３０５が配置される。
【００５８】
フォルダパス／＊＊＊＊＊＊＊／３０１上に、／ｃａｌｃ／３０３フォルダがあり、そのフォルダに演算のプログラムモジュール１（ｘｘｘ１．ｄｌｌ）４０１、プログラムモジュール２（ｘｘｘ２．ｄｌｌ）４０２、プログラムモジュール３（ｘｘｘ３．ｄｌｌ）４０３が配置されている。
フォルダパス／＊＊＊＊＊＊＊／３０１に、／ａｓｓａｙ／３０４フォルダがあり、そのフォルダにデータ検定用のプログラムモジュール４（ｙｙｙ１．ｄｌｌ）４０４、プログラムモジュール５（ｙｙｙ２．ｄｌｌ）４０５が配置されている。
フォルダパス／＊＊＊＊＊＊＊／３０１に、／ａｇｇｒｅｇａｔｅ／３０５フォルダがあり、そのフォルダにデータ集約用のプログラムモジュール６（ｚｚｚ１．ｄｌｌ）４０６、プログラムモジュール７（ｙｙｙ２．ｄｌｌ）４０７、プログラムモジュール７（ｚｚｚ３．ｄｌｌ）４０８が配置されている。
【００５９】
データ演算用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃａｌｃ／３０３へ配置し、データ検定用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置し、データ集約用のプログラムモジュールを追加したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｇｇｒｅｇａｔｅ／３０４へ配置する。
データ演算用のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ｃａｌｃ／３０３へ配置してある該当のプログラムモジュールを削除し、データ検定のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置してある該当のプログラムモジュールを削除し、データ集約楊のプログラムモジュールを削除したい場合は、フォルダパス／＊＊＊＊＊＊＊／３０１の／ａｓｓａｙ／３０４へ配置してある該当のプログラムモジュールを削除する。
【００６０】
実施の形態５によれば、アプリケーションプログラムへの機能の追加・削除を、アプリケーションプログラムを終了せずに行うことができ、プログラムモジュールが更新された場合でも、プログラムモジュールのバージョン情報により更新の有無を判断して、必要な更新を実行できるため、保守性、運用性、柔軟性が向上できるという効果がある。
【符号の説明】
【００６１】
１０１  データ収集サーバ
１０２  子局装置
１０３  子局装置
１０４  ＬＡＮ
１０７  データ送信装置
１０８  データ送信装置
１１０  データ収集プログラム
１１１  プログラムモジュール
１１２  プログラムモジュール
１１３  プログラムモジュール
１１４  プログラムモジュール
１１５  データベース
１２０  プログラムモジュール検索手段
１２１  プログラムモジュール読込み手段
１２２  プログラムモジュール実行手段
１２３  イベント処理手段
１２４  データ入力
１２５  データ出力
１２６  プログラムモジュール開放手段
１２９  モジュールバージョン取得手段
２０２  処理順読込み手段
２３１  通信用プログラムモジュール実行手段
【図１】
2011107755.tif 000003
【図２】
2011107755.tif 000004
【図３】
2011107755.tif 000005
【図４】
2011107755.tif 000006
【図５】
2011107755.tif 000007
【図６】
2011107755.tif 000008
【図７】
2011107755.tif 000009
【図８】
2011107755.tif 000010
【図９】
2011107755.tif 000011
【図１０】
2011107755.tif 000012
【図１１】
2011107755.tif 000013
【図１２】
2011107755.tif 000014
【図１３】
2011107755.tif 000015
【図１４】
2011107755.tif 000016
【図１５】
2011107755.tif 000017