2009年03月01日
川俣晶の縁側ソフトウェア技術雑記 total 2529 count

EchoSampleで.NET ServicesのService Busを使ってみる

Written By: 川俣 晶連絡先

 Azure関係を少しいじってますが。

 とりあえず、簡単なサンプルを試してみようと思い、.NET ServicesのEchoSampleを動かしてみました。

 これは、サーバアプリとクライアントアプリのセットになっているプログラムで、サーバアプリ上で入力した行がそのままクライアントアプリに出力されます。

 で、このサンプルソースの何がそれほど面白いのかと言えば、通信がDefaultRelayHostName("servicebus.windows.net")による中継によって成立していること。つまり、NATの内側にいるサーバプログラムが、別のNATの内側にいるクライアントからの接続を受け付けられること。

 つまり、リレーのオーバーヘッドとリスクを許容できるのであれば、グローバルIPアドレス無しで、任意のホストからのリクエストを受け付け可能なプログラムを作成できるというわけです。

 更に言えば、サーバの識別にIPアドレスやドメイン名は使用しないので、ISPから動的にもらったIPアドレス上のNAT化にあるサーバにも容易に接続できます。

 なかなかワクワクする仕掛けですね。

注意点 §

 サンプルソースを実行させて入力するソリューション名とパスワードは、.NET Servicesのサービスを登録した時点で入力したソリューション名と、その時にYour password is :として表示されたパスワードを使います。(パスワードは後から上書きできます)

 最初、そのパスワードのことを忘れていて、どうしても稼働させることができず、焦ってしまいました。(←間抜け)

 ちなみに、公開されたリレーを経由する通信ではありますが、このパスワードが勝手な乗っ取りに対する歯止めとなります。(が、パスワードだけでは弱いので、実用システムではWindows CardSpace等の他の方法を使う方が良いか?)