歐陽國軍 上海鐵路局社保處
社保信息管理系統(tǒng)升級改造研究
歐陽國軍 上海鐵路局社保處
當前,上海鐵路局社保信息管理系統(tǒng)基本實現(xiàn)了各統(tǒng)籌地區(qū)“多險合一”的社保綜合管理,在全局社保工作中發(fā)揮著重要的作用,但是隨著社保政策、業(yè)務流程的不斷更新變化,需要不斷對現(xiàn)有社保管理信息系統(tǒng)的系統(tǒng)功能、業(yè)務邏輯進行維護,而現(xiàn)有系統(tǒng)由于系統(tǒng)架構、編程水平等方面的原因,導致系統(tǒng)維護成本變高,難以滿足現(xiàn)階段全局社保管理工作的需求,迫切需要進行升級改造。對該系統(tǒng)升級改造進行了研究。
社保信息管理系統(tǒng);社保政策;業(yè)務流程;升級改造
由于我局地跨山東、江蘇、安徽、上海、浙江四省一市,下屬單位眾多,不同單位的參保險種、參保地區(qū)、繳費比例、繳費上下限各不相同,為了進一步加強全局社保管理,實現(xiàn)全局社保信息共享,2010年以來,我局推出了現(xiàn)有社保信息管理系統(tǒng),統(tǒng)一管理和維護山東、江蘇、安徽、上海、浙江統(tǒng)籌地區(qū)的社會保險(養(yǎng)老、醫(yī)療、工傷、失業(yè)、生育)以及企業(yè)年金、企業(yè)補充醫(yī)保、職工補充醫(yī)保等補充保險的信息,包括各單位、職工的參保、封存啟封、終止、繳費、待遇支付等信息,實現(xiàn)了全局社保信息的終端采集、集中處理、內部共享以及按需提取等功能。
為了適應近年來各地社保政策的不斷變化和社保業(yè)務經(jīng)辦流程不斷更新,滿足全局社保工作的需要,迫切需要對現(xiàn)有社保管理信息系統(tǒng)進行升級改造。
2.1 現(xiàn)有系統(tǒng)概述
現(xiàn)有系統(tǒng)采用三層體系結構的B/S(瀏覽器/服務器)架構,將操作中心下移,管理職能上移,業(yè)務操作上以“站段→地區(qū)社保中心→路局(社保處)”三級管理的網(wǎng)絡操作模式,實現(xiàn)基層操作、中心審核、路局監(jiān)管,管理上充分體現(xiàn)路局直管站段管理體制的要求。數(shù)據(jù)庫采用集中式數(shù)據(jù)庫技術,通過構建集中的數(shù)據(jù)管理,實行遠程點對點通信,后臺采用Oracle數(shù)據(jù)庫系統(tǒng),建立全局人員信息共享的數(shù)據(jù)平臺。將全局數(shù)據(jù)存儲在社保處數(shù)據(jù)庫服務器中,各下屬單位在客戶端完成相應的業(yè)務數(shù)據(jù)錄入、提交、查詢等操作,通過內網(wǎng)直接訪問服務器,實現(xiàn)數(shù)據(jù)實時、動態(tài)更新,業(yè)務實時控制,數(shù)據(jù)共享的需求。現(xiàn)有系統(tǒng)運行以來,改變了以往社保管理模式,實現(xiàn)各統(tǒng)籌地區(qū)“多險合一”的社保綜合管理,通過網(wǎng)絡實時處理社保業(yè)務,有效提高日常工作效率。
2.2 現(xiàn)有系統(tǒng)設計架構和存在主要問題
2.2.1 現(xiàn)有系統(tǒng)設計架構
現(xiàn)有社保系統(tǒng)的設計架構是早期的公司開發(fā)的一套以SPRING為基礎的LARVA分層架構,采用MVC模式,將應用分為三層:View Layer、Control Layer、Model Layer(如圖1所示)。

圖1 Larva分層架構示意圖
View Layer:
負責客戶端的展現(xiàn)部分,其中組件控制由框架自動完成,jsp頁面展現(xiàn)部分需要開發(fā)人員自行實現(xiàn)。
Control Layer:
負責頁面的初始化控制和事件響應,其中框架提供了page flow engine,java Form及事件響應方法需要開發(fā)人員實現(xiàn)。
Model Layer:
有三個對象,Pojo、Service和Dao。Pojo是對各層在數(shù)據(jù)傳遞的數(shù)據(jù)的一個封裝;Service把對數(shù)據(jù)庫的調用操作封裝起來,提供統(tǒng)一的接口給事件響應類調用,Pojo作為調用時傳輸?shù)膶嵗籇ao中封裝了對數(shù)據(jù)庫操作。在Model這一層,框架提供了事務控制機制,service以方法為邊界,將多個數(shù)據(jù)庫訪問操作封裝在一起作為一個事務提交或回滾。
2.2.2 現(xiàn)有系統(tǒng)存在的主要問題
(1)現(xiàn)有系統(tǒng)開發(fā)平臺依賴于已經(jīng)過時的WINDOW XP操作系統(tǒng)。當前鐵路社保系統(tǒng)是采用早期的公司開發(fā)的一套以SPRING為基礎的LARVA平臺架構,同時整合早期的IBATIS等一些常用的開源框架,分別負責前端展示、業(yè)務邏輯控制和數(shù)據(jù)訪問操作的一個解決方案,包括LARVA標簽庫、標簽控制器、頁面流引擎,安全控制,數(shù)據(jù)庫訪問,數(shù)據(jù)導入導出等,系統(tǒng)依賴于IBM RAD6.0開發(fā)平臺,此平臺完全依賴于WINDOW XP操作系統(tǒng),目前這個操作系統(tǒng)微軟公司已經(jīng)不提供技術支持和BUG更新服務。
(2)現(xiàn)有系統(tǒng)開發(fā)平臺受到license的限制,維護成本高。前端LARVA框架是一個集安全、標簽控制于一體的框架,但是由于其受到license的限制,不能完全發(fā)揮出其優(yōu)勢,針對隱藏字段,標簽表的單元格不支持容納多個標簽,對多選框的操作處理缺乏靈活性等不能進行擴展。SPRING只負責整合業(yè)務邏輯層的數(shù)據(jù)和接口,導致系統(tǒng)層次不是很清晰,沒有統(tǒng)一的接口管理。
(3)現(xiàn)有系統(tǒng)代碼可讀性差,維護困難。現(xiàn)有系統(tǒng)后期開發(fā)和維護人員水平不同,導致系統(tǒng)層次之間調用混亂,系統(tǒng)代碼良莠不齊、可讀性差。
為了適應近年來各地社保政策的不斷變化和社保業(yè)務經(jīng)辦流程不斷更新,滿足全局社保工作的需要,迫切需要對現(xiàn)有社保管理信息系統(tǒng)進行升級改造。
3.1 需求分析
針對現(xiàn)有系統(tǒng)的特點,對于其好的方面,比如審核流程獨立于業(yè)務流程,數(shù)據(jù)導入導出模版的應用、存儲過程包等,可以在保留其設計思想的基礎上,優(yōu)化和升級相關的代碼和jar包,也可以直接采用部分現(xiàn)有系統(tǒng)的代碼(如存儲過程包),以保證系統(tǒng)升級改造后的順利過渡;對于現(xiàn)有系統(tǒng)中存在的問題,可以在下面幾個方面對系統(tǒng)進行升級改造,以適應操作系統(tǒng)的更新?lián)Q代和當前軟件架構的發(fā)展方向,簡化開發(fā)和維護人員的工作量,使得系統(tǒng)具有更好的可適應性、可操作性,可擴展性和可維護性。
(1)根據(jù)現(xiàn)有系統(tǒng)中存在的各個數(shù)據(jù)表使用IBATIS的升級版本Mybatis3.0和相關工具自動映射生成一套適用于Java編程語言的數(shù)據(jù)對象模型、數(shù)據(jù)查詢標準和數(shù)據(jù)操作接口。對象模型作為數(shù)據(jù)傳輸對象,在不同業(yè)務層次之間進行調用,同時考慮數(shù)據(jù)展示的特殊需求,對其進行擴展,更好的為前端服務。數(shù)據(jù)查詢標準負責相關SQL查詢條件的生成,數(shù)據(jù)操作接口實現(xiàn)數(shù)據(jù)的增刪改查操作。
(2)將前端LARVA框架變更為輕量級的Struts2開源框架。該框架是在Struts1的基礎上以WebWork為核心,采用攔截器的機制來處理用戶的請求,使得業(yè)務邏輯控制器能夠與Servlet API完全脫離開,通過Java反射機制將瀏覽器數(shù)據(jù)自動映射到ACTION的實例對象和相關調用方法,可以結合采用XML和申明的方式完成早前繁瑣的配置工作,使得開發(fā)人員專注于業(yè)務處理。
(3)采用SPRING負責整合Struts2框架、Mybatis3.0框架和業(yè)務邏輯層業(yè)務處理。Spring功能非常的強大,它的控制反轉/依賴注入機制,能夠省去再次書寫工廠模式的工作,實現(xiàn)對控制類、業(yè)務邏輯類、數(shù)據(jù)訪問類、以及JNDI或者JDBC數(shù)據(jù)源的托管;Spring對AOP支持可以簡化用戶權限控制、事務處理方面的工作量;Spring security登錄驗證框架的應用簡化了開發(fā)人員自己設計和開發(fā)權限控制代碼,開發(fā)人員僅需要進行相關的配置并實現(xiàn)相關的服務接口即可完成。根據(jù)實際需要也可以將WEBSERVICE服務整合進來,與外部系統(tǒng)實現(xiàn)數(shù)據(jù)交互。
(4)將前期系統(tǒng)中分散的復雜SQL調用,集中統(tǒng)一到同一配置文件,通過公共的數(shù)據(jù)操作接口進行處理。簡單的SQL應用通過Mybatis3.0生成的數(shù)據(jù)操作接口統(tǒng)一處理。實現(xiàn)部分界面和功能的整合。
(5)優(yōu)化數(shù)據(jù)庫結構,調整數(shù)據(jù)庫物理存儲和邏輯結構,提高數(shù)據(jù)庫效率,實現(xiàn)歷史存量數(shù)據(jù)的遷移存儲,構建合理的數(shù)據(jù)庫,提高應用系統(tǒng)的整體性能。
3.2 系統(tǒng)設計方案
系統(tǒng)的改造設計方案:
(1)原有的業(yè)務流程維持不變,如果現(xiàn)有流程不能滿足當前業(yè)務需求的,可以進行修改。
(2)公共的信息接口不允許修改,但允許地方對特殊需求的字段進行新增和修改。
(3)對前端頁面重新開發(fā)和設計,對后臺架構進行優(yōu)化和重新整合。
(4)對部分數(shù)據(jù)庫表進行優(yōu)化和補充字段,特別是對影響性能的歷史表進行表空間的遷移。
(5)重新開發(fā)通用的數(shù)據(jù)導入導出模塊和銀行接口加密模塊。
3.3 系統(tǒng)架構設計
系統(tǒng)架構分為前臺,后臺,與數(shù)據(jù)庫。數(shù)據(jù)庫ORACLE10i保持不變,前臺JSP采用jQuery EasyUI組件庫,后臺采用struts2.3+spirng3.0+mybatic3.0,開發(fā)語言是Java6.0以上版本,開發(fā)工具采用Eclipse或者相關工具。應用服務器采用Tomcat6.0以上版本(系統(tǒng)架構見圖2)。

圖2 系統(tǒng)架構圖
(1)jQuery EasyUI組件庫:處于系統(tǒng)架構的表現(xiàn)層,和LARVA標簽庫不同,LARVA標簽庫由后臺SEVERLET解析,需要與后臺交互的信息更多。而jQuery EasyUI一個瀏覽器端WEB組件庫,完全由瀏覽器端解析標簽,因此減輕了服務器端壓力。其除了擁有傳統(tǒng)的輸入框組件,增加了樹形下拉列表,樹形表單等常用組件,還集成了AJAX框架,能夠輕松實現(xiàn)無跳轉更新頁面和動態(tài)加載數(shù)據(jù),是一個更易維護的輕量級標簽庫。
(2)Struts2.3控制器:處于系統(tǒng)架構的控制層,根據(jù)業(yè)務功能將頁面呈現(xiàn)給用戶,既可以處理傳統(tǒng)方式提交的參數(shù),還可以處理以JSON格式封裝的數(shù)據(jù),通過調用JSON類庫,輕松將參數(shù)數(shù)據(jù)轉換成java數(shù)據(jù)傳輸類對象,實現(xiàn)在各個層之間的調用。
(3)Spring3.0容器:在架構圖中是出現(xiàn)在業(yè)務邏輯層,在這里我們的Struts2.3、Mybatis3.0等組件都是委托給spring容器管理的,實現(xiàn)了系統(tǒng)各層之間的無縫連接。Spring的AOP、事務控制、權限控制,WebService都比較容易整合進來,并且實現(xiàn)簡潔方便。
(4)Mybatis3.0持久控件:負責數(shù)據(jù)的持久化,根據(jù)數(shù)據(jù)庫關系表能夠生成一套面向表的數(shù)據(jù)對象模型、數(shù)據(jù)查詢標準和數(shù)據(jù)操作接口。生成的記錄集可以和對象模型同步拓展,數(shù)據(jù)查詢標準負責相關SQL查詢條件的生成,數(shù)據(jù)操作接口實現(xiàn)數(shù)據(jù)的增刪改查操作,還可以定制復雜的SQL語句和存儲過程配置在同一文件中,方便查詢和調用。
4.1 升級改造使新系統(tǒng)具有更好的可適應性、可操作性和可擴展性
新系統(tǒng)采用更先進的系統(tǒng)架構設計,在保留原有數(shù)據(jù)庫架構不變的同時,采用前臺jQuery EasyUI組件庫和后臺struts2.3+spirng3.0+mybatic3.0的先進架構代替原來落后的LARVA分層架構,使新系統(tǒng)能夠更好地適應操作系統(tǒng)的更新?lián)Q代和當前軟件架構的發(fā)展方向,具有更好的適應性、操作性和擴展性。
4.2 升級改造使新系統(tǒng)具有更好的可維護性
現(xiàn)有系統(tǒng)LARVA框架是一個集安全、標簽控制于一體的框架,但是由于其受到license的限制,維護成本高,通過采用開放的jQuery EasyUI組件庫能夠有效地降低維護成本;另外現(xiàn)有系統(tǒng)后期開發(fā)和維護人員水平不同,導致系統(tǒng)層次之間調用混亂,系統(tǒng)代碼可維護性差,通過升級改造后規(guī)范了系統(tǒng)代碼,簡化維護人員的工作量,使新系統(tǒng)更具可維護性。
4.3 升級改造使新系統(tǒng)具有更好的性能
原系統(tǒng)由于數(shù)據(jù)庫物理存儲和邏輯結構不盡合理,在處理全局大量社保數(shù)據(jù)時,效率不是很高,通過系統(tǒng)升級改造,對現(xiàn)有數(shù)據(jù)庫結構進行了優(yōu)化,調整數(shù)據(jù)庫物理存儲和邏輯結構,提高數(shù)據(jù)庫效率,實現(xiàn)歷史存量數(shù)據(jù)的遷移存儲,有效地提高應用系統(tǒng)的整體性能。
社保管理信息系統(tǒng)是做好當前全局社保管理工作的重要信息化工具,它實現(xiàn)了通過鐵路內網(wǎng)實時處理社保業(yè)務,共享和查詢社保數(shù)據(jù),不僅提高了社保業(yè)務處理效率,也為社保決策管理提供了及時準確的基礎數(shù)據(jù),在全局社保工作中發(fā)揮著越來越重要的作用。通過對舊系統(tǒng)的升級改造,將更有利于系統(tǒng)自身的管理和維護,更好地服務全局社保工作。
[1]上海鐵路局社保處,中國工商銀行上海市分行.上海鐵路局企業(yè)年金理事會受托暨社保信息管理系統(tǒng)評審材料.2011.
[2]羅晴明,包勇明.jQuery UI開發(fā)指南.人民郵電出版社.2012.
[3]李剛.Struts 2.x權威指南.電子工業(yè)出版社.2012.
[4]陳雄華,林開雄.Spring 3.x企業(yè)應用開發(fā)實戰(zhàn).電子工業(yè)出版社.2012.
責任編輯:王 華
來稿日期:2015-08-17