张尔喜++先晓兵++王雪锋
摘 要:基于WebAPI技术的移动端学生综合服务平台,整合了学校的教务系统、一卡通系统、图书管理系统等,同时结合微信企业号实现了学生在移动端的各类查询应用及教学相关的服务应用。该平台设计通过API服务来打通各个系统之间不同数据库的数据整合,同时结合Html5技术来实现移动端服务,为高校信息化建设中的移动端建设提供一种解决方案。
关键词:WebAPI;教学服务微信企业号;Html5
中图分类号:TP311.1 文献标识码:A
1 引言(Introduction)
WebAPI[1]是一个简单的构建HTTP服务的新框架,支持原生OData,返回JSON、XML等格式,并且可以添加其他扩展类型,对各种平台具有较好的兼容性,也可以被其他平台整合,有效地减轻了以SOAP标准的WebService、WCF框架技术开发困难程度,提高了程序员的开发效率。目前许多高校现有信息系统通过数据同步或者整合,通过PC端访问提供信息服务,存在数据更新不及时、学生需求跟不上等问题,不能满足学生服务需要。随着互联网技术的发展、移动设备的广泛普及和H5技术的发展,移动端学生综合服务平台可以快捷方便地为学生服务,从而使学生服务工作实现从传统的PC端移植到移动的智能设备。本文介绍一种采用WebAPI为技术架构的移动端学生综合服务平台的设计与实现。
2 平台工具及技术(Platform tools and technologies)
2.1 WebAPI
ASP.NET WebAPI[1](简称WebAPI)是一个开源的、理想的、构建REST-ful服务的技术,是一个轻量级的框架,并且对智能手机等限制带宽的设备支持得很好。利用Http作为应用层协议的特征,它也支持MVC特征,像路由、控制器、action、filter、模型绑定、控制反转或依赖注入、单元测试。Http请求除利用URI目标资源外,还需要通过Http方法指名GET、POST、PUT、DELETE等方法来Request或Response请求或返回媒体类型,可以用XML格式来表示,也可以用JSON格式来表示。基于REST-ful架构WebAPI的优点:通用、轻量级、灵活、优化的情况下,性能更有优势,能够直接利用Http的动态网页技术开发接口与功能,對交互数据格式没有明确的规定,使得其可以更好地使用在特定的软件运行平台。
ASP.NET WebAPI是基于.NET Framework的同时借用了ASP.NET MVC设计理念,便于.NET开发者接受和使用,是构建RESTFul应用的最佳平台。微软从ASP.NET MVC4开始引入Web API,如今已经升级到WebAPI2.2版本。
2.2 ORM框架简介
ORM[2]框架(Object Relation Mapping)的思想是根据实体类和数据表之间的映射关系动态进行sql脚本的生成。一般采用元数据来表示对象-关系映射细节。元数据一般采用XML格式,而且存放在专门的对象—映射文件中。只要提供了持久化类与表之间的映射关系,ORM框架在运行时候就能参照映射的文件信息,把对象持久化到数据库中。元数据(Metadata)是描述其他数据(data about other data)或者说是作用在提供某些资源的有关信息的结构数据。元数据就是描述某些信息资源或者数据等对象的数据,它的使用目的是:识别资源、评价资源、追踪资源在使用过程中的变化;可以实现简单高效地管理大量网络化数据;实现信息资源地有效发现、查找、一体化组织和对使用资源的有效管理。
.NET平台下常用的ORM框架主要有EF(ADO.NET Entity Framework)、Nhibernate、SQL Mapper、Automapper、FluentData、Dapper、EmitMapper等,ORM的使用便于平台的管理与维护。
2.3 OAuth2.0协议简介
OAuth2.0[3]是目前OAuth协议的最新版本。OAuth2.0不向下兼容OAuth1.0版本,但是它保留了之前版本的OAuth协议的相同框架。OAuth2.0更为关注用户端开发人员的使用方便,也为Web应用程序、桌面应用程序及手机、智能家居设备提供专门的认证流程,因此该协议得到广泛应用。
OAuth2.0认证和授权在使用的过程中主要涉及三个方面:服务提供方、用户、客户端等三个方面。服务提供方是用户使用服务提供方来提供受保护的资源;用户是存放在服务提供方的受保护资源的拥有者;客户端是要访问服务提供方的资源要进行认证和授权。
OAuth2.0是一种不需要任何加密的认证方式。基于这种认证方式是建立在现存的cookie验证方式的架构上,然后将自身的token作为密钥secret,通过https请求,从而简单替换了基于HMAC和token secret加密方式的请求。它对签名进行了简化,实际上对签名的支持就是对签名机制的极大的简化,使用一个secret来代替。对角色进行分开处理,它主要分为两个角色,一个是Authorization server,一个是Resoursce。
目前国内主流的各大移动平台都提供API接口及OAuth2.0认证方式,方便用户接入。比如腾讯QQ、微信、微博、新浪微博等都提供了该认证接口。
2.4 移动平台技术
目前移动平台开发技术主要有三种:移动Web[4]、Native[4]、Hybrid[5]。
移动Web(Web App)开发:使用的语言是HTML、CSS、JS、H5等,语言简单易学,能够开发移动应用网站,具备很好的跨平台性。优点是开发成本低,能够跨平台,具有开发成本低、周期短、使用方便、维护简单,但是体验效果不好,而且不能提交到应用市场。endprint
Native原生开发(Native App)技术:主流移动平台是IOS和Android,使用的语言是Object-c、swift、Java等能够开发移动APP,利用操作系统自身提供的开发方式,具有向下访问,提供原生的支持,要做到跨平台需要熟悉Android和IOS的知识。优点是应用的性能好,体验好,适配起来相对容易,技术比较成熟,能和原生的平台API无缝对接,能打造更优质体验。但是学习成本高,需要开发多套平台应用,比较麻烦。
Hybrid混合(Hybrid App)开发:这种开发是将移动Web和Native原生技术结合起来,通过简单的Web语言编写前端,原生技术提供各项功能,可以跨平台。优点是Hybrid App可以跨平台开发,周期短,成本低,又能发挥Native App体验和性能优势。现在有很多支持这种开发模式的平台,比如微信、钉钉等。
移动端学生综合服务平台的设计与实现,不论从整体还是部分,均采用Hybrid混合方式来实现用户的体验和交互。
3 平台设计(Platform design)
3.1 平台总体框架
根据常熟理工学院实际情况,基于用户的需求,平台尽量做到界面简洁,操作方便。通过分析,平台总体模块功能图如图1所示,主要包括课程信息、实践教学、成绩信息、缴费信息、一卡通消费信息、图书借阅信息、个人信息等六个部分。平台主要服务对象是学生。学生登录时,通过OAuth2.0的认证方式进入自己的界面。
(1)课程信息:学生可以实时地查询当前学年学期的课程表,课程表标注了周一到周日上课的节次、上课的地点及单双周上课情况;
(2)实践教学:学生在上实验课或实践课时,通过扫描房间二维码或设备、家具等条形码来确定学生参加的实验或实践项目,达到房间、设备、家具使用情况的监控,也可以实现学生的考勤情况考察;
(3)成绩信息:保存了学生历年的每个学期的成绩信息,呈现的是学生每个学期每门课程的考试成绩、补考成绩、绩点等信息;
(4)缴费信息:记录学生每年缴费信息及贷款信息;
(5)消费信息:记录学生一卡通消费的各项信息,实时记录学生的消费信息,包括在食堂、浴室、超市等区域的消费情况;
(6)图书借阅:一个是当前的借阅信息,另一个是历史借阅情况;
(7)个人信息:相当于学生个人电子身份证信息,包含学生的姓名、学号、班级、学院、辅导员、电话、家庭住址等基本信息。
3.2 平台模块设计
平台共分为用户授权模块和应用模块两个功能模块。对于用户授权模块,用户通过绑定学号,然后OAthu 2.0认证通过后进入平台;对于应用模块,用户查询关于自己的课程、实验实践、成绩、缴费、消费、图书及电子信息。
3.3 平台工作原理
本平台虽然没有数据库设计,但是通过平台工作原理图2看可以看出,平台通过架设多种数据库的基础来实现平台中的各项功能。
4 平台功能实现(Platform function implementation)
本平台借助微信企业号[6]认证来实现。首先学生用自己的手机号或邮箱或微信号绑定自己的学号。绑定成功后,通过微信企业号的OAuth2.0认证成功后,进入到该学生的平台界面。
学生登录成功后即可查询自己的课程信息、成绩信息、一卡通信息、缴费信息、图书信息及电子身份证信息,同时还可以进行实验实践教学,如图3所示。用户通过认证后,平台从Session中获取用户的UserId信息,然后根据学号通过查询学生系统的数據库来获取用户的信息,在移动Web App中展现用户信息。
根据用户的UserId,通过WebAPI应用服务程序及ORM来实时查询教务系统、一卡通系统、图书系统、数据库中学生的课程信息、成绩信息、一卡通信息、图书,返回学生课程、实践教学信息、成绩、消费信息、图书的JSON格式的数据到Web App上,转换成学生相应的课程、实践教学信息、成绩信息、消费信息、图书信息,如图5和图6所示。
平台设计了学生在校期间与之学习生活相关的信息,提供了学生学习生活中的各种信息的查询,方便服务学生。
5 结论(Conclusion)
本文以WebAPI为技术架构开发的移动端学生综合服务平台,平台的主要功能方便学生使用,效率高,切实为学生服务。当然平台运行中还存在不足之处,如界面的美化,学生关注的实验教学课程查询、晨练查询、校历查询、支付功能等功能,应在以后的使用过程中不断地改进和完善。
参考文献(References)
[1] Wojcieszyn F.ASP.NET web API 2 recipes—A problem solution approach[J].Apress Berkely,CA,USA,2014:31-33.
[2] Sportelli F.Supporting conceptual modelling in ORM by reasoning[J].New Trends in Databases and Information Systems,2017:422-431.
[3] Yang R,Lau W C,Shi S.Breaking and fixing mobile app authentication with OAuth2.0-based protocols[J].Applied Cryptography and Network Security,2017:313-335.
[4] 王鑫.NativeApp与WebApp移动应用发展[J].计算机系统应用,2016,25(9):250-253.
[5] 杨中华,孙云涛.浅谈APP技术在当代大学校园中的应用性[J].教育管理信息化,2014(2):71.
[6] 李书钦,李敏,马时来.基于微信企业号的移动教学服务平台设计与实现[J].计算机时代,2016(3):25-26.
作者简介:
张尔喜(1981-),男,本科,助理工程师.研究领域:计算机科学与应用.
先晓兵(1971-),男,硕士,副教授.研究领域:数据挖掘,数据分析.
王雪锋(1969-),男,博士,副教授.研究领域:教育管理,食品科学.endprint