次世代型アプリケーション パターンを適用せよ ~ Windows 8 業務アプリ 設計・開発の新潮流 ~ 日本マイクロソフト株式会社 デベロッパー & プラットフォーム統括本部 エバンジェリスト 佐藤 直樹 エバンジェリスト 鈴木 章太郎 Agenda • デバイス + クラウド 時代の アーキテクトの役割 • 適用にあたっての検討 • まとめ 自己紹介 • 佐藤 直樹 (@nksato) • 日本マイクロソフト株式会社 エバンジェリスト • 業務アプリの Windows 8 (WinRT)対応推進 • 経歴: • 2000年7月 マイクロソフトに入社。コンサルタントとしてソフトウェア開発 会社、SI会社などに対して .NET でのアーキテクチャ構築支援、開発プロ ジェクト支援などを担当。2003年よりエバンジェリストとして .NET、 Visual Studio、Windows クライアント、Windows Server、Windows Azure などマイクロソフトプラットフォーム全般の技術啓発を担当。 テクニカルエバンジェリスト http://blogs.msdn.com/b/shosuz MTC アーキテクト http://www.microsoft.com/ja-jp/business/mtc/ads.aspx 呟きネタは主に、Windows、Windows Azure、 Windows Phone, RIA, HTML5, MVVM, iOS/Android x Windows Azure 連携, Guitar … 等 ASPIC 執行役員 (‘05 ~) Wipse モバイル x クラウド部会長(’11 ~) 2005-2012 早稲田大学大学院非常勤講師、 2008-2010 中央大学非常勤講師、 2013- 東京工業大学非常勤講師 Microsoft 軽音楽部広報担当(Guitar/Keyboard) 新たなアプリケーションパターン 「モダンアプリケーション」 モビリティ + クライアント デバイス ソーシャル + サーバー ビックデータ サービス 従来型のパターン 次世代型のパターン (Established Patterns) (Emerging Patterns) クラウド モダンアプリケーションの必然性 “By 2016, more than 50% of application modernization efforts will address business demand for enhanced functionality to legacy applications, not cost reduction.” + + 既存の アプリケーション GARTNER ALLIE YOUNG, PATRICK SULLIVAN RESEARCH VP デバイス データ クラウド モダンアプリケーションの構成要素 マルチデバイス クラウド オープン 拡張性 柔軟性 データ連携 俊敏性 信頼性 弾力性 アーキテクトの検討事項 マルチデバイス クラウド データ連携 アプリケーションアーキテクチャーの視点 配置 収益化 制約 他 制約事項、 商流の視点 マルチデバイス対応の2つのアプローチ ネイティブ アプリ ネイティブ アプリ (Windows Store apps, iOS apps, Android apps) Web アプリ (マルチ デバイス 対応) クロス デバイス (PC, Phone Tablet) クロス プラットフォーム (iOS, Android) 技術の選択 Windows 8 プラットフォーム JavaScript 8 8.1 更新 8.1 新規 User interface Accessibility Data binding Devices Live tiles and toast Input Controls Graphics and media HTML5/CSS XAML Communications and data Speech synthesis Services Portable Geolocation Point of service Direct3D Direct2D Direct Write Local storage SMS HTTP Skydrive Sensors Proximity USB Playback Capture PlayTo Streams Background transfer Contacts Bing HID Wi-Fi direct Bluetooth Canvas SVG WebGL Syndication Networking Appointments Azure Mobile Printing 3D printing Scanning XML and JSON Contracts PDF Xbox Live Fundamentals Application services Threading/timers Memory management Globalization Cryptography Authentication Diagnostics 開発環境と特性の比較 Web ブラウザ デバイスネイティブアプリ [*] Windows 8 • • • HTML/JavaScript C#/VB+XAML C++ + XAML iOS • Objective-C • Java • • • C#/VB+XAML C++ + XAML, D3D Phone HTML5 アプリ HTML/JavaScript Android Windows Phone 8 メリット • • リーチの獲得 配置が容易 • • 高い操作性 ハードウェア機能の利用 デメリット • 操作性やハードウェア利用がブ ラウザ機能に限定 ブラウザの互換性 • • アプリとOSとの対応 デバイスへのアプリの配置 • [*] タブレットアプリとしての比較のため、Windows は WinRT Apps とする [*] ネイティブアプリを構築するミドルウェアとして、Unity, PhoneGap, Titanium 等がある [*] Xamarin + Visual Studio 2013 により C# での iOS, Android などクロス開発が可能 3つのアプリケーションパターン リーチ獲得/容易な配置の Web アプリ コンシューマ向けのネイティブアプリ タブレット業務のためのネイティブアプリ Web ブラウザ デバイスネイティブアプリ Windows 8 • • • HTML/JavaScript C#/VB+XAML C++ + XAML iOS • Objective-C Android • Java Windows Phone 8 • • • C#/VB+XAML C++ + XAML, D3D Phone HTML5 アプリ HTML/JavaScript マルチデバイス対応のパターン マイクロソフト技術へのマッピング例 おさらい - RESTful な Web サービス • 一般消費者向けインターネット サービスで主流 • ステートレスなプロトコル (HTTP 等) と既定の命令体系 (GET/POST/PUT/DELETE) の活用 • リソースを一意に識別する URI (例: http://example.com/api/employee/12345/) ASP.NET Web API • Get (), Put () メソッド等に該当の処理を 記述 • 復帰値は JSON、XML (ATOM) 等を選択 可能 • OData にも対応 (例: “$top=5”, “$orderby=name”) • Web API v2 • 属性ルーティングのサポート 例: [HttpPost("{id}/approve")] • OData の拡張 • $select, $expand, $batch, $value のサポート public class ValuesController : ApiController { public IEnumerable<string> Get() { return new string[] { "value1", "value2" }; } public string Get(int id) { return “value”; // api/value/5 } public void Post ([FromBody] string value) { } ASP.NET SignalR • クライアント - サーバー間の永続的コネクション • トランスポートの自動ネゴシエーション • WebSocket, Server-Sent Events, Forever Frames, Long Polling • サーバーからクライアントへのプッシュや RPC 通信 • 1 サーバーあたり数千の接続を非同期で処理 • SignalR v2 • iOS / Android サポート (MonoTouch / MonoDroid (Xamarin) • ポータブル .NET クライアント 特性の比較 (サービス) サービス 特長 備考 ASP.NET Web API • RESTful サービス構築の ためのフレームワーク • XML/JSON WCF Data Services • REST/SOAP サービスフ レームワーク • XML/JSON • Entity Framework 連携 • 既存データベース連携 ASP.NET SignalR • リアルタイム/非同期/ 双方向通信ライブラリ • 単一ページ構成のクライアント中心 実装 • 優れた Web UX とマルチデバイス 対応 Windows Communication Foundation (WCF) • REST/SOAP サービス フレームワーク • 高機能サービスフレームワーク • WS-* 規格ほぼすべてに対応 ASP.NET Web サービス • ASMX サービス フレームワーク • 互換性 特性の比較 (データ) データ 特性 備考 SQL Server • リレーショナルデータベース • 各種エディションあり • Windows 認証、基本認証 SQL Database • Windows Azure 上の リレーショナルデータベース • スケーラブル • 基本認証のみ Windows Azure Table • Windows Azure 上の キーバリューストレージ • フラットな非リレーショナル テーブル • キーで認証、その他方法あり Windows Azure Blob Storage • Windows Azure 上の キーバリューストレージ • 巨大なバイナリを保管する • キーで認証、その他方法あり SharePoint/Online • 文書管理システム • REST エンドポイント公開 • Windows 認証 • 基本認証 Dynamics CRM/Online • ビジネスアプリケーション • REST エンドポイント公開 • Windows 認証 • 基本認証 その他・・・ 特性の比較 実行環境 特性 備考 Windows Server • オンプレミス型の汎用ア • IIS、MSMQ、トランザクショ プリケーションサーバー ンマネージャ等のアプリ基盤 • Windows Azure Services for Windows Server で Windows Azure Web サイト機能実現 Windows Azure Web サイト • PaaS • データベース連携 • インスタント立ち上げ Windows Azure 仮想マシン • IaaS • Windows / Linux • Oracle 等 各種ミドル Windows Azure Mobile Services • BaaS • データベース連携 • 認証 • プッシュ通知 Windows Azure クラウドサービス • PaaS • • • • 大規模 スケーラブル Web ロール Worker ロール マルチデバイス対応の2つのアプローチ ネイティブ アプリ ネイティブ アプリ (Windows Store apps, iOS apps, Android apps) Web アプリ (マルチ デバイス 対応) クロス デバイス (PC, Phone Tablet) クロス プラットフォーム (iOS, Android) 次世代型パターンの展開環境 マイクロソフト アカウント デバイスとモバイル アプリケーション パブリック クラウド インフラストラクチャ ソーシャル 検討範囲の広がり 配置/配布方式 • • • 配置 収益化 制約 他 マーケットプレース経由 (Windows ストア、App Store, Google Play 等) インストールプログラム、デバイスマネージメントツール デバイスへのプレインストール 収益化 • • 従来型のパッケージ販売、SI導入 マーケットプレースの課金システム利用 制約事項 • 機能利用における開発者アカウントとの関連性や制約 収益化の全体像 形態 課金単位 課金方式 ライセンス販売 容量 売り切り フリーミアム トランザクション サブスクリプション 仮想アイテム Per ユーザー 広告 Per デバイス レベニューシェア 配布方法と収益化が一体化 配布方法 収益化 内容 マーケットプレイス 無償 ・サービス等のプロモーション、デモ ・広告で一部コスト回収 無償->有償 (独自課金) ・アプリの配布をマーケットプレイスで行い、ボ リュームライセンス/サブスクリプション契約等は自社 で課金 ・アプリにログインID等の認証を持ち、ユーザライセ ンス or デバイスライセンス等を独自にコントロール 無償->有償 (マーケット プレース課金) ・アプリの配布をマーケットプレースで行い、アイテ ム等でアプリ内課金APIにて販売 ・マーケットプレースのラインセンスモデル(ユー ザーのデバイス制限など)に準ずる 無償 ・サービス等のプロモーション、機能限定版 有償 (独自課金) ・コンテンツ単位の販売/ボリュームライセンス/サブ スクリプション契約等は自社で課金 ・アプリにログインID等の認証を持ち、ユーザライセ ンス or デバイスライセンス等を独自にコントロール インストール型 新たな前提条件や制約事項 • アプリケーションとマーケットプレースとの結びつき • プッシュ通知で利用する証明書やアプケーションID • マーケットプレースを経由しないインストールでのアプリケーション IDやラインセンス許諾 • デバイスへのプレインストールアプリの更新配布チャネルとしてマー ケットプレースが利用 • 開発者アカウントは年次など一定期間で更新 など (Windows ストアアプリでの例) Windows プッシュ通知サービス (WNS) によるプッシュ通知または Live Connect サービスを利用するには、アプリのマニフェストで適切な ID 値を定義する必要があります。これらの値は、アプリ名を予約した ときに Windows ストアによって作成されています。… 本日の振り返り マルチデバイス クラウド データ連携 アプリケーションアーキテクチャーの視点 配置 収益化 制約 他 制約事項、 商流の視点 まとめ ~アーキテクトの検討事項 • アプリケーションのアーキテクチャ 「モダンアプリケーション」 • マルチデバイス対応 • データ連携 • クラウドサービス前提 • 配布 • マーケットプレースとしての Windows ストア • インストールプログラム、デバイスマネージメントツール • デバイスへのプレインストール • 収益化、ビジネスモデル • 従来型の販売、SI導入 • マーケットプレースの課金システムの利用 • 制約事項など • 機能利用における開発者アカウントとの関連性や制約 © 2013 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. このプレゼンテーションは、情報提供のみを目的としています。 Microsoft は、この概要について、明示または暗示を問わず、いかなる保証も行いません。
© Copyright 2024 ExpyDoc