劉超慧, 張 森, 聶 榮
(鄭州航空工業管理學院 計算機科學與應用系,河南 鄭州 450015)
?
·儀器設備供應與管理·
基于RFID和開源框架的資產管理系統設計與實現
劉超慧, 張 森, 聶 榮
(鄭州航空工業管理學院 計算機科學與應用系,河南 鄭州 450015)

根據資產管理信息化建設的需求和實踐,結合開源框架和RFID技術的優點,提出了一種基于RFID和SSH架構的開發資產管理系統的方法。利用ExtJS和HighCharts框架的優點,構建了多層Web應用框架ESSHR。介紹了資產管理的業務流程,闡述了資產管理系統的功能模塊,并對技術實現過程進行了詳細說明。實踐表明該資產管理系統能較大程度上提高資產的管理效率,而且系統具有很好的穩定性和可移植性,具有較好的應用與推廣價值。
資產管理; RFID; SSH架構; HighCharts
隨著信息技術的發展,如何利用信息技術提高固定資產的利用率,保障固定資產的完整性,成為當前高校資產管理的重點。為此很多學者進行了富有成效的研究[1-4],開發出來的系統提供了資產的存儲、查詢、統計和分析等功能。但是由于資產管理業務復雜,資產管理中的清點環節仍然采取手工方式、效率低下,對貴重設備無法提供跟蹤功能、流失嚴重,傳統系統開發維護成本較高,系統安全性差。
文章利用SSH等開源框架的優點,結合RFID(Radio Frequency Identification)技術,構建了一種新的Web應用框架ESSHR框架,在此基礎上開發了固定資產管理系統,實現了視圖層、業務邏輯層和數據持久層的分離,提高了代碼的可重用性和可移植性,降低了系統的耦合性,克服了傳統資產管理系統開發面臨的問題,實現了資產的入庫、盤點及跟蹤的簡捷操作。
1.1 RFID技術
RFID射頻技術,又稱為電子標簽無線射頻識別,可通過無線電訊號識別特定目標,并讀取相關數據。基本的RFID系統包括電子標簽(Tag)、讀寫器(Reader)和天線(Antenna)三部分[5]。其中電子標簽又稱為射頻標簽,由耦合元件(天線)及芯片組成,是射頻識別系統的數據載體,每個標簽具有唯一電子編碼;讀寫器是讀寫標簽信息的設備,可無接觸地讀取并識別電子標簽中所保存的電子數據,以達到自動識別物體的目的;天線是一種以電磁波形式把無線電收發機的射頻信號接收或輻射出去的裝置,用在標簽和讀寫器間傳遞射頻信號。讀寫器通過天線發送一定頻率的射頻信號,當標簽進入天線輻射場時,產生感應電流從而獲得能量,發送自身編碼信息,讀寫器讀取并解碼后發送至服務器進行處理[6]。
1.2 開源框架技術
(1) ExtJS框架。一個用JavaScript編寫的,用于創建前端用戶界面的UI框架。與后臺語言無關,并提供了豐富的跨瀏覽器的UI組件,比如ExtJS的樹形組件功能強大而且美觀實用, 實現了拖動、排序、異步加載等功能。采用JSON/XML為交換格式,減輕了服務器端的負荷,提高了客戶端的響應速度[7]。
(2) SSH框架。SSH是Struts、Spring和Hibernate輕量級框架技術的組合,它方便開發人員更注重業務邏輯的設計,提高了系統的開發效率[8]。
Struts是Apache組織的一個開源項目,是基于MVC模式的框架,用于實現Web項目中的表示層,主要采用Servlet和JSP技術實現,將JSP、Servlet、自定義標簽和信息資源整合到一起,開發人員只需開發相應的組件和類,就可使用Struts進行項目開發。
Spring是一個以依賴注入原則和面向切面編程思想(AOP)為基礎的輕量級框架。提供了Bean的配置基礎、JDBC的提取框架、AOP的支持和抽象事物支持等,是一個服務于所有層面的應用程序框架,實現了優雅的MVC,降低了組建之間的耦合。
Hibernate是一個開源的對象/關系映射(ORM)框架,該框架通過對JDBC API進行輕量級的對象封裝,使開發人員能夠以面向對象的思維來操縱數據庫。它主要封裝了通過JDBC訪問數據庫的操作和向上層應用提供訪問面向對象數據訪問的API。
(3) Highcharts。是一個用Java腳本寫的矢量繪圖庫,繪圖機制采用SVG與VML實現,支持IE、Firefox等主流瀏覽器及iPhone手機或平板電腦桌面顯示[8]。可以制作折線圖、餅圖、柱狀圖和時速表等多樣圖表類型,并可把多類型圖表集成在一個圖表上顯示,具有提示功能、放大功能、兼容性、跨語言易用性等特征。
1.3 ESSHR架構
在SSH架構的基礎上,為克服SSH對AJAX支持不足和Web級圖表創建的缺點,結合RFID技術和ExtJS及HighCharts開源框架的優點,并根據資產管理系統的實際需要,設計了ESSHR架構模型。該模型在結構上采用分層原理,從整體上分為六層,見圖1。

圖1 ESSHR框架結構圖
(1) View層。用JSP、ExtJS框架技術實現外觀設計,通過HighCharts完成Web級圖標的繪制,把用戶提交的數據轉給控制器進行處理。
(2) Controller層。負責控制業務邏輯層和表現層的交互,并以JSON為數據格式。根據用戶的請求調用Action,獲取用戶的請求參數,調用業務邏輯層,將返回的數據寫入Response,進而更新表現層,由Struts框架實現。
(3) BO層。負責業務邏輯處理操作,調用DAO 層的組件進行具體操作,并返回結果供其上層組件使用[9-10]。BO層位于Web的業務邏輯層,在該層中引入Spring,利用IoC容器對業務類進行裝配和管理,使類與類之間的耦合度降到最低,利用AOP框架對業務層中的事務進行聲明式管理。
(4) DAO層。負責與持久化對象交互,使用Hibernate框架訪問數據庫,并封裝數據的增、刪、查和改等操作,完成對數據的訪問操作,與數據庫的交互操作,實現持久化操作[11]。
(5) PO層。通過實體關系映射工具將關系型數據庫的數據映射成對象,PO是一個符合JavaBean規范的Java對象,包含了符合統一標準的屬性和方法,其屬性只可以通過自身的get和set方法訪問,這樣對外隱藏了內部實現的細節,很方便地實現以面向對象方式操作數據庫。
(6) WebService層。WebService是一種新型Web應用程序,具有自包含、自描述以及模塊化的特點。該層通過互聯網發布應用程序,供手持機端查找調用。在WebService體系結構中,使用WSDL來描述服務,使用UDDI來發布、查找服務,利用SOAP來執行服務調用,各模塊間及模塊內部消息以XML格式傳遞,由新一代的WebService引擎XFire框架實現[12-13]。
(7) HL層。硬件層主要由電子標簽、讀寫器和網絡設備組成,進行數據讀寫工作。在讀寫器中應用程序通過調用WebService同應用系統進行數據交換:一方面將標簽的ID送往應用系統,另一方面是將應用系統的信息寫入RFID標簽。
2.1 系統需求分析
高校資產種類繁多、業務復雜,因此構建資產管理系統應全面考慮[14-15]。①系統功能應該包含資產管理的所有業務活動,具體包括資產的“入庫、借出、使用、折舊、查詢和監控”等。②系統權限應清晰明確,對資產管理涉及的資產管理科、財務審計部門和院系部等不同部門能進行不同的權限分配。其中資產管理科負責固定資產臺賬和分類;財務審計部門對固定資產的管理起審核和監督作用;院系部是資產使用部門,負責本單位資產業務的申請提交及管理。同時對同一部門的不同人員也可以進行不同的權限劃分。③系統應具備盤點、監控、數據輸出及打印功能。信息系統具備對涉密及貴重設備的監控防流失功能,并能夠進行數據輸出和打印,以保證電子賬目、賬務及帳卡的一致性。④系統應具備安全措施。應詳細記錄對系統各環節的操作,能對系統數據進行備份等操作。
2.2 系統功能分析
系統圍繞固定資產的“進、出、用、控”等環節進行科學管理,提供對資產全生命周期的跟蹤管理[16],為了系統的可擴展性和管理權限劃分,采用模塊化設計思想,每個模塊包括若干功能,其功能模塊圖見圖2。

圖2 資產管理系統功能模塊圖
系統劃分為計算機端子系統和手持機端子系統,計算機端子系統包括用戶賬戶、數據備份、資產管理等10個功能模塊。其中用戶賬戶、角色信息、組織結構三個模塊是對用戶信息進行管理,可以先建立組織機構,然后在該機構內創建用戶,根據不同的工作職責賦予不同的權限,并可以定制角色;數據備份、系統日志和通知公告三個模塊提供系統安全功能,可以發布新聞公告,并記錄對系統的各類操作、對數據庫信息進行備份等操作。資產管理、檔案資料、實驗耗材及統計報表四個模塊提供對各類資產的有效管理,包括常見的入庫、出庫及重點設備的監控報警功能,可根據條件查詢、打印及導出報表。
手持機端子系統有用戶賬戶、檔案資料、資產管理和系統設置等四個模塊,其中用戶賬戶、檔案資料、資產管理三個模塊功能同計算機端子系統相同,而系統設置模塊主要是對連接數據庫地址、頻段和速率等RFID參數及盤點的相關信息進行設定。
根據資產管理系統的需求,系統選用Windows 2003 Server操作系統,利用MySQL5.1數據庫,選用Tomcat7.0服務器,在Eclipse開發環境中完成系統的實現。由于系統模塊較多,各模塊采用統一的架構方式,文中通過計算機端子系統中權限管理、統計報表模塊和手持機端子系統,介紹實現細節。
3.1 用戶權限功能
權限管理是系統重要的組成部分,涉及到所有功能模塊、權限、角色、部門和用戶的動態管理,對系統起到整體構架和引導作用。
(1) 表現層。利用Jsp技術構建index.js頁面,引入ExtJS的樣式文件resources/css/ext-all.css和基礎庫文件adapter/ext/ext-base.js及核心庫文件ext-all.js。用戶的請求通過ExtJSP發送到Countroller層,同時利用服務器返回的數據更新視圖。系統進行授權操作時,通過調用Ext.require(‘Common.PrivTree’,
function(){var entity = Ext.create(Common.PrivTree)
;} ),動態加載PrivTree.js,并向服務器提交該用戶ID,服務器以JSON格式返回信息,并以樹形式顯示。
(2) 業務邏輯層。添加權限的業務處理權限管理過程的業務邏輯,向上接受角色名稱、角色說明信息等表單數據,向下接受與傳遞數據持久層的數據,業務邏輯由Service實現類組成,并由Spring控制與注入[7]。授權模塊的注入方式如下:
@Resource(name ="privService")
public void setPrivService(PrivService
privService){this.privService= privService;}
用戶選中checkbox進行權限更改時,PrivAction調用邏輯層的grantPrivToUser函數,將用戶的ID與權限的ID進行關聯,并以json格式返回結果,改變checkbox的狀態。
(3) 數據持久層實現。用戶權限管理通過grantPrivDAOImpl類實現,該類繼承了HibernateDaoSupport,并依賴由Spring封裝的hibernateTemplate對象,hibernateTemplate依賴Hibernate的SessionFactory,由Spring容器生成,并通過@Resource(name="hibernateTemplate")注入到grantPrivDaoImpl中。
在用戶授權功能中,業務邏輯層會調用數據持久層的grantPrivToUser(int userId,int privId),這個函數在DaoImpl中實現方法如下:
Query query=session.createSQLQuery("insert into user_priv(userId,privId) values(?,?)");
query.setInteger(0, userId);
query.setInteger(1, privId);
return query.executeUpdate();
3.2 統計報表功能
統計報表功能由Highcharts實現,Highcharts運行需要在html文件的head區引入所使用的jquery. min. js和highcharts. js框架文件[17],js文件的引入方法如下:
在調用Highcharts組件前,需在頁面中添加一個div元素,作為放置Highcharts圖表的容器,并將其ID與調用中的renderTo參數綁定,方法如下:
Highcharts組件的調用方法如下:
function createPieChart(cont,title,serName,data)
{data=Ext. decode(data);
chart=new Highcharts. Chart({
chart: { renderTo: hcCont},
title: {text: hc_title },
plotOptions: { pie: { }},series: [{}]});
設置Highcharts的數據源繪制圖表的方法為:
public static List excuteQueryByID(String id) {Connection con = null;
PreparedStatement ps = null;
ResultSet rset = null;
List list = new List
();
con = HibernateSessionFactory. getSession(). connection();}
設備清點和報警功能通過RFID手持機實現。RFID手持機是集RFID、GPS、GPRS技術于一體的手持終端設備,是移動的RFID閱讀器。本系統的RFID電子標簽頻率為2.45 GHz,用ISO標準協議進行通信,手持機端子系統由Java開發、運行在WinCE5.0系統上。其工作過程是通過無線路由方式連接到校園網,手持機讀取RFID標簽信息后,使用WebService方式與中心服務器交互數據信息。
WebService服務器端通過Spring和Xfire實現,將服務的實現類配置到Spring封裝的Xfire的API中,通過配置applicationContext.xml和xfir-servlet. xml,由Xfire生成WSDL文件[8],資產清點類queryAssetsByID.java對應的WSDL文件如下:
……
WebService經由服務器發布后,應用系統就可以訪問這個服務了。在手持機應用程序中添加Web引用,可以調用WebService,調用方法如下:
String serviceURL="http://192.168.0.10/AssetsService";
String methodName="queryAssetsByID";
Assets assets=new Assets(new URL(serviceURL));
Object arguments=null;
Object result=assets.Invoke(methodName, arguments);
基于RFID和SSH框架的資產管理系統,結合傳統開源框架技術,建立了松散耦合的軟件框架ESSHR,解決了傳統Web架構的開發效率和訪問效率較低的問題,在視圖層引入新的ExtJS框架,實現了客戶端美觀大方設計,并解決了樹狀顯示、聯動查詢顯示等傳統視圖層設計的復雜度。借助Highcharts框架實現了Web級圖表的快速創建。利用RFID和WebService技術實現了利用手持機進行資產盤點和設備監控的功能,提高了資產的管理效率和準確性。實踐表明該種方法編程代碼簡捷,開發效率高,同時提高了系統的性能和可維護性。
[1] 王聲革,郭建宏.RFID技術在高校實驗設備資產管理中的應用[J].實驗技術與管理,2013 (1):218-221.
[2] 張建勇,胥 斌.基于SSH框架的固定資產管理系統研究與設計[J].山西煤炭干部學院學報,2013,26(1):112-114.
[3] 劉超慧,芮躍峰.基于卓越工程師培養的計算機實驗教學示范中心建設[J].電腦知識與技術, 2013(24):5478-5480.
[4] 李松濤,金 銳.RFID在實驗室資產管理中的應用探討[J].實驗室研究與探索,2013,30(3):182-185.
[5] 胡 瑩,唐文枝,基于RFID的高校資產管理系統應用分析[J].實驗技術與管理, 2013,30(11):126-129.
[6] 劉 銘.基于ZIGBEE和RFID技術的固定資產管理系統設計[J]. 制造業自動化, 2013, 35(1): 67-70.
[7] 李天鳴,何月順.基于ExtJS與SSH框架的權限管理研究[J].計算機應用與軟件,2011,8(5):165-168.
[8] 張 俐,張維璽.基于JavaEE的固定資產管理系統的設計與實現[J]. 計算機工程與設計,2009,30(16):3797-3800.
[9] 閆宏印,張衛爭,劉超慧.開源框架下Web應用分層的設計與實現[J].計算機工程與設計,2008,29(23):6023-6025.
[10] 張建軍,劉 虎.基于SSH與Highcharts整合架構的Web應用研究[J].計算機技術與發展,2013,23(9):245-249.
[11] 霍迎秋,唐晶磊,尹秀珍.基于SSH架構的農產品信息交換平臺[J].實驗室研究與探索, 2013, 32(5): 63-66.
[12] 王建文,韓李鵬.基于多層架構的油田物資管理系統設計與實現[J].計算機工程與設計,2011(1):162-165.
[13] 蔡 苗,饒 豐,郭 麗.Webservice在煙草倉儲物流系統中的應用[J].制造業自動化, 2013, 35(16): 118-120.
[14] 劉劍鋒,陳志泊.基于SOA的校園網運維平臺[J].計算機工程與設計, 2011, 32(2): 543-548.
[15] 覃 奕.基于RFID技術的電力資產管理系統的設計與實現[J].廣西科學院學報, 2012, 28(1): 80-82.
[16] 郭海平,倪振文.無線射頻識別在高校儀器設備管理中的應用[J]. 實驗室研究與探索, 2010,29(2):171-175.
[17] 崔 麗,周相兵.一種語義Web服務開發框架整合與應用[J].科學技術與工程,2012,25(12):6190-6194.
Research and Implementation of Assets Management System Based on RFID and Open-source Frameworks
LIUChao-hui,ZHANGSen,NIERong
(Department of Computer Science & Application, Zhengzhou Institute of Aeronautical Industry Management,Zhengzhou 450015, China)
Based on the practice and requirement of the fixed assets management, combined with the advantages of the open-source frameworks and RFID technology, a asset management system development method is proposed. A new web application architecture ESSHR based on ExtJS and HigCharts is designed. The fixed assets management based on the architecture is given in detail. At the same time, the business and function description of system are also given. The application result indicates that the system not only has high convenience and efficiency, but also has the outstanding portability, extension and maintenance. So it has a wide application prospect and popularization value.
assets management; RFID; SSH framework; HighCharts
2014-07-26
國家自然科學基金(41171341);河南省科技攻關項目(132102110099);河南省教育廳科技研究重點項目(13B520349);鄭州航院青年基金項目(2015103001);鄭州航院教研項目(zhjy15-12)
劉超慧(1981-),男,河南項城人,碩士,實驗師,計算機技術實驗中心副主任,研究方向:數據挖掘與計算機應用。
Tel.:15036131358;E-mail:liuchaohui406@163.com
TP 311.12;G 482.0
A
1006-7167(2015)05-0252-04