2008-09-12 9 views
4

現在、クライアントが特定のデータ要素の変更に対する関心を要求し、そのデータが変更されたときにサーバーがデータをクライアントにプッシュバックするサーバーを開発しています。クライアントがこのデータをポーリングする方が良いかどうかについては、仕事中に激しい議論があります。ほぼリアルタイムのオートメーションサーバーをプッシュまたはプルしますか?

ほぼリアルタイム環境でのデータ転送のパフォーマンス、スケーラビリティ、およびネットワーク負荷の点で理想的な方法と考えられるものはありますか?

更新: ここには、UIの更新に関する考え方を示すLinkがあります。

答えて

3

おそらくあらゆる状況に理想的な方法はありませんが、プッシュは通常はよくなり、頻繁に使用されます。サーバーのキャッシングとデータ転送を最適化し、パフォーマンスとスケーラビリティを向上させ、クライアントの要求や空の応答を回避してネットワークトラフィックを少し削減します。サーバーが独自のペースで動作し、準備ができたらクライアントにデータを提供することが重要な利点になります。

OPC、GIDなどの業界のスタンダードは、両方をサポートしています。サーバーはサブスクライブされたクライアントへの更新をプッシュしますが、クライアントはサブスクリプションで煩わされることなく、めったに使用されないデータを取り出すことができます。

1

クライアントが(ファイアウォールとNATの問題を解決するために)接続を開始する限り、どちらの方法でも問題ありません。

複数の種類のデータを送信する必要がある場合は、クライアントに希望の種類を指定させることができますが、接続ごとに1回だけ必要です。その後、サーバーに更新が送信され続けるようにすることができます。

クライアントが更新プログラムを継続的に求めない限り、サーバーが更新プログラムを送信するのに必要なネットワークトラフィックは少なくなります。

0

あなたはクライアント側で何を持っていますか?多くのファイアウォールは発信要求を許可しますが、受信要求はブロックします。つまり、電子メールを送信していない限り、インターネットを経由している場合は、プルが唯一の選択肢になる可能性があります。

+0

私たちは独自のクライアント側のソフトウェアを持っています。この段階では、インターネットでは動作していません。 – Darren

関連する問題