分散式系統(tǒng)期末Project_第1頁
分散式系統(tǒng)期末Project_第2頁
分散式系統(tǒng)期末Project_第3頁
分散式系統(tǒng)期末Project_第4頁
分散式系統(tǒng)期末Project_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、分散式系統(tǒng)期末ProjectE-Card智慧卡交易系統(tǒng)文件一、系統(tǒng)架構(gòu):客戶端程式認(rèn)證中心提款銀行存款銀行資訊資訊資訊E-Card智慧卡系統(tǒng)架構(gòu)圖二、系統(tǒng)使用流程圖:步驟一 : 銀行加入認(rèn)證中心步驟二 : (交易開始)(1) client(商店中的刷卡機(jī))傳送交易資料給coordinator。123(2)coordinator同時傳送資料給顧客銀行以及商店銀行(3)交易結(jié)果傳回商店三、客戶端程式客戶端提供功能:1. 交易:提供視窗讓使用者(商家、消費(fèi)者)輸入交易相關(guān)資訊。2. 設(shè)定商店資訊:提供使用者(商家)設(shè)定商店資訊(商店名稱、商店信用卡號)。3. 設(shè)定認(rèn)證中心資訊:提供使用者(商家)設(shè)定

2、認(rèn)證中心伺服器相關(guān)資訊(ip位址、通訊埠)。4. 模擬多人共用程式:利用multi-thread來模擬多人同時使用交易系統(tǒng)。Failure Handling:1. 網(wǎng)路斷線: 呼叫認(rèn)證中心open_transaction之前:直接顯示無法連結(jié)至認(rèn)證中心伺服器資訊。 呼叫認(rèn)證中心open_transaction到一半:client端會等待認(rèn)證中心回傳交易代號,若超過一定時間(一分鐘),則client會強(qiáng)制中斷並且放棄該筆交易,並回傳開啟交易失敗訊息給使用者。 呼叫認(rèn)證中心open_transaction完成,尚未呼叫認(rèn)證中心start_transaction:此時認(rèn)證中心已經(jīng)回傳一個交易代號,但

3、client端會顯示無法連結(jié)至認(rèn)證中心伺服器,交易失敗訊息。 呼叫認(rèn)證中心start_transaction到一半:client端會等待認(rèn)證中心回傳交易是否成功,若超過一定時間(一分鐘),則client會強(qiáng)制中斷交易,並且重新連線至認(rèn)證中心三次(每次間隔一秒鐘),呼叫認(rèn)證中心query_transaction以查詢該筆交易是否成功,並且回傳相對應(yīng)訊息給使用者;如果三次呼叫都失敗,則會顯示交易狀態(tài)不明,請聯(lián)絡(luò)認(rèn)證中心訊息。2. client crash:若已經(jīng)開啟一筆新交易(已有交易代號),則會將該筆交易代號記錄至tidlog.txt檔案,以供使用者向認(rèn)證中心查詢該筆交易相關(guān)資訊。四、認(rèn)證中心端

4、程式:提供給客戶端的功能1. open_transaction: 從資料庫中取出最大trans_id值,加1後成為新的trans_id,並回傳給client。 寫入log table,紀(jì)錄(trans_id, open, trans_time)。2. start_transaction: 會產(chǎn)生一個start_trans_thread,專門負(fù)責(zé)處理該筆交易。 檢查log table中,是否有這個trans_id的open紀(jì)錄,若無則傳回交易失敗。 寫入log table,紀(jì)錄(trans_id, start, trans_time) 從bank_location table中找出cusbank

5、和storebank的ip,再分別產(chǎn)生withdraw_thread和deposit_thread,來呼叫其object。 在此同時,會new一個timer的thread用來計(jì)時,若銀行在一段時間內(nèi)沒有回應(yīng),而造成time-out,coordinator就會直接紀(jì)錄該筆交易失敗。 若在time-out時間內(nèi),根據(jù)bank傳回值,決定作commit或abort 回傳交易結(jié)果給商家3. query_transaction:供商家查詢交易資料,傳回log table中該trans_id的最後交易狀態(tài)。4. shut-down:當(dāng)coordinator必須要shut-down時,會透過這個functi

6、on先去檢查目前是否有正在進(jìn)行的交易,若有,就必須等到交易完成才能shut-down。5. corestart:當(dāng)coordinator被不正常關(guān)機(jī)或shut-down(沒有call shut-down function),下次重新開時機(jī)就必須呼叫此function,若發(fā)現(xiàn)有未完成的交易,就直接紀(jì)錄abort。6. backuplog:檢查當(dāng)所有銀行都做完checkpoint時,coordinator就會備份自己BD裡面的log table和transaction table。Failure handling:1. 斷線發(fā)生於: open_transaction store等coordinat

7、or回應(yīng)trans_id,若過一段時間(time_out)仍沒收到,就自動放棄該交易。 coordinator不會等store,log table中仍保持open狀態(tài),等做checkpoint時再消去此transaction資料。 所以由store client來implement time_out機(jī)制 start_transaction 等bank的withdraw和deposit傳回值,設(shè)定timeout,若任一方超過時間,就abort該筆交易:在log中記錄abort,並發(fā)出Doabort給bank,傳回交易失敗給store。 當(dāng)coordinator已呼叫Docommit(或Doabo

8、rt)後,超過時間沒有得到回應(yīng),就再試一次(或兩次),若仍無回應(yīng),沒有關(guān)係,交易仍算是成功。2. coordinator crash:執(zhí)行corestart後,重新initialize整個交易系統(tǒng),將DB中未完成的交易紀(jì)錄成abort。提供給銀行端的功能1. join:讓新進(jìn)銀行加入時,來作登錄的動作。2. modify:讓銀行來更改它的ip或port3. getdecision:讓銀行來查詢一筆交易是否commit或abort4. docheckpoint、overcheckpoint:主要用來管理銀行狀態(tài),(當(dāng)所有銀行都做完checkpoint,coordinator會接著作資料庫的備份。

9、)5. dorestart、overrestart:這兩個function用在當(dāng)銀行被不正常關(guān)機(jī)或shut-down時,告知coordinator它已重新restart,並在稍後可以再正常交易。Failure handling:這個部分僅利用catch exception來處理failure。五、銀行端程式:提供給認(rèn)證中心端的功能1. Withdraw: 先檢查此帳戶是否被鎖定,若是被鎖定則等待,若沒有被鎖定則繼續(xù)執(zhí)行下面步驟 更改資料庫此帳號中的金額 紀(jì)錄log資訊 開啟一個Timer 當(dāng)Timer時間到,則檢查交易是否已經(jīng)透過認(rèn)證中心的doabort或docommit,而使log中的交易狀

10、態(tài)為abort或commit 若沒有則去認(rèn)證中心getdesicion(),若仍然沒有取得交易狀態(tài)的最後結(jié)果,則此帳戶被鎖定直到checkpoint才能解除,若取得則進(jìn)行該有的abort或commit動作。2. Deposit: 同Withdraw3. Doabort: 藉由紀(jì)錄在log中的資訊,recover該transaction所有operation4. Docommit: 交易完成,登錄log資訊銀行其他功能:Checkpoint : 銀行每日(三點(diǎn)半)必須作checkpoint,將已經(jīng)commit的交易最後值紀(jì)錄在table中,而刪除其餘的log資訊,並核對帳戶中的金額看是否符合,若有未commit或abort的交易,則再去認(rèn)證中心作getdisicion(),而能把被鎖定的帳戶

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論