できる ! グローバル × スケーラブル × マルチデバイス 対応...

20

Upload: tod

Post on 06-Jan-2016

46 views

Category:

Documents


2 download

DESCRIPTION

できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル アプリ開発 入門. 砂金 信一郎 @shin135 日本マイクロソフト 株式会社. スピーカー紹介. 砂金(いさご)信一郎 Azure エバンジェリストやってます 。 自分のこと をシャア・アズナブルの前世と 信じて疑わないスジガネ入りのガンオタ 。 人生 に最も影響を与えたゲームは「ギレンの野望」 女子率 5% 未満の東工大出身 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門
Page 2: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

できる!グローバル × スケーラブル × マルチデバイス対応のソーシャル アプリ開発入門

砂金信一郎 @shin135日本マイクロソフト株式会社

Page 3: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

スピーカー紹介

砂金(いさご)信一郎Azure エバンジェリストやってます。自分のことをシャア・アズナブルの前世と信じて疑わないスジガネ入りのガンオタ。人生に最も影響を与えたゲームは「ギレンの野望」女子率 5% 未満の東工大出身

→ オラクルで新規事業開発など好き放題→ローランド・ベルガーで戦略コンサル修行→リアルコムをマザーズに上場→縁あってマイクロソフトに参画(イマココ !! )

Page 4: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

本セッションの内容

主に開発者向け(非開発者の方は参考情報として)

• クラウドサービス WindowsAzure の概要(簡単に)• ソーシャルゲーム Toolkit• Windows Phone Toolkit• iOS / Android Toolkit

Page 5: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

Windows Azure とは…

オンプレミス

ストレージ

サーバー

ネットワーク

OS

ミドルウェア

仮想化技術

データ

アプリケーション

ランタイム

ユー

ザー

による対応

SaaS

事業者側による対応

ストレージ

サーバー

ネットワーク

OS

ミドルウェア

仮想化技術

アプリケーション

ランタイム

データ

ユー

ザー

による対応

PaaS

事業者側による対応

ストレージ

サーバー

ネットワーク

OS

ミドルウェア

仮想化技術

アプリケーション

ランタイム

データ

IaaS

ストレージ

サーバー

ネットワーク

ミドルウェア

仮想化技術

データ

アプリケーション

ランタイム

事業者による対応

ユー

ザー

による対応

OS

Asia Pacific Region

Page 6: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

クラウド活用のメリット• ハードウェアや OS の購買、インフラ構築費用が不要• 費用として支払うため、資産計上しなくて済む初期投資

• 従量制課金であるため、必要がなくなれば、容易に停止可能• キャンペーン サイトや頻度の少ないバッチ処理に有効無駄の排除

• すぐにアプリの開発、利用が可能になる• 新規事業などの変化の早いニーズに対応スピード

• システム管理業務をすべてアウトソース、パッチ適用も自動化• 遠隔地での冗長化で事業継続性を確保運用

• スケーラブルな基盤設計要求からスキルの高い技術者を解放• 所有が不可能な規模に、理論上無限の拡張が可能スケーラビリティ

• 世界中に建設されたデータセンターとネットワーク網• データやアプリケーションを効率的に配布・管理グローバル展開

安い

簡単

+ α

Page 7: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

Windows Azure Platform の全体像

アプリサーバーロードバランサー

分散ストレージ

パーティション分割可能なデータ

分散キャッシュ

CDN配信サービス

ロードバランサー

リバースプロキシ、キャッシュ

管理サーバー

バックエンド処理

Web サーバー

分散キャッシュ

キュー アクセス権管理

大容量ファイル格納

リレーショナルデータベース

キーバリューストア

ファイルシステム サービスバス

レポーティング、 BI

データ同期

VPN

Elastic(増減自在)

CDN

Load Balancer

IISWeb

Server

VM Role

Worker Role

Web Role

Caching

Queue Access Control

Blob

Relational Database

Table

Drive Service Bus

Reporting & Analysis

Data Synchronizatio

n

Connect

Page 8: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

マルチデバイス対応戦略の一般的な整理

ブラウザゲーム化 →カメラ、センサー等が使えないゲームエンジンの利用 →パフォーマンス問題ネイティブ開発 →開発工数増大HTML5× アプリのハイブリッド

Page 9: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

Toolkit, Accelerator, Training Kit

Toolkit →目的別 SDK やサンプル一式Accelerator → セットアップを簡略化Training Kit→ ハンズオン用の手順解説 with サンプル

Page 10: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

ソーシャルゲーム Toolkit

http://watgames.codeplex.com/

Page 11: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

Windows Phone Toolkit

http://watoolkitwp7.codeplex.com/

Page 12: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

Toolkit for iOS/Android

https://github.com/microsoft-dpe/watoolkitios-lib

Page 13: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

iOS で Azure を使う3パターン

1ネイティブアプリから

ストレージを使う

3通知をクラウドから

2ブラウザアプリを

クラウド側で

Page 14: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

Blob Storage

REST Endpoint:http://[account].blob.core.windows.net

Making the call

GET http://iostest.blob.core.windows.net/?comp=list&include=metadata

x-ms-date: Thu, 14 Apr 2011 20:30:00 GMTx-ms-version: 2009-09-19x-ms-blob-type: BlockBlobAuthorization: SharedKey iostest:[ComputedHash]

<?xml version="1.0" encoding="utf-8"?><EnumerationResults AccountName="http://myaccount.blob.core.windows.net/"> <Prefix>c</Prefix> <MaxResults>3</MaxResults> <Containers> <Container> <Name>container1</Name> <Url>http://iostest.blob.core.windows.net/photos</Url> <Properties> <Last-Modified>Sun, 14 Apr 2011 20:09:03 GMT</Last-Modified> </Properties> </Container> </Containers>

ストレージ( BLOB )へのアクセス

Page 15: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

PhoneGaphttp://phonegap.com

Appceleratorhttp://appcelerator.com

Unifyhttp://unify.github.com/

unify

各種Web フレームワーク

Page 16: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

Web Role

User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET

CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; InfoPath.3; MS-RTC

LM 8)

Windows 7 / IE8.0

iPhone OS 4.3.1

UserAgent: Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148

Safari/6533.18.5

Controller

ViewCSS

ViewCSS

if (useragent contains ”MSIE”)

if (useragent contains

”iPhone”)ASP.NET MVCViewEngine

Model View Controller での切り替え

Page 17: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

iPad/iPhone OS 4.x

ネイティブアプリ

Apple Push Notification Service

gateway.sandbox.push.apple.com

アプリ登録

ユーザーの 認可

Worker Role

メッセージ送信を依頼

Windows Azure QueueWeb Role

Session Updated through Web

Update Queueメッセージ受信、アプリ起動

メッセージ詳細の要求

詳細を取得

クラウド側からのプッシ ュ通知

0 032

deviceToken 034

message

Token Length Payload LengthJSON formatted

Page 18: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

Toolkit for Facebook

http://facebooksdk.codeplex.com/documentation

Page 19: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

まとめ

Windows Azure は…

効率的に開発するために…

iOS, Android, Windows Phone に対応するなら…

さまざまなデバイスのバックエンドとして利用できるオープンでスケーラブルなクラウドサービスです。

用途に応じて提供されている Toolkit を活用してください。各種技術ドキュメントも掲載しています。

開発生産性の高い Windows Phone をプライマリにして、他プラットフォームにポーティングすることを検討ください。

Page 20: できる ! グローバル × スケーラブル × マルチデバイス 対応 のソーシャル  アプリ開発 入門

www.microsoft.com

© 2011 Microsoft Corporation.All rights reserved.このプレゼンテーションは情報提供のみを目的としています。マイクロソフトはこの内容に関して、明示的か暗黙的かを問わず、一切保証致しません。

www.microsoft.com

© 2011 Microsoft Corporation.All rights reserved.このプレゼンテーションは情報提供のみを目的としています。マイクロソフトはこの内容に関して、明示的か暗黙的かを問わず、一切保証致しません。