智能软件平台 XMagital 解决方案配置规范
1. 引言
1.1 目的
本文档对解决方案配置文件的制作提出了规范性要求。其输入是智能软件平台XMagital应用包及描述配置文件规范。该文档为部署工具集成应用仓库、工程配置环境和基础运行环境实现统一管理、安装部署应用提供了设计依据。
解决方案配置文件主要用于描述部署时所需要的应用信息和部署配置模板。该文档规定了解决方案配置文件的格式和内容要求,以确保解决方案的正确性和可靠性。
1.2 预期读者
本文档的预期读者包括: XMagital 平台软件的管理人员、设计人员、开发人员、测试人员,在 XMagital 平台基础上进行应用软件产品开发的设计人员、开发人员、测试人员、产品经理、工程实施人员和维护人员。
1.3 术语与缩略语
1.3.1 术语
本文使用的专业术语、自定义的词语、容易产生理解偏差的词语以及缩略语。
术语 | 解释 |
---|---|
平台 | 一个公共的基础,在此基础上可以开发不同产品。平台是产品线开发的基础,它为衍生一个产品提供可共用和可重用的特性、设计元素(组件、代码功能)以及相关流程和工具。本文中所提及的平台即XMagital平台。 [GB/T37413-2019 数字化车间术语和定义] |
应用 | Application,为应用软件(application software)的简称,指专为特定工程或特定生产场景编写的程序包,或本身也具有一定的通用性,但是通过XMagital应用开发框架编写的、并可以随时从系统摘除的软件包或模块(如签名软件,称量软件,或WMS接口程序等等)。 |
应用包 | 是对应用程序相关资源的统称,包含应用主程序及相关资源、安装脚本、进程控制脚本。 |
解决方案配置文件 | 解决方案配置文件主要用于描述部署时所需要的应用信息和部署配置模板。该文档规定了解决方案配置文件的格式和内容要求,以确保解决方案的正确性和可靠性。 |
应用仓库 | 应用仓库,管理平台应用及第三方应用包。 |
部署工具 | 部署工具提供服务器节点的管理、应用包管理、应用部署能力,方便工程施工人员快速安装系统。 |
工程配置环境 | HSM Engineering, XMagital 工程配置环境子系统。HSM-ENG以数据为中心,以工程项目实施为主要视角,使用工程配置环境,结合HSM-ENG中集成的多种工具,如业务流程工具、数据集成工具、看板工具、HMI组态和其他工具等,完成工程项目的导入、数据准备、数据验证和数据发布,帮助项目实施人员高效率的开展项目实施工作,最终达到快速交付项目的目的。 |
基础运行环境 | 基础运行环境遵循以应用为中心的设计理念,统一封装容器、应用运行时和底层基础设施相关的技术细节,让使用者专注于业务应用的配置、开发和使用。基础运行环境提供服务和应用稳定运行的能力,涵盖了应用的部署、服务启停与守护、节点与服务监控、系统运维的功能。 |
工程师站 | 供工业过程控制工程师使用的,对计算机系统进行组态、编程、修改等的工作站。 |
服务器 | 根据具体业务需求,在一台(单机)或2台(冗余)计算机上部署平台的在线服务 (包括IO采集服务、实时数据服务及历史数据服务等)使得其具有单独功能或组合功能。 |
1.4 设计约束
1.4.1 假设和依赖
- 平台支持的Linux系统:64位的 Linux5.X及以上,例如:Ubuntu 22.04 LTS Server;银河麒麟Kylin Server V10。
- 本设计文档仅适用运行在Linux环境下的应用包。
- 应用包的环境依赖、数据结构,由应用设计及开发人员保证版本兼容性。
- 应用设计及开发人员保证应用之间不存在强依赖的循环,上传应用到应用仓库时需进行强依赖的循环检查。
2. 概述
本文档对解决方案配置文件的制作提出了规范性要求,明确解决方案配置文件的格式和组成部分。
2.1 解决方案定义
解决方案是指由产品经理针对某一行业特性而制作的一系列产品的解决实施方案。解决方案关键在于深入了解行业的痛点和需求,通过对数据和趋势的分析,提出可行和可持续的解决方案,并实际落地的实施。
产品经理登录到应用仓库页面制作解决方案,根据产品整体规划,灵活组合应用及编排,形成某一特定行业的软件产品安装包,同时在软件产品安装包中预定义部署配置模板文件。
- 解决方案配置文件:产品经理进行组态,灵活组合应用,生成解决方案配置并持久化保存。
- 部署配置模板文件:典型项目部署场景有单机版部署、双服务器冗余、多服务器部署等。
2.1.1 解决方案组成结构
解决方案组成结构如下图 1:
-
基本信息:包含解决方案名称、版本、类型、描述。
-
应用列表:应用列表分类为基础环境、产品应用、产品应用依赖。
产品应用中,系统会自动添加系统管控到产品应用;而对于容器环境是可选的,会根据产品经理选择的应用,系统自动判断是否存在容器应用,才会选择添加容器环境到产品应用。
产品应用依赖,根据产品经理选择的应用,系统自动判断所选应用的服务依赖并添加到产品应用依赖列表。
- 部署配置模板列表:产品经理创建解决方案,灵活选择组合应用,并为解决方案预定义部署配置模板,例如Scada典型部署配置模板有单机版部署、双服务器冗余、多服务器部署。
2.1.2 项目实施流程
项目实施流程步骤如下:
-
产品经理制作解决方案完成后,下载并拷贝系统内核程序、软件产品安装包和安装脚本至系统安装盘。
-
工程实施人员进行项目实施,安装部署流程分为两个过程,包含部署准备和应用部署。
-
部署准备
-
工程师站部署:工程实施人员从系统安装盘离线拷贝系统内核程序、软件产品安装包和安装脚本至工程师站,执行安装脚本后,安装部署并启动系统内核、部署工具、工程配置环境及工程组态工具。
-
普通服务器部署:工程实施人员从系统安装盘离线拷贝系统内核程序和安装脚本至其他服务器,执行安装脚本后,安装部署并启动系统内核。
-
应用部署
工程实施人员进入工程配置环境页面,可以选择内置部署配置模板,也可以选择自定义组态,完成组态操作后,进行应用一键安装部署。
2.1.3 系统安装盘
系统安装盘包含系统内核程序、软件产品安装包和安装脚本。
系统安装盘组成如下图 2:
-
系统内核程序:系统安装的第一个程序,提供了应用稳定运行的能力,包含服务启停与守护。
-
软件产品安装包(工程师站):软件产品包是解决方案的最终形态,包含基础环境、产品应用、解决方案配置文件、部署配置模板文件。
软件产品安装包解压缩后展开的目录结构如下图 3:
-
apps目录:存放基础环境,包含部署工具和工程配置环境。
-
pack目录:存放产品应用。
-
解决方案配置目录(hsm-install/solution/):存放解决方案配置文件。
-
部署配置模板目录(hsm-install/template/):存放部署配置模板文件。
-
安装脚本:安装部署并启动系统内核程序、部署工具、工程配置环境及工程组态工具。
-
安装部署流程
部署准备流程如下图 4:
图 4 部署准备流程
应用部署流程如下图 5:
图 5 应用部署流程
部署准备
- 工程师站部署
在工程师站进行最小化部署准备。部署准备步骤如下:
-
拷贝系统内核程序、软件产品安装包和安装脚本至工程师站。
-
执行安装脚本,进行最小化部署,包含拷贝并解包至指定目录、安装部署并启动系统内核程序、部署工具、工程配置环境以及工程组态工具。
安装脚本示例如下:
- 普通服务器部署
普通服务器最小化部署步骤如下:
-
拷贝系统内核程序和安装脚本至普通服务器。
-
执行安装脚本,进行最小化部署,包含拷贝包至指定目录、安装部署并启动系统内核程序。
安装脚本示例如下:
应用部署
-
首次安装部署
-
添加项目:登录工程配置环境页面,添加项目,保存成功后跳转至工程配置环境主页面。
-
安装部署
- 工程配置环境主页面,点击左侧“安装部署”二级菜单,右侧主区域显示向导选择弹框,如下图 6,选择部署配置模板实现快速组态,也可以通过自定义方式进行组态,保存后,刷新安装部署工具主区域页面。
图 6 首次安装部署向导
- 一键安装:安装部署工具主区域页面工具栏,点击“一键安装”按钮,二次确认确定后开始安装部署,安装部署工具主区域右上角可查看正在安装应用进度,如下图 7。
图 7 一键安装
-
应用维护
-
选择已有项目:登录进入工程配置环境页面,选择已有项目,跳转至工程配置环境主页面,点击左侧“安装部署”二级菜单,右侧显示安装部署工具主页面。
-
应用导入:安装部署工具主区域页面工具栏,点击“应用导入”按钮,选择本地路径,勾选导入应用。
-
添加应用:安装部署工具主区域页面,选中服务器,点击服务器右上角“添加应用”按钮,打开添加应用窗口,选择应用添加至当前服务器。
-
应用升级:安装部署工具主区域页面,选中服务器,点击服务器右上角“应用升级”按钮,打开应用升级窗口。
-
应用升级:选择待升级应用,点击“升级”按钮,即可实现应用的单个升级和批量升级,应用升级失败可回滚至上一可用版本。
-
安装新应用:选择待安装新应用,点击“安装”按钮,即可实现应用的安装。
-
配置文件定义
-
配置文件格式
配置文件为支持复杂格式的类INI文件。
- 配置文件组成
配置文件包含解决方案基本信息、应用列表、部署配置模板列表。
- 基本信息
基本信息内容如下表 1:
信息项 | 子项 | 说明 | 数据类型 | 是否必须 | 取值约定 |
---|---|---|---|---|---|
name | 解决方案名称 | 标量:文本 | 是 | ||
version | 解决方案版本 | 标量: 文本 | 是 | ||
type | 解决方案类型 | 标量: 文本 | 是 | ||
desc | 解决方案描述 | 标量:文本 | 否 | ||
apps | 应用列表 | 列表 | 是 | 详见4.2.2章节 |
表 1解决方案基本信息表
- 应用列表
应用列表信息,对应配置文件[apps]段,内容如下表 2:
信息项 | 子项 | 说明 | 数据类型 | 是否必须 | 取值约定 |
---|---|---|---|---|---|
apps | 应用列表 | 列表 | 是 | 元素为对象 | |
apps.baseEnv | 基础环境列表 | 列表 | 是 | 元素为对象 | |
name | 应用名称 | 标量: 文本 | 是 | ||
ID | 应用ID | 标量: 文本 | 是 | ||
version | 应用版本 | 标量: 文本 | 是 | ||
apps.proApp | 产品应用列表 | 列表 | 是 | 元素为对象 | |
name | 应用名称 | 标量: 文本 | 是 | ||
ID | 应用ID | 标量: 文本 | 是 | ||
version | 应用版本 | 标量: 文本 | 是 | ||
apps.proDepend | 产品应用依赖列表 | 列表 | 否 | 元素为对象 | |
name | 应用名称 | 标量: 文本 | 否 | ||
ID | 应用ID | 标量: 文本 | 否 | ||
version | 应用版本 | 标量: 文本 | 否 |
表 2解决方案应用信息表
- 部署配置模板列表
部署配置模板列表信息,对应配置文件[template]段,内容如下表 3:
信息项 | 子项 | 说明 | 数据类型 | 是否必须 | 取值约定 |
---|---|---|---|---|---|
template | 部署配置模板列表 | 列表 | 否 | ||
desc | 部署配置模板描述 | 标量: 文本 | 否 | ||
type | 部署配置模板部署场景类型(single-单机,double-双机冗余,multi-多机) | 标量: 文本 | 否 | [single,double,multi] | |
tempFileName | 模板文名称 | 标量: 文本 | 否 |
- 应用集列表
应用集列表信息,内容如下:
信息项 | 子项 | 说明 | 数据类型 | 是否必须 | 取值约定 |
---|---|---|---|---|---|
appsets | 列表 | 是 | |||
name | 应用集名称 | 标量: 文本 | 是 |
解决方案配置文件内容示例如下图: