ブログに戻る

Webの進化:CGIからWebsocketsへ(およびそれがクラウドインフラストラクチャのより適切な監視にどのように役立つか)

Webの進化:CGIからWebsocketsへ(およびそれがクラウドインフラストラクチャのより適切な監視にどのように役立つか)

ここ数年、websocketsは、すべてのモダンなWebアプリケーションにおいて多かれ少なかれ標準的なコンポーネントとなっていますが、それはなぜでしょうか。そして、どのようにしてここまで来たのでしょうか。さらに重要なのは、websocketsがクラウドインフラストラクチャをより効果的に監視するのにどのように役立つかということです。

このトピックの技術的な性質上、詳細に深く入り込むことも可能です。しかし、ここでは比較的ハイレベルな内容にとどめ、クラウドインフラストラクチャのユーザーにとってのメリットに焦点を当てたいと思います。

古いやり方

Webの初期段階では、すべてが静的でした。サーバーとやり取りする必要がある場合(静的ページのレンダリング以外で)、何らかのCGIスクリプトを実行する必要がありました。この典型的な例が、メーリングリストへの登録などです。メールアドレスを入力して「送信」を押すと、データを処理する別のページが表示されます。これは、入力を受け取ってサーバー上で処理するスクリプトでした。

PHP Logo
90年代までに、サーバーサイドスクリプティングは大幅に進化しました。技術は単純なタスクの実行から、完全に動的なページの構築へと進化しました。次のようなプログラミング言語や、PHP、そしてより高度なサーバーサイド技術、例えばmod_perl、によって、はるかに洗練されたWebプログラミングが可能になりました。これらの技術は重要であったものの、依然としてロード時にページを生成するという概念を中心に展開されていました。一度ロードすると、コンテンツを更新するためにページ全体をリロードする必要がありました。

Webが進化するにつれて、私たちはAJAX/Web 2.0時代の’00年代に入り、Webページははるかに動的でレスポンシブになりました。もはや画面上のコンテンツを更新するためにページをリロードする必要はありません。JavaScriptのアクションをいくつか実行するだけでよくなりました。多くのAJAXページは依然としてPHPで構築されていましたが、クライアントサイドのJavaScriptの導入により、より動的にすることが可能になりました。

AJAXの導入

AJAXの導入により、サーバーとクライアント間の継続的な通信がますます重要になりました。特定のページ上の個々のユーザーから、突然大量のAPI呼び出しが発生する可能性が出てきたのです。これは「プル」方式で行われ、クライアントが一定の間隔で(または特定のアクションに基づいて)サーバーに更新を要求することを意味します。

’10年代に入ると、Webページはフロントエンド(HTML/JavaScript/CSS)とバックエンド(Ruby on Rails, Djangoなど)に完全に分割されることが一般的になり、これらは多くの場合、異なるサーバーでホストされていました。フロントエンドがバックエンドと通信する方法はAPI経由でした。フロントエンドは多かれ少なかれ静的でした。この傾向に伴い、サーバーへのAPI呼び出しが大きなボトルネックになりました。サーバーから10個の異なるデータを取得する必要がある場合、それはしばしば10回の異なるAPI呼び出しを行う必要があることを意味し、各呼び出しには大きなオーバーヘッドと遅延が伴いました。

モダンなやり方

HTML5 Logoこの遅延とオーバーヘッドの問題に対処するため、HTML5の一部としてwebsocketsが導入され、すべてのモダンなブラウザに実装されました。従来の「プル」アプローチ(すなわち、クライアントがサーバーに変更を問い合わせる)とは異なり、websocketはその名の通りソケットであり、サーバーがクライアントに変更を「プッシュ」することができます。したがって、変更がない場合は通信を行う必要がありません。また、接続の確立と切断に伴う余分なオーバーヘッドなしにクライアントがサーバーと直接通信できるため、アプリケーションの応答性は大幅に向上します。

これはまさに、私たちのWebアプリケーションが構築されている方法です。実際のアプリケーションは、APIへのwebsocket接続を開く静的なページです。このソケットが開かれると、Webアプリケーションはサーバーから変更の通知を受け取ることができます。私たちは依然としてRESTful APIにコマンドを送信しますが、websocketを使用してサーバーからクライアントに通知をプッシュしています。

Webページのためだけではない

websocketを使用してアップデートを受信する最も明白なケースはブラウザ経由ですが、それ以外のケースもあります。おそらく、アーキテクチャの変更を監視し、それに基づいてアクションを実行するツールを作成している場合などです。その場合、当社のwebsocketを利用することで、アプリケーションを大幅に高速化できます。

当社のPython Libraryであるpycloudsigmaでは、websocketsのサポートが組み込まれています。また、シンプルなを使って、わずか数行のコードでwebsocketのアクティビティを監視する方法も紹介しています。以下は、monitor_websocket_activity.pyがweb-appでのユーザー入力によってトリガーされるアクションを監視するクイックデモです。
当社のサービスの詳細については、当社の機能.

author

Viktor Petersson

著者 · CloudSigma

Preslav DobrevはCloudSigmaのクリエイティブデザイナーであり、従来型および革新的なマーケティングチャネルを活用した一貫性のあるビジネスアイデンティティに注力しています。彼は芸術的なビジョンと戦略的マーケティングを融合させ、インパクトのあるブランドナラティブを生み出すことに長けています。

コメント

コメントはまだありません。最初のコメントを投稿しましょう。