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

More Related Content

What's hot

JPC2018[C4]働き方改革を強力にサポートする Microsoft 365、おさえておきたい提案のポイント!
JPC2018[C4]働き方改革を強力にサポートする Microsoft 365、おさえておきたい提案のポイント!JPC2018[C4]働き方改革を強力にサポートする Microsoft 365、おさえておきたい提案のポイント!
JPC2018[C4]働き方改革を強力にサポートする Microsoft 365、おさえておきたい提案のポイント!MPN Japan
 
プロジェクトを成功させて豊かな世界に。パラダイスウェア事業計画 201505
プロジェクトを成功させて豊かな世界に。パラダイスウェア事業計画 201505プロジェクトを成功させて豊かな世界に。パラダイスウェア事業計画 201505
プロジェクトを成功させて豊かな世界に。パラダイスウェア事業計画 201505Masayoshi Hashimoto
 
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかDeveloper's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかTetsuo Ajima
 
202006 クービック会社紹介(プロダクト)
202006 クービック会社紹介(プロダクト)202006 クービック会社紹介(プロダクト)
202006 クービック会社紹介(プロダクト)Daisuke Sato
 
Baseエンジニアイベント 20170516
Baseエンジニアイベント 20170516Baseエンジニアイベント 20170516
Baseエンジニアイベント 20170516真一 藤川
 

What's hot (6)

JPC2018[C4]働き方改革を強力にサポートする Microsoft 365、おさえておきたい提案のポイント!
JPC2018[C4]働き方改革を強力にサポートする Microsoft 365、おさえておきたい提案のポイント!JPC2018[C4]働き方改革を強力にサポートする Microsoft 365、おさえておきたい提案のポイント!
JPC2018[C4]働き方改革を強力にサポートする Microsoft 365、おさえておきたい提案のポイント!
 
プロジェクトを成功させて豊かな世界に。パラダイスウェア事業計画 201505
プロジェクトを成功させて豊かな世界に。パラダイスウェア事業計画 201505プロジェクトを成功させて豊かな世界に。パラダイスウェア事業計画 201505
プロジェクトを成功させて豊かな世界に。パラダイスウェア事業計画 201505
 
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのかDeveloper's summit 2021 [19-D-5]なぜ今、ローコードなのか
Developer's summit 2021 [19-D-5]なぜ今、ローコードなのか
 
これからのビジネスソリューションの在り方
これからのビジネスソリューションの在り方これからのビジネスソリューションの在り方
これからのビジネスソリューションの在り方
 
202006 クービック会社紹介(プロダクト)
202006 クービック会社紹介(プロダクト)202006 クービック会社紹介(プロダクト)
202006 クービック会社紹介(プロダクト)
 
Baseエンジニアイベント 20170516
Baseエンジニアイベント 20170516Baseエンジニアイベント 20170516
Baseエンジニアイベント 20170516
 

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

Google のクラウド サービスを利用する前に 注意すべきこと
Google のクラウド サービスを利用する前に 注意すべきことGoogle のクラウド サービスを利用する前に 注意すべきこと
Google のクラウド サービスを利用する前に 注意すべきことCompare GW
 
W&B webinar finetuning_配布用.pdf
W&B webinar finetuning_配布用.pdfW&B webinar finetuning_配布用.pdf
W&B webinar finetuning_配布用.pdfYuya Yamamoto
 
PwC - Strategic Sustainability & Innovation Forum - Microsoft の Sustainabilit...
PwC - Strategic Sustainability & Innovation Forum - Microsoft の Sustainabilit...PwC - Strategic Sustainability & Innovation Forum - Microsoft の Sustainabilit...
PwC - Strategic Sustainability & Innovation Forum - Microsoft の Sustainabilit...Daiyu Hatakeyama
 
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatformJSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatformTakahiro Fujii
 
AgileJapan 2017 ビジネスアジャイル 匠Methodとスクラム
AgileJapan 2017 ビジネスアジャイル  匠MethodとスクラムAgileJapan 2017 ビジネスアジャイル  匠Methodとスクラム
AgileJapan 2017 ビジネスアジャイル 匠MethodとスクラムHagimoto Junzo
 
リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例Recruit Technologies
 
Company Profile 2013 recruit
Company Profile 2013 recruitCompany Profile 2013 recruit
Company Profile 2013 recruitSatoshi Matsumoto
 
Google Cloud Platformのエンタープライズ最新活用事例
Google Cloud Platformのエンタープライズ最新活用事例Google Cloud Platformのエンタープライズ最新活用事例
Google Cloud Platformのエンタープライズ最新活用事例Yoshiyuki Ueda
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvcTakao Tetsuro
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかYusuke Suzuki
 
【株式会社PIGNUS】会社概要資料.pdf
【株式会社PIGNUS】会社概要資料.pdf【株式会社PIGNUS】会社概要資料.pdf
【株式会社PIGNUS】会社概要資料.pdfcontact890866
 
【株式会社PIGNUS】会社概要資料
【株式会社PIGNUS】会社概要資料【株式会社PIGNUS】会社概要資料
【株式会社PIGNUS】会社概要資料contact890866
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみたHiroshi Ohnuki
 
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -Hiroshi Masuda
 
ディレクターからみたMovable Type + PowerCMSの優位性
ディレクターからみたMovable Type + PowerCMSの優位性ディレクターからみたMovable Type + PowerCMSの優位性
ディレクターからみたMovable Type + PowerCMSの優位性Renji Yoneda
 
経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織Recruit Technologies
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterpriseKoichiro Sumi
 
【IMJ】オウンドメディアマーケティングの現在と未来 江端浩人(I・CON2014)
【IMJ】オウンドメディアマーケティングの現在と未来 江端浩人(I・CON2014)【IMJ】オウンドメディアマーケティングの現在と未来 江端浩人(I・CON2014)
【IMJ】オウンドメディアマーケティングの現在と未来 江端浩人(I・CON2014)IMJ Corporation
 
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方Yusuke Suzuki
 

Similar to 業務システムにおけるMongoDB活用法 (20)

Google のクラウド サービスを利用する前に 注意すべきこと
Google のクラウド サービスを利用する前に 注意すべきことGoogle のクラウド サービスを利用する前に 注意すべきこと
Google のクラウド サービスを利用する前に 注意すべきこと
 
W&B webinar finetuning_配布用.pdf
W&B webinar finetuning_配布用.pdfW&B webinar finetuning_配布用.pdf
W&B webinar finetuning_配布用.pdf
 
PwC - Strategic Sustainability & Innovation Forum - Microsoft の Sustainabilit...
PwC - Strategic Sustainability & Innovation Forum - Microsoft の Sustainabilit...PwC - Strategic Sustainability & Innovation Forum - Microsoft の Sustainabilit...
PwC - Strategic Sustainability & Innovation Forum - Microsoft の Sustainabilit...
 
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatformJSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
JSUG SpringOnePlatform 2016報告会 Case study2 - feed back - springoneplatform
 
AgileJapan 2017 ビジネスアジャイル 匠Methodとスクラム
AgileJapan 2017 ビジネスアジャイル  匠MethodとスクラムAgileJapan 2017 ビジネスアジャイル  匠Methodとスクラム
AgileJapan 2017 ビジネスアジャイル 匠Methodとスクラム
 
リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例
 
Company Profile 2013 recruit
Company Profile 2013 recruitCompany Profile 2013 recruit
Company Profile 2013 recruit
 
Google Cloud Platformのエンタープライズ最新活用事例
Google Cloud Platformのエンタープライズ最新活用事例Google Cloud Platformのエンタープライズ最新活用事例
Google Cloud Platformのエンタープライズ最新活用事例
 
Relationship betweenddd and mvc
Relationship betweenddd and mvcRelationship betweenddd and mvc
Relationship betweenddd and mvc
 
Ms retail update ra 20191030
Ms retail update ra 20191030Ms retail update ra 20191030
Ms retail update ra 20191030
 
なぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのかなぜ「マイクロサービス“化”」が必要なのか
なぜ「マイクロサービス“化”」が必要なのか
 
【株式会社PIGNUS】会社概要資料.pdf
【株式会社PIGNUS】会社概要資料.pdf【株式会社PIGNUS】会社概要資料.pdf
【株式会社PIGNUS】会社概要資料.pdf
 
【株式会社PIGNUS】会社概要資料
【株式会社PIGNUS】会社概要資料【株式会社PIGNUS】会社概要資料
【株式会社PIGNUS】会社概要資料
 
6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた6製品1サービスの開発にPortfolio for JIRAを使ってみた
6製品1サービスの開発にPortfolio for JIRAを使ってみた
 
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
ピタゴラAPIのすゝめ ー APIの組み合わせ利用でできること -
 
ディレクターからみたMovable Type + PowerCMSの優位性
ディレクターからみたMovable Type + PowerCMSの優位性ディレクターからみたMovable Type + PowerCMSの優位性
ディレクターからみたMovable Type + PowerCMSの優位性
 
経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織経営のアジリティを支えるDevOpsと組織
経営のアジリティを支えるDevOpsと組織
 
Spath for enterprise
Spath for enterpriseSpath for enterprise
Spath for enterprise
 
【IMJ】オウンドメディアマーケティングの現在と未来 江端浩人(I・CON2014)
【IMJ】オウンドメディアマーケティングの現在と未来 江端浩人(I・CON2014)【IMJ】オウンドメディアマーケティングの現在と未来 江端浩人(I・CON2014)
【IMJ】オウンドメディアマーケティングの現在と未来 江端浩人(I・CON2014)
 
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
夏サミ 2012 [B-2]エンタープライズ開発におけるコラボレーション - JIRAによる顧客と開発チームのつなぎ方
 

More from Co-graph Inc.

ITベンチャー社長が語る!《新時代の採用戦略!》
ITベンチャー社長が語る!《新時代の採用戦略!》ITベンチャー社長が語る!《新時代の採用戦略!》
ITベンチャー社長が語る!《新時代の採用戦略!》Co-graph Inc.
 
HAL東京インターン生業務成果プレゼン
HAL東京インターン生業務成果プレゼンHAL東京インターン生業務成果プレゼン
HAL東京インターン生業務成果プレゼンCo-graph Inc.
 
[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門Co-graph Inc.
 
Hadoop cluster setup by using cloudera manager
Hadoop cluster setup by using cloudera managerHadoop cluster setup by using cloudera manager
Hadoop cluster setup by using cloudera managerCo-graph Inc.
 

More from Co-graph Inc. (6)

ITベンチャー社長が語る!《新時代の採用戦略!》
ITベンチャー社長が語る!《新時代の採用戦略!》ITベンチャー社長が語る!《新時代の採用戦略!》
ITベンチャー社長が語る!《新時代の採用戦略!》
 
HAL東京インターン生業務成果プレゼン
HAL東京インターン生業務成果プレゼンHAL東京インターン生業務成果プレゼン
HAL東京インターン生業務成果プレゼン
 
[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門[コグラフ]spss modelerによるデータ加工入門
[コグラフ]spss modelerによるデータ加工入門
 
MongoDB + XSD/XML
MongoDB + XSD/XMLMongoDB + XSD/XML
MongoDB + XSD/XML
 
Watch Your Log!
Watch Your Log!Watch Your Log!
Watch Your Log!
 
Hadoop cluster setup by using cloudera manager
Hadoop cluster setup by using cloudera managerHadoop cluster setup by using cloudera manager
Hadoop cluster setup by using cloudera manager
 

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