47
IBM Bluemix www.bluemix.net IBM Bluemix そこが知りたい! テクニカル・セミナー 日本アイ・ビー・エム株式会社 SWG WebSphere事業部 中島 由貴 SWG WebSphere事業部 佐々木 志門 日本アイ・ビー・エム システムズ・エンジニアリング株式会社 ソーシャル&モバイル 青木 悟大 デモで理解する! IBM Bluemixモバイル・サービス

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

  • 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 Corporation4

IBM Bluemixwww.bluemix.net

モバイル関連サービス概要

© 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 Corporation33

IBM Bluemixwww.bluemix.net

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 Corporation38

IBM Bluemixwww.bluemix.net

問題の詳細と対応策のレポート例

© 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 Corporation40

IBM Bluemixwww.bluemix.net

FAQ

Bluemix MobileサービスとWorklightの位置づけ

© 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 Corporation42

IBM Bluemixwww.bluemix.net

まとめ

© 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

© 2014 IBM Corporation47

IBM Bluemixwww.bluemix.net

IBM Bluemixwww.bluemix.net