当前位置: 首页 > 专利查询>济南大学专利>正文

基于持续集成和虚拟化容器的校园应用发布方法及系统技术方案

技术编号:22166178 阅读:27 留言:0更新日期:2019-09-21 10:16
本公开公开了基于持续集成和虚拟化容器的校园应用发布方法及系统,包括:接收用户发布的校园应用代码,将校园应用代码存储到代码仓库;将用户发布的校园应用代码,转化为XML文件,并将XML文件发送给持续集成Jenkins;持续集成Jenkins接收到XML文件后,对XML文件进行解析,根据解析结果配合Docker虚拟化容器完成相应的操作,完成校园应用的发布;接收用户对校园应用的访问指令,根据访问指令从校园数据库中调取相应的数据,反馈给用户。

Campus Application Publishing Method and System Based on Continuous Integration and Virtualization Container

【技术实现步骤摘要】
基于持续集成和虚拟化容器的校园应用发布方法及系统
本公开涉及智慧校园
,特别是涉及基于持续集成和虚拟化容器的校园应用发布方法及系统。
技术介绍
本部分的陈述仅仅是提到了与本公开相关的
技术介绍
,并不必然构成现有技术。在实现本公开的过程中,专利技术人发现现有技术中存在以下技术问题:高校在推进信息化建设过程中,产生了许多信息化的产物,例如校园网、一卡通、图书馆系统、教务系统等。为了加快高校的信息化建设,各高校开始建设智慧校园,将信息化逐步推进为智慧化建设,智慧校园建立的目的是使学生和教职工在各方面受益,管理校园可用资源并通过主动服务的形势提高用户体验,智慧校园的服务范围从智慧教室到教室内的教学过程,再到整个校园。在建设中,高校建立数据中心,整合高校中已存在系统的所有数据,对这些数据获取、过滤、清洗,进而将高校中所有的数据统一管理。高校在智慧化建设过程中,除了数据中心之外,还产生了许多其他系统,这些系统在高校的环境中满足越来越多的需求,但是现阶段的高校智慧化建设仍处于起步阶段,校园中各个系统之间产生许多信息孤岛和数据冗余,难以统一和合作,不能够满足实现教学和教育信息全面现代化的需求,距离真正意义的智慧校园还有很大的差距。智慧校园是一个在数字校园基础上发展而来。目前绝大部分高校都处在数字校园阶段,校园各种系统都是为了学生或者教职工在某些方面满足某些需求而产生的,每个系统都有一个明确的目标,后期会围绕这个目标来增添功能,一旦一个新的需求与这个目标相差甚远的时候,系统将不会添加这个功能,而是另外开发一个新的系统来满足这个需求,这种模式会使某个系统越来越庞大,难以维护,另外也会开辟越多的系统,使整个高校信息化系统错综复杂,不利于高校的智慧化建设。现有技术亟需解决的技术问题之一是,如何让校园应用发布更加简单,让没有应用发布经验的学生群体或教师群体也可以实现校园应用的测试发布。
技术实现思路
为了解决现有技术的不足,本公开提供了基于持续集成和虚拟化容器的校园应用发布方法及系统;第一方面,本公开提供了基于持续集成和虚拟化容器的校园应用发布方法;基于持续集成和虚拟化容器的校园应用发布方法,包括:接收用户发布的校园应用代码,将校园应用代码存储到代码仓库;将用户发布的校园应用代码,转化为XML文件,并将XML文件发送给持续集成Jenkins;持续集成Jenkins接收到XML文件后,对XML文件进行解析,根据解析结果配合Docker虚拟化容器完成相应的操作,完成校园应用的发布;接收用户对校园应用的访问指令,根据访问指令从校园数据库中调取相应的数据,反馈给用户。第二方面,本公开还提供了基于持续集成和虚拟化容器的校园应用发布系统;基于持续集成和虚拟化容器的校园应用发布系统,包括:第一接收模块,其被配置为接收用户发布的校园应用代码,将校园应用代码存储到代码仓库;XML文件转化模块,其被配置为将用户发布的校园应用代码,转化为XML文件,并将XML文件发送给持续集成Jenkins;XML文件解析模块,其被配置为持续集成Jenkins接收到XML文件后,对XML文件进行解析,根据解析结果配合Docker虚拟化容器完成相应的操作,完成校园应用的发布;第二接收模块,其被配置为接收用户对校园应用的访问指令,根据访问指令从校园数据库中调取相应的数据,反馈给用户。与现有技术相比,本公开的有益效果是:无需繁琐的对每一个应用手动进行操作,例如应用代码的获取、应用运行环境的构建、应用的构建、应用的编译、应用的测试、应用的部署等过程,实现完全自动化。让校园应用发布更加简单,让没有应用发布经验的学生群体或教师群体也可以实现校园应用的测试发布。附图说明构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。图1为系统整体架构图;图2为系统整体流程图。具体实施方式应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。敏捷开发是应用于软件开发和交付的一种迭代以及快速响应的理念,如何在不断变化的需求中快速适应和保证软件质量显得尤为重要,持续集成正是解决这一问题的软件开发实践,并且持续集成已经成为现代化软件开发的最佳实践。为了减少人工的重复性工作,降低维护工作的难度,提高工作的效率,采用持续集成的方案。智慧校园开放系统收到用户的应用配置后,通过Jenkins进行持续集成。Jenkins是一款强大的开源的持续集成工具,可以更高效的完成持续集成整个步骤,减少开发的工作,并且能够在企业中高效的进行软件开发,通过自动化的流程来节省开发人员的工作时间。当开发人员将自己的应用发布到智慧校园开放系统后,应用的部署将自动进行,开发人员不用关注应用的运维方式,把更多的关注点放到代码开发上。Jenkins将自动的执行持续集成方案,同样,当用户开发的应用需要更新时,可以重新触发持续集成方案,Jenkins也将按同样的方式部署应用,充分体现持续集成的灵活性。作为开发者可以随时在智慧校园开放系统上查看应用的各种情况,方便及时地处理出现的问题。Docker提供了一种轻量级的应用虚拟化功能,拥有很高的资源隔离和安全保障,在操作系统虚拟化、跨系统可移植性、模块复用化、版本控制、DevOps理念等方面得到大量的实践。在智慧校园开放系统上,用户的应用架构采用微服务的形式,能够实现一种基于隐私保护的划分机制,将不同的组分分割,而Docker创建的容器是进程级别的隔离,使得应用之间互不干涉。对于Docker本身来说,它首先是跨系统的,简单易用,其次Docker解决了环境的问题,不管是Java应用、Python应用还是Node.JS应用,它只需要从Docker仓库拉取相应的镜像,配置相应的依赖就可运行。跟虚拟机相比,Docker镜像和依赖的体积往往小很多,Docker直接运行在硬件系统而不像虚拟机一样运行在中间层系统环境,它的运行效率得到很大的提高。实施例一,本公开提供了基于持续集成和虚拟化容器的校园应用发布方法;基于持续集成和虚拟化容器的校园应用发布方法,包括:S1:接收用户发布的校园应用代码,将校园应用代码存储到代码仓库;S2:将用户发布的校园应用代码,转化为XML文件,并将XML文件发送给持续集成Jenkins;S3:持续集成Jenkins接收到XML文件后,对XML文件进行解析,根据解析结果配合Docker虚拟化容器完成相应的操作,完成校园应用的发布;S4:接收用户对校园应用的访问指令,根据访问指令从校园数据库中调取相应的数据,反馈给用户。作为一个或多个实施例,所述用户发布的校园应用代码,包括以下内容的一种或多种:应用名称、应用图标、代码仓库地址、应用类型、版本和当前应用对应的校园数据库的接口;不同的接口对应不同的数本文档来自技高网
...

【技术保护点】
1.基于持续集成和虚拟化容器的校园应用发布方法,其特征是,包括:接收用户发布的校园应用代码,将校园应用代码存储到代码仓库;将用户发布的校园应用代码,转化为XML文件,并将XML文件发送给持续集成Jenkins;持续集成Jenkins接收到XML文件后,对XML文件进行解析,根据解析结果配合Docker虚拟化容器完成相应的操作,完成校园应用的发布;接收用户对校园应用的访问指令,根据访问指令从校园数据库中调取相应的数据,反馈给用户。

【技术特征摘要】
1.基于持续集成和虚拟化容器的校园应用发布方法,其特征是,包括:接收用户发布的校园应用代码,将校园应用代码存储到代码仓库;将用户发布的校园应用代码,转化为XML文件,并将XML文件发送给持续集成Jenkins;持续集成Jenkins接收到XML文件后,对XML文件进行解析,根据解析结果配合Docker虚拟化容器完成相应的操作,完成校园应用的发布;接收用户对校园应用的访问指令,根据访问指令从校园数据库中调取相应的数据,反馈给用户。2.如权利要求1所述的方法,其特征是,所述用户发布的校园应用代码,包括以下内容的一种或多种:应用名称、应用图标、代码仓库地址、应用类型、版本和当前应用对应的校园数据库的接口。3.如权利要求1所述的方法,其特征是,所述用户发布的校园应用代码,包括四种形式:MySQL应用、Java应用、Python应用以及Node.js应用;MySQL应用,包括:应用名称、应用描述、MySQL版本、MySQLRoot密码和初始化SQL语句;Java应用,包括:应用名称、应用图标、应用描述、代码仓库地址、jdk版本和maven版本;Python应用,包括:应用名称、应用图标、应用描述、代码仓库地址和Python版本;Node.js应用,包括:应用名称、应用图标、应用描述、代码仓库地址和Node版本。4.如权利要求3所述的方法,其特征是,所述将用户发布的校园应用代码,转化为XML文件,包括:将MySQL应用转化为XML文件、将Java应用转化为XML文件、将Python应用转化为XML文件和将Node.js应用转化为XML文件。5.如权利要求4所述的方法,其特征是,所述将MySQL应用转化为XML文件具体步骤包括:S201:将初始化SQL语句分割成:数据库名称、创建数据库语句和其他语句;根据MySQL版本,构建相应的Docker镜像;S202:使用Docker镜像,构建第一Docker容器,并且根据MySQLRoot密码初始化MySQL服务;S203:检测宿主机可用端口,记录宿主机可用端口,将宿主机可用端口映射到第一Docker容器的3306端口,建立端口映射的目的是当访问数据库地址的时候,统一访问宿主机的端口,宿主机的端口将自动寻址到第一Docker容器中的3306端口,3306为第一Docker容器内启动MySQL服务的默认密码;S204:采用SideCar模式,建立第二Docker容器,跟第一个容器建立方式相似,使用Docker的link建立第一Docker容器与第二Docker容器之间的通信,第一Docker容器看作是MySQL的服务端,第二Docker容器看作MySQL服务的客户端,使用mysqladminping轮询第一Docker容器的MySQL服务,当检测第一Docker容器的MySQL服务没有正常启动时,休眠设定时间,直到第一Docker容器的MySQL服务正常启动然后执行步骤205,或者超过最大休眠时间,结束;S205:MySQL服务正常启动后,使用mysql命令和创建数据库语句创建一个数据库;使用mysql命令和其他语句执行最后的操作;其他语句,包括建表,插入数据。6.如权利要求4所述的方法,其特征是,所述将Java应用转化为XML文件具体步骤包括:S211:根据代码仓库地址,依赖JenkinsGit插件功能,使用git命令,将代码仓库地址中的代码,全部下载到服务端应用文件夹,每个应用拥有独自的文件目录;S212:根据Java应用的jdk版本和maven版本,构建相应的Docker镜像;S213:使用Docker镜像,构建第三Docker容器,并且将第三Docker容器内文件目录映射到宿主机文件目录,将容器的/root/.m2文件夹映射宿主机的/root/.m2文件夹;S214:检测宿主机可用端口,记录宿主机可用端口并且将宿主机可用端口映射到第三Docker容器的8080端口,建立端口映射的目的是当访问应用地址的时候,统一访问宿主机可用端口,宿主机可用端口将自动寻址到容器中的8080端口;S215:将应用文件夹映射到第三Doc...

【专利技术属性】
技术研发人员:孙润元高振荣梁志锋杨波
申请(专利权)人:济南大学
类型:发明
国别省市:山东,37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1