業務システムにおける
MongoDB 活用法
Co-graph Inc.
Yoshitaka Mori, Michael Nguyen
講師紹介
{ Name : Yoshitaka Mori / 森 善隆 }
{ Name : Michael Nguyen }
・コグラフ 代表取締役
・プロダクトマネージャー / シニアエンジニア
・ナレッジマネジメント / コラボレーション...
1. 開発している業務システム
A-SaaS プロジェクト
・会計・税理士事務所と中小企業向けに
・財務、税務、給与、減価償却などのサービスを提供
・クラウド / SaaS / ディザスタリカバリ
・中小企業は無料で利用できる場合もアリ
http://www.a-saas.c...
税務 システムとは
・日本国内で課税される中小企業や個人の税務申告
 データを手軽に作成し、申告するためのシステム
・法人税、消費税、所得税、各種届出など
・法人税240、消費税20、所得税140
・電子申告 or 紙
よく目にする、耳にする、
パソコンからのオンライン税務申告
その中身は、e-Taxといいまして、
データのフォーマットや送受信の仕様が
国税庁により公開されています
データのフォーマットは、
XMLスキーマで定義されています。
そのスキーマに基づいたXMLインスタンス
を税務申告データとして、
国税庁のサーバーに送信することで
オンラインの税務申告を実現しています
では、A-SaaSプロジェクトで開発する
税務申告システムはどうしたか
では、A-SaaSプロジェクトで開発する
税務申告システムはどうしたか
最終的にXMLでデータを送信(電子申告)
するのであれば、はじめから
そのスキーマを最大限に使おう
eTax
(BSON)
eTax
(XML)
画面
なぜ MongoDB を採用したのか
選定の際の要件
・大量のXMLを
  まるごと、
  長期間(最低7年)、
  作成された時の状態のままで
 保管できること
 → 10年以上使う覚悟
・仕様が頻繁にかわる、決まっていないことに対応できるか...
MongoDB 構成図
・サーバー3台構成
・3-node Replica Set
・V2.0.2(今日現在、近々2.2系に上げる予定)
http://www.mongodb.org/display/DOCS/Replica+Sets+-+Ba...
MongoDB を採用してみて
データ構造
・e-Tax(XML)がそのまま取り扱える
仕様変更
・ものすごく柔軟に対応できる
開発スピード
・DB/データまわりで頭と労力を使わない分、短期開発を実現。
 改正対応も速攻で(3週間とか)
過去の...
これまでの実績
・2011/4/10 最初のリリース(消費税:6帳票)
・その後 2012/10/15までに 42回のリリース(税務のみ)
 ・消費税:6(+2)帳票、改正対応1回、自動計算、会計連動、電子申告対応
 ・法人税:33 + 10(...
これまでの実績
✔ 無停止記録更新中(ほぼ、メンテナンスフリーで)
✔ Primary から Secondary への自動切り替りなし
✔ もちろん、Backup からの Restoreもなし
✔ データマイグレーションはたったの5回ほど
✔ ...
2. アプリケーションアーキテクチャ
6. 業務システムでMongoDBを活用する
業務システムで使うメリット
A-SaaSプロジェクトでの実績から
・耐障害性、スケーラビリティが高い環境を簡単に
 構築できて、メンテナンスフリー
・無償
・データモデルの変更が容易
・データマイグレーションの機会が少なくなる、
 過去のデータ...
業務システムで使うには
1. 実績をみる
  http://www.mongodb.org/display/DOCS/Production+Deployments
2. BSONだけど、あまり気にしない
3. サービスをインストール&起動してみ...
業務システムで使うには
MongoDBは、BSON/JSON を直接操作する
アプリケーション専用のものではなく、
JavaBeanとかXMLデータの保管や、
RDBとの共存も実現できます
また、いまではJPAなどがMongoDBを
サポートし...
業務システムで使うには
・対象業務:ミッションクリティカル / OR NOT
・データモデル:硬め / 柔らめ
・仕様変更:少なめ / 多め
・プロセス:ウォータフォール / アジャイル、Iterative
・ドキュメンテーション:ER図 / ...
メリット、デメリット、課題
メリット(実績から)
・耐障害性、スケーラビリティが高い環境を簡単に構築できて、
 メンテナンスフリー
・無償
・データモデルの変更が容易
・データマイグレーションの機会が少なくなる、過去のデータと共存可能
・性能(...
メリット、デメリット、課題
・SQLよりクエリを書くのに時間がかかった。
 → 階層の深いXMLを保存しているため
帳票KOB130をもっていて対象年度が23年である所得税のデータ件数
(削除済みは除く)
→ 階層が深いと
db.incomeT...
まとめ
・XMLを多用する業務システムでの
 MongoDBの活用と、その実績
・技術的なTips
・MongoDBを業務システムで使うには
ご清聴いただきありがとうございました!
ご連絡先
TEL: 03-5340-7450 FAX: 03-4333-0357
E-Mail: a@co-graph.com
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
業務システムにおけるMongoDB活用法
Upcoming SlideShare
Loading in...5
×

業務システムにおけるMongoDB活用法

5,391

Published on

db tech showcase 2012 | Insight Technology, Inc.

http://www.insight-tec.com/dbts2012.html
https://www.facebook.com/db.tech.showcase

Published in: Software
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,391
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "業務システムにおけるMongoDB活用法"

  1. 1. 業務システムにおける MongoDB 活用法 Co-graph Inc. Yoshitaka Mori, Michael Nguyen
  2. 2. 講師紹介 { Name : Yoshitaka Mori / 森 善隆 } { Name : Michael Nguyen } ・コグラフ 代表取締役 ・プロダクトマネージャー / シニアエンジニア ・ナレッジマネジメント / コラボレーション / マッシュアップ  / コンテンツ変換 / ブログ / リッチクライアント ・リアルコム / サイバーエージェント / XMLコンソーシアム など ・コグラフ グローバルサービスデベロップメントマネージャー ・シニアエンジニア ・カリフォルニア大学 / 東京工業大学 ・サーチ / ナレッジマネジメント / マーケティング ・リアルコム など
  3. 3. 1. 開発している業務システム
  4. 4. A-SaaS プロジェクト ・会計・税理士事務所と中小企業向けに ・財務、税務、給与、減価償却などのサービスを提供 ・クラウド / SaaS / ディザスタリカバリ ・中小企業は無料で利用できる場合もアリ http://www.a-saas.com/
  5. 5. 税務 システムとは ・日本国内で課税される中小企業や個人の税務申告  データを手軽に作成し、申告するためのシステム ・法人税、消費税、所得税、各種届出など ・法人税240、消費税20、所得税140 ・電子申告 or 紙
  6. 6. よく目にする、耳にする、 パソコンからのオンライン税務申告
  7. 7. その中身は、e-Taxといいまして、 データのフォーマットや送受信の仕様が 国税庁により公開されています
  8. 8. データのフォーマットは、 XMLスキーマで定義されています。 そのスキーマに基づいたXMLインスタンス を税務申告データとして、 国税庁のサーバーに送信することで オンラインの税務申告を実現しています
  9. 9. では、A-SaaSプロジェクトで開発する 税務申告システムはどうしたか
  10. 10. では、A-SaaSプロジェクトで開発する 税務申告システムはどうしたか 最終的にXMLでデータを送信(電子申告) するのであれば、はじめから そのスキーマを最大限に使おう
  11. 11. eTax (BSON) eTax (XML) 画面
  12. 12. なぜ MongoDB を採用したのか 選定の際の要件 ・大量のXMLを   まるごと、   長期間(最低7年)、   作成された時の状態のままで  保管できること  → 10年以上使う覚悟 ・仕様が頻繁にかわる、決まっていないことに対応できるか ・十分なI/Oパフォーマンス ・十分な耐障害性、スケーラビリティ ・できれば、無償
  13. 13. MongoDB 構成図 ・サーバー3台構成 ・3-node Replica Set ・V2.0.2(今日現在、近々2.2系に上げる予定) http://www.mongodb.org/display/DOCS/Replica+Sets+-+Basics レプリカセットの用途 • データ冗長化 • 自動フェールオーバ/高可用化 • 分散読み込み • メンテナンスが簡単(一般的なマ スタスレーブ構成のクラスタに 比べて) • 障害復旧
  14. 14. MongoDB を採用してみて データ構造 ・e-Tax(XML)がそのまま取り扱える 仕様変更 ・ものすごく柔軟に対応できる 開発スピード ・DB/データまわりで頭と労力を使わない分、短期開発を実現。  改正対応も速攻で(3週間とか) 過去のデータ保管 ・過去すべてのデータがそのままの仕様で保管できていて、  そのバージョン用のプログラムから、いまでも編集が可能。 耐障害性、スケーラビリティ、性能 ・困ったことなし。(障害なし、チューニングなし)
  15. 15. これまでの実績 ・2011/4/10 最初のリリース(消費税:6帳票) ・その後 2012/10/15までに 42回のリリース(税務のみ)  ・消費税:6(+2)帳票、改正対応1回、自動計算、会計連動、電子申告対応  ・法人税:33 + 10(地方税)帳票、改正対応4回、自動計算、       会計&減価償却連動、電子申告対応  ・所得税:24帳票、会計&減価償却連動、電子申告対応  ・その他帳票:18帳票、電子申告対応 Webapp
  16. 16. これまでの実績 ✔ 無停止記録更新中(ほぼ、メンテナンスフリーで) ✔ Primary から Secondary への自動切り替りなし ✔ もちろん、Backup からの Restoreもなし ✔ データマイグレーションはたったの5回ほど ✔ 中小企業、個人:5251 ✔ 消費税:3190、法人税:1942、所得税:2354 ✔ データ量:412MByte MongoDBまわり
  17. 17. 2. アプリケーションアーキテクチャ
  18. 18. 6. 業務システムでMongoDBを活用する
  19. 19. 業務システムで使うメリット A-SaaSプロジェクトでの実績から ・耐障害性、スケーラビリティが高い環境を簡単に  構築できて、メンテナンスフリー ・無償 ・データモデルの変更が容易 ・データマイグレーションの機会が少なくなる、  過去のデータと共存可能 ・性能(困ったことなし)
  20. 20. 業務システムで使うには 1. 実績をみる   http://www.mongodb.org/display/DOCS/Production+Deployments 2. BSONだけど、あまり気にしない 3. サービスをインストール&起動してみる(5分)   http://www.mongodb.org/downloads 4. ご相談ください
  21. 21. 業務システムで使うには MongoDBは、BSON/JSON を直接操作する アプリケーション専用のものではなく、 JavaBeanとかXMLデータの保管や、 RDBとの共存も実現できます また、いまではJPAなどがMongoDBを サポートしていますので、 よりお手軽にMongoDBを使うことが できるようになりました。
  22. 22. 業務システムで使うには ・対象業務:ミッションクリティカル / OR NOT ・データモデル:硬め / 柔らめ ・仕様変更:少なめ / 多め ・プロセス:ウォータフォール / アジャイル、Iterative ・ドキュメンテーション:ER図 / NO DOCUMENT  ■■■■■■■■■■■■■■■■■■■■■■■ ミドルウェアにも コンシューマライゼーションの波?
  23. 23. メリット、デメリット、課題 メリット(実績から) ・耐障害性、スケーラビリティが高い環境を簡単に構築できて、  メンテナンスフリー ・無償 ・データモデルの変更が容易 ・データマイグレーションの機会が少なくなる、過去のデータと共存可能 ・性能(困ったことなし) デメリット、課題 ・経験のある技術者、アドミニストレータが少ない(MongoDBに限らず) ・SQLよりクエリを書くのに時間がかかった。(データ設計にも依存)  → 複雑なクエリを簡単に書けるツール ・サーバーが何台もいるの?  → ホスティングサービス、クラウドの活用
  24. 24. メリット、デメリット、課題 ・SQLよりクエリを書くのに時間がかかった。  → 階層の深いXMLを保存しているため 帳票KOB130をもっていて対象年度が23年である所得税のデータ件数 (削除済みは除く) → 階層が深いと db.incomeTaxProcedure.find({"data.shot:RKO0010-110- DATA.shot:RKO0010.shot:CONTENTS.shot:KOB130":{$exists:true}, "deleteStatus":{ $ne:2}, "data.shot:RKO0010-110- DATA.shot:RKO0010.shot:CONTENTS.shot:IT.shot:NENBUN.gen:yy.#text":"23"}). count(); → もしフラットだったら db.incomeTaxProcedure.find({"KOB130":{$exists:true}, "deleteStatus":{ $ne:2}, "NENBUN.yy":"23"}).count();
  25. 25. まとめ ・XMLを多用する業務システムでの  MongoDBの活用と、その実績 ・技術的なTips ・MongoDBを業務システムで使うには
  26. 26. ご清聴いただきありがとうございました! ご連絡先 TEL: 03-5340-7450 FAX: 03-4333-0357 E-Mail: a@co-graph.com

×