Я планирую использовать следующую архитектуру для одного из приложений: Клиент: приложение на основе Java, которое будет использовать базу данных MySQL. Сервер: будет основан на C#, а база данных будет на SQL Server.
Теперь можно использовать Microsoft Sync Framework в Java? (Возможно, реализовав какие-то интерфейсы?). Я хочу, чтобы данные от Java-клиента синхронизировались с сервером и наоборот. Это возможно?
Если нет, то можете ли вы предложить другую структуру синхронизации.





Вам нужно будет найти «клей» между Java и фреймворком Sync. Собственный интерфейс Java даст вам хорошее начало.
Во-первых, я не знаком с Sync, но быстрое чтение обзор предполагает, что вашему клиенту потребуется предоставить веб-службу или RSS-канал, чтобы среда выполнения Sync могла получить данные для синхронизации из Java-процесс.
Проблемы, которые я вижу в вашем дизайне, заключаются в том, что обычно существует более одного клиента, но семантически один бэкэнд - в данном случае база данных MySQL. Я подозреваю, что это приведет к тому, что Sync будет думать, что при работе нескольких клиентов возникают конфликты, но я могу ошибаться.
В любом случае, помимо этого, я предполагаю, что ваша цель - синхронизировать базы данных MySQL и MSSQL? Если это так, почему бы не запустить серверный процесс перед базой данных MySQL, которая становится участником синхронизации. Если у вас уже есть .Net на стороне сервера, вы даже можете написать его на C#, что обязательно облегчит проблемы взаимодействия.
Если вы настроены на то, что клиент является участником синхронизации, взгляните на Jakarta Commons, в котором, я думаю, есть код, который вам нужен, чтобы превратить вашего клиента в простой веб-сервер, который понадобится для его работы в качестве веб-сервис или RSS-канал.
На самом деле вы можете использовать отслеживание изменений прямо с SQL-сервера.
http://msdn.microsoft.com/en-us/library/cc280462(SQL.100).aspx
Вы можете сделать «клиентскую» часть Sync Framework отдельным приложением или службой C# .NET. Это означает развертывание клиента синхронизации и платформы .NET на клиентских машинах. Вам также придется создать поставщика клиента MySQL для Sync Framework (хотя вы, вероятно, сможете найти или адаптировать что-нибудь из codeplex).
Если вы не можете установить .NET на клиентские машины, вам может потребоваться рассмотреть возможность использования системы синхронизации, построенной на стеке Java, и использовать ее. Что-то вроде одного из предложенных здесь решений: Фреймворк с открытым исходным кодом в стиле Microsoft Sync Framework?. По крайней мере, некоторые из предложений могут относиться как к MSSQL, так и к MySQL.