ETロボコン計測システムクラウド化トライ
ETロボコン2011チャンピオンシップ大会では、スタンドアロンシステムが稼動している横で、実は、クラウド化したシステムの実験をやっていました。ETロボコン計測システムの概要は、一つ前のポストhttps://blogs.msdn.com/b/hirosho/archive/2011/11/17/etroboconracetrackingsystempart1.aspx を見てもらうこととして、この実験では、隣でスタンドアロンシステムに対して行っている操作とまるっと同じ操作をして、ちゃんと動くか、応答性能は問題ないか、一大会あたり幾ら位かかるか、について検証を行いました。
実験システムは、図のように構成しました。
- IISで動いているWCFサービスをWindows Azureにそのままポーティング
- DBをSQL Azure上に作成(スキーマはEFから生成したSQL文を使用)
- WCFサービスのDB参照先の接続文を一行SQL Azure用に修正
- PC側のETRoboConTrackingSystem、ETRoboConResultEditorExcelのHTTP/SOAPの参照URLを修正
以上、これだけで、結果としてはちゃんと動きました。私は方々でデバイスとクラウド連携というお題で講演していますが、私の講演をお聞きいただいた皆さんの中には、「同じコードで直ぐ動きます、Azureでクラウドをはじめることは簡単です」と言っていたのを記憶に留めている方も多いと思います。言っているとおりに動いています(嘘つきにならなくてよかったです)。
移植作業は、梶原さんという技術者が協力してくれました。Twitterで協力者募集したところ、申し出てくれた方です。私は酷いので、「Codeplex上にアップしているプロジェクト群のうち、ETRoboConTrackingServerプロジェクトをAzureに挙げればよいですよ。お願いします」の二言で丸投げ。でも、動きましたね。梶原さんありがとう。
まぁ、大会当日の朝、さぁ動かそうとして、何故かDBの定義が一箇所だけ古く、最初動かなかったのですが、程なく解決。その後は、正式本番システムの横で、同じオペレーションを行って問題なく動きました。携帯電話のディザリングでPCをネットにつないだ場合は、転送速度の問題で応答性能悪すぎで、タイムアウト連発。ワイヤードでLANにつなげば特に問題はありません。むしろVista PCのスタンドアロンより、Win7+Azureのほうが体感的に早い気がしました。
実稼動に向けては、セキュリティやアクセス権、ローカルで持てばよい情報もあるのでDBのスキーマ変更とそれに伴うロジック変更が必要ですが、まぁなんとかるでしょう。クラウド側もクライアント側も、C#、.NET Frameworkと同じスキルを活用できるのも魅力ポイント。
気を良くした太田は、あ、そういえば、WCFサービスをWindows Phone 7アプリで接続するのも簡単だっけと思い出し、準備の傍ら、WP7アプリもちょこっと作って、WCFサービスによるHTTP/SOAPにアクセスして、大会情報の取り出しと順位結果表示のサンプルアプリも作っていた次第。こちらも後でブログにポストの予定です。