互联网+创客模式高校大学生创业APP建设与维护研究
2018-11-09
(亳州学院 电子与信息工程系,安徽 亳州 236800)
0 引 言
创客精神是创业创新精神在互联网+时代的表现,创客的出现充分响应了“大众创业,万众创新”的号召[1]。一个科学的服务管理平台能够有效地指导和支持大学生创业,探索在互联网+创客模式下高校大学生创业APP建设与维护。对于创业APP的建设,采用了B/S和C/S的混合架构[2],共设计创业项目申请、创业项目审核处理、创业项目统计、创业项目成果展示、创业项目信息查询以及系统管理六大功能。其中,为了提高项目信息查询的效率,APP采用了增强版的Boyer-Moore-Horspool文本匹配算法[3]。对于创业APP的维护,分别从升级更新和后台数据备份两个方面入手,详细地阐述了APP的维护过程。
1 需求分析
大学生创业APP涉及的主要角色有二级学院、高校创业管理部门、企业、指导教师、学生,APP需要为不同的角色实现不同的功能,以满足用户角色的需求。系统需要实现的主要功能包括了创业项目申请、项目审核处理、项目统计、项目成果展示以及项目信息查询。上述各个功能的需求分析如下所示:
创业项目申请:项目申请是一个重要的功能,涉及的主要用户是学生。移动端的APP或者web页面登陆系统后,学生可以新增创业项目,然后填写创业项目的申请书,并输入创业项目相关信息。学生可以对申请书进行保存、修改、删除以及提交等操作。
创业项目审核处理:二级学院、高校创业管理部门、企业、指导教师需要对项目进行审核。学生提交申请书后,首先由指导教师进行审核,若审核不通过,则需要填写审核意见,并将申请书退回修改或者拒绝申请;若审核通过,则提交上一级进行进一步审核。教师审核通过后,由二级学院负责审核,最后由高校创业管理部门或者企业进行审核。
创业项目统计:创业项目统计功能是高校和企业对创业项目进行汇总的途径,能实现创业项目统计和报表生成的功能。
创业项目成果展示:高校创业管理部门通过成果展示功能,将学生的创业项目成果发布在移动端的APP以及web端。
创业项目信息查询:创业项目信息可以通过关键字进行查询,也可以通过条件进行查询。条件查询功能允许用户通过设置条件来对项目进行筛选,用户可以使用项目名称、申请人名字、指导教师、所属二级学院等信息来查询项目信息。关键字查询支持用户进行模糊查找。
2 创业APP建设
2.1 系统架构
文中的高校大学生创业APP采用了B/S架构与C/S架构的结合,移动端APP使用C/S架构,web端使用了B/S架构。系统的总体架构如图1所示。
图1 系统架构图
Interface layer是视图层,为用户提供界面。Data access layer是模型层,负责数据持久化,提供了访问数据库的接口。Logic layer是控制层,Interface layer直接与Logic layer交互,负责从视图层接收用户输入的数据并进行数据处理,同时实现本APP的主要逻辑功能;Logic layer通过Data access layer对数据库进行相关操作。
2.2 功能模块设计
系统功能模块图见图2。
图2 系统功能模块图
2.3 系统详细设计过程
由于篇幅有限,系统管理和创业项目信息查询两个功能的详细设计以及实现过程。
2.3.1 系统管理
权限管理和系统登陆是系统管理模块中的最为重要的两个功能。
权限管理的主要职责包括了角色创建和分配权限。在创建角色时,系统管理员输入角色的名称,系统判断该角色是否存在,若已经存在,则显示提示信息,若不存在,则创建该角色。在分配权限时,系统管理员首先选择需要对其分配权限的角色,然后为该角色选择相应的权限,并提交系统进行验证。操作成功后将相应的数据保存至数据库。
用户在登陆时,需要输入用户名、密码,其中,Android客户端APP的登陆界面如图3所示。
图3 Android客户端的APP登陆界面
图3所示的登陆Activity视图中包含了许多组件(如登录按钮),这些组件是通过布局管理器进行管理的,而布局管理则是通过布局文件实现的[4]。
2.3.2 创业项目信息查询
项目信息查询的功能包括了关键字模糊查询和条件筛选查询两部分,下面介绍利用关键字进行模糊查询的具体实现算法。用户通过在APP或者Web输入需要查询的关键字,经过logic layer进行处理后使用数据库接口查找访问数据库,并将结果返回到APP或者Web页面。APP采用了一种有效的基于信息检索(IR)排序的关键词搜索算法来进行关键字模糊查询。首先,利用图对数据库进行建模:将数据库中的表映射成模式图中的节点;当表i的主键是表j的外键时,节点i与节点j之间存在边的连接。对于包含一组关键词的查询Q,数据库会返回一个包含元组树集合的结果图。该元组树的叶子节点至少包含了查询Q中的一个关键词并且每个元组仅在元组树中出现一次。元组树的生成过程如算法1所示。
算法1 元组树生成算法输入:查询Q, 模式图G输出:结果图AG1: Initialize ,R0,RF ; //2: EQ←Enqueue(RQ,RF); //3: while E.size() != 0 do4: hq←Dequeue(EQ); //5: if hq.size() >= MAX then6: return ;7: else8: for each Ri in hq do9: for each Rj in hq do10: if Ri is connected to Rj do11: EQ←Enqueue(Ri);12: EQ←Enqueue(Rj);13: end if14: end for15: end for16: end if17: end while
为了生成给定查询的结果,算法首先查找元组树中的所有元组,然后使用元组集和模式图生成所有的结果图,最后,计算结果图中的连接(join)表达式,以生成结果的元组树。
接下来提出一种基于信息检索(IR)排序的关键词搜索算法,用于关系型数据库的关键字模糊查询。首先将“文档(document)”定义为存储在文本数据库中的基本信息单元。计算给定查询和文档之间的相似值,并根据该相似值为文档排序。假设有元组树T,元组树中每个文本的列值为{D1,…,Dm}。将Di称为文档,T称为父文档。然后计算查询Q和父文档T之间的相似度,如公式1所示。相似度是查询Q向量与父文档T向量的点积。
S(Q,T)=∑k∈Q,Tω(k,Q)·ω(k,T)
(1)
其中,ω(k,Q)是查询Q中关键词k的权重,用k出现的频率来代替该权重;ω(k,T)是元组树中关键词k的权重,其计算方式如公式(2)所示。
ω(k,T)=∑Di∈Tω(k,Di)/T
(2)
[T]是元组树T的基数。为了提高查询的效率,在计算ω(k,Di)的时候需要考虑元组树的大小SizeT、文档的长度SizeD、文档的频率FreD以及文档中单词的频率FreT,其计算方式如公式(3)所示。
(3)
3 系统维护
3.1 APP升级更新
为了更有效地维护高校大学生创业APP,APP的自动升级更新功能就显得尤为重要。基于C/S架构的APP拥有一个庞大的客户端,这为APP的升级更新工作带来了较大的工作量。在升级更新APP前,首先要进行更新检测。当用户打开APP时,APP会自动检测是否有新版本,用户也可以手动进行更新检测。以Android操作系统为例,实现自动/手动更新检测的代码如下所示:
UpdateManager.from(this)
.compare(UpdateManager.COMPARE_VERSION_NAME)
.downloadUrl("http://www.collegestudentstartupappapk.edu.cn")
.lastestVerCode(3.12)
.minVerCode(0.11)
.lastestVerName("3.12")
.update();
APP的升级更新功能使用了Android官方提供的下载库DownloadManager[5]。DownloadManager是一个处理长时间运行的HTTP下载的系统服务。 客户将指定URI的内容下载到特定的本地文件夹。DownloadManager将在后台执行下载,发生故障时能够重试下载并使系统重新启动。UpdateManager主要实现了检测和新版本下载功能,其主要的Java代码如下所示:
public UpdateManager from (Context con) {
this.mCon = con;
mCurVerName = LibUtils.getVerName(mCon);
mCurVerCode = LibUtils.getVerCode(mCon);
return this;}
public UpdateManager lastestVerName(String name) {
this.mName = name;
return this;}
public UpdateManager update() {
if (!needUpdate) {
Toast.makeText(mCon, Toast.LENGTH_SHORT).show();
return this;
} else {
check ();
return this;}}
private void check () {
if (isCheck) {
mListener.onCheckResult(RESULT_FORCE);
return; }
switch (mCom) {
case COMPARE_VERSION_CODE:
comVerCode();break;
case COMPARE_VERSION_NAME:
comVerName();break; } }
private void download() {
Uri fileUri = Uri.parse("file://" + mApkPath);
Uri uri = Uri.parse(mUrl);
DownloadManager downloadManager = (DownloadManager) mCon
.getSystemService(Con.DOWNLOAD_SERVICE);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setFileUri(fileUri);
needUpdate = false;}
3.2 APP后台数据备份
3.2.1 数据库备份
备份数据库对于数据安全来说非常重要,当发生问题时(例如系统崩溃,硬件故障或用户错误地删除数据)可以快速地恢复数据并再次启动运行。在升级数据库之前,备份也是必不可少的安全措施。APP使用了MySQL关系型数据库系统[6]。MySQL提供了多种备份策略,APP利用MySQL提供的mysqldump方法进行数据备份。mysqldump方法能备份各种各样的表,还能对InnoDB表进行一致性在线备份。
3.2.2 云备份
云备份(cloud backup)是一项为用户提供文件系统备份、存储和恢复服务。在线备份提供商是向最终用户(或客户)提供此类服务的公司。这种备份服务是云计算的一种形式。在线备份系统按用户设定的模式进行备份操作,系统会进行每天一次的强制备份,运行时间一般在晚上。同时云备份服务还需要实时捕获用户系统的变化,在线备份系统收集、压缩,加密并将数据传输到远程备份服务提供商的服务器。
4 结 论
为了规范高校大学生创业过程的管理,在互联网+创客模式的背景下,探讨了高校大学生创业APP建设与维护。阐述了创业APP系统管理、创业项目申请以及创业项目信息查询三个功能的部分设计以及实现,并介绍了APP的升级更新和后台数据备份的主要方法。后续的研究工作主要集中在APP的智能化,为APP添加数据挖掘模块,实现创业项目的推荐和自动推送功能。