Windows Azure Toolkit for Android の紹介 ~ クラウドカバー Episode 58


さて、今回のクラウドカバーは、Windows Azure Toolkit for Android をメインに、Windows Azure Toolkit for Windows Phone、Windows Azure Toolkit for iOS を取り上げます。

これらの3つの Toolkit は、クラウドカバーの司会者である Wade がコアメンバーとして作成したツールであり、GitHub にてオープンソースとして公開されているツールです。

 

 

では、いつものようにまずはニュースから。

 

Just Released: Windows Azure Toolkit for Social Games Version 1.0

Nathan Totten が作成し、オープンソースとして CodePlex にて公開中の Windows Azure Toolkit for Social Games がバージョン 1.0 として正式にリリースされました。

このプロジェクトでは、Social Game で必要となる基盤機能を Windows Azure 上のアプリケーションとして提供することを目的としており、サンプルのゲームとして HTML5 で作成された Tankster が用意されています(実際に Azure 上で動いている Tankster はこちら)。

ターンベースのゲームのサンプルとなっており、徐々に実装サンプルも増やすとのこと。Steve が大好きなカジノのサンプルもそのうちにでる、、、、かも。

 

Checking Your SQL Azure Server Connection

以前の Cloud Cover でも話題になりましたが、この夏に SQL Azure のエンジンのバージョンがあがりました。

現在 SQL Azure と SQL Server の切り分けのために、エンジンの情報によりロジック等を変更している場合、”version number” ではなく、”EngineEdition” で切り分けを行ってください、というのが今回の要旨。

具体的には、SQL Azure の場合は以下の式/値で切り分け可能です。

  SELECT SERVERPROPERTY('EngineEdition') == 5.

 

Memcached in Windows Azure

ポーカープレーヤーの Steve のブログから、memcached (メムキャッシュディー) を Windows Azure で動かすための解説エントリです。

Windows Azure には AppFabric の機能としてキャッシュがありますが、使い分けとしては、AppFabric の Cache を最初に使うような感じで、使用している Computing のインスタンスでメモリが余っており、キャッシュの最適化ができるエンジニアがいるのであれば、Memcached を構成し使う、という感じで、ということです。

 

 

さていよいよ本題。

これまで Windows Phone と iOS 向けに用意されていた Windows Azure Toolkit に3番目の仲間、for Android が登場しました。

NOW AVAILABLE: Windows Azure Toolkit for Android

image

 

Wade としてはもう少しコードを増やしたい、という気持ちもありバージョン “0.8” としてのリリースです。

非常に Simple な Sample として、Windows Azure への接続ロジックが用意されているのみで、リッチなUI等はありませんが、スタートポイントとしてはお使いいただけるかと。

 

まずこの Toolkit を動かすには、開発環境としての eclipse、Android の SDK、などが必要で、そのあたりは Android のサイトを参照とのこと。おおよそ 4、50分ぐらいセットアップにかかるかなー、という感じのようです。

それさえ終了しておれば、Toolkit のソースをダウンロードし、eclipse でコードを読み込めば、準備はほぼ完了。一点だけ、Library の設定が行われているか確認しておきましょう。

image

 

エミュレーターでの実行を開始すると、ボタンUIを持つアプリケーションが立ち上がってきます。

image

シンプルな UI のサンプルアプリの前でディスカッションする2人

 

なお、今回の Android サンプルで社、Windows Azure ストレージに対するアカウント情報を、クライアントアプリケーション内に埋め込んでいます。

これに関しては、「やってはいけないプラクティス」であり、このコードを利用して実際のサービスを行うような場合は、サーバーサイドで Windows Azure ストレージのアカウント情報を持つようにし、クライアントからのアクセスに関しては、ASP.NET のメンバシップや ACS を利用することでクライアント認証を一旦サーバー側で行い、その認証情報を基に、適切な範囲でサーバーサイドから Windows Azure ストレージに問い合わせを行うように実装しなおしましょう、とのこと。

 

さて、立ち上がったアプリケーションを使用すると、Table、Blob、Queu へアクセスするサンプルを試すことが可能です。

下記のスクリーンショットは、Table において、「ForSteve」という名称の新しいテーブルを作っているところ。

image

 

今回のサンプルのもう一つの特長は JUnit による単体テストのサンプルも付属しているという点。

image

 

ということで、Simple なサンプルとして、非常に簡単な機能が実装されているだけですが、Wade からは「ぜひフィードバックと参加を!」、ということで、拡張いただける方がいましたら、ぜひ Pull Request をしてみてください!

 

 

さて、さらに、、、ということで次は Windows Azure Toolkit for Windows Phone のアップデートについて。

大きな変更点としては SQL Azure への対応を強化した点で、メンバシッププロバイダとして SQL Azure が使用可能になりました。残念ながら Universal Provider にはまだ対応していないそうですが、今後対応するそうです。また、SQL Azure を使った OData なアクセス機能も追加されています。

その他 MVC 3 への対応、最新の開発環境への対応等のアップデートが行われています。

 

そして、最後に、BabelCam のサンプルが追加されています。

Babel Cam は、カメラで撮影した文字情報を OCR で認識し、多言語へ変換するサービス。Babel の塔の完成を強力に支援するアプリですね スマイル

image

 

Bable Cam のネーミングには、僕のアイディアも使っているからクレジットに名前をのせてよね、とどや顔の Steve。

image

 

 

さらに、さらに、最後に Windowsw Azure Toolkit for iOS のアップデート

メモリリークをつぶすなど、クオリティの向上を行ったとのことです。

 

 

最後に恒例 Tip of the Week は、Glee 部のスター Steve をフィーチャーしながらの開始(どれが Steve だか、、、すぐにわかりますねスマイル)。

image

 

さて、最後の話題は、RoleEnvironment Changing event について。

Windows Azure のインスタンスのトポロジーが変わった際、たとえばインスタンス数が増えた際などに、RoleEnvironment の Change イベントによって、既存のインスタンスが新しいインスタンスとの協調動作を始める(たとえば memcached でインスタンス数を2から5に変えたとき、など)際には、新しいインスタンスが立ち上がるまでの時間を考慮してから、アプリケーション側の動作を変更しましょう、という話。

 

具体的にこれをサポートする方法として2つのアイディアを提案しています。

一つ目はシンプルな方法で、新しいインスタンスに対して接続を試みてみて、成功すればそれをもって立ち上がったと判断する方法。

もう一つは、状態が Ready になった際に Azure Table 等にその情報を書き込み、それを元にアプリケーション側の動作を変更するという方法。

 

いずれにせよ、RoleEnvironment の Change イベント直後にインスタンスが立ち上がっているわけではないことを理解し、設計しましょう、ということです。

 

 

以上、クラウドカバー Episode 58、Windows Azure Toolkit for Android の紹介でした。

 それだは、Happy Coding!

Skip to main content