IBM Bluemix オンラインセミナー Bluemix いつでも Webinar シリーズ第 27 回 Bluemix モバイルアップデート 日本アイ ビー エムシステムズ エンジニアリング株式会社 モバイル ソリューション 青木悟大
本日のご説明内容 はじめに Bluemix のモバイルへの offering MobileFirst Services MobileFirst Platform Foundation on IBM Containers(MFPF on IBM Containers) 2
モバイルの動向 デバイス 2020 年で世界のスマホ出荷は頭打ち 矢野経調査 (2015/6/23) http://k-tai.impress.co.jp/docs/news/20150623_708350.html タブレット端末 今年度にノート PC と出荷台数が逆転へ (2015/6/22) http://www.rbbtoday.com/article/2015/06/22/132490.html ビジネス規模 Amazon のホリデーシーズンの売上 60% がモバイル端末経由 (2014/12/27) http://iphone-mania.jp/news-57095/ 2014 年の米国オンライン広告売上高 モバイル広告が初めてバナー広告を上回る http://japan.cnet.com/marketers/news/35063762/ モバイル インターネットのビジネス規模は 2018 年には 3 倍に http://jp.techcrunch.com/2015/05/28/20150525mobile-internet-to-be-worth-more-than-apple-by-2018/ 3
モバイルの開発は短期開発が求められる モバイルへの投資は本社部門 事業部門が主導 本社部門や事業部門主導が IT 部門主導を上回る 短期的かつ定量的に評価できる成果を求められやすい UX はあっというまに減衰する 4
PaaS や mbaas の活用がポイント Paas(Platform as a Service) の活用 必要なときに必要なミドルウェアを使用できる迅速さ アプリケーションロジックを自由にカスタマイズできる柔軟さ -> 特にネイティブ モバイルアプリに特化して SDK/API を提供しているものは mbaas(mobile Backend as a Service) と呼ばれる Traditional On-Premises Infrastructure as a Service Platform as a Service Software as a Service Applications Applications Applications Applications Data Data Data Data Runtime Runtime Runtime Runtime Middleware Middleware Middleware Middleware O/S O/S O/S O/S Virtualization Virtualization Virtualization Virtualization Servers Servers Servers Servers Storage Storage Storage Storage 5 Networking Networking Networking Networking
mbaas とは ネイティブモバイル アプリが必要とする汎用的な機能を提供するクラウド サービスの一種 アプリケーション開発者は SDK をアプリに組み込み これらの機能の API を呼び出すことで アプリケーションの一部として取り込むことができる クライアントサイド オフライン同期 認証 サーバーサイド データストア 操作ログ収集 クラッシュログ収集 プッシュ通知 ランタイム 管理コンソール モニタリング 6 mbaas で提供される機能の例
本日のご説明内容 はじめに Bluemix のモバイルへの offering MobileFirst Services MobileFirst Platform Foundation on IBM Containers(MFPF on IBM Containers) 7
Bluemix のモバイルへのオファリング 1 8
Bluemix のモバイルへのオファリング 2 Mobile Backend モバイルアプリに必要となるサーバーサイドの機能を提供 = + + + Life cycle モバイルアプリ開発のライフサイクルを支援 MobileFirst Services Contextual Mobile Quality Assurance Appscan Mobile Analyzer モバイルアプリにインドアロケーションや画像認識 自然言語による対話の機能を提供 9 Presence Insights Visual Recognition Dialog
本日ご説明するサービス Mobile Backend モバイルアプリに必要となるサーバーサイドの機能を提供 当セッションの対象 = + + + Life cycle モバイルアプリ開発のライフサイクルを支援 Webinar 第 2 期第 1 回参照 AppScan は ios/android 両方に対応し Android 版は GA Contextual Mobile Quality Assurance MobileFirst Services Appscan Mobile Analyzer モバイルアプリにインドアロケーションや画像認識 自然言語による対話の機能を提供 Webinar 第 23 回参照 10 Presence Insights Visual Recognition Dialog
本日のご説明内容 はじめに Bluemix のモバイルへの offering MobileFirst Services 1. 概要 2. MobileFirst Service を使ったアプリデモ 3. 各サービスの詳細 4. MobileFirst Services のデプロイデモ 5. MobileFirst Service まとめ MobileFirst Platform Foundation on IBM Containers(MFPF on IBM Containers) 11
本日のご説明内容 はじめに Bluemix のモバイルへの offering MobileFirst Services 1. 概要 2. MobileFirst Service を使ったアプリデモ 3. 各サービスの詳細 4. MobileFirst Services のデプロイデモ 5. MobileFirst Service まとめ MobileFirst Platform Foundation on IBM Containers(MFPF on IBM Containers) 12
参考. ネイティブモバイルアプリのアーキテクチャー ベンダーのプッシュ サービス (Apple APNS, Google GCM) Internet Push 通知用サーバー アプリサーバー データベース モバイル デバイス ネイティブ アプリ 13
MobileFirst Services のアーキテクチャー ベンダーのプッシュ サービス (Apple APNS, Google GCM) Bluemix MobileFirst Services Internet プッシュ通知 モバイル デバイス ネイティブ アプリ MobileFirst Services SDK アプリサーバー (+ 認証 ) データベース 14
MobileFirst Services 概要 MobileFirst Services Starter ボイラープレート 以下 4 つのセット ios/android のネイティブアプリにバックエンドで必要となる基本機能を提供 Node.js Web アプリケーション実行環境 ( ランタイム ) Cloudant NoSQL DB Mobile Client Access IBM Push Notifications NoSQL データベースのクラウドサービス モバイルアプリに認証とモニタリングを提供するサービス プッシュ通知を提供するサービス 15
MobileFirst Services を使ったサンプルアプリ 順番予約アプリ デモ Github:https://github.com/GodaiAoki/webinar_waitlist_sample 16
デモアプリのアーキテクチャー ベンダーのプッシュ サービス (Apple APNS, Google GCM) Bluemix Internet プッシュ通知 モバイル デバイス ネイティブ アプリ 予約者情報 受付画面 Webアプリを保管 ネイティブアプリ用のサービス 17 電話呼び出しは 3rd party の Twilio で行っています Twilio の詳細は Webinar 第 2 期第 1 回参照 電話呼び出し
本日のご説明内容 はじめに Bluemix のモバイルへの offering MobileFirst Services 1. 概要 2. MobileFirst Service を使ったアプリデモ 3. 各サービスの詳細 4. MobileFirst Services のデプロイデモ 5. MobileFirst Service まとめ MobileFirst Platform Foundation on IBM Containers(MFPF on IBM Containers) 18
Mobile Client Access サービス アクセス制御と分析 ユーザー認証 認証方法 ( 認証なし または以下のいずれか 1 種類の認証を選択 ) SNS を利用した認証 Facebook/Google アカウントとの OAuth 認証 カスタム認証 ( 次項 ) 19 独自に開発する Custom Identity Provider を利用した認証 デフォルトは ユーザー認証なし TouchID と組み合わせた認証ポリシーが設定可能 (ios) 初回認証で取得したアクセストークンを保持し セッションごとに指紋認証で認証 アクセストークンは保持せず セッションごとに毎回認証 初回認証でアクセストークンを保持し 以降認証は行わない ランタイムとの統合 Node.js 用の SDK を提供 /Liberty とも TAI を利用して認証の統合が可能 モニタリング ( 操作分析含む ) 認証回数 新規ユーザー数 / アクティブ デバイス数 デバイス ログ収集 ( 操作ログ / クラッシュログ ) ネットワークのレスポンス
参考. カスタム認証 モバイル アプリ 1 ログオン要求 Mobile Client Access 2startAuthentication リクエスト <base_path>/apps/<tenant_id>/<realm_ name>/startauthentication Custom Identity Provider( アプリ ) 認証に必要な情報を要求 (Challenge) 4Challenge 3Challenge 以降 Authorization Hedar にアクセストークンをつけてリクエスト 5Challenge Answer 8Success レスポンス with User Identity オブジェクト 6handleChallengeAnswer リクエスト with Challenge Answer <base_path>/apps/<tenant_id>/<realm_ name>/handlechallengeanswer 7Success レスポンス with User Identity オブジェクト ユーザーリポジトリを参照し認証の成功 失敗を判断 ここで別の Challenge を投げると 多要素認証 20
モニタリング - デバイス ログ - ログの検索 表示 Fatal/Error は優先的に表示 ログのダウンロードも可 (json 形式 ) 21 23
モニタリング - ネットワーク - ランタイムに対するリクエストのパス別に応答時間を表示 22 24
Cloudant NoSQL DB サービス データストア No SQL データベース JSON(JavaScript Object Notation) 形式でデータを保存 RESTful API でデータの CRUD や照会 JSON 文書へのアタッチメントとしてバイナリファイルも保存可能 地理空間機能 ( ジオフェンシングなどの機能を実装可能 ) など 詳細は Webinar 第 18 回 Cloudant & DashDB 参照 Cloudant Mobile Extensions Mobile Client Access と統合され セキュアに ios ネイティブ API 経由でデータの CRUD や照会が可能な SDK を提供 ローカルに NoSQLDB を作成し オフライン時も利用可能 オンライン時に Cloudant とデータ同期 オフラインの No SQLDB の暗号化も可能 参考. サンプルアプリ Bluelist Instructions for the Bluelist sample for ios Instructions for the Bluelist sample for Android 23 25
参考.MobileFirst Cloudant extensions のライブラリ CloudantSync (ios/android) Cloudant が開発したオープンソースのモバイル用 SDK 1 ユーザーあたり 1 つの DB を使えるようにすることでモバイル開発を単純化 Cloudant Sync ドキュメント https://cloudant.com/product/cloudant-features/sync/ CloudantToolkit (ios/android) MobileFirst Servies/MFPF で利用される SDK CloudantSync に依存 CloudantSync より下記の点を拡張 ネイティブオブジェクトのようにデータを扱える リモートデータストアを容易に扱える IMFData(iOS のみ ) MobileFirst Servies/MFPF で利用される SDK CloudantSync/Cloudant Toolkit に依存 セキュリティーを付与 詳細は Bluemix Docs Cloudant mobile extension 参照 24
Push Notifications サービス プッシュ通知 柔軟な通知先 一斉送信 登録した ID( ユーザー / デバイスごと ) 特定のタグを購読するグループ GUI( ダッシュボード ) SDK または REST API 経由で送信 IMF Push Service REST API Documentation ドキュメントがテスターになっており直接動作確認可能 モニタリング プッシュ通知の送信数 プッシュ通知開かれた数 アプリのオープン回数 デバイスの登録数 備考 前提となるサービスはなく Push Notifications 単独で使用することも可能 アプリ ( ランタイム ) とのバインドは必須 REST API はサービス作成時に生成される App Secret で保護 25 26
モニタリング 26 27
本日のご説明内容 はじめに Bluemix のモバイルへの offering MobileFirst Services 1. 概要 2. MobileFirst Service を使ったアプリデモ 3. 各サービスの詳細 4. MobileFirst Services のデプロイデモ 5. MobileFirst Service まとめ MobileFirst Platform Foundation on IBM Containers(MFPF on IBM Containers) 27
MobileFirst Services のデプロイ手順 デモ 1. MobileFirset Services Starter ボイラープレートの作成 2. HelloWorld アプリのダウンロード 3. MobileOption の確認 (GUID/Route) 4. HelloWorld の初期化コードに GUID Route 設定 アクセス 5. HelloWorld アプリのカスタマイズ 28
本日のご説明内容 はじめに Bluemix のモバイルへの offering MobileFirst Services 1. 概要 2. MobileFirst Service を使ったアプリデモ 3. 各サービスの詳細 4. MobileFirst Services のデプロイデモ 5. MobileFirst Service まとめ MobileFirst Platform Foundation on IBM Containers(MFPF on IBM Containers) 29
MobileFirst Services でできることの例 チャット Socket.io ファイル同期 認証 同期 同期 位置情報に基づきクーポン発行 クーポン送付 位置情報送信 店舗確認 30 29
参考.Mobile Cloud との違い Mobile Cloud Bluemix のもう一つの MobileBackend 詳細は Webinar 第 2 期第 1 回参照 参照 以下の理由から MobileFirst Services の利用を推奨 MobileFirst Service は ios8 以降に対応 Mobile Cloud は ios8 以降の新機能に対応せず MobileFirst Service の方が認証が柔軟 セキュア Mobile Cloud は Google または MFPF を利用した認証 Mobile Cloud は認証に固定の秘密鍵を利用 31
参考.MobileFirst Services と MFPF の互換性 MobileFirst Service は MFPF と互換性が意識されている MFPF v7.1 Knowledge Center Bluemix で作成した ios アプリケーションの IBM MobileFirst Platform Foundation へのマイグレーション https://www- 01.ibm.com/support/knowledgecenter/#!/SSHS8R_7.1.0/com.ibm.worklight.migratebm.doc/migra te_bm_app/c_migrate_bm_app_overview.html 32
本日のご説明内容 はじめに Bluemix のモバイルへの offering MobileFirst Services MobileFirst Platform Foundation on IBM Containers(MFPF on IBM Containers) 33
MFPF on IBM Containers 概要 IBM MobileFirst Platform Foundation ( 旧称 : IBM Worklight) ネイティブ アプリ ハイブリッド アプリ モバイル Web アプリの開発 テスト 実行 管理が行えるオープンかつ包括的な機能を持つプラットフォーム IBM Containers Dockerベースのコンテナー サービス オンプレミス環境や他のクラウドサービスとの可搬性に優れている 詳細はBluemix Docsの IBM Containers for Bluemix 参照 MFPF on IBM Containers IBM MobileFirst Platform Foundation v7.1 から IBM Containers 上での実行が可能に 2015/12/1 現在提供されているのは評価版のみ 34
MFPF on IBM Containers の 2 種類の Docker イメージ 用途 内容 Getting Started Image デモおよび評価を行うための Docker イメージで Bluemix 上でそのままコンテナを作成 実行することを想定 1 つのイメージ共通サービス ランタイム 管理 データ コンソール アナリティクスの各機能とサンプルアプリケーションを含む Evaluation on Containers 評価用の Docker イメージで カスタマイズしてコンテナを作成することを想定 テスト利用期間は 90 日間 2 つのイメージ 1) ランタイム 管理 データ コンソールの機能を提供 2) アナリティクスの機能を提供 入手場所 Bluemix 内のレポジトリ developerworks カスタマイズ デプロイ サンプルアプリ サンプルデータが利用可能 カスタマイズ不可 Bluemix カタログの ibmmobilefirst-starter イメージからすぐに作成可能 カスタマイズおよび拡張可能 MFPF のドキュメント手順にのっとり 各種シェルスクリプトを実行して作成 Evaluation on Containers ダウンロードイメージの Software License Agreement より (2015/12/1 時点 ) 35
まとめ 36
まとめ モバイルアプリ開発では短期開発開発が求められる mbaas の活用が重要 Bluemix の MobileFirst Service は mbaas として様々な機能を備える ユーザー認証 プッシュ通知 オフライン同期可能な DB ログ収集 モニタリング etc MFPF との互換性が意識されており Poc/ パイロットでは MobileFirst Service 本番稼動では MFPF というような展開が可 MFPF on IBM Container により Bluemix 上でも MFPF が利用可能に 37
Evaluation on Containers 参考資料 38
参考.Evaluation on Containers イメージのパッケージ 1 製品コンポーネントを含む 2 つのイメージ mfpf-server と mfpf-analytics を提供します 実行する環境に合わせて設定をカスタマイズし コンテナをビルドします ビルドしたコンテナは Bluemix 上の Containers のレポジトリーにイメージが登録され 実行できるようになります イメージの構成 ビルド実行時に使用されるライブラリと依存関係にあるファイルを提供 MFPF Operational Analytics イメージ用のファイル群 MFP Server イメージ用のファイル群 39
参考.Evaluation on Containers イメージのパッケージ 2 イメージの構成 mfpf-server(mfpf-analytics) の構成 サーバー環境構築時に必要となる設定ファイルが含まれる イメージのビルドに必要なスクリプト群が含まれる 実行用のシェル スクリプト 設定値のプロパティファイルが 含まれ 主にこれらのファイル に設定を行う 40
Evaluation on Containers 導入環境前提 Cloud Foundry CLI の導入 MobileFirst Platform Command Line Interface v7.1 導入 Docker の導入 ICE (IBM Containers Extention) の導入 Java SE 7 以降 41
Evaluation on Containers 導入手順概要 1. Bluemix に CLI 経由でログイン 設定項目 : ユーザー ID/ パスワード / 組織 / スペース 2. MFPF サーバーが利用する DB プロジェクトで利用する DB の作成 $./initenv.sh args/initenv.properties 設定項目 : 使用する DB サービス (sqldb/cloudant)/ 利用プラン /DB サービス名 / アプリ名 プロジェクト名を未指定の場合 wladmin 作成 指定するとプロジェクト用 DB 作成 $./prepareserverdbs.sh args/prepareserverdbs.properties 3. MFPF サーバーのビルド Docker イメージ作成 Bluemix へプッシュ 設定項目 : イメージ名 / プロジェクトフォルダのパス $./prepareserver.sh args/prepareserver.properties 4. IPのリクエスト $ ice ip request 5. プッシュしたイメージからコンテナ作成 設定項目 : 使用するイメージ名 / コンテナ名 /IP アドレス / メモリーサイズ /HTTPS/SSH/ ボリューム / ログ /MFPF プロパティ $./startserver.sh args/startserver.properties 42 データベースに Cloudant を利用している場合 Cloudant のスキーマを作成