fc2ブログ

無精で短気で傲慢なプログラマ

UNIX や web やプログラムの技術的なことを中心に。

DoCoMo の料金システムは偉い

わたしがすごいなーと思うシステムは NTT DoCoMo の料金システムである。

2005年度 第2四半期データ によると、DoCoMo だけで 5,000万契約ある。

月に一度請求書を送るとすると、5,000万通の請求書を送付しなければ
ならない。もし RDBMS で保持していたとすると、月に 5,000万レコード
ずつ増加することになる。12ヶ月で 6億レコード。

これだけでもため息が出るが、手元にある昔の DoCoMo の請求書を見ると、

基本使用量 (デジタル800/プランA) [月額] 4,500円
いちねん割引料 (契約期間2年超3年まで) [月額] -540円
基本使用量 (パケット/ライフプラン) [月額] 150円
付加機能使用量 (iモード) [月額] 150円
ダイヤル通話分 430円
無料通話分 -430円
延滞利息 34円
消費税相当額 (合計) 213円
(合計) 4,507円

となっている。明細が 8行なので、明細テーブルは 5,000万×8レコードで
4億レコード。月に 4億レコード増える。これは怖い。12ヶ月で 48億レコードである
(まぁ延滞利息については料金計算システムではなく、与信管理システムが算出して
いるような気がするが)。

さらに言えば、何月何日何時何分に何パケット送受信した、というデータも当然管理
しているだろう。これを RDBMS で管理したとするなら、レコード数は 1千億や1兆の
単位になるかもしれない。

ちなみに上記四半期データによると ARPU (Average Revenue Per User。1契約
あたりの月間売上) は 7,000円程度なので、1ヶ月の請求額合計は 350,000,000,000 円
(3,500億円)。

これもデカい。32bit 符号付整数の最大値は 21億なので全然足りない。64bit
符号付整数なら余裕だけれども。

で、これだけでも「デカいシステムだなぁ。RDMBS でまともに管理できるのかなぁ」
って感じなのだが、驚いたのは携帯を解約したとき。窓口に行ったときに、
 「今月の請求額は~円です。ただし直近 2時間程度の料金などは含まれません
  ので、もしそういう通話があれば後日請求させていただきます」
と言われたことである。DoCoMo は2時間程度のタイムラグでリアルタイムに
料金計算をしているのか~と心底感心したものだ。そして解約した月の通話
料金について、どこまで請求して、残りはいくら、という管理ができている
ことにも驚いた。

わたしが経験した範囲では、金が絡むシステムはミスが怖いので、締め日に
月次バッチを動かした後、ある程度手動で検証作業を行ったりするものである。
もしそこでミスが発覚したら、プログラムを修正し再度請求額を計算する。
正確性については、その程度のミスは許容されていた。しかしリアルタイム
性を求めると手動での検証作業はあきらめなければならない。つまりミスは許されない。

DoCoMo の中の実情は知らないが、外から見る限りでは凄いシステムだなぁと
思う。まぁ中身はボロボロだったりするんだろうけれども、外に見せないだけでも
立派だ。

スポンサーサイト



PageTop

fc2 のパスワード

久々にこの blog の管理者ページにログインしようとしたが、パスワードを忘れてしまって
なかなかログインできない。

そういえば「英字は小文字のみ使用可」という仕様だったっけなと思いだして、試して
みたら無事ログインできた。

どうしてこういうわけのわからん仕様にするのだろうか。あとパスワードは 8文字まで
というダメサイトもよくある (goo とか)。

「英大文字なんて使う奴はいないよ」「パスワードなんて 8文字あれば足りるでしょ」と馬鹿が
言い出して、それを疑問に思う人がいなかったか、疑問に思う人はいたけど意見を言う気力が
なかったか、意見を言っても「もう決まっちゃったから」と却下されたのか、と勝手に想像して
同情してみたりする。
PageTop