同期通信と非同期通信を理解する

従来の Web ベースのアプリケーションでは、ユーザー入力が多くのリソース要求を引き起こします。リクエストに対する応答がサーバーから一旦なされると、ユーザーが次の入力が行うまで、さらなる通信は行われません。このようなクライアントとサーバー間での通信は、同期通信 として知られています。

これは、ブラウザーと Web サーバー間で行われる従来の同期通信の例です。

  1. ユーザーは、ブラウザー ベースの Web アプリケーションで UI コントロールをクリックします。
  2. ブラウザーは、ユーザーのアクションを 1 つ以上の HTTP リクエストに変換し、Web アプリケーション サーバーに渡します。
  3. アプリケーション サーバーは、リクエストしたデータをユーザーに返すことで、ユーザーのリクエストに答えます。この時点で、アプリケーションは更新され、同期更新のループが完了します。新しい同期通信のループは、ユーザーが次にブラウザー上の UI コントロールをクックしたときに始まります。

同期通信は、一定の間隔でユーザーに対してもたらされるアプリケーションの更新に時間の経過があるため、制限があります。同期アプリケーションがアプリケーション サーバーからの情報を定期的に更新するように設計されていたとしても (12 秒ごとなど)、データ更新間隔に一定の遅延時間があります。多くのアプリケーションにとって、管理するデータはそれほど頻繁に変更されないため、このような更新遅延は問題になりません。しかし、株取引アプリケーションのように、アプリケーションの種類によっては、ユーザーに際t期名機能と使いやすさを提供するために、継続的に情報が更新されることが必要なものもあります。

Web 2.0 ベースのアプリケーションは、この問題を 非同期通信 を利用して解決します。非同期アプリケーションは継続的に更新したアプリケーション データをユーザーに配信します。これは、アプリケーションの更新とは別のクライアント リクエストによって行われます。複数の非同期通信がクライアントとサーバーの間で、同時にまたは互いに平行して発生できます。

非同期通信は、多大な恩恵をユーザーにもたらしますが、従来のテスト スクリプトを使ってエミュレートすることが困難であるため、ソフトウェア テスト ツール ベンダーに重大な課題を提示しました。