couchbase meetup21040925 sfa demo

26
Couchbase Mobile による SFA (営業支援システム) デモ

Upload: ktoda

Post on 18-Jul-2015

172 views

Category:

Engineering


2 download

TRANSCRIPT

Couchbase MobileによるSFA(営業支援システム)デモ

Copyright(c) SCSK Corporation

自己紹介

木下 文治(きのしたふみはる) 株式会社 Green IT Systems

!・基本的にJavaエンジニア

・Couchbaseは1年半ほど前からいろいろ触っています

!今回のCouchbase Mobileのデモについては、SCSKさんとの協業でやらせていただいています。

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とは

Copyright(c) SCSK Corporation

Couchbase Mobileとは

①Document-oriented

⑤オフラインでも動作

④Syncable

③Easy to scale

・ドキュメント指向(JSON) NoSQL。!・Set/Getが実行可能。!・View/Query が実行可能。

・オフライン状態でも、! Set/Get/View/Query ! が実行可能。!・開発者はオフライン状態を意! 識しなくてよい。

・信頼性の低い通信回線でも、回線断/回復に自動的に対応し、同期処理を続行。

・Couchbase ServerとSync ! Gatewayはスケールアウトが! 容易。!・急激なユーザ数増加にも柔軟に! 対応できる。

②Lightweight・組み込み型で軽量・高速。

アーキテクチャ

Copyright(c) SCSK Corporation

SERVER 3SERVER 1 SERVER 2

Couchbase Server

Channel

Sync Gateway

Channel Channel

Sync Gateway

Channel

Couchbase Lite for iOS and Android

Couchbase Mobile 全体構成

アーキテクチャ

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と連携することで、簡単にサーバとデータを同期!

 (同期開始後は同期を意識する必要はない)!

!・同期は双方向だけでなく、配信のみ、更新のみの指定も可能!

!・オフラインでもデータの参照、更新が可能(更新したデータは、オンラインになった際に自動的にサーバ上のデータと同期される)

ドキュメント同期の例

Copyright(c) SCSK Corporation

タイトル:iPhone6発表!カテゴリ:IT!内容: XXXXX

タイトル:全米オープンテ!カテゴリ:スポーツ!内容: XXXXX

タイトル:ネット不正送金!カテゴリ:国内!内容: XXXXX

Sync Gateway

国内とITニュース国内ニュースのみ スポーツニュースのみ

コンテンツ管理者による!データ登録

…!…!…

…!…!…

…!…!…

Lite

サーバから端末へのコンテンツ配信

カテゴリをもとに!配信チャネルを決定

国内 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

デモ

Copyright(c) SCSK Corporation

第1営業部

SFA(Sales Force Automation) デモイメージ

Sync Gateway

第1営業部

Aさん Bさん Cさん Dさん

所属部署である!第1営業部のチャネル!に登録

Lite

Sync!Function

・自分の位置情報!・商談時のメモ!・メッセージ

Server

管理者(PC)

チャネルによる アクセス制御あり

第2営業部

他ユーザのの情報

第2営業部のメンバーには!データは配信されない

他ユーザのの情報

Copyright(c) SCSK Corporation

デモ画面イメージ

管理画面(PC上のWEBブラウザ)

 管理者が各担当の状況を参照するために利用する

 PCのブラウザ用の画面。

 今回のデモでは各担当者の位置と更新時間を確認

 するために利用しています。

 

モバイルアプリ画面(iOSアプリケーション)

 アプリにログインしているユーザを中心に動作。

 位置情報をチーム内で共有し、各担当者が現在

 どこにいるかをリアルタイムに表示します。

 また、メモの共有やメッセージの送受信も可能。

 

Copyright(c) SCSK Corporation

デモで利用しているデータの種類

種別 概要 同期範囲 備考商談先情報 商談先の名称および位置情報をもつ

ドキュメント全体 初期データとして利用

スケジュール 一日の訪問先および予定時刻を保持するドキュメント

全体 初期データとして利用

位置情報 端末の現在位置を保持するドキュメント

チーム内 モバイルアプリケーションが一定時間毎に生成する

商談メモ 商談先に対するメモを保持するドキュメント

チーム内 必要に応じて生成

メッセージ ユーザ間で直接やり取りするメッセージデータを保持するドキュメント

送信者および

受信者のみ必要に応じて生成

Copyright(c) SCSK Corporation

実際のコード例

CBLManager *manager = [CBLManager sharedInstance]; CBLDatabase *database = [manager databaseNamed:@”local_backet” error: &error]; !![[database viewNamed: DELIVERY_VIEW_NAME]  setMapBlock: MAPBLOCK({ 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が常に最新化されている想定でデータを扱うことができます。

まとめ

Copyright(c) SCSK Corporation

6. まとめ

・同期機能を利用するには、サーバに接続して同期方向を指定するだけ !・同期後のデータは端末のデータベースにも反映されるため、オフ  ラインであっても利用可能 !・同期の制御に関する処理を開発者は全く気にしなくて良い !・チャネルによるアクセス制御により、参照可能なデータのみをPUSH  で配信 !・データの同期は必須ではなく、モバイルアプリ用のNoSQLデータ  ベースとしても利用可能

ちょっと宣伝

Copyright(c) SCSK Corporation

Couchbase Server 導入/環境構築 Hands-On 無償トレーニング!!内容  :Couchbase Serverのインストール及び管理コンソールを使用した一連の環境構築・設定作業を

Hands-On形式にて学習できます。!対象者 :Couchbase Serverの導入を検討されている方!講習時間:3時間!開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。)

Couchbase Server アーキテクチャ解説 設計・開発手法 有償セミナー!!内容  :Couchbaseアーキテクチャ、及び設計・開発手法の学習。開発について、Hands-On形式による

プログラミング演習を行います。!対象者 :Couchbase Serverの導入を検討されている方!     Couchbase Serverを利用した設計・開発に興味のある方(Javaの知識必須) !講習時間:1日(アーキテクチャ解説 半日/ 設計・開発手法 半日)!開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。)

各種セミナー/トレーニングのご紹介

Copyright(c) SCSK Corporation

各種セミナー/トレーニングのご紹介

Couchbase Mobile編 有償セミナー !!内容  :Couchbase Mobileの概要説明及び導入・開発に必要な知識・技術を習得できます。!対象者 :Couchbase Mobileに興味のある方!      Couchbase Mobileの導入を検討されている方 !講習時間:3時間!開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。)

Couchbase Server 運用編 有償セミナー !!内容  :Couchbase Serverを運用していくために必要な知識・技術を習得できます。!対象者 :Couchbase Serverの導入を検討されている方!     Couchbase Serverの運用・保守を行われている/行う予定の方 !講習時間:3時間!開催時期:定期/不定期(興味のある方は弊社HPをご確認頂くか、弊社担当までご連絡下さい。)