杨晨
摘要:“微信”作为腾讯公司开发的一款即时通讯软件,凭借其跨平台的应用、方便的用户添加、良好的用户体验以及提供有效的第三方开发的接口,通过和后台管理平台以及后台数据库系统进行有效的衔接,使移动客户端成为获取信息的终端设备,用低廉的开发成本,开发出比传统的教学支持服务系统实用性更强系统。该文详细介绍了利用SpringMVC三层框架,在移动端基于微信公众号的教学支持服务系统开发设计过程。
关键词:移动开发;微信;教学支持服务系统
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)08-0103-02
当前,在全球信息化的大背景下,很多學校和教育单位根据学历教育的特点结合自身的要求开发出了不少教育管理系统、支持服务系统等;通过系统管理的方式来提升工作效率、避免出现管理疏漏。但是,目前大部分的管理系统和支持服务系统都是基于PC终端的B/S结构系统,系统为学生提供支持服务的条件还是建立在学生能够主动使用系统的基础之上,而且对于使用系统的外部软硬件环境还有一定的要求。随着我国智能移动终端设备的逐步普及,通过建立面向移动终端设备的支持服务系统,把手持移动设备变成信息获取的直接渠道,使系统被动的被学生使用变成系统主动服务学生,通过这样的转变使我们的支持服务系统更加方便、灵活,能够更好地满足学生的需求。
1面向移动终端的系统开发模式和开发框架
1.1两种目前面向移动终端的系统主流开发模式
1)APP客户端模式:APP即智能手机上可以安装的第三方应用程序。这种模式可以根据用户的需要,提供功能完善的软件服务,并且用户使用更加的方便快捷;但是开发周期很长,开发难度很大,不同的平台要开发不同版本的APP应用,开发的成本非常高。
2)微信轻应用模式:即把支持服务系统的相关功能和微信公众号进行整合,通过对微信公众号进行二次开发,在微信提供的用户交互的基础功能之上增加新的个性化功能,来完成系统所提供的服务。
1.2基于微信的轻应用相对于传统APP的优势
1)开发成本低
把微信作为系统开发的平台,可以有效降低开发成本,利用微信免费提供的API接口可以很容易的实现系统的个性化功能;同时利用微信现有的显示界面可以减少UI开发的工作强度;同时微信支持目前所有主流操作系统,使基于微信的系统可以通过一次开发支持跨平台工作,从而极大的降低开发成本。
2)系统升级方便,功能丰富
基于微信平台进行二次开发的系统,与微信直接是松耦合关系,对于系统功能的更新,不需要对微信客户端进行任何改变,这为系统的功能升级增加新的功能和服务提供了极大的便利。
3)提升移动数据的传输效率
为了提高在移动互联网中的传输速度和质量,微信通过对数据传输机制的优化,使移动数据的传输速度更快,同时移动流量更低。
1.3开发框架的主要技术
根据微信的特点,结合教学支持系统的功能开发要求,本系统采用微信轻应用的模式作为移动端系统开发模式;移动端微信系统的开发利用现在流行的移动开发模式——springM-VC三层框架模式,系统开发主要采用了以下的技术架构来实现:
1)Spring框架:系统选择Spring框架这个目前主流移动开发框架进行系统开发,利用框架提供的各种基础组件,分层进行系统开发,提升开发效率。
2)mybatis持久化层:主要提供数据库和系统连接的功能,Mybatis的功能架构分为三层:1)API接口层;2)数据处理层;3)基础支撑层。
3)JQuery Mobile:主要用来进行¨层面的开发工作。
4)XML技术:移动开发的系统间数据传输和存储主要方式。
5)数据库:本系统选择开源数据库MySQL进行系统数据库的开发。
2移动端微信系统的主要功能
基于微信平台的教学支持服务系统分为后台管理平台和移动端微信系统两个子系统,后台管理平台类似于一般基于B/S模式的MIS(Management Information System,管理信息系统j的应用,网上类似的研究也有很多,本文对实现技术不做详细的说明;本文主要介绍移动端微信系统的技术实现,微信系统的主要功能是为在校学生,提供获取各类有关学习方面信息的支持服务。
2.1系统主要功能菜单
根据学生对微信公众号系统提供服务的实际需求,以及微信公众号主菜单只能设计三栏的要求,系统主要包括三大块功能:“信息咨询”、“个人中心”和“在线申请”。
2.2信息咨询功能
信息咨询功能主要为学生提供入学后在校学习的指导和承担部分招生信息的发布功能,所以分为两个子菜单:1)常见问题;2)招生信息。
2.3个人中心功能
个人中心是微信端子系统的核心,该功能为学生提供:1、学籍查询,2、课程查询,3、班级公告,4、在线课程,四项子功能;通过点击功能菜单可以进入相应的功能页面,学生在初次进入平台后需要在学籍查询页面中用姓名和身份证号完成微信绑定操作,在完成绑定后,学生可以查看到自己的学籍情况、收取自己专业和班级的相关公告、查看本班级的课程安排以及浏览本专业的在线课件。
2.4在线申请功能
学生通过在线申请可以完成两项功能:1)补考申请;2)异动申请;学生通过补考申请功能可以发送自己的信息和请求到后台管理平台,后台汇总后可以合理地进行补考的考务安排,通过异动申请学生可以申请对自己在校的状态、专业、学习形式等进行变更,使学籍异动的操作更加的简单准确。
3微信平台交互过程及系统功能具体实现
3.1微信平台整体工作流程
1)用户通过关注微信号取得使用微信公众平台的操作权限,微信平台记录用户相关的基本信息;
2)开发者填写用来接收微信服务器数据的接口URL以及Token,填写完成验证通过后成为开发者,将能获得开发者凭据(AppId和AppSecret),取得第三方服务器和微信服务器的交互的权限;
3)当第三方服务器取的和微信交互的权限时,第三方服务器通过调用微信授权的各个功能接口,完成业务功能的要求:包括读取微信用户的数据信息,响应用户的各类操作等服务。
微信平台的工作流程如图1所示:
3.2本系统服务器与微信平台交互具体过程
1)获取接口调用凭据:
系统服务器和微信平台通信之前必须获取全局唯一令牌occeess token,系统服务器和微信端的每一次通信都需使用ac-cess token进行链接的验证。在系统调用微信接口之前,系统服务器通过发送开发者凭据(Appld和AppSecret)给微信平台进行验证来获取access token,(1cces$token的有效期为2个小时,需定时刷新,重复获取将导致上次获取的access token失效,开发者需要进行妥善保存access token的存储至少要保留512个字符空间。
2)创建自定义菜单
系统服务器通过自定义菜单创建接口创建自定义菜单,系统服务器直接通过主程序加载自定义菜单,本系统自定义菜单的类型为click类型,微信服务器在用户点击click类型的菜单后,会通过消息接口推一个event的结构的消息类型给开发者,此消息中被赋予了由开发者所填写的Key值,开发者编写的程序功能可以通过这个Key值和用户进行互动。
3)自定义菜单事件
用户在点击自定义菜单后产生对应事件,系统服务器接收微信端传送的消息后根据菜单事件的key值进行对应处理,在本系统中会构造一个返回的单篇或多篇文章和点击此文章所指向的URL,在用户与微信产生交互后,微信可获得用户的OpenID(加密后的微信号,每个用户对每个微信公众号的Ope-nID是唯一的。对于不同微信公众号,同一用户的OpenID不同),此用户的OpenID也被作为参数拼接到系统返回的URL中。
请注意,点击菜单弹出子菜单,不会产生上报。点击菜单拉取消息时的事件推送,推送的数据为XML数据格式。
4)获取消息。
3.3相关功能组件的设计
本文就微信端系统的详细设计方案以及实现关键功能的相关技术进行详细的说明。微信端系统按照MVC的设计框架进行设计,包括两大组件:处理微信端相关操作的wechat组件和处理后台具体业务与数据反馈的main组件;WeChat组件包括微信实体集(bean)、http请求过滤器(filter)、微信认证服务组件(oauth)以及微信开发工具集(util);main组件包括业务实体集(bean)、控制器组件(action)、服务组件(sevice)和数据链接组件(dao)。
Weehat组件包括:
1)微信实体集(bean):主要实现微信用户类、微信消息类、微信菜单类、微信文章类等和微信有关实体的封装;
2)请求过滤器(filter):對微信端的请求进行验证封装后提交给后台业务层处理,并对处理后的响应的消息进行返回;
3)微信认证服务组件(oauth):用来完成对微信用户接口的认证以及设置微信系统的自定义菜单等功能。
4)微信开发工具集(util):与微信开发相关功能组件的集合,包括:第三方认证功能(获取网页凭证、刷新网页凭证、获取用户信息等),http请求处理功能(通过POST/GET等方式向微信服务器指定URL进行HTTP通信。)
main组件包括:
1)业务实体集(bean):主要包括在微信系统中的页面实体(ArticleResponse.java)、学生信息实体(StudentResponse.java)、成绩信息实体(ScoreResponse.java)、反馈信息实体(Feedback-Response.java);
2)控制器组件(action):(ArticleController.java、ScoreCon-troller.java、ExamController.java、StudentController.java)处理用户交互的部分,负责控制用户输入,并向业务实体发送数据;(We—ChatAction.java)负责控制微信和后台服务器的链接、验证信息来源、获取IP地址等功能;
3)服务接口组件(service):(ArticleService.java、Exam Ser-vice.java、ScoreService.java、StudentService.java)负责具体业务数据的查询和修改等操作;(WeChatServicelmpl.java)负责微信端各业务数据和微信操作的响应服务。
4)数据链接接口(doo):(ArticleDoo.java、ExamDao.java、StudentDao.java、ScoreDao.java)负责和后台数据库的具体链接,数据的CRUD操作。
5)公用类组件(COlItlTiOn):包含分页、返回码、日志等系统公用类。
4结束语
本文介绍了基于微信平台的教学支持服务系统在微信端实现的功能以及开发使用的技术,详细说明了微信端系统功能组件的设计过程以及微信平台和系统互动的模式,并实现了教学支持服务系统相应的功能;未来随着微信端提供的功能越来越丰富,开放的接口数量越来越多,本系统还可以整合更多的功能为学生提供更好的服务,比如开发基于微信支付功能的网上缴费功能、基于微信定位功能的教室查询功能、基于微信摇一摇功能的面授课摇一摇签到功能等。