# 工作流作为独立模块部署支持
# 内网Maven仓库地址
Maven仓库(http://192.168.176.10:8081/nexus/) (opens new window)
注意下文中的Maven坐标均可通过该仓库获取
# 工作流模块
模块结构图
![工作流模块结构图](/igs-docs/assets/img/工作流模块结构图.30e6d393.png)
# Workflow Webapp
工作流REST服务模块,提供工作流服务、工作流资源服务、工作流管理管理服务。
注意工作流服务、工作流资源服务与IGServer接口标准基本相同,但缺少了一些带有IGServer业务的额外特性,比如服务目录。
工作流管理服务提供简易版的管理服务,提供工作流的列表查询、导入、导出、删除接口,这些服务在IGServer并未公开,因此这些服务与IGServer的管理服务没有对应关系,这里只是在去除一些业务依赖后,提取了IGServer中最基本的工作流服务管理能力。
该进程只是IGServer对外提供Webapp的demo程序,本身不带任何业务,只有一些springboot的配置,用户可以构建自己的工作流Webapp
<artifactId>mapgis-igs-workflow-standalone-webapp</artifactId>
<groupId>com.zondy.mapgis.igs</groupId>
<version>10.x.x.x</version>
2
3
用户在构建自己的工作流Webapp时,如果需要开启内置的REST服务,请添加如下依赖,并开启配置workflow.standalone.restEnabled=true
<artifactId>mapgis-igs-workflow-service</artifactId>
<groupId>com.zondy.mapgis.igs</groupId>
<version>10.x.x.x</version>
2
3
独立部署配置类详情,添加依赖后,IDEA中可自动提示
@Getter
@Setter
@ConfigurationProperties(prefix = "workflow.standalone")
public class WorkflowStandaloneConfig {
/**
* 是否启用rest服务
*/
private boolean restEnabled;
/**
* 工作流服务的基地址,默认为/igs/rest/services
*/
private String restServicesBaseUrl;
/**
* 工作流服务的基地址,默认为/igs/rest/manager
*/
private String restManagerBaseUrl;
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
在igserver_for_java安装包中已集成该进程的启动脚本,在bin目录下start-workflow-standalone-webapp.bat
,start-workflow-standalone-webapp.sh
,该进程需要依赖zookeeper与WorkflowServerHost进行rpc通信,所以启动服务请使用startup-workflow-standalone.bat、startup-workflow-standalone.sh。
该进程默认端口为8099
,如果需要查看工作流独立模块支持的rest服务接口,请参照http://localhost:8099/swagger-ui/index.html
# WorkflowServerHost
工作流执行进程,由于工作流任务执行在独立进程中执行,用户发送请求执行任务请求到Workflow Webapp后,该模块处理任务并将任务调度到指定的工作流执行进程上,这里进程之间通过dubbo rpc通信。
# FunctionLibraryServerHost
该模块提供用于通过桌面工具搭建工作流时(IGSWorkflow.exe),依赖的socket服务,提供功能库的解析和执行服务。
在igserver_for_java安装包中已集成该进程的启动脚本,在bin目录下start-function-library-server-host.bat
# 开发包文件清单
workflow-standalone-webapp
├── workflow #工作流流程、功能仓库,下面的子文件、文件夹均需要
├── zookeeper #rpc通信需要
├── bin
│ ├── startup-workflow-standalone.bat(startup-workflow-standalone.sh) #工作流webapp的总启动脚本,包括webapp、zookeeper
│ ├── set-env.bat(set-env.sh)#设置环境变量
│ ├── shutdown.bat(shutdown.sh) #关闭进程
│ ├── env.config #开发者狗配置
│ ├── start-function-library-server-host.bat(start-function-library-server-host.sh) #功能仓库服务启动脚本
│ └── start-workflow-standalone-webapp.bat(start-workflow-standalone-webapp.sh) #单独启动工作流webapp
└── lib
├── workflow-host-*.jar #工作流执行进程
├── function-library-server-host-*.jar #功能仓库服务进程
└── workflow-standalone-webapp-*.jar #demo webapp,从仓库中取,安装包中不包含
2
3
4
5
6
7
8
9
10
11
12
13
14
igserver工作流独立模块自带igserver的功能函数,数据库存在于workflow\FunctionLibrary下,功能实现的jar包igserver-workflow-library.jar位于workflow\FunctionLibrary\GIS\MapGIS\jar文件夹中,当用户不需要使用igserver自带的功能函数时,可以将数据库清空并且删除igserver-workflow-library.jar,之后可以将自己开发的jar包放入对应的目录中,igserver工作流独立模块根据是否需要依赖内核接口来分别搭建工程
如果开发的jar包依赖了内核接口,工程目录workflow-standalone-webapp的存放位置必须和program在同一目录下,考虑到依赖内核产生的授权问题,服务器最好不要设置java的环境变量,工程启动默认使用program目录自带的java环境
如果开发的jar包不依赖内核接口,整个工程会非常轻量级,将不会有program目录,对应也不会有program目录自带的java环境,所以服务器需要提前搭建好java环境