Couchbase Mobileによる 
SFA(営業支援システム)デモ
自己紹介 
木下 文治(きのしたふみはる) 
株式会社 Green IT Systems 
! 
・基本的にJavaエンジニア 
・Couchbaseは1年半ほど前からいろいろ触っています 
! 
今回のCouchbase Mobileのデモについては、SCSKさんとの協業で 
やらせていただいています。 
Copyright(c) SCSK Corporation
Couchbase Mobileとは
Couchbase Mobileとは 
Copyright(c) SCSK Corporation 
Couchbase 
Server 
JS N 
JS N 
JS N 
• JSON on Device! 
– 端末からNoSQL Databaseの 
利用がますます容易に 
• JSON on Wire! 
– データ形式の変換が不要に 
• JSON on Cloud! 
– 柔軟なデータモデル! 
– ハイパフォーマンス! 
– 容易な拡張性 
JSON Anywhere 
Lite Sync Gateway Server
Couchbase Mobileとは 
①Document-oriented 
Copyright(c) SCSK Corporation 
③Easy to scale 
・Couchbase ServerとSync ! 
 Gatewayはスケールアウトが! 
 容易。! 
・急激なユーザ数増加にも柔軟に! 
 対応できる。 
④Syncable 
・信頼性の低い通信回線で 
も、回線断/回復に自動的 
に対応し、同期処理を続行。 
⑤オフラインでも動作 
・ドキュメント指向(JSON) NoSQL。! 
・Set/Getが実行可能。! 
・View/Query が実行可能。 
・オフライン状態でも、! 
 Set/Get/View/Query ! 
が実行可能。! 
・開発者はオフライン状態を意! 
 識しなくてよい。 
②Lightweight 
・組み込み型で軽量・高速。
アーキテクチャ
Couchbase Mobile 全体構成 
Copyright(c) SCSK Corporation 
Couchbase Server 
SERVER 1 SERVER 2 SERVER 3 
Sync Gateway 
Channel 
Sync Gateway 
Channel Channel 
Channel 
Couchbase Lite for iOS and Android 
アーキテクチャ
アーキテクチャ 
コンポーネント概要最新バー 
Copyright(c) SCSK Corporation 
ジョン 
サポート" 
OS 
Couchbase Server ・Document型データベース(NoSQL)! 
・キャッシュメモリベースのデータベース! 
・データへの高速アクセス(1ms以下)! 
・シェアードナッシング構成でありスケールアウトが容易 
2.5.1 RedHat! 
Ubuntu! 
Windows! 
Mac OS-X 
Sync Gateway ・Couchbase LiteからCouchbase Serverへのデータ同期  
処理を受け付けるゲートウェイサーバ! 
・ユーザ管理・チャネル制御・リビジョン管理を行う! 
・シェアードナッシング構成でありスケールアウトが容易 
1.0.2 RedHat! 
Ubuntu! 
Windows! 
Mac OS-X! 
Couchbase Lite ・モバイル端末上に搭載可能なNoSQLデータベース! 
・Couchbase Serverと同様の操作をサポート! 
・Sync Gatewayとの連携により、サーバ上のデータとの 
同期が可能 
1.0.2 iOS! 
Android! 
構成コンポーネント概要 
※2014年9月1日現在
各コンポーネントの説明
Copyright(c) SCSK Corporation 
Server 
・Moblieに特化した仕組みがあるわけではなく、同期のためのデータを 
保持する層として利用される" 
! 
・利用するBucketはCouchbase Mobile用に新規に用意する必要がある! 
 ! 
・ドキュメントだけでなく、ユーザアカウントやアクセス制御の情報も 
保持! 
 ! 
・データ操作は、必ずSync Gateway経由で行う必要がある
Copyright(c) SCSK Corporation 
Sync Gateway 
・ユーザ認証機能! 
 (HTTP認証、Facebook、Persona、外部認証との連携)! 
! 
・Sync Functionによるドキュメント更新時のバリデーション、アクセ 
スコントロール、チャネル設定! 
! 
・チャネルによるドキュメントの配信制御! 
! 
・更新ドキュメントのPUSH配信! 
! 
・ドキュメントは一切保持しない
Copyright(c) SCSK Corporation 
Lite 
・モバイルアプリ用のNoSQLデータベース(単独での利用も可能)! 
! 
・Sync Gatewayと連携することで、簡単にサーバとデータを同期! 
 (同期開始後は同期を意識する必要はない)! 
! 
・同期は双方向だけでなく、配信のみ、更新のみの指定も可能! 
! 
・オフラインでもデータの参照、更新が可能(更新したデータは、オン 
ラインになった際に自動的にサーバ上のデータと同期される)
ドキュメント同期の例
タイトル:ネット不正送金! カテゴリ:国内! 
内容: XXXXX 
タイトル:iPhone6発表! 
カテゴリ:IT! 
内容: XXXXX 
タイトル:全米オープンテ! カテゴリ:スポーツ! 
内容: XXXXX 
Copyright(c) SCSK Corporation 
Sync Gateway 
…! 
…! 
… Lite 
国内ニュースのみ国内とITニューススポーツニュースのみ 
コンテンツ管理者による! 
データ登録 
…! 
…! 
… 
…! 
…! 
… 
サーバから端末へのコンテンツ配信 
カテゴリをもとに! 
配信チャネルを決定 
国内 
IT 
…! 
…! 
… 
Sync 
Function 
スポーツ
Copyright(c) SCSK Corporation 
Sync Gateway 
拠点をチャネルとして! 
データを登録 
機器情報" 
拠点:東京" 
機器名:NW1 
Server 
Lite 
参照のみ 
東京 
xx xx xx xx xx 
xx xx xx xx xx 
xx xx xx xx xx 
xx xx xx xx xx 
管理者が! 
管理画面より! 
収集結果を確認 
端末からサーバへのデータ送信 
Sync 
Function 
機器情報" 
拠点:東京" 
機器名:NW2 
機器情報" 
拠点:大阪" 
機器名:NW1
端末間での双方向同期 
チャットルーム作成 
Copyright(c) SCSK Corporation 
Sync Gateway 
ルームIDをチャネルとし、! 
参加者にチャネルのアクセス権を! 
付与 
Aさん 
メッセージ! 
書き込み 
BさんCさんDさん 
Lite 
Sync 
Function 
ルームID 
メッセージ 
メッセージ 
メッセージ 
ルームID: xxxx 
参加者:Aさん 
    Bさん 
    Cさん 
ルームID ルームID
デモ
SFA(Sales Force Automation) デモイメージ 
所属部署である! 
第1営業部のチャネル! 
に登録 
第1営業部 
Copyright(c) SCSK Corporation 
Sync Gateway 
第1営業部 
AさんBさんCさんDさん 
Lite 
Sync! 
Function 
・自分の位置情報! 
・商談時のメモ! 
・メッセージ 
Server 
管理者(PC) 
チャネルによる 
アクセス制御あり 
第2営業部 
他ユーザの 
の情報 
第2営業部のメンバーには! 
データは配信されない 
他ユーザの 
の情報
デモ画面イメージ 
Copyright(c) SCSK Corporation 
モバイルアプリ画面(iOSアプリケーション) 
 アプリにログインしているユーザを中心に動作。 
 位置情報をチーム内で共有し、各担当者が現在 
 どこにいるかをリアルタイムに表示します。 
 また、メモの共有やメッセージの送受信も可能。 
  
管理画面(PC上のWEBブラウザ) 
 管理者が各担当の状況を参照するために利用する 
 PCのブラウザ用の画面。 
 今回のデモでは各担当者の位置と更新時間を確認 
 するために利用しています。 
 
デモで利用しているデータの種類 
種別概要 同期範囲備考 
商談先情報商談先の名称および位置情報をもつ 
Copyright(c) SCSK Corporation 
ドキュメント 
全体初期データとして利用 
スケジュール一日の訪問先および予定時刻を保持 
するドキュメント 
全体初期データとして利用 
位置情報端末の現在位置を保持するドキュメ 
ント 
チーム内モバイルアプリケーション 
が一定時間毎に生成する 
商談メモ商談先に対するメモを保持するドキ 
ュメント 
チーム内必要に応じて生成 
メッセージユーザ間で直接やり取りするメッセ 
ージデータを保持するドキュメント 
送信者および 
受信者のみ 
必要に応じて生成
実際のコード例 
CBLManager *manager = [CBLManager sharedInstance]; 
CBLDatabase *database = [manager databaseNamed:@”local_backet” error: &error]; !! 
[[database viewNamed: DELIVERY_VIEW_NAME] 
 setMapBlock: MAPBLOCK({ 
Copyright(c) SCSK Corporation 
NSString *key = [doc valueForKey:@"user"]; 
NSString *value=[doc valueForKeyPath:@"datestring"]; 
emit(key, @[value]); 
})reduceBlock: NULL version: @“1"]; !! 
NSURL *url = [NSURL URLWithString: 
[NSString stringWithFormat:@“http://%@:%@@%@”,host,user,passwd,uri] 
] 
CBLReplication *pull = [database createPullReplication: url]; 
CBLReplication *push = [database createPushReplication: url]; 
pull.continuous = YES; 
push.continuous = YES; 
[pull start]; 
[push start]; 
ローカルデータ 
ベースの設定 
View定義 
の設定 
(必要な場合) 
同期処理の 
設定と開始 
(例では双方向 
で設定) 
同期を行うために必要となる処理の抜粋 
上記処理が完了すれば、後はローカルのDBが自動的に同期されるようになります。 
以降は、ローカルのDBが常に最新化されている想定でデータを扱うことができます。
まとめ
6. まとめ 
・同期機能を利用するには、サーバに接続して同期方向を指定するだけ 
! 
・同期後のデータは端末のデータベースにも反映されるため、オフ 
 ラインであっても利用可能 
! 
・同期の制御に関する処理を開発者は全く気にしなくて良い 
! 
・チャネルによるアクセス制御により、参照可能なデータのみをPUSH 
 で配信 
! 
・データの同期は必須ではなく、モバイルアプリ用のNoSQLデータ 
 ベースとしても利用可能 
Copyright(c) SCSK Corporation
ちょっと宣伝
各種セミナー/トレーニングのご紹介 
Couchbase Server 導入/環境構築 Hands-On 無償トレーニング! 
! 
内容  :Couchbase Serverのインストール及び管理コンソールを使用した一連の環境構築・設定作業を 
Copyright(c) SCSK Corporation 
Hands-On形式にて学習できます。! 
対象者 :Couchbase Serverの導入を検討されている方! 
講習時間:3時間! 
開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。) 
Couchbase Server アーキテクチャ解説 設計・開発手法 有償セミナー! 
! 
内容  :Couchbaseアーキテクチャ、及び設計・開発手法の学習。開発について、Hands-On形式による 
プログラミング演習を行います。! 
対象者 :Couchbase Serverの導入を検討されている方! 
     Couchbase Serverを利用した設計・開発に興味のある方(Javaの知識必須) ! 
講習時間:1日(アーキテクチャ解説 半日/ 設計・開発手法 半日)! 
開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。)
各種セミナー/トレーニングのご紹介 
Couchbase Server 運用編 有償セミナー ! 
! 
内容  :Couchbase Serverを運用していくために必要な知識・技術を習得できます。! 
対象者 :Couchbase Serverの導入を検討されている方! 
     Couchbase Serverの運用・保守を行われている/行う予定の方 ! 
講習時間:3時間! 
開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。) 
Couchbase Mobile編 有償セミナー ! 
! 
内容  :Couchbase Mobileの概要説明及び導入・開発に必要な知識・技術を習得できます。! 
対象者 :Couchbase Mobileに興味のある方! 
     Couchbase Mobileの導入を検討されている方 ! 
講習時間:3時間! 
開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。) 
Copyright(c) SCSK Corporation

Couchbase meetup21040925 sfa demo

  • 1.
  • 2.
    自己紹介 木下 文治(きのしたふみはる) 株式会社Green IT Systems ! ・基本的にJavaエンジニア ・Couchbaseは1年半ほど前からいろいろ触っています ! 今回のCouchbase Mobileのデモについては、SCSKさんとの協業で やらせていただいています。 Copyright(c) SCSK Corporation
  • 3.
  • 4.
    Couchbase Mobileとは Copyright(c)SCSK Corporation Couchbase Server JS N JS N JS N • JSON on Device! – 端末からNoSQL Databaseの 利用がますます容易に • JSON on Wire! – データ形式の変換が不要に • JSON on Cloud! – 柔軟なデータモデル! – ハイパフォーマンス! – 容易な拡張性 JSON Anywhere Lite Sync Gateway Server
  • 5.
    Couchbase Mobileとは ①Document-oriented Copyright(c) SCSK Corporation ③Easy to scale ・Couchbase ServerとSync !  Gatewayはスケールアウトが!  容易。! ・急激なユーザ数増加にも柔軟に!  対応できる。 ④Syncable ・信頼性の低い通信回線で も、回線断/回復に自動的 に対応し、同期処理を続行。 ⑤オフラインでも動作 ・ドキュメント指向(JSON) NoSQL。! ・Set/Getが実行可能。! ・View/Query が実行可能。 ・オフライン状態でも、!  Set/Get/View/Query ! が実行可能。! ・開発者はオフライン状態を意!  識しなくてよい。 ②Lightweight ・組み込み型で軽量・高速。
  • 6.
  • 7.
    Couchbase Mobile 全体構成 Copyright(c) SCSK Corporation Couchbase Server SERVER 1 SERVER 2 SERVER 3 Sync Gateway Channel Sync Gateway Channel Channel Channel Couchbase Lite for iOS and Android アーキテクチャ
  • 8.
    アーキテクチャ コンポーネント概要最新バー Copyright(c)SCSK Corporation ジョン サポート" OS Couchbase Server ・Document型データベース(NoSQL)! ・キャッシュメモリベースのデータベース! ・データへの高速アクセス(1ms以下)! ・シェアードナッシング構成でありスケールアウトが容易 2.5.1 RedHat! Ubuntu! Windows! Mac OS-X Sync Gateway ・Couchbase LiteからCouchbase Serverへのデータ同期  処理を受け付けるゲートウェイサーバ! ・ユーザ管理・チャネル制御・リビジョン管理を行う! ・シェアードナッシング構成でありスケールアウトが容易 1.0.2 RedHat! Ubuntu! Windows! Mac OS-X! Couchbase Lite ・モバイル端末上に搭載可能なNoSQLデータベース! ・Couchbase Serverと同様の操作をサポート! ・Sync Gatewayとの連携により、サーバ上のデータとの 同期が可能 1.0.2 iOS! Android! 構成コンポーネント概要 ※2014年9月1日現在
  • 9.
  • 10.
    Copyright(c) SCSK Corporation Server ・Moblieに特化した仕組みがあるわけではなく、同期のためのデータを 保持する層として利用される" ! ・利用するBucketはCouchbase Mobile用に新規に用意する必要がある!  ! ・ドキュメントだけでなく、ユーザアカウントやアクセス制御の情報も 保持!  ! ・データ操作は、必ずSync Gateway経由で行う必要がある
  • 11.
    Copyright(c) SCSK Corporation Sync Gateway ・ユーザ認証機能!  (HTTP認証、Facebook、Persona、外部認証との連携)! ! ・Sync Functionによるドキュメント更新時のバリデーション、アクセ スコントロール、チャネル設定! ! ・チャネルによるドキュメントの配信制御! ! ・更新ドキュメントのPUSH配信! ! ・ドキュメントは一切保持しない
  • 12.
    Copyright(c) SCSK Corporation Lite ・モバイルアプリ用のNoSQLデータベース(単独での利用も可能)! ! ・Sync Gatewayと連携することで、簡単にサーバとデータを同期!  (同期開始後は同期を意識する必要はない)! ! ・同期は双方向だけでなく、配信のみ、更新のみの指定も可能! ! ・オフラインでもデータの参照、更新が可能(更新したデータは、オン ラインになった際に自動的にサーバ上のデータと同期される)
  • 13.
  • 14.
    タイトル:ネット不正送金! カテゴリ:国内! 内容:XXXXX タイトル:iPhone6発表! カテゴリ:IT! 内容: XXXXX タイトル:全米オープンテ! カテゴリ:スポーツ! 内容: XXXXX Copyright(c) SCSK Corporation Sync Gateway …! …! … Lite 国内ニュースのみ国内とITニューススポーツニュースのみ コンテンツ管理者による! データ登録 …! …! … …! …! … サーバから端末へのコンテンツ配信 カテゴリをもとに! 配信チャネルを決定 国内 IT …! …! … Sync Function スポーツ
  • 15.
    Copyright(c) SCSK Corporation Sync Gateway 拠点をチャネルとして! データを登録 機器情報" 拠点:東京" 機器名:NW1 Server Lite 参照のみ 東京 xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx 管理者が! 管理画面より! 収集結果を確認 端末からサーバへのデータ送信 Sync Function 機器情報" 拠点:東京" 機器名:NW2 機器情報" 拠点:大阪" 機器名:NW1
  • 16.
    端末間での双方向同期 チャットルーム作成 Copyright(c)SCSK Corporation Sync Gateway ルームIDをチャネルとし、! 参加者にチャネルのアクセス権を! 付与 Aさん メッセージ! 書き込み BさんCさんDさん Lite Sync Function ルームID メッセージ メッセージ メッセージ ルームID: xxxx 参加者:Aさん     Bさん     Cさん ルームID ルームID
  • 17.
  • 18.
    SFA(Sales Force Automation)デモイメージ 所属部署である! 第1営業部のチャネル! に登録 第1営業部 Copyright(c) SCSK Corporation Sync Gateway 第1営業部 AさんBさんCさんDさん Lite Sync! Function ・自分の位置情報! ・商談時のメモ! ・メッセージ Server 管理者(PC) チャネルによる アクセス制御あり 第2営業部 他ユーザの の情報 第2営業部のメンバーには! データは配信されない 他ユーザの の情報
  • 19.
    デモ画面イメージ Copyright(c) SCSKCorporation モバイルアプリ画面(iOSアプリケーション)  アプリにログインしているユーザを中心に動作。  位置情報をチーム内で共有し、各担当者が現在  どこにいるかをリアルタイムに表示します。  また、メモの共有やメッセージの送受信も可能。   管理画面(PC上のWEBブラウザ)  管理者が各担当の状況を参照するために利用する  PCのブラウザ用の画面。  今回のデモでは各担当者の位置と更新時間を確認  するために利用しています。  
  • 20.
    デモで利用しているデータの種類 種別概要 同期範囲備考 商談先情報商談先の名称および位置情報をもつ Copyright(c) SCSK Corporation ドキュメント 全体初期データとして利用 スケジュール一日の訪問先および予定時刻を保持 するドキュメント 全体初期データとして利用 位置情報端末の現在位置を保持するドキュメ ント チーム内モバイルアプリケーション が一定時間毎に生成する 商談メモ商談先に対するメモを保持するドキ ュメント チーム内必要に応じて生成 メッセージユーザ間で直接やり取りするメッセ ージデータを保持するドキュメント 送信者および 受信者のみ 必要に応じて生成
  • 21.
    実際のコード例 CBLManager *manager= [CBLManager sharedInstance]; CBLDatabase *database = [manager databaseNamed:@”local_backet” error: &error]; !! [[database viewNamed: DELIVERY_VIEW_NAME]  setMapBlock: MAPBLOCK({ Copyright(c) SCSK Corporation NSString *key = [doc valueForKey:@"user"]; NSString *value=[doc valueForKeyPath:@"datestring"]; emit(key, @[value]); })reduceBlock: NULL version: @“1"]; !! NSURL *url = [NSURL URLWithString: [NSString stringWithFormat:@“http://%@:%@@%@”,host,user,passwd,uri] ] CBLReplication *pull = [database createPullReplication: url]; CBLReplication *push = [database createPushReplication: url]; pull.continuous = YES; push.continuous = YES; [pull start]; [push start]; ローカルデータ ベースの設定 View定義 の設定 (必要な場合) 同期処理の 設定と開始 (例では双方向 で設定) 同期を行うために必要となる処理の抜粋 上記処理が完了すれば、後はローカルのDBが自動的に同期されるようになります。 以降は、ローカルのDBが常に最新化されている想定でデータを扱うことができます。
  • 22.
  • 23.
    6. まとめ ・同期機能を利用するには、サーバに接続して同期方向を指定するだけ ! ・同期後のデータは端末のデータベースにも反映されるため、オフ  ラインであっても利用可能 ! ・同期の制御に関する処理を開発者は全く気にしなくて良い ! ・チャネルによるアクセス制御により、参照可能なデータのみをPUSH  で配信 ! ・データの同期は必須ではなく、モバイルアプリ用のNoSQLデータ  ベースとしても利用可能 Copyright(c) SCSK Corporation
  • 24.
  • 25.
    各種セミナー/トレーニングのご紹介 Couchbase Server 導入/環境構築 Hands-On 無償トレーニング! ! 内容  :Couchbase Serverのインストール及び管理コンソールを使用した一連の環境構築・設定作業を Copyright(c) SCSK Corporation Hands-On形式にて学習できます。! 対象者 :Couchbase Serverの導入を検討されている方! 講習時間:3時間! 開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。) Couchbase Server アーキテクチャ解説 設計・開発手法 有償セミナー! ! 内容  :Couchbaseアーキテクチャ、及び設計・開発手法の学習。開発について、Hands-On形式による プログラミング演習を行います。! 対象者 :Couchbase Serverの導入を検討されている方!      Couchbase Serverを利用した設計・開発に興味のある方(Javaの知識必須) ! 講習時間:1日(アーキテクチャ解説 半日/ 設計・開発手法 半日)! 開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。)
  • 26.
    各種セミナー/トレーニングのご紹介 Couchbase Server 運用編 有償セミナー ! ! 内容  :Couchbase Serverを運用していくために必要な知識・技術を習得できます。! 対象者 :Couchbase Serverの導入を検討されている方!      Couchbase Serverの運用・保守を行われている/行う予定の方 ! 講習時間:3時間! 開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。) Couchbase Mobile編 有償セミナー ! ! 内容  :Couchbase Mobileの概要説明及び導入・開発に必要な知識・技術を習得できます。! 対象者 :Couchbase Mobileに興味のある方!      Couchbase Mobileの導入を検討されている方 ! 講習時間:3時間! 開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。) Copyright(c) SCSK Corporation