国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于RFID和開源框架的資產(chǎn)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

2015-04-17 12:18:50劉超慧
實(shí)驗(yàn)室研究與探索 2015年5期
關(guān)鍵詞:手持機(jī)調(diào)用框架

劉超慧, 張 森, 聶 榮

(鄭州航空工業(yè)管理學(xué)院 計(jì)算機(jī)科學(xué)與應(yīng)用系,河南 鄭州 450015)

?

·儀器設(shè)備供應(yīng)與管理·

基于RFID和開源框架的資產(chǎn)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

劉超慧, 張 森, 聶 榮

(鄭州航空工業(yè)管理學(xué)院 計(jì)算機(jī)科學(xué)與應(yīng)用系,河南 鄭州 450015)

根據(jù)資產(chǎn)管理信息化建設(shè)的需求和實(shí)踐,結(jié)合開源框架和RFID技術(shù)的優(yōu)點(diǎn),提出了一種基于RFID和SSH架構(gòu)的開發(fā)資產(chǎn)管理系統(tǒng)的方法。利用ExtJS和HighCharts框架的優(yōu)點(diǎn),構(gòu)建了多層Web應(yīng)用框架ESSHR。介紹了資產(chǎn)管理的業(yè)務(wù)流程,闡述了資產(chǎn)管理系統(tǒng)的功能模塊,并對技術(shù)實(shí)現(xiàn)過程進(jìn)行了詳細(xì)說明。實(shí)踐表明該資產(chǎn)管理系統(tǒng)能較大程度上提高資產(chǎn)的管理效率,而且系統(tǒng)具有很好的穩(wěn)定性和可移植性,具有較好的應(yīng)用與推廣價(jià)值。

資產(chǎn)管理; RFID; SSH架構(gòu); HighCharts

0 引 言

隨著信息技術(shù)的發(fā)展,如何利用信息技術(shù)提高固定資產(chǎn)的利用率,保障固定資產(chǎn)的完整性,成為當(dāng)前高校資產(chǎn)管理的重點(diǎn)。為此很多學(xué)者進(jìn)行了富有成效的研究[1-4],開發(fā)出來的系統(tǒng)提供了資產(chǎn)的存儲(chǔ)、查詢、統(tǒng)計(jì)和分析等功能。但是由于資產(chǎn)管理業(yè)務(wù)復(fù)雜,資產(chǎn)管理中的清點(diǎn)環(huán)節(jié)仍然采取手工方式、效率低下,對貴重設(shè)備無法提供跟蹤功能、流失嚴(yán)重,傳統(tǒng)系統(tǒng)開發(fā)維護(hù)成本較高,系統(tǒng)安全性差。

文章利用SSH等開源框架的優(yōu)點(diǎn),結(jié)合RFID(Radio Frequency Identification)技術(shù),構(gòu)建了一種新的Web應(yīng)用框架ESSHR框架,在此基礎(chǔ)上開發(fā)了固定資產(chǎn)管理系統(tǒng),實(shí)現(xiàn)了視圖層、業(yè)務(wù)邏輯層和數(shù)據(jù)持久層的分離,提高了代碼的可重用性和可移植性,降低了系統(tǒng)的耦合性,克服了傳統(tǒng)資產(chǎn)管理系統(tǒng)開發(fā)面臨的問題,實(shí)現(xiàn)了資產(chǎn)的入庫、盤點(diǎn)及跟蹤的簡捷操作。

1 技術(shù)介紹

1.1 RFID技術(shù)

RFID射頻技術(shù),又稱為電子標(biāo)簽無線射頻識(shí)別,可通過無線電訊號(hào)識(shí)別特定目標(biāo),并讀取相關(guān)數(shù)據(jù)。基本的RFID系統(tǒng)包括電子標(biāo)簽(Tag)、讀寫器(Reader)和天線(Antenna)三部分[5]。其中電子標(biāo)簽又稱為射頻標(biāo)簽,由耦合元件(天線)及芯片組成,是射頻識(shí)別系統(tǒng)的數(shù)據(jù)載體,每個(gè)標(biāo)簽具有唯一電子編碼;讀寫器是讀寫標(biāo)簽信息的設(shè)備,可無接觸地讀取并識(shí)別電子標(biāo)簽中所保存的電子數(shù)據(jù),以達(dá)到自動(dòng)識(shí)別物體的目的;天線是一種以電磁波形式把無線電收發(fā)機(jī)的射頻信號(hào)接收或輻射出去的裝置,用在標(biāo)簽和讀寫器間傳遞射頻信號(hào)。讀寫器通過天線發(fā)送一定頻率的射頻信號(hào),當(dāng)標(biāo)簽進(jìn)入天線輻射場時(shí),產(chǎn)生感應(yīng)電流從而獲得能量,發(fā)送自身編碼信息,讀寫器讀取并解碼后發(fā)送至服務(wù)器進(jìn)行處理[6]。

1.2 開源框架技術(shù)

(1) ExtJS框架。一個(gè)用JavaScript編寫的,用于創(chuàng)建前端用戶界面的UI框架。與后臺(tái)語言無關(guān),并提供了豐富的跨瀏覽器的UI組件,比如ExtJS的樹形組件功能強(qiáng)大而且美觀實(shí)用, 實(shí)現(xiàn)了拖動(dòng)、排序、異步加載等功能。采用JSON/XML為交換格式,減輕了服務(wù)器端的負(fù)荷,提高了客戶端的響應(yīng)速度[7]。

(2) SSH框架。SSH是Struts、Spring和Hibernate輕量級框架技術(shù)的組合,它方便開發(fā)人員更注重業(yè)務(wù)邏輯的設(shè)計(jì),提高了系統(tǒng)的開發(fā)效率[8]。

Struts是Apache組織的一個(gè)開源項(xiàng)目,是基于MVC模式的框架,用于實(shí)現(xiàn)Web項(xiàng)目中的表示層,主要采用Servlet和JSP技術(shù)實(shí)現(xiàn),將JSP、Servlet、自定義標(biāo)簽和信息資源整合到一起,開發(fā)人員只需開發(fā)相應(yīng)的組件和類,就可使用Struts進(jìn)行項(xiàng)目開發(fā)。

Spring是一個(gè)以依賴注入原則和面向切面編程思想(AOP)為基礎(chǔ)的輕量級框架。提供了Bean的配置基礎(chǔ)、JDBC的提取框架、AOP的支持和抽象事物支持等,是一個(gè)服務(wù)于所有層面的應(yīng)用程序框架,實(shí)現(xiàn)了優(yōu)雅的MVC,降低了組建之間的耦合。

Hibernate是一個(gè)開源的對象/關(guān)系映射(ORM)框架,該框架通過對JDBC API進(jìn)行輕量級的對象封裝,使開發(fā)人員能夠以面向?qū)ο蟮乃季S來操縱數(shù)據(jù)庫。它主要封裝了通過JDBC訪問數(shù)據(jù)庫的操作和向上層應(yīng)用提供訪問面向?qū)ο髷?shù)據(jù)訪問的API。

(3) Highcharts。是一個(gè)用Java腳本寫的矢量繪圖庫,繪圖機(jī)制采用SVG與VML實(shí)現(xiàn),支持IE、Firefox等主流瀏覽器及iPhone手機(jī)或平板電腦桌面顯示[8]。可以制作折線圖、餅圖、柱狀圖和時(shí)速表等多樣圖表類型,并可把多類型圖表集成在一個(gè)圖表上顯示,具有提示功能、放大功能、兼容性、跨語言易用性等特征。

1.3 ESSHR架構(gòu)

在SSH架構(gòu)的基礎(chǔ)上,為克服SSH對AJAX支持不足和Web級圖表創(chuàng)建的缺點(diǎn),結(jié)合RFID技術(shù)和ExtJS及HighCharts開源框架的優(yōu)點(diǎn),并根據(jù)資產(chǎn)管理系統(tǒng)的實(shí)際需要,設(shè)計(jì)了ESSHR架構(gòu)模型。該模型在結(jié)構(gòu)上采用分層原理,從整體上分為六層,見圖1。

圖1 ESSHR框架結(jié)構(gòu)圖

(1) View層。用JSP、ExtJS框架技術(shù)實(shí)現(xiàn)外觀設(shè)計(jì),通過HighCharts完成Web級圖標(biāo)的繪制,把用戶提交的數(shù)據(jù)轉(zhuǎn)給控制器進(jìn)行處理。

(2) Controller層。負(fù)責(zé)控制業(yè)務(wù)邏輯層和表現(xiàn)層的交互,并以JSON為數(shù)據(jù)格式。根據(jù)用戶的請求調(diào)用Action,獲取用戶的請求參數(shù),調(diào)用業(yè)務(wù)邏輯層,將返回的數(shù)據(jù)寫入Response,進(jìn)而更新表現(xiàn)層,由Struts框架實(shí)現(xiàn)。

(3) BO層。負(fù)責(zé)業(yè)務(wù)邏輯處理操作,調(diào)用DAO 層的組件進(jìn)行具體操作,并返回結(jié)果供其上層組件使用[9-10]。BO層位于Web的業(yè)務(wù)邏輯層,在該層中引入Spring,利用IoC容器對業(yè)務(wù)類進(jìn)行裝配和管理,使類與類之間的耦合度降到最低,利用AOP框架對業(yè)務(wù)層中的事務(wù)進(jìn)行聲明式管理。

(4) DAO層。負(fù)責(zé)與持久化對象交互,使用Hibernate框架訪問數(shù)據(jù)庫,并封裝數(shù)據(jù)的增、刪、查和改等操作,完成對數(shù)據(jù)的訪問操作,與數(shù)據(jù)庫的交互操作,實(shí)現(xiàn)持久化操作[11]。

(5) PO層。通過實(shí)體關(guān)系映射工具將關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)映射成對象,PO是一個(gè)符合JavaBean規(guī)范的Java對象,包含了符合統(tǒng)一標(biāo)準(zhǔn)的屬性和方法,其屬性只可以通過自身的get和set方法訪問,這樣對外隱藏了內(nèi)部實(shí)現(xiàn)的細(xì)節(jié),很方便地實(shí)現(xiàn)以面向?qū)ο蠓绞讲僮鲾?shù)據(jù)庫。

(6) WebService層。WebService是一種新型Web應(yīng)用程序,具有自包含、自描述以及模塊化的特點(diǎn)。該層通過互聯(lián)網(wǎng)發(fā)布應(yīng)用程序,供手持機(jī)端查找調(diào)用。在WebService體系結(jié)構(gòu)中,使用WSDL來描述服務(wù),使用UDDI來發(fā)布、查找服務(wù),利用SOAP來執(zhí)行服務(wù)調(diào)用,各模塊間及模塊內(nèi)部消息以XML格式傳遞,由新一代的WebService引擎XFire框架實(shí)現(xiàn)[12-13]。

(7) HL層。硬件層主要由電子標(biāo)簽、讀寫器和網(wǎng)絡(luò)設(shè)備組成,進(jìn)行數(shù)據(jù)讀寫工作。在讀寫器中應(yīng)用程序通過調(diào)用WebService同應(yīng)用系統(tǒng)進(jìn)行數(shù)據(jù)交換:一方面將標(biāo)簽的ID送往應(yīng)用系統(tǒng),另一方面是將應(yīng)用系統(tǒng)的信息寫入RFID標(biāo)簽。

2 系統(tǒng)設(shè)計(jì)方案

2.1 系統(tǒng)需求分析

高校資產(chǎn)種類繁多、業(yè)務(wù)復(fù)雜,因此構(gòu)建資產(chǎn)管理系統(tǒng)應(yīng)全面考慮[14-15]。①系統(tǒng)功能應(yīng)該包含資產(chǎn)管理的所有業(yè)務(wù)活動(dòng),具體包括資產(chǎn)的“入庫、借出、使用、折舊、查詢和監(jiān)控”等。②系統(tǒng)權(quán)限應(yīng)清晰明確,對資產(chǎn)管理涉及的資產(chǎn)管理科、財(cái)務(wù)審計(jì)部門和院系部等不同部門能進(jìn)行不同的權(quán)限分配。其中資產(chǎn)管理科負(fù)責(zé)固定資產(chǎn)臺(tái)賬和分類;財(cái)務(wù)審計(jì)部門對固定資產(chǎn)的管理起審核和監(jiān)督作用;院系部是資產(chǎn)使用部門,負(fù)責(zé)本單位資產(chǎn)業(yè)務(wù)的申請?zhí)峤患肮芾怼M瑫r(shí)對同一部門的不同人員也可以進(jìn)行不同的權(quán)限劃分。③系統(tǒng)應(yīng)具備盤點(diǎn)、監(jiān)控、數(shù)據(jù)輸出及打印功能。信息系統(tǒng)具備對涉密及貴重設(shè)備的監(jiān)控防流失功能,并能夠進(jìn)行數(shù)據(jù)輸出和打印,以保證電子賬目、賬務(wù)及帳卡的一致性。④系統(tǒng)應(yīng)具備安全措施。應(yīng)詳細(xì)記錄對系統(tǒng)各環(huán)節(jié)的操作,能對系統(tǒng)數(shù)據(jù)進(jìn)行備份等操作。

2.2 系統(tǒng)功能分析

系統(tǒng)圍繞固定資產(chǎn)的“進(jìn)、出、用、控”等環(huán)節(jié)進(jìn)行科學(xué)管理,提供對資產(chǎn)全生命周期的跟蹤管理[16],為了系統(tǒng)的可擴(kuò)展性和管理權(quán)限劃分,采用模塊化設(shè)計(jì)思想,每個(gè)模塊包括若干功能,其功能模塊圖見圖2。

圖2 資產(chǎn)管理系統(tǒng)功能模塊圖

系統(tǒng)劃分為計(jì)算機(jī)端子系統(tǒng)和手持機(jī)端子系統(tǒng),計(jì)算機(jī)端子系統(tǒng)包括用戶賬戶、數(shù)據(jù)備份、資產(chǎn)管理等10個(gè)功能模塊。其中用戶賬戶、角色信息、組織結(jié)構(gòu)三個(gè)模塊是對用戶信息進(jìn)行管理,可以先建立組織機(jī)構(gòu),然后在該機(jī)構(gòu)內(nèi)創(chuàng)建用戶,根據(jù)不同的工作職責(zé)賦予不同的權(quán)限,并可以定制角色;數(shù)據(jù)備份、系統(tǒng)日志和通知公告三個(gè)模塊提供系統(tǒng)安全功能,可以發(fā)布新聞公告,并記錄對系統(tǒng)的各類操作、對數(shù)據(jù)庫信息進(jìn)行備份等操作。資產(chǎn)管理、檔案資料、實(shí)驗(yàn)耗材及統(tǒng)計(jì)報(bào)表四個(gè)模塊提供對各類資產(chǎn)的有效管理,包括常見的入庫、出庫及重點(diǎn)設(shè)備的監(jiān)控報(bào)警功能,可根據(jù)條件查詢、打印及導(dǎo)出報(bào)表。

手持機(jī)端子系統(tǒng)有用戶賬戶、檔案資料、資產(chǎn)管理和系統(tǒng)設(shè)置等四個(gè)模塊,其中用戶賬戶、檔案資料、資產(chǎn)管理三個(gè)模塊功能同計(jì)算機(jī)端子系統(tǒng)相同,而系統(tǒng)設(shè)置模塊主要是對連接數(shù)據(jù)庫地址、頻段和速率等RFID參數(shù)及盤點(diǎn)的相關(guān)信息進(jìn)行設(shè)定。

3 系統(tǒng)功能實(shí)現(xiàn)

根據(jù)資產(chǎn)管理系統(tǒng)的需求,系統(tǒng)選用Windows 2003 Server操作系統(tǒng),利用MySQL5.1數(shù)據(jù)庫,選用Tomcat7.0服務(wù)器,在Eclipse開發(fā)環(huán)境中完成系統(tǒng)的實(shí)現(xiàn)。由于系統(tǒng)模塊較多,各模塊采用統(tǒng)一的架構(gòu)方式,文中通過計(jì)算機(jī)端子系統(tǒng)中權(quán)限管理、統(tǒng)計(jì)報(bào)表模塊和手持機(jī)端子系統(tǒng),介紹實(shí)現(xiàn)細(xì)節(jié)。

3.1 用戶權(quán)限功能

權(quán)限管理是系統(tǒng)重要的組成部分,涉及到所有功能模塊、權(quán)限、角色、部門和用戶的動(dòng)態(tài)管理,對系統(tǒng)起到整體構(gòu)架和引導(dǎo)作用。

(1) 表現(xiàn)層。利用Jsp技術(shù)構(gòu)建index.js頁面,引入ExtJS的樣式文件resources/css/ext-all.css和基礎(chǔ)庫文件adapter/ext/ext-base.js及核心庫文件ext-all.js。用戶的請求通過ExtJSP發(fā)送到Countroller層,同時(shí)利用服務(wù)器返回的數(shù)據(jù)更新視圖。系統(tǒng)進(jìn)行授權(quán)操作時(shí),通過調(diào)用Ext.require(‘Common.PrivTree’,

function(){var entity = Ext.create(Common.PrivTree)

;} ),動(dòng)態(tài)加載PrivTree.js,并向服務(wù)器提交該用戶ID,服務(wù)器以JSON格式返回信息,并以樹形式顯示。

(2) 業(yè)務(wù)邏輯層。添加權(quán)限的業(yè)務(wù)處理權(quán)限管理過程的業(yè)務(wù)邏輯,向上接受角色名稱、角色說明信息等表單數(shù)據(jù),向下接受與傳遞數(shù)據(jù)持久層的數(shù)據(jù),業(yè)務(wù)邏輯由Service實(shí)現(xiàn)類組成,并由Spring控制與注入[7]。授權(quán)模塊的注入方式如下:

@Resource(name ="privService")

public void setPrivService(PrivService

privService){this.privService= privService;}

用戶選中checkbox進(jìn)行權(quán)限更改時(shí),PrivAction調(diào)用邏輯層的grantPrivToUser函數(shù),將用戶的ID與權(quán)限的ID進(jìn)行關(guān)聯(lián),并以json格式返回結(jié)果,改變checkbox的狀態(tài)。

(3) 數(shù)據(jù)持久層實(shí)現(xiàn)。用戶權(quán)限管理通過grantPrivDAOImpl類實(shí)現(xiàn),該類繼承了HibernateDaoSupport,并依賴由Spring封裝的hibernateTemplate對象,hibernateTemplate依賴Hibernate的SessionFactory,由Spring容器生成,并通過@Resource(name="hibernateTemplate")注入到grantPrivDaoImpl中。

在用戶授權(quán)功能中,業(yè)務(wù)邏輯層會(huì)調(diào)用數(shù)據(jù)持久層的grantPrivToUser(int userId,int privId),這個(gè)函數(shù)在DaoImpl中實(shí)現(xiàn)方法如下:

Query query=session.createSQLQuery("insert into user_priv(userId,privId) values(?,?)");

query.setInteger(0, userId);

query.setInteger(1, privId);

return query.executeUpdate();

3.2 統(tǒng)計(jì)報(bào)表功能

統(tǒng)計(jì)報(bào)表功能由Highcharts實(shí)現(xiàn),Highcharts運(yùn)行需要在html文件的head區(qū)引入所使用的jquery. min. js和highcharts. js框架文件[17],js文件的引入方法如下:

龙里县| 宁陕县| 玉树县| 青神县| 蛟河市| 鲁甸县| 绍兴县| 玉屏| 沾化县| 垣曲县| 龙南县| 芦山县| 宕昌县| 长海县| 建平县| 孙吴县| 商河县| 资阳市| 阳山县| 上栗县| 大余县| 邯郸县| 永兴县| 沈阳市| 昌宁县| 安丘市| 郑州市| 五家渠市| 开封县| 东丽区| 婺源县| 黔西县| 万荣县| 淅川县| 喀喇| 通山县| 天峻县| 禄劝| 保定市| 临泽县| 木兰县|