基于面向服务架构的高校宿舍微信小程序的设计与实现
Jiawei Wang,中国,Wenhao Wang,中国Quanyin Zhu,中国
根据高校宿舍管理的实际需求,提出了一种基于面向服务的体系结构(SOA)的高校宿舍微信程序,使师生能够方便、高效地管理宿舍。采用Web服务将后端功能封装成一系列服务,用于前端调用。以微信小程序为前端开发载体,实现高校宿舍管理功能。实验表明,该系统运行稳定,工作效率大大提高。结果表明,该应用系统能够捕获学生宿舍管理的需求,具有良好的可扩展性。
一、绪论
学生宿舍管理作为学校办学的重要组成部分,传统的人工管理模式几乎不可能对师生进行有效的管理。为了解决高校学生宿舍需求变化带来的管理问题,参考文献[2]采用敏捷开发模式实现了学生宿舍管理系统。借鉴ERP(enterpriseresourceplanning)管理系统的思想,提出了CPR数字校园信息平台,实现了宿舍信息资源的整合[3]。采用C/S模式和Delphi开发工具,构建了基于MIS基本原理的宿舍管理信息系统。
面向服务的体系结构是一种可以将服务组合到应用程序中的软件设计[5]。文献[6]提出了通过面向服务的体系结构注册标准化元数据的思想,并在此基础上开发了一个基于SOA的统计元数据计算系统。
微信小程序是微信内部的子应用,微信用户可以轻松访问其他应用。与移动应用相比[7][8],微信小程序无需下载安装即可使用,用户界面和操作流程可以统一[9]。
基于我们过去的工作[10-12],我们使用面向服务的观点来分析和集成异构系统集成。以淮阴工学院宿舍信息为研究对象。微信小程序用于连接用户和服务,提供多样化的校园功能,实现宿舍管理。第二部分构建了高校宿舍管理系统的结构。第三部分介绍了SOA技术在系统中的应用。第四部分介绍了微信在高校宿舍管理中的应用。第五部分是结论。
二、系统结构
采用面向服务架构技术的高校宿舍管理系统的软件架构设计可以将多个系统封装成服务[13]。系统主要由服务器层、中间件层、微信小程序层和客户端四层结构组成。
服务器层存储数据库、数据接口和Web服务器数据;中间件层负责服务器与微信小程序之间的数据采集和交换;微信小程序层提供前端接口和操作数据处理;客户端允许用户通过搜索或扫描二维码访问大学宿舍安排微信小程序。
系统功能包括用户信息管理、宿舍考核管理、水电管理、维修管理、宿舍日常事务管理、卡片管理、学生考试安排、成绩查询等。
三、基于面向服务架构的设计与实现
大学宿舍的日常管理有许多不同的网站。访问每个网站都需要经过认证,等待网站回复,这不仅浪费了时间,而且降低了宿舍管理的效率。另外,分布在服务器上的用户数据耗费了软件工作者大量的时间,过于分散的用户数据不利于统计和管理。Java等传统语言主要将对象表示为类[14],而用户通常关注软件功能,并将功能服务作为接口。因此,面向服务的体系结构更接近用户的需求。
针对面向服务的体系结构的低耦合性和高可扩展性,在现有独立大学系统的基础上,对服务对象、功能结构和流程关系进行了集成。我们需要注意的是每个服务接口的调用,而不涉及底层编程接口,也不了解底层服务的具体实现。
系统采用了层次划分的思想。整个系统分为表示层、业务流程层、服务层、系统层和数据层。
系统面向服务的体系结构架构的设计可以分为以下五层:
表示层。主要负责通过微信小程序实现宿舍管理系统的前端接口。界面可根据不同用户灵活配置。
业务流程层。负责监听和监控服务提供商发布的Web服务[15]。通过对不同业务系统发送的请求进行及时处理,合理调度相应的服务模块,保证系统的正常运行。
服务层。由一系列服务模型组成。宿舍管理中需要调用的系统被封装成统一的服务交互规范标准。当服务层接收到业务流程层发送的请求时,可以对服务模块进行灵活的划分和组装,然后将业务组件转化为服务模型,最终完成相应的请求。如果其他大学业务系统需要与宿舍管理系统交互,可以直接在服务层进行操作。只需要按照统一的标准接口进行数据采集。我们不需要担心第三方系统所使用的技术的需要。
系统层。旨在整合高校教务管理系统、学生事务部系统、高校人事管理系统、高校财务管理系统等与日常宿舍安排相关的系统。
数据层。主要负责数据的存储和管理,包括用户数据库和系统数据库。
该体系结构具有良好的通用性和可扩展性。通过应用上述体系结构,可以提取系统应用中的功能和业务组件。
四、微信小程序
4.1. 微信小节目优势
“应用程序将随处可见。” B2C产品,那么微信处理人和人的服务,是C2P产品。因此,微信的使命是将人员和服务联系起来。小程序和服务无处不在,当我们想在任何情况下使用相应的服务时,我们只需要打开微信搜索即可随时随地享受该服务,而无需安装该应用程序。还有二维码的使用。只要我们扫描二维码,我们就可以享受这项服务,这也是微信应用程序想要实现的商业价值。
B/S结构难以实现个性化功能,需要浏览器的支持,而C/S结构限制了系统功能的扩展和软件的升级。微信小程序弥补了上述两种架构的不足。该系统不仅提高了用户体验,而且加快了宿舍管理系统的加载速度。与本地移动应用相比,微信小程序对用户来说效率更高,在能力有限的情况下更具成本效益。微信小程序是基于腾讯设计的JavaScript构建的一个特殊框架。
4.2. 技术实施
大学宿舍微信小程序的框架主要分为视图层(view)和逻辑层(App Service)。其中,视图层用于呈现页面,由wxml文件和wxss文件构成。这两种文件用来搭建小程序的页面结构以及页面展现样式。wxml是一套基于HTML设计出来的标签语言,可以根据基础模块事件机制去渲染页面。wxml拥有条件渲染、列表渲染、数据绑定等常见功能,足以满足开发者的需求。而wxss则是根据CSS研发出的一套新的样式语言,专门供微信小程序开发者使用,用以渲染wxml的模块样式,并且wxss能够决定页面模块的显示顺序。wxss与CSS相比,不仅拥有CSS原有的功能,而且还对原有的CSS样式加以补充和改进。例如wxss的尺寸单位以及样式导入。用JavaScript编写的逻辑层用于处理事务、请求网络和处理数据。逻辑层由JavaScript语言编写,这是所有页面JS脚本文件的集合,实现业务逻辑处理,并在视图层进行事件传输和数据处理。但是,为了提高小程序的开发效率,小程序使用的JavaScript与传统的Java脚本之间存在一些差异。 微信研究团队进行了一些修改。数据传输和事件系统提供给视图层和逻辑层。
4.2.1. 与本地缓存的数据交互。
用户本地生成的数据可以持久化。当用户登录mini程序时,主页“index”将调用应用程序.js. 函数调用wx.设置存储()将成功登录后返回的数据存储在本地缓存的指定密钥中:
if(!_this.cache || _this.cache != res.data.data){
wx.setStorage({
key: "cache",
data: res.data.data
});
_this.processData(res.data.data);
}
最后,调用函数processData(),通过JSON进一步解析存储的数据,然后返回数据。
processData: function(key){
var _this = this;
var data
=JSON.parse(_this.util.base64.decode(key));
_this._user.is_bind = data.is_bind;
_this._user.openid = data.user.openid;
_this._user.teacher = data.user.type == 'teacher';
_this._user.we = data.user;
_this._t = data['\x74\x6f\x6b\x65\x6e'];
return data;
}
密钥对应的“缓存”可以通过wx.getStorageSync文件(). wx.clears存储如果用户登录失败或HTTP请求错误,将调用()异步删除“缓存”。
4.2.2. 与服务器的数据交互。
宿舍管理微信小程序与后台数据之间的数据交换是Http请求和Web套接字连接。数据交换的格式是JSON,客户端可以很容易地解析它[13]。
数据交互过程如下:
为了减少网络延迟的影响,微信小程序在师生进入系统时加载服务器提供的JSON数据;
师生访问宿舍信息数据时,微信APIwx.请求调用从服务器请求数据;
服务器对微信小程序请求的数据进行处理,然后通过Web套接字连接发送JSON数据;
当老师和学生完成后,同步数据将被提交到服务器,其他情况下将在微信小程序的内存中进行处理。
五、结论
本文采用面向服务的体系结构(SOA)的概念,集成多个独立的高校信息系统,实现服务的直接交互和数据共享。为此,提出了一种基于面向服务的体系结构的高校宿舍管理系统。综合考虑系统性能和用户体验,将微信小程序作为前端开发载体。基于微信小程序的宿舍安排系统是一个轻量级程序,不需要下载或安装。教师和学生可以通过扫描二维码或按关键字搜索来打开应用程序。通过压力并发测试和系统的日常使用,我们发现当多个用户同时访问系统时,系统能够达到稳定、快速的响应。