我们正在开发一种方案,将消息模式和微服务相结合以定义和运行业务流程。
它应该具备以下组件:
- 网关:用于启动事务,带有给定的流程 ID, - BPM:用于存储规则(为给定流程调用哪些服务), - 服务选择器:一种处理器,它从网关获取请求,获取流程定义,然后逐个调用适当的服务, - 功能服务。
我们应该能够定义多个流程,其中每一步都是调用不同的服务。
一个服务的输出可能是另一个服务的输入。问题在于它们可以具有不同的架构,因此需要进行转换/归一化处理。
但是哪部分应负责执行这样的转换?它应该是可配置的,因为我们希望添加新的流程而无需重新部署。
第一个想法是存储每个服务的响应,然后每个步骤将使用 XSLT 转换将前面的响应生成输入 XML。但是,这可能是配置地狱,因为创建和测试这样的 XSLT 不会很容易。
您有任何建议如何正确解决这个问题吗?
它应该具备以下组件:
- 网关:用于启动事务,带有给定的流程 ID, - BPM:用于存储规则(为给定流程调用哪些服务), - 服务选择器:一种处理器,它从网关获取请求,获取流程定义,然后逐个调用适当的服务, - 功能服务。
我们应该能够定义多个流程,其中每一步都是调用不同的服务。
一个服务的输出可能是另一个服务的输入。问题在于它们可以具有不同的架构,因此需要进行转换/归一化处理。
但是哪部分应负责执行这样的转换?它应该是可配置的,因为我们希望添加新的流程而无需重新部署。
第一个想法是存储每个服务的响应,然后每个步骤将使用 XSLT 转换将前面的响应生成输入 XML。但是,这可能是配置地狱,因为创建和测试这样的 XSLT 不会很容易。
您有任何建议如何正确解决这个问题吗?