Download presentation
Presentation is loading. Please wait.
1
次世代型アプリケーションパターンを適用せよ ~ Windows 8 業務アプリ 設計・開発の新潮流 ~
日本マイクロソフト株式会社 デベロッパー & プラットフォーム統括本部 エバンジェリスト 佐藤 直樹 エバンジェリスト 鈴木 章太郎
2
Agenda デバイス + クラウド 時代の アーキテクトの役割 適用にあたっての検討 まとめ
3
自己紹介 佐藤 直樹 (@nksato) 日本マイクロソフト株式会社 エバンジェリスト
エバンジェリスト 業務アプリの Windows 8 (WinRT)対応推進 経歴: 2000年7月 マイクロソフトに入社。コンサルタントとしてソフトウェア開発 会社、SI会社などに対して .NET でのアーキテクチャ構築支援、開発プロ ジェクト支援などを担当。2003年よりエバンジェリストとして .NET、 Visual Studio、Windows クライアント、Windows Server、Windows Azure などマイクロソフトプラットフォーム全般の技術啓発を担当。
4
Wipse モバイル x クラウド部会長(’11 ~) 2005-2012 早稲田大学大学院非常勤講師、
テクニカルエバンジェリスト MTC アーキテクト 呟きネタは主に、Windows、Windows Azure、Windows Phone, RIA, HTML5, MVVM, iOS/Android x Windows Azure 連携, Guitar … 等 ASPIC 執行役員 (‘05 ~) Wipse モバイル x クラウド部会長(’11 ~) 早稲田大学大学院非常勤講師、 中央大学非常勤講師、 2013- 東京工業大学非常勤講師 Microsoft 軽音楽部広報担当(Guitar/Keyboard)
5
新たなアプリケーションパターン 「モダンアプリケーション」
モビリティ ソーシャル ビックデータ クラウド クライアント サービス デバイス + サーバー 従来型のパターン (Established Patterns) 次世代型のパターン (Emerging Patterns)
6
+ + モダンアプリケーションの必然性 既存の アプリケーション
“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 + + デバイス データ クラウド 既存の アプリケーション
7
モダンアプリケーションの構成要素 オープン 拡張性 柔軟性 俊敏性 信頼性 弾力性 マルチデバイス クラウド データ連携
8
アーキテクトの検討事項 配置 収益化 制約 他 マルチデバイス クラウド データ連携 制約事項、 アプリケーションアーキテクチャーの視点
商流の視点
9
マルチデバイス対応の2つのアプローチ ネイティブ Web アプリ アプリ On-Premise Windows Server Cloud
(マルチ デバイス 対応) ネイティブ アプリ (Windows Store apps, iOS apps, Android apps) クロス デバイス (PC, Phone Tablet) クロス プラットフォーム (iOS, Android) On-Premise Windows Server Cloud Windows Azure
10
技術の選択
11
Windows 8 プラットフォーム WinRT Apps Desktop Apps XAML HTML5 CSS3 HTML
JavaScript C C++ C# VB C C++ C# VB JavaScript WinRT API 通信&データ グラフィック& メディア デバイス& 印刷 アプリケーション モデル IE Win32 .NET Silverlight Windows コア OS サービス
12
WinRT API User interface Devices Graphics and media
11/22/2018 WinRT API 8.1 新規 8 8.1 更新 User interface Portable Sensors Playback Capture Printing SVG Canvas Local storage SMS Streams Background transfer Syndication Networking XML and JSON Skydrive Live tiles and toast Accessibility Data binding Application services Threading/timers Memory management Globalization Cryptography Xbox Live Bluetooth USB HID Wi-Fi direct Point of service 3D printing Scanning WebGL HTTP Contacts Appoint-ments PDF Speech synthesis Diagnostics Geo-location Proximity Direct3D Direct2D Direct Write PlayTo Contracts Bing Azure Mobile HTML5/CSS XAML Input Controls Authentication Devices Graphics and media Communications and data Services Fundamentals © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.
13
開発環境と特性の比較 Web ブラウザ デバイスネイティブアプリ [*] Windows 8 HTML/JavaScript
C#/VB+XAML C++ + XAML iOS Objective-C Android Java Windows Phone 8 C++ + XAML, D3D Phone HTML5 アプリ メリット リーチの獲得 配置が容易 高い操作性 ハードウェア機能の利用 デメリット 操作性やハードウェア利用がブラウザ機能に限定 ブラウザの互換性 アプリとOSとの対応 デバイスへのアプリの配置 HTML/JavaScript [*] タブレットアプリとしての比較のため、Windows は WinRT Apps とする [*] ネイティブアプリを構築するミドルウェアとして、Unity, PhoneGap, Titanium 等がある [*] Xamarin + Visual Studio 2013 により C# での iOS, Android などクロス開発が可能
14
3つのアプリケーションパターン リーチ獲得/容易な配置の Web アプリ コンシューマ向けのネイティブアプリ
5/29/2012 3つのアプリケーションパターン リーチ獲得/容易な配置の Web アプリ イントラ、インターネットいずれのシナリオでも、マルチデバイス対応は 検討項目 コンシューマ向けのネイティブアプリ 利用者にとって使いやすい 「ネイティブアプリ」への期待が高い タブレット業務のためのネイティブアプリ Web ブラウザ デバイスネイティブアプリ Windows 8 HTML/JavaScript C#/VB+XAML C++ + XAML iOS Objective-C Android Java Windows Phone 8 C++ + XAML, D3D Phone HTML5 アプリ HTML/JavaScript © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.
15
マルチデバイス対応のパターン モダン Web アプリケーション (Webアプリ) モダンアプリケーション (デバイスネイティブアプリ) UI
サービス(REST, JSON, etc) ネイティブ向け CSS や JavaScritp系のフレームワークで最新デバイス対応 Web、ネイティブ両方で使いまわす ネイティブの UX ハード機能の利用 プッシュ通知など OS 機能との連携
16
マイクロソフト技術へのマッピング例 ASP.NET Web API, WCF, Windows Azure Mobile Services
5/29/2012 マイクロソフト技術へのマッピング例 WinRT のランタイムを活用。不足部分を 3rd Pary コントロールや コードライブラリ(C#, VB, JavaScript)で補う ※ Web アプリ/サービスの実行環境: 開発PCやクラウドで開発/テストを進め、本番環境のクラウド or オンプレミスに展開 <HTML + JavaScript> C#/VB/C++/XAML, HTML/JavaScript (Objective C, Java) HTML/CSS JavaScript REST, JSON, etc.. Push 通知 ASP.NET MVC ASP.NET Web API, WCF, ASP.NET SignalR Windows Azure Mobile Services Web の UI と Web の API での標準化を .NET Framework に含まれる Web 関連の技術 ASP.NET で進め、 不足部分を 3rd Party コントロールや JavaScript で補う ネイティブアプリでの認証やプッシュ通知などクロスデバイス対応のため、管理/プログラミングモデルを共通化できるバックエンドサービス(BaaS) Windows Azure Mobile Services で補う © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, 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.
17
おさらい - RESTful な Web サービス
一般消費者向けインターネット サービスで主流 ステートレスなプロトコル (HTTP 等) と既定の命令体系 (GET/POST/PUT/DELETE) の活用 リソースを一意に識別する URI (例: HTTP GET/POST/PUT/DELETE JSON / ATOM {“Name” : “Shotaro Suzuki”, “ ” : “shosuz” }
18
ASP.NET Web API RESTful サービス構築のためのフレームワーク
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)
19
ASP.NET SignalR リアルタイム/非同期/双方向通信ライブラリ クライアント - サーバー間の永続的コネクション
トランスポートの自動ネゴシエーション WebSocket, Server-Sent Events, Forever Frames, Long Polling サーバーからクライアントへのプッシュや RPC 通信 1 サーバーあたり数千の接続を非同期で処理 SignalR v2 iOS / Android サポート (MonoTouch / MonoDroid (Xamarin) ポータブル .NET クライアント
20
特性の比較 (サービス) サービス 特長 備考 ASP.NET Web API RESTful サービス構築のためのフレームワーク
XML/JSON Entity Framework 連携 新規・既存データベース連携 OData 対応 WCF Data Services REST/SOAP サービスフレームワーク 既存データベース連携 ASP.NET SignalR リアルタイム/非同期/双方向通信ライブラリ 単一ページ構成のクライアント中心実装 優れた Web UX とマルチデバイス対応 Windows Communication Foundation (WCF) REST/SOAP サービス フレームワーク 高機能サービスフレームワーク WS-* 規格ほぼすべてに対応 ASP.NET Web サービス ASMX サービス フレームワーク 互換性
21
特性の比較 (データ) データ 特性 備考 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 ビジネスアプリケーション その他・・・
22
特性の比較 実行環境 特性 備考 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 クラウドサービス 大規模 スケーラブル Web ロール Worker ロール
23
マルチデバイス対応の2つのアプローチ ネイティブ Web アプリ アプリ On-Premise Windows Server Cloud
(マルチ デバイス 対応) ネイティブ アプリ (Windows Store apps, iOS apps, Android apps) クロス デバイス (PC, Phone Tablet) クロス プラットフォーム (iOS, Android) On-Premise Windows Server Cloud Windows Azure
24
次世代型パターンの展開環境 デバイスとモバイル アプリケーション サービス データ、統合管理 ソーシャル
Web APIs (REST, OData) データ、統合管理 ソーシャル N 層 サービス指向 Web パブリック クラウド インフラストラクチャ IaaS PaaS Data マイクロソフト アカウント
25
検討範囲の広がり 配置 収益化 制約 他 配置/配布方式 収益化 制約事項
マーケットプレース経由 (Windows ストア、App Store, Google Play 等) インストールプログラム、デバイスマネージメントツール デバイスへのプレインストール 収益化 従来型のパッケージ販売、SI導入 マーケットプレースの課金システム利用 制約事項 機能利用における開発者アカウントとの関連性や制約
26
収益化の全体像 形態 課金単位 課金方式 ライセンス販売 容量 売り切り フリーミアム トランザクション サブスクリプション 仮想アイテム
Per ユーザー 広告 Per デバイス レベニューシェア
27
配布方法と収益化が一体化 配布方法 収益化 内容 マーケットプレイス 無償 ・サービス等のプロモーション、デモ ・広告で一部コスト回収
無償->有償 (独自課金) ・アプリの配布をマーケットプレイスで行い、ボリュームライセンス/サブスクリプション契約等は自社で課金 ・アプリにログインID等の認証を持ち、ユーザライセンス or デバイスライセンス等を独自にコントロール 無償->有償 (マーケットプレース課金) ・アプリの配布をマーケットプレースで行い、アイテム等でアプリ内課金APIにて販売 ・マーケットプレースのラインセンスモデル(ユーザーのデバイス制限など)に準ずる インストール型 ・サービス等のプロモーション、機能限定版 有償 (独自課金) ・コンテンツ単位の販売/ボリュームライセンス/サブスクリプション契約等は自社で課金
28
新たな前提条件や制約事項 アプリケーションとマーケットプレースとの結びつき プッシュ通知で利用する証明書やアプケーションID
デバイスへのプレインストールアプリの更新配布チャネルとしてマー ケットプレースが利用 開発者アカウントは年次など一定期間で更新 など (Windows ストアアプリでの例) Windows プッシュ通知サービス (WNS) によるプッシュ通知または Live Connect サービスを利用するには、アプリのマニフェストで適切な ID 値を定義する必要があります。これらの値は、アプリ名を予約したときに Windows ストアによって作成されています。…
29
本日の振り返り マルチデバイス クラウド 配置 収益化 制約 他 データ連携 アプリケーションアーキテクチャーの視点 制約事項、 商流の視点
30
まとめ ~アーキテクトの検討事項 アプリケーションのアーキテクチャ 「モダンアプリケーション」 配布 収益化、ビジネスモデル 制約事項など
マルチデバイス対応 データ連携 クラウドサービス前提 配布 マーケットプレースとしての Windows ストア インストールプログラム、デバイスマネージメントツール デバイスへのプレインストール 収益化、ビジネスモデル 従来型の販売、SI導入 マーケットプレースの課金システムの利用 制約事項など 機能利用における開発者アカウントとの関連性や制約
31
© 2013 Microsoft Corporation. All rights reserved
© 2013 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. このプレゼンテーションは、情報提供のみを目的としています。 Microsoft は、この概要について、明示または暗示を問わず、いかなる保証も行いません。
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.