|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Никто не может поделится ссылками на интернет-источники и бумажные книги по offline-синхронизации информационных сущностей. Есть определенная распределенная БД, нужно разработать простой механизм кастомизации для "умной" синхронизации данных в общем случае. Что именно читать? Результаты уже есть, но хотелось бы посмотреть на другие решения, если они открыты. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 00:47 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Шаманские практики, не совсем понятно Коллега - Что будем синхронизировать - Данные в Базах или Сущности в Моделях? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 18:22 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Mr MarmeladШаманские практики, не совсем понятно Коллега - Что будем синхронизировать - Данные в Базах или Сущности в Моделях? Экземпляры сущностей, которые размазаны по таблицам в базе. Протокол клиентско-серверного обмена уже есть (пакеты данных нечто типа иерархической БД типа xml). Нужна литература на стратегии "умной" репликации. С Уникальностью проблем нет, так как заранее озаботился чтобы все ID были типа GUID. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 20:19 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Шаманские практикиНужна литература на стратегии "умной" репликации. С Уникальностью проблем нет, так как заранее озаботился чтобы все ID были типа GUID. Поставлю вопрос ещё по другому: Ваша задача : а) Архитектурная (есть несколько баз различных вендоров данные не критичны) б) Аналитическая (есть модели и их надо привести к знаменателю - данные вторичны) в) Административная (есть базы данных от вендоров с данными в продакшн - надо синхронизировать всё) В Зависимости от этой буквы А и будет конкретное решение, Коллега. две другие буквы DB нам известны. Кстати и откуда генерироваться будет Ваш GUID? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 20:54 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Mr MarmeladШаманские практикиНужна литература на стратегии "умной" репликации. С Уникальностью проблем нет, так как заранее озаботился чтобы все ID были типа GUID. Поставлю вопрос ещё по другому: Ваша задача : а) Архитектурная (есть несколько баз различных вендоров данные не критичны) б) Аналитическая (есть модели и их надо привести к знаменателю - данные вторичны) в) Административная (есть базы данных от вендоров с данными в продакшн - надо синхронизировать всё) В Зависимости от этой буквы А и будет конкретное решение, Коллега. две другие буквы DB нам известны. Кстати и откуда генерироваться будет Ваш GUID? Клиент и сервер - приложения. Клиент в котором лежит дерево определённый данных неограниченной вложенности (реально вложенность не более 30), нечто вроде внутренней файловой системы. Клиент меняет эти "файлы" по желанию как хочет(создаёт, изменяет, удаляет(удаление логическое - отметка об удалении)). http://www.tidyfavorites.com/ Есть аккаунт на сервере, на котором клиент может синхронизировать своё текущее состояние (бекап или синхронизация нескольких копий клиентов). На каждый клиент на сервере свою база. Все данные создаются на клиенте - сервер занимается только их сохранением и умной синхронизацией между несколькими клиентами. Там же (на клиенте) каждой записи в базе в качестве идентификатора и присваивается GUID(чтобы не думать об реализации уникальности). Клиент периодически (вручную или по сценарию) производит синхронизацию данных с базой на сервере, но при этом с одним серверным аккаунтом могут одновременно работать несколько копий клиента на разных компьютерах. Необходимо, если возможно, дать ссылки на литературу по организации сценариев синхронизации данных из базы, если структура таблиц может различаться между разными базами. Синхронизация файлов подойдёт. Клиент-сервер написаны на Delphi, база и там и там Firebird, но на сервере может быть база другого вендора. Но так как клиентов может быть от нескольких тысяч до миллионов, то всё это должно быть полностью автоматизировано, чтобы все коллизии разрешались умным алгоритмом. У меня уже есть работающий прототип, но хотелось бы посмотреть другие пути решения и подкорректировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 21:22 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Шаманские практики На каждый клиент на сервере свою база. Моя переводческая система кажется никогда это не переведёт. Пжст поясните авторВсе данные создаются на клиенте - сервер занимается только их сохранением и умной синхронизацией между несколькими клиентами . Там же (на клиенте) каждой записи в базе в качестве идентификатора и присваивается GUID(чтобы не думать об реализации уникальности). Это уже более менее понятно Только почему "несколькими клиентами"? : У меня уже есть работающий прототип, но хотелось бы посмотреть другие пути решения и подкорректировать. А Ваш прототип можно попробовать? Для более полного понимания... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 22:01 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Mr MarmeladШаманские практики На каждый клиент на сервере свою база. Моя переводческая система кажется никогда это не переведёт. Пжст поясните Аккаунтом много, их данные никак не пересекаются, поэтому был выбран вариант, что на каждого из аккаунтов создаётся свою отдельная БД, это позволит создать распределённую систему, где можно задействовать несколько серверов, каждый их которых будет обслуживать, скажем только 10000 определённых аккаунтов в сутки. Это позволит на базе обычного движка FB обрабатывать до нескольких миллионов подключений, так как они будут разнесены в системе (при создании нового аккаунта будет автоматически выбираться менее нагруженный рабочий сервер, на котором и создаваться база). В общем архитектура здесь такова: Балансировщик у которого функция указать для определенного логина его рабочий сервер. Содержит в себе только базу аккаунтов и сопоставленных с ними рабочих серверов. Рабочие сервера , каждый из которых обслуживает свои аккаунты. На каждом из рабочих серверов лежат базы конкретных аккаунтов, которых он обслуживает. Один аккаунт может работать на нескольких компьютерах одновременно, используя свою локальную базу данных FB (сервер только для синхронизации данных между ними). Mr Marmelad : У меня уже есть работающий прототип, но хотелось бы посмотреть другие пути решения и подкорректировать. А Ваш прототип можно попробовать? Для более полного понимания... Пока нет, он работает только в лабораторных условиях на нужных данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2009, 23:30 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Шаманские практики, Ещё такой вопрос Коллега. А какой вендор выбран для поддержки такой архитектуры (платформа?) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 15:04 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Mr MarmeladШаманские практики, Ещё такой вопрос Коллега. А какой вендор выбран для поддержки такой архитектуры (платформа?) ПО написано на Delphi, командой в которой я работаю. FB - вендор понятен. Серверная платформа Windows Server 2000+, для клиентов Win2000, XP и выше. Для сервера понятно, что лучше было бы ваять на чём-то реально серверном, но серверный код на Delphi написан так, чтобы его без бубнов можно было перевести на FreePascal64bit(это если Delphi 2010 не допилят с его 64-битностью). Так что здесь нет никаких ограничений. Для общения клиента и сервера создан RMP(remote message processing) протокол, несколько похожий на технологию COM, но более отказоустойчивый и рассчитанный для Internet (сбор и прибивание подвисших серверных объектов). Лисапед, но который полностью подходит под данный тип задач. Если я правильно понял ваш вопрос, то ответ дан? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 16:35 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Шаманские практики, Если мне не изменяет моё чутьЁ Вы Коллега стоИте у истоков очень серъёзного скачка в технологии. Я не думаю что где то есть какие либо серъёзные материалы или разработки в Вашей области. Она [тематика] сама по себе очень интересна и экстремально нова. Мелкомягкий ведёт серъёзную политику внедряя WCF и WPF последние пару лет - но для их успешного скачка не хватает малости - новых облаков. Мелкомягкий представил решение в виде Microsoft Sync Framework что прежде всего позволяет внедрить pier-to-pier collaboration - именно тот самый асинхронный процесс синхронизации данных Почитайте тут . и вообще держите нас в курсе если найдёте что нить интересное. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 17:37 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Кстати Коллега, посмотрите эту презентатцию от MS - в ней в достаточно образно хоть и без никаких объяснений - видны элементы Вашего поиска. Думаю вам будет интересно: ... |
|||
:
Нравится:
Не нравится:
|
|||
26.03.2009, 18:04 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Это тоже стоит посмотреть Salesforce это уже десять лет назад реализовала.Пробовал промониторить цены,после десятка, сбился со счета ЗЫ Синхронизация в MS Live Mash будет на базе Sync Framework ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 00:47 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
SeVa Это тоже стоит посмотреть Salesforce это уже десять лет назад реализовала.Пробовал промониторить цены,после десятка, сбился со счета ЗЫ Синхронизация в MS Live Mash будет на базе Sync Framework Спасибо. У не не нужен технологический монстр. Пнял что нужно доработать в моём липапеде чтобы оно всегда корректно работало с моей задачей. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 00:49 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Шаманские практики Результаты уже есть, но хотелось бы посмотреть на другие решения, если они открыты. используем подобную модель офф-лайновой синхронизации для распределенных систем. Конфигурация заключается в построении схемы от отправителя к получателю, т.е. каждый отправитель знает кому нужна та или иная информация из его системы и готовит соответствующие реплики сразу, в момент внесения изменений. По заданному расписанию работает специальный сервис, который связывается с получателем (Сервером приложений) и они между собой договариваются: один говорит что у него есть для получателя, другой отвечает сможет ли он принять ту или иную реплику. Если договорились и нет противопоказаний, то получатель (удаленный сервер приложений) принимает реплику и исполняет то, в ней указано. Не договорились - отказ. Т.е. как такового "сравнения" не существует. Фактически, образно, имитируется ситуация как будто локальный пользователь подключился он-лайн к удаленному серверу и продублировал работу, сделанную на локальном сервере. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 01:46 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
iscrafm, Коллега а при "отказе" идёт полный откат "локального запроса" {сиреч синхронизация} или всёжтки системы дис-интегрируются? Так я понимаю всё на основе XML? Что то типа WebSphere? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 01:55 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Mr Marmeladiscrafm, Коллега а при "отказе" идёт полный откат "локального запроса" {сиреч синхронизация} или всёжтки системы дис-интегрируются? "отказ" крайне редкая вещь, обусловленная в основном техническими причинами. Пример. В одной системе размещают (публикуют) документ для согласования. Формируется реплика для получателей, согласно work-flow, содержащая команды для регистрации данного документа в базах данных удаленных узлов и собственно сам файл документа. При старте Транзита (так называется сервис, iTransit) он связывается с удаленным сервером приложений, передает документ и регистрирует его в удаленной базе данных. Через некоторое время на документ кто-то на маршруте ставит визу. Формируется реплика для передачи по маршруту. Но в момент очередной сессии может не быть связи с удаленным сервером приложений или сервер ответил, но не может провести реплику у себя в базе... выдает отказ. Транзит на стороне отправителя оставляет реплику в Исходящие и ждет следующего сеанса. Если получилось - регистрирует реплику в Отправленные. Т.е. он ее все равно отправит и синхронизирует системы, но возможно с задержкой на заданные интервалы сеансов. Как в e-mail. Mr MarmeladТак я понимаю всё на основе XML? не совсем. Система-отправитель просто регистрирует необходимые изменения. Если это был запрос на изменение БД, то так и реплика выглядит - команды на изменение БД (простой пример ниже на рисунке). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 02:30 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
чтобы немного может понятней было, маленький ролик ... показано, как пользователь редактирует что-либо в системе, система протоколирует его действия и результат применяет к текущей БД (в примере) и, если требуется, сохраняет в виде реплики для определенного удаленного сервера. Далее все как написал чуть выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 03:57 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
iscrafmчтобы немного может понятней было, маленький ролик ... показано, как пользователь редактирует что-либо в системе, система протоколирует его действия и результат применяет к текущей БД (в примере) и, если требуется, сохраняет в виде реплики для определенного удаленного сервера. Далее все как написал чуть выше.А как решаются конфликты репликации, когда один объект менялся с двух сторон? Или схема работы пользователей построена так, что их не может быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 10:31 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Bely, ну это не репликация, я оффлайн работа с центральной БД в духе АДО.НЕТ. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 11:31 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
авторСпасибо. У не не нужен технологический монстр. Пнял что нужно доработать в моём липапеде чтобы оно всегда корректно работало с моей задачей. Если ваш лисапед сможет устойчиво ездить, то он будет мало отличаться от этих монстров,на которые затрачены немерянные бюджеты, ресурсы и которые еще,быстрее всего,находятся только в зачаточном состоянии. автор Аккаунтом много, их данные никак не пересекаются, поэтому был выбран вариант, что на каждого из аккаунтов создаётся свою отдельная БД, это позволит создать распределённую систему, где можно задействовать несколько серверов, каждый их которых будет обслуживать, скажем только 10000 определённых аккаунтов в сутки. Это позволит на базе обычного движка FB обрабатывать до нескольких миллионов подключений, так как они будут разнесены в системе (при создании нового аккаунта будет автоматически выбираться менее нагруженный рабочий сервер, на котором и создаваться база). В один прекрасный момент ненагруженный загрузиться под завязку,клиентам может потребоваться дополнительные ресурсы,необходимо обеспечить требумую пропускную способность,надежность,безопасность,восстановление данных и тд.Вы хотите реализовать в чистом виде cloud-computing и в дополнение к нему:работу в off-line и "умную" синхронизацию между несколькими клиентами, к которой даже требования не можете толком описать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 12:19 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
Belyiscrafmчтобы немного может понятней было, маленький ролик ... показано, как пользователь редактирует что-либо в системе, система протоколирует его действия и результат применяет к текущей БД (в примере) и, если требуется, сохраняет в виде реплики для определенного удаленного сервера. Далее все как написал чуть выше.А как решаются конфликты репликации, когда один объект менялся с двух сторон? Или схема работы пользователей построена так, что их не может быть? почему же, конечно может такое быть. Такие ситуации разруливаются точно также, как и в локальной сети. Если входящая реплика имеет полномочия перекрыть запись в базе, то она ее перекроет. Не имеет - получит отказ. Ситуация же ничем не отличается. Представьте что в сети, работает группа пользователей под именем какого-то Сервера приложений . Они точно так же, как и локальные, редактируют записи, добавляют, удаляют и т.п. При этом локальная система естественно как и локальному пользователю предоставляет такие же определенные полномочия. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 13:07 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
SeVaЕсли ваш лисапед сможет устойчиво ездить, то он будет мало отличаться от этих монстров,на которые затрачены немерянные бюджеты, ресурсы и которые еще,быстрее всего,находятся только в зачаточном состоянии. имно, заблуждение. Можно потратить ресурсы, немерянный бюджет, а можно просто придумать архитектуру и логику которая не будет требовать ни таких ресурсов, ни огромного бюджета, но будет просто хорошо выполнять свою работу. На этом-то и базируется понятие ноу-хау. Вполне возможно у Автора именно оно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 13:14 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
iscrafmBelyА как решаются конфликты репликации, когда один объект менялся с двух сторон? Или схема работы пользователей построена так, что их не может быть? почему же, конечно может такое быть. Такие ситуации разруливаются точно также, как и в локальной сети. Ну при Offline-синхронизации - шансы нарваться на конфликт гораздо больше. Если при работе в локальной сети для предотвращения одновременного доступа используют блокировки (серверные или самопальные), то при Offline синхронизации, скажем, 1 раз в день - шансы нарваться на одновременное редактирование одной записи двумя пользователями - существенно возрастают. Собственно, в репликациях это обычно самый тонкий момент, который приходится как-то разруливать. Как у вас с этим было? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 14:18 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
авторимно, заблуждение. Можно потратить ресурсы, немерянный бюджет, а можно просто придумать архитектуру и логику которая не будет требовать ни таких ресурсов, ни огромного бюджета, но будет просто хорошо выполнять свою работу. На этом-то и базируется понятие ноу-хау. Вполне возможно у Автора именно оно. Был бы только рад этому. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 14:21 |
|
Документы и книги по offline-синхронизации информационных сущностей.
|
|||
---|---|---|---|
#18+
BelyiscrafmBelyА как решаются конфликты репликации, когда один объект менялся с двух сторон? Или схема работы пользователей построена так, что их не может быть? почему же, конечно может такое быть. Такие ситуации разруливаются точно также, как и в локальной сети. Ну при Offline-синхронизации - шансы нарваться на конфликт гораздо больше. Если при работе в локальной сети для предотвращения одновременного доступа используют блокировки (серверные или самопальные), то при Offline синхронизации, скажем, 1 раз в день - шансы нарваться на одновременное редактирование одной записи двумя пользователями - существенно возрастают. Собственно, в репликациях это обычно самый тонкий момент, который приходится как-то разруливать. Как у вас с этим было? не раз в день... где как. от 1 мин до 15-20 мин интервалы. Описанный вами тонкий момент только в том случае, если этот момент искуственно создавать, а потом героически преодолевать. Как в примере с "блокировками", например. Я таких тонких моментов не придерживаюсь ни в архитектуре, ни в бизнес-логике, поэтому даже не знаю что рассказать про описаннную Вами ситуацию, сорри. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.03.2009, 14:35 |
|
|
start [/forum/topic.php?fid=33&msg=35896300&tid=1548548]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
1ms |
others: | 302ms |
total: | 467ms |
0 / 0 |