我们正在更换旧系统。这两个应用程序将在一段时间内同时运行。用户将能够使用任一系统,挑战在于能够保持他们的数据库彼此同步。
新系统是 ASP.NET,旧系统是 VB6。两者都在 SQL Server 数据库上运行。目前还不清楚数据库是否会在同一个服务器机房,更不用说同一个国家了。
到目前为止,桌面上的两个解决方案是:
- 位于每台机器上并由其他应用程序调用的 Web 服务。
- 需要修改本机对象的基类上的 Save 方法。这是侵入性的,并且在关闭它时可能是一个问题。
一个单一的 Windows 服务,它轮询每个数据库并计算出发生了什么变化并在适当的时候转发适应的更新。
- 需要更改两个应用程序中的模式以确保它们在所有表上都有 LastModified (DateTime),以便我们可以在任何给定的时间间隔执行定期 SELECT。
这两种解决方案似乎都是合理的。两种解决方案各有利弊。企业要求在更新一个系统和在另一个系统中看到它之间延迟不超过 2 秒(!)。这可能是一个延伸目标,但它是一个目标。
其他被建议但被拒绝的(我愿意重新考虑)是:
- 数据库触发器 (blugrh)
- BizTalk 或其他总线(看起来像一把大锤,对于切换解决方案来说太复杂了)
- 修改所有存储过程 (noooo.)
- SSIS(对此还不够了解)
欣赏你可能有的任何想法。
编辑:注意架构完全不同。