一种基于数据元的医院软件自动化部署方法转让专利

申请号 : CN202210428710.9

文献号 : CN114816452B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王西恩张晓宇蒋彦

申请人 : 成都瑞华康源科技有限公司

摘要 :

本发明公开了一种基于数据元的医院软件自动化部署方法,属于软件部署技术领域,包括以下步骤:S1:将软件安装包、配置文件和第三方依赖软件统一打包上传至公司软件部署服务管理端;S2:从公司软件部署服务管理中下载安装软件;S3:通过客户端软件将软件安装包和软件部署脚本上传至院内软件部署服务管理端;S4:登录院内软件部署服务管理端,并将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯,利用目标服务器对应的shell命令对目标服务器进行软件部署安装。在医院网络环境下,本发明要比现有的技术更能提高现场实施人员部署运维的效率,有效解决了Linux软件离线安装部署问题。

权利要求 :

1.一种基于数据元的医院软件自动化部署方法,其特征在于,包括以下步骤:S1:将软件安装包、配置文件和第三方依赖软件统一打包上传至公司软件部署服务管理端;

S2:通过客户端软件从公司软件部署服务管理中下载安装软件;

S3:通过客户端软件将软件安装包和软件部署脚本上传至院内软件部署服务管理端;

S4:登录院内软件部署服务管理端,并将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯,利用目标服务器对应的shell命令对目标服务器进行软件部署安装;

所述步骤S1中,公司软件部署服务管理端用于编写软件部署脚本、安装软件部署脚本、下载软件和管理软件数据元信息;

所述软件部署脚本包括执行软件部署安装操作的快捷命令和逻辑片段;

所述软件数据元信息包括软件的配置信息;

所述软件数据元信息包括目标服务器数据元模型和软件数据元模型;

所述目标服务器数据元模型包括数据元标识符、数据元值类型和数据元名称;

所述软件数据元模型包括软件的基础数据元信息和软件的依赖关系;

构建依赖关系的具体方法为:将目标服务器信息、第三方依赖软件配置信息和软件的基础数据元信息作为第一集合,将软件配置信息作为第二集合,将第一集合的一个元素对应第二集合的若干个元素;

所述步骤S1中,通过公司软件部署服务管理端管理软件数据元信息的具体方法为:获取软件数据元模型;遍历软件数据元模型中每个数据组对应的JSON Object节点,若存在依赖关系,则根据依赖关系确定软件配置信息,并根据软件配置信息对JSON Object节点的数据项值进行更新,否则将JSON Object节点的数据项值设置为默认值;将JSON Object节点的数据项值作为配置信息。

2.根据权利要求1所述的基于数据元的医院软件自动化部署方法,其特征在于,所述公司软件部署服务管理端采用中文快捷命令编写软件部署脚本;

所述中文快捷命令包括端口冲突处理命令、安装文件上传并解压命令和执行交互命令;

所述端口冲突处理命令用于在软件安装前进行端口冲突检测,具体为:若软件的计划使用端口已被占用,则自动将下一个非占用端口作为计划使用端口;

所述安装文件上传并解压命令用于在软件安装包和配置文件统一打包上传至软件部署服务管理端后进行解压操作;

所述执行交互命令用于将shell命令作为执行参数。

3.根据权利要求1所述的基于数据元的医院软件自动化部署方法,其特征在于,所述步骤S4中,确定目标服务器对应的shell命令的具体方法为:基于软件的配置信息,将中文快捷命令与shell命令建立映射关系;获取目标服务器的类型和系统版本,并识别目标服务器的中文快捷命令;根据目标服务器的中文快捷命令和映射关系,确定目标服务器对应的shell命令。

4.根据权利要求1所述的基于数据元的医院软件自动化部署方法,其特征在于,所述步骤S4中,将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯的具体方法为:对中文快捷命令进行编译,根据目标服务器的类型,将编译通过的中文快捷命令转换为对应的shell命令,采用SSH方式将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯,将对应的shell命令发送至目标服务器,并将目标服务器的执行结果返回至院内软件部署服务管理端,通过院内软件部署服务管理端确定是否发送下一条shell命令至目标服务器。

说明书 :

一种基于数据元的医院软件自动化部署方法

技术领域

[0001] 本发明属于软件部署技术领域,具体涉及一种基于数据元的医院软件自动化部署方法。

背景技术

[0002] 在医院网络环境下,院内内部网络和外部互联网往往是隔离的,要登陆院内服务器往往需要通过跳板机。在这种内外网隔绝的情况下,医院内网Linux服务器软件安装、升级不可能像在公网一样通过一个安装命令就能实现。常规的互联网软件安装方式在医院网络环境下受到了很大的限制。
[0003] 在这种环境下,实施人员基本上需要把安装的软件离线下载好然后再通过医院信息科或是医院跳板机将软件上传到指定服务器上。这时软件是否支持离线安装、对第三方软件依赖的程度都决定了项目实施复杂度。
[0004] 基于Linux内核发行的系统多种多样有centos、ubuntu和debian等操作系统,但是在系统命令和权限管理方面还是有所差异,实施人员还是要精通不同系统体系。甚至是同一操作系统的不同版本也会有差别。
[0005] 在互联网行业中,实施人员面对的运维环境主要包括正式上线环境、测试环境。所以部署信息可以做到统一集中管控。但是在医疗行业由于实施单位都是每家医院,实施人员各不相同。需要有效管理每家医院实施部署的服务器信息、软件安装信息,以应对人员变动带来的影响。

发明内容

[0006] 本发明为了解决上述问题,提出了一种基于数据元的医院软件自动化部署方法。
[0007] 本发明的技术方案是:一种基于数据元的医院软件自动化部署方法包括以下步骤:
[0008] S1:将软件安装包、配置文件和第三方依赖软件统一打包上传至公司软件部署服务管理端;
[0009] S2:通过客户端软件从公司软件部署服务管理中下载安装软件;
[0010] S3:通过客户端软件将软件安装包和软件部署脚本上传至院内软件部署服务管理端;
[0011] S4:登录院内软件部署服务管理端,并将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯,利用目标服务器对应的shell命令对目标服务器进行软件部署安装。
[0012] 进一步地,步骤S1中,公司软件部署服务管理端用于编写软件部署脚本、安装软件部署脚本、下载软件和管理软件数据元信息;
[0013] 软件部署脚本包括执行软件部署安装操作的快捷命令和逻辑片段;
[0014] 软件数据元信息包括软件的配置信息。
[0015] 进一步地,软件数据元信息包括目标服务器数据元模型和软件数据元模型;
[0016] 目标服务器数据元模型包括数据元标识符、数据元值类型和数据元名称;
[0017] 软件数据元模型包括软件的基础数据元信息和软件的依赖关系;
[0018] 构建依赖关系的具体方法为:将目标服务器信息、第三方依赖软件配置信息和软件的基础数据元信息作为第一集合,将软件配置信息作为第二集合,将第一集合的一个元素对应第二集合的若干个元素。
[0019] 进一步地,步骤S1中,通过公司软件部署服务管理端管理软件数据元信息的具体方法为:获取软件数据元模型;遍历软件数据元模型中每个数据组对应的JSON Object节点,若存在依赖关系,则根据依赖关系确定软件配置信息,并根据软件配置信息对JSON Object节点的数据项值进行更新,否则将JSON Object节点的数据项值设置为默认值;将JSON Object节点的数据项值作为配置信息。
[0020] 进一步地,公司软件部署服务管理端采用中文快捷命令编写软件部署脚本;
[0021] 中文快捷命令包括端口冲突处理命令、安装文件上传并解压命令和执行交互命令;
[0022] 端口冲突处理命令用于在软件安装前进行端口冲突检测,具体为:若软件的计划使用端口已被占用,则自动将下一个非占用端口作为计划使用端口;
[0023] 安装文件上传并解压命令用于在软件安装包和配置文件统一打包上传至软件部署服务管理端后进行解压操作;
[0024] 执行交互命令用于将shell命令作为执行参数。
[0025] 进一步地,步骤S4中,确定目标服务器对应的shell命令的具体方法为:基于软件的配置信息,将中文快捷命令与shell命令建立映射关系;获取目标服务器的类型和系统版本,并识别目标服务器的中文快捷命令;根据目标服务器的中文快捷命令和映射关系,确定目标服务器对应的shell命令。
[0026] 进一步地,步骤S4中,将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯的具体方法为:对中文快捷命令进行编译,根据目标服务器的类型,将编译通过的中文快捷命令转换为对应的shell命令,采用SSH方式将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯,将对应的shell命令发送至目标服务器,并将目标服务器的执行结果返回至院内软件部署服务管理端,通过院内软件部署服务管理端确定是否发送下一条shell命令至目标服务器。
[0027] 本发明的有益效果是:
[0028] (1)在医院网络环境下,本发明要比现有的技术更能提高现场实施人员部署运维的效率,有效解决了Linux软件离线安装部署问题;
[0029] (2)本发明采用中文的部署脚本开发语言提高了部署脚本开发的效率,基于数据元与软件依赖计算算法,使得实施人员在软件部署时不需要关注依赖软件的信息收集、整理和配置,其精力主要集中到软件部署模型定义和依赖映射关系定义,反而能够更好满足以医院为单位的项目部署需求,提高了复用度。

附图说明

[0030] 图1为医院软件自动化部署方法的流程图;
[0031] 图2为软件数据元模型示意图;
[0032] 图3为WebA的数据元模型示意图。

具体实施方式

[0033] 下面结合附图对本发明的实施例作进一步的说明。
[0034] 如图1所示,本发明提供了一种基于数据元的医院软件自动化部署方法,包括以下步骤:
[0035] S1:将软件安装包、配置文件和第三方依赖软件统一打包上传至公司软件部署服务管理端;
[0036] S2:通过客户端软件从公司软件部署服务管理中下载安装软件;
[0037] 由于医院环境与互联网环境是隔绝的,但是公司网路接入到了互联网环境。所以实施人员首先要在互联网环境下接入公司网络,通过客户端下载软件将需要的安装软件从公司软件部署服务管理端下载下来,下载的信息包括软件安装包、部署脚本等。
[0038] S3:通过客户端软件将软件安装包和软件部署脚本上传至院内软件部署服务管理端;
[0039] S4:登录院内软件部署服务管理端,并将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯,利用目标服务器对应的shell命令对目标服务器进行软件部署安装。实施人员登录院内软件部署服务管理端软件,维护需要安装软件的目标服务器SSH登录信息。
[0040] 院内软件部署服务管理端软件提供了详细的软件安装操作管理功能。软件在目标服务器安装完毕后会产生一条相应的部署记录,它记录了安装时的关键信息,例如软件安装包的存放位置、软件程序安装位置、软件的访问IP、端口、用户名和密码等。
[0041] 在本发明实施例中,步骤S1中,公司软件部署服务管理端用于编写软件部署脚本、安装软件部署脚本、下载软件和管理软件数据元信息;
[0042] 软件部署脚本包括执行软件部署安装操作的快捷命令和逻辑片段;
[0043] 软件数据元信息包括软件的配置信息。
[0044] 在本发明实施例中,软件数据元信息包括目标服务器数据元模型和软件数据元模型;
[0045] 目标服务器数据元模型包括数据元标识符、数据元值类型和数据元名称;
[0046] 软件数据元模型包括软件的基础数据元信息和软件的依赖关系;在本发明中,服务器数据元模型和软件数据元模型采用JSON结构表达。数据组是软件的一个object节点。
[0047] 构建依赖关系的具体方法为:将目标服务器信息、第三方依赖软件配置信息和软件的基础数据元信息作为第一集合,将软件配置信息作为第二集合,将第一集合的一个元素对应第二集合的若干个元素。
[0048] 通过对大量软件安装过程分析,基本得到了描述软件安装的信息元,包括由服务器数据元、软件基本数据元。这些业务数据都是由一个个数据项组成,每个数据项都是数据元。数据元包含如下一些基本属性,如表1所示。
[0049] 表1
[0050] 序号 数据元属性名称 约束1 数据元标识符 必选
2 数据元名称 必选
3 定义 必选
4 数据元值的数据类型 必选
5 表示格式 必选
6 数据元允许值 必选
7 数据元映射定义 必选
[0051] 服务器数据元模型如表2所示。
[0052] 表2
[0053]
[0054]
[0055] 如图2所示,软件数据元模型中,由于软件种类繁多,每种软件的安装既要依赖服务器环境信息,也要依赖其他第三方软件安装信息,同时也会依赖自身的一些基础信息。所以在软件安装前需要根据每种软件自身信息需求制定具体的元模型。软件数据元模型由两部分组成,第一部分是软件基础数据元;第二部分是根据依赖关系式将每种依赖的软件作为独立的软件数据组进行具体定义。软件依赖数据组内也可以包含其子数据组信息,比如软件数据元和值域。
[0056] 软件基础数据元如表3所示。
[0057] 表3
[0058]
[0059]
[0060] 在软件数据组中,定义1:软件依赖关系是指当前正在安装的软件直接依赖的软件。如果依赖软件中又依赖了其他软件,这种间接依赖的软件不属于当前软件的依赖关系。
[0061] 由于软件依赖关系是动态,只能根据具体的依赖情况进行定义,例如依赖了数据库MySQL那么应该定义数据库的访问信息。具体以图3进行说明WebA在部署使用时依赖了FTP、MySQL和Redis三种软件。WebA数据元模型包括基础数据元信息、MySQL数据组、Redis数据组和FTP数据组;其中,MySQL数据组包括访问IP、访问端口、访问用户名、访问密码和访问数据库,Redis数据组包括访问IP、访问端口、访问用户名、访问密码和访问数据库,FTP数据组包括访问IP、访问端口、访问用户名、访问密码和访问路径。
[0062] 定义2:依赖映射定义,集合A={服务器信息,依赖软件配置信息,软件基础信息},集合B={软件配置信息},其中软件配置信息和软件基础信息涉及的软件都是当前正要被安装的软件。依赖软件配置信息是指已经安装过的软件按配置信息,依赖软件必须提前安装完毕。集合A中的元素x与集合B中的元素y对应关系是:1、一个x元素可以对应多个y元素,2、一个y元素值来可以是定义的默认值。如果是系统使用端口部署时可以根据占用情况动态计算,3、当一个y元素值来源于x元素时,y元素只能与一个x元素发生映射关系,y元素值是x元素值基于字符串处理后的值或是直接等于x元素值。
[0063] 在本发明实施例中,步骤S1中,通过公司软件部署服务管理端管理软件数据元信息的具体方法为:获取软件数据元模型;遍历软件数据元模型中每个数据组对应的JSON Object节点,若存在依赖关系,则根据依赖关系确定软件配置信息,并根据软件配置信息对JSON Object节点的数据项值进行更新,否则将JSON Object节点的数据项值设置为默认值;将JSON Object节点的数据项值作为配置信息。
[0064] 基于软件部署数据元模型和软件依赖关系,可以根据软件部署信息计算出新部署软件的安装信息。采用这种方式可以提高实施人员在实施过程中软件信息收集和配置的效率,同时减少可能的配置错误。
[0065] 在本发明实施例中,公司软件部署服务管理端采用中文快捷命令编写软件部署脚本;运维人员上传完毕软件安装包后,需要编写对应的软件部署脚本。考虑到软件安装部署脚本经常用的命令,为了提高脚本编写效率,本发明采用中文快捷命令方式进行实现。
[0066] 中文快捷命令包括端口冲突处理命令、安装文件上传并解压命令和执行交互命令;
[0067] 端口冲突处理命令用于在软件安装前进行端口冲突检测,具体为:若软件的计划使用端口已被占用,则自动将下一个非占用端口作为计划使用端口;
[0068] 安装文件上传并解压命令用于在软件安装包和配置文件统一打包上传至软件部署服务管理端后进行解压操作;
[0069] 执行交互命令用于将shell命令作为执行参数。
[0070] 在软件安装前会进行端口冲突检测,设计了端口冲突处理命令,该命令在使用时会根据当前端口占用情况判断计划使用端口是否已被占用,如果被占用会自动计算一个非占用端口作为计划使用端口;在软件安装过程中软件压缩包上传之后,会进行解压操作,基于这种情况设计了安装文件上传并解压命令。同时考虑到满足场景覆盖度增加命令的灵活性,设计了执行交互命令,允许开发人员直接使用shell命令作为执行参数,并采用回调的方式实现执行结果的返回。
[0071] 在本发明实施例中,步骤S4中,确定目标服务器对应的shell命令的具体方法为:基于软件的配置信息,将中文快捷命令与shell命令建立映射关系;获取目标服务器的类型和系统版本,并识别目标服务器的中文快捷命令;根据目标服务器的中文快捷命令和映射关系,确定目标服务器对应的shell命令。
[0072] 由于快捷命令实际执行的还是shell命令,考虑到操作系统的差异,需要人工将快捷命令和每种操作系统shell命令建立映射关系,这个映射关系是实现快捷命令的基础,在实际执行时根据系统类型执行对应的shell命令。中文快捷命令屏蔽了实时人员学习不同操作系统命令的过程,降低了学习成本。
[0073] 在本发明实施例中,步骤S4中,将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯的具体方法为:对中文快捷命令进行编译,根据目标服务器的类型,将编译通过的中文快捷命令转换为对应的shell命令,采用SSH方式将院内软件部署服务管理端与需要安装软件的目标服务器建立通讯,将对应的shell命令发送至目标服务器,并将目标服务器的执行结果返回至院内软件部署服务管理端,通过院内软件部署服务管理端确定是否发送下一条shell命令至目标服务器。
[0074] 部署脚本的执行过程为:步骤1:脚本编译阶段会对脚本根据关键字判断是否属于快捷命令的范畴,如果不在快捷命令范畴则认为命令不合法,在命令合法下如果参数定义不符合要求也认为命令不合法。步骤2:脚本转义阶段会将编译通过的快捷命令,根据目标操作系统类型转义成操作系统能够执行的shell命令。步骤3:脚本执行阶段采用SSH方式与目标服务器建立远程通讯连接,将转义好的shell命令一条一条发给操作系统执行,目标服务器执行步骤4。步骤4:目标服务器在接收到shell命令后进行执行,执行后的结果目标服务器实时返回给发送方,发送方执行步骤5。步骤5:命令发送方在收到返回结果,根据部署脚本的执行逻辑判断是否发送下一条shell命令给目标服务器执行,还是退出当前部署脚本执行。
[0075] 基于软件部署数据元定义,一个软件的安装都会满足如下条件
[0076] 条件1:安装软件不依赖其他任何软件时,只与所属服务器信息相关。
[0077] 条件2:安装软件依赖第三方软件安装信息、所属服务器信息、本身自带的基础信息。根据软件依赖关系定义如果安装软件依赖的第三方软件的依赖软件,则需要将这种间接依赖关系转换为直接依赖数据组。
[0078] 本发明的工作原理及过程为:针对在医院环境下,现有的软件都需要支持离线下载,这些软件的管理就需要做统一管理,并且针对每个软件的安装制定安装部署脚本。这样实施统一到指定的服务器下载这些资源,再通过医院内网上传资源,然后进行安装。本发明采用数据元思想统一描述服务器、软件安装信息,当安装的软件依赖于多个其他软件时基于数据元的多模型融合算法解决了软件依赖配置问题,实现了中文语言的软件部署脚本开发语言,同时在语言层面屏蔽了操作系统管理命令差异,提出了院内Linux软件库管理体系,实现了Linux软件远程可视化闭环管理。