核心銀行系統(tǒng) 之五 7 X 24小時(shí) 不間斷運(yùn)行的核心系統(tǒng)設(shè)計(jì)

7 X 24小時(shí) 不間斷運(yùn)行的核心系統(tǒng)設(shè)計(jì)

普通大眾都覺得現(xiàn)在的互聯(lián)網(wǎng)系統(tǒng)都是全天候待機(jī)服務(wù)的掰茶,從來不休息暇藏。其實(shí),在銀行的核心系統(tǒng)上做一筆交易濒蒋,動(dòng)軋更新幾百張表都是有可能的盐碱,那么每筆交易都去這么更新,以現(xiàn)行的計(jì)算機(jī)處理能力來說沪伙,要面對海量的客戶同時(shí)交易也是很不現(xiàn)實(shí)的瓮顽。

那么,如何做到核心系統(tǒng)一直在線围橡,保證交易不中斷暖混,又能滿足交易需要更新這么多表和處理的需求呢?

答案是翁授,“聯(lián)機(jī)交易+批量任務(wù)” 組合方式拣播,來解決這個(gè)難題。其實(shí)黔漂,不止是核心系統(tǒng)诫尽,只要是有類似需求的系統(tǒng),都會(huì)考慮用這種組合方式提供服務(wù)支持炬守。

主要設(shè)計(jì)思想是牧嫉,比如核心的聯(lián)機(jī)交易只負(fù)責(zé)記錄和更新當(dāng)筆交易狀態(tài)和交易的賬戶余額,對于如會(huì)計(jì)計(jì)提存款/貸款利息减途、計(jì)提費(fèi)用酣藻、報(bào)表等每日或月末進(jìn)行的處理采用日終批量任務(wù)來完成。

其他系統(tǒng)鳍置,也可將非必要實(shí)時(shí)的處理用批量任務(wù)進(jìn)行辽剧。

例如:

以下是典型的銀行系統(tǒng)日終批量由三步組成:日切(Cut Off)、日終批量(End Of Day)税产、 日初(Begin Of Day)怕轿。

image

說明:日初批量(BOD)開啟一個(gè)銀行的邏輯處理日。如:定期存款到期處理辟拷、 常設(shè)指令執(zhí)行撞羽。日切(Cutoff)標(biāo)志一個(gè)邏輯日的日切。將所有聯(lián)機(jī)交付渠道的交易日志合并為一個(gè),用于批處理衫冻。同時(shí)為下一工作日創(chuàng)建新的日志诀紊。 日終批量(EOD)標(biāo)記一個(gè)邏輯日的結(jié)束。處理交易日當(dāng)天完成的交易隅俘。利息處理,當(dāng)日在線交易過帳邻奠。這里 EOD 包括了月末(EOM)笤喳、季末(EOQ)、 年末(EOY),如在月末那一天的 EOD 就是 EOM碌宴。

具體實(shí)現(xiàn)方式:

image

例如:

雙余額方式:

為了能使聯(lián)機(jī)業(yè)務(wù)能夠 24 小時(shí)不間斷,就要求聯(lián)機(jī)業(yè)務(wù)與批處理能夠同時(shí)并行進(jìn)行,為此采用雙日期杀狡、雙余額的分戶帳設(shè)計(jì)。

雙日期分別設(shè)為‘最后交易日’和‘上次交易日’;雙余額分別設(shè)置為 ‘帳戶余額’和‘上次帳戶余額’及與余額有關(guān)的‘余額方向’和‘上次余額方向’唧喉。

系統(tǒng)的交易日期在系統(tǒng)中具有唯一性,它保存在系統(tǒng)的日期表中捣卤。

前臺(tái)顯示的日期來源于主機(jī)系統(tǒng) 的日期表(即交易后由后臺(tái)返回的日期)。如果后臺(tái)主機(jī)日期表的日期發(fā)生變更,聯(lián)機(jī)交易的日期也同時(shí)改變八孝。

換日后進(jìn)行聯(lián)機(jī)記帳交易時(shí),首先要檢查帳戶的‘最后交易日’與‘當(dāng)前交易日’是否相同,如果 不同,說明該帳戶第一次更變余額,此時(shí)要將‘帳戶余額’放入‘上日余額’,‘余額方向’放入‘上 日余額方向’,同時(shí),‘最后交易日’更改為此‘當(dāng)前交易日’董朝。

換日后進(jìn)行批處理時(shí),如果要進(jìn)行總分核對等與分戶余額有關(guān)的處理時(shí),首先要檢查‘最后交易日’ 與‘當(dāng)前交易日’是否相同,如果相同,說明換日后進(jìn)行此批處理過程前,此分戶已經(jīng)發(fā)生過記帳 交易,它的‘帳戶余額’已經(jīng)發(fā)生了變化,這時(shí)就要用‘上日余額’進(jìn)行核對或統(tǒng)計(jì)。

image

單表雙余額與雙表方式:

核心系統(tǒng)在夜間進(jìn)行業(yè)務(wù)批量處理的時(shí)候干跛,如計(jì)提結(jié)息需求攘滩,報(bào)表需求等杉畜,這些業(yè)務(wù)批量處理需要按賬戶當(dāng)日日終余額(或其他數(shù)據(jù))進(jìn)行計(jì)算,故需要保持這些數(shù)據(jù)的一定靜止?fàn)顟B(tài),而夜間聯(lián)機(jī)交易需要更新賬戶余額蛉艾,在沒有7×24實(shí)現(xiàn)機(jī)制前丈钙,銀行都需要在批量運(yùn)行時(shí)間段停止夜間的聯(lián)機(jī)交易陈惰,而在批量基本運(yùn)行結(jié)束后再次開始聯(lián)機(jī)交易的對外服務(wù)疏咐。一般批量處理與聯(lián)機(jī)處理的沖突區(qū)就在賬戶余額,解決批量用賬戶日終余額與聯(lián)機(jī)用賬戶實(shí)時(shí)余額的存儲(chǔ)與使用問題阐肤,即可很大程度上實(shí)現(xiàn)7×24業(yè)務(wù)服務(wù)凫佛。

實(shí)現(xiàn)7x24服務(wù),最關(guān)鍵的要點(diǎn)在于保證兩份數(shù)據(jù)的準(zhǔn)確并存:

  • 動(dòng)態(tài)實(shí)時(shí)數(shù)據(jù)(實(shí)時(shí)余額):主要是動(dòng)賬及日間查詢交易使用
  • 日切點(diǎn)的靜態(tài)數(shù)據(jù)(上日余額):主要用于批處理:比如計(jì)提孕惜、結(jié)息愧薛、總分核對、向外圍(尤其是財(cái)管衫画、管會(huì))供數(shù)等毫炉。

目前各廠商主要使用的方案有以下幾種:

  • 單表雙余額
  • 雙表(雙表又分兩種:臨時(shí)表為分戶臨時(shí)表或是流水臨時(shí)表)

1. 雙余額動(dòng)賬更新:

分戶賬上設(shè)置余額、上日余額削罩、最后交易日期瞄勾。根據(jù)以上字段來實(shí)現(xiàn)當(dāng)前余額、上日余額的讀取和更新弥激。

僅在動(dòng)賬交易發(fā)生時(shí)才可能更新上日余額进陡,即如果該賬戶長期無動(dòng)賬,在此期間將不用更新上日余額(其實(shí)此時(shí)的“上日余額”字段從名稱上來看與實(shí)際是不符的)

1.1動(dòng)賬處理:當(dāng)日第一筆交易更新上日余額秆撮、最后交易日期。

image

1.2獲取上日余額處理

image

2. 雙余額每日更新

分戶賬上設(shè)置余額换况、上日余額职辨、最后交易日期盗蟆。根據(jù)以上字段來實(shí)現(xiàn)當(dāng)前余額、上日余額的讀取和更新舒裤。與“雙余額動(dòng)賬更新”方案不同的是喳资,系統(tǒng)每天都會(huì)更新上日余額及最后交易日期。(其實(shí)此時(shí)的“最后交易日期”字段從名稱來看與實(shí)際不一定相符腾供。)

2.1日終批量刷新上日余額

取上日余額的場景都在日終仆邓,因此在日終切日后一開始就直接批量刷新上日余額,便于后續(xù)讀取及供數(shù)伴鳖。為避免長時(shí)間鎖表节值,該批量任務(wù)逐筆處理。

對于一筆分戶賬榜聂,

IF 最后交易日期 < 會(huì)計(jì)日期

UPDATE 分戶賬 SET 上日余額=當(dāng)前余額搞疗,最后交易日期=會(huì)計(jì)日期

2.2動(dòng)賬處理:切日后,日終批量刷新需要一段時(shí)間须肆,為確保在此期間的聯(lián)機(jī)交易正常對外服務(wù)匿乃,動(dòng)賬時(shí)仍采用以下處理。當(dāng)日第一筆交易更新上日余額豌汇、最后交易日期幢炸。

image

聯(lián)機(jī)交易與日終批量更新上日余額有極小的可能會(huì)出現(xiàn)沖突(同時(shí)更新同一賬戶)。如果發(fā)生,解決如下:

如果批量鎖表拒贱,聯(lián)機(jī)失敗宛徊,交易重做將成功。

如果聯(lián)機(jī)鎖表柜思,批量失敗岩调,批量重新從斷點(diǎn)重跑。

2.3獲取上日余額處理

取上日余額的情景都在日終刷新之后赡盘,因此此時(shí)取上日余額直接取分戶賬中的上日余額号枕。

3. 雙表

image

系統(tǒng)狀態(tài)

公共系統(tǒng)控制參數(shù)中的系統(tǒng)狀態(tài)分為:

N:日間運(yùn)行狀態(tài)(normal)

C:日切運(yùn)行狀態(tài)(cutoff)

A:追帳運(yùn)行狀態(tài)(append)

S:系統(tǒng)關(guān)閉(shutdown)

系統(tǒng)的C,A陨享,N狀態(tài)是系統(tǒng)日終處理時(shí)進(jìn)行的狀態(tài)切換葱淳。

系統(tǒng)關(guān)閉

核心業(yè)務(wù)系統(tǒng)處于關(guān)閉時(shí),禁止所以業(yè)務(wù)運(yùn)行抛姑。此狀態(tài)在出現(xiàn)特殊情況時(shí)赞厕。

系統(tǒng)日間運(yùn)行狀態(tài)

系統(tǒng)做完日終批量處理后,狀態(tài)未日間運(yùn)行狀態(tài)定硝,此時(shí)所有的交易實(shí)時(shí)修改分戶帳的余額皿桑。

系統(tǒng)日切狀態(tài)

系統(tǒng)日終操作在做完當(dāng)天的自動(dòng)轉(zhuǎn)存等帳務(wù)處理后,在系統(tǒng)入總帳前,將系統(tǒng)的狀態(tài)改為日切狀態(tài)诲侮。在該狀態(tài)下的所有交易镀虐,不修改分戶帳的余額,其發(fā)生額寫入影子分戶沟绪。保持分戶帳余額不變刮便,是為了機(jī)構(gòu)入總帳時(shí)進(jìn)行總分平衡的檢查。

系統(tǒng)追帳狀態(tài)

系統(tǒng)日終入機(jī)構(gòu)總帳結(jié)束后绽慈,系統(tǒng)狀態(tài)改為追帳恨旱。在這個(gè)狀態(tài)下的所有交易,實(shí)時(shí)修改分戶帳余額坝疼。日終處理的追帳交易搜贤,對影子分戶里帳戶的發(fā)生額進(jìn)行分戶帳余額的修改。在所有分戶追帳完成之后裙士,系統(tǒng)狀態(tài)改為日間運(yùn)行狀態(tài)入客。

  • 系統(tǒng)只要不是運(yùn)行在日終批處理狀態(tài)(CUTOFF狀態(tài)),也就是系統(tǒng)運(yùn)行在正常狀態(tài)(NORMAL狀態(tài))或追帳狀態(tài)(APPEND狀態(tài)),帳務(wù)處理API可修改分戶帳余額腿椎;
  • 系統(tǒng)只要是運(yùn)行在日終批處理狀態(tài)(CUTOFF狀態(tài))桌硫,記帳API就不能直接更改分戶帳余額,而只能更改影子帳戶余額啃炸。注意:在日終批處理狀態(tài)下,任何聯(lián)機(jī)交易都可能發(fā)生铆隘,所以開戶程序在寫分戶余額時(shí),只能將余額記為0,而真正的余額必須記入影子帳戶中;同樣南用,銷戶時(shí)膀钠,不能將分戶余額記為0,而必須將發(fā)生額(也就是余額)記入影子帳戶中裹虫。沖正交易的處理相同.
  • 系統(tǒng)只要不是運(yùn)行在N狀態(tài)(正常狀態(tài))肿嘲,計(jì)算帳戶可用余額時(shí),必須將影子帳戶中的余額和分戶帳中的余額一起合并計(jì)算筑公。
  • 由于日切后雳窟,系統(tǒng)進(jìn)入下一個(gè)帳務(wù)周期,所以帳務(wù)處理流水(如:分戶帳明細(xì)匣屡,分錄流水封救,子交易流水)中均記錄了帳務(wù)日期,因而不會(huì)和前一帳務(wù)日期相混淆捣作。在備份這些庫表時(shí)誉结,只要根據(jù)帳務(wù)日期處理即可。
  • 任何帳戶券躁,包括客戶帳惩坑,內(nèi)部帳掉盅,處理方法是一樣的。
  • 由后臺(tái)主機(jī)按照交易來確定哪些交易允許在日終期間可以開通以舒。
  • 如果柜臺(tái)開通24小時(shí)業(yè)務(wù)怔接,需要考慮柜員及網(wǎng)點(diǎn)軋帳交易的支持,業(yè)務(wù)需考慮傳票裝訂與柜員軋帳的模式稀轨。

數(shù)據(jù)庫表設(shè)計(jì)上,除分戶賬外岸军,新增一張影子分戶表奋刽。

系統(tǒng)做完日終批量處理后,狀為日間運(yùn)行狀態(tài)艰赞,此時(shí)所有的交易實(shí)時(shí)修改分戶帳的余額佣谐。在日切狀態(tài)下的所有交易,不修改分戶帳的余額方妖,其發(fā)生額寫入影子分戶狭魂。保持分戶帳余額不變,用于總分平衡檢查等日終取上日余額党觅。在追賬狀態(tài)下的所有交易雌澄,實(shí)時(shí)修改分戶帳余額。日終處理的追帳交易杯瞻,根據(jù)影子分戶里帳戶的發(fā)生額進(jìn)行分戶帳余額的修改镐牺。在所有分戶追帳完成之后,系統(tǒng)狀態(tài)改為日間運(yùn)行狀態(tài)魁莉。

image

雙表追賬 舉例——活期存款

核心系統(tǒng)為24小時(shí)運(yùn)行的系統(tǒng),總賬及分戶賬的核對是賬務(wù)處理時(shí)需要重點(diǎn)考慮的問題,在核心系統(tǒng)中,每個(gè)營業(yè)日分為TO睬涧、T1、T2旗唁、TN畦浓、TC五個(gè)時(shí)段,五個(gè)時(shí)段從模式上分為online和offline兩種。從T2開始到TN結(jié)束為offline模式;從TC開始經(jīng)TO到次日T1結(jié)束為online模式检疫。為實(shí)現(xiàn)總賬及分戶賬數(shù)據(jù)的核對,需保證總賬數(shù)據(jù)有一天的靜止?fàn)顟B(tài),從offline的模式開始,連線交易暫時(shí)只記客戶賬而不記會(huì)計(jì)賬,在offline模式結(jié)束時(shí)進(jìn)行追賬的處理讶请。在online模式時(shí),賬務(wù)性交易使用的流水檔案為Log0,同時(shí)登記客戶賬與會(huì)計(jì)賬:24小時(shí)換日,將賬務(wù)性交易的流水檔案切換至Log1,只登記客戶賬而不記會(huì)計(jì)賬〉缫ィ活期為例,24小時(shí)交易實(shí)現(xiàn)如下:


image.png

如圖3-6,在T1結(jié)束T2開始時(shí),批處理將CMICTDAT設(shè)置為OFFLINE模式秽梅。在OFFLINE時(shí)段,核心系統(tǒng)根據(jù)交易屬性對交易進(jìn)行是否支持24小時(shí)模式的判斷,如果不支持則交易失敗。在offline時(shí)段,如果交易支持24小時(shí)模式,交易在更新活期主表(SAACNACN)化同時(shí)需要通過調(diào)用GCXBATMP程序?qū)⒏虑暗挠囝~登記到臨時(shí)表CMTMPTMP中剿牺。CMTMPTMP每天在T1時(shí)段清空,在OFFLINE時(shí)該帳戶發(fā)生的第一筆交易才會(huì)登記一條記錄,W保留交易發(fā)生前的余額參加總分核對企垦。對于24小時(shí)交易,平臺(tái)將化務(wù)性交易的流水檔案切換至Log只記客戶帳而不記會(huì)計(jì)帳(包括科目CMACAACA和內(nèi)部帳GLACAACA)。在TC時(shí)段即ONLINE模式時(shí),通過CENTER CUT將LOG1中的流水追加到LOG0中,這稱為24小時(shí)追帳晒来。追化時(shí),不記客戶帳,而記會(huì)計(jì)帳(包括科目CMACAACA和內(nèi)部化GLACAACA)钞诡。總分核對時(shí),需要以臨時(shí)檔CMTMPTMP中記錄的余額為準(zhǔn),如果CMTMPTMP中不存在,才以活期賬戶表中的余額為準(zhǔn)。這一設(shè)計(jì)方式同時(shí)保證了客戶賬戶余額的實(shí)時(shí)更新,也實(shí)現(xiàn)了會(huì)計(jì)賬余額的相對靜止,完成總賬及分戶賬余額的核對荧降。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末接箫,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子朵诫,更是在濱河造成了極大的恐慌辛友,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,509評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剪返,死亡現(xiàn)場離奇詭異废累,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)脱盲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評論 3 394
  • 文/潘曉璐 我一進(jìn)店門邑滨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钱反,你說我怎么就攤上這事掖看。” “怎么了面哥?”我有些...
    開封第一講書人閱讀 163,875評論 0 354
  • 文/不壞的土叔 我叫張陵哎壳,是天一觀的道長。 經(jīng)常有香客問我尚卫,道長耳峦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,441評論 1 293
  • 正文 為了忘掉前任焕毫,我火速辦了婚禮蹲坷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘邑飒。我一直安慰自己循签,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評論 6 392
  • 文/花漫 我一把揭開白布疙咸。 她就那樣靜靜地躺著县匠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪撒轮。 梳的紋絲不亂的頭發(fā)上乞旦,一...
    開封第一講書人閱讀 51,365評論 1 302
  • 那天,我揣著相機(jī)與錄音题山,去河邊找鬼兰粉。 笑死,一個(gè)胖子當(dāng)著我的面吹牛顶瞳,可吹牛的內(nèi)容都是我干的玖姑。 我是一名探鬼主播愕秫,決...
    沈念sama閱讀 40,190評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼焰络!你這毒婦竟也來了戴甩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,062評論 0 276
  • 序言:老撾萬榮一對情侶失蹤闪彼,失蹤者是張志新(化名)和其女友劉穎甜孤,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體畏腕,經(jīng)...
    沈念sama閱讀 45,500評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡课蔬,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了郊尝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,834評論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡战惊,死狀恐怖流昏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吞获,我是刑警寧澤况凉,帶...
    沈念sama閱讀 35,559評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站各拷,受9級特大地震影響刁绒,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜烤黍,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評論 3 328
  • 文/蒙蒙 一知市、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧速蕊,春花似錦嫂丙、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至唉锌,卻和暖如春隅肥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背袄简。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評論 1 269
  • 我被黑心中介騙來泰國打工腥放, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人绿语。 一個(gè)月前我還...
    沈念sama閱讀 47,958評論 2 370
  • 正文 我出身青樓捉片,卻偏偏與公主長得像平痰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子伍纫,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 貸款(四) 在有了前面貸款概念宗雇、類型、計(jì)息莹规、還款計(jì)劃的知識之后赔蒲,現(xiàn)在可以講貸款賬務(wù)處理方面的內(nèi)容了,也就是俗稱的“...
    JC1265閱讀 11,484評論 0 18
  • 馬拉松賽黃河情良漱, 挑戰(zhàn)自我跑半程舞虱。 不圖揚(yáng)名不為利, 就看自己行不行母市![憨笑][憨笑]
    往事如煙胖婆婆閱讀 231評論 0 6
  • 大年初一的晚上你在做什么患久?我在看鬼片椅寺。 No.5 《了不起的亡靈》 電影本來看的就不多,日本電影更是寥寥蒋失,以前只知...
  • 我想為我的愛人寫一首詩 從很久以前就開始醞釀 打死無數(shù)小人 到現(xiàn)在也沒有想起 我應(yīng)該如何開口 如果有一個(gè)巧合 我希...
    娃哈哈烏拉拉閱讀 280評論 2 2
  • 踮起腳尖返帕,就更靠近陽光。 ——題記 踮起腳尖篙挽,聽晨風(fēng)撫過松林荆萤,颯颯作響,那是林海的呼吸铣卡;踮起腳尖链韭,感受初陽掠過草...
    傲氣沖天925閱讀 205評論 0 1