(57)【要約】【課題】本発明は多階層ポーリング同期方法及びシステムに関し、上位階層のポーリング周期を下位階層のポーリング周期に同期させて、多階層のポーリング周期を同期させることができる多階層ポーリング同期方法及びシステムを提供することを目的としている。【解決手段】複数の上位装置１０と、下位装置２０とが接続され、周期的なポーリング処理によりデータの更新を検出・処理するシステムにおいて、前記上位装置１０及び下位装置２０のそれぞれに設けられたポーリングを行なうためのポーリング処理部１１，２１と、前記上位装置１０からの情報取得要求を保持する待ちキュー２２と、を設け、前記上位装置１０は情報の取得要求を前記待ちキュー２２に入れておき、前記下位装置２０のポーリング処理部２１は、該下位装置２０のポーリングが終了すると、前記上位装置１０の待ちキューを解放するように構成される。【選択図】      図２
2005038036.tif 000002
【特許請求の範囲】
【請求項１】
複数の上位装置と、下位装置とが接続され、周期的なポーリング処理によりデータの更新を検出・処理するシステムにおいて、
前記上位装置及び下位装置のそれぞれにポーリング処理を行なうポーリング処理部を設け（ステップ１）、
前記上位装置のポーリング処理部は情報の取得処理を待ちキューに入れておき（ステップ２）、
前記下位装置のポーリング処理部は該下位装置のポーリング処理が終了すると、前記上位装置の待ちキューを解放する（ステップ３）、
ことを特徴とする多階層ポーリング同期方法。
【請求項２】
前記複数の上位装置からの情報取得要求を前記待ちキューにつないで保持し、前記下位装置のポーリング処理部はポーリング処理が終了したら、上位装置の待ちキューの全てを解放することを特徴とする請求項１記載の多階層ポーリング同期方法。
【請求項３】
前記上位装置の待ちキューを解放する場合に、前記下位装置のポーリング処理部は待ちキューの解放を順次間隔をおいて実施することを特徴とする請求項２記載の多階層ポーリング同期方法。
【請求項４】
前記下位装置のポーリングによりデータの更新が検出されたなかった場合には、前記下位装置のポーリング処理部は前記上位装置のポーリングを抑止することを特徴とする請求項１乃至３の何れかに記載の多階層ポーリング同期方法。
【請求項５】
複数の上位装置と、下位装置とが接続され、周期的なポーリング処理によりデータの更新を検出・処理するシステムにおいて、
前記上位装置及び下位装置のそれぞれに設けられたポーリングを行なうためのポーリング処理部と、
前記上位装置からの情報取得要求を保持する待ちキューと、
を設け、
前記上位装置は情報の取得要求を前記待ちキューに入れておき、前記下位装置のポーリング処理部は、該下位装置のポーリングが終了すると、前記上位装置の待ちキューを解放するように構成されたことを特徴とする多階層ポーリング同期システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は多階層ポーリング同期方法及びシステムに関し、更に詳しくはＷＥＢやデータベース（ＤＢ）システム等のクライアントアプリケーションが、周期的にデータの更新をチェックし、その結果を処理するポーリング型のサブシステムを持つアプリケーションにおいて、ポーリングによるデータ処理が多階層となる場合の多階層ポーリング同期方法及びシステムに関する。ここで、ポーリングとは、装置が相手方のデータを読みにいくことをいう。
【０００２】
【従来の技術】
近年、ネットワーク技術の進展に伴い、様々な情報技術がネットワークにより連携し処理されているようになってきた。この種の技術としては、被管理装置である主信号パッケージは、内部のパケットデータ転記部によって自被管理装置の実際の管理対象データが定期的に転記されるパッケージ内メモリと、エージェントから指定された範囲のパッケージ内メモリの領域をアクセスしてその結果をエージェントに通知する通信管理部とを備え、エージェントのポーリング処理部は、通信管理部を通じて各主信号系パッケージ毎に、そのパッケージ内メモリのポーリング対象とする範囲を通知してポーリング対象データを一括取得し、エージェント内メモリ１０２に転記する技術がある（例えば特許文献１参照）。
【０００３】
また、多階層の通信路を形成してデータの中継を行なうシステムにおいて、一定周期Ｓの交信タイミングＴを設けて、中継装置となる中間階層の通信装置は、中継データ記憶用メモリを備え、上位のマスタとなる集中制御装置とは順次割り当てられた交信タイミング毎に交信を行なって中継データ記憶用メモリにデータを記憶し、次の一定周期では、メモリに記憶したデータを下位のスレーブとなる他の通信装置に複数の交信タイミングに分けて交信して転送するようにした技術がある（例えば特許文献２参照）。
【０００４】
前述したように、複数のサブシステムを組み合わせて実現されるアプリケーションにおいて、各サブシステムの処理の結果、上位階層に位置するサブシステムへその結果を伝達し、更なる加工やアプリケーション操作者への表示などを実現する場合、ネットワーク構成やセキュリティ、不特定の利用者に対するサービス等の要件から、更新や変更の発生時に下位階層からのイベントのプッシュを行なう通信機能を使用できず、クライアントとなる上位階層のサブシステムからサーバとなる下位階層のサブシステムへ更新や変更を周期的にポーリングすることにより、その機能を実現する場合が多い（ＷＥＢ＋ＤＢ等）。
【０００５】
【特許文献１】
特開平９−２３８１３８号公報（第７頁、第８頁、図１）
【特許文献２】
特開２００２−３４２２６４号公報（第３頁、第４頁、図１）
【０００６】
【発明が解決しようとする課題】
この従来の方法において、更新や変更の監視や処理に即時性が求められる場合は、ポーリングの周期を短かくすることになるが、更新や変更の発生タイミングが不定の場合、取得するイベントが無いポーリングを頻繁に実施する結果となり、システム資源の浪費や負荷上昇を招いていた。また、このような上位階層のサブシステムと下位階層のサブシステムの非同期なポーリングにより、更新や変更のイベントが最終的に処理されるまでに、多くの無駄な時間を費やす結果となる。
【０００７】
本発明はこのような課題に鑑みてなされたものであって、上位階層のポーリング周期を下位階層のポーリング周期に同期させて、個々のポーリングの時間差による遅延を無くすことができ、また下位階層のポーリングにおいてデータの更新を検出できなかった場合、上位階層のポーリングを抑止することができる、多階層のポーリング周期を同期させることができる多階層ポーリング同期方法及びシステムを提供することを目的としている。
【０００８】
【課題を解決するための手段】
（１）請求項１記載の発明は、以下の通りである。図１は本発明方法の原理を示すフローチャートである。本発明は、複数の上位装置と、下位装置とが接続され、周期的なポーリング処理によりデータの更新を検出・処理するシステムにおいて、前記上位装置及び下位装置のそれぞれにポーリング処理を行なうポーリング処理部を設け（ステップ１）、前記上位装置のポーリング処理部は情報の取得処理を待ちキューに入れておき（ステップ２）、前記下位装置のポーリング処理部は該下位装置のポーリング処理が終了すると、前記上位装置の待ちキューを解放する（ステップ３）、ことを特徴とする。
【０００９】
このように構成すれば、下位装置が該下位装置のポーリング処理を終了すると、待ちキューに貯まっていた上位装置の待ちキューを解放するようにしているので、上位階層のポーリング周期を下位階層のポーリング周期に同期させることができ、個々のポーリングの時間差による遅延を無くすことができる。
（２）請求項２記載の発明は、前記複数の上位装置からの情報取得要求を前記待ちキューにつないで保持し、前記下位装置のポーリング処理部はポーリング処理が終了したら、上位装置の待ちキューの全てを解放することを特徴とする。
【００１０】
このように構成すれば、下位装置のポーリング処理が終了したら上位装置の待ちキューの全てを解放することで、複数の上位装置のポーリングと下位階層のポーリングの同期をとることが可能となる。
（３）請求項３記載の発明は、前記上位装置の待ちキューを解放する場合に、前記下位装置のポーリング処理部は待ちキューの解放を順次間隔をおいて実施することを特徴とする。
【００１１】
このように構成すれば、上位装置の待ちキューの解放を順次間隔をおいて実施することで、下位装置と上位装置とのポーリング同期を順次間隔をおいてとることが可能となり、負荷分散を図ることができる。
（４）請求項４記載の発明は、前記下位装置のポーリングによりデータの更新が検出されたなかった場合には、前記下位装置のポーリング処理部は前記上位装置からのポーリングを抑止することを特徴とする。
【００１２】
このように構成すれば、前記下位装置のデータの更新が検出されなかった（即ち取得データがない）場合には、待ちキューを解放しないので、無駄なポーリングが行なわれることを防止することができる。
（５）請求項５記載の発明は、以下の通りである。図２は本発明の原理ブロック図である。図に示すシステムは、複数の上位装置１０と、下位装置２０とが接続され、周期的なポーリング処理によりデータの更新を検出・処理するシステムを構成している。図において、１１は上位装置１０内に設けられたポーリングを行なうためのポーリング処理部、２１は下位装置２０内に設けられたポーリングを行なうためのポーリング処理部である。
【００１３】
２２は前記上位装置１０からの情報取得要求を保持する待ちキュー、２３は更新データである。前記待ちキュー２２は上位装置１０側又は下位装置２０側の何れかに設けることができる。
【００１４】
このように構成されたシステムにおいて、前記上位装置１０は情報の取得要求を前記待ちキュー２２に入れておき、前記下位装置２０のポーリング処理部２１は、該下位装置２０のポーリングが終了すると、前記上位装置１０の待ちキュー２２を解放するようにしているので、下位装置が該下位装置のポーリング処理を終了すると、待ちキューに貯まっていた上位装置の待ちキューを解放するようにしているので、上位階層のポーリング周期を下位階層のポーリング周期に同期させるので、個々のポーリングの時間差による遅延を無くすことができる。なお、下位装置はデータベース処理を行なう機能を有するプログラムであってよく、上位装置はデータベースにアクセスするアプリケーションプログラムであってよい。
【００１５】
図３は本発明の動作原理図である。（ａ）は下位装置のポーリング、（ｂ）は上位装置のポーリングである。下位装置２０がポーリングを行ない、その処理が終了すると、その終了に同期して上位装置２０がポーリングを行なう。このように、本発明によれば、上位装置の情報取得要求を待ちキュー２２に入れておき、下位装置２０のポーリングの終了に同期して待ちキュー２２を解放するので、常に下位装置２０に同期して上位装置１０を動作させることができる。
【００１６】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態例を詳細に説明する。
【００１７】
図４は本発明の第１の動作例を示す図である。図２と同一のものは、同一の符号を付して示す。図において、（Ａ−１）は上位装置のポーリング処理を、（Ａ−２）は下位装置のポーリング処理をそれぞれ示している。つまり、ここでは２階層のシステムを示している。１０は上位装置であり、＃１と＃２から構成されている。＃１の上位装置をサブシステム１、＃２の上位装置をサブシステム２とする。２０は下位装置である。
【００１８】
図に示す上位装置１０側の動作フローと、下位装置２０側の動作フローは、それぞれポーリング処理部１１，２１が行なうものである。図中、破線はデータと制御の流れを示している。このように構成されたシステムの動作を説明すれば、以下の通りである。
【００１９】
上位装置（上位階層）のポーリング処理部１１の読出処理部では、前処理の後、そのデータ取得の一連の処理において、下位装置（下位階層）のポーリング完了タイミングを認識するため、待ちキュー２２にエントリを行なう（Ｓ１）。下位階層のポーリング（Ａ−２）では、データ取得周期を判定する（Ｓ１１）。ここで、データ取得判定とは、データ取得が行なえる周期のことをいう。また、下位装置のポーリングとは、更にその下の階層に対するポーリングをいう。そして、データ取得が行えない周期の場合、ウェイト処理を行ない（Ｓ１２）、ステップＳ１１に戻る。データ取得が行なえる周期になった場合、データ取得処理を行なう（Ｓ１３）。そして、取得データの有無を判定する（Ｓ１４）。
【００２０】
取得データがない場合、ステップＳ１６にスキップする。取得データがある場合、データ加工・保存処理を行なって更新データを上位階層側に与える（Ｓ１５）。そして、待ちキュー２２の解放処理を行なう（Ｓ１６）。待ちキューの解放処理通知を受けた上位階層側では、待ちキュー応答待ち処理（Ｓ２）から上位階層のポーリング処理が再開され、更新データ２３の読出処理を行なう（Ｓ３）。更新データの読み出し処理を行った上位階層側は、後処理を行なう。
【００２１】
以上、上位装置のサブシステム１と下位装置２０との間の動作について説明したが、上位装置のサブシステム２と下位装置２０との間についても全く同じ動作であるので、その説明は省略する。
【００２２】
このように、本発明によれば、下位装置が該下位装置のポーリング処理を終了すると、待ちキューに貯まっていた上位装置の待ちキューを解放するようにしているので、上位階層のポーリング周期を下位階層のポーリング周期に同期させることができ、個々のポーリングの時間差による遅延を無くすことができる。
【００２３】
上述の実施の形態例では、上位装置１０と下位装置２０とがポーリングの同期をとりながら動作する場合について説明した。ここで、複数の上位階層のポーリングをそれぞれ待ちキュー２２にエントリを行ない（Ｓ１）、下位階層のポーリング（Ａ−２）では、ポーリングによるデータ取得処理の完了時に、待ちキュー２２の解放処理（Ｓ１６）を一括実施する。
【００２４】
これにより、複数の上位装置のポーリング処理は、それぞれ待ちキューＳ２，Ｓ２’から再開され、複数の上位階層のポーリングと下位階層のポーリングの同期をとることができる。
【００２５】
図５は本発明の第２の動作例を示す図である。図４と同一のものは、同一の符号を付して示す。（Ｂ−１）は上位階層のポーリング処理、（Ｂ−２）は下位階層のポーリング処理である。２２は上位装置１０からの情報取得処理を保持する待ちキュー、２３は下位装置２０からの更新データである。以下、第２の動作例について説明する。
【００２６】
上位装置（上位階層）のポーリング処理部１１の読出処理部では、前処理の後、そのデータ取得の一連の処理において、下位装置（下位階層）のポーリング完了タイミングを認識するため、待ちキュー２２にエントリを行なう（Ｓ１）。下位階層のポーリング（Ｂ−２）では、データ取得周期を判定する（Ｓ１１）。そして、データ取得が行なえない周期の場合、ウェイト処理を行ない（Ｓ１２）、ステップＳ１１に戻る。データ取得が行なえる周期になった場合、データ取得処理を行なう（Ｓ１３）。そして、取得データの有無を判定する（Ｓ１４）。
【００２７】
取得データがない場合、ステップＳ１１に戻る。取得データがある場合、データ加工・保存処理を行なって更新データ２３を上位階層側に与える（Ｓ１５）。そして、待ちキュー長を判定する（Ｓ１６）。待ちキュー長が０の場合には、待ちキューがないことになるので、ステップＳ１１に戻る。
【００２８】
待ちキュー長が１以上の場合には、待ちキュー２２に対して待ちキュー１件の解放処理を行なう（Ｓ１７）。この解放処理通知を受けた上位階層側では、待ちキュー応答待ち処理（Ｓ２）から上位階層のポーリング処理が再開され、更新データ２３の読出処理を行なう（Ｓ３）。更新データの読み出し処理を行った上位階層側は、後処理を行なう。
【００２９】
下位階層側では、解放処理通知を行った後、ウェイト処理を行ない（Ｓ１８）、ステップＳ１６に戻る。そして、待ちキューが残っているかどうか判断する（Ｓ１６）。残っている場合には、再度次の待ちキューについて解放処理通知を行なう。このような処理を待ちキューがなくなるまで続ける。
【００３０】
このように、この実施の形態例によれば、上位装置の待ちキューの解放を順次間隔をおいて実施することで、下位装置と上位装置とのポーリング同期を順次間隔をおいてとることが可能となり、負荷分散を図ることができる。
【００３１】
図６は本発明の動作説明図である。上位装置のｎ個のキューが順次処理される場合を示している。（ａ）は下位装置のポーリング処理を、（ｂ）以下は待ちキューの解放処理の様子を示している。待ちキューは、それぞれの上位装置からの処理要求がキューイングされているものであり、処理要求が多い上位装置もあれば、処理要求の少ない上位装置もある。先ず、待ちキューの１が解放され、以下、順次待ちキューｎまでが解放され、上位装置のポーリング処理が行なわれていく。
【００３２】
図７は本発明の第３の動作例を示す図である。図４と同一のものは、同一の符号を付して示す。（Ｃ−１）は上位階層のポーリング処理、（Ｃ−２）は下位階層のポーリング処理である。２２は上位装置１０からの情報取得処理を保持する待ちキュー、２３は下位装置２０からの更新データである。以下、第３の動作例について説明する。
【００３３】
上位装置（上位階層）のポーリング処理部１１の読出処理部では、前処理の後、そのデータ取得の一連の処理において、下位装置（下位階層）のポーリング完了タイミングを認識するため、待ちキュー２２にエントリを行なう（Ｓ１）。下位階層のポーリング（Ｃ−２）では、データ取得周期を判定する（Ｓ１１）。そして、データ取得が行なえない周期の場合、ウェイト処理を行ない（Ｓ１２）、ステップＳ１１に戻る。データ取得が行なえる周期になった場合、データ取得処理を行なう（Ｓ１３）。そして、取得データの有無を判定する（Ｓ１４）。
【００３４】
取得データがない場合、ステップＳ１１に戻る。取得データがある場合、データ加工・保存処理を行なって更新データを上位階層側に与える（Ｓ１５）。そして、待ちキュー２２の解放処理を行なう（Ｓ１６）。待ちキューの解放処理通知を受けた上位階層側では、待ちキュー応答待ち処理（Ｓ２）から上位階層のポーリング処理が再開され、更新データ２３の読出処理を行なう（Ｓ３）。更新データの読み出し処理を行った上位階層側は、読み出したデータの加工処理を行った後、ステップＳ１に戻る。
【００３５】
この実施の形態例によれば、データの更新が検出されなかった（即ち取得データがない）場合には、待ちキューを解放しないので、無駄なポーリングが行なわれることを防止することができる。
【００３６】
以上、詳細に説明したように、本発明によれば、ＷＥＢサブシステムとＤＢサブシステムの連携を行なう等の多階層のポーリングを行なうサブシステムにおいて、データ取得の無いポーリングを実施することなく、また、多階層のポーリングで発生するポーリング周期の違いによる遅延を生じることなく、システムを構築することができる。
【００３７】
【発明の効果】
以上説明したように、本発明によれば、以下の効果が得られる。
（１）請求項１記載の発明によれば、下位装置が該下位装置のポーリング処理を終了すると、待ちキューに貯まっていた上位装置の待ちキューを解放するようにしているので、上位階層のポーリング周期を下位階層のポーリング周期に同期させることができ、個々のポーリングの時間差による遅延を無くすことができる。
（２）請求項２記載の発明によれば、下位装置のポーリング処理が終了したら上位装置の待ちキューの全てを解放することで、複数の上位装置のポーリングと下位階層のポーリングの同期をとることが可能となる。
（３）請求項３記載の発明によれば、上位装置の待ちキューの解放を順次間隔をおいて実施することで、下位装置と上位装置とのポーリング同期を順次間隔をおいてとることが可能となり、負荷分散を図ることができる。
（４）請求項４記載の発明によれば、データの更新が検出されなかった（即ち取得データがない）場合には、待ちキューを解放しないので、無駄なポーリングが行なわれることを防止することができる。
（５）請求項５記載の発明によれば、下位装置が該下位装置のポーリング処理を終了すると、待ちキューに貯まっていた上位装置の待ちキューを解放するようにしているので、上位階層のポーリング周期を下位階層のポーリング周期に同期させることができ、個々のポーリングの時間差による遅延を無くすことができる。
【００３８】
このように、本発明によれば、上位階層のポーリング周期を下位階層のポーリング周期に同期させて、個々のポーリングの時間差による遅延を無くすことができ、また下位階層のポーリングにおいてデータの更新を検出できなかった場合、上位階層のポーリングを抑止することができる、多階層のポーリング周期を同期させることができる多階層ポーリング同期方法及びシステムを提供することができる。
【図面の簡単な説明】
【図１】本発明方法の原理を示すフローチャートである。
【図２】本発明の原理ブロック図である。
【図３】本発明の動作原理図である。
【図４】本発明の第１の動作例を示す図である。
【図５】本発明の第２の動作例を示す図である。
【図６】本発明の動作説明図である。
【図７】本発明の第３の動作例を示す図である。
【符号の説明】
１０  上位装置
１１  ポーリング処理部
２０  下位装置
２１  ポーリング処理部
２２  待ちキュー
２３  更新データ
【図１】
2005038036.tif 000003
【図２】
2005038036.tif 000004
【図３】
2005038036.tif 000005
【図４】
2005038036.tif 000006
【図５】
2005038036.tif 000007
【図６】
2005038036.tif 000008
【図７】
2005038036.tif 000009