ポーリング方式(ポーリング)とは、主となるシステム(ホスト)が接続された複数の機器やプログラムに対して、定期的に「データや要求がありますか?」と問い合わせを行い、必要な送受信や処理を行う通信・制御方式です。機器間のデータ競合を防いだり、機器の稼働状態を確認したりする目的で利用され、シンプルな実装が可能ですが、タイムラグが発生する、通信トラフィックが増えるなどのデメリットがあります。
ポーリングの仕組み
- 1. 主(ホスト)からの呼びかけ:ネットワーク上のホストコンピュータが、接続されている各端末(クライアント)に対して、定期的に「データの送信要求があるか」を問い合わせます。
- 2. 端末の応答:端末は、データの送信要求があれば応答し、データがあれば送受信が行われます。要求がない場合は、次の端末への問い合わせに移行します。
- 3. 繰り返しの実行:このプロセスを繰り返し、すべての端末の状況を順に確認していきます。
利用される主な状況
- 通信の競合回避:複数の端末が同時にデータを送信しようとすると競合が発生するため、ポーリングによって送信順序を制御します。
- 稼働状態の監視:ネットワーク機器やシステムが正常に動作しているか、定期的に問い合わせて確認します。
- 状況の確認と同期:完了待ちの状態など、相手がどのような状況にあるかを確認し、同期を取るために利用されます。
ポーリングのメリット
- シンプル:システムがシンプルで実装しやすい。
- 確実な状態把握:イベント駆動型の通知が利用できない環境でも、確実に最新の状態を把握できる。
ポーリングのデメリット
- タイムラグの発生:端末はホストからのポーリングを待つ必要があるため、処理に遅延が生じることがあります。
- 通信負荷の増加:問い合わせの回数が増えると、通信トラフィックが増加し、サーバーに負荷がかかる可能性があります。
- 遅延した状態認識:問い合わせ間隔が短いほどリアルタイム性が高まりますが、機器の状態の変化を知るのが遅れる場合があります。
割り込みとの違い
- ポーリング:問い合わせ側が主導権を持ち、定期的に機器の状態を確認する方式。
- 割り込み:機器がイベント発生時に通知を送信し、通知を受けた側がその処理を行う方式で、即座に反応できる点がポーリングとの違いです。
コメント