我正在研究在我们的应用程序中使用企业集成模式来替代当前架构,但我不清楚如何将它用于我们的系统。(不管我们使用什么 EIP 实现。)
我们所拥有的是一个系统,它可以为每种情况接收各种类型的消息(让我们将它们标记为消息类型 A、B(MT-A、MT-B))。对于每条消息,我们通过 Web 服务或某种文件协议等调用各种外部系统(其中大约 15 个)。然后所有这些数据都转换为我们的域模型,保存到数据库中(假设它是一个规范域模型(清洁发展机制))。
第一个问题是当我收到一条消息 (MT-A) 时,我想做的是使用消息中的数据调用 Web 服务。在接下来的几个步骤中处理响应(假设进行一些转换,将其保存到数据库等)。但随后我想继续处理我的原始消息,从而使用其中的数据调用其他系统。但是现在作为流程流中的消息有效负载具有来自 Web 服务的响应。在调用外部系统之前,最好的方法是找回我一开始使用的原始消息?(我是否应该为此使用消息存储,我也看到某处将原始消息放在标题中是一种非常丑陋的解决方法。)
假设我收到了一些关于一个案例的消息,其中一些来自它们的数据,也来自外部系统的数据现在位于我们的数据库/CDM 中。然后我收到一条消息 MT-B,我正在调用其他类型的系统,但是对于调用,我需要收到消息中的数据,还需要来自先前进程的数据库/CDM 中的数据。那么我应该如何获取这些数据。所以我在想2个解决方案:
2.1。当我迈出第一步时,我将接收到的消息集成到我的 CDM 中,那么我在此过程中的消息有效负载将是我的整个 CDM,因此我手中有我需要的一切。(这也可以解决第 1 点。)
2.2. 将案例 ID 放在与此消息相关的标头中,因此如果我需要来自 CDM 的一些数据,我只需在调用外部系统的服务或端点中查询它。
那么这些解决方案中的哪一个更适合这种情况,可能还有其他一些。或者也许我只是没有清楚地看到或理解 ESB-s,我对这个话题很陌生。注意:在这里,我将规范域模型理解为存储在数据库中的应用程序的通用域模型,其中我有我需要的所有数据。(来自消息也来自外部系统)
谢谢你。