Steve Marx による Windows Azure デモ三昧 ~ クラウドカバー Episode 70

今回のクラウドカバーは、マイクロソフトの卒業が決まった Steve Marx による数々の秘蔵デモの紹介です。

 

マイクロソフト卒業後は、ポーカープレイヤーとしての夢を追い続ける、、、かどうかはさておき、いつものようにニュースから。

image

 

Get Started with Node.js + Windows Azure: Resources

Windows Azure 上で Node.js を使った開発を行いたい、といったときに便利な各種情報です。

Windows Azure の Developer Center から入手できるリソースや、ブラウザで使える開発環境 Cloud9 を使った Azure 開発の情報、などなど。

また Steve が言及していますが、MongoDB に関しては、Node.js からだけでなく、C# を使っての利用も可能であるため、Azure 上で MongoDB を使ってみたい、という方にも参考になるかと思います。

 

Windows Azure Toolkit for Social Games Version 1.2.2 Released

Nathon Totten による Social Game Toolkit のアップデートです。

Social Game Toolkit は CodePlex を使って OSS として公開されていましたが、今回のリリースからは Windows Azure の他の SDK と同様GitHub 上での公開に切り替わりました

これは、よりコミュニティからのフィードバックを得やすくするための変更になります。

 

Welcome to Wordament on Windows Azure

単語ゲームである Wordament  が、そのサービス基盤を Google AppEngine から Windows Azure に変更したというニュース。

サービス基盤の変更に当たっては Amazon Web Service という選択肢も検討の上、開発陣の技術的背景(マイクロソフトの社員だそうで。今まで AppEngine を使っていたのは、、、)や、BizSpark による無償利用枠というメリット等勘案し、Windows Azure への移行をおなったということです。

 

 

ということで、いよいよ本日の本題、Steve がこれまでに作成した様々なデモ紹介。

image

各界から Steve の卒業を惜しむ声が送られているようです。

 

https://devoxx.cloudapp.net/

最初のデモは、Java 開発者のイベント、Devoxx カンファレンスのスケジュールアプリ。

image

このアプリ、Java 系イベントでのネタということで Windows Azure 上で JVM を動作させているのはもちろん、Scala 言語で Play フレームワークを使ったアプリケーションとして構築されているとのこと。

Play フレームワークは、MVC の実装フレームワークの一つであり、以前のポストでも書きましたが、Razor 記法にインスパイアされて作成されたものであるため、Razor 大好きっこな皆様にも面白いフレームワークかと。

Steve はこのアプリを構築するまで Play フレームワークはもちろん、Scala 言語にも触れたことがなかったとのこと。なお、コードは GitHub にて公開されています。

 

https://netflixpivot.cloudapp.net/

Steve が様々なデモの中でも、もっともよく使ったという NetFlix のデータを使った Pivot View(ピボット ビュー)のデモ。

image

Pivot View は簡単に言うと、BI(Business Intelligence) のためのツールの一種で、選択した軸(Pivot)にあわせて、動的にデータを選択、表示してくれます。

また、NetFlix は、ビデオのオンデマンド配信を行うクラウドサービス(レンタルビデオのクラウド版)を行っている会社で、Web からそのビデオデータを取得できるようにデータの公開を行っています。

 

かなり以前に作った、というこのアプリですが、UIテクノロジとしては Silverlight を利用し、また OData を使って NetFlix のデータにアクセスし、パッケージイメージやカテゴリーなどの各種属性情報を取得しています。

こちらのコードも GitHub にて絶賛(?)公開中です!

 

 

https://ssplayer.cloudapp.net/

続いてのデモは、Windows Azure による Smooth Streaming のデモサイト。

image

ビデオの再生を開始すると、バッファ読み込みの時間を感じることなく、さくっと動画が開始され、また好きな時間までジャンプしても、”スムーズ” に動画の頭出しが可能です。

 

このアプリでは、ビデオデータは Blob データにホストしていますが、CDN (Content Delivelry Network) を使ってストリーミング配信しています。なお、現在一般に利用できる CDN は静的コンテンツのみに限定されており、このアプリで利用している動画配信の機能はありませんのでご了承ください(Steve のデモでは、現在 CTP として限定公開している動的配信のサービスを利用しています)。

 

ということで、CDN の CTP を利用できないとすべての機能を使うことができないのですが、コードはやはり GitHub で公開中です。

 

https://www.twoenglishes.com/

次のデモは、2つの English ~ アメリカ英語とイギリス英語の翻訳サービス。

image

微妙に異なる点があるアメリカ英語とイギリス英語の違いを理解するのに最適なこのサービス。タイピング途中で、既に逐次翻訳された単語が他方の英語に翻訳されて表示されるサクサク感がたまりません。

 

このアプリですが、基盤として Node.js を利用しており、また、サービスのレイテンシを最小化するため、Windows Azure の付加サービスの一つである Traffic Manager を利用して、ユーザーが使用しているネットワークに一番近いデータセンターからサービスを提供しています。

Traffic Manager に関しては以前のエピソード「Windows Azure Traffic Manager ~ クラウドカバー Episode 46」なんかもご参考にどうぞ。

また、細かいですが、ハイレゾリューションな国旗のイメージを配信するために CDN も利用しているとのことです スマイル

Steve がドメイン名まで取得したお気に入りのこちらのデモは、twoenglishesnoderole として GitHub で公開されています(Node Role で、Node.js の実行環境を Windows Azure 上に用意し、そこで Two Englished のコードを動作させます)。

 

https://www.flatterist.com/

Steve 自身がムーディーな声でナンセンスなセリフを読み上げてくれるこのアプリ。

image

 

Steve の声が聞きたくなった時に思わず立ち上げてしまいたくなるこのアプリですが、技術的には ASP.NET MVC で、<audio> タグを使った HTML 5 なアプリケーションとして作成されています(音声データに関しては Blob 上に配置しています)。

このアプリ自体は Azure 上のアプリですが、Windows 8 におけるメトロ スタイルアプリも意識しながら HTML 5 / JavaScript で作成したものになります。

 

なお、このアプリでは新規にデータを Submit できますが、Steve の承認制だそうです。

こちらもコードは GitHub からどうぞ

 

 

 

そしていつものように、最後にお届けするのは、Tip of the week!

image

 

今回の Tip of the week では、Windows Phone において認証を受けたのち、受け取ったトークンを使って、トークンの内容に応じたサービスをどのように行うか(認可)、のお話。

まず、サーバーサイドとしては、WCF Web API を使ってサービスを構築します。

この際の、公開するサービス API の Cntract としては、OAuth のトークンを受け取り(principalとして受け取り)、また内容を確認するためのメソッド(この例では IsAuthenticated(principal) メソッド)を用意することで、認可における処々の作業を行っています。

image

 

同時に、アクセスを行うクライアント側(Phone 側)においては、ACS から受け取ったトークンを、”Authrorization” ヘッダーの内容として付加したうえで、リクエストを行うようにします。

 

image

 

 

さて、Steve Marx が卒業するクラウドカバーですが、次回からは “The” David Aiken が新しくホストとして加入し、Wade と David のコンビでお届けする予定です。

image

 

それでは、Enjoy!