胡 佳,郭 靜,田 斌,謝海華
(中航工業(yè)航空動力機械研究所,湖南 株洲 412002)
隨著各個企業(yè)的快速發(fā)展,管理信息化的需求越來越多,若繼續(xù)按照原有方式,基于不同的平臺構(gòu)建各業(yè)務(wù)系統(tǒng),將無法應(yīng)對后續(xù)業(yè)務(wù)需求的日益增多與不斷變化,系統(tǒng)維護也將耗費更多的人力物力,另一方面各應(yīng)用系統(tǒng)間的集成難度大且集成成本較高,這些都將導(dǎo)致企業(yè)對軟件開發(fā)商的過分依賴,而且難以及時響應(yīng)業(yè)務(wù)變革所產(chǎn)生的需求,企業(yè)的信息化建設(shè)將會處于非常被動的境地。因此,如何全面提升企業(yè)的管理信息化建設(shè)和維護水平,打破這種過度受制于開發(fā)商的局面,是擺在每個企業(yè)信息化發(fā)展道路上的一道難題。
縱觀國內(nèi)外的IT廠商,如國外的IBM、Oracle,國內(nèi)的用友、金蝶等公司都是通過打造自己的核心開發(fā)平臺來提升其核心競爭力的,同理,要破解企業(yè)這道難題就需要根據(jù)企業(yè)自身的業(yè)務(wù)特點構(gòu)建一個快速開發(fā)平臺,并基于此平臺統(tǒng)一構(gòu)建業(yè)務(wù)應(yīng)用,及時響應(yīng)業(yè)務(wù)需求。
根據(jù)業(yè)務(wù)系統(tǒng)開發(fā)特點,將業(yè)務(wù)系統(tǒng)開發(fā)中所必須的基礎(chǔ)功能抽取出來,統(tǒng)一在平臺層進行定義,封裝成通用基礎(chǔ)模塊,使開發(fā)人員只需要關(guān)注具體業(yè)務(wù)的實現(xiàn),通用功能交由平臺層處理。就像工廠利用模具加工一樣,先將通用的基礎(chǔ)部分利用模具批量生產(chǎn)通用構(gòu)件,再將構(gòu)件分別經(jīng)過不同的組合和工藝加工形成多種形色各異的產(chǎn)品,以快速滿足用戶的不同需求。同理,基于已有的通用基礎(chǔ)模塊開發(fā)可以最大限度地進行代碼復(fù)用,大大縮短開發(fā)、交付周期。
以此方式構(gòu)建業(yè)務(wù)系統(tǒng)具有 “框架統(tǒng)一構(gòu)建、平臺基礎(chǔ)一致,流程快速配置、用戶體驗一致、開發(fā)周期短、可集成性高、可擴展性強”等優(yōu)勢。
基于 DSH (Dorado7+Spring+Hibernate) 框架我們構(gòu)建了WIND開發(fā)平臺,它是一套基于Web的、集成的、敏捷的開發(fā)框架(Web Integrated Nimble Development,簡稱 WIND 平臺),目標(biāo)旨在使業(yè)務(wù)開發(fā)變得快速、敏捷,并能靈活應(yīng)對需求的變化。WIND平臺基于Java語言以Dorado7為前臺展現(xiàn)層,以Spring3為后臺邏輯層[1],以 Hibernate 為數(shù)據(jù)層[2],支持 Oracle、SQL Server等多種關(guān)系型數(shù)據(jù)庫?;诖耍琖IND平臺設(shè)計并構(gòu)建了統(tǒng)一的用戶組織結(jié)構(gòu)、主框架、權(quán)限管理、系統(tǒng)管理、BPM流程、報表管理、密級控制、安全審計、任務(wù)調(diào)度管理、數(shù)據(jù)庫管理、異常處理、Web Service發(fā)布與調(diào)用、頁面在線設(shè)計與開發(fā)等通用基礎(chǔ)模塊。WIND架構(gòu)如圖1所示:
圖1 WIND平臺基礎(chǔ)架構(gòu)圖
WIND平臺展現(xiàn)層具有表格、樹、下拉框、主菜單、按鈕、子窗體等超過20大類100余種基本表現(xiàn)層組件,在業(yè)務(wù)系統(tǒng)開發(fā)過程中,開發(fā)人員還可以自定義新的控件。展現(xiàn)層具有風(fēng)格統(tǒng)一、簡潔、美觀、人性化的Web操作界面。
WIND平臺為滿足各類業(yè)務(wù)系統(tǒng)的需求,設(shè)計并開發(fā)了6種不同結(jié)構(gòu)的主框架頁面,包括左側(cè)導(dǎo)航框架、頂部導(dǎo)航框架等,也將主框架的首頁設(shè)計為用戶可以自定義Portlet布局和顯示的內(nèi)容,同時用戶可任意切換皮膚。
BPM流程管理主要設(shè)計了流程的可視化建模、快速開發(fā)配置以及流程監(jiān)控等功能。還構(gòu)建了可視化的流程設(shè)計工具,支持串行、并行、子流程等流程結(jié)構(gòu),開發(fā)人員通過拖拽方式來繪制流程圖,如圖2所示。
圖2 流程在線設(shè)計器
BPM流程管理在設(shè)計中還著重考慮了以下幾方面特點:
(1)流程節(jié)點具有豐富的屬性配置項,通過屬性配置界面便可以快速、靈活的對節(jié)點操作權(quán)限、節(jié)點參與者、節(jié)點處理方式、權(quán)限分配審批意見顯示等進行配置,大大縮短了流程開發(fā)時間;
(2)根據(jù)業(yè)務(wù)需求設(shè)計并開發(fā)了退回、流程跳轉(zhuǎn)、轉(zhuǎn)辦、轉(zhuǎn)發(fā)、拿回、催辦、讀者管理等操作功能,并且所有的操作都與密級和工作移交數(shù)據(jù)進行結(jié)合控制;
(3)流程中所有的操作都會記錄詳細(xì)的文字跟蹤和圖形跟蹤日志,用戶可以很方便、清晰地查看流轉(zhuǎn)過程;
(4)流程與文檔控件緊密集成,能夠在流程頁面中在線打開和編輯Word、Excel等Office文檔,并具有正文模板、切換紅頭、強制痕跡保留、手寫簽名、電子印章、打印控制等公文處理功能。
WIND平臺構(gòu)建了報表管理模塊,實現(xiàn)各類信息的統(tǒng)計分析,支持以柱狀圖、餅圖、趨勢、曲線、報表等多種形式展現(xiàn),并支持復(fù)雜報表模板設(shè)計、動態(tài)生成PDF/Excel/RTF等格式的報表文件,報表文件可以在線瀏覽與打印,生成的數(shù)據(jù)可直接導(dǎo)出成PDF格式的文件。
WIND平臺中的表格和表單只需要經(jīng)過簡單的配置就可以導(dǎo)出為PDF或者Excel格式的文件。WIND平臺還具有Excel數(shù)據(jù)導(dǎo)入功能,通過簡單的模型定義,在不寫一行代碼的情況下,就可以將位于Excel中的數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫中。
WIND平臺建立了可視化的任務(wù)管理界面,用于對定時任務(wù)進行新建、刪除、啟動、暫停、查看運行歷史等操作。
WIND平臺設(shè)計并實現(xiàn)了高效而便捷的Web Service服務(wù)開發(fā)、部署、調(diào)用和日志記錄功能,并嚴(yán)格遵循標(biāo)準(zhǔn)的W3C規(guī)范。
系統(tǒng)管理功能主要包括用戶組織結(jié)構(gòu)管理、菜單管理、系統(tǒng)群組維護、數(shù)據(jù)字典配置等功能,靈活構(gòu)建了用戶和部門、崗位等功能,特別考慮了用戶兼職、按順序顯示、部門領(lǐng)導(dǎo)等功能。
WIND平臺實現(xiàn)了靈活的權(quán)限管理功能,建立了以角色為中心的授權(quán)體系,一方面可以將資源授權(quán)給角色;另一方面角色成員可以通過用戶、部門、群組來配置。對于角色中的某個成員在當(dāng)前角色中的訪問權(quán)限取決于當(dāng)前成員在當(dāng)前角色中配置的訪問權(quán)限,若為允許則可以訪問當(dāng)前角色對應(yīng)的資源,否則就不能訪問當(dāng)前角色對應(yīng)的資源,以實現(xiàn)權(quán)限靈活的加減計算。
WIND平臺按照涉密信息系統(tǒng)安全保密要求,將系統(tǒng)管理的職責(zé)進行細(xì)化,分為3種類型:“系統(tǒng)管理員”“安全審計員”“安全管理員”,所有操作均記錄操作日志,實行閉環(huán)相互控制機制,實現(xiàn)了“三員”管理,滿足軍工企業(yè)涉密信息系統(tǒng)分級保護測評有關(guān)要求。
為解決應(yīng)用系統(tǒng)訪問多個數(shù)據(jù)源的需求,在WIND平臺中設(shè)計并開發(fā)了多數(shù)據(jù)源配置功能,可以同時配置多個數(shù)據(jù)源,不同類型數(shù)據(jù)庫之間的差異性是通過Hibernate來進行轉(zhuǎn)換,開發(fā)人員不需要關(guān)心。
為方便開發(fā)人員操作數(shù)據(jù)庫,WIND平臺基于Hibernate統(tǒng)一對數(shù)據(jù)庫事務(wù)進行管理,即統(tǒng)一由框架來管理數(shù)據(jù)庫事務(wù)的開啟、提交、回滾等。
WIND平臺在Web頁面上構(gòu)建了數(shù)據(jù)庫控制臺可以在網(wǎng)頁中進行表結(jié)構(gòu)信息的查看與維護,同時可以進行表數(shù)據(jù)的查看與維護,大大增加數(shù)據(jù)庫維護人員及管理員的便利性。
WIND平臺構(gòu)建了表單在線設(shè)計與開發(fā)功能,一般不需要編寫代碼即可完成頁面開發(fā),頁面可在線實時看到顯示效果,所見即所得。
目前已基于該平臺快速構(gòu)建了質(zhì)量管理系統(tǒng)、項目管理系統(tǒng)、客戶管理系統(tǒng)、知識管理系統(tǒng)、圖書管理系統(tǒng)等信息系統(tǒng),后續(xù)基于該平臺不僅可以構(gòu)建獨立的業(yè)務(wù)系統(tǒng),如OA等,還可以為企業(yè)構(gòu)建綜合性的管理支撐平臺,如綜合管控平臺等?;诮y(tǒng)一的平臺構(gòu)建業(yè)務(wù)應(yīng)用,既可以快速提升企業(yè)的信息化水平和管理效率,也為將來業(yè)務(wù)的高度集成、共享奠定了良好的基礎(chǔ)。
WIND平臺主要適用于MIS類Web應(yīng)用快速開發(fā)、復(fù)雜工作流構(gòu)建,具有以下幾方面的特色:
(1)WIND平臺采用松耦合技術(shù)架構(gòu),模塊之間相互沒有依賴,使用時可以根據(jù)業(yè)務(wù)系統(tǒng)的需要,靈活選擇要用到的功能模塊,采用動態(tài)加載機制,只需要將所需功能模塊的Jar文件放置到應(yīng)用當(dāng)中即可。
(2)WIND平臺具有豐富的控件庫,有較強的Web表現(xiàn)能力,并且?guī)缀跛械慕换ザ疾捎肁jax異步刷新技術(shù),極大地提高了頁面響應(yīng)速度,良好的操作性大幅提升了用戶體驗,同時簡潔、風(fēng)格統(tǒng)一的界面使用戶能獲得體驗的一致性。
(3)WIND平臺流程功能強大,配置靈活。引入了開源的輕量級流程引擎,采用可視化的圖形設(shè)計和配置界面,并開發(fā)了大量特色功能,如退回、跳轉(zhuǎn)、轉(zhuǎn)辦、轉(zhuǎn)發(fā)、拿回等功能,同時將通用功能封裝為可配置的方式,能靈活配置流程節(jié)點屬性。
(4)WIND平臺集成性和可擴展性強。基于統(tǒng)一的關(guān)系型數(shù)據(jù)庫進行業(yè)務(wù)系統(tǒng)開發(fā),將大大提高各業(yè)務(wù)數(shù)據(jù)的集成程度,同時基于統(tǒng)一的W3C規(guī)范發(fā)布和調(diào)用WebService接口,極大地方便了與第三方系統(tǒng)進行集成。
(5)該平臺的安全保密功能在行業(yè)內(nèi)具有較強的通用性,在軍工行業(yè)具有較好的推廣價值。
隨著平臺應(yīng)用的不斷深入,后續(xù)將不斷完善和擴展平臺核心功能,逐漸打造一個功能完備、性能表現(xiàn)優(yōu)異、可用性靈活的企業(yè)級開發(fā)平臺。
[1] 陳雄華.Spring3.x 企業(yè)應(yīng)用開發(fā)實戰(zhàn)[M].北京:電子工業(yè)出版社,2012.
[2] 孫衛(wèi)琴.精通 Hibernate-Java 對象持久化技術(shù)詳解[M].北京:電子工業(yè)出版社,2009.