Upload
ibm
View
802
Download
0
Embed Size (px)
Citation preview
IBM Bluemixwww.bluemix.net
IBM Bluemixそこが知りたい!
テクニカル・セミナー
日本アイ・ビー・エム株式会社
SWG WebSphere事業部 中島 由貴
SWG WebSphere事業部 佐々木 志門
日本アイ・ビー・エムシステムズ・エンジニアリング株式会社
ソーシャル&モバイル 青木 悟大
デモで理解する!IBM Bluemixモバイル・サービス
© 2014 IBM Corporation2
IBM Bluemixwww.bluemix.net
ご注意
この資料は日本アイ・ビー・エム株式会社および日本アイ・ビー・エム システムズ・エンジニアリング株式会社の正式なレビューを受けておりません。
資料の内容には正確を期するよう注意しておりますが、この資料の内容は2014年09月現在の情報であり、製品の新しいリリース、修正などによって動作/仕様が変わる可能性があります。
当資料は、資料内で説明されている製品の仕様を保証するものではありません。従って、この情報の利⽤またはこれらの技法の実施はひとえに使⽤者の責任において為されるものであり、資料の内容によって受けたいかなる被害に関しても⼀切の補償をするものではありません。
また、IBM、IBMロゴおよびibm.comは、世界の多くの国で登録されたInternational Business Machines Corporationの商標です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点でのIBMの商標リストについてはhttp://www.ibm.com/legal/copytrade.shtmlをご覧ください。
© 2014 IBM Corporation3
IBM Bluemixwww.bluemix.net
アジェンダ
モバイル関連サービス概要
API呼び出しのモバイル・サービスdemo.1 : モバイル・サービスを使⽤したモバイル・アプリ
API呼び出しのモバイル・サービスの実装
その他のモバイル・サービスdemo.2 : Mobile Quality Assuranceモバイル・サービス
FAQ
まとめ
© 2014 IBM Corporation5
IBM Bluemixwww.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
SecurityIBM
Bluemix モバイル・サービスのアクセス制御を集中管理。
[Push]、[Mobile Data]サービス利用における前提。MBaaS
Mobile Data IBM
クラウド上のデータ・ストア(オブジェクト形式)を提供。
クライアント・アプリからは、プラットフォームごとにネイティブなオブジェクトを操作可能(SDK提供)。
データストアの管理や実装は隠蔽。
MBaaS
Mobile Quality
AssuranceIBM
モバイル・アプリのクラッシュ・ログやユーザー・フィードバックなどのアプリの品質指標の管理を提供。 Other
Push IBM複数のモバイル・プラットフォームに対して、プッシュ通知サービスを提供。 MBaaS
Twilio 3rd
Party
モバイル・アプリと電話(音声)やSMSを連携させるサービスを提供。 MBaaS
SecurityAppScan Mobile
Analyzer
IBM
Beta
Androidモバイル・アプリのソースコードをスキャンし、セキュリティーの問題をレポート。 Other
© 2014 IBM Corporation6
IBM Bluemixwww.bluemix.net
Bluemixのモバイル・サービスとは
MBaaS (Mobile Backend as a Service)
モバイル・アプリが必要とするサーバー側の様々な機能をインターネットを通じてサービスとして提供するクラウド・サービスの⼀種
提供される機能の例
ユーザー認証
データ保管
プッシュ通知
アプリケーション開発者はこれらの機能のAPIを呼び出すことで、アプリケーションの⼀部として取り込むことができる
© 2014 IBM Corporation7
IBM Bluemixwww.bluemix.net
Bluemixモバイル・サービス (MBaaS)の特徴
サービスはクラウド上で提供
ミドルウェアのデプロイや管理は不要
3rdパーティーのサービスも活⽤可能
マルチ言語サポートの⼀貫したSDK
Android Java
iOS Objective-C
JavaScript (Web, Cordova, Worklight, Node.js)
API呼び出しだけでなく、開発やテストを支援するサービスも提供
Mobile
Web
Node.js
© 2014 IBM Corporation8
IBM Bluemixwww.bluemix.net
2種類のモバイル関連サービス
クライアント・アプリからサービスのAPIをコール:
MBaaS
Mobile Data, Push, Twilioなど
その他:
モバイル・アプリのテスト/開発などをサポート
AppScan Mobile Analyzer、RapidApps
アプリ全体に機能を追加
Mobile Quality Assurance
Mobile Quality Assurance
© 2014 IBM Corporation9
IBM Bluemixwww.bluemix.net
API呼び出しのモバイル・サービス
Mobile Application Security
Mobile Data
Push
Twilio
© 2014 IBM Corporation10
IBM Bluemixwww.bluemix.net
Mobile Dataサービス
スケーラブルなCloudデータベース
Cloudantベース
異なるモバイル・クライアントとデータ共有
シンプルなAPI/SDK提供
Objective-C (iOS), Java (Android), JavaScript
各プラットフォームごとのネイティブ・ライクなオブジェクトを格納するAPI
例えば、JavaScriptのプラットフォームでは、JSONオブジェクトとしてCRUD操作可能
RDBのスキーマやSQLの知識は不要
ファイル同期
オブジェクトだけでなく、ファイルの共有も可能
© 2014 IBM Corporation11
IBM Bluemixwww.bluemix.net
Pushサービス
Push通知を実現デバイス上でアプリが起動していなくても、
メッセージを通知
人や時間に応じたPush通知を実現可能
プラットフォーム固有のAPIを隠蔽提供APIの種類
Mobile Cloud Services SDKObjective-C (iOS), Java (Android), JavaScript
REST API
Bluemixコンソール
柔軟な通知先の選択All
特定のユーザー
特定のタグを購読するグループ
特定のプラットフォーム
© 2014 IBM Corporation12
IBM Bluemixwww.bluemix.net
Mobile Application Securityサービス
モバイル・アプリへのアクセス制御
アプリ認証
特定のアプリからのみアクセスを許可
Androidのパッケージ名
iOSのBundle ID
ユーザー/デバイス認証
GoogleアカウントまたはWorklightのユーザー認証をモバイルアプリに構成
特定のユーザー/デバイスのアクセス無効化をコンソールから制御
備考
Pushサービス、Mobile Dataサービスの前提
© 2014 IBM Corporation13
IBM Bluemixwww.bluemix.net
Mobile Application SecurityのGoogleアカウント認証
Google+のSDKを使⽤
GoogleアカウントとOAuth認証
アプリから別ブラウザーが起動し、Googleアカウント認証を実施
OKであれば、BluemixのMASに認証結果とユーザーIDを通知
© 2014 IBM Corporation14
IBM Bluemixwww.bluemix.net
Twilioサービス
音声、SMS、VoIPサービスを付与
Voice
電話回線を⽤いて高品質で安全な音声通話を実現
Client (VoIP)
インターネット回線を⽤いてデバイスから音声通話を可能に
SMS
アプリケーションから電話へメッセージを送受信
国内では、KDDIがTwilioサービスを提供
KDDI「Twilio の機能」
http://twilio.kddi-web.com/function/
© 2014 IBM Corporation15
IBM Bluemixwww.bluemix.net
Demo.1 :
Bluemixモバイル・サービスを使⽤したモバイル・アプリ
Mobile Data
Push
Twilio
© 2014 IBM Corporation16
IBM Bluemixwww.bluemix.net
API呼び出しのモバイル・サービスの実装
Mobile Application Security
Mobile Data
Push
Twilio
© 2014 IBM Corporation17
IBM Bluemixwww.bluemix.net
各モバイル・サービスの関連
Runtime
(Node.js)
Mobile Application
SecurityMobile Data
Push
Mobile
Device
Bluemixクラウド・アプリ
Bluemix
Mobile SDK
Mobile以外
(バックエンド・システムなど)
REST
call
※モバイル・アプリ以外から利⽤できるSDKとしてNode.jsのSDKを提供
© 2014 IBM Corporation18
IBM Bluemixwww.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 Corporation19
IBM Bluemixwww.bluemix.net
Bluemixアプリの作成:“Mobile Cloud”ボイラープレート
“Mobile Cloud”ボイラープレートの構成SDK for Node.js
Mobile Application Security
Push
Mobile Data
Bluemixモバイル
アプリ作成
© 2014 IBM Corporation20
IBM Bluemixwww.bluemix.net
Bluemixモバイル・アプリの内容
App route, App ID, App Secretを確認
クライアント・アプリの開発時に必要
必要に応じて、サービスを追加(Twilioなど)
各サービスの設定を追加
例えば、PushにおけるGCMやAPNSへの接続情報
Bluemixモバイル
アプリ作成
© 2014 IBM Corporation21
IBM Bluemixwww.bluemix.net
各モバイル・サービスの設定
Bluemixコンソールの各サービス画面で実施
Push
Apple、GoogleのPushサービス(APNS, GCM)との接続設定
ユーザー認証の設定Mobile Application Security
アプリ認証
Android:パッケージ名、iOS:Bundle IDでアクセス制御
ユーザー認証
GoogleアカウントまたはWorklightの認証との統合
クライアント・アプリ側のコーディングも必要
ユーザー/デバイス単位のアクセス制御
Bluemixモバイル
アプリ作成
© 2014 IBM Corporation22
IBM Bluemixwww.bluemix.net
Bluemix Mobile SDK
SDK提供プラットフォーム Android iOSWeb App Node.jsWorklight 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 Corporation23
IBM Bluemixwww.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 Corporation24
IBM Bluemixwww.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 Corporation25
IBM Bluemixwww.bluemix.net
Bluemix MobileサービスのREST API
REST API
モバイル・クライアントだけでなく、
BackendシステムからのPush配信やアプリ管理で利⽤
バックエンド
システムに組込
© 2014 IBM Corporation26
IBM Bluemixwww.bluemix.net
各モバイル・サービスの管理/統計情報の確認
AnalyticsタブMobile Application Security
Bluemixサービスへのリクエスト数のサマリー
Mobile Dataストレージ容量、APIコール数
PushPush配信の送信履歴
analyticsのREST APIで生データも取得可能
各サービス固有の管理機能Mobile Data
データのインポート、参照/削除
PushPush配信の実行購読(Subscribe)、グループ(Tag)
状況の確認
Mobile DataのAnalytics情報
Bluemix
サービスの管理
© 2014 IBM Corporation27
IBM Bluemixwww.bluemix.net
PushサービスのコンソールからのPush配信
Notificationタブ
実際にPushをコンソールから配信
Bluemix
サービスの管理
© 2014 IBM Corporation28
IBM Bluemixwww.bluemix.net
API呼び出し以外のモバイル・サービス
Mobile Quality Assurance
AppScan Mobile Analyzer
© 2014 IBM Corporation29
IBM Bluemixwww.bluemix.net
Mobile Quality Assurance (MQA) サービス
エンド・ユーザーとのつながり
ニーズの理解
情報に基づく開発方針の決定
報告の解析
実装
更新されたアプリの配布
• テスト対象の入手とテスト
• 不具合の再現
• レポート
• 開発側とのつながり
• アプリの活⽤
• 改善提案
テスト担当者 ユーザー開発者ビジネス・オーナー
4
1
3
2
端末上でのバグの報告: アプリケーション上で直接バグやクラッシュをレポート1
4
2
3
アプリケーションの配布制御: テスト担当者に必要なビルドを迅速に展開
端末上でのフィードバック: アプリケーション上で直接フィードバックを送信
フィードバックの分析*: アプリ配布元と連携し品質評価とセンチメント分析を実施* 2014/07 時点で英語/米国市場のみでご利⽤可能。日本語/日本市場には将来バージョンで対応予定
モバイル・アプリの品質向上
© 2014 IBM Corporation30
IBM Bluemixwww.bluemix.net
MQAサービスの使い方
Bluemixコンソール
MQAサービス作成
対象プラットフォームを選択
テスト対象アプリの開発環境
MQAのライブラリーを組み込み
テスト⽤と実働⽤の2種類
MQAを有効化する設定とお決まりのコードを追加
テスト実施
Bluemixコンソール
Bugレポート、
クラッシュ・ログの確認
© 2014 IBM Corporation31
IBM Bluemixwww.bluemix.net
(参考) MQAを使うためのアプリへの追加コード
SDK のダウンロード
SDK のインポート
MQA セッションの開始・終了⽤コードを追加
MQA の各機能を使⽤するためのコードを追加
アプリケーションをビルド・配布
【コード例(Android の場合) 】
© 2014 IBM Corporation32
IBM Bluemixwww.bluemix.net
Bugの報告
・画面キャプチャー上に直接フリーハンドでマークやコメント
・Bug内容を文章でコメント
端末をシェイクし
報告画面に遷移
① ②
© 2014 IBM Corporation34
IBM Bluemixwww.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 Corporation35
IBM Bluemixwww.bluemix.net
AppScan Mobile Analyzer (Beta)
モバイル・アプリのソースコードをスキャン解析し、セキュリティーの問題/対応策を報告
AppScanのエンジンを使⽤
対象:Androidアプリ(apk)のみ (2014年9月時点)
アプリケーションのスキャン
解析(問題の発見)
アプリケーション・セキュリティー検査の自動化
レポート
FIX
1 2 3
© 2014 IBM Corporation36
IBM Bluemixwww.bluemix.net
AppScan Mobile Analyzerサービスの使い方
AppScan Mobile Analyzerサービスの作成
Android APKファイルをアップロード
スキャン開始
スキャン終了後、メール通知
スキャン結果をコンソールで確認
PDFレポートをダウンロード
Bluemix
コンソール
のみ使⽤
© 2014 IBM Corporation37
IBM Bluemixwww.bluemix.net
結果レポート
レポートは3部構成
Executive Summary(サマリー)
Issues(問題の詳細)
FixRecommendations(対応策)
© 2014 IBM Corporation39
IBM Bluemixwww.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 Corporation41
IBM Bluemixwww.bluemix.net
Bluemixモバイル・サービスとWorklightの位置づけ
Bluemixモバイル・サービスとWorklightは相互に補完的
個別に使⽤することは可能
組み合わせて使⽤することも可能
BackendSystem 1
BackendSystem 2
Worklight Server
Worklightの
モバイル・アプリ
Mobile Application Securityで、Bluemixの認証をWorklightに委譲可能
Pushサービスは、WorklightとBluemixで⼀部重複
Bluemixクラウド
自社データセンタ
または
SoftLayerなどのクラウド
© 2014 IBM Corporation43
IBM Bluemixwww.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 Corporation44
IBM Bluemixwww.bluemix.net
参考資料
IBM Bluemix Docshttps://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 Guidehttp://mbaas-gettingstarted.ng.bluemix.net/index.html 各プラットフォームごと(Android, iOS, JavaScriptなど)のSDKのガイド REST APIのAPI Docもあり
Getting Started with Twiliohttps://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 Corporation45
IBM Bluemixwww.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 Worklighthttp://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 servicehttp://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 Bluemixhttp://www.ibm.com/developerworks/mobile/library/mo-cordova-push-app/index.html
© 2014 IBM Corporation46
IBM Bluemixwww.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 Assurancehttp://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