第一章 绪 论
1.1 课题研究背景
伴随着各高校教育管理改革的深入和发展,各学院基本实现了教学管理的信息化以及办公的自动化等。但是,针对学生实习实践的信息化监管系统却尚未构建。大多数学院依旧采用“放养”的形式管理学生实习实践,不仅缺乏在学生实习实践过程中的监管,更不能解决学生遇到困难时与教师进行实时交流的问题,进而影响学生实习质量。要实现高校本科生实习实践的监管仍面临很严峻的问题,首先院校没有实现与企业的对接,学生实习企业绝大多数需要自己寻找;其次本科生面临选择的多样化,如考研、考公或校外实习,造成实习人数的不确定性且数量少的问题。面对这样的形势与问题,传统定制化[1]开发方式就不适用实习实践管理平台的研发。传统定制化开发的主要问题有以下几点:(1)系统的灵活性差,不能方便灵活匹配不同学院的不同需求。系统平台针对具体院校的具体需求开发,很难满足其他高校的需求。(2)开发成本和运维成本高,面对多所高校的需求就需要开发多套系统平台。纵使开发难度没有增加,但开发人员的工作量却急剧上升,这样就导致开发成本的提高,近而影响到客户的采购成本。并且面临高校缺乏专业运维人员的问题,系统后期的运维需要交由软件提供商进行管理,又进一步加大运维的开销。(3)平台扩展困难且二次开发难度大,面对院校需求的不断变化,系统平台也需要不断地优化。传统定制化开发方式根据具体需求开发而成,组织结构比较紧密,扩展难度高。随着计算机理论的不断发展与进步,新型的技术开始成为发展的趋势。为消除传统定制化开发的问题,结合当前最为流行的开发模式 SaaS(软件即服务)[2],融入 SaaS模式下最为重要的技术之一:多租户技术[3-4],提出了基于多租户的院校实习实践管理平台研发。通过多租户技术的引用,在降低开发成本的同时,能够使不同院校可以通过该平台采购相应的服务,从而满足自己院校实习实践监管的具体需求。
...........
1.2 课题研究意义
校外实习实践是本科生学习阶段一个重要的环节,与校内所学知识理论进行互补,提前接触工作环境,充分提高学生的综合能力。所以基于多租户的院校实习实践管理平台的实现就变得尤为重要和迫切。使用该平台对实习人员进行监管有以下几点意义:(1)实现实习实践的信息化监管,有助于规范实习实践流程,提高师生的工作效率。(2)通过多租户实现,有助于降低开发、运维成本,同时院校采购成本也随之降低。按需采购,按需使用,使更多的院校能够负担起。为软件平台提供一个更加广泛的客户群体。(3)通过该平台,师生可以进行实时交流,指导教师可以及时对学生进行质量监控的同时,学生也可以实时获取教师的帮助。(4)信息化监管系统能够便捷的对学生实习信息进行采集,通过数据分析形成图表进行展现。系统平台预留企业接口,方便日后院校和企业进行对接。学生可以对企业进行评价打分,为下届学生实习实践提供建设性意见。该系统消除了各院校对学生实习实践监管的盲点,使学生和院校之间能够很好的进行信息交流,能够为学校提供大量的实习数据,有助于摆脱原先手工作业的方式,使院校更加科学、规范的对学生进行管理。通过多租户技术实现系统平台,租户可以根据院校需求选择性的租用服务,有助于增强平台的伸缩性和扩展性。同时学校不再需要专业的运维人员进行系统的维护,后期运维全部交由软件提供商管理。由于系统平台有多套变为一套,软件提供商也可以减少运维人员来维护,从而进一步降低成本。
............
第二章 开发技术和多租户数据存储模式
2.1 SpringMVC
Spring MVC 是一种基于 Java 实现了 Web MVC 设计模式的请求驱动类型的轻量级Web 框架,即使用了 MVC 架构模式的思想,将 Web 层进行职责解耦。基于请求驱动是指使用请求-响应模型,Spring MVC 可以简化我们日常 Web 开发[20]。Spring MVC 也是进行了优化的服务到工作者模式的实现。前端控制器是DispatcherServlet;应用控制器其实拆为处理器、映射器进行处理器管理和视图解析器进行视图管理;页面控制器/动作/处理器为 Controller 接口[21](仅包含 ModelAndViewhandleRequest(request,response) 方法)的实现(也可以是任何的 POJO 类);支持本地化(Locale)解析、主题解析及文件上传等;提供了非常灵活的数据验证、格式化和数据绑定机制;提供了强大的约定大于配置(惯例优先原则)的契约式编程支持。SpringMVC 处理请求的流程如图 2.1 所示。如图 2.1,用户首先发送请求给前端控制器,前端控制器根据用户发送的请求不同,选择不同的页面控制器,页面控制器收到请求后,进行处理,将请求参数绑定到一个对象。并对该对象进行处理,处理完成后返回一个数据模型,前端控制器收到请求,把数据模型传入相应的视图进行渲染,视图渲染完成后,返回控制器,前端控制器将响应返回给用户[22]。
.........
2.2 多租户技术
多租户技术(Multi-tenancy Technology)是一种软件结构技术,又称为多重租赁技术,主要是研究解决多用户公用一套系统平台下的数据隔离与资源共享的问题。随着近几年云计算技术的发展与成熟,多租户技术在 SaaS 服务领域[24]有着更大的发展和应用。如何在单一系统平台为不同租户提供更加友好的体验,提供定制化的同时又能够确保数据的隔离安全[25],是当下多租户技术所研究的主要方向之一。介于 SaaS 在 IT 行业的迅猛发展,在共用数据中心里,该如何以单一的系统架构和服务提供多数租户相同或定制化的服务[26],并且仍可以保障客户的数据隔离,让多租户技术成为 SaaS 技术下最重要的内容之一。利润作为软件开发推广的主动力,通过多租户的应用,从多租户长尾效应图[27]中可以看出,软件提供商可以获取更多的利润,与此同时,客户也可以相应的降低采购成本。传统定制软件往往是面向大型客户开发,有很高的开发和使用成本,小微企业很难承受的起。多租户模式下,面向多用户开发,降低了价格门槛,使更多的小微企业可以接受。通过长尾效应图可以发现,多租户模式下积累的利润(曲线下所占有的面积)与定制化开发积累利润相当甚至更多。
.........
第三章 基于多租户的院校实习实践管理平台需求分析......12
3.1 平台需求概述.......... 12
3.2 可行性分析..... 12
3.3 平台功能分析.......... 13
3.3.1 当前存在问题......... 13
3.3.2 教学管理要求......... 14
3.3.3 功能详细分析......... 15
3.4 性能分析......... 18
3.5 本章小结......... 19
第四章 基于多租户的院校实习实践管理平台设计.....20
4.1 整体架构设计.......... 20
4.2 功能模块设计.......... 22
4.3 数据库设计..... 28
4.4 多租户数据存储设计....... 36
4.5 多租户平台安全设计....... 38
4.6 本章小结......... 38
第五章 实现与测试............39
5.1 开发平台与运行环境....... 39
5.2 功能实现与测试...... 39
5.3 特色模块实现与测试....... 47
5.4 移动端实现与测试........... 51
5.5 平台性能测试分析........... 53
5.6 本章小结......... 55
第五章 实现与测试
论文的前四章主要是讲解了基于多租户实习实践管理平台的需求分析,实现所需要的技术以及对平台的设计等。完成了系统开发的准备与分析工作,本章主要是讲解系统平台的实现与测试工作。
5.1 开发平台与运行环境
本系统平台按照 JavaEE 企业级应用的规范和标准进行开发,采用 MyEclipse2015开发平台。利用 MyEclipse 平台可以快速,高效的开发出基于 JavaEE 的软件应用。基于多租户的院校实习实践管理平台是在多租的基础上实现的,因此服务器的配置要求比较高。(1)Java 运行环境:JDK 1.8;(2)服务器:Apache Tomcat 7.0;(3)数据库:MySQL 5.6;(4)浏览器:当前主流浏览器,如:谷歌浏览器,火狐浏览器;(5)操作系统:Windows7 以上版本系统。多租户的实现主要体现在两次数据隔离方案,通过 Spring 动态切换数据源实现第一次隔离,隔离不同院校下的相关数据。同一所院校下的数据通过 Hibernate4.0 对多租户的分离支持来实现。下面介绍具体的实现与代码。Spring 动态配置多数据源,即在大型应用中对数据进行切分,并且采用多个数据库实例进行管理,这样可以有效提高系统的水平伸缩性。而这样的方案就会不同于常见的单一数据实例的方案,这就要程序在运行时根据当时的请求及系统状态来动态的决定将数据存储在哪个数据库实例中,以及从哪个数据库提取数据。
.........
总结
本文的主要完成工作如下:针对不同学院对实习实践流程的要求,提出了在基于角色权限控制基础上的流程可配置。所有的流程操作由固定变为灵活可变的,每个租户可以根据自己学院的实际操作流程进行设计。流程的可变性增强了平台应用的广泛性。本文的技术支持点为 SaaS 模式下的多租户技术。针对多租户技术在系统平台应用中遇到的数据隔离问题,在多租户数据存储模式的基础上设计了多租户数据存储的两次数据隔离方案。对租户进行了划分,引入了群体的概念,使租户的数据存储更加合理科学。根据济南大学教务处的要求,基于多租户的实习实践管理平台解决了济南大学本科生实习实践监管的问题,并融入了多租户技术,使平台能够满足不同院校的要求。为以后推广系统平台提供了条件。在平台开发中,结合了任务驱动概念。登陆平台后可以根据任务要求列表完成当天的工作。真正的做到软件即服务,服务于租户。由于时间紧迫,本平台还是有许多待完善的地方,仍然需要不断的优化和完善。例如,该品台并没有实现完全的前后台分离,前端应该有自己的前端逻辑,这样有助于提升平台的效率。采用多租户设计,服务器的效率还需优化。平台还预留了企业接口,等待下一步进行完善。
..........
参考文献(略)