Your SlideShare is downloading. ×
0
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
No nosql20130424
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

No nosql20130424

333

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
333
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Copyright © Virtual Technology, Incエンタープライズシステムでも活躍する「ReflexWorks」の紹介2013/4/23 有限会社バーチャルテクノロジー1
  • 2. Copyright © Virtual Technology, Inc• 竹嵜伸一郎 (たけざき しんいちろう)• (有)バーチャルテクノロジー– 分散KVSのミドルウェア開発(ReflexWorks)• 1992-2003– 日本IBM ソフトウェア事業部• 2007-2009– (株)暮らしのデザイン CTO2
  • 3. Copyright © Virtual Technology, IncAgenda1.ReflexWorksとは2.事例紹介とDEMO3
  • 4. Copyright © Virtual Technology, Inc1. ReflexWorksとは4
  • 5. Copyright © Virtual Technology, IncReflexWorks• 2010年10月開始、商用、Javaで記述• ドキュメント指向、JSON、XML、MessagePackに対応• ORM(Object-Relational Mapping)不要– Entityオブジェクトをシリアライズ保存– ソフトスキーマ(スキーマレスではないが)• RDBからデータ復元(可用性向上)• シャーディング水平スケーリング(パフォーマンス向上)– ConsistentHashアルゴリズム採用• オンラインでACIDトランザクション処理が可能• 認証・アクセス管理機能• データ保存効率は悪い(圧縮はしない)エンタープライズ向けアプリケーションを容易に構築できるトランザクショナルKVS5
  • 6. Copyright © Virtual Technology, IncReflexWorksが実現したいこと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, IncNoSQLのデータモデルCassandraMongoDBReflexWorksDynamo業務アプリで使うにはドキュメント指向じゃないと辛い8
  • 9. Copyright © Virtual Technology, Inc紙(≠ドキュメント)指向• コンピュータがない時代、全部紙だったじゃないか。9受付
  • 10. Copyright © Virtual Technology, Inc10• リソースURLは自由に設定、追加できる。• マッピングルールなどを書く必要がない→ 設定ファイル地獄、アノテーション地獄からの解放• リソースを様々なフォーマットに変換できる。• 単純なプロパティとListをもつPOJOで階層構造を表現→ JSON , XML , msgpackなどに変換可能• リソースに対してCRUD操作可能直感的なRESTAPIによる操作
  • 11. Copyright © Virtual Technology, IncReflexWorksにおける階層型データ管理11
  • 12. Copyright © Virtual Technology, IncKVSを採用するメリット• キャッシュとして利用– 読込/書込性能向上– RDBのボトルネックを解消、スケールアウトできる• O/Rマッパーが不要になる– KVSに直接オブジェクトを保存可能– 工数削減、開発の4割がマッピングに費やされている– RDBを実質的に廃止できる• 管理コストが低い– 導入設定が不要、スキーマの生成が不要12RDBのインスタンスを増やすと管理が大変
  • 13. Copyright © Virtual Technology, IncBerkeley DB Java Edition13DBMSの基本機能を備えておりトランザクション処理が可能通常はキャッシュで処理、永続化も備える
  • 14. Copyright © Virtual Technology, Inc信頼性と安心感• BDBはOracleの保守サポートを受けられる– 他のOSSなどと比較すると安心感はある14実績、保守サポート体制が重要
  • 15. Copyright © Virtual Technology, IncReflexWorksのトランザクション処理• Feed単位のAtomicトランザクション– 分離レベル:REPEATABLE READ• かつ、Entry単位のバージョン比較– 分離レベル:SNAPSHOT ISOLATION– 全てのEntryはURLとリビジョンで管理される– リビジョン=更新されると+1される15https://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, IncScalabilityとConsistencyを両立17ノードは一定数のユーザを担当ノード追加で処理性能向上同期でステートフルでもO実質APだけで動作(RDBも疎結合)スケーラブル!!シャーディングでも敗北感を感じる必要はな疎結合 疎結合
  • 18. Copyright © Virtual Technology, Incシャーディングで問題になるケース• 情報共有– ある情報を複数のユーザが更新する➡ ReflexWorksではうまく解決できた• リカバリー– 障害ノードを復旧させるのがちょっと大変18
  • 19. Copyright © Virtual Technology, Inc2. 事例紹介とDEMO19
  • 20. Copyright © Virtual Technology, Inc20ReflexWorks 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企業内業務システムで今大変な問題が起きている23IE6 やめようと思ってももう手遅れhttp://www.slideshare.net/bathtimefish/ie6-15583209ActiveXへの強依存があって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公報一括ダウンロードサービス261993年以降の日本国の特許・実用新案データ(PDF公報)を収録。様々な番号形式の取込み、集合演算、栞やメモの付与、フォルダ共有、 PDF公報の一括ダウンロード機能などにより、スクリーニング作業の効率化をはかれます。http://www.pdc.jp/download/〜 特許検索集合演算・スクリーニング効率化支援ツール 〜
  • 27. Copyright © Virtual Technology, Incクラウドとオンプレミスの融合27
  • 28. Copyright © Virtual Technology, IncWebSocketによるイベント通知機能28http://reflexworks.jp/features.html#pushNotifications• WebSocketのコネクション確立時に認証する• 接続情報をセッションで管理• フォルダ共有(R権限)でかつログイン中のユーザに通知Reactive!
  • 29. Copyright © Virtual Technology, Inc29ご清聴ありがとうございました・・・RESTMessagePack並列・並行プログラミングMonadロックフリー、Concurrent RevisionsSTMReflexWorksは進化していきますOLTP+OLAPの組み合わせが標準になると予想(やはりRDBいらない雲(OLTP)の中身はモダンプログラミング?Impala?OLAPOLTPFluentd「ぶいてく」ブログ

×