クラウドアプリを置いてみる

クラウドや Web サービスなどの次世代コンピューティング環境を得意分野とするエバンジェリスト。
日本オラクルにおいて、ERP 導入から情報系ポータル、新規事業開発まで幅広く経験。その後、ドイツ
系戦略コンサルティング ファームであるローランド・ベルガーにて、自動車産業を中心とする経営・オ
ペレーション戦略立案プロジェクトに従事。スタートアップ企業であるリアルコム にて IBM や Google
との協業窓口を含むマーケティング責任者を務めた後、現職。寄稿・講演多数。東京工業大学工学部卒。
PhotoSynth でインパクトのある3D写真オブジェクトをつくる
DeepZoomで画像に奥行きを持たせる / 大量の画像を整理する
Windows Azure にクラウドアプリを置いてみる
Mesh Enabled App
で同期するソーシャルアプリを作る
Live ID があれば認証機能はいらない。個人情報も No Care
Live Messengerで既存のWebサイトをソーシャルに
Bing Maps で地図を使ったマッシュアップ
CodePlex で再利用できそうなソースコードをゲットする
Silverlight Toolkitでグラフやコントロールなどの部品を調達する
??
セッション会場にて
コンピューティング
ストレージ
ファブリックコントローラーによる
仮想化・自動化
…
• クラウドサービス用
テンプレート
• Visual Studio上で
開発・デバッグ
• 右クリック→発行で
必要なファイルを
パッケージ化
• Azure開発ポータルから
アップロード
• Staging&Production環境に
デプロイ
Collaborative
Crossword
•
•
•
複数人で進めるクロスワードゲーム
Silverlight 用のMeshライブラリによ
る実装例
ゲームの進捗はフィードとして保存
される
MeshLists
•
•
•
Corkboard
•
•
•
Crowd Vote
•
•
•
アプリケーション
カタログ
インストール
1
インストール
されたアプリ
アクセス権付与
ユーザーの ∞
プライベート
データ
作成
∞
インスタンスを
1つ以上生成
所有
∞
Mesh
オブジェクト
User Shares
∞
他ユーザーの
招待
• テクノロジー
– リッチクライアント
– メタデータ同期
– Silverlight がオフラインで使える
註記:本サービスは実証実験中であり、正式サービスとして一般ユーザーに公開されているものではありません
http://login.live.com/controls/WebAuth.htm
appid=<%=AppId%>
Existing: WebAuth.htm
context=welcomepage
style=font-size=10pt;
font-family=verdana;
font-style=normal;
font-weight=bold;
background=white;
color=black;
New: WebAuthLogo.htm
New: WebAuthButton.htm
PhotoSynth でインパクトのある3D写真オブジェクトをつくる
DeepZoomで画像に奥行きを持たせる / 大量の画像を整理する
Windows Azure にクラウドアプリを置いてみる
Mesh Enabled App
で同期するソーシャルアプリを作る
Live ID があれば認証機能はいらない。個人情報も No Care
Live Messengerで既存のWebサイトをソーシャルに
Bing Maps で地図を使ったマッシュアップ
CodePlex で再利用できそうなソースコードをゲットする
Silverlight Toolkitでグラフやコントロールなどの部品を調達する
??
セッション会場にて
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market
conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation.
MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
https://signup.live.com/
http://www.azure.com/
http://dev.live.com/liveid/
https://signup.live.com/ (httpではなくhttpsである点に注意)
http://www.azure.com/
(Sign InでLive Servicesを選択)
<h1>Welcome to the the Windows Live&trade; ID Web Authentication Lab</h1>
<p>The text of the link below indicates whether you are signed in or not. If the link invites you to
<b>Sign in</b>, you are not signed in yet. If it says <b>Sign out</b>, you are already signed in.</p>
<iframe
id="WebAuthControl"
name=“WebAuthControl”
src="http://login.live.com/controls/WebAuth.htm?appid=<%=AppId%>&context=<%=AppId%>&style
=font-size%3A+10pt%3B+font-family%3A+verdana%3B+background%3A+white%3B"
width="80px"
height="20px"
marginwidth="0"
marginheight="0"
align="middle"
frameborder="0"
scrolling="no">
</iframe>
const string LoginCookie = "webauthtoken";
static WindowsLive.WindowsLiveLogin wll = new WindowsLive.WindowsLiveLogin(true);
protected static string AppId = wll.AppId;
protected string UserId;
HttpRequest req = HttpContext.Current.Request;
HttpCookie loginCookie = req.Cookies[LoginCookie];
if(loginCookie != null){
string token = loginCookie.Value;
if ((token != null) && (token.Length != 0))
{
WindowsLive.WindowsLiveLogin.User user = wll.ProcessToken(token);
if (user != null)
{
UserId = user.Id;
}
}
}
<appSettings>
<add key="wll_appid" value="XXXXXXXXXXXX"/>
<add key="wll_secret" value="01234567890123456789"/>
<add key="wll_securityalgorithm" value="wsignin1.0"/>
</appSettings>
const string LoginPage = "default.aspx";
const string LogoutPage = LoginPage;
const string LoginCookie = "webauthtoken";
static DateTime ExpireCookie = DateTime.Now.AddYears(-10);
static DateTime PersistCookie = DateTime.Now.AddYears(10);
// Initialize the WindowsLiveLogin module.
static WindowsLive.WindowsLiveLogin wll = new WindowsLive.WindowsLiveLogin(true);
HttpRequest req = HttpContext.Current.Request;
HttpResponse res = HttpContext.Current.Response;
// Extract the 'action' parameter from the request, if any.
string action = req.QueryString.Get("action");
if (action == "logout")
{
HttpCookie loginCookie = new HttpCookie(LoginCookie);
loginCookie.Expires = ExpireCookie;
res.Cookies.Add(loginCookie);
res.Redirect(LogoutPage);
res.End();
}
else if (action == "clearcookie")
{
HttpCookie loginCookie = new HttpCookie(LoginCookie);
loginCookie.Expires = ExpireCookie;
res.Cookies.Add(loginCookie);
string type;
byte[] content;
wll.GetClearCookieResponse(out type, out content);
res.ContentType = type;
res.OutputStream.Write(content, 0, content.Length);
res.End();
}
else
{
WindowsLive.WindowsLiveLogin.User user = wll.ProcessLogin(req.Form);
HttpCookie loginCookie = new HttpCookie(LoginCookie);
if (user != null)
{
loginCookie.Value = user.Token;
if (user.UsePersistentCookie)
{
loginCookie.Expires = PersistCookie;
}
}
else
{
loginCookie.Expires = ExpireCookie;
}
res.Cookies.Add(loginCookie);
res.Redirect(LogoutPage);
res.End();
}
else
{
WindowsLive.WindowsLiveLogin.User user = wll.ProcessLogin(req.Form);
HttpCookie loginCookie = new HttpCookie(LoginCookie);
if (user != null)
{
loginCookie.Value = user.Token;
if (user.UsePersistentCookie)
{
loginCookie.Expires = PersistCookie;
}
}
else
{
loginCookie.Expires = ExpireCookie;
}
res.Cookies.Add(loginCookie);
res.Redirect(LogoutPage);
res.End();
}
http://login.live.com
http://blogs.itmedia.co.jp/isago/
http://www.twitter.com/shin135
[email protected]
http://enterprisezine.jp/article/corner/99
http://www.atmarkit.co.jp/fdotnet/dnfuture/winazureintervie
w_01/winazureinterview_01_01.html
http://www.youtube.com/watch?v=tc64KkQtvrQ
http://photosynth.net/
http://photosynth.net/view.aspx?cid=d5526321-29ba-48dd-81d3aea1d2fdd77d
http://memorabilia.hardrock.com/
http://deepzoompix.com/
http://www.atmarkit.co.jp/fwcr/rensai2/silverlight2_05/silver
light2_05_2.html
http://www.azure.com/
http://msdn.microsoft.com/ja-jp/azure/
http://toripotoazure.cloudapp.net/
http://blog.smarx.com/
http://www.mesh.com/
https://developer.mesh-ctp.com/
http://www.atmarkit.co.jp/fdotnet/dnfuture/meshappintro_01/meshappi
ntro_01_01.html
http://messenger.mslivelabs.com/
http://photobucket.com/visualsearch/
https://login.Live-INT.com/
https://www.microsoft.com/maps/developers/default.aspx/
http://bingmapsupdates.cloudapp.net/
http://earthware.cloudapp.net/demos/sltwittermap.aspx
http://www.codeplex.com/
http://silverlight.codeplex.com/