スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--/--/--(--)--:--

スポンサー広告 | | | [編集]

▲ページトップ

交通系ICカードの物販について分かったこと1

(これは古い解析結果です。調査により新しい結果が出ていますので、そちらは追って書きたいと思います)

ICカードこれひとつへの数多くの情報提供により、交通系の物販も、かなり解読が進みました。

本稿は、現時点で分かっていること、分かりかけていることをメモしています。
後から誤りと分かったものは訂正したり、新しく記事を書いたり致します。
このように、根本的な誤りを含む可能性をお含み置きいただきお読みください。

階層構造


詳細は不明ながら「イシュアー」→「アクワイアラー」→「種類」→「端末」という番号の階層構造が予想されます。

そしてカードには、うち端末番号が記録され、イシュアーやアクワイアラーは記録されません。


格納される情報


・イシュアー: カードを発行している会社(manacaとPASMOは複数ある)
・アクワイアラー: 実際にカード端末を発行する会社
・種類: 現在は、有人と自動販売機の区別がある
・端末: 上の3情報と組み合わせて一意になる番号が割り当てられている


情報量


ビット構成の全てを解読したわけではないので、以下は全て予想となりますが、今のところ、「端末」のIDは20ビット、「アクワイアラー」は4ビットあると予想しており、うちカードには端末IDの下位16ビットが記録されると見込んでいます。

(H29/7/3追記)
更なる研究で、端末に与えられるIDは各イシュアーごとに36ビット程度があると分かってきましたが、カードに書き込む「端末」のIDは、20ビット中下位16ビットではなく、実際に16ビットで間違いはなさそうと分かってきました。
当初は端末20ビット+アクワイアラー4ビットと予想しましたが、端末20ビットと予想したうちの上位4ビットが、どうやらアクワイアラー4ビットだったようです。
以前アクワイアラーと予想したビット情報(上位情報)については後述します。
(H29/7/3追記おわり)

ですので、この予想では、アクワイアラー1社しかないとしても最大16が重複してしまい、もしアクワイアラー最大16がひしめきあう状況になれば、最大256の重複がありうることが分かりました。
しかも、manacaとPASMOは一つのカードに複数のイシュアーが存在しますので、カード種類という括りであれば、PASMOでは数千件規模の重複が将来的に予想されます。

このほか「種類」として、有人・無人の区別があります。カードには、有人は0xC7、無人(自動販売機)は0xC8として記録されますが、こちらも4ビット領域があるため、最大で16の区別が可能なようです。


下位情報の補足


アクワイアラー番号 → C7/C8の区別 → 端末ID の順に並ぶと予想しています。


上位情報の補足


イシュアーは、SPRWIDの頭2桁の英字で区別されているようです。A〜Zが26種類なので、26×26=676までのイシュアーが可能なようです。

また、各イシュアーごとに、アクワイアラー&種類&端末番号までの範囲を最大10倍に拡張できる余裕が持たれているようです(10進数で1桁分の余裕)
ということは、PASMOは本気出せば1万以上の重複が生じうる可能性があります

(H29/7/3追記)
更なる研究で、上位ビットの使途はかなり未知であることが分かってきました。
可能性は二通りで、
①情報は16ビット
②情報は10進数1桁と、さらに12ビット
のいずれかです。
当初は②を予想しましたが、①の可能性も高そうです。

上位情報も何らかの未知の情報を含むのですが、今のところ詳細は分かっていません。
これまで収集した情報では、上位情報のうち2ビット程度は変動しており、何らかの情報を表わしているものと予想しています。
最大16ビットの上位情報がありますので、PASMOは本気出せば1億件以上の重複を生じうる可能性があることになるのですが、使途が未知ですので、これはあくまでも可能性となります。
(H29/7/3追記おわり)


結論


以上より、交通系の物販については膨大な量の重複が今後想定され、いずれ全てを履歴画面に併記することは難しくなる日が来ると見込まれます。

交通系は無理と判断して諦める方法もありますが、それはそれで面白くありませんし、現に交通系物販の表示はかなり需要があり膨大な量の報告が届いていますから、今のところは重複があって対応を続ける予定です。
ただ、現在のアプリは1万件も重複表示できるような内部設計にはなっていないので、随時時間を見ながら内部の仕様変更を進めていきたいと考えています。

そして、あまりにも重複が多い場合は履歴画面に全部を表示するのではなく、必要に応じてタップして一覧のダイアログを表示する、のように構成を変更する必要が生じるものと想定をしています。

とはいえ、本当に1万件も重複してしまうと膨大なメモリー領域が必要となり、かなりの端末スペックを要求することになると思いますし、実際に1万件も表示したところで読み切れませんから表示する意味が殆どなくなるものと思われます。

1万は大げさとしても、数十件重複するだけで、見て確認できるレベルを超えますから、いずれは破綻を来す日が来るのだろうと予想をしています。

2017/05/25(木)23:38 |Comments(0) |Trackback(0)

製造開発 | ソフトウェア開発 | コンピュータ | [編集]

▲ページトップ

コメント

コメントの投稿

ホーム 「なっち」通常と昼割は完全に分離可能かどうか
トラックバック

この記事にトラックバックする(FC2ブログユーザー)
▲ページトップ

カレンダー

06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -

プロフィール

miraicorp

Author:miraicorp
未来情報産業(株) 社長

主として「ICカードこれひとつ」や「文字、文字コード」処理、時々C++などについて記述しています。

twitterツイッター

管理用

検索フォーム

お知らせ

コメント等お気軽にどうぞ。

気に入ったら拍手して頂けると、今後の記事を書く際の参考や励みになります。

■お仕事を募集しております
ソフトウェア製造の仕事や、原稿執筆の仕事などを随時受け付けております。
お気軽にご相談下さい

■初めての方へ
こまごまと更新しているため、他にも関連する記事があるかもしれません。
「月別アーカイブ」「検索フォーム」「カテゴリ」などをお試し下さい。
トップページはこちら

最新記事

最新コメント

最新トラックバック

月別アーカイブ

カテゴリ

広告枠

メール

メールはこちら

リンク

このブログをリンクに追加する

RSSリンクの表示

QRコード

QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。