ちょっとした気づきがあって、UDPってそういや Windows Azure Platform で使えるのかなーと思って見てみるとやっぱり使えないわけで。
Service Definition Schema (MSDN Library)
Worker Role の場合、「HTTP/HTTPSまたはTCP」となってます。
UDPを使いたい場面って、ネットワークの遅延を減らしたいとかリアルタイム通信したいとか、そういう場面だと思うのですけど、 Windows Azure Platform 上ではまだまだそこのケアが足りてない感じですね。
で、なんでそんな話なのかというと、主にゲームなプラットフォームを考えるとTCPよりはやっぱりUDPでデータ通信を行うケースが主流だから?
同じように悩んでる人もいますね。
※フォーラムにもありますが、どうしても必要!という方は投票してみてはどうでしょう。実現される可能性は微妙な気もしますけど…
UDP EndPoints (Windows Azure Feature Voting Forum)
※VM Roleだとまた話は変わるんでしょうけど、そもそもゲームのプラットフォームで単発のVM Roleを選択するとか、なんかいろいろ違う気がします。。
で、ここからが本題。
既存の資産を流用する場合等はUDP使いたいというのは自然な流れなんですが、どうせ新しいプラットフォームで新しく何か起こすなら、わざわざ今までの慣習にとらわれる必要はないんじゃないかなと。
そういう視点で考えると、HTML5なWebSocketが使えそうだな~と思いちょっと調べてたりします。
HTML5、ということでなんか主流はnode.jsとかブラウザが注目されてる気がしますが別にクライアントがブラウザである必要は全くないかな。
で。いろいろ見てるとWebSocket Serverを実装したりしてる記事もありますね。
これであれば Windows Azure Platform の Worker Role でも動かせそうです。cometとかも面白そうですね。
WebSocketの実装例?としてはTech・Ed 2010 JapanのBoFでもあったMVC Graffitiがなんとなく良いかも知れないです。
動画の配信なんかは Windows Azure Guest OS 2.0 が来れば IIS Media Service 4 が使えるだろうし、Smooth Streaming な世界で問題ないだろうし。
UDPとちょっと主旨違いますがIPマルチキャストなんか、複雑な Windows Azure 上のネットワーク (Virtual Networkって名前になったんでしたっけ)でマルチキャストアドレスが通るなんて思えないし。
とまぁこのあたり使ってスケーラブルなクラウドコンピューティングなプラットフォームは可能性がいろいろあって面白そう、というのをだらだら考えてました。
ピンバック: Tweets that mention Windows Azure Platform でUDP « ブチザッキ -- Topsy.com
ピンバック: Windows Azure SDK 1.7時代のネットワーク « ブチザッキ