【摘 要】軟件架構設計是降低成本、改進質量、按時和按需交付產品的關鍵因素;良好的軟件架構能夠服務于整個開發(fā)過程,有效地降低項目風險,確保項目能夠朝著健康的方向發(fā)展。
本文結合本人的實際工作經歷,簡要地討論了開發(fā)系統(tǒng)時所選用的軟件架構及其應用。
【關鍵詞】軟件架構 統(tǒng)計報表 優(yōu)化設計 樹人論文刊發(fā)
溫州市統(tǒng)計局原來是依賴手工將報表數據層層上報,隨著我國國民經濟的快速發(fā)展和計算機技術的提高,傳統(tǒng)的手工報表方式和管理方法已不能滿足快速、高效地掌握資訊的要求。對一套方便、可靠、安全的數據調查與報表管理系統(tǒng)的需求迫在眉睫。溫州市統(tǒng)計報表網上直報系統(tǒng)總體架構規(guī)劃由網絡系統(tǒng)、應用系統(tǒng)和運行維護系統(tǒng)三部分組成。
網絡系統(tǒng)主要由硬件網絡平臺組成,是應用系統(tǒng)和運行維護系統(tǒng)運行的基礎平臺,其主要作用是提供系統(tǒng)運行的物理環(huán)境,包括運行網絡、數據安全、通訊保障等環(huán)境。
應用系統(tǒng)主要由在線報表管理系統(tǒng)軟件組成,其主要作用是提供數據采集、處理和利用的應用服務,包括報表數據的錄入上報、審核、接收、查詢、統(tǒng)計、匯總等功能。
運行維護系統(tǒng)主要提供報表管理系統(tǒng)基礎數據的維護和系統(tǒng)運行的日常維護功能。
功能性需求包括:用戶角色權限管理,報表設計維護管理,報表錄入及上報管理,報表查詢匯總管理,數據導入導出管理。按用戶劃分,分為系統(tǒng)管理員、統(tǒng)計部門管理員和企業(yè)用戶三類。
非功能性需求主要考慮了以下因素。
(1)可擴充性、可維護性。可擴充性包括了兩個方面:一方面指軟件模塊的可擴充,能夠很方便地擴充新的軟件功能,比如企業(yè)臺帳系統(tǒng),如果有必要,要求能夠很方便地作出擴展;另一方面指系統(tǒng)本身的可擴充性,能夠支持企業(yè)用戶大規(guī)模、高并發(fā)的訪問,支持集群等。可維護性則要求能夠根據統(tǒng)計部門需求變化進行快速地升級和改進。
(2)訪問方式。通過網絡遠程訪問,訪問時能夠跨廣域網,因為直報系統(tǒng)報表填報的對象是廣大的企業(yè)用戶,必須支持Internet訪問。
(3)組件復用。主要指的是服務器端的組件復用。服務器端組件能夠支持遠程客戶端訪問。為此,需要采用中間件技術來達到組件復用的目標。
(4)安全性。支持良好的用戶、權限管理,以及支持常見認證體系(如PKI)、SSL加密傳輸等。
(5)用戶界面及數據接口。基于瀏覽器的瘦客戶端,能夠支持不同方式采集的不同格式的數據,支持不同風格的用戶界面。
基于上述考慮,選擇了多層組合架構,層與層之間松散耦合,各層分工明確,從上到下各層依次為表現層、業(yè)務邏輯層、持久化層和數據庫層。采用Spring來搭建整個框架的基礎,使用了持久化工具Hibernate來完成持久化操作,表現層通過Struts框架來實現的。
Spring的基礎是一個輕量級的容器,即實現了依賴注入(DI)和控制反轉模式(IoC),在這個輕量級的容器中已經架設了與典型應用相關的大部分基礎框架結構,我們的統(tǒng)計報表網上直報系統(tǒng)就是在這個基礎上,根據系統(tǒng)的需要組裝相關的應用到此框架上,從而完成應用程序的開發(fā),實現一站式框架整合方案。Spring的核心是Bean工廠,在Bean工廠的基礎上,Spring實現了面向方面編程(AOP,Aspect-Oriented Programming),提供了非管理環(huán)境下申明事務、安全等服務;從而保障了框架整體協調工作和框架的安全性。
在設計的架構中由Spring構建的業(yè)務層實現軟件系統(tǒng)需要完成的所有業(yè)務功能。如:管理事務;業(yè)務服務管理;處理應用程序的業(yè)務邏輯和業(yè)務驗證;預留和其他層交互的接口;管理業(yè)務層對象之間的依賴;增加在表示層和持久層之間的靈活性,使它們互不直接通訊;從表示層中得到上下文并將其提供給業(yè)務層,使業(yè)務層獲得業(yè)務服務;管理從業(yè)務邏輯到持久層的實現等等。這些是系統(tǒng)的核心功能。
Spring通過服務裝載器來與Struts協同工作,由Struts構建的表示層在其MVC的體系結構下主要完成以下功能:為用戶管理請求和響應;提供一個控制器代理調用業(yè)務邏輯和其他層處理;為顯示提供一個模型;執(zhí)行用戶接口驗證等等。系統(tǒng)的頁面展示功能主要由這一層來實現。
Spring通過數據訪問對象(DAO,Data Access Object)來與Hibernate協同工作,Hibernate框架提供了“對象-關系持久化”機制和查詢服務。Hibernate提供了建立數據源或數據連接池的功能,數據查詢語言HQL和其他Hibernate服務。Hibernate“對象-關系映射”框架提供對大多數主流SQL數據庫的支持,它們支持“父/子”關系、事務處理、繼承和多態(tài)。
在表示層、業(yè)務層和持久層之間,使用領域模型層來傳遞各層之間協作需要的數據對象。領域對象層由那些代表現實世界中的業(yè)務對象的對象組成,如:專業(yè)(specialty)、報表(Report)等。這個層讓我們從繁瑣的建立和維護匹配領域對象的數據傳輸對象工作中解脫出來。例如,Hibernate允許把報表制度的信息從數據庫讀進報表(Report)的對象,這樣可以在連接斷開的情況下把制度顯示到界面,供企業(yè)完成填報。在企業(yè)報表數據填報發(fā)送后,報表對象在連接恢復后被更新送回到持久層,并在數據庫里更新。這個模型使Java開發(fā)者以一種面向對象的風格和對象打交道,而不必考慮復雜的對象模型及關系模型之間的轉換問題。
通過Struts+Spring+Hibemat這個成熟的開源框架來實現統(tǒng)計報表網上直報系統(tǒng),有效地縮短了開發(fā)周期,簡化了程序代碼,提高了開發(fā)質量,使系統(tǒng)具有良好的交互性、較好的可擴展性和良好的可維護性。
在系統(tǒng)平臺配置上,服務器選用HP ML350,操作系統(tǒng)選用Red Hat Linux AS 4.0,數據庫選用Oarcle10g,web應用中間件選用Tomcats.5.5.2。其中WEB和應用服務器均放在防火墻內部,其中WEB應用服務器通過防火墻NAT技術與外部用戶進行交互,而數據庫服務器則與外部隔離;基層企業(yè)用戶通過互聯網訪問系統(tǒng)。
目前,溫州市的統(tǒng)計報表網上直報系統(tǒng)已經成功部署運行了。它的應用,減少了專業(yè)人員投入專業(yè)報表數據收集和整理的大量繁瑣、復雜的手工任務,極大地提高統(tǒng)計業(yè)務工作的效率,并實現統(tǒng)計資料的科學運用和管理。它改變了以往統(tǒng)計報表都是以物理表格形式的陳規(guī)。系統(tǒng)以定制的方式生成一張張電子表格,上報的表格數據經公式審核通過后,自動進入后臺數據庫存管,解決了以前統(tǒng)計數據信息集成能力不夠強、分類管理方法不夠科學的難題。獲取的統(tǒng)計數據資源可以利用相關的挖掘和分析工具進行再次開發(fā),形成更有價值的信息,為政府決策和公眾咨詢提供了更可靠的理論依據。這種面向廣大基層單位和公眾的數據采集平臺,還為統(tǒng)計分析方法與制度的改革提供了新的思路。從發(fā)展的眼光看,本系統(tǒng)還有待進一步提高和完善,比如拓展企業(yè)臺帳系統(tǒng),對統(tǒng)計數據進行主題性的開發(fā)利用等等。
論文指導 >
SCI期刊推薦 >
論文常見問題 >
SCI常見問題 >