APP下载

基于AJAX的设备在线报修系统的设计与实现

2015-04-29王朋刘卫星赵勇军

智能计算机与应用 2015年2期

王朋 刘卫星 赵勇军

摘 要:本文首先对系统开发所需要的技术进行详细的讲解。然后对故障报修系统进行了全面的角色和功能的建模,阐述了系统的总体功能设计,对各个功能模块进行了实现。本系统性能和功能都达到了设计的要求,有效地满足了用户的需求,整体性能良好。

关键词:Ajax;故障报修;异步交互

中图分类号:TP391 文献标识号:A 文章编号:2095-2163(2015-)02-

Design and Implementation of Online Repair System based on Ajax

WANG Peng, LIU Weixing, ZHAO Yongjun

(Network Management Center, Aba Teachers College, Wenchuan Sichuan 623002,China)

Abstract:This paper firstly analyzes the system development technology in detail, then aimed at the role and function of the fault repair system, completes the comprehensive modeling. Based on the aboved, the paper expounds the overall function of the fault repair system, and realizes each function module of this system. The system has a good performance, therefore meets the design requirement, and effectively satisfies the users.

Key Words: Ajax; Fault Repair; Asynchronous Interaction

中图分类号:TP311 文献标识码:A

0 引 言

随着互联网的不断发展与逐渐成熟,企事业单位中的设备越来越多,遇到的问题也就日趋客观,从目前来看有以下几种处理方式:第一是亲自到维修中心去报修。这种情况浪费了员工的大量时间,并要填写故障的单子。此外,还需聘请专门的人员进行报修单的处理,这种模式增加了企业人力和物力的支出,而且效率也很低。第二种情况是电话报修。但这种方式缺乏维护人员和客户之间的有效沟通,维修工程师难以把握故障的真实情况。最后一种就是网络报修。该种模式是当用户遇到问题,借助网络将次问题填写汇总为故障的详细信息后,再提交给专门的维修人员,故障信息将会详尽细致地呈现给维修工程师。而工程师就可以根据故障的描述实施故障的有效解决,因而此种方式就显著缩短了用户的等待和问题解决时间,并且提高了企业的运营效率。综上可知,为了及时处理用户遭遇的现场故障,提升企业的实时应变效率,有必要建立一套完整、高效的设备报修平台,帮助企业用户及时解决工作中出现的各类设备突发故障问题。

针对这一课题,本文利用了Ajax开发技术,分析和设计了一个响应速度快、用户体验良好的设备在线报修系统。旨在改善企事业的客服方式和客服能力,让用户提出的问题得到及时或限时的解决,满足企事业高速发展对故障维护质量不断提高的现实要求。

1 技术简介

为了营造良好的用户体验,系统开发采用了Ajax局部刷新的技术,实现了与系统后台的异步交互。Ajax并不是一项崭新的技术,而是一些现有成熟的技术的嵌入组合。这些技术相互协作,共同完成用户的请求工作。在Ajax中主要是HTML、JavaScript、Dynamic HTML、DOM文档对象模型和XMLHttpRequest技术的匹配组合[1]。

具体来说,XMLHttpRequest是Ajax的核心,实现客户端和服务器端的异步通信过程。Ajax通过JavaScript调用XMLHttpRequest对象来与服务器进行交互[2]。XMLHttpRequest对象能够根据用户的需要与服务器进行自动交互,这个过程对于用户来说是透明的。这样在用户做其他事情的时候,客户端就可以在后台与服务器完成交互,缩短了用户的等待时间,同时减少了网络传输的带宽,也缓解了服务器的压力。图1就说明了传统模式和Ajax模式应用程序的区别。

图1 Ajax工作模式与传统模式比较

Fig.1 Comparison between the working mode and traditional mode of Ajax

在Ajax模式下,当用户在填写表单时,Ajax会在后台对服务器将用户填写的数据进行特定的格式包装,并对服务器发出HTTP请求,实现了客户端和服务器端的异步传输。当服务器处理完数据,会将处理的结果返回给Ajax引擎,Ajax收到服务器返回的数据,就调用特定的响应方法在浏览器上将结果显示给用戶。也就是说,用户不需要等待服务器的响应,就可以进行其他的操作。这个异步处理的过程对用户来说是透明的。从用户的角度来看,用户操作后面的数据时,前面的数据已经提交服务器进行了处理并且得到了处理结果,从而给用户带来了一种良好的体验。

2 系统总体设计

在系统中,存在以下几种角色。对各类角色的任务设计则可进行如下描述。

(1)系统用户:用户可以根据自己的账号登陆到系统中,进行故障的初步诊断和识别,当远程故障诊断不起作用时,用户就要填写故障报修单,说明具体的故障现象,并提交系统,等待专业维修人员进行检修。用户可以查看自己提交报修单的处理进度,而在派单之前,用户也可以对提交的报修单进行修改和追加。另外,还可以查看自己的报修记录和已处理的报修单状况。

(2)监控管理员:查看和审核报修单,对报修单进行派单工作。同时,还可查看和维护维修工程师的信息。

(3)维修工程师:查看自己的派单,对已处理的故障进行消单。对不能解决的问题进行上报。查看设备库存情况。

(4)超级管理员:对系统进行维护,进行用户角色权限的分配工作。系统角色图如图2所示。

图2 系统角色建模图

Fig.2 System role modeling

综上,基于对系统中角色功能的分析,即对系统的总体功能进行了模块化的设计。具体地,根据系统所要实现的具体功能,并且依据系统中存在的不同的操作、角色及权限,系统的总体功能架构如图3所示。

图3 系统功能总体架构图

Fig.3 Architecture diagram of system function

从图3可以看出,系统共分为4大模块,模块划分依据是基于系统中的角色存在作用。分别地,各模块的实现功能可做如下概述:

(1)普通用户模块:本模块包含了设备故障远程诊断模块、查询模块、故障报修模块。

(2)监控员管理模块:本模块是针对系统的监控管理员,包括报修单管理、系统查询、个人信息管理、派单管理。

(3)维修人员模块:该模块包括报修单管理、系统查询、个人信息管理等。

(4)超级管理员模块:该模块包括系统维护与设置、角色权限的分配、数据管理等。

本文研发系统的技术架构利用了非常流行的Struts2和Ajax技术,并采用MVC分层设计的方式进行实现。在系统中,Struts2充当了中心控制器的角色,所有的请求都会被Struts拦截,控制器将根据请求的类型,调用不同的业务逻辑进行处理,而后根据处理结果的类型调用不同的视图模型,再将处理结果展示给用户[3]。视图层采用了Ajax技术进行局部动态更新,由此而带来了良好的用户体验。系统的技术架构如图4所示。

图4 技术架构图

Fig.4 Technical architecture diagram

3 系统的实现

普通用户、维修人员和系统监控员是本文系统的三个核心角色,而超级管理员则主要针对用户的基本信息,角色和权限模块的设置,系统的数据等进行管理。本研究设计并最终成功实现了设备在线报修系统。限于篇幅,本节就以报修单管理模块的实现为例来介绍具体开发过程。其它模块的实现过程则不再赘述。

在报修单管理模块中,经过调研可知,报修单包括报修编号、报修类型、故障描述、故障地点、报修时间、维修人、报修状态等几种属性。用户可以根据报修单的状态查看报修单的进度。为此,报修单管理模块的系统流程图则如图5所示。

图5 报修单管理系统流程圖

Fig.5 Flow-process diagram of repair management system

报修单管理模块的实现代码如下:

public List getAllMaintains() {

String hql = "FROM Maintain m ";

Session session = null;

Transaction tx = null;

Maintain maintains = null;

try {

session = getSessionFactory().openSession();

tx = session.beginTransaction();

maintains = session.createQuery(hql).list();

tx.commit();

} catch (Exception e) {

return null;

} finally {

if(session != null)session.close();}

return maintains; }

4 结束语

本系统使用简单,只需用户填写少量的信息即可进行故障设备的报修。系统充分利用了Ajax异步请求数据的特点,定时从后台获取数据并将数据展示给监控员,保证故障得到动态、及时的解决,降低了因故障维修不及时带给企业的损失,因而具有较好的实用推广价值。

参考文献:

[1] 李健,郭宇明,石桂名.基于DWR的Ajax技术研究与实现[J].现代计算机,2007(7): 132-133.

[2] 梁征.基于Ajax技术实现网络报修系统的改造[J].广西科学院学报,2008(1):66-68.

[3] 孙鑫.Struts2深入详解[M].北京:电子工业出版社,2008.

[4] 白国靖.基于工作流的学生宿舍网络报修系统的设计与实现[D].广州:华南理工大学,2010.

1 基金项目:阿坝师范高等专科学校校级规划基金项目(ASB13-20)。

作者简介:王 朋(1984-),男,河南开封人,硕士,助理研究员,主要研究方向:云计算与虚拟化、计算机软件与理论;

赵勇军(1978-),男,四川南充人,硕士,助理研究员,主要研究方向:计算机应用;

刘卫星(1969-),男,四川成都人,硕士,助理研究员,主要研究方向:计算机与多媒体。