CDNとは、WebsocketをサポートしたCDNです。WebsocketWebsocketとは、Webの枠組みで双方向通信を行う仕組みです。これは、基本的にHTTPプロトコルですが、別コンテクストの通信になり、Upgradeヘッダによる切り替えが行われます。そのため、企業用Proxy等においてUpgradeヘッダに対応できない場合、通信が正常にできない場合があります。CDN利用シーンの代表的なものとしては、次のような「TV番組とスマートフォンアプリの連動」があります:一斉通知TV局からアプリへの通知およびアプリ画面の操作アンケートアプリからの入力を集計し、番組で紹介ゲームアプリからの指示出しにより、番組内のゲームを操作そして、番組への「のめりこみ感」を高めるために、リアルタイム性に対する要求は強く(そのため通常のHTTPによるポーリングではなく、常時接続かつ双方向であるWebSocketが使用される)、また、同時接続数についても、数百万程度のキャパシティが必要となります。CDNを使用すれば簡便にWebsocketのSSL化が可能になります。SSL化を行うことにより、不具合を回避できる場合もあります。SSL化により通信が暗号化され、プロキシがWebSocket通信の妨害することが無くなります。一斉通知やアンケートなどの単純なアプリケーションであれば、CDNサーバでWebSocketを終端させ、各種処理を行わせることができます。CDNは、まだ本格的に使用されてはおらず、実験レベルです。ここでは、課題についてまとめます。ポート数TCPのポート数は、IPアドレスあたり65,536個までです。WebSocket通信自体の処理は軽く、1台のサーバでこれ以上の処理も可能になっています。そのため、ポート数を稼ぐために、1台のサーバに複数のIPアドレスを割り振ることが必要です。CDNサーバ上でのWebSocket処理CDNサーバで(セッションあたり)重い処理を実行させると、つまり、基本的には軽いオブジェクト配信と重い処理が混在すると、キャパシティ管理が難しくなります。そのため、基本的には、定型化された軽い処理かつ軽い処理系が必要になります。定型化された軽い処理と関連して、CDNサーバの接続APIも定める必要があります。