占斌


關鍵詞:SOA;ESB;道路工程
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2023)12-0103-02
隨著國家經濟的穩步發展,三明市加快關鍵公路網的建設能夠促進區域經濟發展。為了更加規范管理一般交通設施工程的建設過程中涉及的基礎設施和工程項目,必須建立針對道路工程工作內容涵蓋全面、能在道路建設中發揮作用的信息系統,以滿足相關人員對工程前期信息管理和查詢的需求。本系統通過對軟硬件、處理方式等逐步解析,需要實現項目管理、統計報表、工程進展綜合統計、項目工程管理、綜合查詢等功能,如圖1所示。
1 系統總體架構
系統采用SOA構建信息平臺,SOA架構讓信息化系統具備更強的延展性,能針對企業業務需求作出靈活響應,解決“如何重用軟件功能”問題。SOA[1-2]具有以下特征為軟件功能重用提供了解決辦法:
1) 在不涉及底層和信息通信模型的基礎上,使用簡單、明確的接口實現各服務間數據交互。
2) 粗粒度性:對業務功能進行預先設定,使該接口具有讓用戶和接口層間僅需一次操作,無須屢次往返的優點。
3) 松耦合性:SOA結構中不同接口間要維持松耦合聯系,既維持互相孤立又沒有依附的關系。
4) 位置透明性:引用者能夠使用SOA架構為其提供的不同位置的一切接口,即應用者只要明確想調用的服務,而不要明確被調用服務的具體物理地點。
5) 協議無關性:使用不同的協議來調用系統對外提供的服務,即服務調用不因協議不同而受影響。早期大多數的信息化系統在內部使用硬連接,該方式無法迅速適應新技術的更新變化。對于SOA來說,其能夠對企業的舊有資源進行合理利用,大大降低了運營成本,使資源利用率得到有效提升,可以針對業務流程靈活定制服務,使用服務來改善客戶服務,而不考慮底層IT基礎架構的復雜性;可以迅速創建新的業務流程和復雜的應用程序,以適應市場變化;所以設計本著為解決軟件復用,并讓系統變得更有彈性,以便更靈活、更快地響應不斷改變的企業業務需求。文章利用JAVA語言開發,采用B/S模式,基于SOA架構,應用ESB技術開發這個項目,通過建立基礎項目,建設管理數據庫,將網絡技術、信息技術引入項目建設管理流程中,加強改進各管理者與決策者之間信息傳輸、溝通的方式,實現項目資源信息分享。
系統可以分為四層:應用層為前臺主要實現模塊,包括項目前期管理、項目工程管理、工程進行統計和建設市場管理等功能模塊。基礎服務層指的是系統自有的服務,它是由ETL、權限管理、規則引擎和日志等功能服務組成的。數據服務層提供系統數據應用服務,主要是對工程項目前期數據進行利用。IT支持服務層提供基礎部署支撐系統的基礎服務。
如圖2所示,文章基于SOA架構,應用ESB技術設計方式,完美地將各種服務有效地結合起來,為應用層提供有效的服務支撐。
2 系統數據庫設計
數據字典對系統中的相關信息進行了定義,在此基礎上采用數據倉庫技術結合ORCAL商務智能和報表服務功能對本系統使用的數據庫進行設計[3]。本系統的數據庫設計主要考慮以下內容:1) 提高系統基本數據記錄操作(增、刪、改、查等)的執行效率。2) 要使數據庫具備高可靠性,即為降低數據存儲不一致和存儲錯誤帶來的風險,必須保證在數據存儲時準確無誤,且存儲數據完整。3) 需要具備清晰和簡潔的結構,同時能夠適應后期信息化技術更新要求。4) 能夠滿足信息化系統的業務需求。
3 數據交互模塊設計
ESB[4](Enterprise Service Bus) ,即企業服務總線是在舊有中間件基礎上結合XML、Web服務等現有技術而產生的,推動了早期的軟件結構的改進,提供的解決措施也比舊有中間件技術更加節省成本;不受技術限制解決了不同技術業務應用間的技術壁壘;也不受服務器廠商的限制實現了不同品牌服務器間共同運轉;實現了不同業務服務間信息交互與融合。同時在功能方面,ESB采用分布式的運行處理方式和事件驅動及基于文檔的管理模式,支持建立在內容上的篩選和路由;同時具有對龐雜數據的傳遞能力,并對外提供眾多規范接口。
在本系統中企業服務總線(ESB) 的功能結構為:
1) 企業服務總線(ESB) 提供開放且規范的信息傳輸方式,該方式使用基于規范的通用接口和適配器,來實現系統中自帶的復雜服務和不同業務應用服務組件間的關聯互動,實現公司不同環境的應用集成需求。
2) 實現在不更改當前運行環境底層架構的前提下,使不同業務應用技術間互相聯系。隨著ESB技術推廣,在最小的代碼變更前提下,用緊密的且非占用式的方法讓公司已經擁有的業務應用系統應用最新服務接口,同時在應用系統部署環境上支持現行所有標準。
3) ESB在不同應用服務間進行業務條件轉換和數據類型轉換中擔任緩沖器的角色,并與服務條件互相區分,使差異的業務應用能夠一同調用相同接口,不用在應用或業務數據出現改變時進行服務代碼變更。
4 基礎服務模塊設計
系統對數據交互模塊進行規劃設計后,對基礎服務模塊進行規劃設計。這樣做的好處就是可以在項目后期降低技術研發與項目運行維護的工作量。系統的基礎服務包括:權限管理服務、ETL服務、規則引擎服務和日志服務等,這里僅對權限管理服務、ETL 服務設計和規則引擎服務設計進行分析。
1) 權限管理服務設計
對使用者能否訪問某個資產進行管理賦權。軟件權限約束使用的是指傳統的權限約束,通過統一的權限管理服務使得使用者、角色、權限有機結合,使權限管理更加規范,解決傳統權限管理設置復雜、工作量大的問題。
2) ETL[5]服務設計
由于系統中數據分散在各處,在進行數據解析時需要對散落在各處的數據進行抓取轉換,才能進行數據分析處理,而ETL技術恰恰能夠完美實現以上功能。ETL是通過整理分散在系統各地且不易利用的數據,使其變成具備清晰規則且易于利用的集的數據。系統還基于報表解析軟件、數據分析軟件和多維解析軟件等進行更加深層次的數據解析利用。
3) 規則引擎服務設計
為了實現項目的可持續性擴展和流程管理的自動化,使使用者在無須研發工程師介入的情況下能直接利用業務應用軟件中的規定,文章引入規則引擎進行項目設計。
規則引擎指的是將組件直接嵌入軟件系統程序中,它將業務上的決定從軟件系統代碼中剝離,同時利用事先規定的定義規范對業務上決定進行編碼。接收輸入的業務應用數據對業務應用規范進行解釋,同時依據業務應用規范給出業務上決定。應用規則引擎可以采用縮減實現業務條件控件復雜程度來降低業務系統程序的拓展性和運維成本,提升復雜代碼的可維護性,處理業務邏輯集成問題。
5 應用服務模塊設計
在對系統基礎服務模塊進行規劃設計后,對應用服務模塊進行了規劃設計,文章可以在項目后期降低技術研發與項目運行維護的工作量。系統中的應用服務模塊有基礎數據模塊和特殊數據模塊兩種。系統的基礎數據模塊主要維護簡單業務信息,如用戶基本信息、配置權限信息、組織結構信息、配置流程信息等信息。這些業務信息絕大部分是對單業務表的增、刪、修、查操作。特殊數據模塊是基于基礎數據模塊上進行設計的,是由一些基礎數據模塊中的簡單業務信息功能拼接而成的。組合后的業務是采用同步或異步的方式對多業務表進行操作。
6 檔案管理模塊設計
在工程前期的檔案管理模塊設計中主要使用是管理功能。首先,需要定義該功能模塊包含哪些內容,要實現該部分功能需要如何進行劃分。因此采用繪制管理功能層次結構圖的方式進行功能界定,用該方法可以清晰地展示各功能類直接的關系,細致到劃分的包、類、方法和返回值。同時采用表格的方式對各模塊設計服務進行設計。其次,對頁面上的字段進行輸入輸出設計,輸入/輸出信息是使用者直接在界面上輸入數據,輸入/輸出的操作需符合使用者操作習慣,方便使用者操作,使目標系統易于為使用者所接受。為使用者提供易讀易懂的信息形態,能夠為使用者建立創造的工作環境。
進行輸入/輸出設計時需要按照以下基本要求執行:1) 檢驗輸入數據信息,確保輸入數據是合法、有效的;2) 輸入數據時,可以預先提供缺省值,也可以使用任何格式;3) 確保是簡單輸入操作,并保證輸入格式簡潔;4) 要合理組合多個輸入項,并顯示輸入狀態信息;5) 在用互相流出/傳入方式時,界面上必須有數據選擇項的種類和取值區間以及數據輸入的提醒信息。在流入數據的期間及結束流入時,也要在界面上明確提示狀態信息;6) 給所有的輸出加注解,并設計輸出報表格式;7) 所有道路根據國家規范命名。
7 結束語
該系統可以滿足公路分局、項目中心、三明市公路局三方通過管理信息系統平臺進行及時的業務溝通和道路項目管理的功能。設計實現系統功能架構和總體架構,特點是在數據交互模塊上進行詳細的分析設計。在數據交互模塊分析設計過程中使用ESB 技術使其與SOA架構更有效地貼合,簡化了系統數據交互的開發。通過對基礎服務模塊的設計除了實現靈活提供服務的功能外,也具備了較強的可擴展性。該系統研究并實現了一個簡單的工作流引擎,該引擎能完成系統中諸如市局批復變更流程等基礎的工作流程功能,同時在設計上預留了擴展接口,提高了軟件的可擴展性,規劃集成底層數據級權限約束功能并對軟件權限約束進行建設,弱化了權限管理模塊與數據之間的關聯,提高了軟件的可擴展性。該系統通過對應用服務模塊和基礎服務模塊的區分,導致數據、操作與業務三者分離,降低了各模塊間的關聯度。