Рассмотрим клиентское приложение, которое должно хранить свои данные на удаленном сервере. Мы не хотим, чтобы он получал доступ к этим данным «на лету», а хотим, чтобы он имел копию этих данных в локальной базе данных. Таким образом, нам не нужно соединение с удаленным сервером, чтобы использовать приложение. В конце концов мы хотим синхронизировать локальную базу данных с удаленным сервером. Хороший пример того, о чем я говорю, - сервис Evernote . Этот тип приложений очень распространен, например, в разработке мобильных приложений, где пользователю не гарантируется постоянное подключение к Интернету, пропускная способность ограничена и трафик может быть дорогим.
Решения ORM (объектно-реляционное отображение) обычно позволяют разработчику определить некоторую промежуточную "модель" для своих данных бизнес-логики. И затем работать с ним как с некоторой объектной иерархией на его языке программирования, имея возможность хранить его в реляционной базе данных.
Почему бы не добавить в систему ORM функцию, которая позволит автоматически синхронизировать две базы данных (клиентскую и серверную), которые совместно используют одну модель данных? Это упростит разработку приложений описанного выше типа. Существуют ли системы для какой-либо платформы или языка, в которых реализована эта или аналогичная функция?