跳到主要內容

由高鐵訂票系統現象看技術

事實上有經驗的工程師,即使沒有寫過票務系統,一聽到座位會重複劃位
應該可以馬上就知道問題出在哪,舉個簡單的例子: 一個pool裡有20個
不重複的號碼,現在要從pool裡拿出不重複的號碼排在桌子上,跟高鐵的
售票系統就很類似,(這是Critical Section的問題),一個junior的
工程師,很可能使用select 的方式由table裡拿出未註記的座位號碼,
訂位後把座位做標記,然而;這樣完全沒有transaction的觀念,由訂位
前取號到訂位後註記,多工(多人連線)系統可能同時處理2以上的程序,
於是可能發生同時取得相同號碼的問題,這是很嚴重的系統規劃問題,取
號應該是同時只能容許一個程序進入(lock),訂位前到訂位後為同一個
transaction,應該要有成功與倒回的做法,然而;這些機制卻是很少人
會去注意,難怪;高鐵的系統會出現這麼可笑的問題,我想或許高鐵的開
發人員連如何lock 都不知道,這就是只會使用db 開發程式的RD會發生
的事,另一個有趣的問題發生在,為何系統上線前的測試沒發現這麼嚴重
的問題?我想做上線前系統測試的工程師絕對也是一個初級生,單工的測
試,怎麼可能測試出多人連線的狀況,或許這些工程師還在想,不可能阿!
我之前都有測試過,沒問題怎麼會這樣?呵呵..這句話應該是programmer
常說的話之一;這問題跟使用 db使用自動編號(or oracle內的serial
使用) 或是直接SELECT MAX(number)+1 ... 寫入db 所會發生的問題
很類似,只要是稍微有經驗的工程師就知道,確實的原因絕對與高鐵發佈的
消息完全無關,系統的規劃 撰寫 全是一群非常資淺的工程師所組成,這才
是主因,我相信這個系統與台灣彩券系統一樣,還有很多潛在的問題沒被挖
掘出來,這個基礎的設計問題事前都沒注意,何況是更深層的系統問題,而
這些目前看不到的問題才是真正可怕的地方

留言

這個網誌中的熱門文章

怎麼在網路上註冊成為youbike 會員?

新版官網請參考  怎麼在網路上註冊成為youbike 會員?   http://rd-program.blogspot.tw/2014/04/youbike.html 網路的申請步驟類似,下面將以網路申請來說明申請步驟:申請的時候需要準備悠遊卡、或晶片信用卡,以及手機門號。 1. 請先登入ubike網址: http://www.youbike.com.tw/ ,登入後選擇【正體中文】,要選英文也可以啦! 2. 在螢幕的右上角選擇【註冊】。 3.點擊【開始註冊】。 4. 點擊【同意】。(沒有其他選擇?) 5. 輸入您的【手機號碼】以及【認證碼】,然後按【送出】。這時候手機會收到ubike傳來的簡訊,通之驗證碼,有四個阿拉伯數字。 6. 輸入帳號(手機號碼)、驗證碼(ubike傳到手機的簡訊)、密碼,然後按【下一步】。 7. 還沒完成喔!這裡告訴你如何租車及還車的步驟。把螢幕拉到最下面,記得勾選【我已清楚瞭解租還車步驟】,然後按【下一步】。 8. 選擇悠遊卡或是晶片信用卡,然後輸入卡片號碼,卡片號碼請參卡畫面又下方的提示位置,請注意有些卡號可能已經模糊不清,可能無法輸入。每隻手機不只可以輸入一個卡號。 9. 填寫個人姓名及Email帳號,如果不想收到相關訊息就把前面的打勾取消。按【確認】按鈕。 10. 恭喜您註冊成功,可已開始使用YouBike了。

Youbike 線上註冊會員

Youbike 線上註冊會員 https://www.youbike.com.tw/cht/f61.html youbike sitemap   網站內容快速連結  場站地圖 場站列表 服務中心資訊 預計設站地點 媒體報導 活動情報 緊急通知 營運資訊 營運成果 關於YouBike 大事記 設備介紹 租還方式 費率說明 安全騎乘 分類列表 失物招領 YouBike協尋 加入會員 會員資料管理 YouBike電子報 騎乘記錄查詢 合作夥伴 友站連結 一般文件 APP 隱私權政策 連絡我們