リアルタイムWebの次は?脳波をクラウドに格納するデモを含むAzureセッション資料公開
VisualStudio2010 ReadyDay は大盛況のうちに無事終了することができた。
ご来場いただいた方はもちろんのこと、ご興味お持ちいただいたみなさまにも
厚く御礼申し上げたい。
セッションは録画していたようなので、おそらく後日ストリーミング公開となると
思われるが、報告書作成(期間限定テンプレDLこちら)のために待ちきれない、
どんな状況だったかみてみたいという方もいらっしゃると思われるので、私が
担当したセッションでスクリーンに投影した資料をSlideshareにアップしておいた。
当日紙で配布した資料にデモ部分が追加されている。
さて、タイトルの「脳波」。VisualStudioやAzureと何の関係があるのやら?と疑問に
思う方もいらっしゃるかもしれないが、今回のセッションではシグマコンサルティングの
橋本氏 @k1hash に多大なご協力をいただき、非常にユニーク、かつ未来の妄想を
いろいろかき立ててくれるデモを実施させていただいた。
脳波センサーで取得したデータをAzureに送信してグラフ表示までするアプリを
実質たったの3時間で開発してしまったのである。全体像は下図の通り。
開発したモジュールは3つ。
- Windows API CodePack を用いて脳波を取得してHTTPでAzureに送信するWPFアプリ
- AzureのWebRoleでデータを受け取りAzure Storage のTableに書き込むWCFサービス
- Tableのデータを取得してHTML5 Canvasでグラフ表示を行うWebページ
まず、脳波の取得はNeuroSky社のMindSetという脳波センサーを使う。
市販品。誰でも買える。$199。
したがって、脳波の取得自体はすでに手にすることができるテクノロジー。(精度にもよる)
フラナガン機関によるニュータイプ研究を待つ必要はない。
取得したデータは2秒ごとにAzureStorageに蓄積。脳波に限らずセンサーデバイスや
シーケンサーから大量にはき出されるログの蓄積には、KeyValueストアであるTableが
適している。現在のところ Secondary Index はまだ使えないので、格納や読み出しの
パフォーマンスを考慮して慎重にパーティションキーを選定するのが勘所。
これまで、大量データの蓄積、分析には大がかりな仕掛けが必要で、開発者が
個人レベルで「さくっとやってみようか!」というわけにはいかなかったのだが、
Azureのようなクラウドサービスを使えば、ことスケールアウトに関してはまったく
開発者が気にかける必要はない。どんどん送信、蓄積。
今回のプレゼンテーションの後半は、同じく橋本氏がお仕事で開発された銀行振り替え
業務アプリケーションのクラウド移行で、データ層での互換性を担保しやすく、
トランザクションも問題なく扱える SQL Azure を選択するなどすれば、それほど
手がかかるわけではない、という話を展開している。詳細はこちらの記事に詳しい。
「お仕事」を考えればお役立ち度が高いシナリオなのだが、Azure担当のエバンジェリスト
としては、やはりこれまで実現が難しかったクラウドらしいアプリを、みなさまの柔軟な
発想で創ってみていただきたいと切に願っている。
ちなみに、今回デモを披露してくれた橋本氏、冒頭の自己紹介ではギターをかかえて
登壇し、ギターからの入力をMIDI経由で拾って文字に変換して入力するパフォーマンスで
会場を見事に惹きつけた。こういうセンスのある開発者のAzure参戦を大いに期待している。
「オレもできるぞ!そのくらい」(自称)という方がいればご一報いただきたい。
私にそれほど多くのことができるわけではないが、可能な限り支援したいと思う。