基于Rest架构的高校运维平台设计与实现
2017-03-21陈功锁温佐承彭志强
陈功锁+温佐承+彭志强
摘要:随着移动互联网的快速发展,越来越多的系统开始支持移动设备访问,而传统高校运维平台只是单一网站,严重缺乏对移动设备的支持。通过对高校运维系统的需求分析,提出一种基于Rest架构的高校运维平台,该平台支持网站、安卓、ios等多种前端接入,并基于Spring Boot框架实现。经功能测试和性能测试证明该平台具备较强的稳定性和支持较高的并发。
关键词:高校运维系统;工单;rest架构;Spring Boot;Spring Data JPA
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)33-0074-04
Abstract: With the rapid development of mobile network, more and more systems have been supporting mobile devices. But the traditional operation and maintenance system only have web site without considering mobiles access. Analysis on operation and maintenance system, a platform based on rest architecture is presented providing uniform API to support android, IOS, website and any other front-end devices to access. And the platform is implemented on Spring Boot framework. After functional and performance tests, the platform is proved to be correct, stable and can bear large amount concurrency.
Key words: operation and maintenance system; work order; rest rchitecture; Spring Boot; Spring Data JPA
随着移动互联网的快速发展及操作的便捷性,越来越多的系统开始提供对移动设备的支持。而传统的高校运维系统只是单一、简单的网站,在建设初期只考虑网页前端,因此缺乏对移动设备的支持。另一方面运维平台作为高校信息化建设系统的重要组成部分,在高校信息化建设历程中具有不可替代的作用。因此高校运维系统提供移动端的支持是十分必要的。
运维平台主要由网页、安卓、ios等前端和服务器端组成,前端直接面向普通用户,提供友好的界面和良好的用户体验,服务器端提供API,为所有的前端提供数据服务,是整个运维平台的核心组成部分。随着平台用户量的逐渐增加,服务器端面临的技术压力也越来越大。因此良好的API设计和实现将是平台稳定和持续改进的重要基础。
通过分析四川旅游学院运维需求,提出一种基于Rest架构的服务器端API设计,并基于JavaEE架构实现该API。
1 系统需求分析
系统需求分析是系统开发生命周期中最重要的组成部分,直接决定系统开发成功与否。所以做好系统需求分析是极其重要的。
1.1 需求概述
高校运维平台RestAPI主要完成运维系统的服务器端API的设计,为网页、安卓、ios等多种终端提供统一的数据服务。该平台包含的主要功能有用户管理、工单管理、解决方案管理、知识库管理、评价管理、权限管理、统计分析管理和短信管理。
1.2 详细功能需求
針对上述需求综述,提出以下各模块具体的需求:
1.2.1 权限管理
针对不同角色的用户,应分配不同的权限,以下是具体的角色:
1) 管理员:拥有系统所有模块的操作权限;
2) 普通用户
① 平台内登录、注册、忘记密码操作;
② 提交工单,查看已提交工单信息;
③ 知识库搜索;
④ 查看某工单的解决方案,并做相关评价。
1.2.2 用户管理
以下是用户管理模块的具体需求:
① 用户可以通过终端完成注册、登录、忘记密码操作;
② 系统后台可以查看、修改、删除和根据条件查找注册用户的信息;
1.2.3 工单管理
工单管理模块主要的需求是:
1) 用户可以通过各种终端如网页、安卓或ios等客户端提交问题形成工单;
2) 在用户个人中心可以查看已解决、未解决工单信息;
1.2.4 解决方案管理
解决方案管理模块主要的需求是:
1)平台服务人员需要及时对用户提交的工单进行处理,并将处理后的解决方案上报;
2)工单的正确解决方案将进入知识库系统,便于用户下次搜索;
3)用户可以查看某工单的解决方案;
4)后台可以查看所有工单的解决方案;
5)后台可以根据工单号查询该工单对应的解决方案。
1.2.5 统计分析管理
统计分析模块主要包括以下方面的统计:
1) 用户统计
统计每日新注册用户数量。
2) 工单统计
统计每日新增工单数;
统计每日解决工单数;
统计每日未解决工单数。
1.2.6 客户评价管理
用户可以对已处理的工单进行评价,评价的内容包括办理结果、办理过程、办理态度等多方面内容的评价。
1.2.7 短信管理
短信管理主要是利用第三方短信服务商提供的短信服务,对核心流程中一些必要的环节以短信的方式告知用户,提醒用户及时关注工单处理最新动态。
1) 用户在注册时候,需要提交手机号码,接受平台发送的短信验证码,然后在服务器端注册逻辑操作时,验证该验证码是否正确;
2) 当用户提交的工单已分配相关人员处理时,系统将发送短信通知该用户。
1.2.8 知识库管理
为了方便用户更快速的解决问题,提出知识库概念。将已经成功解决的历史工单,进入知识库系统,形成经验积累。其他用户遇到相同或类似问题的时候,可首先通过搜索知识库,寻找答案,如未找到,再提交工单给网络信息中心处理。通过这种方式,提高工单解决效率,避免重复、无价值的劳动。
另外知识库管理支持全文搜索和模糊匹配,从而最大程度的方便用户完成搜索。
2 系统设计
2.1 系统架构设计
运维平台服务器端架构采用MVC架构,RestAPI层使用SpringMVC提供的RestController完成API的具体实现,业务逻辑层包括了平台所有的业务处理,数据访问层采用了Spring Data JPA + Hibernate来实现数据存储和访问。
2.2 数据库设计
2.3 RestAPI设计
RestAPI与传统API设计最大的区别在于:利用HTTP提供的GET, POST, PUT, DELETE等动词,结合URI统一资源定位符,来设计API。
3 系统核心功能实现
在充分进行运维系统需求分析和良好的架构设计、数据库设计及RestAPI的设计,基于JavaEE平台架构实现API。
3.1 系统开发环境
3.2 关键技术
3.3 API层实现
采用SpringMVC提供的RestController能够非常方便地实现API层接口,数据格式统一为json格式。
3.4 数据访问层实现
数据持久化是系统的重要组成模块,运维系统采用Spring Data JPA + Hibernate实现。Spring Data JPA通过提供统一的数据持久化接口,且提供方便的接口实现复杂的功能。底层使用Hibernate框架来实现具体的数据存取操作。
3.5 权限管理
权限管理是系统的核心组成部分,是系统安全性保证的重要模块。由于Spring Security权限管理框架经较多公司使用、成熟且稳定,因此采用该框架作为系统的权限管理,经过简单配置即可完成强大的权限管理。
授权验证模块采用oauth2.0协议,基于spring security 实现。用户在验证通过后,获得唯一令牌,携带该令牌访问其他资源。
3.6 短信管理
短信管理模块主要的任务是利用第三方的短信服务平台发送短信信息。第三方短信服务公司会提供API文档,详细描述如何使用该服务。一般短信平台支持json、xml等多种数据格式,且会提供http get/post方式。运维平台根据第三方短息平台的API要求,通过发送http get/post请求,获取相应短信服务。
4 系统测试
系统开发完成后,需要经过大量的测试之后,才能上线。系统测试主要包括功能测试和性能测试。其中功能测试是保证系统所有功能模块都是正确的。而性能测试是为了了解系统能够支持最大的并发数。另外良好的性能测试也能够帮助我們分析系统的性能瓶颈,为下一步的优化做准备。
4.1 功能测试
利用Restful Client测试工具完成系统所有核心API的功能测试,经测试运维平台所有API功能正确。
4.2 性能测试
在确保功能正确的前提下,还需要进行系统的性能测试,了解系统能够支持最大的并发数量。
使用jmeter工具,通过相关配置,模拟用户的并发数,测试系统性能。
5 结束语
针对传统高校运维平台只是单一、简单网站,移动端设备支持较差等问题,首次提出一种基于Rest架构的高校运维平台的API设计,并基于JavaEE平台实现。经功能测试和性能测试验证了该平台架构稳定,支持较高的并发,且具备较强的扩展性。由于各大高校运维需求存在一定的差异,因此本文提出的API设计需要结合实际需求做更进一步优化。
参考文献:
[1] 刘延杰. 基于JavaEE的科研管理系统设计与实现[D]. 成都: 电子科技大学, 2015.
[2] 金天昕. 浅析高校IT运维系统的建设[J]. 电脑知识与技术, 2015,11(28).
[3] 陆春, 黄杰, 陈云. 高校信息系统运维自动化的研究与实践[J]. 中国教育信息化·高教职教, 2014(3).
[4] 翟跃. 关于高校信息系统安全运维实践的探讨[J]. 电脑与信息技术, 2016, 24(2).
[5] 安寅杰. 高校IT运维服务项目的分析与实施[J]. 中国教育信息化·高教职教, 2015(11).
[6] 马鸣华. 浅谈网络管理系统在高校校园网中的应用[J]. 计算机光盘软件与应用, 2013(11).
[7] 程冬梅, 王瑞聪, 刘燕, 等. 基于REST架构风格的物联网服务平台研发[J]. 计算机工程与应用, 2012, 48(14).