(57)【特許請求の範囲】
【請求項１】
現在値データ、時系列データまたは履歴データを含むプロセスデータを保持する複数のプロセス制御装置と、
前記複数のプロセス制御装置からネットワークを経由して前記プロセスデータを収集して処理を施す複数のデータ収集装置と、を有する情報処理システムであって、
前記データ収集装置は、
前記複数のデータ収集装置をそれぞれ識別するために割り当てられた呼称である第１識別情報および該データ収集装置の稼働状態を示す状態情報を保持するデータ収集装置管理テーブルと、前記複数のプロセス制御装置をそれぞれ識別するために割り当てられた呼称である第２識別情報を保持するプロセス制御装置管理テーブルと、を記録する記録部と、
前記データ収集装置管理テーブルの登録内容を逐次更新することにより、当該情報処理システムに対する参入または離脱、並びに、当該情報処理システムに参入している全ての前記データ収集装置の稼働状態を管理する第１動的管理手段と、
前記プロセス制御装置管理テーブルの内容を更新することにより、前記複数のプロセス制御装置の当該情報処理システムへの追加または削除を管理する第２動的管理手段と、
前記データ収集装置管理テーブルに基づいて、稼働中のデータ収集装置を抽出し、稼働中の全データ収集装置の前記第１識別情報を昇順にソートして前記データ収集装置群のリストを生成するとともに、前記プロセス制御装置管理テーブルに基づいて、前記情報処理システムに参入している全プロセス制御装置の前記第２識別情報を昇順にソートして前記プロセス制御装置群のリストを生成し、前記プロセス制御装置群のリストの要素を前記データ収集装置群のリストの要素に順次割り当てることによって、データ収集装置が自装置で担当するプロセス制御装置を決定する担当決定手段と、
を有することを特徴とする情報処理システム。
【請求項２】
前記データ収集装置は、
複数の処理リソースを有し、前記プロセスデータについての処理を実行する実行部と、
前記プロセスデータについての処理をタスクとして管理するタスク管理手段と、
前記実行部が持つスレッドまたはプロセスの内の所定数の実行可能なスレッドまたはプロセスをプール管理して、前記タスク管理手段から順次取り出される一のタスクを一のスレッドまたはプロセスに割り当てる実行制御手段と、を有することを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記データ収集装置は、
前記プロセスデータの内の時系列データまたは履歴データについて、データ種別毎に、該データの処理が時系列的にどこまで実施済みかを示す処理履歴情報を保持し、タスク実行の際に該処理履歴情報に基づき時間的に無矛盾の継続処理を行い、タスク終了時に該処理履歴情報を更新するデータ処理履歴管理手段を有することを特徴とする請求項２に記載の情報処理システム。
【請求項４】
現在値データ、時系列データまたは履歴データを含むプロセスデータを保持する複数のプロセス制御装置と、
前記複数のプロセス制御装置からネットワークを経由して前記プロセスデータを収集して処理を施す複数のデータ収集装置と、を有する情報処理システムの処理方法であって、
前記データ収集装置は、
前記複数のデータ収集装置をそれぞれ識別するために割り当てられた呼称である第１識別情報および該データ収集装置の稼働状態を示す状態情報をデータ収集装置管理テーブルに保持するステップと、
前記複数のプロセス制御装置をそれぞれ識別するために割り当てられた呼称である第２識別情報をプロセス制御装置管理テーブルに保持するステップと、
前記データ収集装置管理テーブルの登録内容を逐次更新することにより、当該情報処理システムに対する参入または離脱、並びに、当該情報処理システムに参入している全ての前記データ収集装置の稼働状態を管理する第１動的管理ステップと、
前記プロセス制御装置管理テーブルの内容を更新することにより、前記複数のプロセス制御装置の当該情報処理システムへの追加または削除を管理する第２動的管理ステップと、
前記データ収集装置管理テーブルに基づいて、稼働中のデータ収集装置を抽出し、稼働中の全データ収集装置の前記第１識別情報を昇順にソートして前記データ収集装置群のリストを生成するステップと、前記プロセス制御装置管理テーブルに基づいて、前記情報処理システムに参入している全プロセス制御装置の前記第２識別情報を昇順にソートして前記プロセス制御装置群のリストを生成するステップと、前記プロセス制御装置群のリストの要素を前記データ収集装置群のリストの要素に順次割り当てることによって、データ収集装置が自装置で担当するプロセス制御装置を決定するステップと、を有する担当決定ステップと、
を有することを特徴とする情報処理システムの処理方法。
【請求項５】
前記データ収集装置は、
前記プロセスデータについての処理をタスクとして管理するタスク管理ステップと、
前記データ収集装置において前記プロセスデータについての処理を実行する実行部が持つスレッドまたはプロセスの内の所定数の実行可能なスレッドまたはプロセスをプール管理して、前記タスク管理ステップで順次取り出される一のタスクを一のスレッドまたはプロセスに割り当てる実行制御ステップと、を有することを特徴とする請求項４に記載の情報処理システムの処理方法。
【請求項６】
前記データ収集装置は、
前記プロセスデータの内の時系列データまたは履歴データについて、データ種別毎に、該データの処理が時系列的にどこまで実施済みかを示す処理履歴情報を保持し、タスク実行の際に該処理履歴情報に基づき時間的に無矛盾の継続処理を行わせ、タスク終了時に該処理履歴情報を更新するデータ処理履歴管理ステップを有することを特徴とする請求項４に記載の情報処理システムの処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現在値データ、時系列データまたは履歴データを含むプロセスデータの収集、加工、保存等を行う情報処理システム及びその処理方法に関する。
【背景技術】
【０００２】
プロセスデータの収集、加工、保存等を行う情報処理システムとして、従来の一般的なシステム構成（第１従来例）を図１３に示す。同図において、データ収集装置５２は、Ｎ個のプロセス制御装置（データソース）５１−１〜５１−Ｎにおいて収集または生成される一次プロセスデータを、所定頻度でネットワーク５３を経由して収集する。そして、データ収集装置５２において二次利用のための加工を行なった後、二次プロセスデータ（アプリケーションデータ）としてデータ永続化装置５４に保存する。データ表示装置５５では、その二次プロセスデータを利用して、業務アプリケーションやマンマシンインタフェース機能を提供する。
【０００３】
このような一般的なシステム構成を持つ情報処理システムでは、データ収集装置５２が一括してデータ収集、一次プロセスデータから二次プロセスデータへの加工、並びに、データ永続化装置５４への保存を行なうため、データ収集装置５２に負荷が集中し易い。例えば、データ収集装置５２が障害等により処理不能となったときには、二次プロセスデータの欠損につながり、データ表示装置５５における表示が行なえないこととなる。
【０００４】
また一般的に、データ収集装置５２は、プロセス制御装置５１−１〜５１−Ｎとデータ表示装置５５との間で、所定頻度でのプロセスデータ収集以外の処理を行なう場合がある。例えば、データ表示装置５５から入力される制御コマンドのプロセス制御装置５１−１〜５１−Ｎへの送信、データ表示装置５５の要求に従ったプロセス制御装置５１−１〜５１−Ｎからのリアルタイムデータの取得、或いは、収集された二次プロセスデータを基にした時単位から日単位または日単位から月単位など三次プロセスデータへの周期的な加工及び保存等である。その場合、所定頻度でのプロセスデータ収集処理のためにデータ収集装置５２へ負荷が集中して、データ収集装置５２のＣＰＵ、メモリ等のリソースが使い果たされると、プロセスデータ収集以外の処理を行なえなくなる可能性がある。
【０００５】
また、データ収集装置５２が一括して、データ収集、一次プロセスデータから二次プロセスデータへの加工、並びに、データ永続化装置５４への保存を行なうため、その処理性能を向上させる必要がある。この場合は、一般的にはデータ収集装置５２を停止させた上でのリソース（ＣＰＵ、メモリ等）の増強が必要となり、システム全体が稼働中のまま動的に性能向上を行なうことはできない。ここで、処理性能は、どの程度の頻度でプロセス制御装置５１−１〜５１−Ｎからデータ収集、加工及び保存を行なえるかを表す。
【０００６】
すなわち、システムを停止させないためには、データ収集対象となるプロセス制御装置が増加する場合に対する備えとして、データ収集装置５２には、プロセス制御装置が最大数となる状況においても所望の処理性能を満たすだけのリソース（ＣＰＵ、メモリ等）を予め搭載しておく必要がある。したがって、データ収集装置５２において、対象となるプロセス制御装置（データソース）数の増減に応じた動的な性能調整を行なうことはできない。
【０００７】
特許文献１に開示された手法を前記一般的システム（図１３）に適用したときの構成（第２従来例）を図１４に示す。この従来手法では、データ収集装置６２を多重化して、全てのデータ収集装置６２−１〜６２−Ｍに予め優先順位を定義する。そして、その中で稼動状態にある全てのデータ収集装置から最も優先順位の高いものを収集マスタ（図中、データ収集装置６２−１）とし、次に優先順位の高いデータ収集装置を収集スレーブ（図中、データ収集装置６２−Ｍ）として、全てのプロセスデータの収集・保存を行なう。本従来手法では、収集マスタ及び収集スレーブ以外の稼動状態にあるデータ収集装置は待機状態となり、収集マスタまたは収集スレーブの何れかがダウンした場合、再度優先順位によって収集マスタ及び収集スレーブが選出される。
【０００８】
また、特許文献２に開示された手法を前記一般的システム（図１３）に適用したときの構成（第３従来例）を図１５に示す。この従来手法では、データ収集装置とデータ永続化装置を一体化して多重化し、個々のデータ収集装置、並びに、そのデータ収集装置が対象とするプロセス制御装置（ノード）を構成情報７６として全てのデータ収集装置で共有している。本従来手法では、データ収集装置は、構成情報７６に基づいて、自らの収集対象となるプロセス制御装置（ノード）に対してデータ収集と保存を行なう。また、データ表示装置７５も構成情報７６に基づいて、必要な二次プロセスデータ（アプリケーション）をどのデータ収集装置７２−Ａまたは７２−Ｂ（データ永続化装置７４−Ａまたは７４−Ｂ）が保持しているかを判断したうえで、対象データ収集装置（データ永続化装置）に問い合わせる。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開平９−３４５４０号公報
【特許文献２】特開２０１０−１９８４３４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、前記した特許文献１に開示された技術においては、多重化された全てのデータ収集装置から実際に処理を行なうデータ収集装置を優先順位に基づき決定するが、負荷分散や負荷平準化には対応していないという事情がある。また、特許文献２に開示された技術では、データ収集装置とそのデータ収集装置が対象とするプロセス制御装置（ノード）の関係を示す構成情報が予め設定されており、静的且つ固定的である。そのため、データ収集装置及びプロセス制御装置（ノード）の動的な増減が考慮されていないという事情がある。
【００１１】
本発明は、以上のような事情に鑑みてなされたものであって、プロセスデータの収集、加工、保存を行うデータ収集装置の負荷を分散すると共に、該負荷の平準化を図り得る情報処理システム及びその処理方法を提供することを目的としている。
また、本発明の他の目的は、プロセスデータの収集、加工、保存について、処理性能の向上を動的且つ容易に行い得る情報処理システム及びその処理方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記課題を解決するため、本発明は、現在値データ、時系列データまたは履歴データを含むプロセスデータを保持する複数のプロセス制御装置と、前記複数のプロセス制御装置からネットワークを経由して前記プロセスデータを収集して処理を施す複数のデータ収集装置と、を有する情報処理システムであって、前記データ収集装置は、前記複数のデータ収集装置をそれぞれ識別するために割り当てられた呼称である第１識別情報および該データ収集装置の稼働状態を示す状態情報を保持するデータ収集装置管理テーブルと、前記複数のプロセス制御装置をそれぞれ識別するために割り当てられた呼称である第２識別情報を保持するプロセス制御装置管理テーブルと、を記録する記録部と、前記データ収集装置管理テーブルの登録内容を逐次更新することにより、当該情報処理システムに対する参入または離脱、並びに、当該情報処理システムに参入している全ての前記データ収集装置の稼働状態を管理する第１動的管理手段と、前記プロセス制御装置管理テーブルの内容を更新することにより、前記複数のプロセス制御装置の当該情報処理システムへの追加または削除を管理する第２動的管理手段と、前記データ収集装置管理テーブルに基づいて、稼働中のデータ収集装置を抽出し、稼働中の全データ収集装置の前記第１識別情報を昇順にソートして前記データ収集装置群のリストを生成するとともに、前記プロセス制御装置管理テーブルに基づいて、前記情報処理システムに参入している全プロセス制御装置の前記第２識別情報を昇順にソートして前記プロセス制御装置群のリストを生成し、前記プロセス制御装置群のリストの要素を前記データ収集装置群のリストの要素に順次割り当てることによって、データ収集装置が自装置で担当するプロセス制御装置を決定する担当決定手段と、を備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、プロセスデータの収集、加工、保存を行うデータ収集装置の負荷を分散すると共に、該負荷の平準化を図ることができ、プロセスデータの収集、加工、保存について、処理性能の向上を動的且つ容易に行い得る情報処理システム及びその処理方法を実現することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態に係る情報処理システムの構成図である。
【図２】実施形態の情報処理システムの全体構成を例示する構成図である。
【図３】データ収集装置管理テーブルを例示する説明図である。
【図４】プロセス制御装置管理テーブルを例示する説明図である。
【図５】データ収集装置の情報処理システムへの参入手順を説明するフローチャートである。
【図６】データ収集装置の情報処理システムからの離脱手順を説明するフローチャートである。
【図７】データ収集装置が担当するプロセス制御装置を決定する手順を説明するフローチャートである。
【図８】データ収集装置の担当決定を例示して説明する説明図である。
【図９】タスクのスレッドへの割当手順を説明するフローチャートである。
【図１０】タスクの実行及びスレッドへの割当解除手順を説明するフローチャートである。
【図１１】実行制御手段によるタスクのスレッドへの割当を例示して説明する説明図である。
【図１２】処理履歴情報に基づくタスク実行の制御手順を説明するフローチャートである。
【図１３】従来のデータ収集を行う情報処理システムの一般的構成（第１従来例）を例示する構成図である。
【図１４】第２従来例の情報処理システムの構成図である。
【図１５】第３従来例の情報処理システムの構成図である。
【発明を実施するための形態】
【００１５】
以下、本発明の情報処理システム及びその処理方法の実施形態について、図面を参照して詳細に説明する。
〔実施形態〕
【００１６】
図１は本発明の一実施形態に係る情報処理システムの構成図であり、データ収集装置の内部構成を主として示している。また、図２は本実施形態の情報処理システムの全体構成図である。
【００１７】
図１及び図２において、本実施形態の情報処理システムは、プロセス制御装置群１（Ｎ個のプロセス制御装置１−１〜１−Ｎ；Ｎは２以上の正整数）及びデータ収集装置群２（Ｍ個のデータ収集装置２−１〜２−Ｍ；Ｍは２以上の正整数）を、ネットワーク３を介して接続し、Ｍ個のデータ収集装置群２がデータ永続化装置４に接続され、さらに、データ永続化装置４にデータ表示装置５が接続された構成である。なお、以下の説明では、プロセス制御装置の数Ｎとデータ収集装置の数Ｍとは、Ｎ＞Ｍ若しくはＮ≫Ｍの関係を持つこととする。
【００１８】
ここで、プロセス制御装置群１は、データ収集装置群２のデータソースであり、該プロセス制御装置内の種々の現在値データ、時系列データまたは履歴データを含むプロセスデータを収集または生成する。また、データ収集装置群２は、プロセス制御装置群１において収集または生成される一次プロセスデータを、所定頻度でネットワーク３を経由して収集し、二次利用のための加工を行う。ここで、所定頻度はプロセスデータの種別に応じて定められるものである。データ収集装置群２で収集された一次プロセスデータ及び加工された二次プロセスデータ（アプリケーションデータ）は、データ永続化装置４に保存される。データ表示装置５では、その二次プロセスデータを利用して、業務アプリケーションやマンマシンインタフェース機能を提供する。
【００１９】
すなわち、データ収集装置を多重化しそれぞれが分担して、ネットワーク３を経由してプロセス制御装置（データソース）１−１〜１−Ｎが保持する一次プロセスデータを収集し、データ表示装置５によって利用可能な二次プロセスデータ（アプリケーションデータ）に加工したうえでデータ永続化装置４に保存する。なお、以下ではこれら一連の収集・加工・保存を「プロセスデータについての処理」と表記する。
【００２０】
また、図１において、データ収集装置２−ｋ（ｋ＝１〜Ｍ）は、制御部１１、実行部１２、記憶部１３及び入出力部１４，１５を備えた構成である。ここで、記憶部１３は、データ収集装置管理テーブル３１及びプロセス制御装置管理テーブル３２を備え、また、制御部１１は、第１動的管理手段２１、第２動的管理手段２２、担当決定手段２３、タスク管理手段２４、実行制御手段２５及びデータ処理履歴管理手段２６を備える。また、実行部１２は、プロセスデータについての処理を実行するものであり、ＭＰＵ（Micro-Processing Unit；マイクロプロセッサ）等のプロセッサで実現され、Ｑ個の処理リソース３５−１〜３５−Ｑ（Ｑは任意の正整数）を備えるものとする。さらに、入出力部１４は主としてネットワーク３を介したプロセス制御装置群１との通信インタフェースを司り、入出力部１５はデータ永続化装置４との通信インタフェースを司る。
【００２１】
次に。制御部１１及び記憶部１３の各構成要素についてその機能を説明する。
まず、第１動的管理手段２１は、当該情報処理システムに対するデータ収集装置２−ｋの参入または離脱、並びに、当該情報処理システムに参入している全てのデータ収集装置の稼働状態を管理する。ここで、データ収集装置２−ｋの参入または離脱は、それぞれデータ収集装置管理テーブル３１における該当データの追加または削除によって行われる。つまり、データ収集装置の稼働状態は、全データ収集装置２−１〜２−Ｍについての死活管理を含む稼動または非稼動の状態であり、データ収集装置管理テーブル３１に登録され、逐次更新することによって管理される。
【００２２】
データ収集装置管理テーブル３１は、図３に例示するように、当該情報処理システムに参入している全データ収集装置２−１〜２−Ｍについて、データ収集装置ＩＤ（第１識別情報）、ネットワーク３におけるアドレス、並びに、該データ収集装置の稼働状態（稼動または非稼動）を示す状態情報を保持する。以下の説明では、第１識別情報をデータ収集装置ＩＤとしてデータ収集装置の参照符号２−１〜２−Ｍをそのまま用いて説明するが、第１識別情報は、データ収集装置ＩＤに限定されることなく、名称や番号等の装置を一意に特定できる呼称であれば良い。
【００２３】
第１動的管理手段２１は、ネットワーク３を介した他のデータ収集装置への周期的問合せにより、データ収集装置管理テーブル３１の登録内容を逐次更新し、全データ収集装置の稼働状態を管理する。例えば、新たにデータ収集装置２−１〜２−Ｍ以外のデータ収集装置が当該情報処理システムに参入するとき、該データ収集装置からの追加要求に従って新規データを追加することになる。また、データ収集装置２−１〜２−Ｍの何れかが当該情報処理システムから離脱するとき、該データ収集装置からの削除要求に従って該当するデータを削除することになる。
【００２４】
また、第２動的管理手段２２は、プロセス制御装置１−ｊ（ｊ＝１〜Ｎ）の当該情報処理システムへの追加または削除を管理する。ここで、プロセス制御装置１−ｊの追加または削除は、それぞれプロセス制御装置管理テーブル３２における該当データの追加または削除によって行われる。
【００２５】
プロセス制御装置管理テーブル３２は、図４に例示するように、当該情報処理システムが持つ全プロセス制御装置１−１〜１−Ｎについて、プロセス制御装置ＩＤ（第２識別情報）、ネットワーク３におけるアドレス、並びに、該プロセス制御装置が持つデータ種別毎の処理履歴情報としてのシーケンス／タイムスタンプ情報を保持する。以下の説明では、第１識別情報と同様に、第２識別情報をプロセス制御装置ＩＤとしてプロセス制御装置の参照符号１−１〜１−Ｎをそのまま用いて説明するが、第２識別情報は、プロセス制御装置ＩＤに限定されることなく、名称や番号等の装置を一意に特定できる呼称であれば良い。
【００２６】
第２動的管理手段２２は、ネットワーク３を介した全プロセス制御装置に対する周期的問合せにより、プロセス制御装置管理テーブル３２の登録内容を逐次更新し、当該情報処理システムが持つ全プロセス制御装置を管理する。
【００２７】
また、担当決定手段２３は、Ｍ個のデータ収集装置２−１〜２−Ｍにそれぞれ割り当てられた第１識別情報（データ収集装置管理テーブル３１のデータ収集装置ＩＤ）、並びに、Ｎ個のプロセス制御装置１−１〜１−Ｎにそれぞれ割り当てられた第２識別情報（プロセス制御装置管理テーブル３２のプロセス制御装置ＩＤ）に基づき、当該データ収集装置２−ｋ（自装置）が担当するプロセス制御装置を自律的に決定する。
【００２８】
ここで、担当を決定するルールは、データ収集装置２−１〜２−Ｍに共通であり、データ収集装置が当該情報処理システムに参入する際に、指定されたデータ処理装置からデータ処理装置の構成情報と共に通知されるものとする。なお、本実施形態では、プロセス制御装置ＩＤ（第２識別情報）順に並べられたプロセス制御装置群１を、データ収集装置ＩＤ（第１識別情報）順に並べられたデータ収集装置群２に順番に割り当てる順序割当アルゴリズムを用いる。
【００２９】
また、タスク管理手段２４は、プロセスデータについての処理をタスクとしてキュー管理する。すなわち、プロセス制御装置（データソース）１−ｊに対する一次データ収集と二次データへの加工・データ永続化装置４への保存を１つのタスクとして管理し、そのタスクをキュー管理する。なお、タスクの管理方法として、本実施形態では先入れ先出し（ＦＩＦＯ）方式を用いるが、これに限定されることなく、所定ルールに従って所定個数ずつ取り出される方式であればどのような方式であっても良い。
【００３０】
また、実行制御手段２５は、実行部１２が持つスレッドの内の所定数の実行可能なスレッドをプール管理して、タスク管理手段２４から順次取り出されるタスクを実行可能なスレッドに割り当てる。ここで、実行部１２における処理単位はスレッドに限定されることなく、プロセスであっても良い。
【００３１】
データ処理履歴管理手段２６は、プロセスデータの内の時系列データまたは履歴データについて、データ種別毎に、該データの処理（データ収集・加工・保存の一連の処理）が時系列的にどこまで実施済みかを示す処理履歴情報を、プロセス制御装置管理テーブル３２にシーケンス／タイムスタンプ情報として保持する。そして、タスク実行の際には、該処理履歴情報に基づき時間的に無矛盾の継続処理を行わせ、タスク終了時に該処理履歴情報を更新する。
【００３２】
次に、以上のような構成要素を備えた情報処理システムにおける処理方法について、図５〜図１２を参照して説明する。
【００３３】
まず、図５に示すフローチャートを参照して、データ収集装置２−ｋの当該情報処理システムへの参入手順について説明する。ここで、参入するデータ収集装置２−ｋは、当該情報処理システムに現時点で参入しているデータ収集装置群２の内、少なくとも１つのデータ収集装置のネットワーク３におけるアドレスを入手しているものとする。該アドレスの入手方法は、例えば、当該データ収集装置２−ｋのオペレータが第１動的管理手段２１に対して指定する方法、第１動的管理手段２１がデータ永続化装置４に対し問い合わせを行って取得する方法、データ表示装置５を介してシステム管理者により指定通知される方法等々、種々の方法が考えられる。
【００３４】
データ収集装置２−ｋの第１動的管理手段２１は、前記のような方法によって入手したアドレスを持つデータ収集装置を、構成情報の取得先として特定し当該情報処理システムへの参入を開始する（ステップＳ１０１）。まず、指定された取得先のデータ収集装置に対して、該データ収集装置が持つ当該情報システムの構成情報を要求する（ステップＳ１０２）。ここにいう構成情報とは、データ収集装置管理テーブル３１の内容である。
【００３５】
他方、構成情報の取得先に指定されたデータ収集装置側では、データ収集装置２−ｋからの要求を受けて、自らが持つ当該情報システムのデータ収集装置に関する構成情報、即ちデータ収集装置管理テーブル３１の内容を応答する（ステップＳ１１１）。
【００３６】
また、データ収集装置２−ｋ側では、構成情報を要求した後、所定期間内に取得先に指定されたデータ収集装置側からの応答を受信したか否かの判断を行う（ステップＳ１０３）。ここで、所定期間内に応答が無い場合には、参入に失敗したとしてオペレータに対して参入失敗を通知する（ステップＳ１０７）。
【００３７】
また、所定期間内に取得先に指定されたデータ収集装置２−ｋ側からの応答があったときには、受信した構成情報に自らのデータ収集装置ＩＤ（第１識別情報）とネットワーク３におけるアドレスのデータを加えて、データ収集装置２−ｋのデータ収集装置管理テーブル３１に保持する（ステップＳ１０４）。
【００３８】
そして、ネットワーク３を介して、自らのデータ収集装置ＩＤ（第１識別情報）、アドレス及び稼働状態（稼働中である旨）のデータを、当該情報システムに参入している他の全てのデータ収集装置に対して送信し、各データ収集装置が持つデータ収集装置管理テーブル３１への追加要求を行う（ステップＳ１０５）。
【００３９】
他方、当該情報システムに参入している他の全てのデータ収集装置側では、データ収集装置２−ｋからの追加要求を受けて、自らが持つデータ収集装置管理テーブル３１へデータ収集装置２−ｋに関する稼働状態情報の追加を行い、自らの構成情報に装置情報を追加した旨を応答する（ステップＳ１１２及びステップＳ１２１）。
【００４０】
また、データ収集装置２−ｋ側では、追加要求を行った後、所定期間内に他の全てのデータ収集装置側からの応答を受信したか否かの判断を行う（ステップＳ１０６）。ここで、所定期間内に他のデータ収集装置側から応答がある場合にはそのまま終了し、また応答が無い場合には、構成情報の同期に失敗したとしてオペレータに対して動的なデータ収集装置追加の失敗を通知する（ステップＳ１０７）。
【００４１】
次に、図６に示すフローチャートを参照して、データ収集装置２−ｋの当該情報処理システムからの離脱手順について説明する。データ収集装置２−ｋの第１動的管理手段２１は、ネットワーク３を介して、自らのデータ収集装置ＩＤ（第１識別情報）を、当該情報システムに参入している他の全てのデータ収集装置に対して送信し、各データ収集装置が持つデータ収集装置管理テーブル３１からデータ収集装置２−ｋに関する稼働状態情報を削除するよう要求する（ステップＳ２０１）。
【００４２】
他方、当該情報システムに参入している他の全てのデータ収集装置側では、データ収集装置２−ｋからの削除要求を受けて、自らが持つデータ収集装置管理テーブル３１からデータ収集装置２−ｋに関する稼働状態情報を削除し、自らの構成情報から装置情報を削除した旨を応答する（ステップＳ２１１）。
【００４３】
また、データ収集装置２−ｋ側では、削除要求を行った後、所定期間内に他の全てのデータ収集装置側からの応答を受信したか否かの判断を行う（ステップＳ２０２）。ここで、所定期間内に他のデータ収集装置側から応答がある場合にはそのまま終了し、また応答が無い場合には、構成情報の同期に失敗したとしてオペレータに対して動的なデータ収集装置削除の失敗を通知する（ステップＳ２０３）。
【００４４】
次に、図７に示すフローチャート及び図８を参照して、データ収集装置２−ｋが担当するプロセス制御装置を決定する手順について説明する。ここで、図８はデータ収集装置の担当決定を例示して説明する説明図であり、図中、円はプロセス制御装置を、楕円はデータ収集装置をそれぞれ示し、円及び楕円中の数字はそれぞれのＩＤ（識別情報）を示す。
【００４５】
まず、データ収集装置２−ｋの担当決定手段２３は、保持するデータ収集装置の構成情報（即ち、データ収集装置管理テーブル３１）から、自らを含めて稼働中のデータ収集装置を全て抽出し、データ収集装置ＩＤ（第１識別情報）の昇順にソートしてデータ収集装置群２のリストを構成する（ステップＳ３０１）。図８の例では、データ収集装置２−３及び２−５が非稼働であり、データ収集装置２−１，２−２，２−４が順に並べられることとなる。
【００４６】
次に、プロセス制御装置の構成情報（即ち、プロセス制御装置管理テーブル３２）から、当該情報処理システムに参入している全プロセス制御装置を全て抽出し、プロセス制御装置ＩＤ（第２識別情報）の昇順にソートしてプロセス制御装置群１のリストを構成する（ステップＳ３０２）。図８の例では、プロセス制御装置１−１〜１−１０，…が順に並べられることとなる。
【００４７】
そして、プロセス制御装置群１のリスト要素をデータ収集装置群２のリスト要素に、順次割り当てて行く（ステップＳ３０３）。図８の例では、データ収集装置２−１にプロセス制御装置１−１，１−４，１−７，１−１０，…が、データ収集装置２−２にプロセス制御装置１−２，１−５，１−８，…が、データ収集装置２−４にプロセス制御装置１−３，１−６，１−９，…が、それぞれ割り当てられることとなる。
【００４８】
次に、図９及び図１０に示すフローチャート並びに図１１を参照して、タスクのスレッドへの割当、並びに、タスクの実行及びスレッドの割当解除のそれぞれの手順について説明する。ここで、図１１は実行制御手段２５によるタスクのスレッドへの割当を例示して説明する説明図である。タスク管理手段２４はタスクキュー２４ａを、実行制御手段２５はスレッドプール２５ａを、実行部１２は処理リソース３５−１〜３５−４（Ｑ＝４）を、それぞれ備えている。
【００４９】
図９に示すフローチャートにおいて、まず、データ収集装置２−ｋのタスク管理手段２４は、担当決定手段２３によって割り当てられたそれぞれのプロセス制御装置に対する処理（プロセスデータについての処理）をタスクとしてタスクキュー２４ａに追加する（ステップＳ４０１）。つまり、それぞれのタスクは自らに割り当てられたプロセス制御装置（データソース）に対する一連のデータ読込み・加工・保存処理である。また、タスクキュー２４ａは先入れ先出し方式で、タスクキュー２４ａに入れられた順に取り出される。
【００５０】
そして、タスクキュー２４ａ内にタスクが有るか否かが判断され（ステップＳ４０２）、タスクキュー２４ａ内にタスクが有る場合にはステップＳ４０３に進み、無い場合にはステップＳ４０６に進む。
【００５１】
一方、データ収集装置２−ｋの実行制御手段２５は、実行部１２が持つスレッドの内の所定数の実行可能なスレッドを、スレッドプール２５ａによってプール管理している。したがって、ステップＳ４０２でタスクキュー２４ａ内にタスクが有る場合には、スレッドプール２５ａに割当可能なスレッドが有るか否かを判断し（ステップＳ４０３）、スレッドプール２５ａに割当可能なスレッドが有る場合にはステップＳ４０４に進み、無い場合にはステップＳ４０２に戻る。
【００５２】
タスクキュー２４ａ内にタスクが有り、且つ、スレッドプール２５ａに割当可能なスレッドが有る場合（ステップＳ４０３の判断：有）には、タスクがタスクキュー２４ａから順に取り出され、利用可能なスレッドが順に割り当てられる（ステップＳ４０４）。このとき、割り当てられたタスクはタスクキュー２４ａから削除され、割り当てたスレッドは割当済み（他のタスクへの割当不可能）であることをマークされ、スレッドプール２５ａから取り出される（ステップＳ４０５）。例えば、図１１の例では、タスクキュー２４ａからタスクＴａｓ４が取り出され、スレッドプール２５ａから利用可能なスレッドＴｈｒ４が取り出され、タスクＴａｓ４がスレッドＴｈｒ４に割り当てられて、例えば、実行部１２の処理リソース３５−１上で実行されることとなる。
【００５３】
また、スレッドプール２５ａに割当可能なスレッドが無くなった場合（ステップＳ４０３の判断：無）、ステップＳ４０２及びステップＳ４０３が繰り返され、実行制御手段２５は、１つ以上のスレッドが割当可能であるとしてスレッドプール２５ａに戻されるのを待つこととなる。
【００５４】
また、全てのタスクがスレッドに割り当てられてタスクキュー２４ａが空になった場合（ステップＳ４０２の判断：無）は、全てのスレッドが割当可能としてスレッドプール２５ａに戻されるのを待って（ステップＳ４０６）、終了する。
【００５５】
次に、図１０に示すフローチャートを参照して、割り当てられたスレッドがタスクを実行して、タスク再割当可能としてスレッドプール２５ａに戻されるまでの処理について説明する。タスクが割り当てられると、そのスレッドはそのタスクに対応するプロセス制御装置（データソース）に対する一連のデータ収集・加工・保存を行なうことによりタスクを実行する（ステップＳ５０１）。
【００５６】
タスク実行に成功した場合、或いは、タスク実行に失敗（データ収集先のプロセス制御装置（データソース）との通信の失敗等）した場合の何れであっても、その実行終了時には、そのスレッドに割当解除（他のタスク割当可能）であることがマークされ、スレッドプール２５ａに戻される（ステップＳ５０２）。例えば、図１１の例では、実行部１２の処理リソース３５−４上でタスクＴａｓ１の実行が終了した時には、タスクＴａｓ１のスレッドＴｈｒ１への割当が解除され、スレッドＴｈｒ１は利用可能なスレッドとしてスレッドプール２５ａ内に戻される。
【００５７】
以上のようにして、タスクのスレッドへの割当、並びに、タスクの実行及びスレッドの割当解除が行われ、タスクキュー２４ａが空になった場合、全てのスレッドが割当可能としてスレッドプール２５ａに戻されて終了する。しかしながら、一定時間待った後に、担当決定手段２３によって当該データ収集装置２−ｋが担当するプロセス制御装置を決定する処理を再度行なうのが望ましい。
【００５８】
例えば、データ収集装置２−ｋに割り当てられるプロセス制御装置（データソース）数がスレッドプール２５ａ内のスレッド数と比較して相対的に少ない場合、このように一定時間の待ちを設けることにより、対象プロセス制御装置（データソース）に対してデータ収集要求が連続的に発生し、必要以上の負荷が掛かることを回避することができる。この一定時間は、対象プロセス制御装置（データソース）の性能・対象となるプロセスデータに必要とされるリアルタイム性によって調整する（場合によってはゼロとする）ことが可能である。
【００５９】
次に、図１２に示すフローチャートを参照して、処理履歴情報に基づくタスク実行の制御手順について説明する。なお、以下の説明では、時系列データまたは履歴データをトレンド／ヒストリカルデータと称することとする。図４において、トレンド／ヒストリカルデータ種別毎に管理される最終シーケンス／タイムスタンプは、プロセス制御装置（データソース）起動時からのシーケンス番号（連番）、タイムスタンプ（時刻）等である。これらのデータは、収集されるトレンド／ヒストリカルデータが持つ処理履歴情報（データ生成の順番を一意に特定する情報）に対応し、該データの処理（データ収集・加工・保存の一連の処理）が時系列的にどこまで実施済みかを示すものとする。
【００６０】
まず、図１０のステップＳ５０１において、割り当てられたスレッドがタスクの処理を開始すると、データ収集装置２−ｋのデータ処理履歴管理手段２６は、プロセス制御装置管理テーブル３２を参照して、次に取得すべきトレンド／ヒストリカルデータ種別の有無を判断する（ステップＳ６０１）。ここで、次に取得すべきトレンド／ヒストリカルデータ種別が無い場合には終了する。また、次に取得すべきトレンド／ヒストリカルデータ種別が有る場合には、データ処理履歴管理手段２６は、トレンド／ヒストリカルデータ種別毎に最終シーケンス／タイムスタンプを取得する（ステップＳ６０２）。
【００６１】
次に、データ処理履歴管理手段２６は、取得した最終シーケンス／タイムスタンプを指定し、対象プロセス制御装置（データソース）に対してそれ以降のトレンド／ヒストリカルデータを要求する（ステップＳ６０３）。他方、このデータ要求を受信したプロセス制御装置（データソース）は、指定された最終シーケンス／タイムスタンプより時系列的に新しいデータを返す（ステップＳ６１１）。
【００６２】
なお、図１２中には明記しないが、当該情報処理システム稼動後の最初のタスク実行時等において、そのデータ種別の最終シーケンス／タイムスタンプがプロセス制御装置管理テーブル３２に存在しない場合が存在する。この場合、プロセス制御装置が全てのデータを返すように、データ収集装置２−ｋは、シーケンス／タイムスタンプの指定をシーケンス０／システム起点の時刻等に設定することとなる。
【００６３】
また、データ収集装置２−ｋ側では、データ要求を行った後、データ処理履歴管理手段２６は、所定期間内にプロセス制御装置側からの応答を受信したか否かの判断を行う（ステップＳ６０４）。ここで、所定期間内に他のデータ収集装置側から応答が無い場合には、ステップＳ６０１に戻って、次に取得すべきトレンド／ヒストリカルデータ種別の有無を判断する。
【００６４】
また、ステップＳ６１１に対する応答を受信した場合、データ収集装置２−ｋは、受信した一次プロセスデータを二次プロセスデータに加工した上で、データ永続化装置４に保存する（ステップＳ６０５）。
【００６５】
以上のタスク処理終了後、データ処理履歴管理手段２６は、プロセス制御装置管理テーブル３２の対象となるトレンド／ヒストリカルデータの最終シーケンス／タイムスタンプを、受信した一次プロセスデータのうち最も新しいシーケンス／タイムスタンプに更新する（ステップＳ６０５）。これにより、次回のタスク処理の際には、データ処理履歴管理手段２６は、その時系列的に続きのデータをプロセス制御装置に要求することができ、時間的に無矛盾の継続処理を行うことができる。
【００６６】
以上説明したように、本実施形態の情報処理システムでは、現在値データ、時系列データまたは履歴データを含むプロセスデータを保持するプロセス制御装置群１（Ｎ個のプロセス制御装置１−１〜１−Ｎ）と、プロセス制御装置群１からネットワークを経由してプロセスデータを収集して処理を施すデータ収集装置群２（Ｍ個のデータ収集装置２−１〜２−Ｍ）と、を備える。データ収集装置２−ｋ（ｋ＝１〜Ｍ）の第１動的管理手段２１は、当該情報処理システムに対する参入または離脱、並びに、当該情報処理システムに参入している全データ収集装置の稼働状態を管理する（第１動的管理ステップ）。また第２動的管理手段２２は、プロセス制御装置群１の当該情報処理システムへの追加または削除を管理する（第２動的管理ステップ）。また担当決定手段２３は、データ収集装置群２にそれぞれ割り当てられた第１識別情報、並びに、プロセス制御装置群１にそれぞれ割り当てられた第２識別情報に基づき、自装置が担当するプロセス制御装置を決定する（担当決定ステップ）。
【００６７】
具体的に、データ収集装置２−ｋは、データ収集装置２−ｋ別に、該データ収集装置の第１識別情報及びアドレスと、該データ収集装置の稼働状態を示す状態情報と、を保持するデータ収集装置管理テーブル３１を備える。第１動的管理手段２１は、他のデータ収集装置との通信を介してデータ収集装置管理テーブル３１を更新し、全データ収集装置の稼働状態を管理する。また、データ収集装置２−ｋは、プロセス制御装置別に、該プロセス制御装置の第２識別情報及びアドレスと、該プロセス制御装置が持つデータ種別毎の前記処理履歴情報と、を保持するプロセス制御装置管理テーブル３２を備え、第２動的管理手段により、全プロセス制御装置との通信を介して、プロセス制御装置管理テーブル３２を更新し、全プロセス制御装置の追加または削除を管理する。
【００６８】
このように、Ｎ個のプロセス制御装置１−１〜１−Ｎのプロセスデータについての処理を、Ｍ個のデータ収集装置２−１〜２−Ｍに割り当てるので、容易にデータ収集装置間の処理負荷を分散させることができる。
また、情報処理システムに対する参入または離脱を、データ収集装置２−ｋ側から自律的に行うことができる。処理性能（どの程度の頻度でプロセス制御装置からデータ収集・加工・保存を行なえるか）は、プロセス制御装置数Ｎとデータ収集装置数Ｍとの比（バランス）に置き換えられる。したがって、データ収集装置数Ｍを増加させることにより、動的かつ容易に処理性能向上を図り、データ収集の頻度を短くすることができる。すなわち、情報処理システムにおけるプロセス制御装置が増加したとき、データ収集装置数Ｍを動的に増加させることによってプロセス制御装置数Ｎに応じた動的な性能調整を行なうことができる。
【００６９】
さらに、自装置が担当するプロセス制御装置の決定について、特定の装置が集中的に管理するのではなく、各データ収集装置２−ｋが自律的に担当すべきプロセス制御装置を決定するので、ボトルネックを作らず高い信頼性を確保することができる。
【００７０】
また、本実施形態の情報処理システムでは、タスク管理手段２４によりプロセスデータについての処理をタスクとして管理する（タスク管理ステップ）。実行制御手段２５は、データ収集装置２−ｋにおいてプロセスデータについての処理を実行する実行部１２が持つスレッドまたはプロセスの内の所定数の実行可能なスレッドまたはプロセスをプール管理して、タスク管理側から順次取り出される一のタスクを一のスレッドまたはプロセスに割り当てる（実行制御ステップ）。
【００７１】
このように、プール管理されるスレッドまたはプロセスの数は設定変更により増減させることが可能であり、容易にデータ収集装置内或いはデータ収集装置間の処理負荷を平準化することができる。例えば、その数を増加させると、データ収集装置２−ｋにおけるデータ収集性能を向上させる一方で、使用するリソース（ＣＰＵ・メモリ等）が増加し、また減少させると、そのデータ収集装置２−ｋにおけるデータ収集性能は低下するが、使用するリソース（ＣＰＵ・メモリ等）が減少し、その分のリソースをデータ収集以外の処理に割当てることが可能となる。
【００７２】
以上の結果として、本実施形態の情報処理システムは、プロセスデータの収集、加工、保存を行うデータ収集装置の負荷を分散すると共に、該負荷の平準化を図ることができ、プロセスデータの収集、加工、保存について、処理性能の向上を動的且つ容易に行い得る情報処理システム及びその処理方法を実現することができる。
【００７３】
また、本実施形態の情報処理システムは、プロセス制御装置管理テーブル３２において、プロセスデータの内の時系列データまたは履歴データについて、データ種別毎に、該データの処理が時系列的にどこまで実施済みかを示す処理履歴情報（最終シーケンス／タイムスタンプ）を保持し、データ処理履歴管理手段２６により、タスク実行の際に処理履歴情報に基づき時間的に無矛盾の継続処理を行わせ、タスク終了時に処理履歴情報を更新する（データ処理履歴管理ステップ）。
【００７４】
このように、タスク処理の際に、処理履歴情報に基づき時系列的に続きのデータをプロセス制御装置に要求することができ、時間的に無矛盾の継続処理を行うことができる。その結果として、プロセスデータ、並びに該プロセスデータについての処理の重複を回避することができる。
【００７５】
以上、本発明の実施形態について図面を参照して詳述したが、本発明はこの実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲の設計変更等があっても本発明に含まれる。
【符号の説明】
【００７６】
１  プロセス制御装置群
１−１〜１−Ｎ  プロセス制御装置
２  データ収集装置群
２−１〜２−Ｍ，２−ｋ  データ収集装置
３  ネットワーク
４  データ永続化装置
５  データ表示装置
１１  制御部
１２  実行部
１３  記憶部
１４，１５  入出力部
２１  第１動的管理手段
２２  第２動的管理手段
２３  担当決定手段
２４  タスク管理手段
２５  実行制御手段
２６  データ処理履歴管理手段
３１  データ収集装置管理テーブル
３２  プロセス制御装置管理テーブル
３５−１〜３５−Ｑ  処理リソース
【図１】
0005775481.tif 000002
【図２】
0005775481.tif 000003
【図３】
0005775481.tif 000004
【図４】
0005775481.tif 000005
【図５】
0005775481.tif 000006
【図６】
0005775481.tif 000007
【図７】
0005775481.tif 000008
【図８】
0005775481.tif 000009
【図９】
0005775481.tif 000010
【図１０】
0005775481.tif 000011
【図１１】
0005775481.tif 000012
【図１２】
0005775481.tif 000013
【図１３】
0005775481.tif 000014
【図１４】
0005775481.tif 000015
【図１５】
0005775481.tif 000016