何気ない記録

なんとなく自分の意見を書き記すときにつかいます。つまり不定期更新です。

全体的に雑で酷い・・・

 

Suicaのシステムがいかにすごいか仕組みを徹底解説 - 炎と硝煙にむせる開発現場から

"普通のWebサービスのレスポンス速度は1秒以内でも結構早い方で、処理速度的には0.2秒とか意外にかってたりします" は? いつの時代のいつのシステムだよ。仮に通信のオーバーヘッドを加味するなら実態は同等なんだが

 

 

いや、もう、年末になると皆暇なのか、無駄な知識を吐き出したいのか、本当に糞クオリティの記事が大量にでまわる・・・。

 

この記事主、フルスタックエンジニアと自称しているんだけど、お前、その記事、本気で書いてるの?

 

そもそも昨今のアプリで200msで処理とか遅すぎだし、Webサービスは処理よりも通信のオーバーヘッドが大きいし、ただ、相手がICカードの場合、ICカードの通信によるオーバーヘッドも考えれば、実態としては余り差異がないわけで、何を何と比較して、どこが凄いといっているかまったくわからない。

 

勘違いしてはいけないが、ICカードの通信処理は別に速いわけではない。

実際の所400Kbpsとか確かその辺が最速だったと思うのだが、これは普通のネットの通信速度と別に変わらない。というか、状況によっては遅い。

ただ、ICカードは、そもそもICカードに対応した仕組みを構築する際に、そのデータや処理の特性上、WEBサービスのような情報量を取り扱わない処理としているわけで、結果として「見た目上」早いように見えているだけで、特別な事はなにもない。

 

もっと言及すると、ICカードでは一般的にカード情報の更新手続きが伴う事が多い(もっとも、勤怠のよなリードのみのケースも昨今は多いが)為、その書き込み訂正まで含めると、実態としては決して早いとまではいえない。

 

例えば、我々がアプリを操作するときは、ある画面を表示するための操作が失敗することもなければ、その処理が訂正されるような事はない。

 

一方で、ICカードの場合、信号強度や結果の妥当性、エラー時のリカバリーなど、厳密に言えばかなりその中で必要とされる手続きが多い。

もっとも、これらはライブラリ等によりかなり使いやすくはなっているが、例えば同じリーダーに対して複数のICカードが検出された場合にどうするか、といった事も当然考えなければならない。

 

つまりは「WEBサービスとは作り方も何もかも違う」という話しであって、別に「早い」わけでは全くない。

 

というか、例えば昨今のリアルタイム性の高いアプリであれば、局所的なピークではなんとも言えないが、秒間数万処理などというものは普通に存在する。

 

1日4000万件の処理とは、秒間に直せば約470回程度の処理量となる。

例えばTwitterバルスツィートは2013年の記録で約14万3千ツィートとの事であって、その量もインターネット界隈の処理量として議論するとそれほどのものでもない。

 

「いやいや、ピークで言えば違うでしょ」などという君、正しい。

 

2017年の乗車人数のランキングでトップを見ると新宿駅で1日約78万人が利用している。

大凡朝と夕の乗車に偏ると過程し、且つ、昼も比較的多いと想定すると、ざっくり考えて朝夕のピーク時にそれぞれ全体の35%の利用者が集中しているとすると朝のピークで約27万人が利用したと推定される。さらにそれを点のタイミングでつまり秒間で考えた場合、ありえないがその50%が同時に改札を通過するとしても秒間13万5千件でしかない。

 

まぁ、ありえんが、改札の数は固定されているわけで。

具体的な数は見つからなかったが、200件以上みたいな記事があったので、まぁ、雑に10倍だったとしても2000件が基準値で、仮に引用されている記事の「タッチ時間の最短は0.2秒だった」というものを根拠にすれば、(絶対にありえないが)秒間5人が改札を通過するわけだから、2000台の改札を秒間5人が通過するわけで、秒間1万件の処理に過ぎない。

 

秒間1万、うん、ちょっとしたサーバーがあればいける。

というのも、前述のとおりICカードの通信内容は非常に限定的なので。コネクション数の処理さえなんとかなれば、通信内容を元にした処理はさほどのものでもない。

仮に、改札がある程度のスタンドアロンア仕組みを持っていたとするならば、当然同時コネクション数が通過数の想定値を大きく超える事はないので、そこに求められる処理もさほどの事はない。

 

ようは、分解して考えればそこは驚きポイントがずれている事は直ぐにわかる。

 

 

あと、お前が言っているのは「ICカード乗車券システム」の事で、それはSuicaではない。

ICカード乗車券システム」とは「Suica」というICカードシステムを用いた、「乗車券システム」のことで、実際お前が引用した記事にもそう書いてあるし、その説明は全てそのことだろうが・・・。

 

例えば、処理時間「0.1秒」の前提も、「改札」という特性上、そういった処理体系を考える必要があるわけで、別に「Suica」としては必要がない、というか「Suica」自体は普通のICカードなのでそのような仕組みはない。

 

実際自分でテストできるので、フルスタックエンジニアであればお手元のSuicaとリーダーを買ってきて試せば普通にわかるが、ただのICカードのリード/ライトをやっているだけで、なにも変わらない。

 

この記事は、全般的に言ってる事が「ICカード乗車券システム」の話しをただ、書き換えているだけなのだが、結果として「だからSuicaは6000万枚も普及した」といってる。

 

意味がわからん。

 

Suicaが普及したのは単純に日常利用されるもっとも身近な電子マネーシステムであった、というだけでしかない。

 

考察もまとめも、使っている用語も全て雑だし、雑というか本気で間違っているのではないかとすら思える。

 

だが彼は「フルスタックエンジニア」なんだよ。

フルスタックエンジニア」も随分と安い存在になったものだと思う。