Docker容器下企业资源管理系统的设计与实现

2020-02-03 05:48康耀龙冯丽露张景安
电子技术与软件工程 2020年11期
关键词:字段镜像信息管理

康耀龙 冯丽露 张景安

(1.山西大同大学计算机与网络工程学院 山西省大同市 037009 2.山西大同大学教育科学与技术学院 山西省大同市 037009)

(3.山西大同大学网络信息中心 山西省大同市 037009)

近年来,虚拟化得到大规模的应用。区别于传统硬件虚拟技术,Docker 实现了轻量级的操作系统虚拟化。Docker 具有如下优点:首先,当开发者开发完代码之后,只需要将代码打包到配置好所有环境变量的Docker 容器就可以运行,这对于开发人员尤其是新手来说,提高了开发的效率。其次,Docker 打包部署功能,使其具有很好的兼容性和可移植性。当需要部署系统到多个主机时,只需要根据已配置好的容器生成镜像,然后上传到仓库,这样其他可以访问到仓库的主机就可以下载这个镜像并运行容器。同时Docker通过沙箱机制将容器之间相互“隔离”达到互不干扰的效果。本文所实现的企业资源管理系统不仅方便了企业管理人员进行线上的企业信息、合同信息的管理,而且利用Docker 容器自身特点,集成Tomcat,Java,MySQL 这些开发工具,隔离了运行环境,同时方便项目的移植。

1 系统分析

传统的企业在资源管理方面面临着人工巨大的成本,企业管理人员需要人工对企业信息进行统计和操作,但是现在的企业具有分布范围广,涉及领域多的特点,不再适合进行人工操作。

本系统通过对企业管理需要的信息进行设计,方便企业人员进行线上管理。整个系统包括三大模块:登录模块,基本的操作模块(包括:企业信息管理模块,合同信息管理模块,外围机构管理模块)和统计模块。

2 主要开发工具

2.1 Docker

Docker 是由DotCloud 公司开发的基于Go 语言实现的开源容器项目[1]。现在主流的操作系统都支持Docker。Docker 主要是通过对应用的整个生命周期进行管理,达到应用组件级别的“一次封装,到处运行”,即将封装好的镜像发布就可以下载进行多次运行。这些应用组件,可以是一个Web 应用,一个编译环境,甚至可以是一个操作系统和集群。最重要的一点,Docker 是一个轻量级的虚拟化解决工具,可以实现秒级的虚拟机启动。

2.2 Servlet

Servlet 是一个Java 类,主要针对浏览器发出的请求进行处理以及响应。前台页面通过浏览器使用HTTP 协议发送消息到后台,Servlet 作为控制器将消息传至业务层,并将处理结果返回给前台页面[2]。本系统使用了Servlet 技术对用户的请求进行处理,当需要增加新的功能的时候,只需要增加新的Sevlet 模块即可。

2.3 MySQL

MySQL 是一个开源数据库管理系统,对机器性能要求不是很高,目前很多互联网公司都将MySQL 作为关系型数据库的首选[3]。

3 系统详细设计

3.1 系统功能设计

通过对企业资源管理的实际调查和可行性分析,该系统有以下几大主要功能模块:

(1)系统登录模块。输入账号密码登录系统,登录成功后才能进入主页面,在主页面进行各种需要的操作。如果没有账号,需要先注册。

(2)企业信息功能模块。点击导航栏“企业信息管理”,可以对企业信息进行相关的业务处理。

(3)合同信息功能模块。点击导航栏“合同信息管理”,可以对合同信息进行相关的业务处理。

(4)接入外围机构信息功能模块。点击导航栏“机构信息管理”,可以对机构信息进行相关的业务处理。

(5)企业信息统计和合同信息统计功能。点击相应的“统计”按钮,页面上会显示对所有信息统计的结果,方便进行统计管理。

3.2 系统数据库设计

本系统数据库设计了6 个数据表,分别如下:

(1)enterprise_information 企业信息表用于存放企业详细信息,该表所包含的字段有企业名称、通讯地址、营业执照号、经营地址、所属行业、注册资本、企业法人、联系电话、联系人、传真号、电子邮件等。

(2)contract 合同信息表用于存放合同的详细信息,该表所包含的字段有企业名称、合同编号、合同名称、机构名称、合同金额、签订时间。

(3)organizationt 机构信息表用于存放机构的详细信息,该表所包含的字段有机构名称、机构地址、机构负责人、发放总数、发放金额。

(4)oc_connection 企业-机构信息表用于关联企业与机构,该表所包含的字段有id、机构名称、企业名称、审核状态。

(5)development_situation 企业发展表用于存放企业发展的相关信息,该表所包含的字段有id、企业名称、营业收入总额、利润总额、纳税总额、职工人数。

(6)user 表用于存放用户的信息,主要是保存用户登录系统时所需要的账号和密码。包含的字段有用户id,用户名、密码。

4 系统实现

图1:企业信息展示页面

图2:测试结果对比

4.1 登录功能实现

企业管理员必须进行注册后才能够登录本系统进行业务流程的处理。通过点击登录按钮,将静态页面上的用户名和密码通过Ajax技术传到服务器上。业务层在对得到的数据进行校验,若校验通过,则登录成功,若不通过,则提示相应的信息。

4.2 企业信息管理功能实现

企业信息功能模块是本系统用于展示企业详细信息,从而方便对企业基础数据信息进行管理。该模块能够实现对企业基本信息的新增,还可以对已录入企业信息进行查看、更新和删除等操作。企业信息展示页面如图1 所示。

4.3 合同信息管理功能实现

该模块用于展示企业相关合同信息,从而实现签订合同企业之间的联系。该模块能够实现对已签订合同信息的新增,还可以对已录入合同信息进行查看、修改操作。对于无用的合同信息可以进行删除操作。

4.4 统计功能实现

统计功能模块可以按照地(区)域进行分类,统计出总的注册资本、职工人数、营业收入总额、利润总额、纳税总额、合同金额、服务类型等数据,可以为企业决策者提供更多的参考依据。

5 Docker容器配置

代码开发完成后,我们将系统部署在Docker 容器下,可以使系统具备更佳的运行效果。

5.1 Docker安装及镜像创建

具体安装步骤为:

(1)使用sudo yum install -y yum-utils device-mapper-persistentdata lvm2,sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo 命令[4],将容器Docker 运行需要用到的文件进行安装。

(2)使用sudo yum install docker-ce 命令安装Docker。

(3)安装完成之后输入sudo systemctl start docker 命令启动Docker,然后用sudo systemctl enable docker 命令加入开机启动。

(4)用Centos 镜像来作为Web 项目的基本环境,然后通过docker images 命令可以查看到当前的基础镜像。

5.2 软件应用部署

使用命令创建一个基于CentOS 基础镜像的容器,同时根据具体情况选择合适的端口方便访问。将需要的文件通过SecureFX 软件传输到主机上,并解压;然后将JDK,Tomcat 的安装包和Web项目从虚拟机的文件目录上传至容器中的root 目录下,启动容器并进入到容器的目录中。

配置JDK 环境变量,需要在容器的/etc/profile 文件中填加内容,并通过source /etc/profile 命令使其生效。安装yum install glibc.i686之后[5],测试JDK 安装成功。启动服务器,进入Tomcat 的bin 目录下双击启动脚本验证是否能够正常运行。

基本环境已经准备完毕,现在只需要将项目的war 包复制到Tomcat 的webapps 目录下就可以访问系统。

6 系统性能测试

为了验证项目在哪个环境下性能更好,我在Windows 环境和Linux 环境中安装Nginx 以及其运行需要的内容,并使用Ab 压力测试工具来验证在哪个环境下运行效果更好。设置好nginx.conf 配置文件中需要监听的端口之后,安装基于Nginx 的ab 压力测试工具[6]。对项目部署到两个环境的性能进行测试,测试结果如图2所示。

Apache ab 压力测试工具的测试结果会受到机器配置的影响。本次测试,Windows 环境采用4 核处理器,8G 内存,而Linux 环境机器配置为单核处理器,内存1GB。图2 左侧为Windows 环境测试数据,右侧为Linux 环境测试数据。对比二者的执行结果可以发现,在Linux 环境硬件性能远低于Windows 环境的性能的情况下,部署到Docker 容器中的项目比部署在Windows 环境中普通服务器中的性能更佳,不仅仅体现在请求的速度上,而且在资源吞吐率方面的表现也更为优秀,从而验证了Docker 容器轻量级的优点。

7 总结

本系统基于Docker 容器所开发,系统包括了企业信息,合同信息,统计功能等模块,方便企业人员进行信息管理。代码开发完成后,将系统部署在Docker 容器下,只需要根据镜像运行容器便能访问系统。当需要移植时,只需要重新下载镜像即可。本文最后,将企业资源管理系统分别部署到Windows 环境和Docker 容器环境进行测试,通过对比发现,部署在Docker 容器中运行更佳,从而体现出Docker 容器轻量级、可移植性强、兼容性好等优点。

猜你喜欢
字段镜像信息管理
图书馆中文图书编目外包数据质量控制分析
造价信息管理在海外投标中的应用探讨
评《现代物流信息管理与技术》(书评)
在高速公路信息管理中如何做好QC小组活动
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
关于CNMARC的3--字段改革的必要性与可行性研究
面向Web的BIM三维浏览与信息管理