java - 两个隔离系统之间的同步

标签 java web-services architecture jax-ws software-design

需要帮助、某种架构建议...两个独立系统之间同步的最佳方式是什么?

一个是标准的 java 环境,另一个是一些没有 j2ee 集成且没有调度选项的遗留系统。旧系统公开了 Web 服务,所有处理都是通过客户端(java 应用程序)的调用启动的。处理将通过大约 100 个 Web 服务调用开始,并且需要很长时间才能完成,因此我不能在线程中等待那么长时间。

我正在考虑使用一种方法,让客户端开始处理并公开另一个 Web 服务以等待遗留系统处理。遗留系统将通过将所需数据放入数据库(记录 ID 或类似内容)来提供信息。这将是另外 100 个调用,作为对 init 调用的某种应答。这是合法的软件架构解决方案吗?

两个系统都正在读取/写入同一数据库。因此是否需要 2 个网络服务?旧系统没有计划启动的选项,因此我需要以某种方式启动它。

最佳答案

不太清楚您拥有什么以及需要什么。那么,让我稍微推测一下。

1) 旧系统收到 100 个请求,然后将它们作为一批一起处理。新系统需要所有这 100 个答案才能继续创建新请求。基于这个假设,遗留系统不会对每个单独的请求做出回应。因此,既然没有提供答案,那么新系统应该继续数百个地发出新的请求。但是,如果在旧系统中第 1 步未完成时新系统不应发出 101 请求,则需要同步。因此,新的不应该等待,而是不启动 101,直到它知道第 1 步完成为止。这应该是同步点 - 不等待 101,而是检查第一个是否完成。它可以在旧系统或新系统中完成,但这就是同步点。

关于java - 两个隔离系统之间的同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30312340/

相关文章:

java - 步骤链接的说明

iphone - 可与任何 Web 服务 API 交互的 Cocoa 库

java - JMS 如何与服务总线相关

wcf - 消费服务: The type name ‘AAA' does not exist in the type ‘YYY.YYY’ 时出错

c# - DDD 和基于重型基础设施的 'domains' - DDD 在这里失败了吗?

wcf - Ninject 3、WCF服务和参数化构造函数

java - Files.readAllLines 和 Files.lines 哪个方法读取文件更快?

java - 按对象数组列表分组而不创建映射

java - 我的比较器应该是什么类型

Python 和 sharepoint 集成