ado.net的Microsoft Sync框架可以与Java一起使用吗?

问题描述:

我计划使用下面的架构的应用之一: 客户:基于Java的应用程序,这将使用MySQL数据库 服务器:将是C#基础,该数据库将SQL Server的ado.net的Microsoft Sync框架可以与Java一起使用吗?

现在是它可能在Java中使用Microsoft Sync Framework? (可能通过实现一些接口?)。我想要将来自Java客户端的数据同步到服务器,反之亦然。这可能吗?

如果没有,那么你可以建议一些其他的同步框架。

您需要在Java和Sync框架之间找到一些“粘合剂”。 Java Native Interface会给你一个良好的开端。

首先,我对Sync不熟悉,但快速阅读overview表明您的客户端需要提供Web服务或RSS源,以便Sync运行时获得要同步的数据来自Java进程。

我在设计中看到的问题是,通常有多个客户端,但在语义上是单个后端 - 在这种情况下是MySQL数据库。我怀疑这会导致Sync在多个客户端运行时认为存在冲突,但我可能是错的。

无论如何,除了我假设您的目标是保持MySQL和MSSQL数据库同步?如果是这种情况,那么为什么不在成为Sync参与者的MySQL数据库前运行服务器端进程。如果你在服务器端有了.Net,你甚至可以用C#编写它,这势必会缓解互操作问题。

如果你设置的客户端是Sync参与者,那么看看Jakarta Commons,我认为你需要将你的客户端变成一个简单的Web服务器,它将需要它充当网络服务或RSS提要。

实际上,您可以直接从SQL Server使用更改跟踪。

http://msdn.microsoft.com/en-us/library/cc280462(SQL.100).aspx

你可以有同步框架的“客户端”部分是一个单独的C#.NET应用程序或服务。这意味着将同步客户端和.NET框架部署到客户机。您还必须为Sync Framework构建MySQL客户端提供程序(尽管您可能会从codeplex中找到或修改某些内容)。

如果您无法在客户机上安装.NET,则可能需要考虑利用构建在Java堆栈上的同步系统并使用它。像这里建议的解决方案之一:Open source framework à la Microsoft Sync Framework suggestions?。至少有一些建议可以与MSSQL和MySQL交谈。