刘超慧, 张 森, 聂 荣
(郑州航空工业管理学院 计算机科学与应用系,河南 郑州 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