内容が曖昧で回答に困るところもあるかと存じますが、どんな些細な事でも構いませんのでご助言いただけますと幸いです。
ICカードを用いたシステムを作りたいと思っており、仕様を検討しているのですが煮詰まっており、お知恵をいただきたいです。
sonyが発売しているPasoriを購入して仕様を確認しています。
仕様を確認していると、SDKで提供している様なのですが、特にオープンで情報が共有されていない様でした。
https://www.sony.co.jp/Products/felica/business/products/sdk.html
やりたい事
WebでICカードを読み取るシステムを実装したいです。
下記のサイト様で、ご紹介している製品の様にWebで解決できるシステムを実装したいと考えています。
https://www.orangetags.co.jp/app_example.html
https://www.orangetags.co.jp/orange_post.html
お聞きしたい事
カードの種類は何処で調べられますか?
NFC通信リーダーで使用できるカードの種類について理解を深めたいです。
Suicaや個人情報カードは、読み取れると言う事実はわかるのですが、あのカードは何処から発行されているのでしょうか?
秋月電子の様な電子部品屋さんに何も記録されていないカードが売っていて、カードに書き込む装置等で書きこみをしているのでしょうか?
それとも、シリアル番号の様に最初から番号が決まっているのでしょうか?
カードリーダーの規格は何処で調べられますか?
「ICカード リーダー」で検索すると、Pasoriが出てきます。
しかし、それ以外の会社(例えば、SANWA)でもICカードリーダーを出しています。
https://www.monotaro.com/g/02918455/
おそらく、ICカードを読み込むための共通仕様があると考えているのですが、何処で調べれば良いのでしょうか?
USBのカードリーダーの情報をブラウザで受け取るにはどんな技術を使っているのでしょうか?
前項で、目標のサイトをご共有させていただきましたが、
ブラウザからでも、ICカードリーダーを通してデータを取得すること自体は出来ると言うのはわかりました。
ただ、カードリーダーを繋いだだけでは読み込むだけでなく、ブラウザに読み込ませるためのドライバーがないと実現できないのではないかと思っています。
調べる中で、ChromeのWeb USB APIを使って実現されている方もいらっしゃいますが、単純に繋げるだけでなく、PC側で読み込める様に外部のドライバーをインストールしているのがわかりました。
PasocaのSDKや、参考サイトの仕様を見ると、IEのみとなっていたので、
カードリーダーとそのドライバーが対応していないと、ブラウザ経由でデータを取得する事が出来ないのではないかと感じています。
前述したカードリーダーの規格の話に関わってきますが、
カードリーダーをブラウザで使うための共通ドライバの様なものが存在するのでしょうか?
例えば、個人情報カードをSANWAのカードリーダーでもSoniyのPasoriでもが読み込めるのは共通なドライバーを仕様していると言えるのでしょうか?
実装イメージ
色々お話を聞けたので、実装のイメージが湧いてきました。
環境について
項目 | バージョン | 備考 |
---|---|---|
PC | windows | 10以上(厳密には7だと思いますが、サポート期間が近いため) |
対応するICカードの規格 | FeliCa、FeliCa Lite(S) | PC/SCでIDmを取得できる規格に絞りたいため |
リーダー | Pasori | リーダーを絞る必要はないと思うが、PC/SCの対応、非対応があると思うため(FeliCaの時点でないかもしれませんが…) |
概要
FeliCaでカードを通すと、通した情報(IDm)をWebサーバーに送信。
データベースを照合して該当するIDmの情報があった場合は、保存処理。
ブラウザでカードを通した人の情報をWebサーバーから取得して表示。
想定されるフロー
その1 データベースに保存
windowsアプリから送信された情報をDBに保存(ハッシュ等のIDと一緒に)。
ブラウザから定期的にサーバーにアクセスして、送信情報を取得。
もしかしたら、Webサーバーに送信された情報をDBを介さず取得する方法があるかもしれませんが、
自分の知識不足で想像できるのはこの方法です。
思いつくデメリット
- jsでapiを経由してデータを取得するので、仮に複数の環境で使う場合は、わかる人がやれば送信情報が外から見られる
- 定期的にアクセスするので、送信量がかなり大きくなる(Lambda等のサーバーレスでAPIを使えば落ちることはないが課金額が大きくなる)
- 毎回通信を挟むため上記の問題もあるし、リアルタイム性が失われる。
その2 ネイティブアプリで完結させる
windowsアプリで送信、ユーザー情報取得まで行う。
websocketサーバーを経由して取得した情報を渡す。
ブラウザで、データを表示する。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/11 09:55
2019/05/11 10:18 編集
2019/05/11 11:18 編集
2019/05/11 14:03 編集
2019/05/12 04:43 編集
2019/05/12 06:49
2019/05/12 07:09
2019/05/12 07:23 編集