先週マイクロソフトは、まだ安定でないウェブ標準仕様上で動くアプリケーションの初期プロトタイプを.NET開発者に向けて投稿することを狙った、HTML5 Labsを立ち上げた。 その狙いは早くから開発者コミュニティとの対話を生み、ドラフト仕様にずっと忠実な実装を作成することである。 最初に利用可能になった2つのプロトタイプは、ブラウザ上での大容量構造化データを扱うストレージに関するウェブ仕様ドラフトに基づいたアプリケーションIndexDBと、WebSocket実装の例である。
マイクロソフトの実装
マイクロソフトからダウンロードできるものは次の.NET実装を含んでいる:
- WCF 4.0サーバサイド実装
- WebSocketに対するWCF Modelのプロトタイプ
- Silverlight 4クライアント実装
- .NET 4.0クライアント実装
- SilverlightからJavaScriptへのHTMLブリッジ
- ウェブチャットサンプル
- 株価情報サンプル
WebSocketドラフト
WebSocketは、双方向全二重通信を定義することを目的としたプロトコルドラフトであり、HTTPプロトコルのオーバーヘッドなしにウェブブラウザとウェブサーバが通信することを可能にする。 WebSocketはウェブブラウザとウェブサーバの両方で実装されるようにデザインされている。 ブラウザとサーバの間で最初の接続が確立すれば通信は開始される。 WebSocketが承認されれば、今日開発者が利用しているHTTPでの長期のポーリング機構は古く使うべきでないものになるだろう。 WebSocket APIはIETFがその作業中の仕様を持っているにもかかわらず、W3C Web Applicationワーキングループの管轄下にある。
現時点で、WebSocketドラフトはFireFox 4、Chrome、Opera 11、Safari 5、そして、IE 8とIE 9で実装されている。 AppleはさらにWebSocketを最新のiOS 4.2でも実装している。一方、開発者はWindows Phone 7やAndroidで実装されるのを待たねばならない。
WebSocketの後退
今月初め、FireFox 4とOperaの準備段階のWebSocket実装がセキュリティ懸念から無効化された。 問題は、ウエブブラウザにはなく、本当のところWebSocketにあるわけでもなく、大部分の企業ファイアウォールやエンタープライズファイアウォール上のキャッシングプロキシのまずい実装にある。 FireFoxでは、about:configにアクセスして、network.websocket.override-security-blockを切り替えるとWebSocketを再度有効化することが可能である。一般的な共通認識は、WebSocketが今あるセキュリティ懸念を緩和する別の形になった上で最終的に承認されるということは不可避だということだが、XMPPがWebSocketと同じ課題を十分に解決すると感じている人もいる。