IBM Bluemix
www.bluemix.net
IBM Bluemix
そこが知りたい!
テクニカル・セミナー
日本アイ・ビー・エム株式会社
SWG WebSphere事業部 中島 由貴
SWG WebSphere事業部 佐々木 志門
日本アイ・ビー・エム
システムズ・エンジニアリング株式会社
ソーシャル&モバイル 青木 悟大
デモで理解する!
IBM Bluemixモバイル・サービス
© 2014 IBM Corporation
2
IBM Bluemix
www.bluemix.net
ご注意
この資料は日本アイ・ビー・エム株式会社および日本アイ・ビー・エム システムズ・エンジニアリング株
式会社の正式なレビューを受けておりません。
資料の内容には正確を期するよう注意しておりますが、この資料の内容は2014年09月現在の情報であり、
製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。
当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤
またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受
けたいかなる被害に関しても⼀切の補償をするものではありません。
また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business
Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標
である場合があります。現時点でのIBMの商標リストについては
http://www.ibm.com/legal/copytrade.shtmlをご覧ください。
© 2014 IBM Corporation
3
IBM Bluemix
www.bluemix.net
アジェンダ
モバイル関連サービス概要
API呼び出しのモバイル・サービス
demo.1 : モバイル・サービスを使⽤したモバイル・アプリ
API呼び出しのモバイル・サービスの実装
その他のモバイル・サービス
demo.2 : Mobile Quality Assuranceモバイル・サービス
FAQ
まとめ
© 2014 IBM Corporation
4
IBM Bluemix
www.bluemix.net
モバイル関連サービス概要
© 2014 IBM Corporation
5
IBM Bluemix
www.bluemix.net
モバイル・サービス 概要
カテゴリー アイコン 名称
提供
形態
説明 種類
Boiler-
plates
Mobile
Cloud
IBM
Android、iOS、JavaScript向けのSDKを提供。
[SDK for Node.js] + [Mobile Application Security] +
[Mobile Data] + [Push] で構成されるテンプレート。
-
Run-
times
SDK for
Node.js
IBM [Mobile Cloud]ボイラー・プレートに含まれるRuntime。 MBaaS
Mobile
Mobile
Application
Security
IBM
Bluemix モバイル・サービスのアクセス制御を集中管理。
[Push]、[Mobile Data]サービス利用における前提。
MBaaS
Mobile Data IBM
クラウド上のデータ・ストア(オブジェクト形式)を提供。
クライアント・アプリからは、プラットフォームごとにネイティブなオブジェクトを操
作可能(SDK提供)。
データストアの管理や実装は隠蔽。
MBaaS
Mobile
Quality
Assurance
IBM
モバイル・アプリのクラッシュ・ログやユーザー・フィード
バックなどのアプリの品質指標の管理を提供。 Other
Push IBM
複数のモバイル・プラットフォームに対して、プッシュ通知
サービスを提供。 MBaaS
Twilio 3rd
Party
モバイル・アプリと電話(音声)やSMSを連携させるサービスを
提供。 MBaaS
Security
AppScan
Mobile
Analyzer
IBM
Beta
Androidモバイル・アプリのソースコードをスキャンし、セ
キュリティーの問題をレポート。 Other
© 2014 IBM Corporation
6
IBM Bluemix
www.bluemix.net
Bluemixのモバイル・サービスとは
MBaaS (Mobile Backend as a Service)
モバイル・アプリが必要とするサーバー側の様々な機能をインター
ネットを通じてサービスとして提供するクラウド・サービスの⼀種
提供される機能の例
ユーザー認証
データ保管
プッシュ通知
アプリケーション開発者はこれらの機能のAPIを呼び出すことで、
アプリケーションの⼀部として取り込むことができる
© 2014 IBM Corporation
7
IBM Bluemix
www.bluemix.net
Bluemixモバイル・サービス (MBaaS)の特徴
サービスはクラウド上で提供
ミドルウェアのデプロイや管理は不要
3rdパーティーのサービスも活⽤可能
マルチ言語サポートの⼀貫したSDK
Android Java
iOS Objective-C
JavaScript (Web, Cordova, Worklight, Node.js)
API呼び出しだけでなく、開発やテストを支援するサービス
も提供
Mobile
Web
Node.js
© 2014 IBM Corporation
8
IBM Bluemix
www.bluemix.net
2種類のモバイル関連サービス
クライアント・アプリからサービスのAPIをコール:
MBaaS
Mobile Data, Push, Twilioなど
その他:
モバイル・アプリのテスト/開発などをサポート
AppScan Mobile Analyzer、RapidApps
アプリ全体に機能を追加
Mobile Quality Assurance
Mobile Quality Assurance
© 2014 IBM Corporation
9
IBM Bluemix
www.bluemix.net
API呼び出しのモバイル・サービス
Mobile Application Security
Mobile Data
Push
Twilio
© 2014 IBM Corporation
10
IBM Bluemix
www.bluemix.net
Mobile Dataサービス
スケーラブルなCloudデータベース
Cloudantベース
異なるモバイル・クライアントとデータ共有
シンプルなAPI/SDK提供
Objective-C (iOS), Java (Android), JavaScript
各プラットフォームごとのネイティブ・ライクなオブジェクトを格
納するAPI
例えば、JavaScriptのプラットフォームでは、JSONオブジェクトとし
てCRUD操作可能
RDBのスキーマやSQLの知識は不要
ファイル同期
オブジェクトだけでなく、ファイルの共有も可能
© 2014 IBM Corporation
11
IBM Bluemix
www.bluemix.net
Pushサービス
Push通知を実現
デバイス上でアプリが起動していなくても、
メッセージを通知
人や時間に応じたPush通知を実現可能
プラットフォーム固有のAPIを隠蔽
提供APIの種類
Mobile Cloud Services SDK
 Objective-C (iOS), Java (Android), JavaScript
REST API
Bluemixコンソール
柔軟な通知先の選択
All
特定のユーザー
特定のタグを購読するグループ
特定のプラットフォーム
© 2014 IBM Corporation
12
IBM Bluemix
www.bluemix.net
Mobile Application Securityサービス
モバイル・アプリへのアクセス制御
アプリ認証
特定のアプリからのみアクセスを許可
Androidのパッケージ名
iOSのBundle ID
ユーザー/デバイス認証
GoogleアカウントまたはWorklightのユーザー認証をモバイルアプリに
構成
特定のユーザー/デバイスのアクセス無効化をコンソールから制御
備考
Pushサービス、Mobile Dataサービスの前提
© 2014 IBM Corporation
13
IBM Bluemix
www.bluemix.net
Mobile Application SecurityのGoogleアカウント認証
Google+のSDKを使⽤
GoogleアカウントとOAuth認証
アプリから別ブラウザーが起動し、Googleアカウント認証を実施
OKであれば、BluemixのMASに認証結果とユーザーIDを通
知
© 2014 IBM Corporation
14
IBM Bluemix
www.bluemix.net
Twilioサービス
音声、SMS、VoIPサービスを付与
Voice
電話回線を⽤いて高品質で安全な音声通話を実現
Client (VoIP)
インターネット回線を⽤いてデバイスから音声通話を可能に
SMS
アプリケーションから電話へメッセージを送受信
国内では、KDDIがTwilioサービスを提供
KDDI「Twilio の機能」
http://twilio.kddi-web.com/function/
© 2014 IBM Corporation
15
IBM Bluemix
www.bluemix.net
Demo.1 :
Bluemixモバイル・サービスを使⽤した
モバイル・アプリ
Mobile Data
Push
Twilio
© 2014 IBM Corporation
16
IBM Bluemix
www.bluemix.net
API呼び出しのモバイル・サービスの実装
Mobile Application Security
Mobile Data
Push
Twilio
© 2014 IBM Corporation
17
IBM Bluemix
www.bluemix.net
各モバイル・サービスの関連
Runtime
(Node.js)
Mobile
Application
Security
Mobile Data
Push
Mobile
Device
Bluemixクラウド・アプリ
Bluemix
Mobile SDK
Mobile以外
(バックエンド・システムなど)
REST
call
※モバイル・アプリ以外から利⽤できる
SDKとしてNode.jsのSDKを提供
© 2014 IBM Corporation
18
IBM Bluemix
www.bluemix.net
モバイル・サービス実装の流れ (概要)
 Bluemixモバイル・アプリ作成 (Bluemixコンソール)
1. “Mobile Cloud”ボイラープレートから作成
2. (option)サービスを追加
3. (option)サービスの設定/Node.jsランタイムから外部サービス呼び出し
の実装 (Twilioなど)
 クライアント・アプリに組込
(各モバイル・アプリ開発環境)
1. Bluemix Mobile SDKを組み込み
2. Bluemixの初期化、各モバイル・
サービスの初期化コード追加
3. 各モバイル・サービス固有の呼び出
しコード開発
 (Option) バックエンド・
システムに組込
バックエンド・システムから
直接RESTでサービスのAPI
呼び出しの開発(Push配信
など)
 Bluemixサービスの管理 (Bluemixコンソール)
各モバイル・サービスの管理/統計情報の確認
© 2014 IBM Corporation
19
IBM Bluemix
www.bluemix.net
Bluemixアプリの作成:
“Mobile Cloud”ボイラープレート
“Mobile Cloud”ボイラープレートの構成
SDK for Node.js
Mobile Application Security
Push
Mobile Data
Bluemixモバイル
アプリ作成
© 2014 IBM Corporation
20
IBM Bluemix
www.bluemix.net
Bluemixモバイル・アプリの内容
App route, App ID, App Secretを確認
クライアント・アプリの開発時に必要
必要に応じて、サービスを追加(Twilioなど)
各サービスの設定を追加
例えば、PushにおけるGCMやAPNSへの接続情報
Bluemixモバイル
アプリ作成
© 2014 IBM Corporation
21
IBM Bluemix
www.bluemix.net
各モバイル・サービスの設定
Bluemixコンソールの各サービス画面で実施
Push
Apple、GoogleのPushサービス(APNS, GCM)との接続設定
ユーザー認証の設定Mobile Application Security
アプリ認証
Android:パッケージ名、iOS:
Bundle IDでアクセス制御
ユーザー認証
Googleアカウントまたは
Worklightの認証との統合
クライアント・アプリ側の
コーディングも必要
ユーザー/デバイス単位のアク
セス制御
Bluemixモバイル
アプリ作成
© 2014 IBM Corporation
22
IBM Bluemix
www.bluemix.net
Bluemix Mobile SDK
 SDK提供プラットフォーム
 Android
 iOS
 Web App
 Node.js
 Worklight Hybrid
 Cordova Hybrid
 ダウンロード形式
 zip
 GitHub
 各開発環境に応じたパッケージ
マネージャー
 Gradle、CocoaPods、
Bower、NPM、cordovaコマンド
 SDKのドキュメント
 Getting Started (サンプル)
 SDKドキュメント (オンライン・
マニュアル)
Bluemix Docs「Building Mobile Cloud applications」
https://www.ng.bluemix.net/docs/#starters/mobile/index.html#index
クライアント
アプリに組込
© 2014 IBM Corporation
23
IBM Bluemix
www.bluemix.net
Bluemixの初期化、
各モバイル・サービスの初期化
Bluemix SDKの初期化
JavaScriptの場合
各Mobileサービスの初期化
JavaScriptの場合
※AndroidやiOSなど他のプラットフォームでもほぼ同様です。
<script>
var config = {
applicationId:'<applicationId>',
applicationRoute:'<applicationRoute>',
applicationSecret:'<applicationSecret>'
};
IBMBluemix.initialize(config);
</script>
IBMCloudCode.initializeService();
IBMData.initializeService();
IBMPush.initializeService();
クライアント
アプリに組込
© 2014 IBM Corporation
24
IBM Bluemix
www.bluemix.net
各モバイル・サービス固有の
呼び出しコード開発
各プラットフォームごとのSDKガイドやGettingStartedの
サンプルコードを参照し、クライアント・コードを開発
Mobile Data
Push
Mobile Application Security
Twilio
var data = IBMData.getService();
var query = data.Query.ofType("Person");
query.find().done(function(people) {
people.forEach(function(person) {
//Print out each person
});
});
Mobile Dataサービスでオブジェクトquery(検索)のJavaScriptの例:
オブジェクトをすべて取得して、1件ごとに処理する例
クライアント
アプリに組込
© 2014 IBM Corporation
25
IBM Bluemix
www.bluemix.net
Bluemix MobileサービスのREST API
REST API
モバイル・クライアントだけでなく、
BackendシステムからのPush配信やアプリ管理で利⽤
バックエンド
システムに組込
© 2014 IBM Corporation
26
IBM Bluemix
www.bluemix.net
各モバイル・サービスの管理/統計情報の確認
Analyticsタブ
Mobile Application Security
Bluemixサービスへのリクエスト
数のサマリー
Mobile Data
ストレージ容量、APIコール数
Push
Push配信の送信履歴
analyticsのREST APIで生データ
も取得可能
各サービス固有の管理機能
Mobile Data
データのインポート、参照/削除
Push
Push配信の実行
購読(Subscribe)、グループ(Tag)
状況の確認
Mobile DataのAnalytics情報
Bluemix
サービスの管理
© 2014 IBM Corporation
27
IBM Bluemix
www.bluemix.net
PushサービスのコンソールからのPush配信
Notificationタブ
実際にPushをコンソールから配信
Bluemix
サービスの管理
© 2014 IBM Corporation
28
IBM Bluemix
www.bluemix.net
API呼び出し以外のモバイル・サービス
Mobile Quality Assurance
AppScan Mobile Analyzer
© 2014 IBM Corporation
29
IBM Bluemix
www.bluemix.net
Mobile Quality Assurance (MQA) サービス
 エンド・ユーザー
とのつながり
 ニーズの理解
 情報に基づく開発
方針の決定
 報告の解析
 実装
 更新されたア
プリの配布
• テスト対象の
入手とテスト
• 不具合の再現
• レポート
• 開発側とのつ
ながり
• アプリの活⽤
• 改善提案
テスト担当者 ユーザー開発者ビジネス・オーナー
4
1
3
2
端末上でのバグの報告: アプリケーション上で直接バグやクラッシュをレポート1
4
2
3
アプリケーションの配布制御: テスト担当者に必要なビルドを迅速に展開
端末上でのフィードバック: アプリケーション上で直接フィードバックを送信
フィードバックの分析*: アプリ配布元と連携し品質評価とセンチメント分析を実施
* 2014/07 時点で英語/米国市場のみでご利⽤可能。日本語/日本市場には将来バージョンで対応予定
モバイル・アプリの品質向上
© 2014 IBM Corporation
30
IBM Bluemix
www.bluemix.net
MQAサービスの使い方
Bluemixコンソール
MQAサービス作成
対象プラットフォームを選択
テスト対象アプリの開発環境
MQAのライブラリーを組み込み
テスト⽤と実働⽤の2種類
MQAを有効化する設定とお決まりのコードを追加
テスト実施
Bluemixコンソール
Bugレポート、
クラッシュ・ログの確認
© 2014 IBM Corporation
31
IBM Bluemix
www.bluemix.net
(参考) MQAを使うためのアプリへの追加コード
SDK のダウンロード
SDK のインポート
MQA セッションの開始・
終了⽤コードを追加
MQA の各機能を使⽤する
ためのコードを追加
アプリケーションを
ビルド・配布
【コード例(Android の場合) 】
© 2014 IBM Corporation
32
IBM Bluemix
www.bluemix.net
Bugの報告
・画面キャプチャー上
に直接フリーハンドで
マークやコメント
・Bug内容を文章でコ
メント
端末をシェイクし
報告画面に遷移
① ②
© 2014 IBM Corporation
33
IBM Bluemix
www.bluemix.net
Bugレポート、クラッシュ・ログの確認
© 2014 IBM Corporation
34
IBM Bluemix
www.bluemix.net
Demo.2 :
Mobile Quality Assuranceモバイル・サービス
デモで使⽤するアプリは、下記よりダウンロード可能です。
developerWorks「完璧ではないモバイル・アプリケーションを作成する」
http://www.ibm.com/developerworks/jp/mobile/library/mo-build-imperfect-mobile-app/index.html
© 2014 IBM Corporation
35
IBM Bluemix
www.bluemix.net
AppScan Mobile Analyzer (Beta)
モバイル・アプリのソースコードをスキャン解析し、
セキュリティーの問題/対応策を報告
AppScanのエンジンを使⽤
対象:Androidアプリ(apk)のみ (2014年9月時点)
アプリケーションの
スキャン
解析
(問題の発見)
アプリケーション・セキュリティー検査の自動化
レポート
FIX
1 2 3
© 2014 IBM Corporation
36
IBM Bluemix
www.bluemix.net
AppScan Mobile Analyzerサービスの使い方
AppScan Mobile Analyzerサービスの作成
Android APKファイルをアップロード
スキャン開始
スキャン終了後、メール通知
スキャン結果をコンソールで確認
PDFレポートをダウンロード
Bluemix
コンソール
のみ使⽤
© 2014 IBM Corporation
37
IBM Bluemix
www.bluemix.net
結果レポート
レポートは3部構成
 Executive Summary(サマリー)
 Issues(問題の詳細)
 FixRecommendations(対応策)
© 2014 IBM Corporation
38
IBM Bluemix
www.bluemix.net
問題の詳細と対応策のレポート例
© 2014 IBM Corporation
39
IBM Bluemix
www.bluemix.net
(参考) スキャンする問題の⼀覧
 Activity Hijacking
 Android Class Loading Hijacking
 Android Fragment Injection
 Broadcast Theft
 Buffer Overflow
 Client-side SQL Injection
 Crash in Java Code
 Crash in Native Code
 Cross-Application Scripting
 Cross-Site Scripting (XSS) via Man-in-the-Middle (MiTM)
 Debug Flag Enabled on Release Version
 Debug Version Detected
 File Manipulation
 Insecure File Permission
 Insecure Pending Intent
 Phishing via Man-in-the-Middle (MiTM)
 Service Hijacking
 UI Spoofing
 Unsafe Reflection
 Weak Random Number Generator
© 2014 IBM Corporation
40
IBM Bluemix
www.bluemix.net
FAQ
Bluemix MobileサービスとWorklightの位置づけ
© 2014 IBM Corporation
41
IBM Bluemix
www.bluemix.net
Bluemixモバイル・サービスとWorklightの位置づけ
Bluemixモバイル・サービスとWorklightは相互に補完的
個別に使⽤することは可能
組み合わせて使⽤することも可能
Backend
System 1
Backend
System 2
Worklight
Server
Worklightの
モバイル・アプリ
Mobile Application Securityで、
Bluemixの認証をWorklightに委
譲可能
Pushサービスは、Worklightと
Bluemixで⼀部重複
Bluemixクラウド
自社データセンタ
または
SoftLayerなどのクラウド
© 2014 IBM Corporation
42
IBM Bluemix
www.bluemix.net
まとめ
© 2014 IBM Corporation
43
IBM Bluemix
www.bluemix.net
まとめ
Bluemixモバイル・サービス
開発者が容易にMBaaSにアクセスできるSDKを提供
Mobile Cloud SDKに含まれるサービス/ランタイム
SDK for Node.js
Mobile Data
Push
Mobile Application Security
3rdパーティーのモバイル・サービスも利⽤可能
Twilio
モバイル・アプリの開発やテストを支援するサービスも提供
Mobile Quality Assurance
AppScan Mobile Analyzer (Beta)
Bluemixモバイル・サービス = MBaaSを活⽤して、
高品質のアプリを簡単&迅速に開発
© 2014 IBM Corporation
44
IBM Bluemix
www.bluemix.net
参考資料
 IBM Bluemix Docs
https://www.ng.bluemix.net/docs/#
 [Creating Apps]-[Mobile Cloud]
 [Services]-[Mobile Application Security], [Mobile Data], [Mobile Quality
Assurance], [Push], [AppScan Mobile Analyzer]
 IBM Mobile Cloud Services SDK Developer Guide
http://mbaas-gettingstarted.ng.bluemix.net/index.html
 各プラットフォームごと(Android, iOS, JavaScriptなど)のSDKのガイド
 REST APIのAPI Docもあり
 Getting Started with Twilio
https://www.twilio.com/docs
 DeveloperWorks「Mobile devlopment」Zone記事(英語)ポータル
http://www.ibm.com/developerworks/mobile/library/?contentarea_by=Mobile+
development
 DeveloperWorks「Mobile devlopment」ゾーン記事(日本語)ポータル
http://www.ibm.com/developerworks/jp/views/mobile/libraryview.jsp
© 2014 IBM Corporation
45
IBM Bluemix
www.bluemix.net
参考資料
 個別のサービス使⽤の記事
 Mobile Data
 Mobile Data クラウド・サービスを利⽤して Android アプリを作成する
http://www.ibm.com/developerworks/jp/mobile/library/mo-android-mobiledata-app/index.html
 Mobile Data クラウド・サービスを利⽤して iOS アプリを作成する
http://www.ibm.com/developerworks/jp/mobile/library/mo-ios-mobiledata-app/index.html
 Mobile Data クラウド・サービスを利⽤した iOS アプリを拡張して Worklight を統合する
http://www.ibm.com/developerworks/jp/mobile/library/mo-ios-mobiledata-worklight-
app/index.html
 iBeacon と IBM Mobile Data サービスを使⽤して時間とともに変化する情報を管理するアプリ
を構築する
http://www.ibm.com/developerworks/jp/mobile/library/mo-bluemix-ibeacons/index.html
 Extend an Android app using the IBM Mobile Cloud service to integrate with Worklight
http://www.ibm.com/developerworks/mobile/library/mo-android-mobiledata-worklight-
app/index.html
 Build a hybrid mobile app with Cordova and the IBM Bluemix Mobile Data service
http://www.ibm.com/developerworks/mobile/library/mo-cordova-md-app/index.html
 Push
 Push クラウド・サービスを利⽤して Android アプリを拡張する
http://www.ibm.com/developerworks/jp/mobile/library/mo-android-push-app/index.html
 5 分以内にモバイル・アプリケーションからプッシュ通知を送信する
http://www.ibm.com/developerworks/jp/mobile/library/mo-push-apache-cordova-app/index.html
 Leverage push capabilities in hybrid mobile apps with Cordova plugins for Bluemix
http://www.ibm.com/developerworks/mobile/library/mo-cordova-push-app/index.html
© 2014 IBM Corporation
46
IBM Bluemix
www.bluemix.net
参考資料
 Mobile Application Security
 Enhance an Android app with Google+ authentication
http://www.ibm.com/developerworks/mobile/library/mo-android-googleauth-
app/index.html?ca=drs-
 Twilio
 Twilio クラウド・サービスを利⽤して Android アプリと iOS アプリにテキスト・メッセージン
グ機能を追加する
http://www.ibm.com/developerworks/jp/mobile/library/mo-android-twilio-app/index.html
 Mobile Quality Assurance
 完璧ではないモバイル・アプリケーションを作成する
http://www.ibm.com/developerworks/jp/mobile/library/mo-build-imperfect-mobile-app/index.html
 Distribute mobile apps to testers over the air with IBM Mobile Quality Assurance
http://www.ibm.com/developerworks/mobile/library/mo-otadistribution-mqa-app/index.html
 その他
 IBM Bluemix 上でバックエンドのクラウド・サービスを作成して、モバイル・アプリと Web ア
プリを迅速に構築する
http://www.ibm.com/developerworks/jp/cloud/library/cl-rapiddev-app/index.html
 Cloudant を使⽤して Bluemix 上で Famo.us モバイル・アプリを自動化する
http://www.ibm.com/developerworks/jp/cloud/library/cl-bluemix-famous-mobile/index.html
 Jumping through Hadoop: Stream Big Data video on a mobile app by integrating IBM
Worklight with IBM InfoSphere BigInsights on IBM Bluemix
http://www.ibm.com/developerworks/mobile/library/mo-aim1408-worklight-biginsights/index.html
© 2014 IBM Corporation
47
IBM Bluemix
www.bluemix.net
IBM Bluemix
www.bluemix.net

デモで理解する!Bluemixモバイル・サービス

  • 1.
    IBM Bluemix www.bluemix.net IBM Bluemix そこが知りたい! テクニカル・セミナー 日本アイ・ビー・エム株式会社 SWGWebSphere事業部 中島 由貴 SWG WebSphere事業部 佐々木 志門 日本アイ・ビー・エム システムズ・エンジニアリング株式会社 ソーシャル&モバイル 青木 悟大 デモで理解する! IBM Bluemixモバイル・サービス
  • 2.
    © 2014 IBMCorporation 2 IBM Bluemix www.bluemix.net ご注意 この資料は日本アイ・ビー・エム株式会社および日本アイ・ビー・エム システムズ・エンジニアリング株 式会社の正式なレビューを受けておりません。 資料の内容には正確を期するよう注意しておりますが、この資料の内容は2014年09月現在の情報であり、 製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。 当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤ またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受 けたいかなる被害に関しても⼀切の補償をするものではありません。 また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標 である場合があります。現時点でのIBMの商標リストについては http://www.ibm.com/legal/copytrade.shtmlをご覧ください。
  • 3.
    © 2014 IBMCorporation 3 IBM Bluemix www.bluemix.net アジェンダ モバイル関連サービス概要 API呼び出しのモバイル・サービス demo.1 : モバイル・サービスを使⽤したモバイル・アプリ API呼び出しのモバイル・サービスの実装 その他のモバイル・サービス demo.2 : Mobile Quality Assuranceモバイル・サービス FAQ まとめ
  • 4.
    © 2014 IBMCorporation 4 IBM Bluemix www.bluemix.net モバイル関連サービス概要
  • 5.
    © 2014 IBMCorporation 5 IBM Bluemix www.bluemix.net モバイル・サービス 概要 カテゴリー アイコン 名称 提供 形態 説明 種類 Boiler- plates Mobile Cloud IBM Android、iOS、JavaScript向けのSDKを提供。 [SDK for Node.js] + [Mobile Application Security] + [Mobile Data] + [Push] で構成されるテンプレート。 - Run- times SDK for Node.js IBM [Mobile Cloud]ボイラー・プレートに含まれるRuntime。 MBaaS Mobile Mobile Application Security IBM Bluemix モバイル・サービスのアクセス制御を集中管理。 [Push]、[Mobile Data]サービス利用における前提。 MBaaS Mobile Data IBM クラウド上のデータ・ストア(オブジェクト形式)を提供。 クライアント・アプリからは、プラットフォームごとにネイティブなオブジェクトを操 作可能(SDK提供)。 データストアの管理や実装は隠蔽。 MBaaS Mobile Quality Assurance IBM モバイル・アプリのクラッシュ・ログやユーザー・フィード バックなどのアプリの品質指標の管理を提供。 Other Push IBM 複数のモバイル・プラットフォームに対して、プッシュ通知 サービスを提供。 MBaaS Twilio 3rd Party モバイル・アプリと電話(音声)やSMSを連携させるサービスを 提供。 MBaaS Security AppScan Mobile Analyzer IBM Beta Androidモバイル・アプリのソースコードをスキャンし、セ キュリティーの問題をレポート。 Other
  • 6.
    © 2014 IBMCorporation 6 IBM Bluemix www.bluemix.net Bluemixのモバイル・サービスとは MBaaS (Mobile Backend as a Service) モバイル・アプリが必要とするサーバー側の様々な機能をインター ネットを通じてサービスとして提供するクラウド・サービスの⼀種 提供される機能の例 ユーザー認証 データ保管 プッシュ通知 アプリケーション開発者はこれらの機能のAPIを呼び出すことで、 アプリケーションの⼀部として取り込むことができる
  • 7.
    © 2014 IBMCorporation 7 IBM Bluemix www.bluemix.net Bluemixモバイル・サービス (MBaaS)の特徴 サービスはクラウド上で提供 ミドルウェアのデプロイや管理は不要 3rdパーティーのサービスも活⽤可能 マルチ言語サポートの⼀貫したSDK Android Java iOS Objective-C JavaScript (Web, Cordova, Worklight, Node.js) API呼び出しだけでなく、開発やテストを支援するサービス も提供 Mobile Web Node.js
  • 8.
    © 2014 IBMCorporation 8 IBM Bluemix www.bluemix.net 2種類のモバイル関連サービス クライアント・アプリからサービスのAPIをコール: MBaaS Mobile Data, Push, Twilioなど その他: モバイル・アプリのテスト/開発などをサポート AppScan Mobile Analyzer、RapidApps アプリ全体に機能を追加 Mobile Quality Assurance Mobile Quality Assurance
  • 9.
    © 2014 IBMCorporation 9 IBM Bluemix www.bluemix.net API呼び出しのモバイル・サービス Mobile Application Security Mobile Data Push Twilio
  • 10.
    © 2014 IBMCorporation 10 IBM Bluemix www.bluemix.net Mobile Dataサービス スケーラブルなCloudデータベース Cloudantベース 異なるモバイル・クライアントとデータ共有 シンプルなAPI/SDK提供 Objective-C (iOS), Java (Android), JavaScript 各プラットフォームごとのネイティブ・ライクなオブジェクトを格 納するAPI 例えば、JavaScriptのプラットフォームでは、JSONオブジェクトとし てCRUD操作可能 RDBのスキーマやSQLの知識は不要 ファイル同期 オブジェクトだけでなく、ファイルの共有も可能
  • 11.
    © 2014 IBMCorporation 11 IBM Bluemix www.bluemix.net Pushサービス Push通知を実現 デバイス上でアプリが起動していなくても、 メッセージを通知 人や時間に応じたPush通知を実現可能 プラットフォーム固有のAPIを隠蔽 提供APIの種類 Mobile Cloud Services SDK  Objective-C (iOS), Java (Android), JavaScript REST API Bluemixコンソール 柔軟な通知先の選択 All 特定のユーザー 特定のタグを購読するグループ 特定のプラットフォーム
  • 12.
    © 2014 IBMCorporation 12 IBM Bluemix www.bluemix.net Mobile Application Securityサービス モバイル・アプリへのアクセス制御 アプリ認証 特定のアプリからのみアクセスを許可 Androidのパッケージ名 iOSのBundle ID ユーザー/デバイス認証 GoogleアカウントまたはWorklightのユーザー認証をモバイルアプリに 構成 特定のユーザー/デバイスのアクセス無効化をコンソールから制御 備考 Pushサービス、Mobile Dataサービスの前提
  • 13.
    © 2014 IBMCorporation 13 IBM Bluemix www.bluemix.net Mobile Application SecurityのGoogleアカウント認証 Google+のSDKを使⽤ GoogleアカウントとOAuth認証 アプリから別ブラウザーが起動し、Googleアカウント認証を実施 OKであれば、BluemixのMASに認証結果とユーザーIDを通 知
  • 14.
    © 2014 IBMCorporation 14 IBM Bluemix www.bluemix.net Twilioサービス 音声、SMS、VoIPサービスを付与 Voice 電話回線を⽤いて高品質で安全な音声通話を実現 Client (VoIP) インターネット回線を⽤いてデバイスから音声通話を可能に SMS アプリケーションから電話へメッセージを送受信 国内では、KDDIがTwilioサービスを提供 KDDI「Twilio の機能」 http://twilio.kddi-web.com/function/
  • 15.
    © 2014 IBMCorporation 15 IBM Bluemix www.bluemix.net Demo.1 : Bluemixモバイル・サービスを使⽤した モバイル・アプリ Mobile Data Push Twilio
  • 16.
    © 2014 IBMCorporation 16 IBM Bluemix www.bluemix.net API呼び出しのモバイル・サービスの実装 Mobile Application Security Mobile Data Push Twilio
  • 17.
    © 2014 IBMCorporation 17 IBM Bluemix www.bluemix.net 各モバイル・サービスの関連 Runtime (Node.js) Mobile Application Security Mobile Data Push Mobile Device Bluemixクラウド・アプリ Bluemix Mobile SDK Mobile以外 (バックエンド・システムなど) REST call ※モバイル・アプリ以外から利⽤できる SDKとしてNode.jsのSDKを提供
  • 18.
    © 2014 IBMCorporation 18 IBM Bluemix www.bluemix.net モバイル・サービス実装の流れ (概要)  Bluemixモバイル・アプリ作成 (Bluemixコンソール) 1. “Mobile Cloud”ボイラープレートから作成 2. (option)サービスを追加 3. (option)サービスの設定/Node.jsランタイムから外部サービス呼び出し の実装 (Twilioなど)  クライアント・アプリに組込 (各モバイル・アプリ開発環境) 1. Bluemix Mobile SDKを組み込み 2. Bluemixの初期化、各モバイル・ サービスの初期化コード追加 3. 各モバイル・サービス固有の呼び出 しコード開発  (Option) バックエンド・ システムに組込 バックエンド・システムから 直接RESTでサービスのAPI 呼び出しの開発(Push配信 など)  Bluemixサービスの管理 (Bluemixコンソール) 各モバイル・サービスの管理/統計情報の確認
  • 19.
    © 2014 IBMCorporation 19 IBM Bluemix www.bluemix.net Bluemixアプリの作成: “Mobile Cloud”ボイラープレート “Mobile Cloud”ボイラープレートの構成 SDK for Node.js Mobile Application Security Push Mobile Data Bluemixモバイル アプリ作成
  • 20.
    © 2014 IBMCorporation 20 IBM Bluemix www.bluemix.net Bluemixモバイル・アプリの内容 App route, App ID, App Secretを確認 クライアント・アプリの開発時に必要 必要に応じて、サービスを追加(Twilioなど) 各サービスの設定を追加 例えば、PushにおけるGCMやAPNSへの接続情報 Bluemixモバイル アプリ作成
  • 21.
    © 2014 IBMCorporation 21 IBM Bluemix www.bluemix.net 各モバイル・サービスの設定 Bluemixコンソールの各サービス画面で実施 Push Apple、GoogleのPushサービス(APNS, GCM)との接続設定 ユーザー認証の設定Mobile Application Security アプリ認証 Android:パッケージ名、iOS: Bundle IDでアクセス制御 ユーザー認証 Googleアカウントまたは Worklightの認証との統合 クライアント・アプリ側の コーディングも必要 ユーザー/デバイス単位のアク セス制御 Bluemixモバイル アプリ作成
  • 22.
    © 2014 IBMCorporation 22 IBM Bluemix www.bluemix.net Bluemix Mobile SDK  SDK提供プラットフォーム  Android  iOS  Web App  Node.js  Worklight Hybrid  Cordova Hybrid  ダウンロード形式  zip  GitHub  各開発環境に応じたパッケージ マネージャー  Gradle、CocoaPods、 Bower、NPM、cordovaコマンド  SDKのドキュメント  Getting Started (サンプル)  SDKドキュメント (オンライン・ マニュアル) Bluemix Docs「Building Mobile Cloud applications」 https://www.ng.bluemix.net/docs/#starters/mobile/index.html#index クライアント アプリに組込
  • 23.
    © 2014 IBMCorporation 23 IBM Bluemix www.bluemix.net Bluemixの初期化、 各モバイル・サービスの初期化 Bluemix SDKの初期化 JavaScriptの場合 各Mobileサービスの初期化 JavaScriptの場合 ※AndroidやiOSなど他のプラットフォームでもほぼ同様です。 <script> var config = { applicationId:'<applicationId>', applicationRoute:'<applicationRoute>', applicationSecret:'<applicationSecret>' }; IBMBluemix.initialize(config); </script> IBMCloudCode.initializeService(); IBMData.initializeService(); IBMPush.initializeService(); クライアント アプリに組込
  • 24.
    © 2014 IBMCorporation 24 IBM Bluemix www.bluemix.net 各モバイル・サービス固有の 呼び出しコード開発 各プラットフォームごとのSDKガイドやGettingStartedの サンプルコードを参照し、クライアント・コードを開発 Mobile Data Push Mobile Application Security Twilio var data = IBMData.getService(); var query = data.Query.ofType("Person"); query.find().done(function(people) { people.forEach(function(person) { //Print out each person }); }); Mobile Dataサービスでオブジェクトquery(検索)のJavaScriptの例: オブジェクトをすべて取得して、1件ごとに処理する例 クライアント アプリに組込
  • 25.
    © 2014 IBMCorporation 25 IBM Bluemix www.bluemix.net Bluemix MobileサービスのREST API REST API モバイル・クライアントだけでなく、 BackendシステムからのPush配信やアプリ管理で利⽤ バックエンド システムに組込
  • 26.
    © 2014 IBMCorporation 26 IBM Bluemix www.bluemix.net 各モバイル・サービスの管理/統計情報の確認 Analyticsタブ Mobile Application Security Bluemixサービスへのリクエスト 数のサマリー Mobile Data ストレージ容量、APIコール数 Push Push配信の送信履歴 analyticsのREST APIで生データ も取得可能 各サービス固有の管理機能 Mobile Data データのインポート、参照/削除 Push Push配信の実行 購読(Subscribe)、グループ(Tag) 状況の確認 Mobile DataのAnalytics情報 Bluemix サービスの管理
  • 27.
    © 2014 IBMCorporation 27 IBM Bluemix www.bluemix.net PushサービスのコンソールからのPush配信 Notificationタブ 実際にPushをコンソールから配信 Bluemix サービスの管理
  • 28.
    © 2014 IBMCorporation 28 IBM Bluemix www.bluemix.net API呼び出し以外のモバイル・サービス Mobile Quality Assurance AppScan Mobile Analyzer
  • 29.
    © 2014 IBMCorporation 29 IBM Bluemix www.bluemix.net Mobile Quality Assurance (MQA) サービス  エンド・ユーザー とのつながり  ニーズの理解  情報に基づく開発 方針の決定  報告の解析  実装  更新されたア プリの配布 • テスト対象の 入手とテスト • 不具合の再現 • レポート • 開発側とのつ ながり • アプリの活⽤ • 改善提案 テスト担当者 ユーザー開発者ビジネス・オーナー 4 1 3 2 端末上でのバグの報告: アプリケーション上で直接バグやクラッシュをレポート1 4 2 3 アプリケーションの配布制御: テスト担当者に必要なビルドを迅速に展開 端末上でのフィードバック: アプリケーション上で直接フィードバックを送信 フィードバックの分析*: アプリ配布元と連携し品質評価とセンチメント分析を実施 * 2014/07 時点で英語/米国市場のみでご利⽤可能。日本語/日本市場には将来バージョンで対応予定 モバイル・アプリの品質向上
  • 30.
    © 2014 IBMCorporation 30 IBM Bluemix www.bluemix.net MQAサービスの使い方 Bluemixコンソール MQAサービス作成 対象プラットフォームを選択 テスト対象アプリの開発環境 MQAのライブラリーを組み込み テスト⽤と実働⽤の2種類 MQAを有効化する設定とお決まりのコードを追加 テスト実施 Bluemixコンソール Bugレポート、 クラッシュ・ログの確認
  • 31.
    © 2014 IBMCorporation 31 IBM Bluemix www.bluemix.net (参考) MQAを使うためのアプリへの追加コード SDK のダウンロード SDK のインポート MQA セッションの開始・ 終了⽤コードを追加 MQA の各機能を使⽤する ためのコードを追加 アプリケーションを ビルド・配布 【コード例(Android の場合) 】
  • 32.
    © 2014 IBMCorporation 32 IBM Bluemix www.bluemix.net Bugの報告 ・画面キャプチャー上 に直接フリーハンドで マークやコメント ・Bug内容を文章でコ メント 端末をシェイクし 報告画面に遷移 ① ②
  • 33.
    © 2014 IBMCorporation 33 IBM Bluemix www.bluemix.net Bugレポート、クラッシュ・ログの確認
  • 34.
    © 2014 IBMCorporation 34 IBM Bluemix www.bluemix.net Demo.2 : Mobile Quality Assuranceモバイル・サービス デモで使⽤するアプリは、下記よりダウンロード可能です。 developerWorks「完璧ではないモバイル・アプリケーションを作成する」 http://www.ibm.com/developerworks/jp/mobile/library/mo-build-imperfect-mobile-app/index.html
  • 35.
    © 2014 IBMCorporation 35 IBM Bluemix www.bluemix.net AppScan Mobile Analyzer (Beta) モバイル・アプリのソースコードをスキャン解析し、 セキュリティーの問題/対応策を報告 AppScanのエンジンを使⽤ 対象:Androidアプリ(apk)のみ (2014年9月時点) アプリケーションの スキャン 解析 (問題の発見) アプリケーション・セキュリティー検査の自動化 レポート FIX 1 2 3
  • 36.
    © 2014 IBMCorporation 36 IBM Bluemix www.bluemix.net AppScan Mobile Analyzerサービスの使い方 AppScan Mobile Analyzerサービスの作成 Android APKファイルをアップロード スキャン開始 スキャン終了後、メール通知 スキャン結果をコンソールで確認 PDFレポートをダウンロード Bluemix コンソール のみ使⽤
  • 37.
    © 2014 IBMCorporation 37 IBM Bluemix www.bluemix.net 結果レポート レポートは3部構成  Executive Summary(サマリー)  Issues(問題の詳細)  FixRecommendations(対応策)
  • 38.
    © 2014 IBMCorporation 38 IBM Bluemix www.bluemix.net 問題の詳細と対応策のレポート例
  • 39.
    © 2014 IBMCorporation 39 IBM Bluemix www.bluemix.net (参考) スキャンする問題の⼀覧  Activity Hijacking  Android Class Loading Hijacking  Android Fragment Injection  Broadcast Theft  Buffer Overflow  Client-side SQL Injection  Crash in Java Code  Crash in Native Code  Cross-Application Scripting  Cross-Site Scripting (XSS) via Man-in-the-Middle (MiTM)  Debug Flag Enabled on Release Version  Debug Version Detected  File Manipulation  Insecure File Permission  Insecure Pending Intent  Phishing via Man-in-the-Middle (MiTM)  Service Hijacking  UI Spoofing  Unsafe Reflection  Weak Random Number Generator
  • 40.
    © 2014 IBMCorporation 40 IBM Bluemix www.bluemix.net FAQ Bluemix MobileサービスとWorklightの位置づけ
  • 41.
    © 2014 IBMCorporation 41 IBM Bluemix www.bluemix.net Bluemixモバイル・サービスとWorklightの位置づけ Bluemixモバイル・サービスとWorklightは相互に補完的 個別に使⽤することは可能 組み合わせて使⽤することも可能 Backend System 1 Backend System 2 Worklight Server Worklightの モバイル・アプリ Mobile Application Securityで、 Bluemixの認証をWorklightに委 譲可能 Pushサービスは、Worklightと Bluemixで⼀部重複 Bluemixクラウド 自社データセンタ または SoftLayerなどのクラウド
  • 42.
    © 2014 IBMCorporation 42 IBM Bluemix www.bluemix.net まとめ
  • 43.
    © 2014 IBMCorporation 43 IBM Bluemix www.bluemix.net まとめ Bluemixモバイル・サービス 開発者が容易にMBaaSにアクセスできるSDKを提供 Mobile Cloud SDKに含まれるサービス/ランタイム SDK for Node.js Mobile Data Push Mobile Application Security 3rdパーティーのモバイル・サービスも利⽤可能 Twilio モバイル・アプリの開発やテストを支援するサービスも提供 Mobile Quality Assurance AppScan Mobile Analyzer (Beta) Bluemixモバイル・サービス = MBaaSを活⽤して、 高品質のアプリを簡単&迅速に開発
  • 44.
    © 2014 IBMCorporation 44 IBM Bluemix www.bluemix.net 参考資料  IBM Bluemix Docs https://www.ng.bluemix.net/docs/#  [Creating Apps]-[Mobile Cloud]  [Services]-[Mobile Application Security], [Mobile Data], [Mobile Quality Assurance], [Push], [AppScan Mobile Analyzer]  IBM Mobile Cloud Services SDK Developer Guide http://mbaas-gettingstarted.ng.bluemix.net/index.html  各プラットフォームごと(Android, iOS, JavaScriptなど)のSDKのガイド  REST APIのAPI Docもあり  Getting Started with Twilio https://www.twilio.com/docs  DeveloperWorks「Mobile devlopment」Zone記事(英語)ポータル http://www.ibm.com/developerworks/mobile/library/?contentarea_by=Mobile+ development  DeveloperWorks「Mobile devlopment」ゾーン記事(日本語)ポータル http://www.ibm.com/developerworks/jp/views/mobile/libraryview.jsp
  • 45.
    © 2014 IBMCorporation 45 IBM Bluemix www.bluemix.net 参考資料  個別のサービス使⽤の記事  Mobile Data  Mobile Data クラウド・サービスを利⽤して Android アプリを作成する http://www.ibm.com/developerworks/jp/mobile/library/mo-android-mobiledata-app/index.html  Mobile Data クラウド・サービスを利⽤して iOS アプリを作成する http://www.ibm.com/developerworks/jp/mobile/library/mo-ios-mobiledata-app/index.html  Mobile Data クラウド・サービスを利⽤した iOS アプリを拡張して Worklight を統合する http://www.ibm.com/developerworks/jp/mobile/library/mo-ios-mobiledata-worklight- app/index.html  iBeacon と IBM Mobile Data サービスを使⽤して時間とともに変化する情報を管理するアプリ を構築する http://www.ibm.com/developerworks/jp/mobile/library/mo-bluemix-ibeacons/index.html  Extend an Android app using the IBM Mobile Cloud service to integrate with Worklight http://www.ibm.com/developerworks/mobile/library/mo-android-mobiledata-worklight- app/index.html  Build a hybrid mobile app with Cordova and the IBM Bluemix Mobile Data service http://www.ibm.com/developerworks/mobile/library/mo-cordova-md-app/index.html  Push  Push クラウド・サービスを利⽤して Android アプリを拡張する http://www.ibm.com/developerworks/jp/mobile/library/mo-android-push-app/index.html  5 分以内にモバイル・アプリケーションからプッシュ通知を送信する http://www.ibm.com/developerworks/jp/mobile/library/mo-push-apache-cordova-app/index.html  Leverage push capabilities in hybrid mobile apps with Cordova plugins for Bluemix http://www.ibm.com/developerworks/mobile/library/mo-cordova-push-app/index.html
  • 46.
    © 2014 IBMCorporation 46 IBM Bluemix www.bluemix.net 参考資料  Mobile Application Security  Enhance an Android app with Google+ authentication http://www.ibm.com/developerworks/mobile/library/mo-android-googleauth- app/index.html?ca=drs-  Twilio  Twilio クラウド・サービスを利⽤して Android アプリと iOS アプリにテキスト・メッセージン グ機能を追加する http://www.ibm.com/developerworks/jp/mobile/library/mo-android-twilio-app/index.html  Mobile Quality Assurance  完璧ではないモバイル・アプリケーションを作成する http://www.ibm.com/developerworks/jp/mobile/library/mo-build-imperfect-mobile-app/index.html  Distribute mobile apps to testers over the air with IBM Mobile Quality Assurance http://www.ibm.com/developerworks/mobile/library/mo-otadistribution-mqa-app/index.html  その他  IBM Bluemix 上でバックエンドのクラウド・サービスを作成して、モバイル・アプリと Web ア プリを迅速に構築する http://www.ibm.com/developerworks/jp/cloud/library/cl-rapiddev-app/index.html  Cloudant を使⽤して Bluemix 上で Famo.us モバイル・アプリを自動化する http://www.ibm.com/developerworks/jp/cloud/library/cl-bluemix-famous-mobile/index.html  Jumping through Hadoop: Stream Big Data video on a mobile app by integrating IBM Worklight with IBM InfoSphere BigInsights on IBM Bluemix http://www.ibm.com/developerworks/mobile/library/mo-aim1408-worklight-biginsights/index.html
  • 47.
    © 2014 IBMCorporation 47 IBM Bluemix www.bluemix.net IBM Bluemix www.bluemix.net