系統小事>>>聯機交易與批量交易
===================
什么是聯機交易/批量交易?聯機與批量並沒有確切的定義,我個人的簡單理解如下:
聯機交易就意味着系統對外直接提供的交易,該類交易具有事務性——可回滾;實時性——交易有生命周期,並有超時機制等,調用方需實時等待被調方的反饋,成功或失敗皆有反饋;並發性——同一類甚至同一個交易可同時被多個線程調用,相互間有鎖處理機制。
批量處理則意味着該交易相關的參數、系統狀態已經鎖定,系統需要進行的是某一類操作,該類操作具有統一性——使用相同的規則處理大量數據;串行性——並不是說批量交易中不能有並發,而是有固定的步驟,先做哪一步,再做哪一步,每一步都有對某些條件的依賴;可重復性——這個不是必須的,但強烈建議批量程序在設計之初就考慮可重復運行,否則后續的運行與維護會帶來諸多麻煩;
典型聯機為取款交易,余額的查詢(可能出現余額不足的情況)及更新、交易流水的生成、賬戶使用記錄的生成、會計憑證的生成、存款及現金科目總賬的登記、需要一次完成,如果其中某一步產生異常,則整個交易回退;典型的批量交易為對賬交易,對賬的先決條件為上一日的處理已經全部結束,系統需要的是對上一日處理結果的驗證,驗證的方式是設定一些篩選規則,檢查是否有不符合規則的數據,如果有,將其自身及相關數據生成對賬差錯日志,供運營人員查詢及處理,如果對賬結果完全無誤,則交易通過,進行下一個批量程序(比如生成日增量數據文件,發送給下游系統)。
--
未完待續!