我們正在使用自定義智能卡,通過COM(通過USB)接口讀取和寫入數據。正在使用交易智能卡寫作的好主意?
每當我們添加或更新記錄時,需要在卡上進行一些管理以確保更新其他信息(主要是指針)。卡上的信息基本上是一個64k字節的數組。在單個添加或更新時,數據在字節數組中的各個點處被讀取和寫入。
我想強制執行一個方法來完成原子化的整個更新。如果我們處於寫入過程中,並且智能卡被拔出,數據很容易被破壞,尤其是因爲實際上它只是一個連續的字節數組,所以一個字節不合適會混淆整個數組的有效性。我想盡可能少地發生這種情況。
我查看了TransactionScope
,但是這主要看起來是用於數據庫事務。像這樣的機制對我的問題有用嗎?或者我應該考慮其他方法來強制我的軟件塊以有效的方式讀取和寫入?
我們使用的智能卡是由政府機構提供給我們的,因此不會更改。它有一個內存芯片,就像你在你的SIM卡上看到的一樣,你的電話也有很多銀行卡(相對於磁條)。 該卡使用ISO-7816-15規格設計。卡和卡的接口最初是由另一個程序員設計的,他基本上對我說:我只處理進入的字節和字節,我不做任何驗證。這對我來說似乎很奇怪,因爲我認爲他的責任是不讓卡片變得如此容易損壞。顯然它是我的。
我會研究更多的技術規格,雖然這導致我走出了我的舒適區,除非我絕對需要,我不想惹他的代碼。也許這張卡有比目前做的更好的方法。
有一個簡單的READ命令,它只支持一次讀取231個連續的字節。當我問他爲什麼這麼做,爲什麼我不能一次性得到整個字節數組時,他說這就是所有的卡都支持的。所以閱讀整個文件真的很尷尬。它變得更糟,因爲一旦它「滿」,它應該跳到數組的開頭。 :S
寫一個事務性文件系統(2階段提交)(如果設備SDK不具有一個)... – 2013-04-22 08:08:18
爲什麼-4?我盡力解釋問題所在。 – Davio 2013-04-22 08:30:57