SlideShare ist ein Scribd-Unternehmen logo
1 von 29
Copyright © Virtual Technology, Inc
エンタープライズシステムでも活躍
する「ReflexWorks」の紹介
2013/4/23 有限会社バーチャルテクノロジー
1
Copyright © Virtual Technology, Inc
• 竹嵜伸一郎 (たけざき しんいちろう)
• (有)バーチャルテクノロジー
– 分散KVSのミドルウェア開発(ReflexWorks)
• 1992-2003
– 日本IBM ソフトウェア事業部
• 2007-2009
– (株)暮らしのデザイン CTO
2
Copyright © Virtual Technology, Inc
Agenda
1.ReflexWorksとは
2.事例紹介とDEMO
3
Copyright © Virtual Technology, Inc
1. ReflexWorksとは
4
Copyright © Virtual Technology, Inc
ReflexWorks
• 2010年10月開始、商用、Javaで記述
• ドキュメント指向、JSON、XML、MessagePackに対応
• ORM(Object-Relational Mapping)不要
– Entityオブジェクトをシリアライズ保存
– ソフトスキーマ(スキーマレスではないが)
• RDBからデータ復元(可用性向上)
• シャーディング水平スケーリング(パフォーマンス向上)
– ConsistentHashアルゴリズム採用
• オンラインでACIDトランザクション処理が可能
• 認証・アクセス管理機能
• データ保存効率は悪い(圧縮はしない)
エンタープライズ向けアプリケーションを容易に構築できる
トランザクショナルKVS
5
Copyright © Virtual Technology, Inc
ReflexWorksが実現したいこと
6
• 大規模Webサービス
– パフォーマンス向上、容易なスケールアウト
拡張
• 大規模Web帳票
サーバ負荷軽減
• UI/UX
– リアクティブなWebシステム
WebSocket
Copyright © Virtual Technology, Inc
ヒント:Thin Server Architectureの応
用
7
・・・
REST
クライアントからRESTでサーバリソースにアクセス
サーバからはJSONやXMLのデータを返すのみ
➡ これでサーバの負荷が減る
BaaSのような感じ
データ
サーバ群
Copyright © Virtual Technology, Inc
NoSQLのデータモデル
Cassandra
MongoDB
ReflexWorks
Dynamo
業務アプリで使うにはドキュメント指向じゃないと辛い
8
Copyright © Virtual Technology, Inc
紙(≠ドキュメント)指向
• コンピュータがない時代、全部紙だったじゃない
か。
9
受付
Copyright © Virtual Technology, Inc10
• リソースURLは自由に設定、追加できる。
• マッピングルールなどを書く必要がない
→ 設定ファイル地獄、アノテーション地獄からの解放
• リソースを様々なフォーマットに変換できる。
• 単純なプロパティとListをもつPOJOで階層構造を表現
→ JSON , XML , msgpackなどに変換可能
• リソースに対してCRUD操作可能
直感的なRESTAPIによる操作
Copyright © Virtual Technology, Inc
ReflexWorksにおける階層型データ管
理
11
Copyright © Virtual Technology, Inc
KVSを採用するメリット
• キャッシュとして利用
– 読込/書込性能向上
– RDBのボトルネックを解消、スケールアウトでき
る
• O/Rマッパーが不要になる
– KVSに直接オブジェクトを保存可能
– 工数削減、開発の4割がマッピングに費やされて
いる
– RDBを実質的に廃止できる
• 管理コストが低い
– 導入設定が不要、スキーマの生成が不要12
RDBのインスタンス
を増やすと管理が大変
Copyright © Virtual Technology, Inc
Berkeley DB Java Edition
13
DBMSの基本機能を備えておりトランザクション処理が可能
通常はキャッシュで処理、永続化も備える
Copyright © Virtual Technology, Inc
信頼性と安心感
• BDBはOracleの保守サポートを受けられ
る
– 他のOSSなどと比較すると安心感はある
14
実績、保守サポート体制が重要
Copyright © Virtual Technology, Inc
ReflexWorksのトランザクション処理
• Feed単位のAtomicトランザクション
– 分離レベル:REPEATABLE READ
• かつ、Entry単位のバージョン比較
– 分離レベル:SNAPSHOT ISOLATION
– 全てのEntryはURLとリビジョンで管理される
– リビジョン=更新されると+1される
15
https://www.facebook.com/notes/virtual-technology/
bdbトランザクションとreflexworksの処理について/486790368009209
データの一貫性を確保しつつ高いスループットを実現
詳細:
Copyright © Virtual Technology, Inc
「受注と明細」を1つの更新処理に束ね
る• RDBだと2テーブルに跨ぐは
ず
– トランザクションで括るなど必
要
• これを1リクエストで実行す
る
– 1Feed内に本体と明細のentryを入
れるだけで1トランザクション
として実行可能
16
<feed>
<entry>
<id>受注のid </id>
<entry>
<entry>
<id>明細のid</id>
<entry>
</feed>
POST/PUT/DELETE
Copyright © Virtual Technology, Inc
ScalabilityとConsistencyを両立
17
ノードは一定数のユーザを担当
ノード追加で処理性能向上
同期でステートフルでもO
実質APだけで動作(RDBも疎結合)
スケーラブル!!
シャーディングでも敗北感を感じる必要はな
疎結合 疎結合
Copyright © Virtual Technology, Inc
シャーディングで問題になるケース
• 情報共有
– ある情報を複数のユーザが更新する
➡ ReflexWorksではうまく解決できた
• リカバリー
– 障害ノードを復旧させるのがちょっと大変
18
Copyright © Virtual Technology, Inc
2. 事例紹介とDEMO
19
Copyright © Virtual Technology, Inc20
ReflexWorks Web帳票システム
Copyright © Virtual Technology, Inc21
• ユーザビリティ、パフォーマンス
– クライアントアプリに比べ遜色のないUI/UX
– ボタンを押して数秒以内に印刷開始、高速な印刷実行
– バーコード(EAN128など)やQRコードといった高品位な帳票印刷
• モダンブラウザ対応
– 昔はWindows+IEで十分だったが、最近ではMacでもという要望が増
加
– Chrome、Firefox、Safariといったモダンブラウザにも対応させたい
• 急激なアクセス数の増大に柔軟に対応
– スタート時は最小のリソースで開始したいが実際にどれくらいのア
クセスが来るかわからない。(数十万ユーザの同時利用に耐えられ
るか)
大規模Web帳票システムの要求
インストール型帳票アプリをWeb化するにあたって・・
Copyright © Virtual Technology, Inc22
• ActiveXコンポーネント
– ダイレクト印刷コンポーネント
– IE6問題の諸悪の根源
• 独自ブラウザ
– インストール型と実質変わらない。
– ○○Browser、curl、Adobe AIR
• サーバサイドでPDF生成
– サーバ負荷が大きい
– スケールしない
Web帳票システムのこれまでのソリュー
ション
2005年頃ブームになったリッチクライアントでは・・
結論:
インターネット利用
に向かない
Copyright © Virtual Technology, Inc
企業内業務システムで今大変な問題が起きている
23
IE6 やめようと思ってももう手遅れ
http://www.slideshare.net/bathtimefish/ie6-15583209
ActiveXへの強依存があってIE6をやめられない
Copyright © Virtual Technology, Inc24
• Thin Server Architecture
– APサーバはデータを返すだけ(JSON/XML)
– Webサーバは静的コンテンツを返すだけ(HTML,CSS,JavaScript等)
– クライアントによるレンダリングで70%負荷軽減
• Flash印刷コンポーネント
– クライアントリソースの活用でサーバ側への負荷は最小限
– バーコード、QRコードなどをクライアント側で高速に印刷
– Active Xを使用していないため様々なOSやブラウザで動作する
• Flash導入率は全世界で99%以上。スマホなどを除くとほぼすべてのブラウザに対
応
• 分散KVS
– 顧客数を最大に見積もらなくてもスモールスタートが可能
– 急激なアクセス増大にも単純なノードを追加で対応可能
ReflexWorksによるソリューション
UI/UX、パフォーマンス、スケーラビリティの3つを同時に解決
Flash利用の異論
ActiveXと同じ問題?
HTML5は?
➡ 現実解
Copyright © Virtual Technology, Inc
本当のボトルネックはどこか
• 動的コンテンツの廃止
– クライアントによるレンダリングで70%負荷
削減
– 帳票作成の負荷削減効果は計り知れない
• 静的コンテンツのWebサーバへの移動
– 10%~20%の負荷削減(ロードアベレージ)
• 負荷の割合
25
コンテンツ関係だけで相当な改善効果があった
サーバサイド
はJSON返すのみ
Copyright © Virtual Technology, Inc
公報一括ダウンロードサービス
26
1993年以降の日本国の特許・
実用新案データ(PDF公報)
を収録。様々な番号形式の取
込み、集合演算、栞やメモの
付与、フォルダ共有、 PDF
公報の一括ダウンロード機能
などにより、スクリーニング
作業の効率化をはかれます。
http://www.pdc.jp/download/
〜 特許検索集合演算・スクリーニング効率化支援ツール 〜
Copyright © Virtual Technology, Inc
クラウドとオンプレミスの融合
27
Copyright © Virtual Technology, Inc
WebSocketによるイベント通知機能
28
http://reflexworks.jp/features.html#pushNotifications
• WebSocketのコネクション確立時に認証する
• 接続情報をセッションで管理
• フォルダ共有(R権限)でかつログイン中のユーザに通知
Reactive!
Copyright © Virtual Technology, Inc29
ご清聴ありがとう
ございました
・・・
REST
MessagePack
並列・並行プログラミング
Monad
ロックフリー、
Concurrent Revisions
STM
ReflexWorksは進化していきます
OLTP+OLAPの組み合わせが標準になると予想(やはりRDBいらない
雲(OLTP)の中身はモダンプログラミング?
Impala?
OLAP
OLTP
Fluentd
「ぶいてく」ブログ

Weitere ähnliche Inhalte

Andere mochten auch

Upper STYLE Personality Decoder: leadership style assessment
Upper STYLE Personality Decoder: leadership style assessmentUpper STYLE Personality Decoder: leadership style assessment
Upper STYLE Personality Decoder: leadership style assessmentArthapol Vithayakritsirikul
 
Lossnoventassswee
LossnoventasssweeLossnoventassswee
Lossnoventasssweechioluna
 
Akciger Fizyolojisive Solunum Fonksiyon Testleri
Akciger Fizyolojisive Solunum Fonksiyon TestleriAkciger Fizyolojisive Solunum Fonksiyon Testleri
Akciger Fizyolojisive Solunum Fonksiyon TestleriYavuz Yildirim
 
Amino Acid Catabolism 2
Amino Acid Catabolism 2Amino Acid Catabolism 2
Amino Acid Catabolism 2Yavuz Yildirim
 
Stop dreaming, start doing: From startup idea to a plan that works
Stop dreaming, start doing: From startup idea to a plan that worksStop dreaming, start doing: From startup idea to a plan that works
Stop dreaming, start doing: From startup idea to a plan that worksThe Happy Startup School
 
Social Media Club Eindhoven Hospitality Food Social 24 april 2013 #smc040
Social Media Club Eindhoven Hospitality Food Social  24 april 2013 #smc040Social Media Club Eindhoven Hospitality Food Social  24 april 2013 #smc040
Social Media Club Eindhoven Hospitality Food Social 24 april 2013 #smc040Kim van Velzen
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Flávio Ribeiro
 
Letter of Reference - Jeton Zagragjaj
Letter of Reference - Jeton ZagragjajLetter of Reference - Jeton Zagragjaj
Letter of Reference - Jeton ZagragjajJeton Zagragjaj
 
Porto Velho Rondonia
Porto Velho RondoniaPorto Velho Rondonia
Porto Velho Rondoniagoescastro
 

Andere mochten auch (20)

Upper STYLE Personality Decoder: leadership style assessment
Upper STYLE Personality Decoder: leadership style assessmentUpper STYLE Personality Decoder: leadership style assessment
Upper STYLE Personality Decoder: leadership style assessment
 
Lossnoventassswee
LossnoventasssweeLossnoventassswee
Lossnoventassswee
 
Akciger Fizyolojisive Solunum Fonksiyon Testleri
Akciger Fizyolojisive Solunum Fonksiyon TestleriAkciger Fizyolojisive Solunum Fonksiyon Testleri
Akciger Fizyolojisive Solunum Fonksiyon Testleri
 
Enterpriseapi20160210
Enterpriseapi20160210Enterpriseapi20160210
Enterpriseapi20160210
 
Upper Grow - Total HRD System(Brief)
Upper Grow - Total HRD System(Brief)Upper Grow - Total HRD System(Brief)
Upper Grow - Total HRD System(Brief)
 
Upper Teamwork - Trust Building
Upper Teamwork - Trust BuildingUpper Teamwork - Trust Building
Upper Teamwork - Trust Building
 
Amino Acid Catabolism 2
Amino Acid Catabolism 2Amino Acid Catabolism 2
Amino Acid Catabolism 2
 
Vtecx20151216
Vtecx20151216Vtecx20151216
Vtecx20151216
 
Vtecxlt20151201
Vtecxlt20151201Vtecxlt20151201
Vtecxlt20151201
 
Stop dreaming, start doing: From startup idea to a plan that works
Stop dreaming, start doing: From startup idea to a plan that worksStop dreaming, start doing: From startup idea to a plan that works
Stop dreaming, start doing: From startup idea to a plan that works
 
Social Media Club Eindhoven Hospitality Food Social 24 april 2013 #smc040
Social Media Club Eindhoven Hospitality Food Social  24 april 2013 #smc040Social Media Club Eindhoven Hospitality Food Social  24 april 2013 #smc040
Social Media Club Eindhoven Hospitality Food Social 24 april 2013 #smc040
 
Smiling Lean Office Introduction (Eng Version)
Smiling Lean Office Introduction (Eng Version)Smiling Lean Office Introduction (Eng Version)
Smiling Lean Office Introduction (Eng Version)
 
Vtecx20151216 2
Vtecx20151216 2Vtecx20151216 2
Vtecx20151216 2
 
Angularreflex20141210
Angularreflex20141210Angularreflex20141210
Angularreflex20141210
 
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5Implementação de Aplicações Móveis e Jogos com Python - Aula 5
Implementação de Aplicações Móveis e Jogos com Python - Aula 5
 
BPStudy20121221
BPStudy20121221BPStudy20121221
BPStudy20121221
 
Letter of Reference - Jeton Zagragjaj
Letter of Reference - Jeton ZagragjajLetter of Reference - Jeton Zagragjaj
Letter of Reference - Jeton Zagragjaj
 
Mi presentación
Mi presentaciónMi presentación
Mi presentación
 
Porto Velho Rondonia
Porto Velho RondoniaPorto Velho Rondonia
Porto Velho Rondonia
 
Today's news vejledning
Today's news vejledningToday's news vejledning
Today's news vejledning
 

Ähnlich wie No nosql20130424

Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Wataru Fukatsu
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixMasaya Ishikawa
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤Yoshinori Matsunobu
 
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理Takayuki Ushida
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5Osamu Shimoda
 
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji ShinkuboD22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji ShinkuboInsight Technology, Inc.
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングRyohei Kamiya
 
「hbstudy#23 OpenStack祭!!」資料 ~OpenStackプロジェクトの全体像~
「hbstudy#23 OpenStack祭!!」資料 ~OpenStackプロジェクトの全体像~「hbstudy#23 OpenStack祭!!」資料 ~OpenStackプロジェクトの全体像~
「hbstudy#23 OpenStack祭!!」資料 ~OpenStackプロジェクトの全体像~Masanori Itoh
 
Azure Object Anchors Recap
Azure Object Anchors RecapAzure Object Anchors Recap
Azure Object Anchors RecapTakahiro Miyaura
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーMasaya Ishikawa
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介Orb, Inc.
 
20180217 hackertackle geode
20180217 hackertackle geode20180217 hackertackle geode
20180217 hackertackle geodeMasaki Yamakawa
 
OpenStackプロジェクトの全体像~詳細編~
OpenStackプロジェクトの全体像~詳細編~OpenStackプロジェクトの全体像~詳細編~
OpenStackプロジェクトの全体像~詳細編~Masanori Itoh
 
im共通マスタ連携ツール Accel-KNIGHT 説明資料
im共通マスタ連携ツール Accel-KNIGHT 説明資料im共通マスタ連携ツール Accel-KNIGHT 説明資料
im共通マスタ連携ツール Accel-KNIGHT 説明資料Kimiya Uno
 
ファイブソリューションズデベロッパーネットワーク
ファイブソリューションズデベロッパーネットワークファイブソリューションズデベロッパーネットワーク
ファイブソリューションズデベロッパーネットワークMasayuki Isobe
 
IBM Cloud Availability Zoneで実現するHAなアーキテクチャの作り方
IBM Cloud Availability Zoneで実現するHAなアーキテクチャの作り方IBM Cloud Availability Zoneで実現するHAなアーキテクチャの作り方
IBM Cloud Availability Zoneで実現するHAなアーキテクチャの作り方Masahiro Furukawa
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開Hideki Takase
 
Rds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようRds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようguest468ec6
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門VirtualTech Japan Inc.
 

Ähnlich wie No nosql20130424 (20)

Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)Orb dlt technical_overview(特許情報なし)
Orb dlt technical_overview(特許情報なし)
 
DBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - DelphixDBTS2016 Data as Code - Delphix
DBTS2016 Data as Code - Delphix
 
データベース技術の羅針盤
データベース技術の羅針盤データベース技術の羅針盤
データベース技術の羅針盤
 
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
脆弱性スキャナVulsの紹介とMackerelメタデータと連携した脆弱性管理
 
ゲームだけじゃないHTML5
ゲームだけじゃないHTML5ゲームだけじゃないHTML5
ゲームだけじゃないHTML5
 
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji ShinkuboD22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
D22 目覚めよDBエンジニア 〜世界最速カラムナーデータベースは本物だ!〜 by Koji Shinkubo
 
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティングソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
 
「hbstudy#23 OpenStack祭!!」資料 ~OpenStackプロジェクトの全体像~
「hbstudy#23 OpenStack祭!!」資料 ~OpenStackプロジェクトの全体像~「hbstudy#23 OpenStack祭!!」資料 ~OpenStackプロジェクトの全体像~
「hbstudy#23 OpenStack祭!!」資料 ~OpenStackプロジェクトの全体像~
 
Azure Object Anchors Recap
Azure Object Anchors RecapAzure Object Anchors Recap
Azure Object Anchors Recap
 
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジーDBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
DBTS2015 Tokyo DBAが知っておくべき最新テクノロジー
 
分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介分散型台帳技術Orb DLTの紹介
分散型台帳技術Orb DLTの紹介
 
Orb oracle
Orb oracleOrb oracle
Orb oracle
 
20180217 hackertackle geode
20180217 hackertackle geode20180217 hackertackle geode
20180217 hackertackle geode
 
OpenStackプロジェクトの全体像~詳細編~
OpenStackプロジェクトの全体像~詳細編~OpenStackプロジェクトの全体像~詳細編~
OpenStackプロジェクトの全体像~詳細編~
 
im共通マスタ連携ツール Accel-KNIGHT 説明資料
im共通マスタ連携ツール Accel-KNIGHT 説明資料im共通マスタ連携ツール Accel-KNIGHT 説明資料
im共通マスタ連携ツール Accel-KNIGHT 説明資料
 
ファイブソリューションズデベロッパーネットワーク
ファイブソリューションズデベロッパーネットワークファイブソリューションズデベロッパーネットワーク
ファイブソリューションズデベロッパーネットワーク
 
IBM Cloud Availability Zoneで実現するHAなアーキテクチャの作り方
IBM Cloud Availability Zoneで実現するHAなアーキテクチャの作り方IBM Cloud Availability Zoneで実現するHAなアーキテクチャの作り方
IBM Cloud Availability Zoneで実現するHAなアーキテクチャの作り方
 
関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開関数型言語ElixirのIoTシステム開発への展開
関数型言語ElixirのIoTシステム開発への展開
 
Rds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみようRds 2008 R2 Express Editionで遊んでみよう
Rds 2008 R2 Express Editionで遊んでみよう
 
今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門今さら聞けない人のためのDevOps超入門
今さら聞けない人のためのDevOps超入門
 

Mehr von Shinichiro Takezaki (15)

Vtecx solution
Vtecx solutionVtecx solution
Vtecx solution
 
Lt20190129
Lt20190129Lt20190129
Lt20190129
 
Real techlt20180829
Real techlt20180829Real techlt20180829
Real techlt20180829
 
Bpstudy20180725
Bpstudy20180725Bpstudy20180725
Bpstudy20180725
 
11 29プレゼン資料
11 29プレゼン資料11 29プレゼン資料
11 29プレゼン資料
 
React vtecx20171129
React vtecx20171129React vtecx20171129
React vtecx20171129
 
20171025 date picker説明資料
20171025 date picker説明資料20171025 date picker説明資料
20171025 date picker説明資料
 
React vtecx20171025
React vtecx20171025React vtecx20171025
React vtecx20171025
 
Web study20171007
Web study20171007Web study20171007
Web study20171007
 
React vtecx20170920
React vtecx20170920React vtecx20170920
React vtecx20170920
 
React vtecx20170822
React vtecx20170822React vtecx20170822
React vtecx20170822
 
Builderscon Tokyo 2017
Builderscon Tokyo 2017 Builderscon Tokyo 2017
Builderscon Tokyo 2017
 
Gaeja20121130
Gaeja20121130Gaeja20121130
Gaeja20121130
 
Reflex works20120818 1
Reflex works20120818 1Reflex works20120818 1
Reflex works20120818 1
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 

No nosql20130424

  • 1. Copyright © Virtual Technology, Inc エンタープライズシステムでも活躍 する「ReflexWorks」の紹介 2013/4/23 有限会社バーチャルテクノロジー 1
  • 2. Copyright © Virtual Technology, Inc • 竹嵜伸一郎 (たけざき しんいちろう) • (有)バーチャルテクノロジー – 分散KVSのミドルウェア開発(ReflexWorks) • 1992-2003 – 日本IBM ソフトウェア事業部 • 2007-2009 – (株)暮らしのデザイン CTO 2
  • 3. Copyright © Virtual Technology, Inc Agenda 1.ReflexWorksとは 2.事例紹介とDEMO 3
  • 4. Copyright © Virtual Technology, Inc 1. ReflexWorksとは 4
  • 5. Copyright © Virtual Technology, Inc ReflexWorks • 2010年10月開始、商用、Javaで記述 • ドキュメント指向、JSON、XML、MessagePackに対応 • ORM(Object-Relational Mapping)不要 – Entityオブジェクトをシリアライズ保存 – ソフトスキーマ(スキーマレスではないが) • RDBからデータ復元(可用性向上) • シャーディング水平スケーリング(パフォーマンス向上) – ConsistentHashアルゴリズム採用 • オンラインでACIDトランザクション処理が可能 • 認証・アクセス管理機能 • データ保存効率は悪い(圧縮はしない) エンタープライズ向けアプリケーションを容易に構築できる トランザクショナルKVS 5
  • 6. Copyright © Virtual Technology, Inc ReflexWorksが実現したいこと 6 • 大規模Webサービス – パフォーマンス向上、容易なスケールアウト 拡張 • 大規模Web帳票 サーバ負荷軽減 • UI/UX – リアクティブなWebシステム WebSocket
  • 7. Copyright © Virtual Technology, Inc ヒント:Thin Server Architectureの応 用 7 ・・・ REST クライアントからRESTでサーバリソースにアクセス サーバからはJSONやXMLのデータを返すのみ ➡ これでサーバの負荷が減る BaaSのような感じ データ サーバ群
  • 8. Copyright © Virtual Technology, Inc NoSQLのデータモデル Cassandra MongoDB ReflexWorks Dynamo 業務アプリで使うにはドキュメント指向じゃないと辛い 8
  • 9. Copyright © Virtual Technology, Inc 紙(≠ドキュメント)指向 • コンピュータがない時代、全部紙だったじゃない か。 9 受付
  • 10. Copyright © Virtual Technology, Inc10 • リソースURLは自由に設定、追加できる。 • マッピングルールなどを書く必要がない → 設定ファイル地獄、アノテーション地獄からの解放 • リソースを様々なフォーマットに変換できる。 • 単純なプロパティとListをもつPOJOで階層構造を表現 → JSON , XML , msgpackなどに変換可能 • リソースに対してCRUD操作可能 直感的なRESTAPIによる操作
  • 11. Copyright © Virtual Technology, Inc ReflexWorksにおける階層型データ管 理 11
  • 12. Copyright © Virtual Technology, Inc KVSを採用するメリット • キャッシュとして利用 – 読込/書込性能向上 – RDBのボトルネックを解消、スケールアウトでき る • O/Rマッパーが不要になる – KVSに直接オブジェクトを保存可能 – 工数削減、開発の4割がマッピングに費やされて いる – RDBを実質的に廃止できる • 管理コストが低い – 導入設定が不要、スキーマの生成が不要12 RDBのインスタンス を増やすと管理が大変
  • 13. Copyright © Virtual Technology, Inc Berkeley DB Java Edition 13 DBMSの基本機能を備えておりトランザクション処理が可能 通常はキャッシュで処理、永続化も備える
  • 14. Copyright © Virtual Technology, Inc 信頼性と安心感 • BDBはOracleの保守サポートを受けられ る – 他のOSSなどと比較すると安心感はある 14 実績、保守サポート体制が重要
  • 15. Copyright © Virtual Technology, Inc ReflexWorksのトランザクション処理 • Feed単位のAtomicトランザクション – 分離レベル:REPEATABLE READ • かつ、Entry単位のバージョン比較 – 分離レベル:SNAPSHOT ISOLATION – 全てのEntryはURLとリビジョンで管理される – リビジョン=更新されると+1される 15 https://www.facebook.com/notes/virtual-technology/ bdbトランザクションとreflexworksの処理について/486790368009209 データの一貫性を確保しつつ高いスループットを実現 詳細:
  • 16. Copyright © Virtual Technology, Inc 「受注と明細」を1つの更新処理に束ね る• RDBだと2テーブルに跨ぐは ず – トランザクションで括るなど必 要 • これを1リクエストで実行す る – 1Feed内に本体と明細のentryを入 れるだけで1トランザクション として実行可能 16 <feed> <entry> <id>受注のid </id> <entry> <entry> <id>明細のid</id> <entry> </feed> POST/PUT/DELETE
  • 17. Copyright © Virtual Technology, Inc ScalabilityとConsistencyを両立 17 ノードは一定数のユーザを担当 ノード追加で処理性能向上 同期でステートフルでもO 実質APだけで動作(RDBも疎結合) スケーラブル!! シャーディングでも敗北感を感じる必要はな 疎結合 疎結合
  • 18. Copyright © Virtual Technology, Inc シャーディングで問題になるケース • 情報共有 – ある情報を複数のユーザが更新する ➡ ReflexWorksではうまく解決できた • リカバリー – 障害ノードを復旧させるのがちょっと大変 18
  • 19. Copyright © Virtual Technology, Inc 2. 事例紹介とDEMO 19
  • 20. Copyright © Virtual Technology, Inc20 ReflexWorks Web帳票システム
  • 21. Copyright © Virtual Technology, Inc21 • ユーザビリティ、パフォーマンス – クライアントアプリに比べ遜色のないUI/UX – ボタンを押して数秒以内に印刷開始、高速な印刷実行 – バーコード(EAN128など)やQRコードといった高品位な帳票印刷 • モダンブラウザ対応 – 昔はWindows+IEで十分だったが、最近ではMacでもという要望が増 加 – Chrome、Firefox、Safariといったモダンブラウザにも対応させたい • 急激なアクセス数の増大に柔軟に対応 – スタート時は最小のリソースで開始したいが実際にどれくらいのア クセスが来るかわからない。(数十万ユーザの同時利用に耐えられ るか) 大規模Web帳票システムの要求 インストール型帳票アプリをWeb化するにあたって・・
  • 22. Copyright © Virtual Technology, Inc22 • ActiveXコンポーネント – ダイレクト印刷コンポーネント – IE6問題の諸悪の根源 • 独自ブラウザ – インストール型と実質変わらない。 – ○○Browser、curl、Adobe AIR • サーバサイドでPDF生成 – サーバ負荷が大きい – スケールしない Web帳票システムのこれまでのソリュー ション 2005年頃ブームになったリッチクライアントでは・・ 結論: インターネット利用 に向かない
  • 23. Copyright © Virtual Technology, Inc 企業内業務システムで今大変な問題が起きている 23 IE6 やめようと思ってももう手遅れ http://www.slideshare.net/bathtimefish/ie6-15583209 ActiveXへの強依存があってIE6をやめられない
  • 24. Copyright © Virtual Technology, Inc24 • Thin Server Architecture – APサーバはデータを返すだけ(JSON/XML) – Webサーバは静的コンテンツを返すだけ(HTML,CSS,JavaScript等) – クライアントによるレンダリングで70%負荷軽減 • Flash印刷コンポーネント – クライアントリソースの活用でサーバ側への負荷は最小限 – バーコード、QRコードなどをクライアント側で高速に印刷 – Active Xを使用していないため様々なOSやブラウザで動作する • Flash導入率は全世界で99%以上。スマホなどを除くとほぼすべてのブラウザに対 応 • 分散KVS – 顧客数を最大に見積もらなくてもスモールスタートが可能 – 急激なアクセス増大にも単純なノードを追加で対応可能 ReflexWorksによるソリューション UI/UX、パフォーマンス、スケーラビリティの3つを同時に解決 Flash利用の異論 ActiveXと同じ問題? HTML5は? ➡ 現実解
  • 25. Copyright © Virtual Technology, Inc 本当のボトルネックはどこか • 動的コンテンツの廃止 – クライアントによるレンダリングで70%負荷 削減 – 帳票作成の負荷削減効果は計り知れない • 静的コンテンツのWebサーバへの移動 – 10%~20%の負荷削減(ロードアベレージ) • 負荷の割合 25 コンテンツ関係だけで相当な改善効果があった サーバサイド はJSON返すのみ
  • 26. Copyright © Virtual Technology, Inc 公報一括ダウンロードサービス 26 1993年以降の日本国の特許・ 実用新案データ(PDF公報) を収録。様々な番号形式の取 込み、集合演算、栞やメモの 付与、フォルダ共有、 PDF 公報の一括ダウンロード機能 などにより、スクリーニング 作業の効率化をはかれます。 http://www.pdc.jp/download/ 〜 特許検索集合演算・スクリーニング効率化支援ツール 〜
  • 27. Copyright © Virtual Technology, Inc クラウドとオンプレミスの融合 27
  • 28. Copyright © Virtual Technology, Inc WebSocketによるイベント通知機能 28 http://reflexworks.jp/features.html#pushNotifications • WebSocketのコネクション確立時に認証する • 接続情報をセッションで管理 • フォルダ共有(R権限)でかつログイン中のユーザに通知 Reactive!
  • 29. Copyright © Virtual Technology, Inc29 ご清聴ありがとう ございました ・・・ REST MessagePack 並列・並行プログラミング Monad ロックフリー、 Concurrent Revisions STM ReflexWorksは進化していきます OLTP+OLAPの組み合わせが標準になると予想(やはりRDBいらない 雲(OLTP)の中身はモダンプログラミング? Impala? OLAP OLTP Fluentd 「ぶいてく」ブログ