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