- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
- 控制台操作指南
-
数据建模引擎用户指南
- 设计态使用指南
- 运行态使用指南
- 流程引擎使用指南
- 数字主线引擎用户指南
- 最佳实践
- 开发指南
-
API参考
- 使用前必读
- API概览
- 如何调用API
-
API
- 应用管理
- 运行服务管理
-
数据建模引擎
- 基础数据服务
-
版本服务
- 管理员更新M-V模型数据实例
- 管理员批量更新M-V模型数据实例
- 管理员撤销检出M-V模型数据实例
- 管理员批量撤销检出M-V模型数据实例
- 获取指定M-V模型实例的版本列表
- 获取指定版本的M-V模型实例数据
- 检出M-V模型数据实例
- 批量检出M-V模型数据实例
- 检出并更新M-V模型
- 批量检出并更新M-V模型
- 撤销检出M-V模型数据实例
- 批量撤销检出M-V模型数据实例
- 检入M-V模型数据实例
- 批量检入M-V模型数据实例
- 更新并检入M-V模型数据实例
- 批量更新并检入M-V模型数据实例
- 修订M-V模型数据实例
- 批量修订M-V模型数据实例
- 修订并更新M-V模型数据实例
- 批量修订并更新M-V模型数据实例
- 批量升级M-V模型实例的版本号
- 删除版本对象下最新分支的最新版本实例数据
- 软删除版本对象下最新分支的最新版本实例数据
- 删除最新大版本下的所有小版本
- 批量删除最新大版本下的所有小版本
- 软删除M-V模型实例下最新分支的所有小版本数据
- 批量软删除最新大版本下的所有小版本
- 对比M-V模型实例
- 失效管理
- 业务编码生成器
- 标签管理
- 生命周期管理
- 系统版本
- 多维视图和多维分支
- 关系实体服务
- 树形结构
- 流程引擎
- 应用示例
- 权限和授权项
- 附录
- SDK参考
-
常见问题
- 一般性相关问题
- 计量计费相关问题
-
数据建模引擎相关问题
- 设计态与运行态有什么区别?
- 为什么无法登录应用运行态?
- 为什么用户管理中会有“用户不存在”的用户?
- 为什么登录应用运行态时提示“缺少参数或参数错误”?
- 为什么设置输入型参数时提示安全校验失败?
- 应用发布后,在运行态为什么看不到构建的模型数据?
- 如何验证已设置的用户权限已生效?
- 什么是XDM应用?
- 什么是M-V模型?
- 数据建模引擎支持哪些属性类型?
- 枚举、合法值和参考对象的区别是什么?
- 入图和不入图有什么不同?
- 数据建模引擎支持哪些层级的缓存?
- 如何进行应用同步?
- 可以通过API方式使用应用设计态吗?
- 体验版数据建模引擎和基础版数据建模引擎提供的API有什么不同?
- 如何查看数据建模引擎的版本号?
- 如何避免数据模型互相引用形成环?
- 使用JDK 17版本应用运行态时,服务编排存在哪些约束与限制?
-
数字主线引擎相关问题
- 什么是企业租户和应用租户?
- 创建实体时选择构建表的作用是什么?
- 复杂实体属性太多,创建麻烦怎么办?
- 什么是源端映射和目标端映射?
- 什么是增量字段?
- 关系型数据库映射配置中DelFlag字段的作用是什么?
- 创建数据质量任务时,怎么选不出数据实体?
- 为什么LinkX-F中xDM-F来源的实例数据的最后更新时间显示与xDM-F中不一致
- 什么是入图调度的数据起止时间和数据分片间隔?
- 聚合服务编排中非纯脚本服务选择入参时,提示错误“初始数据实体必填入参为空,请选择必填入参”?
- 发布聚合服务后生成的API如何调用?
- 调用聚合服务时提示“查找不到该企业用户”
- 为什么操作时提示WSF参数校验失败?
- 描述类信息中输入英文双引号导致系统错误提示
- 全量数据服务API相关问题
- 文档下载
- 通用参考
链接复制成功!
在本地通用服务器中部署流程引擎流程SDK
当您希望将流程引擎以微服务的形式部署到本地通用服务器,可以更好地控制和管理自己的应用数据、减少数据传输的延迟时,可以选择此实施方式进行流程引擎流程SDK独立部署。后续,您还可以基于流程引擎灵活扩展,为上层应用提供使用HTTP协议进行通信的API调用能力。
准备事项
- 请在部署流程引擎流程SDK之前,提前获取SDK包和License文件。
如何获取SDK请参见获取数据建模引擎SDK。
- 已在本地通用服务器中部署Node.js。
如果本地通用服务器未部署Node.js,请参见如何在本地通用服务器中部署流程运行服务依赖的Node.js环境?进行部署。
操作步骤
如下操作以CentOS 7.6 64位操作系统的ECS为例。
- 登录Linux弹性云服务器。
- 将已获取的SDK包和License文件上传至弹性云服务器,具体操作请参见上传文件到云服务器方式概览。
- 执行如下命令,将SDK包解压缩到部署服务器的工作目录。
tar -xvf {SDK包的名称} -C {部署服务器的工作目录}
例如,将SDK包“workflow-sdk-1.24.100-SNAPSHOT”解压缩到“/root/deploytest”路径下。
tar -xvf workflow-sdk-1.24.100-SNAPSHOT -C /root/deploytest
解压缩后的SDK包会在“/root/deploytest”路径下生成如下结构的目录文件。
|--- {iDME SDK版本号}-SNAPSHOT:包含流程编排服务和流程运行服务的依赖项。 |--- design:流程编排服务。 |--- lib:包含流程编排服务的所有依赖项。 |--- runtime:流程运行服务。 |--- lib:包含流程编排服务的所有依赖项。
- 执行如下命令,进入流程编排服务的工作目录,例如“/root/deploytest/1.24.100/design”。
cd /root/deploytest/1.24.100/design
- 执行如下命令,打开“application.properties”文件。
vim application.properties
- 按i切换至编辑模式,并根据实际的流程引擎流程SDK资源规划,按需添加对应资源配置信息,完成流程编排服务的配置。
# 流程编排服务配置 basic.runtime.application.id=123456 basic.runtime.domain.id=123abc basic.runtime.protocol=http basic.server.domain=localhost.huawei.com server.servlet.context-path=/workflowDesign server.port=60001 store.s3.bucketname=basic-dabao-test store.s3.endpoint=obs.cn-north-7.ulanqab.huawei.com config.obs.endpoint=https://obs.cn-north-7.ulanqab.huawei.com store.s3.ak=123ABC store.s3.sk=456DEF basic.workspace.workflow-runtime.url=http://localhost.huawei.com:60004/workflowRuntime basic.runtime.domain=localhost.huawei.com:60004 workflow.prefix=/workflowRuntime security.group.privatekey=abc123 security.group.publickey=def456 xdm.license.licenseFile=/root/deploytest/license.dat basic.runtime.application.admin-list=123,456 # 数据库配置 application.dbType=pgsql datasource.jdbcDriverClass.1=org.postgresql.Driver datasource.user.1=root datasource.password.1=123456 datasource.url.1=jdbc:postgresql://120.0.0.7:5432/test?targetServerType=master¤tSchema=definition_test&stringtype=unspecified rdm.hibernate.dialect=com.huawei.it.rdm.configuration.PostgreSQL10XdmDialect rdm.dbType=postgresql # Redis配置 redis.redisClusterConfiguration.clusters=7.0.0.1:6379,7.0.0.2:6379 spring.redis.type=CLUSTER spring.redis.password=123456 # 单点登录配置 basic.auth.orgId.enable=TRUE basic.auth.orgId.redirect-url=http://localhost.huawei.com:${server.port}${server.servlet.context-path}/index.html ssf.login.oauth2.client-id=111aaa ssf.login.oauth2.client-secret=222bbb basic.runtime.org.code=333 # 其他配置 xdmf.init=TRUE
其中,“xdm.license.licenseFile”的License文件路径需与2的存放路径保持一致。
- 按Esc,输入:wq,保存文件并返回。
- 执行如下命令,进入流程运行服务的工作目录,例如“/root/deploytest/1.24.100/runtime”。
cd /root/deploytest/1.24.100/runtime
- 执行如下命令,打开“application.properties”文件。
vim application.properties
- 按i切换至编辑模式,并根据实际的流程引擎流程SDK资源规划,按需添加对应资源配置信息,完成流程运行服务的配置。
# 流程运行服务配置 server.servlet.context-path=/workflowRuntime basic.server.domain=localhost.huawei.com server.port=60004 security.group.privatekey=abc security.group.publickey=efg xdm.license.licenseFile=/root/deploytest/license.dat basic.xdm.module.sync.service-url=http://localhost:8003/rdm_123_app/services basic.runtime.application.admin-list=123,456 basic.workspace.definition.url=http://localhost.huawei.com:60001/definitionmicro # OBS配置 store.s3.bucketname=testObs store.s3.endpoint=obs.cn-north-7.ulanqab.huawei.com config.obs.endpoint=https://obs.cn-north-7.ulanqab.huawei.com store.s3.ak=testak store.s3.sk=testsk # 数据库配置 application.dbType=pgsql datasource.jdbcDriverClass.1=org.postgresql.Driver datasource.user.1=admin datasource.password.1=admin datasource.url.1=jdbc:postgresql://127.0.0.1:8888/testdb?targetServerType=master¤tSchema=testschema&stringtype=unspecified rdm.hibernate.dialect=com.huawei.it.rdm.configuration.PostgreSQL10XdmDialect rdm.dbType=postgresql # redis配置 redis.redisClusterConfiguration.clusters=1.111.11.111:6379,2.222.22.222:6379 spring.redis.type=CLUSTER spring.redis.password=admin # 单点登录配置 basic.auth.orgId.enable=TRUE basic.auth.orgId.redirect-url=http://localhost.huawei.com:${server.port}${server.servlet.context-path}/index.html ssf.login.oauth2.client-id=abc123 ssf.login.oauth2.client-secret=abc123 basic.runtime.application.id=abc123 basic.runtime.domain.id=123 basic.runtime.org.code=333 # 其他配置 xdmf.init=TRUE
其中,“xdm.license.licenseFile”的License文件路径需与2的存放路径保持一致。
- 按Esc,输入:wq,保存文件并返回。
- 执行如下命令,将node相关依赖复制到指定目录“/usr/local”。
cp -r ./lib/node_modules /usr/local cd /usr/local/node_modules/.bin # 解压后符号链接丢失 需重新设置 ln -sf ../acorn/bin/acorn acorn ln -sf ../browserslist/cli.js browserslist ln -sf ../cssesc/bin/cssesc cssesc ln -sf ../errno/cli.js errno ln -sf ../esbuild/bin/esbuild esbuild ln -sf ../eslint/bin/eslint.js eslint ln -sf ../eslint-config-prettier/bin/cli.js eslint-config-prettier ln -sf ../he/bin/he he ln -sf ../image-size/bin/image-size.js image-size ln -sf ../jsesc/bin/jsesc jsesc ln -sf ../json5/lib/cli.js json5 ln -sf ../js-yaml/bin/js-yaml.js js-yaml ln -sf ../less/bin/lessc lessc ln -sf ../mime/cli.js mime ln -sf ../nanoid/bin/nanoid.cjs nanoid ln -sf ../needle/bin/needle needle ln -sf ../which/bin/node-which node-which ln -sf ../npm-run-all/bin/npm-run-all/index.js npm-run-all ln -sf ../@babel/parser/bin/babel-parser.js parser ln -sf ../pidtree/bin/pidtree.js pidtree ln -sf ../prettier/bin-prettier.js prettier ln -sf ../resolve/bin/resolve resolve ln -sf ../rimraf/bin.js rimraf ln -sf ../rollup/dist/bin/rollup rollup ln -sf ../npm-run-all/bin/run-p/index.js run-p ln -sf ../npm-run-all/bin/run-s/index.js run-s ln -sf ../semver/bin/semver.js semver ln -sf ../typescript/bin/tsc tsc ln -sf ../typescript/bin/tsserver tsserver ln -sf ../update-browserslist-db/cli.js update-browserslist-db ln -sf ../vite/bin/vite.js vite ln -sf ../vue-tsc/bin/vue-tsc.js vue-tsc chmod -R 700 /usr/local/node_modules
- 执行如下命令,创建“vueproject”文件夹。
mkdir -p /usr/local/vueproject chmod -R 700 /usr/local/vueproject
- 分别进入流程编排服务和流程运行服务的工作目录,依次执行如下命令,复制OLC配置文件。
如果您在设置流程编排服务和流程运行服务的“application.properties”文件时,未开启OLC限流降级,可跳过此步骤。
- 执行如下命令,创建临时文件夹“temp_unzip”,并解压缩OLC文件至该临时文件夹。
mkdir temp_unzip tar -xf ./lib/MetaWorkflowRuntimeService-1.4.0-SNAPSHOT-small.jar -C temp_unzip
- 执行如下命令,创建文件夹“olc”,并将“temp_unzip/olc/”目录下的所有文件复制到“olc”目录中。
mkdir olc cp -r temp_unzip/olc/* olc/
- 执行如下命令,删除临时文件夹。
rm -rf temp_unzip
- 执行如下命令,创建临时文件夹“temp_unzip”,并解压缩OLC文件至该临时文件夹。
- 分别进入流程编排服务和流程运行服务的工作目录,执行如下命令,创建并启动脚本。
- 在流程编排服务的工作目录下,依次完成如下操作。
- 执行如下命令,创建启动流程编排服务的脚本文件。
vim startDesign.bash
- 按i切换至编辑模式,输入以下内容,设置启动流程编排服务脚本。
# 指定启动类 START_CLASS=com.huawei.it.plm.definitiondemo.WfDefinitionDemoApplication # 指定启动类所在路径,为lib目录下 LOAD_CLASSPATH=./lib/*:./ # 执行java命令,以配置文件application.properties启动服务,并把日志输入到当前目录下的xdm.log中 sh -c "java -Xms8g -Xmx8g -Dspring.config.additional-location=./application.properties -cp $LOAD_CLASSPATH $START_CLASS"
- 按Esc,输入:wq,保存文件并返回。
- 执行如下命令,设置“startDesign.bash”脚本文件权限。
chmod +x startDesign.bash
- 执行如下命令,启动流程编排服务。
./startDesign.bash
- 执行如下命令,创建启动流程编排服务的脚本文件。
- 在流程运行服务的工作目录,依次完成如下操作。
- 执行如下命令,创建启动流程运行服务的脚本文件。
vim startRuntime.bash
- 按i切换至编辑模式,输入以下内容,设置启动流程运行服务脚本。
# 指定启动类 START_CLASS=com.huawei.it.workflowdemo.WorkflowRuntimeApplication # 指定启动类所在路径,为lib目录下 LOAD_CLASSPATH=./lib/*:./ # 执行java命令,以配置文件application.properties启动服务,并把日志输入到当前目录下的xdm.log中 sh -c "java -Xms8g -Xmx8g -Dspring.config.additional-location=./application.properties -cp $LOAD_CLASSPATH $START_CLASS"
- 按Esc,输入:wq,保存文件并返回。
- 执行如下命令,设置“startRuntime.bash”脚本文件权限。
chmod +x startRuntime.bash
- 执行如下命令,启动流程运行服务。
.startRuntime.bash
- 执行如下命令,创建启动流程运行服务的脚本文件。
- 在流程编排服务的工作目录下,依次完成如下操作。
- 完成部署后,流程引擎支持如下几种验证方式。您可以根据实际情况选择验证。
- 方式一:查看服务日志
执行如下命令,查看服务日志。
tail -f xdm.log
显示结果为类似如下信息,则说明启动成功。
- 流程编排服务
INFO WfDefinitionDemoApplication:61 - Started WfDefinitionDemoApplication in xxx seconds
- 流程运行服务
INFO WorkflowRuntimeApplication:61 - Started WorkflowRuntimeApplication in xxx seconds
- 流程编排服务
- 方式二:调用指定接口
启动“startDesign.bash”和“startRuntime.bash”脚本文件后,约等待2分钟,调用如下健康检查接口,查询服务是否正常启动。
http://{部署服务器的IP地址}:{部署服务器的端口号}${流程编排服务文根/流程运行服务文根}/health/check
如果返回如下信息,则说明启动成功。
true
- 方式三:访问可视化页面
如果您已在流程引擎流程SDK资源规划中规划了单点登录的相关资源/云服务,并在部署时配置了单点登录信息,可以选择此方式进行验证。
在浏览器中访问如下地址,查看服务是否启动成功。
- 流程编排服务
http://{承载流程编排服务的服务器域名或IP地址}:{流程编排服务的端口号}/{流程编排服务文根}/index.html#/processApplicationForm?tenantId=-1&applicationId={应用ID}
- 流程运行服务
http://{承载流程运行服务的服务器域名或IP地址}:{流程运行服务的端口号}/{流程运行服务文根}/wfAdminIndex.html#/process-tasks?tenantId=-1&applicationId={应用ID}
转入流程引擎登录页面,输入登录账号和登录密码,成功登录并进入流程引擎页面,即表示启动成功。
- 流程编排服务
- 方式一:查看服务日志