Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

5,306 views

Published on

db tech showcase 2012 | Insight Technology, Inc.

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

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

  1. 1. 業務システムにおける MongoDB 活用法 Co-graph Inc. Yoshitaka Mori, Michael Nguyen
  2. 2. 講師紹介{ Name : Yoshitaka Mori / 森 善隆 } ・コグラフ 代表取締役 ・プロダクトマネージャー / シニアエンジニア ・ナレッジマネジメント / コラボレーション / マッシュアップ  / コンテンツ変換 / ブログ / リッチクライアント ・リアルコム / サイバーエージェント / XMLコンソーシアム など{ Name : Michael Nguyen } ・コグラフ グローバルサービスデベロップメントマネージャー ・シニアエンジニア ・カリフォルニア大学 / 東京工業大学 ・サーチ / ナレッジマネジメント / マーケティング ・リアルコム など
  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(XML) eTax (BSON)
  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. これまでの実績Webapp・2011/4/10 最初のリリース(消費税:6帳票)・その後 2012/10/15までに 42回のリリース(税務のみ) ・消費税:6(+2)帳票、改正対応1回、自動計算、会計連動、電子申告対応 ・法人税:33 + 10(地方税)帳票、改正対応4回、自動計算、      会計&減価償却連動、電子申告対応 ・所得税:24帳票、会計&減価償却連動、電子申告対応 ・その他帳票:18帳票、電子申告対応
  16. 16. これまでの実績MongoDBまわり✔ 無停止記録更新中(ほぼ、メンテナンスフリーで)✔ Primary から Secondary への自動切り替りなし✔ もちろん、Backup からの Restoreもなし✔ データマイグレーションはたったの5回ほど✔ 中小企業、個人:5251✔ 消費税:3190、法人税:1942、所得税:2354✔ データ量:412MByte
  17. 17. 2. アプリケーションアーキテクチャ
  18. 18. 6. 業務システムでMongoDBを活用する
  19. 19. 業務システムで使うメリットA-SaaSプロジェクトでの実績から・耐障害性、スケーラビリティが高い環境を簡単に 構築できて、メンテナンスフリー・無償・データモデルの変更が容易・データマイグレーションの機会が少なくなる、 過去のデータと共存可能・性能(困ったことなし)
  20. 20. 業務システムで使うには1. 実績をみる  http://www.mongodb.org/display/DOCS/Production+Deployments2. BSONだけど、あまり気にしない3. サービスをインストール&起動してみる(5分)  http://www.mongodb.org/downloads4. ご相談ください
  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

×