李毓堯 丁杰 許久晨
摘要:隨著國(guó)產(chǎn)自主可控基礎(chǔ)軟硬件的快速發(fā)展和逐步成熟,基于自主可控平臺(tái)的信息系統(tǒng)也逐步在政企單位得到越來(lái)越多的應(yīng)用。然而,仍有大量基于非自主可控平臺(tái)建設(shè)的信息系統(tǒng)面臨著自主可控適配改造的工作。文章通過(guò)對(duì)某大型企業(yè)網(wǎng)上報(bào)銷(xiāo)系統(tǒng)的自主可控適配改造工作進(jìn)行分析和研究,總結(jié)信息系統(tǒng)自主可控改造過(guò)程中的經(jīng)驗(yàn)教訓(xùn)和改進(jìn)分析,為信息系統(tǒng)自主可控改造適配工作提供借鑒和參考。
關(guān)鍵詞:網(wǎng)上報(bào)銷(xiāo)系統(tǒng);自主可控;改造實(shí)踐
中圖分類(lèi)號(hào):TP393? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2024)09-0047-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)
0 引言
自主可控是保障網(wǎng)絡(luò)安全、信息安全的前提。從IT基礎(chǔ)設(shè)施、基礎(chǔ)軟件到應(yīng)用軟件的全面自主可控,形成自有開(kāi)放生態(tài),是解決在信息化關(guān)鍵領(lǐng)域“卡脖子”和保障網(wǎng)絡(luò)信息安全的重要前提?,F(xiàn)有信息系統(tǒng)中大量使用的進(jìn)口計(jì)算機(jī)軟硬件產(chǎn)品,都可能存在尚未發(fā)現(xiàn)的內(nèi)置后門(mén)和潛在漏洞,從而成為失泄密乃至信息系統(tǒng)正常運(yùn)行的重大安全隱患[1]。然而,現(xiàn)有系統(tǒng)在自主可控和性能方面存在一定的局限性和不足。通過(guò)開(kāi)展信息系統(tǒng)自主可控改造適配工作,保障企業(yè)報(bào)銷(xiāo)業(yè)務(wù)的正常運(yùn)轉(zhuǎn),增強(qiáng)系統(tǒng)安全性與可靠性迫在眉睫。
1 系統(tǒng)現(xiàn)狀分析
大型企業(yè)網(wǎng)上報(bào)銷(xiāo)系統(tǒng)是當(dāng)今企業(yè)財(cái)務(wù)管理中必不可少的一部分,它的自主可控性和數(shù)據(jù)安全性對(duì)企業(yè)的正常運(yùn)營(yíng)至關(guān)重要。對(duì)于現(xiàn)有系統(tǒng)的現(xiàn)狀進(jìn)行分析,識(shí)別出可能存在的問(wèn)題和不足,是實(shí)現(xiàn)系統(tǒng)開(kāi)展自主可控適配改造的基礎(chǔ)和前提。
1.1 系統(tǒng)部署環(huán)境分析
系統(tǒng)由多臺(tái)Windows服務(wù)器部署,服務(wù)器采用Intel處理器,應(yīng)用為前后端分離部署,中間件為T(mén)omcat 9.0,數(shù)據(jù)庫(kù)為Oracle 19C。根據(jù)自主可控相關(guān)產(chǎn)品調(diào)研,企業(yè)一致決定采購(gòu)國(guó)產(chǎn)化軟硬件,包括服務(wù)器采用鯤鵬920處理器、銀河麒麟V10操作系統(tǒng),中間件為東方通的TongWeb7.0.9,數(shù)據(jù)庫(kù)采用企業(yè)統(tǒng)一部署在數(shù)據(jù)中心的達(dá)夢(mèng)DM8數(shù)據(jù)庫(kù)集群。
1.2 系統(tǒng)功能分析
網(wǎng)上報(bào)銷(xiāo)系統(tǒng)實(shí)現(xiàn)出差申請(qǐng)、審核審批、預(yù)訂行程、免票出行、費(fèi)用報(bào)銷(xiāo)、月結(jié)支付全生態(tài)周期管控,總體功能架構(gòu)如圖1所示。
系統(tǒng)達(dá)到了費(fèi)用成本控制的目的,實(shí)現(xiàn)了“免墊付、免發(fā)票、易報(bào)銷(xiāo)”的一站式消費(fèi)報(bào)銷(xiāo)流程。采用光學(xué)字符識(shí)別(OCR) 技術(shù),通過(guò)拍照、掃描等光學(xué)輸入方式,能夠自動(dòng)識(shí)別、錄入、存儲(chǔ)發(fā)票信息于企業(yè)發(fā)票信息庫(kù)中,并將待驗(yàn)證的發(fā)票上傳至稅務(wù)系統(tǒng)查驗(yàn)發(fā)票真?zhèn)?,從而減少了人工參與和手工錄入的差錯(cuò)。系統(tǒng)還實(shí)現(xiàn)了對(duì)個(gè)人或特定群體的差旅行為分析、財(cái)務(wù)分析,可輔助企業(yè)決策,以及對(duì)各部門(mén)(單位)差旅消費(fèi)情況的分析,有助于指導(dǎo)次年編制年度差旅預(yù)算,并可有針對(duì)性地制定降低成本措施。
1.3 系統(tǒng)技術(shù)架構(gòu)分析
系統(tǒng)總體架構(gòu)說(shuō)明如圖2所示。
網(wǎng)上報(bào)銷(xiāo)系統(tǒng)采用微服務(wù)架構(gòu),系統(tǒng)架構(gòu)采用了Spring Cloud微服務(wù),前端采用了MVVM架構(gòu)設(shè)計(jì)模式,后端采用了SpringBoot技術(shù)體系。以基礎(chǔ)和核算服務(wù)為支撐,對(duì)外通過(guò)網(wǎng)關(guān)以HTTPS協(xié)議暴露接口。系統(tǒng)建設(shè)了商旅業(yè)務(wù)應(yīng)用,包括商旅出行申請(qǐng)、商旅預(yù)定、行程管理、費(fèi)用報(bào)銷(xiāo)、商旅訂單對(duì)公月結(jié)、財(cái)務(wù)核算、商旅主題分析等模塊。此外,系統(tǒng)支持移動(dòng)端和PC端多平臺(tái)使用,并集成了文件管理系統(tǒng)、稅務(wù)系統(tǒng)、財(cái)務(wù)系統(tǒng)、綜合信息門(mén)戶、人力資源系統(tǒng)以及iOCR服務(wù)。
系統(tǒng)通過(guò)自主可控調(diào)研,在硬件環(huán)境和軟件環(huán)境方面都產(chǎn)生了較大的改變。具體內(nèi)容如表1所示。
在硬件環(huán)境方面,評(píng)估系統(tǒng)所需的硬件資源(如服務(wù)器、存儲(chǔ)設(shè)備、網(wǎng)絡(luò)設(shè)備等)與現(xiàn)在硬件環(huán)境的兼容性方面,東方通的產(chǎn)品可以與多種硬件平臺(tái)無(wú)縫集成,支持多種處理器架構(gòu)和外設(shè)。這些優(yōu)勢(shì)可以使得東方通能夠在各種硬件環(huán)境下穩(wěn)定運(yùn)行,為用戶提供可靠、高效的解決方案。
在軟件環(huán)境方面,中間件和支撐軟件近年來(lái)國(guó)產(chǎn)中間件也取得了顯著的突破和發(fā)展。提供了豐富的功能和特性以滿足不同用戶的需求。在具體的技術(shù)實(shí)現(xiàn)和性能方面,國(guó)產(chǎn)中間件更注重性?xún)r(jià)比和易用性。數(shù)據(jù)庫(kù)由Oracle數(shù)據(jù)庫(kù)替換為達(dá)夢(mèng)數(shù)據(jù)庫(kù),雖然達(dá)夢(mèng)數(shù)據(jù)庫(kù)與Oracle數(shù)據(jù)庫(kù)之間的兼容性較高,但存在特有的字段類(lèi)型和函數(shù)。在遷移之前,須提前優(yōu)化SQL語(yǔ)句及調(diào)整字段類(lèi)型以滿足達(dá)夢(mèng)數(shù)據(jù)庫(kù)的要求。
2 系統(tǒng)改造步驟
改造步驟主要包括功能改造、服務(wù)器部署、中間件替換、數(shù)據(jù)庫(kù)遷移、外部接口集成、系統(tǒng)測(cè)試及上線切換等工作。
2.1 功能改造
基于平臺(tái)整合業(yè)務(wù)完成的補(bǔ)丁包,全部進(jìn)行自主可控適配,包括應(yīng)用代碼層面及數(shù)據(jù)庫(kù)層面,適配完成后在相關(guān)系統(tǒng)原版本基礎(chǔ)上進(jìn)行更新。
2.1.1 功能代碼調(diào)整
對(duì)代碼中的實(shí)體部分SQL語(yǔ)法差異進(jìn)行修正,主要是引用東方通TongWeb、達(dá)夢(mèng)8數(shù)據(jù)庫(kù)的相關(guān)依賴(lài),將本地包替換為官方包,并對(duì)業(yè)務(wù)程序的實(shí)體文件進(jìn)行同步調(diào)整。
2.1.2 報(bào)表適配調(diào)整
由于報(bào)表本身支持自主可控改造,只須引入國(guó)產(chǎn)數(shù)據(jù)庫(kù)Jar包至配置庫(kù)中,并修改數(shù)據(jù)庫(kù)配置文件,相關(guān)代碼調(diào)整為適配國(guó)產(chǎn)數(shù)據(jù)庫(kù)路徑。完成后對(duì)報(bào)表工程文件進(jìn)行單獨(dú)適配,集中替換支持國(guó)產(chǎn)數(shù)據(jù)庫(kù)的SQL語(yǔ)法,不支持的函數(shù)、存儲(chǔ)過(guò)程等內(nèi)容則單獨(dú)優(yōu)化、修改寫(xiě)法,保證報(bào)表性能一致。
2.2 服務(wù)器部署
部署內(nèi)容包括麒麟操作系統(tǒng)、TongWeb中間件、達(dá)夢(mèng)數(shù)據(jù)庫(kù)等,其中數(shù)據(jù)庫(kù)、中間件為壓縮包,需要先進(jìn)行解壓,然后通過(guò)命令行執(zhí)行相關(guān)SH文件,并測(cè)試是否安裝成功。
2.3 中間件替換
國(guó)產(chǎn)中間件技術(shù)水平也較為成熟,通過(guò)屏蔽硬件、操作系統(tǒng)、網(wǎng)絡(luò)和數(shù)據(jù)庫(kù),能夠高效地實(shí)現(xiàn)客戶機(jī)與應(yīng)用層之間通信[2]。根據(jù)評(píng)估結(jié)果,選擇一個(gè)更加安全可靠的中間件來(lái)替代原有的中間件。
中間件替換步驟如下:
1) 評(píng)估和選擇中間件:通過(guò)對(duì)已有中間件的功能、性能、安全性等方面進(jìn)行評(píng)估,確定需要替換的中間件。在選擇替代中間件時(shí),須考慮其與現(xiàn)有系統(tǒng)的兼容性和穩(wěn)定性。
2) 配置更新:在將新的中間件引入系統(tǒng)中之前,需要將原有系統(tǒng)中的數(shù)據(jù)遷移到新的中間件中。這一過(guò)程需要保證數(shù)據(jù)的完整性和準(zhǔn)確性,并確保遷移過(guò)程的安全。
2.4 數(shù)據(jù)庫(kù)遷移
數(shù)據(jù)庫(kù)使用容器云平臺(tái)部署。容器云平臺(tái)運(yùn)用容器、微服務(wù)等技術(shù),基于自主可控服務(wù)器,統(tǒng)一管理底層計(jì)算資源,按需開(kāi)設(shè)多個(gè)應(yīng)用容器,提供輕量化的應(yīng)用軟件運(yùn)行虛擬環(huán)境,實(shí)現(xiàn)硬件資源虛擬化、綜合使用和容器的按需擴(kuò)展、負(fù)載均衡能力,提高系統(tǒng)運(yùn)行效率和可靠性[3]。
數(shù)據(jù)庫(kù)遷移步驟如下:
1) 進(jìn)行數(shù)據(jù)轉(zhuǎn)移和遷移。在遷移過(guò)程中,確保數(shù)據(jù)的完整性和一致性。為了確保數(shù)據(jù)的準(zhǔn)確性,應(yīng)使用專(zhuān)業(yè)的數(shù)據(jù)遷移工具,例如達(dá)夢(mèng)數(shù)據(jù)庫(kù)遷移工具DTS。
2) 在遷移過(guò)程中,需要確保系統(tǒng)能夠正常運(yùn)行,并且對(duì)外部用戶的影響要盡量降到最低。可以采用漸進(jìn)遷移的方式,將數(shù)據(jù)分批次遷移,以減少系統(tǒng)的停機(jī)時(shí)間和用戶的影響。
3) 進(jìn)行數(shù)據(jù)遷移后的驗(yàn)證和測(cè)試。在完成數(shù)據(jù)庫(kù)遷移后,需要對(duì)新的數(shù)據(jù)庫(kù)進(jìn)行驗(yàn)證和測(cè)試。
2.5 外部接口集成
通過(guò)與其他相關(guān)系統(tǒng)進(jìn)行接口集成,實(shí)現(xiàn)數(shù)據(jù)的共享和交互,為用戶提供更便捷、高效的報(bào)銷(xiāo)服務(wù)。根據(jù)企業(yè)的需求和現(xiàn)有系統(tǒng)的架構(gòu),確定需要集成的外部接口,并定義其數(shù)據(jù)格式、通信方式以及安全要求。在進(jìn)行接口定義和規(guī)范制定時(shí),需要考慮到系統(tǒng)的可拓展性和兼容性,確保接口的穩(wěn)定和可靠性。外部接口集成涉及多個(gè)系統(tǒng)和模塊之間的數(shù)據(jù)流動(dòng)和通信,存在著一定的風(fēng)險(xiǎn)和挑戰(zhàn)。為了確保集成的順利進(jìn)行,需要進(jìn)行系統(tǒng)和接口的監(jiān)控和管理,使系統(tǒng)能夠?qū)涌谶M(jìn)行配置和調(diào)度,根據(jù)實(shí)際情況進(jìn)行接口的啟用和禁用,提高系統(tǒng)的運(yùn)行效率和靈活性。
2.6 系統(tǒng)測(cè)試
在系統(tǒng)測(cè)試階段,需要明確測(cè)試的目標(biāo)和范圍,制定相應(yīng)的測(cè)試計(jì)劃和用例。測(cè)試計(jì)劃包括測(cè)試的時(shí)間、地點(diǎn)、人員和資源等安排,而測(cè)試用例則定義了每個(gè)功能模塊的測(cè)試步驟和預(yù)期結(jié)果。在功能測(cè)試方面,將對(duì)系統(tǒng)的各項(xiàng)功能進(jìn)行逐一測(cè)試。例如,對(duì)于報(bào)銷(xiāo)申請(qǐng)功能,將驗(yàn)證用戶能夠正確填寫(xiě)報(bào)銷(xiāo)信息、上傳附件,并能夠提交申請(qǐng)。
除了功能測(cè)試,系統(tǒng)測(cè)試還包括性能測(cè)試和安全測(cè)試。性能測(cè)試是為了驗(yàn)證系統(tǒng)在壓力情況下的性能表現(xiàn),例如,多用戶同時(shí)訪問(wèn)系統(tǒng)時(shí)系統(tǒng)的響應(yīng)時(shí)間和負(fù)載能力。安全測(cè)試則是驗(yàn)證安裝在系統(tǒng)內(nèi)的保護(hù)機(jī)制能否在實(shí)際應(yīng)用中對(duì)系統(tǒng)進(jìn)行保護(hù),使之不被非法入侵,不受各種因素的干擾。例如,使用性能測(cè)試工具來(lái)模擬多用戶同時(shí)訪問(wèn)系統(tǒng)的場(chǎng)景,并監(jiān)測(cè)系統(tǒng)的性能指標(biāo);使用自動(dòng)化測(cè)試工具來(lái)執(zhí)行大量重復(fù)性的測(cè)試用例,提高測(cè)試效率。
2.7 上線切換
系統(tǒng)完成適配后,根據(jù)系統(tǒng)的差異點(diǎn)輸出上線切換方案,并按照以下運(yùn)營(yíng)規(guī)則投運(yùn):
1) 第一階段作為應(yīng)急備用環(huán)境投入使用,待正式環(huán)境發(fā)生故障時(shí)直接切換,可以支持大部分業(yè)務(wù)場(chǎng)景正常使用。
2) 第二階段作為生產(chǎn)環(huán)境投入使用,可以支持所有業(yè)務(wù)場(chǎng)景正常使用,性能與原生產(chǎn)環(huán)境版本無(wú)明顯差距,做到所有業(yè)務(wù)功能與原生產(chǎn)環(huán)境版本對(duì)齊,做到切換后用戶無(wú)感知。
3 系統(tǒng)應(yīng)用改進(jìn)分析
在系統(tǒng)自主可控環(huán)境改造過(guò)程中,從系統(tǒng)性能和系統(tǒng)安全角度進(jìn)行改進(jìn)分析。
3.1 系統(tǒng)性能提升
3.1.1 擴(kuò)大堆內(nèi)存提升加載速度
中間件運(yùn)行依賴(lài)Java虛擬機(jī)(Java Virtual Machine,JVM) ,當(dāng)JVM堆內(nèi)存使用達(dá)到一定程度,由JVM提供的垃圾回收線程將啟動(dòng)執(zhí)行清理操作,該操作主要用于清理緩存中不再使用的Java對(duì)象,避免內(nèi)存溢出[4]。經(jīng)分析,JVM的默認(rèn)內(nèi)存過(guò)小,最大值僅為256M,Java進(jìn)程98%的時(shí)間在進(jìn)行垃圾回收,導(dǎo)致服務(wù)資源過(guò)少,時(shí)常宕機(jī)。因此,對(duì)JVM進(jìn)行設(shè)置,最大內(nèi)存擴(kuò)至2 048M,可解決加載問(wèn)題,提高性能。
3.1.2 優(yōu)化SQL加快查詢(xún)速度
針對(duì)查詢(xún)語(yǔ)句進(jìn)行優(yōu)化。優(yōu)化時(shí),應(yīng)盡量避免全表掃描,首先應(yīng)考慮在Where及Order by涉及的列上建立索引。當(dāng)然,索引并不是越多越好,索引固然可以提高相應(yīng)的Select的效率,但同時(shí)也降低了Insert及Update的效率,一個(gè)表的索引數(shù)最好不要超過(guò)6個(gè),若太多則應(yīng)考慮一些不常使用到的列上建的索引是否有必要。
3.1.3 定期硬件維護(hù)防止服務(wù)器宕機(jī)
服務(wù)器硬件設(shè)備對(duì)于服務(wù)器的性能和穩(wěn)定性是至關(guān)重要的,因此定期維護(hù)是必不可少的。定期維護(hù)是指每隔一段時(shí)間對(duì)服務(wù)器的內(nèi)存、硬盤(pán)、電源、風(fēng)扇等硬件設(shè)備的檢查和維護(hù),確保它們的工作正常,不會(huì)因?yàn)橛布收蠈?dǎo)致服務(wù)器宕機(jī)。
3.2 系統(tǒng)安全提升
3.2.1 IPv4/IPv6雙棧穩(wěn)固內(nèi)網(wǎng)安全
設(shè)備能夠同時(shí)支持IPv4和IPv6兩種協(xié)議,它們既可以與只支持IPv4的其他節(jié)點(diǎn)通信,也可以與只支持IPv6的其他節(jié)點(diǎn)通信。這有助于保證網(wǎng)絡(luò)的連續(xù)性和服務(wù)的穩(wěn)定性,直到所有服務(wù)器遷移至IPv6網(wǎng)段。
3.2.2 安裝G01防止外部入侵
政府網(wǎng)站綜合防護(hù)系統(tǒng),簡(jiǎn)稱(chēng)“網(wǎng)防G01”,是首款專(zhuān)門(mén)針對(duì)政府網(wǎng)站及服務(wù)器等關(guān)鍵信息基礎(chǔ)資源進(jìn)行綜合防護(hù)的產(chǎn)品,可對(duì)服務(wù)器進(jìn)行安全防護(hù)[5]。服務(wù)器安裝該軟件后,可對(duì)操作系統(tǒng)、Web中間件和Web業(yè)務(wù)系統(tǒng)和網(wǎng)站進(jìn)行多重防護(hù),持續(xù)對(duì)應(yīng)用服務(wù)器上的流量與行為進(jìn)行監(jiān)控。同時(shí)可以管理被防護(hù)服務(wù)器,進(jìn)行防護(hù)策略配置、安全巡檢、防護(hù)目標(biāo)管理、攻擊監(jiān)測(cè)日志查看、系統(tǒng)資源監(jiān)控等操作。
4 總結(jié)
通過(guò)對(duì)現(xiàn)有系統(tǒng)的現(xiàn)狀進(jìn)行評(píng)估,提出了系統(tǒng)自主可控改造的步驟方法,并對(duì)每個(gè)步驟進(jìn)行了闡述。在改造過(guò)程中,重點(diǎn)關(guān)注了系統(tǒng)性能和安全性的提升。通過(guò)實(shí)踐發(fā)現(xiàn),改造后的系統(tǒng)在處理報(bào)銷(xiāo)事務(wù)時(shí)更加高效,能夠大大減少處理時(shí)間并提升用戶體驗(yàn)。該方法為企業(yè)提供了一個(gè)可行的信息系統(tǒng)自主可控改造解決方案。未來(lái)的研究可以進(jìn)一步完善系統(tǒng)的功能和性能,并探索更多的措施來(lái)進(jìn)一步提升系統(tǒng)的性能與安全。
參考文獻(xiàn):
[1] 萬(wàn)俊偉,趙輝,鮑忠貴,等.自主可控信息技術(shù)發(fā)展現(xiàn)狀與應(yīng)用分析[J].飛行器測(cè)控學(xué)報(bào),2015,34(4):318-324.
[2] 李敏,夏紅霞,趙順東.中間件技術(shù)及其發(fā)展趨勢(shì)[J].軟件導(dǎo)刊,2007,6(3):3-5.
[3] 袁忠良.容器云計(jì)算平臺(tái)關(guān)鍵技術(shù)研究[D].南京:南京大學(xué),2017:34-35.
[4] 孫文俊,黨玲,李祥.基于自主可控平臺(tái)的信息系統(tǒng)性能優(yōu)化研究[J].現(xiàn)代計(jì)算機(jī),2023,29(4):75-79.
[5] “網(wǎng)防G01”打造政府網(wǎng)站的堅(jiān)固堡壘:政府網(wǎng)站綜合防護(hù)系統(tǒng)技術(shù)研究與實(shí)戰(zhàn)應(yīng)用[J].警察技術(shù),2017(2):3.
【通聯(lián)編輯:謝媛媛】