中國(guó)工商銀行軟件開發中心上線(xiàn)金融業首例國(guó)産編程語言業務(wù)系統

分(fēn)享到:
2024-07-11 浏覽:1952

金融科(kē)技(jì )産業的基礎服務(wù)設施保障是衡量國(guó)家金融安(ān)全的核心因素。工信部印發的《“十四五”軟件和信息技(jì )術服務(wù)業發展規劃》中将提升産業基礎保障水平作(zuò)為(wèi)主要任務(wù)之一,程序設計語言是其中的一項重點課題。中國(guó)工商銀行軟件開發中心(以下簡稱“工行軟件開發中心”)積極探索基于倉颉國(guó)産應用(yòng)編程語言(以下簡稱“倉颉語言”)實現業務(wù)研發與商業化落地的可(kě)行性。工行軟件開發中心于2024年3月完成倉颉語言版短信業務(wù)系統正式投産及對客服務(wù),實現國(guó)産編程語言在金融行業的首家商業落地,完成從芯片、操作(zuò)系統、中間件、數據庫到編程語言的全棧架構轉型業務(wù)系統建設。 


一、金融領域現狀分(fēn)析

編程語言的安(ān)全性、穩定性,以及執行性能(néng)方面的特性是金融IT領域選擇編程語言的核心考量因素。

首先,金融行業處理(lǐ)大量的敏感數據和資金交易,也受到嚴格的監管和法規約束,需要防止代碼注入、SQL注入、跨站點腳本攻擊等常見的安(ān)全漏洞,因此對編程語言的安(ān)全性要求非常高。

其次,現階段金融領域中後台應用(yòng)服務(wù)中開發語言以Java為(wèi)主,同時銀行金融系統需要保持長(cháng)時間的穩定運行,須避免“斷鏈”風險,因此需要逐步實現技(jì )術棧轉型,保證穩定性和可(kě)靠性。

最後,銀行金融系統通常需要處理(lǐ)大量的交易和數據,高性能(néng)的編程語言能(néng)夠提高系統的處理(lǐ)速度和響應性,從而提升用(yòng)戶體(tǐ)驗并降低系統的負載,提升運行性能(néng),降低時延、資源的占用(yòng)也是對編程語言的核心訴求之一。 


二、倉颉語言研發應用(yòng)

目前,工行軟件開發中心已經建設出包括芯片、操作(zuò)系統、中間件、數據庫等軟硬件的轉型架構體(tǐ)系,編程語言的轉型已納入工行系統全棧架構轉型目标研究範圍。

倉颉編程語言作(zuò)為(wèi)一款面向全場景應用(yòng)開發的現代編程語言,通過現代語言特性的集成、全方位的編譯優化和運行時實現,以及開箱即用(yòng)的IDE工具鏈支持,為(wèi)開發者打造友好開發體(tǐ)驗和卓越程序性能(néng),具備安(ān)全可(kě)靠、輕松并發、卓越性能(néng)、高效編程等優勢特性,經評估倉颉語言已經基本具備支撐實現業務(wù)系統研發的編程語言能(néng)力。工行軟件開發中心選取短信業務(wù)系統實現倉颉語言的商業化落地,該系統作(zuò)為(wèi)直接對客服務(wù)渠道之一,承載客戶查詢業務(wù)、辦理(lǐ)業務(wù)及授權确認等類型服務(wù)。倉颉語言版短信系統分(fēn)别選取部分(fēn)查詢類及辦理(lǐ)類業務(wù)功能(néng)完成重構,基于倉颉語言、倉颉版微服務(wù)開發框架、倉颉版三方庫與中間件(數據庫驅動、Web容器、日志(zhì)構件、定時任務(wù)調度構件等)完成系統的設計研發,并打包應用(yòng)鏡像,部署在行内PaaS雲容器平台。

 1、業務(wù)系統設計實現

倉颉語言版短信業務(wù)系統按照功能(néng)劃分(fēn)為(wèi)以下四個模塊:引流模塊、業務(wù)預處理(lǐ)模塊、業務(wù)處理(lǐ)模塊以及數據處理(lǐ)模塊,如圖1所示。引流模塊通過識别用(yòng)戶身份和場景來控制系統流量,實現了基于流量動态調整及交易異常自動引流至原系統的高可(kě)用(yòng)機制;業務(wù)預處理(lǐ)模塊對場景進行前置處理(lǐ),實現服務(wù)的精(jīng)準分(fēn)發;業務(wù)處理(lǐ)模塊運行核心交易邏輯,同時負責用(yòng)戶層交互;數據處理(lǐ)層提供基礎數據層交互服務(wù),倉颉語言版數據庫引擎保障了數據的準确性與完整性。

截圖-1720661074921.png


圖1 倉颉語言版短信業務(wù)系統功能(néng)模塊


金融業對軟件系統的高可(kě)用(yòng)和穩定性有着極高要求,倉颉語言版短信業務(wù)系統設計了以下方案保障高可(kě)用(yòng)性:

(1)微服務(wù)架構。倉颉語言版短信業務(wù)系統拆分(fēn)為(wèi)多(duō)個微服務(wù)模塊,通過集群化的多(duō)點部署有效降低了服務(wù)的單點故障風險。單個服務(wù)模塊故障或性能(néng)下降時,仍能(néng)保障業務(wù)的正常運行。同時,微服務(wù)架構降低了因倉颉語言中間件及三方庫叠代升級帶來的升級适配的研發運維成本。

(2)高可(kě)用(yòng)的服務(wù)間通信模式。微服務(wù)模塊在負載均衡模式下進行HTTP協議通信,基于倉颉語言标準庫網絡通信包實現了超時重試、幂等、連接池管理(lǐ)等高可(kě)用(yòng)通信機制,保障服務(wù)間通信的準确性和實時性。

(3)數據緩存機制。熱點數據實現基于倉颉語言标準庫并發集合包的緩存處理(lǐ),有效應對大并發量請求場景,減少業務(wù)過程負載,提高吞吐量,保證系統的可(kě)用(yòng)性。同時,使用(yòng)倉颉語言鎖機制實現高并發場景下數據并發寫入控制,保障了多(duō)線(xiàn)程寫入下的線(xiàn)程安(ān)全。

 2、業務(wù)系統與工行軟件生态系統融合

工行軟件開發中心在倉颉語言落地實踐中,不局限于業務(wù)系統對客功能(néng)的實現,還積極探索倉颉語言與工行軟件生态打通融合的可(kě)行方案。此外,對客服務(wù)系統故障的自動監控、運維安(ān)全合規及故障問題排查方案等能(néng)力建設也在叠代優化提升。工行軟件開發中心提出并實現了多(duō)種倉颉語言與工行軟件生态系統基礎支撐平台的融合對接方案,為(wèi)倉颉語言擴大應用(yòng)範圍可(kě)行性及轉型成本評估提供參考依據。具體(tǐ)包括:中間件服務(wù)對接模式與跨語言服務(wù)對接模式。


1720661136676663.png


圖2 倉颉語言與工行軟件生态打通融合方案探索


中間件服務(wù)對接模式:工行軟件開發中心搭建了分(fēn)布式日志(zhì)中心、分(fēn)布式配置中心、監控系統等基礎服務(wù)平台,業務(wù)系統通過客戶端中間件與基礎平台進行交互通信。為(wèi)實現倉颉語言服務(wù)與行内基礎平台對接,工行軟件開發中心設計了中間件服務(wù)對接模式,通過通信協議重構的方式,實現倉颉語言系統和現有系統的無縫集成和數據交換,該模式不僅簡化了不同系統間的通信流程,還提升了系統整體(tǐ)的可(kě)擴展性和響應速度。

跨語言服務(wù)對接模式:工行軟件開發中心已形成Java語言為(wèi)主,Python、C語言等為(wèi)技(jì )術補充的多(duō)語言生态體(tǐ)系,倉颉語言系統需要實現跨語言的服務(wù)調用(yòng)。為(wèi)了滿足金融軟件數據安(ān)全性要求,設計并實現了加密服務(wù)對接模塊,基于倉颉語言跨語言互操作(zuò)特性,對接加密服務(wù)平台C語言動态庫,實現了倉颉語言業務(wù)系統調用(yòng)C語言加密服務(wù)的場景,保障了跨平台、跨系統的安(ān)全數據交換和通信保密性。

 3、倉颉版短信業務(wù)系統集成交付部署

項目研發的快速叠代離不開快捷、高效的CI(持續集成)與CD(持續部署)系統作(zuò)為(wèi)支撐,而高度自動化的集成部署系統也是生産運維及故障快速應急的有力抓手。工行軟件開發中心在持續集成部署領域,提供了一種多(duō)語言生态下的高度定制化開發和部署方案,實現了高性能(néng)的基礎鏡像以及高度自動化的集成流水線(xiàn)。工行軟件開發中心基于轉型架構體(tǐ)系(芯片、操作(zuò)系統等)構建出倉颉語言版基礎鏡像,結合編排部署、PaaS雲等平台化技(jì )術實現了鏡像資源的靈活調度、自動伸縮等能(néng)力。同時,将倉颉語言接入現有持續交付部署系統,提供了從應用(yòng)鏡像制作(zuò),到編譯打包,再到部署管理(lǐ)的全流程自動化流水線(xiàn),确保了倉颉語言版系統在快速叠代模式下的敏捷發布與部署。 


三、倉颉語言生态共建

工行軟件開發中心除推進倉颉語言在金融業商業化落地外,還積極參與倉颉語言生态共建。首先,通過對倉颉語言社區(qū)開源第三方庫的問題修複和優化,提升了開源構件的穩定性和性能(néng)。工行軟件開發中心已對倉颉社區(qū)現有開源構件完成多(duō)個優化需求的自主研發及驗證,後續将持續推進構件的完善,确保其在複雜應用(yòng)場景下的可(kě)靠性和靈活性。此外,工行軟件開發中心緻力于構建完善的生态體(tǐ)系,包括開發工具鏈、庫和框架的豐富化,通過引入高效的開發模式和開發範式,創新(xīn)研發了倉颉語言版lombok、雪(xuě)花(huā)算法、分(fēn)布式批量等開源構件。 


四、後續展望

後續,工行軟件開發中心将繼續深入推進架構轉型工作(zuò),持續關注架構轉型相關技(jì )術棧的發展動态,積極擁抱技(jì )術發展帶來的挑戰,在實踐的基礎上為(wèi)金融IT領域全棧架構轉型輸出更多(duō)實施案例。此外,工行軟件開發中心将加強與國(guó)内領先科(kē)技(jì )企業的合作(zuò),共同推動以倉颉語言為(wèi)代表的國(guó)産技(jì )術創新(xīn),探索更多(duō)适合架構轉型和市場需求的先進解決方案,為(wèi)實現金融IT業全棧架構轉型目标添磚加瓦。



本文(wén)來源:微信公衆号 BanTech智庫

免責聲明:所載内容來源互聯網、微信公衆号等公開渠道,我們對文(wén)中觀點保持中立,僅供參考、交流等非商業目的。轉載的稿件版權歸原作(zuò)者和機構所有,如有侵權,請聯系我們删除。