中國工商銀行軟件開發(fā)中心上線金融業(yè)首例國產(chǎn)編程語言業(yè)務(wù)系統(tǒng)
- 2024-07-11 瀏覽:2696
金融科技產(chǎn)業(yè)的基礎(chǔ)服務(wù)設(shè)施保障是衡量國家金融安全的核心因素。工信部印發(fā)的《“十四五”軟件和信息技術(shù)服務(wù)業(yè)發(fā)展規(guī)劃》中將提升產(chǎn)業(yè)基礎(chǔ)保障水平作為主要任務(wù)之一,程序設(shè)計語言是其中的一項重點課題。中國工商銀行軟件開發(fā)中心(以下簡稱“工行軟件開發(fā)中心”)積極探索基于倉頡國產(chǎn)應(yīng)用編程語言(以下簡稱“倉頡語言”)實現(xiàn)業(yè)務(wù)研發(fā)與商業(yè)化落地的可行性。工行軟件開發(fā)中心于2024年3月完成倉頡語言版短信業(yè)務(wù)系統(tǒng)正式投產(chǎn)及對客服務(wù),實現(xiàn)國產(chǎn)編程語言在金融行業(yè)的首家商業(yè)落地,完成從芯片、操作系統(tǒng)、中間件、數(shù)據(jù)庫到編程語言的全棧架構(gòu)轉(zhuǎn)型業(yè)務(wù)系統(tǒng)建設(shè)。
一、金融領(lǐng)域現(xiàn)狀分析 編程語言的安全性、穩(wěn)定性,以及執(zhí)行性能方面的特性是金融IT領(lǐng)域選擇編程語言的核心考量因素。 首先,金融行業(yè)處理大量的敏感數(shù)據(jù)和資金交易,也受到嚴(yán)格的監(jiān)管和法規(guī)約束,需要防止代碼注入、SQL注入、跨站點腳本攻擊等常見的安全漏洞,因此對編程語言的安全性要求非常高。 其次,現(xiàn)階段金融領(lǐng)域中后臺應(yīng)用服務(wù)中開發(fā)語言以Java為主,同時銀行金融系統(tǒng)需要保持長時間的穩(wěn)定運行,須避免“斷鏈”風(fēng)險,因此需要逐步實現(xiàn)技術(shù)棧轉(zhuǎn)型,保證穩(wěn)定性和可靠性。 最后,銀行金融系統(tǒng)通常需要處理大量的交易和數(shù)據(jù),高性能的編程語言能夠提高系統(tǒng)的處理速度和響應(yīng)性,從而提升用戶體驗并降低系統(tǒng)的負(fù)載,提升運行性能,降低時延、資源的占用也是對編程語言的核心訴求之一。
二、倉頡語言研發(fā)應(yīng)用 目前,工行軟件開發(fā)中心已經(jīng)建設(shè)出包括芯片、操作系統(tǒng)、中間件、數(shù)據(jù)庫等軟硬件的轉(zhuǎn)型架構(gòu)體系,編程語言的轉(zhuǎn)型已納入工行系統(tǒng)全棧架構(gòu)轉(zhuǎn)型目標(biāo)研究范圍。 倉頡編程語言作為一款面向全場景應(yīng)用開發(fā)的現(xiàn)代編程語言,通過現(xiàn)代語言特性的集成、全方位的編譯優(yōu)化和運行時實現(xiàn),以及開箱即用的IDE工具鏈支持,為開發(fā)者打造友好開發(fā)體驗和卓越程序性能,具備安全可靠、輕松并發(fā)、卓越性能、高效編程等優(yōu)勢特性,經(jīng)評估倉頡語言已經(jīng)基本具備支撐實現(xiàn)業(yè)務(wù)系統(tǒng)研發(fā)的編程語言能力。工行軟件開發(fā)中心選取短信業(yè)務(wù)系統(tǒng)實現(xiàn)倉頡語言的商業(yè)化落地,該系統(tǒng)作為直接對客服務(wù)渠道之一,承載客戶查詢業(yè)務(wù)、辦理業(yè)務(wù)及授權(quán)確認(rèn)等類型服務(wù)。倉頡語言版短信系統(tǒng)分別選取部分查詢類及辦理類業(yè)務(wù)功能完成重構(gòu),基于倉頡語言、倉頡版微服務(wù)開發(fā)框架、倉頡版三方庫與中間件(數(shù)據(jù)庫驅(qū)動、Web容器、日志構(gòu)件、定時任務(wù)調(diào)度構(gòu)件等)完成系統(tǒng)的設(shè)計研發(fā),并打包應(yīng)用鏡像,部署在行內(nèi)PaaS云容器平臺。 1、業(yè)務(wù)系統(tǒng)設(shè)計實現(xiàn) 倉頡語言版短信業(yè)務(wù)系統(tǒng)按照功能劃分為以下四個模塊:引流模塊、業(yè)務(wù)預(yù)處理模塊、業(yè)務(wù)處理模塊以及數(shù)據(jù)處理模塊,如圖1所示。引流模塊通過識別用戶身份和場景來控制系統(tǒng)流量,實現(xiàn)了基于流量動態(tài)調(diào)整及交易異常自動引流至原系統(tǒng)的高可用機制;業(yè)務(wù)預(yù)處理模塊對場景進行前置處理,實現(xiàn)服務(wù)的精準(zhǔn)分發(fā);業(yè)務(wù)處理模塊運行核心交易邏輯,同時負(fù)責(zé)用戶層交互;數(shù)據(jù)處理層提供基礎(chǔ)數(shù)據(jù)層交互服務(wù),倉頡語言版數(shù)據(jù)庫引擎保障了數(shù)據(jù)的準(zhǔn)確性與完整性。
圖1 倉頡語言版短信業(yè)務(wù)系統(tǒng)功能模塊
金融業(yè)對軟件系統(tǒng)的高可用和穩(wěn)定性有著極高要求,倉頡語言版短信業(yè)務(wù)系統(tǒng)設(shè)計了以下方案保障高可用性: (1)微服務(wù)架構(gòu)。倉頡語言版短信業(yè)務(wù)系統(tǒng)拆分為多個微服務(wù)模塊,通過集群化的多點部署有效降低了服務(wù)的單點故障風(fēng)險。單個服務(wù)模塊故障或性能下降時,仍能保障業(yè)務(wù)的正常運行。同時,微服務(wù)架構(gòu)降低了因倉頡語言中間件及三方庫迭代升級帶來的升級適配的研發(fā)運維成本。 (2)高可用的服務(wù)間通信模式。微服務(wù)模塊在負(fù)載均衡模式下進行HTTP協(xié)議通信,基于倉頡語言標(biāo)準(zhǔn)庫網(wǎng)絡(luò)通信包實現(xiàn)了超時重試、冪等、連接池管理等高可用通信機制,保障服務(wù)間通信的準(zhǔn)確性和實時性。 (3)數(shù)據(jù)緩存機制。熱點數(shù)據(jù)實現(xiàn)基于倉頡語言標(biāo)準(zhǔn)庫并發(fā)集合包的緩存處理,有效應(yīng)對大并發(fā)量請求場景,減少業(yè)務(wù)過程負(fù)載,提高吞吐量,保證系統(tǒng)的可用性。同時,使用倉頡語言鎖機制實現(xiàn)高并發(fā)場景下數(shù)據(jù)并發(fā)寫入控制,保障了多線程寫入下的線程安全。 2、業(yè)務(wù)系統(tǒng)與工行軟件生態(tài)系統(tǒng)融合 工行軟件開發(fā)中心在倉頡語言落地實踐中,不局限于業(yè)務(wù)系統(tǒng)對客功能的實現(xiàn),還積極探索倉頡語言與工行軟件生態(tài)打通融合的可行方案。此外,對客服務(wù)系統(tǒng)故障的自動監(jiān)控、運維安全合規(guī)及故障問題排查方案等能力建設(shè)也在迭代優(yōu)化提升。工行軟件開發(fā)中心提出并實現(xiàn)了多種倉頡語言與工行軟件生態(tài)系統(tǒng)基礎(chǔ)支撐平臺的融合對接方案,為倉頡語言擴大應(yīng)用范圍可行性及轉(zhuǎn)型成本評估提供參考依據(jù)。具體包括:中間件服務(wù)對接模式與跨語言服務(wù)對接模式。
圖2 倉頡語言與工行軟件生態(tài)打通融合方案探索
中間件服務(wù)對接模式:工行軟件開發(fā)中心搭建了分布式日志中心、分布式配置中心、監(jiān)控系統(tǒng)等基礎(chǔ)服務(wù)平臺,業(yè)務(wù)系統(tǒng)通過客戶端中間件與基礎(chǔ)平臺進行交互通信。為實現(xiàn)倉頡語言服務(wù)與行內(nèi)基礎(chǔ)平臺對接,工行軟件開發(fā)中心設(shè)計了中間件服務(wù)對接模式,通過通信協(xié)議重構(gòu)的方式,實現(xiàn)倉頡語言系統(tǒng)和現(xiàn)有系統(tǒng)的無縫集成和數(shù)據(jù)交換,該模式不僅簡化了不同系統(tǒng)間的通信流程,還提升了系統(tǒng)整體的可擴展性和響應(yīng)速度。 跨語言服務(wù)對接模式:工行軟件開發(fā)中心已形成Java語言為主,Python、C語言等為技術(shù)補充的多語言生態(tài)體系,倉頡語言系統(tǒng)需要實現(xiàn)跨語言的服務(wù)調(diào)用。為了滿足金融軟件數(shù)據(jù)安全性要求,設(shè)計并實現(xiàn)了加密服務(wù)對接模塊,基于倉頡語言跨語言互操作特性,對接加密服務(wù)平臺C語言動態(tài)庫,實現(xiàn)了倉頡語言業(yè)務(wù)系統(tǒng)調(diào)用C語言加密服務(wù)的場景,保障了跨平臺、跨系統(tǒng)的安全數(shù)據(jù)交換和通信保密性。 3、倉頡版短信業(yè)務(wù)系統(tǒng)集成交付部署 項目研發(fā)的快速迭代離不開快捷、高效的CI(持續(xù)集成)與CD(持續(xù)部署)系統(tǒng)作為支撐,而高度自動化的集成部署系統(tǒng)也是生產(chǎn)運維及故障快速應(yīng)急的有力抓手。工行軟件開發(fā)中心在持續(xù)集成部署領(lǐng)域,提供了一種多語言生態(tài)下的高度定制化開發(fā)和部署方案,實現(xiàn)了高性能的基礎(chǔ)鏡像以及高度自動化的集成流水線。工行軟件開發(fā)中心基于轉(zhuǎn)型架構(gòu)體系(芯片、操作系統(tǒng)等)構(gòu)建出倉頡語言版基礎(chǔ)鏡像,結(jié)合編排部署、PaaS云等平臺化技術(shù)實現(xiàn)了鏡像資源的靈活調(diào)度、自動伸縮等能力。同時,將倉頡語言接入現(xiàn)有持續(xù)交付部署系統(tǒng),提供了從應(yīng)用鏡像制作,到編譯打包,再到部署管理的全流程自動化流水線,確保了倉頡語言版系統(tǒng)在快速迭代模式下的敏捷發(fā)布與部署。
三、倉頡語言生態(tài)共建 工行軟件開發(fā)中心除推進倉頡語言在金融業(yè)商業(yè)化落地外,還積極參與倉頡語言生態(tài)共建。首先,通過對倉頡語言社區(qū)開源第三方庫的問題修復(fù)和優(yōu)化,提升了開源構(gòu)件的穩(wěn)定性和性能。工行軟件開發(fā)中心已對倉頡社區(qū)現(xiàn)有開源構(gòu)件完成多個優(yōu)化需求的自主研發(fā)及驗證,后續(xù)將持續(xù)推進構(gòu)件的完善,確保其在復(fù)雜應(yīng)用場景下的可靠性和靈活性。此外,工行軟件開發(fā)中心致力于構(gòu)建完善的生態(tài)體系,包括開發(fā)工具鏈、庫和框架的豐富化,通過引入高效的開發(fā)模式和開發(fā)范式,創(chuàng)新研發(fā)了倉頡語言版lombok、雪花算法、分布式批量等開源構(gòu)件。
四、后續(xù)展望 后續(xù),工行軟件開發(fā)中心將繼續(xù)深入推進架構(gòu)轉(zhuǎn)型工作,持續(xù)關(guān)注架構(gòu)轉(zhuǎn)型相關(guān)技術(shù)棧的發(fā)展動態(tài),積極擁抱技術(shù)發(fā)展帶來的挑戰(zhàn),在實踐的基礎(chǔ)上為金融IT領(lǐng)域全棧架構(gòu)轉(zhuǎn)型輸出更多實施案例。此外,工行軟件開發(fā)中心將加強與國內(nèi)領(lǐng)先科技企業(yè)的合作,共同推動以倉頡語言為代表的國產(chǎn)技術(shù)創(chuàng)新,探索更多適合架構(gòu)轉(zhuǎn)型和市場需求的先進解決方案,為實現(xiàn)金融IT業(yè)全棧架構(gòu)轉(zhuǎn)型目標(biāo)添磚加瓦。 本文來源:微信公眾號 BanTech智庫 免責(zé)聲明:所載內(nèi)容來源互聯(lián)網(wǎng)、微信公眾號等公開渠道,我們對文中觀點保持中立,僅供參考、交流等非商業(yè)目的。轉(zhuǎn)載的稿件版權(quán)歸原作者和機構(gòu)所有,如有侵權(quán),請聯(lián)系我們刪除。