賈鳴華, 莊建軍, 胡 凱
(南京大學a.電子科學與工程學院;b.國有資產管理處,南京210023)
隨著高校信息化建設的推進,提高學校資產的使用率,實現科學、實時、穩(wěn)健的動態(tài)管理,保護固定資產的完整性,成為當前高校資產管理的核心。其中電子類學科所用器材數量龐大,種類繁多,涉及眾多的實驗板卡和芯片耗材等,對管理系統(tǒng)的安全性、靈活性和穩(wěn)定性提出了更高的需求。為此很多學者進行了卓有成效的研究[1-4],實現的系統(tǒng)提供了資產的存儲、查詢、統(tǒng)計和分析等基本功能,并有一定的商業(yè)化推廣。但是綜合來看,高校資產管理系統(tǒng)仍存在一些不足。①資源共享難以真正解決,現有的商業(yè)系統(tǒng)通用性太強,無法解決個性化需求;②電子類器材繁雜,資產管理業(yè)務繁雜,系統(tǒng)對資產管理的重要結點,比如盤點、報表等支持不足;③ 當前移動互聯網的環(huán)境,對移動端資產管理系統(tǒng)提出了新需求。因此需要引入新的技術手段,進一步加強學校資產尤其是電子類資產管理的“網絡化、規(guī)范化、信息化”。依托學?,F有的資源,采用流行的 JEE平臺、優(yōu)化的 MVC架構、Spring和Struts2開源框架以及MySQL數據庫技術,結合RFID技術構建成熟的線下盤點體系,開發(fā)了一套輕量級的基于B/S模式的電子類專用資產管理系統(tǒng)。
(1)JEE平臺。JEE是應用Java開發(fā)服務端應用的一種工業(yè)標準,其目標是消除C/S架構的弊端,迎合B/S架構的趨勢,為應用Java開發(fā)企業(yè)級應用提供一個體系結構中立的、安全的、多用戶的和基于規(guī)范的平臺,可用來實現企業(yè)級的面向服務體系結構[5]。其基本思想是:容器+組件。JEE從底層操作系統(tǒng)至上層用戶接口完全開源,這也使得JEE平臺擁有越來越強大的開發(fā)者隊伍。隨著應用與用戶的日漸增多,JEE必定會更加成熟與穩(wěn)定。
(2)優(yōu)化的MVC架構。MVC是一種軟件體系結構,把系統(tǒng)分為3個基本組分,即模型(Model)、視圖(View)和控件(Controller)。MVC分層達到了業(yè)務和顯示剝離,使多個視圖能共享一個模型[6],無論何時通過控件或者任何其余方式改變了模型數據,模型都會將數據的變化通知相應的全部視圖,導致用戶界面更新。這實際上是一種模型變化-傳播機制[7]。
目前在很多B/S模式的Web應用中,瀏覽器直接經過JSP頁面與用戶交互,響應用戶請求。盡管很直觀,然而管理系統(tǒng)操作的數據量往往是很龐大的,考慮到以后的擴展,JSP頁面會變得冗雜不堪,Web服務器負荷過大。為此,在頂層和中間層采取M(JavaBean)V(JSP)C(Servlet)架構。這樣就很好地達成了表示層、邏輯層與數據層分離,提高了內聚性,降低了組件間耦合度,使得應用可維護,高可擴展。
(3)Spring開源框架。Spring框架是一個輕量級的企業(yè)級開發(fā)一站式解決方案。Spring框架主要提供了控制反轉容器、面向切面編程、數據訪問、Web開發(fā)、消息、測試等支持,為企業(yè)級開發(fā)提供了豐富的功能。就中心來說,Spring是一個控制反轉容器,提供一種非侵入式的編程方式,其目標是使JEE易用,比如,通過切面和模板減少樣板式代碼[8];內建針對分布式事務處理和單個JDBC數據源的一般化策略;基于切面和慣例進行聲明式編程。
(4)MySQL數據庫。MySQL已經成為最流行的開源數據庫。其由于卓越的運行速度、易用性、標準語言支持、高并發(fā)、安全性、可用性和低成本,被許多中小規(guī)模企業(yè)選作數據存儲管理的解決方案。它支持許多優(yōu)秀數據庫所擁有的特性,如存儲過程、觸發(fā)器和視圖等[9]。如今的MySQL絲毫不亞于其他大型數據庫。
(5)RFID。RFID是一種非接觸的自動辨識技術,可同時辨認多個高速移動目標,操作方便快捷。使用RFID,利用射頻信號對目標對象進行高效自動辨識[10]并獲取相關數據,辨識無須人工干預。隨著技術可靠性提高,RFID將給新零售、物流供應鏈管理、公共安全信息管理等領域帶來革命性變化[11]。基本的RFID系統(tǒng)包括電子標簽、讀寫器和應用系統(tǒng)三部分[12]。
電子類資產管理系統(tǒng)主要分為Web端管理和手持終端清點程序2個部分。Web端集成了面向管理員的系統(tǒng)管理和資產管理模塊以及面向普通用戶查詢報表模塊;手持終端主要用于實時盤點、清查和統(tǒng)計。
系統(tǒng)功能結構圖如圖1所示。
圖1 系統(tǒng)功能結構圖
系統(tǒng)功能設計:
(1)系統(tǒng)管理。主要完成系統(tǒng)的用戶信息管理和相應的權限管理,包括管理員和普通師生用戶。具體操作有登錄、增刪管理員、增刪普通用戶、基于角色的權限控制。登錄時,采用南京大學現有的身份認證系統(tǒng),直接提取學校后臺數據庫中的個人身份信息,匹配提交的用戶名和密碼,并依據身份信息進行相應的權限設置。管理員對系統(tǒng)中所有數據擁有增、刪、改、查權限。普通用戶只擁有查詢資產信息和借還權限。
(2)資產管理。主要用于資產使用信息的管理,如入庫、借還、轉移、維修、報廢等,以及基礎資產數據的管理,包括但不限于資產標識、資產類別、資產名稱、資產型號、資產數目、資產單位、資產利用情況、生產廠商、購置日期、采購人、登記人等。普通用戶可以在此模塊預約借出和歸還資產;管理員能夠在此模塊修改資產信息。
(3)查詢報表。普通用戶和管理員均可使用該模塊進行現有資產、增減、借還、資產維修等查詢。
(4)手持終端。有賬戶、資產管理和系統(tǒng)配置3個模塊,其中賬戶和資產管理與Web端相同,系統(tǒng)設置模塊主要設置數據庫地址、速率、頻段等終端參數。
系統(tǒng)架構設計參照JEE 3層設計模型,自頂向下分為表示層(Web)、業(yè)務邏輯層(Service)、數據訪問層(DAO)。使得代碼高可重用,高可移植,降低了系統(tǒng)的耦合度,提高了內聚性,實現了資產的入庫、清點及跟蹤的簡潔操作。
系統(tǒng)邏輯架構圖如圖所示。
圖2 系統(tǒng)邏輯架構圖
系統(tǒng)架構設計:
(1)表示層。表示層為用戶提供交互式操作界面[13]。接受用戶的請求,通過JSP頁面顯示相關數據對用戶界面進行同步更新,然而表示層不能進行實際的業(yè)務處理,它只調用中間層的方法,再由中間層決定是否調用底層。表示層的主要作用有兩個,①提供友好的UI,② 調度用戶與系統(tǒng)的交互。
(2)業(yè)務邏輯層。業(yè)務邏輯層主要任務是響應來自表示層的請求,進行復雜的邏輯運算,訪問數據訪問層,生成結果并返回給上層。以 DAO(Data Access Object)為基礎,由Service實現類構成,利用Spring框架對組件進行統(tǒng)一配置和管理,可高效地處理大量并發(fā)訪問,及時快速響應,同時簡化了業(yè)務實體組件的詳細配置,從而實現松散耦合。
(3)數據訪問層。數據訪問層提供的職責主要有:CRUD服務、查詢服務、事務管理、并發(fā)處理和數據上下文。其運用SpringJDBC框架,每一個Service業(yè)務模塊都對應幾個具體DAO類。DAO主要用來封裝數據庫操作邏輯,即實現具體的 CRUD操作。通過SpringJDBC框架,能完成與具體數據庫無關的操作和大數據粒度封裝,從而實現數據源中立的數據訪問。
采取Struts2實現MVC,操縱JSP構建index.js頁面,引入ExtJS的樣式文件,基礎庫文件和核心庫文件。用戶的請求通過ExtJS發(fā)送到控件,然后利用服務器返回的數據更新界面。系統(tǒng)進行授權操作時,動態(tài)加載PrivTree.js,并向服務器提交用戶ID,服務器用JSON格式返回信息,并用樹的形式顯示[14]。
業(yè)務邏輯層是中間件,負責處理DAO類,并為Action提供具體業(yè)務,其數據來源于數據訪問層的POJO和表示層的FormBean。業(yè)務邏輯由Service實現類構成,由Spring配置與注入。
數據訪問層的實現主要是SpringJDBC框架的應用。首先編寫POJO,依據POJO編寫配置文件,生成class文件,最后編寫DAO類,與數據庫進行CRUD操作,并對其進行封裝。
(1)SpringJDBC數據源配置。配置文件主要對數據庫連接的各種參數進行配置,以消除樣板式代碼,一個可能的XML配置文件如下(省略頂部模式聲明):
(2)創(chuàng)建DAO類。編寫與數據庫對應的POJO類和相應的接口,利用 IntelliJ IDEA持久化為AssetsTypeDaoImpl. java, AssetsStatusDaoImpl. java,AssetsEntryDaoImpl.java,AssetsDaoImpl.java 等對象,然后在配置文件中通過Spring容器進行依賴注入。以AssetsTypeDaoImpl.java 為例:
然后,可以使用Spring的JdbcTemplate模板來實現AssetsTypeDaoImpl類的操縱數據的方法,例如:
手持終端主要用于線下實時盤點,可以采用摩托羅拉公司的DS4208或MC3190作為本系統(tǒng)的移動數據終端。該設備幾乎可掃描所有介質上的條形碼,支持全方位掃描,易于遷移至新主機,很容易與無線局域網同步,滿足高校資產管理的需求。
資產盤點時,使用終端自帶數據庫進行網絡比對。接入校園網后,將服務器數據庫同步至本地[15],然后將掃描數據直接與本地對比,發(fā)現不一致則進行報警。資產入庫,由資產管理中心發(fā)卡,為電子標簽寫入含有資產基礎信息的數據,并設置鎖定密碼避免竄改,同時卡片連接后臺,完成入庫和審核操作[16]。資產報廢,用終端掃描標簽標記報廢,或者依據資產預設使用年限自動標記報廢,報廢信息實時同步至遠程服務器。
高校電子類資產數量大,品種多,需要搭建網絡化管理系統(tǒng),以實現個性化、信息化、科學化管理[17]。文中設計了一種基于JEE和RFID的B/S模式資產管理系統(tǒng),主要圍繞著Spring和Struts2兩大框架開發(fā),采用優(yōu)化的MVC架構,增強了高內聚松耦合特性,解決了代碼冗長和系統(tǒng)在高并發(fā)環(huán)境下可能出現的問題,并通過手持終端解決了傳統(tǒng)線下盤點效率低下等問題,經部署和內部測試,系統(tǒng)運行穩(wěn)定可靠,極大地提高了資產管理的效率和準確性。但系統(tǒng)仍有很大的改進空間,如射頻信號的場地測試、功能和界面的用戶自定制、網絡安全等,需要在今后的使用中不斷完善。