Couchbase meetup21040925 sfa demo
-
Upload
ktoda -
Category
Engineering
-
view
172 -
download
2
Transcript of Couchbase meetup21040925 sfa demo
Copyright(c) SCSK Corporation
自己紹介
木下 文治(きのしたふみはる) 株式会社 Green IT Systems
!・基本的にJavaエンジニア
・Couchbaseは1年半ほど前からいろいろ触っています
!今回のCouchbase Mobileのデモについては、SCSKさんとの協業でやらせていただいています。
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をご確認頂くか、弊社担当までご連絡下さい。)