![分散式系统期末Project_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/ffd0efb7-f9e6-4304-a776-bd213ed3f374/ffd0efb7-f9e6-4304-a776-bd213ed3f3741.gif)
![分散式系统期末Project_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/ffd0efb7-f9e6-4304-a776-bd213ed3f374/ffd0efb7-f9e6-4304-a776-bd213ed3f3742.gif)
![分散式系统期末Project_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/ffd0efb7-f9e6-4304-a776-bd213ed3f374/ffd0efb7-f9e6-4304-a776-bd213ed3f3743.gif)
![分散式系统期末Project_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/ffd0efb7-f9e6-4304-a776-bd213ed3f374/ffd0efb7-f9e6-4304-a776-bd213ed3f3744.gif)
![分散式系统期末Project_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-1/21/ffd0efb7-f9e6-4304-a776-bd213ed3f374/ffd0efb7-f9e6-4304-a776-bd213ed3f3745.gif)
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、分散式系統期末ProjectE-Card智慧卡交易系統文件一、系統架構:客戶端程式認證中心提款銀行存款銀行資訊資訊資訊E-Card智慧卡系統架構圖二、系統使用流程圖:步驟一 : 銀行加入認證中心步驟二 : (交易開始)(1) client(商店中的刷卡機)傳送交易資料給coordinator。123(2)coordinator同時傳送資料給顧客銀行以及商店銀行(3)交易結果傳回商店三、客戶端程式客戶端提供功能:1. 交易:提供視窗讓使用者(商家、消費者)輸入交易相關資訊。2. 設定商店資訊:提供使用者(商家)設定商店資訊(商店名稱、商店信用卡號)。3. 設定認證中心資訊:提供使用者(商家)設定
2、認證中心伺服器相關資訊(ip位址、通訊埠)。4. 模擬多人共用程式:利用multi-thread來模擬多人同時使用交易系統。Failure Handling:1. 網路斷線: 呼叫認證中心open_transaction之前:直接顯示無法連結至認證中心伺服器資訊。 呼叫認證中心open_transaction到一半:client端會等待認證中心回傳交易代號,若超過一定時間(一分鐘),則client會強制中斷並且放棄該筆交易,並回傳開啟交易失敗訊息給使用者。 呼叫認證中心open_transaction完成,尚未呼叫認證中心start_transaction:此時認證中心已經回傳一個交易代號,但
3、client端會顯示無法連結至認證中心伺服器,交易失敗訊息。 呼叫認證中心start_transaction到一半:client端會等待認證中心回傳交易是否成功,若超過一定時間(一分鐘),則client會強制中斷交易,並且重新連線至認證中心三次(每次間隔一秒鐘),呼叫認證中心query_transaction以查詢該筆交易是否成功,並且回傳相對應訊息給使用者;如果三次呼叫都失敗,則會顯示交易狀態不明,請聯絡認證中心訊息。2. client crash:若已經開啟一筆新交易(已有交易代號),則會將該筆交易代號記錄至tidlog.txt檔案,以供使用者向認證中心查詢該筆交易相關資訊。四、認證中心端
4、程式:提供給客戶端的功能1. open_transaction: 從資料庫中取出最大trans_id值,加1後成為新的trans_id,並回傳給client。 寫入log table,紀錄(trans_id, open, trans_time)。2. start_transaction: 會產生一個start_trans_thread,專門負責處理該筆交易。 檢查log table中,是否有這個trans_id的open紀錄,若無則傳回交易失敗。 寫入log table,紀錄(trans_id, start, trans_time) 從bank_location table中找出cusbank
5、和storebank的ip,再分別產生withdraw_thread和deposit_thread,來呼叫其object。 在此同時,會new一個timer的thread用來計時,若銀行在一段時間內沒有回應,而造成time-out,coordinator就會直接紀錄該筆交易失敗。 若在time-out時間內,根據bank傳回值,決定作commit或abort 回傳交易結果給商家3. query_transaction:供商家查詢交易資料,傳回log table中該trans_id的最後交易狀態。4. shut-down:當coordinator必須要shut-down時,會透過這個functi
6、on先去檢查目前是否有正在進行的交易,若有,就必須等到交易完成才能shut-down。5. corestart:當coordinator被不正常關機或shut-down(沒有call shut-down function),下次重新開時機就必須呼叫此function,若發現有未完成的交易,就直接紀錄abort。6. backuplog:檢查當所有銀行都做完checkpoint時,coordinator就會備份自己BD裡面的log table和transaction table。Failure handling:1. 斷線發生於: open_transaction store等coordinat
7、or回應trans_id,若過一段時間(time_out)仍沒收到,就自動放棄該交易。 coordinator不會等store,log table中仍保持open狀態,等做checkpoint時再消去此transaction資料。 所以由store client來implement time_out機制 start_transaction 等bank的withdraw和deposit傳回值,設定timeout,若任一方超過時間,就abort該筆交易:在log中記錄abort,並發出Doabort給bank,傳回交易失敗給store。 當coordinator已呼叫Docommit(或Doabo
8、rt)後,超過時間沒有得到回應,就再試一次(或兩次),若仍無回應,沒有關係,交易仍算是成功。2. coordinator crash:執行corestart後,重新initialize整個交易系統,將DB中未完成的交易紀錄成abort。提供給銀行端的功能1. join:讓新進銀行加入時,來作登錄的動作。2. modify:讓銀行來更改它的ip或port3. getdecision:讓銀行來查詢一筆交易是否commit或abort4. docheckpoint、overcheckpoint:主要用來管理銀行狀態,(當所有銀行都做完checkpoint,coordinator會接著作資料庫的備份。
9、)5. dorestart、overrestart:這兩個function用在當銀行被不正常關機或shut-down時,告知coordinator它已重新restart,並在稍後可以再正常交易。Failure handling:這個部分僅利用catch exception來處理failure。五、銀行端程式:提供給認證中心端的功能1. Withdraw: 先檢查此帳戶是否被鎖定,若是被鎖定則等待,若沒有被鎖定則繼續執行下面步驟 更改資料庫此帳號中的金額 紀錄log資訊 開啟一個Timer 當Timer時間到,則檢查交易是否已經透過認證中心的doabort或docommit,而使log中的交易狀
10、態為abort或commit 若沒有則去認證中心getdesicion(),若仍然沒有取得交易狀態的最後結果,則此帳戶被鎖定直到checkpoint才能解除,若取得則進行該有的abort或commit動作。2. Deposit: 同Withdraw3. Doabort: 藉由紀錄在log中的資訊,recover該transaction所有operation4. Docommit: 交易完成,登錄log資訊銀行其他功能:Checkpoint : 銀行每日(三點半)必須作checkpoint,將已經commit的交易最後值紀錄在table中,而刪除其餘的log資訊,並核對帳戶中的金額看是否符合,若有未commit或abort的交易,則再去認證中心作getdisicion(),而能把被鎖定的帳戶
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三年级数学(上册)计算题
- 外贸业务员年终工作总结
- 一般固废处理协议书范本
- 冀教版七年级数学上册听评课记录 2.6 角的大小
- 快乐读书吧:从前有座山说课稿2024-2025学年统编版语文五年级上册
- 小数加减法的听评课记录
- 新版华东师大版八年级数学下册《18.1平行四边形的性质1》听评课记录
- 部编小升初数学试卷
- 《汉武帝巩固大一统王朝》名师听课评课记录(新部编人教版七年级上册历史)
- 中图版地理八年级下册《第二节 美国》第一课时 听课评课记录
- 药膳与食疗试题及答案高中
- 北京市西城区2024-2025学年八年级上学期期末考试数学试卷含答案
- 2025年南京信息职业技术学院高职单招数学历年(2016-2024)频考点试题含答案解析
- 二零二五年度海外市场拓展合作协议4篇
- 2024年湖南汽车工程职业学院单招职业技能测试题库标准卷
- 2025中国铁塔集团安徽分公司招聘29人高频重点提升(共500题)附带答案详解
- 2025年河北省农村信用社招聘历年高频重点提升(共500题)附带答案详解
- 手术室植入物的管理
- 电力供电系统试验调试和联调方法
- 食品经营许可证主要设备设施布局图及操作流程
- Unit6AtthesnackbarStorytimeDiningwithdragons(课件)译林版英语四年级上册
评论
0/150
提交评论