基于轻应用模式的CET报名系统设计与实现
2016-06-07张亮亮杨威高立同
张亮亮 杨威 高立同
摘 要:高校信息化建设过程中构建了多种业务系统,在移动互联网时代,采用对智能终端友好的业务处理模式更有利于系统的使用,也可提高高校师生工作学习效率,轻应用(LAPP)模式业务系统的研究与实现,为多数业务系统在智能终端上的使用奠定了理论基础,增强高校信息化与移动互联网的融合,使得业务操作不会受限于终端环境,成为PC业务系统的有力补充,甚至成为主流。文章介绍了轻应用的基本理念,并以微信轻应用为例搭建了CET报名系统,为高校业务系统移动化、智能化提供了实践经验,同时为高校大学云的构建提供支撑作用。
关键词:轻应用;业务系统;移动互联网
中图分类号:TP311.56 文献标志码:B 文章编号:1673-8454(2016)06-0088-04
高校是理论与创新的前沿阵地,同时也是实践技术的优秀舞台,在如今“移动为先”、“互联网+”等先进理念的冲击下,产生了无数新的理念与技术产品。建设信息化高校也已成为高校的普遍共识,几乎所有高校中的业务部门均有大量的信息系统部署。然则均以PC端为主,很多业务部门的系统仍处于PC为王的时代,在移动互联网时代显得步履艰难,究其原因,则是在移动端不能很好的提供服务,导致使用环境受限等诸多不便,本文据此为背景,提出采用轻应用模式来改变这种不足。
一、轻应用(LAPP)
轻应用,即Light App,其是一种无需下载、即搜即用的全功能APP,既有媲美甚至超越Native App的用户体验,又具备Web App的可被检索与智能分发的特性,能有效解决优质应用与移动用户需求对接的问题。轻应用相较Native App,响应与用户体验可接近Native App,可移植性强,一次开发多平台均可使用,轻应用往往基于已经非常成熟的应用分发平台,如百度、微信、微博等,这些成熟的平台已经跨平台实现,因此无需多平台实现(iOS/Android/WP)、开发成本低,无需安装,升级简单,同时兼具云端功能,如LBS、语言输入输出、订阅推送、电话拨打、摄像头调用、分享评论等功能。
轻应用兼具Web App与Native App的优点,现如今,多数技术主导公司或部门都在研发与设计“轻应用”模式应用系统,且由于网络带宽也有显著提升,网络数据传输已不是瓶颈。国内几大互联网公司如百度、微信、微博、支付宝、360、小米等均推出了轻应用平台,这也为我们使用轻应用平台对接业务系统提供了强有力的技术支持。
轻应用在多数行业已有成熟应用,如金融、通信、医疗、教育等行业,国内外高校也有很多应用案例,如图书馆等业务环境下,很多高校均接入了轻应用模式,针对国外的应用也有如“首尔大学韩国语”等类似应用,但与市场成熟的业务相比较而言,应用案例还较少。
二、采用轻应用模式的CET报名系统设计与实现
1.系统体系结构
本系统采用多入口登录模式,统一后台数据、统一管理的架构搭建,基本架构模型可参见图1。
PC端及Web App、Native App设计与实现不是本文的重点,轻应用模式是我们的主要研究方向,因此其它模式本文不做过多描述。
系统后台统一使用.NET+SQL Server技术搭建,而轻应用设计采用微信轻应用平台来搭建。微信轻应用平台开发是采用微信提供的二次接口,基于微信的基础功能来实现自身独有功能的开发,轻应用模式下数据处理方式与传统PC业务系统有明显区别,需要针对轻应用模式设计相应数据库,与轻应用相关的数据表主要包括用户表(T_STUDENT)、报名表(T_REGISTER)、用户数据表(T_UserData)、用户信息表(T_UserMsg)、用户菜单表(T_PersonalMenu),关键字表(T_KeyWord)、分组表(T_Group)等。
2.核心技术难点
本文为满足高校报名时高并发的特点,考虑后期扩展与推广,采用了诸如多线程、响应式设计、后台数据处理使用常规语句处理与存储过程结合的方式,为解决多名学生同时报名可能产生的问题,采用了延时阻塞、多用户并发延迟等机制,以提高处理效率,前台采用HTML+JS的形式,并结合AJAX技术实现用户极致体验。
3.轻应用模式数据交互关键代码
数据模型与前台界面数据交互的关键是业务代码,由于本文所提及系统业务逻辑复杂,因此只列出部分关键代码。轻应用模式要与服务器数据交互,做相应的对接与数据处理,数据处理模型如图2所示。
报名系统中需要上传报名学生的照片,所以以图像消息数据处理为例,来说明相关配置,图像消息处理所需xml设置如下,诸如文本、语音、视频等其它类型信息交互方式类似。
上述参数描述如下:ToUserName是开发者微信号,FromUserName是发送方账号,在系统运行正常后,将关联学生的微信账号,与后台数据比对,用以交互数据,CreateTime是消息创建的时间,此处以整数形式表示,在后台程序处理时,为了便于存储与比较,需要转换成日期类型,MsgType用来确定数据交互的类型,此处示例中是image,表示图片消息类型,由于图片消息类型的特殊性,所以需要PicUrl来标示图片来源即链接,MediaId是图片消息媒体id,在通过下载接口拉取数据时使用,最后是MsgId,是消息id,用来唯一标识消息,在消息处理、CRUD处理时使用。
与后台数据库进行数据对接的代码如下:
代码中的weixinapi类定义了统一接收信息的入口,是与微信交互的关键类,其中ProcessRequest()方法用于http请求。
public class weixinapi : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string sPost = “”;
if (Request.HttpMethod.ToUpper() == "POST")
{
using (Stream streamInput =.Request.InputStream)
{
Byte[] bytePost = new Byte[streamInput.Length];
stream.Read(bytePost, 0, (Int32) streamInput.Length);
sPost = Encoding.UTF8.GetString(bytePost);
}
if (!string.IsNullOrEmpty(sPost))
{
Execute(sPost);
}
}
else
{
Authorize(); //接入验证
}
}
Authorize ()方法包含获取Token以及验证配置等。
private void Authorize ()
{
string sToken = ConfigurationManager.AppSettings["Weixin"]; //从配置文件获取Token
if (string.IsNullOrEmpty(sToken))
{
Msgshow.Error(string.Format("未进行初始化配置,请配置!"));
}
string sEcho = Request.QueryString["echoStr"];
string signature = Request.QueryString["signature"];
string timestamp = Request.QueryString["timestamp"];
string nonce = Request.QueryString["nonce"];
if (new BasicApi().CheckSignature(sToken, signature, timestamp, nonce))
//CheckSignature()方法用于验证参数签名,返回bool类型
{
if (!string.IsNullOrEmpty(sEcho))
{
Response.Write(sEcho);
Response.End();
}
}
}
三、系统应用与比较
系统应用并得到师生一致好评是对我们研究工作的最大鼓励,报名系统的实现,解决了以前传统报名方式中的多项不足,以前报名系统以学院为单位,采用电子表格的形式上报至学院,学院审核整理后,再汇总至教务处,然后再由教务处统一上报至国家考试中心,而报名系统的信息化,省去了中间很多环节,系统直接面向学生,后台数据自动处理,系统中所包含的在线报名、报名通知、交费通知、照片上传,以及数据统计、报名汇总、统计分析等功能均极大地提高了师生工作报名效率。
本系统PC版于2013年应用于山西师范大学,通过网站链接或直接访问地址http://202.207.165.113均可访问,轻应用模式也于2014年底起用,并在2015年得到优化,微信关注其公众号可进入报名,经后台监测模块的数据统计功能分析处理,轻应用模式的使用对CET报名工作的效率有明显的提升。
图3为2015年9月各平台报名人数占比图,本次报名总人数12114人,从图中数据可以看出轻应用模式的使用极大地提高了报名效率,同时在PC报名前台的问卷调查中可以看出,不愿意使用轻应用模式报名的学生主要是担心手机网络不稳定,难以保证报名成功等,经分析在4G网络模式下,报名成功率99%,且不成功的因素可能是用户手机系统问题等,说明轻应用模式基本达到预期效果。
同时,接入轻应用平台的学生用户,能及时通过轻应用平台获得报名、考试、资费等与CET相关的重要通知,使得学生能第一时间了解相关动态,提前做好报名、应试等准备工作。
四、结束语
我们对轻应用模式报名系统有益的尝试,体现出了无穷的魅力,但也存在不足与缺陷,下一步将结合轻应用平台提供的支付接口,探索实现随时随地交费等功能,使得远程报名、异地报名成为现实,同时,对于后期数据的二次处理也做了相应考虑,通过实现成绩分析,了解学生的报名详情,如第几次报名,前几次成绩变化曲线,未过学生各题型分数,得分低题目与标准分的差距,使得学生能有针对性地弥补学习中的不足。
轻应用模式业务系统的开发与实践为高校其它业务系统采用轻应用模式实现奠定了实践基础,提供了实用的借鉴模式,经研究分析,下一步在普通话测试报名、工资查询等环境下可率先借鉴应用。
同时,业务系统的云架构实现有助于整个大学云的建设,同时也是大学云的基础,通过独立点业务系统的研发,随之将多个点互联,最终形成以数据云为支撑的大学云,是我们走向智慧校园的有效途径。
参考文献:
[1] Jeffrey Richter. CLR via C#[M].北京:清华大学出版社,2014.
[2]陈小龙.微信公众平台开发实战与应用案例[M] .北京:清华大学出版社,2015.
[3]杨威,杨陟卓.大学云架构与大数据处理建模研究[J].中国教育信息化,2015(1):16-18.
[4]闫培哲,王永红. 基于Web的CET网报平台设计[J].软件导刊,2015(5):105-106.
[5]刘征.基于社交网络的图书馆资源整合与服务研究[J].图书与情报,2014(6):117-119.
[6]杜炤,刘婷,刘奇峰.基于社交网络服务的个人知识管理系统研究[J].华东师范大学学报(自然科学版),2015(3):79-86.
[7]倪志宏.基于微信公众平台的掌上高校网络信息服务系统研究[J].合作经济与科技,2013(7):127-128.
[8]舒子芩.开拓高校就业信息服务新社交媒体渠道[J].云南社会主义学院学报,2014(2):214-215.
[9]唐文捷,刘士成,张伍菲,朱鹏辉.轻应用( Lapp )——App未来发展趋势[J].三峡大学学报(人文社会科学版),2014(12):27-29.
[10]白浩,郝晶晶.微信公众平台在高校教育领域中的应用研究[J].中国教育信息化,2013(3):78-81.
[11]白明凤,匡惠华.高校图书馆移动信息服务中轻应用模式的应用及其借鉴[J].情报资料工作,2014(4):78-81.
[12]罗涛,朱莹.基于WAP的移动图书馆的研究与实现[J].新技术应用,2014(8):66-71.
[13]孟勇.基于 WAP 的移动图书馆系统的设计与实现[J].现代情报,2010(9):92-95.
[14]微信公众平台开发者文档[EB/OL].http://mp.weixin.qq.com/wiki/.
[15] 何小鹏.轻应用,不只是Web APP[EB/OL]. http://www.geekpark.net/topics/188049.
(编辑:鲁利瑞)