基于微信的研究生信息服务系统的设计与实现

2016-02-23 06:25邱炳发
计算机技术与发展 2016年1期
关键词:服务器研究生公众

邱炳发,马 燕

(1.重庆师范大学 计算机与信息科学学院,重庆 401331;2.重庆师范大学 研究生院,重庆 401331)

基于微信的研究生信息服务系统的设计与实现

邱炳发1,马 燕2

(1.重庆师范大学 计算机与信息科学学院,重庆 401331;2.重庆师范大学 研究生院,重庆 401331)

微信是腾讯公司于2011年推出的一款具有通讯、社交、平台化功能的移动社交软件,在研究生群体中使用广泛,构建了移动互联网环境下一种新型的信息发布环境。文中分析了目前研究生信息无法在移动设备上友好兼容显示的现状,深入研究了微信及其公众平台在研究生信息服务应用的可行性。结合使用JavaWeb、JQuery、HTML5等Web开发技术,设计了研究生信息服务系统的框架、功能和架构,通过微信开放接口与校内外系统对接,最终实现了基于微信的研究生信息服务系统,为师生提供随时随地的信息交流与服务。

微信;研究生;信息服务;JavaWeb;MVC

Key words:WeChat;postgraduate;information services;JavaWeb;MVC

0 引 言

随着信息技术的发展,数字化校园已成为高等院校教学评价考核的重要指标之一。为了方便师生的学习、工作,各研究生培养单位已建立起以计算机技术应用为标志的研究生教育管理信息系统[1],构建了各种信息发布、宣传门户网站。

但是,随着移动互联网及移动智能终端的发展与普及,原有的Web架构发布的信息已无法在移动设备上兼容友好的显示,不能满足研究生移动用户的新要求,尤其是用户在只需某些简单的查询和交互功能时,采用传统方式操作显得非常繁琐和不便,而且这些传统的网络信息服务系统并不能实现随时随地的信息交流与服务。

与此同时,据第33次《中国互联网络发展状况统计报告》显示,截至2014年6月,我国手机网民规模已达5.27亿,学生是中国网民中最大的群体,占比25.1%,互联网普及率在该群体中已经处于高位[2]。为此尝试设计基于微信的研究生信息服务系统解决这些问题。

1 系统支撑平台与关键技术

目前,高校信息化系统拥有多种移动终端信息发布方式,一类是基于网络浏览器来运行的Web App(网络应用程序),其具有适用范围广,部署方便,升级简单的优势,其缺点在于用户浏览体验差,且不支持推送。另一类是基于移动操作系统开发的原生应用程序,其优点在于用户体验好,支持推送,但是其不支持非智能手机,且针对不同的平台(IOS,Android,Windows Phone)需要开发和维护多个版本的客户端,不便于更新。对此,微信提供了一个可行的解决方案。

1.1 微信及其微信公众平台

微信是腾讯公司于2011年初推出的一款可以发送图文、语音、视频信息,支持多人语音对讲等功能的移动社交软件。微信打破了传统电信通信和移动互联网的界线,实现了跨通信运行商,跨操作系统平台的信息传播。2014年第三季度,微信月活跃用户数达到4.68亿,作为时下最热门的移动社交平台,微信正在改变人们的沟通方式和生活方式[3]。目前在研究生群体中,微信的使用率很高,几乎是研究生智能手机装机必备应用。

微信公众平台(简称“公众平台”)是腾讯公司在微信的基础上新增的功能模块,公众号所有者可以通过这一平台群发文字、图片、语音、视频、图文消息五个类别的内容[4]。在开发模式下,使用公众平台的开发接口,公众号所有者既可设定关键字进行自动回复,实现“对话即服务对话即搜索”[5]的新型服务方式,又可在第三方服务器实现公众平台接口,接收用户的微信消息,并可按需回复。此外,开发模式还提供了更多更高级的功能和体验,如会话界面的自定义菜单、获取更多类型的消息等服务[6]。

因此可以利用微信提供的开发接口,将公众平台与校园信息系统进行对接,将其打造成一个实时的移动信息查询发布平台。在开发者模式下,公众平台提供了一套通用的数据交换结构模型和验证规则,平台所有者只需按照这个规范编写对接程序[7],就可以接收普通用户通过微信服务器转发给公众平台的图文声像等信息内容,并且可以实现第三方应用接口,根据后台设定处理用户发来的信息。

1.2 JavaWeb开发技术

该系统主要采用JavaWeb技术、以MVC框架实现微信公众平台开发接口,创建基于微信的研究生信息服务系统。系统采用JDBC数据接口访问技术,并将对数据的常用操作进行封装;将微信公众平台开发接口以及对接校内系统的API实现方法进行封装,提高代码的重用性。在用户微信会话界面、Web界面使用HTML5、JQuery进行设计。

(1)JavaWeb技术与MVC框架。

JavaWeb是用Java技术来解决相关Web互联网领域的技术总和。JavaWeb的核心技术包括JSP、Servlet。文中系统采用现今最流行的MVC(Model-View-Controller,模型-视图-控制)框架进行设计与开发。

MVC三层结构模型,以控制器为中心,控制器负责接收视图的请求,并向视图发送响应消息,同时与模型进行交互,获得数据库信息,或向数据库中写入信息[8]。如图1所示,首先用户通过提交请求与表现为Servlets的控制器组件进行交互;接下来控制器实例化表现为JavaBeans的数据模型组件,并根据应用的业务逻辑操作相应的数据模型;相关模型创建后,控制器调用为用户显示表现为JSP的视图,同时视图与模型可交互操作,获取并为用户显示相关数据。通过MVC三层模型设计,显示逻辑、处理过程和应用逻辑分别由不同的组件来实现,这样可以重用这些组件并进行交互,使得整个系统责任明确、接口清晰,加快了软件的开发过程。

图1 MVC三层结构模型

(2)JQuery框架。

JQuery是一个免费、开源的,使用MIT许可协议的轻量级JS库,它能够兼容CSS3层叠样式以及各种浏览器,使用户方便地处理HTML、Events,实现动画效果,并方便地为网站提供AJAX交互。它强调的核心理念在于写得少,做得多。JQuery的语法设计可以使开发者更加便捷地操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能[9]。

在基于微信的研究生信息服务系统的UI以及微信客户端显示利用JQuery框架实现与后台系统的快速交互。

(3)HTML5。

HTML(HyperText Markup Language)即超文本标记语言,是一种用于描述网页文档的标记语言,它由浏览器直接执行,而不需要复杂的编译过程。HTML5作为下一代超文本标记语言,在功能特性上加入了一些新特性,如语义化的标签、音频和视频的直接支持、矢量绘图、支持网页内容编辑、Web Socket、地理定位、多线程处理以及离线存储等[10]。

运用HTML5的离线存储功能,在研究生信息服务系统终端,当微信处于离线模式时,微信用户依然可以打开订阅号浏览已经加载的内容。HTML5丰富的标签为微信会话界面显示带来炫丽的画面,其视频控制标签还可为终端应用提供动画视频播放。

2 系统总体设计

2.1 系统整体框架设计

系统由公共网络和校内网络组成(见图2[7])。公共网络部分主要包括已经预装微信软件的移动设备、微信服务器。在公共网络上,微信用户向腾讯微信服务器发送查询指令或者请求,微信服务器接收指令或查询后,通过微信公众平台接口转发信息至第三方服务平台,等待处理结果,然后将消息处理结果反馈至微信用户,并在客户端显示该信息。校内网络部署了第三方服务平台,通过这个平台与校内的门户网站、OA办公系统、教务系统、数据库系统进行连接,第三方平台通过实现校内各系统提供的API进行业务通信处理,将微信的请求按照消息接口回复给微信服务器。在校内网络设置微信第三方服务器,既可以保证校内系统的安全性,又可提高微信服务的反应速度。

2.2 系统功能设计

基于用户需求,结合业务逻辑设计微信服务功能。从研究生培养单位的实际和微信可以实现的功能出发,研究生信息服务公众平台的功能可分为三大功能模块(见图3):一是自动应答模块;二是信息推送模块;三是互动交流模块。此三大功能模块中,根据实际情况,通过公众平台管理后台以及第三方服务,分成不同的信息服务目录,编辑并为用户提供各类服务内容。

图3 系统功能结构图

(1)自动应答模块。该模块功能主要涵盖用户常规咨询的内容,例如研究生培养单位简介、招生就业政策、研究生培养、学科学位建设、研究生服务会指南等。在设计中,可以事先制定好上述内容文档,师生通过微信发送特定的指令查询时,研究生信息服务公众平台会自动调用响应文档回复到师生的手机中。例如发送“招生政策”到研究生信息服务公众平台,就能得到研究生培养单位相关的招生政策信息的回复。

(2)信息推送功能模块。该模块的主要内容是实现为微信师生用户提供各类信息服务和对此进行宣传推广。例如研究生院的重要通知、各类学术讲座、展览参观活动预告、时讯快递等,将研究生院工作动态定期推送至微信师生用户的智能手机上,从而让师生及时掌握研究生的最新工作动态,引起他们的关注、参与。

(3)互动交流功能模块。在传统的资讯工作中,师生要得到一对一的交流,需要师生亲临现场与咨询员交流相关政策。在微媒体中,微博难以实现文字、语音、视频一对一的即时交流;而微信却可以实现三者的协同运用,使师生微信用户在校内校外亦可体验到亲临现场与参考咨询员现场交流一样的效果。

2.3 系统架构设计

微信公众平台提供与用户进行信息交互,自定义菜单等功能接口。欲加入第三方平台数据,例如校内科研系统、成绩管理系统等数据平台,实现微信平台与对第三方服务器对接,需要借助Web服务来搭建服务和数据聚合的平台,为微信用户提供更加强大而便捷的功能服务。

研究生信息服务系统采用B/S系统架构,并借助Eclipse集成开发环境、MySQL数据库平台以及Tomcat7.0 Web服务器进行系统建设部署。系统架构采用当前流行的Spring MVC的三层架构开发设计,如图4所示,即表现层、业务逻辑层、数据访问层。

图4 系统架构设计图

系统不仅实现微信开发模式中的所有接口,实现了公众账号所有功能以及与第三方服务器对接,而且能快速接收与响应微信服务器发送的HTTP请求。

3 系统实现

根据上文的描述,如图5所示,参与微信消息交互的实体主要有三个:普通微信用户、微信服务器、管理后台或第三方服务平台。其消息交互流程:普通用户通过微信客户端向公众号发送消息,消息首先会被微信服务器接收;微信服务器接收到消息后,会根据开发者在接口配置信息中填写的URL,将消息通过HTTP POST的方式传递给第三方服务器或者直接交给管理后台处理;第三方服务器接收到消息后,根据业务逻辑进行相应的处理;处理完成之后,第三方服务器会将处理结果返回给微信服务器;微信服务器再将第三方服务器处理结果通过公众号发送给用户[11]。通过对公众平台消息处理机制的分析,在平台上可以实现“一对一”和“一对多”两种通信方式。一对一模式下,用户与公众平台进行一对一的信息交互。一对多模式下,平台管理员通过对特定群体群发消息实现信息精准的推送。

图5 微信公众平台通信机制

3.1 微信接口实现实例

在微信公众平台网站高级功能—开模式页,注册成为开发者填写用于开发者接收微信服务器数据接口的URL和生成的安全验证信息Token及其相关信息。提交注册开发者信息后,微信服务器通过发送携带四个参数的GET请求到填写的URL上。GET请求携带四个参数,见表1。

表1 微信接口验证参数

开发者通过检验signature对请求进行校验。若确认请求来自微信服务器,则原样返回echostr参数,接入成功;否则接入失败。

其实现关键代码如下:

public boolean validateApplyMessage(String signature,String timestamp,String nonce,String echostr) {

if(echostr.toString().isEmpty()){

return false;

}else{//与微信息与接口验证对接

if (checkSignature(signature,timestamp,nonce)) {

return true;

} else {return false;}}}

private boolean checkSignature(String signature,String timestamp,String nonce) {

String[] //参数校验tmpArr={WeChatCst.TOKEN.toString(),timestamp,nonce};

Arrays.sort(tmpArr); //将token、timestamp、nonce三个参数进行字典序排序;

String tmpStr=this.ArrayToString(tmpArr);//将三个参数字符串拼接成一个字符串

tmpStr=this.SHA1Encode(tmpStr);//进行sha1加密

if(tmpStr.equalsIgnoreCase(signature)){//开发者获得加密后的字符串可与signature对比

return true;

}else{return false;}

}

3.2 数据库操作实例

将系统中直接与数据库操作的方法封装在一个数据操作包中,对于经常调用的SQL相关操作都设置在一个自定义数据库操作类DataHelper中,例如:

//连接数据库

public static Connection getConnection() {

Connection connection=null;

try {//加载驱动Class.forName(driver_Name);

} catch (ClassNotFoundException e) {

e.printStackTrace();}

//获得数据库连接对象

try {connection=DriverManager.getConnection(urlString,usernameString,passwordString);

} catch (SQLException e) {e.printStackTrace();}

return connection;}

//返回数据查询结果集

public ResultSet executeQuery(String sql) throws Exception {…//具体的操作方法}

//返回数据更新状态,例如增删改

public boolean executeUpdate(String sql) throws Exception {…//具体的操作方法}

3.3 系统登录权限设置

为了保证系统的安全运行和保证系统推送消息的实时性,针对不同的用户赋予不同的权限,防止越权操作行为的发生,以及避免引起数据与管理的混乱。系统不仅对登录用户进行用户名和口令验证,还根据不同角色不同部门,分配不同的操作权限。例如针对信息编辑人员可设置消息编辑和信息群发以及对消息进行回复,而对于管理人员不但拥有以上所有功能,而且还可以查看发送或编辑消息的历史记录,以及对不同的下级角色赋予不同的权限。

3.4 信息查询实现

研究生培养单位在信息化建设过程中,已建成各种异构的信息系统。根据系统提供的对外信息接口、数据格式和发布位置的不同,不管其采用标准的Web Service规范、自定义的HTTP或SOCKET方式,还是直接进行数据库连接,都可以通过实现系统提供的接口,获取现有信息系统的数据,使校内信息化资源能够在微信平台上加以整合,实现各种便捷的信息查询。

例如研究生科研情况查询实现,在用户通过将微信号与科研系统进行绑定的情况下,为用户定义一个命令“KYCX”,当用户输入命令时,通过微信客户端发往公众平台账号,微信平台服务器将该信息进行数据封装,通过HTTP POST方法提交到对应的第三方服务器。

接收文本消息数据结构:

第三方服务器将执行查询操作,连接到后台科研信息数据库查询当前用户参与科研情况,并将查询结果进行封装,然后发送至微信服务器。微信服务器接收到该信息并将信息内容发送到用户的微信对话框里显示,完成整个查询过程。

发送文本消息数据结构:

4 结束语

文中通过研究和分析微信及其公众平台在研究生信息服务应用的可行性,并借助Eclipse集成开发环境,应用JavaWeb、JQuery、HTML5等Web开发技术,设计并最终实现了基于微信的研究生信息服务系统,完成了项目初期的基本要求。文中是对微信在研究生教育教学信息管理方面应用的探索性研究,目前系统基本功能已经实现,但还需进一步整合与完善。

[1] 张 辉,刘明利,生玉海,等.研究生教育管理信息化建设的实践与认识—以北京大学为例[J].学位与研究生教育,2013(5):36-40.

[2] 中国互联网络信息中心.第34次中国互联网络发展状况统计报告[J].互联网天地,2014(7):71-89.

[3] Tencent.Investor relations - financial releases - 2014[EB/OL].[2014-08-13].http://tencent.com/en-us/content/ir/news/2014/attachments/20140813.pdf.

[4] Wikipedia.WeChat[EB/OL].[2014-08-20].http://en.wikipedia.org/wiki//WeChat#cite_note-8.

[5] 冯大辉.微信公众平台:对话即服务,对话即搜索[EB/OL].[2014-06-19].http://dbanotes.net/review /wechat_platform.html.

[6] 腾讯客服,公众平台产品专区.走进微信公众平台(基础篇)[EB/OL].[2014-06-19].http://kf.qq.com/faq/120911VrYVrA-131112R7Rnqa.html.

[7] 夏凌云,韩立峰,王长庆.利用微信公众平台打造校园信息移动发布平台[J].信息技术,2014,38(2):183-185.

[8] 李 宁.Java Web开发技术大全—JSP+Servlet+Struts2+Hibernate+Spring+AJAX[M].北京:清华大学出版社,2009.

[9] 张旭红,刘渭滨.面向移动平台的新闻资讯系统的设计与实现[J].计算机应用与软件,2014,31(1):5-8.

[10] 刘华星,杨 庚.HTML5—下一代Web开发标准研究[J].计算机技术与发展,2011,21(8):54-58.

[11] 柳 峰.微信公众平台应用开发:方法、技巧与案例[M].北京:机械工业出版社,2014.

Design and Implementation of Postgraduate Information Services
System Based on WeChat

QIU Bing-fa1,MA Yan2

(1.School of Computer and Information Science,Chongqing Normal University,

Chongqing 401331,China;

2.School of Postgraduate,Chongqing Normal University,Chongqing 401331,China)

WeChat,a mobile social application software with function of communication,social interaction and platform architecture which first released in January 2011 by Tencent,is widely used in postgraduates and has constructed a new type of mobile information publishing environment.The present situation of postgraduate information service system which cannot display the information on mobile devices is analyzed.The viability of WeChat and its public platform in the postgraduate information service application is studied.By applying the JavaWeb,JQuery and HTML5 and other Web development technology,design the framework,function and structure for postgraduate information service system.By implementing WeChat open API and connecting with other system,finally achieve the postgraduate information service system based on WeChat.The system can be used to provide teachers and students with information communication and services anytime and anywhere.

2015-01-03

2015-05-07

时间:2016-01-04

重庆市研究生科研创新项目(CYS14135);重庆市教委科技项目(KJ120617);重庆市教育科学“十二五”规划2013年度教育技术专项(2013-JS-003)

邱炳发(1990-),男,硕士研究生,CCF会员,研究方向为云计算与移动应用开发;马 燕,教授,博士,研究方向为人工智能、语义网格、主动网络、云计算。

http://www.cnki.net/kcms/detail/61.1450.TP.20160104.1608.086.html

TP311

A

1673-629X(2016)01-0190-05

10.3969/j.issn.1673-629X.2016.01.041

猜你喜欢
服务器研究生公众
公众号3月热榜
服务器组功能的使用
公众号9月热榜
公众号8月热榜
公众号5月热榜
理解Horizon 连接服务器、安全服务器的配置
PowerTCP Server Tool
蔡智及其研究生作品选登
沈铭存研究生作品选
计算机网络安全服务器入侵与防御