版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Hive+SpringBoot的企业系统运维平台设计摘要随着经济的快速发展,企业不断发展壮大,企业的产量、员工数量,以及企业涉及的领域均变的越来越大,规模的扩大会大大增加企业管理的难度。与此同时,数据信息的大量增加,使得越来越多的企业选择使用电脑软件系统进行管理,不仅高效而且数据清洗、存储量也很大。但是不同的企业有不同的业务需求,因此很多企业想要为自己量身定做一套管理系统,以便企业更好地运维管理系统。时效高效的信息化服务运维平台的建立无论对于公司还是员工都是非常必要的。文章在现有的企业运维平台的基础上,简单评析了现当代运维平台的现状,指出可以进行优化的部分及可以增添的功能,并且对运维管理平台进行进一步的深入研究。从现实出发、从企业出发是本设计的核心。针对系统的开发实现,本文采用的开发模式是现当代最主流的前后端分离开发模式技术,使用开源框架SpringBoot来构建后端,使用开源框架Vue来构建前端。本文利用IDEA作为开发工具,基于MYSQL、HIVE数据库和SpringBoot框架设计生成企业运维平台,系统需求分析是从功能需求和性能需求两方面来入手,系统的设计分为数据库设计与模块设计,MYSQL数据库环境通过SQL语句调用实现增删改查的功能、管理员工、审批命令、优化界面等问题,并为后期系统改进提供依据。基于以上工作,本文设计了具有实用意义的企业运维平台。关键词:企业运维平台;SpringBoot;HIVE;SQL;B/S模式目录第1章绪论 第1章绪论1.1开发背景与现状随着现当代公司的发展越来越蓬勃,软件的运维问题频出,公司规模的扩大导致参与事务的人员越发繁多,会使得工作效率大大下降,员工管理比较分散,分布在不同的地区和部门,能够统一各地区管理事务的平台也是缺少的状态。因为人员繁杂会遇到许多未知的的问题,导致效率下降,解决问题的难度增加。在重复的问题上因为没有保存范本所以导致重复处理冗余工作,并且不利于总结发展,增加了运维管理的成本以及员工的工作量,这也带来了许多无法用现有运维平台解决的问题[1]。如果针对产品进行研发调研,没有以往的总结数据和统一的信息管理就需要重复的收集,带来极大的工作量[3]。按照目前传统的运维管理模式,主要还是依赖手工配置的服务器,这导致了很多缺点,首先配置成本会很高、工作周期也很长、全然依赖员工的手动配置、对公司的保密文件也无法做到保密性的保障等一系列的缺点随着社会的发展逐渐显露[2]。基于已有功能的前提下,将系统的局限性指出并且进行优化分析,基于各部门需求进行进一步的探讨。采用B/S模式,结合当下流行的SpringBoot框架进行开发,可以解决现当代公司运维亟需解决的很多问题。1.2开发设计的意义随着企业的蓬勃发展和社会的不断进步,在企业工作上的环节和流程越发复杂,参与人数越来越多。这就要求企业需要有一套高校科学的运维管理平台来进行管理。传统的运维管理平台所存在的问题是不可避免的,由于参与人数和需要处理的问题越发复杂,这要求企业针对自身所存在的需求进行开发高效可用的企业运维平台。共享信息打破时间瓶颈。旨在促成一个时效的,高效的信息化服务运维平台的建立。本系统系根据公司发展阶段现状,需要在调研各部门需求后,规划相应的流程,并根据需求和流程定制系统功能[4]。企业的信息化智能化程度不断提高,要求其需要具有跟上时代潮流的企业运维平台,以此支撑企业的发展,包括很多当代要求的现代化企业应达到的需求[2]。为保证企业网络和信息系统高效稳定运行,需要建设一套系统先进的信息运维平台,可以大大增强企业在当今网络时代的竞争力,提高办公效率。第2章开发环境介绍2.1SQL数据库2.1.1SQL的特点SQL(StructuredQueryLanguage)是一种数据库语言,这种语言具有交互性特点,是一种极为方便的语言,可以为用户提供很多便利,包括数据操纵和数据定义。数据库管理系统应充分利用SQL语言提高计算机应用系统的工作质量与效率,SQL可与其他程序语言一起同步应用,不拘泥于提供信息的形式而面对用户提供的信息更加全面化。SQL可以独立应用于终端,还可以作为子语言设计其他程序。2.1.2MYSQL数据库MYSQL是一种关系型数据库管理系统,关系型数据库保存信息的形式为将不同的信息保存在不同的表中,通过关系将他们串联在一起,而不是将所有信息放在一起,这样就使得其变成一个非常灵活的数据库形式。作为关系型数据库的代表被广泛应用于不同行业自动测试系统的设计与开发环节,在测试模块选择、测试系统创新等方面为用户提供工具支持[5]。通过储存结构化数据是他的特点,但有时也会有非结构的测试数据的需求,碰到这种问题的时候,可以通过Sqoop收集数据保存到HIVE中[8],也可以对大量信息进行后续存储处理。2.2HIVE数据库HIVE是基于Hadoop的一个数据仓库工具。HIVE中的数据查询原理是将SQL语句转换成MapReduce任务来实施,进而达到查询的目的。HIVE的优点是针对大量数据很方便的进行统计分析[7]。并且通过类似SQL语句很快的进行了MapReduce统计,MapReducer的开发者将Mapper和Reducer作为插件放入其中进行使用而不是专门的编写应用,达到了简便处理的目的。2.3SpringBoot介绍2.3.1SpringBoot概述SpringBoot项目是在Spring项目基础上开发优化而来的。在过去的十几年间,Spring一直都是最广泛使用的编程产品框架,随着产品的迭代更替,用户越来越不满足于Spring的复杂结构,于是SpringBoot就应运而生了。SpringBoot设计的初衷是为了减少项目开发中Spring中繁杂的服务配置[3]。SpringBoot可以看作Spring的微服务架构产品,是服务于框架的框架,和Spring项目对比来说,其大大减少了复杂的搭建配置,所以也收到很多现当代编程开发者的青睐。比起在搭建上花费的大量时间,可以更加快捷的进行开发,可以提高了开发的效率,使用的普及范围也越来越广。SpringBoot[6]是一个框架,它是一种全新的编程规范,众所周知Spring框架需要进行大量的配置,而SpringBoot是进行自动配置的,它的产生简化了框架的使用,不需要大量且繁琐的配置文件,SpringBoot不是来替代Spring的而是来加入其进行开发,他和Spring结合紧密,可以大大提升利用Spring的开发者的用户体验,其在Spring的基础上简化配置部署,大大减轻了前期的配置工作压力。SpringBoot是以常规的Spring软件为基础而建立的。因此,对于这一软件来说,它其实包含了Spring的所有属性和功能,更重要的一点是,它比Spring使用起来更加方便,因为它避免了在Spring中存留许多关于XML的配置。SpringBoot是一个以微服务为基础的应用框架,它的优势就在于如果要制作生产就绪的应用程序的话,不需要消耗太多时间。微服务简单来说,微服务架构[9]就是将单体架构的应用按业务划分为独立运行的程序即服务,每个微服务都独立运行,有自己的进程,但它们之间可以通过HTTP协议进行通信,它的目的是有效的拆分应用,实现快速开发和部署,实现低耦合和高内聚。在各个结构的服务之间,它的表现为松耦合,但在功能上体现仍为一个整体。和单体系统的不足,整体系统的大体量比起来,它既有松耦合的关系构架,又有大体量的优点可以满足复杂的业务需求。每个微服务关注点落脚到每个人任务自身而不是其大框架,每个任务代表着一个小的能力实现,从而真正达到了松耦合的需求,突出了其自身的优点。微服务的优势和不足优点:低耦合,高内聚。将复杂的业务拆分成一个个独立的小的业务,每个业务拆分成一个服务,将复杂的问题分成多个简单的小问题,方便分工,也能降低新人的学习成本。微服务架构系统是分布式系统,业务和业务之间相互独立,实现了完全解耦,如果业务增加可以将业务再拆分,有很强的横向扩展能力。不同的服务之间采用HTTP协议通信,服务之间完全独立。每个服务可以根据各自业务的需要选取合适的编程语言和数据库,而不拘泥于统一形式。微服务的每个服务都是独立部署的,相互之间可以通信但不影响,所有修改或完善某个服务时并不会对其他服务产生影响。缺点:设计和实现比较复杂。微服务架构系统是分布式系统,它的构建要比单体系统的构建复杂,同时它部署起来也比较复杂,数据库的分布式事务相对来说不太好解决,将一个完整的系统拆分成很多个独立的服务并不容易。2.3.2SpringBoot构架如果想知道SpringBoot的架构,先看看存在于其中的不同层和类。在SpringBoot中有四个主要层,分别为:表示层:通过字面意思可知,是由视图(即前端部分)组成。数据访问层:对数据库的CRUD的一系列操作属于这一类,包括:创建、检索、更新和删除等。服务层:它为了服务类和数据访问层提供帮助。集成层:这一部分主要是根据不同的网络服务构建而成。然后有实用程序类、验证器类和视图类。各个相应的类得以实现是根据类提供的所有不同方面的服务,并可以检索就是依赖这些接口。2.3.3SpringBoot编程策略为了达到大大降低在Java其中软件开发的成本重要性,Spring其中采用了以下四种重要的关键编程策略:1.基于pojos的轻量级和最小化的攻击性模板编程;2.使用基于依赖性文件定位(di)和文本接口属性定位的方法耦合来尽量实现松散式的耦合;3.基于文本接口(aop)和文本约定模板声明式的模板编程;4.使用文本接口和约定模板方法来尽量减少其在代码中的风格;Spring框架用于简化Java开发[8]。Springboot作为一个应用程序的基础架构开发模型,前端通常主要用Java编写,使用模板引擎FreeMarke和Thymeleaf来渲染模板和相应的文本输出;前端开发使用Bootstrap、AngularJS、jQuery等;此外,基于浏览器的数据传输格式RESTfulAPI:SpringMVC框架提供json而不是xml,并在服务器上接收数据后进行查询处理,数据访问层主要是持久化的,如Hibernate、MyBatis、JPA;经常使用MYSQL作为数据库,针对SpringBoot构架来说IntelliJIDEA是首选的开发工具。图2.1Springboot框架2.3.2SpringBoot的优缺点SpringBoot的特点是简化程序搭建过程和开发过程:1.创建独立的Spring应用程序,SpringBoot可以以jar包的形式独立运行。2.直接嵌入Tomcat、Jetty、Undertow等web容器,无需部署war文件。3.没有冗余代码生成和XML配置的要求,配置非常简单。4.可以监控项目运行,满足运维平台需求[12]。要使用SpringBoot,只需在IDEA开发工具中创建一个SpringBoot项目即可。2.4Vue框架Vue[11]是一套构建用户界面的框架,是渐进式框架。Vue被设计为可以自底向上逐层的应用。Vue的核心库只关注视图层,非常简单易学,容易上手,在整合第三方库方面有自己的优势。针对复杂的单页应用,Vue也可以完全为其提供驱动。2.4.1Vue特点1.遵循MVVM模式Vue中提供了MVVM数据绑定和一个可组合的组件系统,具有简单、灵活的API,可以实现响应式的数据绑定和可组合的视图。2.指令化Vue中的指令包括内置指令和自定义指令,其中指令一般以“v-”开头,作用于HTML元素,Vue中可以将指令绑定在元素上,如v-bind动态绑定指令、v-if条件渲染指令、v-for列表渲染指令等。3.插件化Vue中可以使用插件对功能进行扩展,其中通过MyPlugin.install编写插件后,即可全局使用,常用的扩展插件有Vue-router、Vuex等。2.5前后端分离的开发方法前后端分离从端口来划分就是将浏览器和客户端分为前端,提供代码来满足需求的为后端。前端:负责交互逻辑的问题后端:提供API接口,进行权限控制以及进行后台的运算工作。特点:前后端没有相互依赖关系,可以独立完成与用户交互的整一个过程,如果前端页面处理好,后端的API还没有提供,那么,前端可以模拟数据进行测试,实现与后台解耦。前后端分离的开发方式下,前端和后端可以同时开工,不互相依赖,大大提高开发效率。前后端分离的目的是解耦,为了前端也能可以独立测试,各自可以独立开发,最后整合即可。
第3章系统需求分析3.1总体需求由于公司规模变大,参与人员基数也增加。这要求实现数据的同步,分析各部门需求,使运维人员能随时随地的能够办理业务,实现权限管理,业务线管理,数据同步,任务可视化管理,添加删除任务,数据查询等。3.1.1基本功能需求(1)用户登录需求:针对企业系统,必须要实现用户登录功能才能做到该系统为内部信息管理系统,为了保证数据和操作安全,设计时企业端进行单向的信息录入,每个员工对应的账号和密码都有一一规定,没有被录入的用户不可以进行注册,以此来保证系统可以被正确访问[12]。(2)实时监控需求:对各种需要实时监控的类型进行维护记录能更好的监控问题,发现问题从而第一时间解决问题。在维护的同时上传数据,能够根据软件硬件状态判断后续的采买情况和对突发情况进行预判。(3)用户的权限需求:对用户的权限进行限制,对各部门的人员管理也是非常重要的,将各部门员工权限根据部门编号进行细分,对部门进行分化管理。对每个角色的访问权限和功能进行划分。平台管理要求统一的平台管理界面,被授予管理员权限的账号才能进行权限分配,按部门分配平台的权限,包括查看权限和操作权限。(4)信息的录入需求:对机器要进行每日的巡检,巡检路线等详细的信息都要进行录入,这有利于及时发现问题,日常的维护不可或缺。包括设备的详细信息都要进行录入才能有利于进行日常的监控。这种管理模式可以提高权限管控的灵活性及管控效率,使后期的授权工作更加便捷。(5)审批需求:针对系统维护,监控系统维护,机器换修,重大硬件等维护需要进行业务的审批,如果一旦发现异常一定要走相应的流程,才能及时解决问题,防止发生不可避免的事故。3.1.2针对功能的模块细分针对企业运维平台的需求我们在设计前根据功能将其大体分为七个模块来满足需求,实现后能满足对设备资产的实时监控,企业人员的管理,权限设置,以及命令审批的功能。(1)登录模块(2)企业人员管理模块(3)巡检点管理模块(4)设备资产管理模块(5)设备维护管理模块(6)维护审批模块(7)权限管理模块3.2性能需求在每个模块中具体需要的满足的功能如下,这需要针对功能来进行设计从而实现功能。(1)登录模块注册:设计的系统是专门为一个企业服务,所以为了保证企业信息的安全,在注册时实现了当整个系统一个用户都没有时,第一个注册的用户成为超级管理员,这个超级管理员可以自己提前注册好,或者让企业高管去注册,而后再将该系统公布给员工。账号:让超级管理员给系统导入一张员工表,此后员工就拥有了自己的账号密码,账号为员工编号,密码为初始密码123456,在后期可以进行修改。这也就实现了该系统的内部使用。登录:登录只需要输入用户名和密码,在用户名和密码不为空时,拿输入的数据去用户表中查,如果不存在输入的用户名则登录失败,如果输入的用户名在表中存在且对应的密码与输入的密码一致则登录成功,否则失败。修改密码:当用户忘记密码时,可以通过自己的员工编号去修改密码。(2)企业人员管理模块此部分主要是根据员工表的导入,对每个部门进行划分和部门内的管理,在系统内可以对人员的权限和角色进行增删改查。(3)巡检点管理模块巡检是企业每天都要做的事情,将巡检点的设置,巡检的时间,任务,周期等全部录入表中有利于每个月的复盘总结,将事务管理全部线上化,能够更加简便高效的处理任务。在录入的时候可以下载模板,系统可以读取excel中相对应的变量对应的信息。(4)资产管理模块 将企业的设备名称和详细信息录入,有助于更好地管理和使用。实现同样是通过excel录入或者手动录入进MYSQL中。同巡检点管理模块一样还是信息的增删改查的问题实现。(5)设备维护管理模块设备系统每日的维护,在首页以可视化的形式体现。根据SpringBoot的监控特性实现实时同步反应设备维护情况,审批情况。(6)维护审批模块对设备进行维护和重大问题需要进行审批,在线上进行可以简化流程方便操作,审批管理首先要将权限管理模块实现,对上级赋予审批权限,来审批下级所提交的申请。(7)权限管理模块对每个不同的账号定义为一个用户,根据用户会再进行不同的用户角色和权限的分配,包括访问权限和操作权限。一个用户可以关联多个角色,每个角色又可以对应多个不同的权限高权限可以授予低权限角色的访问需求和管理需求,进行审批[12]。第4章细分设计4.1系统构架本系统采用B/S(浏览器/服务器)架构(图4.1)第一层:WEB浏览器即为客户端,提供用户与系统间的访问。第二层:应用服务器用于实现业务逻辑,在整个体系结构中具有重要作用。第三层:数据库服务器数据信息的存储和访问[7,9]。图4.1B/S层次结构4.2数据库设计数据库设计是指对于一个给定的应用前提,对所需要实现的结构和关系来进行逻辑模式和物理结构的设计,在此的基础上建立起数据库应用系统。由于MYSQL是关系型数据库,最重要的部分就是设计有效的逻辑模式来将各个信息之间的物理关系进行表示。在处理数据的时候能够进行有效地处理和管理。好的数据库结构可以便利信息管理和数据操作,从而提供一个信息基础设施和高效率的运行环境。基于应用程序的开发,数据库设计是信息系统设计、开发的重要技术。与其他应用程序相比,数据库应用程序是非常重要的。为了确保特定应用程序的可靠性,数据库设计变得复杂。最佳的数据库设计方案往往不是一天就能实现的,是一个不断规划数据对象和它们之间逻辑关系的过程[10]。4.2.1表设计我们从需求分析中得出这样的结论,该系统是根据以下几个实体组合而来的:1.部门实体包括部门编号、部门名称、创建人、创建时间;2.员工实体包括员工姓名、员工编号、所属部门、电话号码、身份证号、性别;3.巡检点实体包括巡检点编号、巡检点名称、电子标签ID、卡印刷编号等;4.设备实体包括产品用途、产品名称、品牌、规格型号、数量、单位等。下面以部门表单为例,为部门实体的表单设计。设计好数据库后通过SQL脚本建立数据库,这也是后面开发后端时所要连接的数据库。4.2.2E-R模型设计根据实体之间的关系设计,可以得到如下各个实体的E-R图和部分子系统的E-R图。(1)如图4.1是部门实体E-R图。部门部门部门编号创建时间创建人部门名称称图4.2部门实体E-R图(2)如图4.2是员工实体E-R图。员工员工员工编号身份证号电话号码所属部门员工姓名性别图4.3员工实体E-R图(3)图4.3是巡检点实体E-R图。巡检点巡检点巡检点编号创建时间创建人部门名称称图4.4巡检点实体E-R图(4)如图4.4是设备实体E-R图。设备设备品牌设备用途单位规格型号数量产品名称图4.5设备实体E-R图4.2.3部分表展示部门表图4.6部门表设备类型表图4.7设备表用户表图4.8用户表4.3模块设计如果用户成功登录到内部IT平台,系统会记录用户的数据。如果用户可以进入会计系统的话,那么所录入的信息将会被内部IT平台打包发送到系统,此系统接口模块应分析和初始化发送给它的用户信息,这样系统用户可以授权获得他们的相关认证信息和角色,才会允许用户在系统和内部IT平台上面登录。4.3.1用户管理模块用户管理模块主要用于管理用户,但是这一管理是从管理员方面出发点。进入这一模块之后,用户就可以进入到后台的管理页面,找到一些相关信息。管理员有更多的权力,他们可以重置普通用户的密码。对于普通用户来说,只能在自己所拥有的权限和自己的账号密码范围内进行操作。4.3.2员工管理模块新增员工:填写完整的员工信息后保存到数据库中的员工表中。删除员工:这个操作为谨慎操作,因为在员工表中有保存的状态信息,不删除也能体现员工离职,并且还能保存下之前该员工在公司里工作过的信息,而且实际中可能有员工调离或者离职后又重新入职的情况,所以设置此操作为谨慎操作,只能通过员工的id去删除,这也就需要先查出员工的id才能进行删除操作,设计的核心就是从现实的企业管理出发,一个公司的员工如果在正常工作的话不可能去注销掉自己的账户,而员工离职后也一般不会再去为公司注销掉自己使用过的账户,所以这样的设计方法既可以由公司人员删去无用信息,又实现了员工离开公司后的用户账号销户,保证企业的信息安全。更新员工:将想要更新的信息和想更新的员工的员工编号输入便可以更新到员工表中对应的员工信息上。查看员工:设计了两种查看方法,通过员工编号查看员工时,如果输入的编号在公司中存在,那么得到的是唯一的员工,通过员工姓名查看员工时,因为员工姓名可能重名,得到的结果是该公司中所有叫该姓名的员工。4.3.3设备维护管理及巡检点日常维护模块这两个模块的设计和实现都比较类似,所以将两者放在一起,都是实现四个功能,即增删查改这四个基本的功能。新增:输入完整的信息增添到数据库中对应的表格中,前提是编号不能和表中原有的重复,防止重复添加。删除:依旧设置为一个谨慎操作,使用id才能删除,因为其设备暂时不用未来却依旧可能使用。如果进行更换的话要进行审批高权限才能进行删除。更新:输入要修改信息的设备名和修改的数据就可以完成数据的更新。查找:输入设备名查看其一条件对应的信息来进行检索或者不输入查看条件来查看所有的信息。4.3.4审批管理模块具有高权限的用户在平台中可以看到其他用户提交的维护日志,由于维护日志需要被确认,所以需要审批的过程。同样需要审批的还有重大硬件更换,季度和年度维护等。所以在此处需要加上仅高权限用户审批后状态方可改变。不然日常的维护情况会体现在首页的可视化界面上。4.3.5角色管理模块角色管理的时候分为访问权限和功能权限两部分,访问权限决定了角色可以访问的菜单部分。功能权限决定了可以进行的操作,如表单的增删改查,审批功能也是在这里进行权限授予的。第5章系统编码的后端与前端实现5.1系统的实现平台5.1.1系统环境前期准备:配置环境变量,安装IDEAWEBSTORM以及数据库MYSQL;配置Hadoop环境,并基于Hadoop进行HIVE的配置;安装HIVE所需要的虚拟机环境为虚拟机安装有Hadoop并且集群成功,同时Hadoop需要在启动状态下,同时需要安装有MYSQL。5.2数据库选择及配置5.2.1MYSQL特性基于MYSQL的特性我们选用MYSQL作为数据库。1.源代码的可移植性:多种语言都可以进行编写和测试,以此可以保证得到一个准确可靠的结果。2.可以用AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种系统方式进行操作。3.为多种编程语言提供了API。主要包含C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。4.多线程工作的实现可以通过CPU资源的充分利用。5.可以提高SQL查询算法的效率6.针对多语言支持方面:在客户-服务器网络环境中使用时,它既可以独立地进行使用,也可以嵌入到其他数据库中在其他软件中使用。最受欢迎的编码方案是中文的GB2312和BIG5以及日文的Shift_JIS。7.可与多种数据库进行连接,例如:TCP/IP、ODBC和JDBC等。5.2.2数据迁移HIVE的使用由于日常维护会产生大量的数据,而此时再用MYSQL进行记录和数据分析由于大量的数据堆积,在此时使用HIVE来进行数据处理和分析更加合适。所以我们在程序内加上语句使得将MYSQL里的数据上传到HIVE中进行大量数据的批量处理,从而对设备维护周期,时段进行分析得到最合适的维护周期和最适用的机器品牌。HIVE由于不提供实时查询功能的特点,并不适合用于的联机事务处理(OLTP)。但它可以处理大数据的特点可以令它适用于存在大量不可变数据的时候进行批处理作业。所以针对实时变更的数据来说,用MYSQL作为数据库可以更好地实现增删改查的功能。HIVE的特点是1.可以通过在Hadoop上动态添加设备的方法进行伸缩2.可扩展及可容错,还有输入格式的松散耦合。HIVE的入口是DRIVER,执行的SQL语句首先提交到DRIVER驱动,然后调COMPILER解释驱动,最终解释成MapReduce任务执行,最后将结果返回。它支持了绝大多数的语句以及常见的聚合函数、连接查询、条件查询的操作。也支持使用Mapper和Reducer作为插件来进行更复杂的数据分析,作为一个非关系型数据库,它可以作为很好的后备大数据存储仓库,以支持后期的数据分析处理。将关系型数据库导入HIVE中配置环境:Hadoop集群中部署了HIVE服务,并且在Sqoop服务的sqoop-env.sh文件中配置了HIVE的安装路径,那么可以通过Sqoop工具将MYSQL表数据导入HIVE表中。将MYSQL表数据导入到HIVE文件系统中,具体指令示例如下:图5.1sqoop导入数据导入成功后可以通过连接到HIVE客户端查看HIVE数据仓库表数据,也可在hdfsui界面查看。后续在投入使用后,每天都会产生维护数据和记录,使用HIVE可以方便快捷的对大量数据进行处理分析。5.3层次划分图5.2层次划分图将这个项目开发分为几个层次,每个层内存放一种类型的的文件,这样每个模块的实现时都会把同一类功能的文件放在一个包下,其中,每个层都有其各自的含义:SpringBoot框架一般分为View层、Controller层、Service层、Mapper层、pojo层[16]。View层:视图层,根据接到的数据展示页面给用户。Controller层:响应用户需求,决定视图,决定需要显示的数据。Controller层的作用是前后端交互,接收前端请求后调用Service层再接收Service层返回的数据,最后返回具体的数据和页面到客户端。Service层:Service层也可以分为三个方面:(1)接口:用来声明方法(2)继承实现接口(3)impl:接口的实现(将mapper和service进行整合的文件)Service层存放业务逻辑处理,有一些关于数据库处理的操作,但是不是直接和数据库打交道,在impl实现接口类中需要导入mapper类,mapper层是直接与数据库进行操作的。Mapper层:也可以称为DAO层,是数据库CRUD的接口,只有方法名,具体实现在mapper.xml文件中,对数据库进行数据持久化操作(把数据放到持久化的介质中,同时提供CRUD操作)src/main/resource文件夹中的mapper.xml文件,里面存储的是真正的数据库CRUD语句;Pojo层:存放实体类,与数据库中的属性基本保持一致,一般包括getter、setter、toString方法(未使用插件lombok的情况下)[14]。5.4系统功能模块的后端实现5.4.1登入实现需要将员工表录入,在企业方进行限制,只有企业方导入的数据给定的id和密码才能进行登录。无法进行个体的用户注册,这样有利于企业独立使用系统。图5.3部分代码实现5.4.2用户管理实现针对用户实体和部门实体进行增删改查操作,在部门中新增用户的限制条件为已存在在员工中的实体才能被储存。查询可以根据用户的任一条件对应的信息来进行检索或者不输入查看条件来查看所有的信息。以下为实现用户管理的部分代码:图5.4部分代码实现5.4.3设备管理实现主要还是以表中的各标签为基础进行增删改查的功能实现,限制为需要为设备信息中已经录入的项目才能进行设备维护状态的录入,并且录入后要进行审批,显示审批状态,只有审批以后才算完成维护流程。以下为部分实现代码:图5.6部分代码实现5.4.4审批管理5.4.5权限管理对用户能进行的查看权限和功能权限进行管理,通过勾选改变此用户能够查看的菜单功能和能够进行操作的功能范围。图5.7部分代码实现5.5系统功能模块的前端实现根据之前对功能的分析和需求的划分,在前端的实现菜单栏主要将功能划分成如下几个大类,将功能的实现有序整合,从而得到清楚的功能菜单栏。图5.8侧边菜单栏5.5.1登录模块实现对登陆的权限,由于企业平台的特殊性没有进行注册功能的设计,只需企业平台把人员名单导入,按照一定规则设计账号和初始密码,方可投入使用,忘记密码的功能可以对初始密码进行修改。图5.9登录主界面5.5.2主界面页面主界面包括侧边栏菜单和审批记录维护记录的整合,有利于直观体现维护和审批情况,从而更加快速的发现待办事项,提高办事效率图5.10主界面5.5.3部门管理页面针对每个部门的详细信息作了明确展示,对创建人和创建时间也做了记录,并且实现了相对应的增删改查功能。图5.11部门管理界面5.5.4访问权限设置页面对每个用户可以进行访问的权限设置有非常多的细分,分为访问功能和修改功能的权限管理,可以精确细分到每一个页面的权限,有助细化员工的权限,不会造成意外的管理混乱问题,可以达到保险的作用。图5.12权限设置5.5.5巡检点设置页面和设备信息页面实现的原理一样是在数据库中录入信息并且进行增删改查的操作,有利于系统化详细管理信息,不容易出错。图5.13巡检点界面图5.14产品信息界面5.5.4审批界面这是高权限用户才能看到的界面,用于审批一般用户提交的日常维护,更换申请等,用于批准命令和日常维护。5.15审批界面5.5.5设备维护界面审批与否也会反映在需要审批的事项界面中的审批状态一栏,如果没有审批就会显示为未审批。此为机房日常维护界面,所以显示日期也是非常重要的。图5.16设备维护界面第6章功能测试6.1系统测试6.1.1系统测试的目的系统测试是指为了发现错误调试错误而对程序进行试运行,真正将系统投入运行之前通过真实的工作环境去进行运行,再将需求进行一一对照,检验其配置是否完整。应根据开发各阶段的需求和设计文档,通过设计测试用例来真正进行测试,并利用这些实例来运行程序以发现不足之处并且及时进行调试。系统测试是看整体程序是不是可以跑起,有没有error。此外,还需检查软件是否可靠,其目的是检测系统如何运行。这个步骤由三部分组成:(1)测试调试模块:检测程序中的各种管理模块;(2)组装测试:检查其间接口连接;(3)确认测试:调起后端前端和数据库进行运行测试,查看具体运行结果和各个功能的实现程度。出现问题是不可避免的,测试的目的就是为了在正式投入运行之前将系统中的每一个bug找出并且进行修改。这样才能保证投入使用的时候可以正常运行并且不会出现问题。6.1.2系统的测试环境1.系统测试的性能要求对系统的性能需求一般与整个系统有关,这涉及到许多因素,其中包括:数据库存储、备份、重启、安全和操作效率等。软硬件要求:系统环境win8+MYSQL+IDEA硬件环境i5系统,4G内存,500G硬盘。在实际运行中,数据不需要加密,也不需要普通的数据加密。该软件也很强大,对其它软件的依附度很小。2.测试数据(1)用户登入:对用户的登录功能进行实现;(2)信息修改:实现基本功能,完成用户数据、设备数据的增删改查;(3)设备维护管理:对上传的维护详情进行审批,在主页可视化表格中是否有反应;(4)权限管理:对新用户授予查看权限和功能权限,是否能成功。6.1.3系统功能测试将前端后端和数据库分别挂起运行,能够顺利运行后端运行状态图6.1后端运行状态前端运行状态图6.2前端运行状态挂起数据库图6.3数据库运行状态系统调试完毕,可以顺利挂起运行。6.2模块测试系统测试主要是针对设计的企业运维平台各部分模块的功能是否能正常使用,以用户的视角试验各模块功能目的是寻找系统与用户需求之间的差距,将系统与用户需求进行比较,然后提出更好的解决方案,对每个模块的功能测试也是非常重要的。6.3投入实例进行系统测试的技术主要有白盒测试和黑盒测试。白盒测试,也称为结构测试,在了解程序内部结构和逻辑的前提下,按程序内部结构来进行程序测试测试程序。黑盒测试,也称为功能测试,是从使用者的立场上进行测试,检测每个功能是否符合要求,能否正常使用[13]。本系统主要采用黑盒测试单元测试是对已实现软件的最小单元进行测试的过程,以确保构成软件的每个单元的质量。单元测试能够早期发现错误,缩短开发周期,并降低软件的成本。该系统的用户登录测试用例如表6.1用户登录测试用例所示。表6.1测试用例测试用例编号D01用例名称验证用户能否进行正常登录测试项用户登录功能优先级高环境要求服务程序运行正常操作步骤1.运行企业运维平台2.输入用户名,密码3.点击登录4.查看登入是否成功预期输出用户进入企业系统,登录成功该系统的用户部门变更测试用例如表6.2所示。表6.2测试用例测试用例编号D02用例名称部门变更测试项数据增删改查优先级高环境要求服务程序运行正常操作步骤1.管理员账户进入到权限管理界面2.将企业所有部门录入,以及所属员工信息等3.查看是否录入成功4.限定关键字进行查询预期输出详细信息录入成功该系统的审批测试用例如表6.3所示。表6.3测试用例测试用例编号D03用例名称审批重大变更测试项审批权限增删改查优先级高环境要求服务程序运行正常操作步骤1.录入日常维护设备2.针对损坏设备进行重大维修申报3.用root用户查看申报内容进行审批4.在主界面查看是否审批成功预期输出对重大维修变更审批成功该系统的录入设备测试用例如表6.4所示。表6.4测试用例测试用例编号D04用例名称录入设备测试项增删改查批量上传优先级高环境要求服务程序运行正常操作步骤1.管理员账户进入到权限管理界面2.从本地上传excel其中包含设备数据3.查看是否录入成功4.限定关键字进行查询预期输出成功录入该系统的月度维护记录统计测试用例如表6.5所示。表6.5测试用例测试用例编号D05用例名称月度维护记录录入及审批测试项审批录入功能优先级高环境要求服务程序运行正常操作步骤录入月度维护记录在首页查看维护情况对维护记录进行审批查看审批后的变更情况预期输出录入后可以看到各项数据变化,审批后会显示状态已审批6.4问题在搭建环境的时候对软件的版本一定要注意,在安装时由于无法识别defaultcollation导致sql连接一直报错。后来发现是由于版本的不匹配导致无法识别utf-8编码,所以进行了重新安装。同时在配置环境mapper的时候也出现了一些问题:“IDEA构建SpringBoot时,MVN报错未找到插件:找不到插件”
根据问题锁定了解到问题是该插件没有绑定版本,所以只需要在对应pom.xml文件中添加版本号绑定即可,根据SpringBoot的版本依赖,只需要绑定对应父项目的版本即可解决问题。本文从现实需要的功能出发,应用微服务的思想,采用最主流的前后端分离开发模式来进行开发。具体实现方面,本文实现后端是基于Java语言,使用SpringBoot框架进行开发,前端以Html、Css、JavaScript为基础,使用Vue框架进行开发,最终整合在一起完成对系统的实现。本次设计基本完成设计的功能,达到预期的目标,从实际需求出发来设计功能使得本设计有非常高的实用性,可以直接或稍加修改提供给企业使用。在设计数据库表内逻辑的时候一定要对其中的限制多加思考,以免在录入信息时产生bug,如进行维护的设备必须是已经录入的设备,进行审批的人必须是企业系统用户才可以,以及对录入身份证号的固定位数限制等。这样有助于统合信息格式,能够大大增加效率,避免后期处理文件时出现冗杂和错误。第7章总结与展望7.1总结本文介绍了一个基于传统企业运维平台的企业运维平台,可以针对现有的运维管理系统的局限性进行扩展,提出了更加自动化智能化的思路,针对提高安全性和效率的部分进行研究。针对传统人工运维方式及传统自动化运维平台的局限性。分析
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天津职业技术师范大学高职单招职业适应性测试备考题库及答案详细解析
- 2026年郑州黄河护理职业学院单招职业技能考试备考试题含详细答案解析
- 2026年黑龙江艺术职业学院高职单招职业适应性测试模拟试题及答案详细解析
- 2026年天津艺术职业学院单招职业技能考试备考试题含详细答案解析
- 2026年内蒙古交通职业技术学院单招综合素质笔试模拟试题含详细答案解析
- 2026年上海海洋大学高职单招职业适应性测试备考试题及答案详细解析
- 2026年忻州职业技术学院单招职业技能考试模拟试题含详细答案解析
- 2026年广东环境保护工程职业学院单招综合素质考试备考题库含详细答案解析
- 2026年无锡商业职业技术学院单招综合素质笔试备考题库含详细答案解析
- 2026年广西现代职业技术学院高职单招职业适应性测试备考题库及答案详细解析
- 鲜花 高清钢琴谱五线谱
- 安全生产标准化持续改进方案
- 家具厂长岗位职责
- CJT511-2017 铸铁检查井盖
- 2024年高考语文考前专题训练:现代文阅读Ⅱ(散文)(解析版)
- 躁狂发作的护理诊断及护理措施
- 第六节暂准进出口货物课件
- 中医外科乳房疾病诊疗规范诊疗指南2023版
- 压实沥青混合料密度 表干法 自动计算
- 田口三次设计
- 《我的戒烟》阅读答案
评论
0/150
提交评论