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