Работа с данными через плохой канал связи
используй транзакционную репликацию
транзакционную репликациюа зачем транзакуинную ?
Можно javascript-ом кэшировать. Между сессиями конечно не будет храниться, но хоть так.
для начала лучше посмотреть в сторону БД, которые работают прямо из экземпляра программы, не требуя отдельной установки.
Transactional replication
In transactional replication, the Subscribers are first synchronized with the Publisher, typically using a snapshot, and then, as the publication data is modified, the transactions are captured and sent to the Subscribers. Transactional integrity is maintained across the Subscribers by having all modifications be made at the Publisher, and then replicated to the Subscribers. Transactional replication is used when data must be replicated as it is modified, you must preserve the transactions, and the Publishers and Subscribers are reliably and/or frequently connected through the network.
для начала лучше посмотреть в сторону БД, которые работают прямо из экземпляра программы, не требуя отдельной установки.это какие? FireBird, Access? они тоже требуют установки, Access входит в MDAC, но не факт, что это стоит на всех клиентах.
MS SQL Server устанавливается одной командой с командной строки.
Существует версия Firebird, которая называется embedded. Это просто DLL, которую ты носишь вместе с приложением. Исталляции, как я помню, нет. Другое дело, что FB по функциональности далеко до MS SQL Server. И насколько качественно товарищ Carlos Guzmán Álvarez налабал .NET провайдер для FB я не знаю.
---
...Я работаю антинаучным аферистом...
это теоретические базы?
FB по функциональности далеко до MS SQL Server.
аргументируй
вот меня в свое время в MS добила изоляция через блокировки
после этого я MSSQL не юзаю.
а FB snapshot-ы использует?
у нас в проекте примерно такая задача - мы решили написать все самостоятельно
---
...Я работаю антинаучным аферистом...
проблема не в этом
у нас проект это каша из оракла, ms sql, firebird, perl, c#, delphi и 1С...
Если б было готовое BSD-style решение вы бы всё равно писали это ещё раз?
---
...Я работаю антинаучным аферистом...
это правда, но в теории
на практике есть много но:
1. у пользователь должно быть много прав
2. на машине не должен стоять другой mssql
3. программа должна устанавливаться только в единственном экземпляре
и т.д.
4. при uninstall-e/reinstall-е надо рюхать, что делать с mssql-ем
ps
понятно, что все это решить можно, если сильно хочеться, но зачем?
на машине не должен стоять другой mssqlдля MSSQL2005 не обязательно
Все остальные проблемы в нашем случае решаются административными мерами , т.е. пользователю в приказном порядке говориться, что ставить
А как у него IPC устроен?
---
"...Надо учиться --- не напрягаясь!"
вот в результате компы и не любят - потому что в них часто технические проблемы/задачи решаются административными методами, а административные проблемы/задачи решаются техническими методами.
вычисляй diff (man diff) между старыми и новыми данными, его далее и шли через сокет, прокинутый сквозь узкий канал...
berkeleyа если ещё учесть, что в ней как раз репликация появилась...
Оставить комментарий
6yrop
плохой в смысле с маленькой пропускной способностью, с большой латентностью, и к тому же платным, например, через сотовый телефон.Трехзвенка с толстым клиентом.
Часто есть большие списки, которые меняются редко, их можно кэшировать на клиенте и закачивать, только если они изменились (в идеале качать только изменения). Для этого на сервере вычисляется
MAX_по_всему_списку(время_последнего_изменения_записи) и COUNT(* и если эти значения совпали с теми, которые пришли от клиента, то список не перекачивается. Я вот думаю, если на каждом клиенте поставить SQL Server (бесплатный EE то этот подход можно использовать максимально эффективно.
Кто-нибудь сталкивался с такой проблемой? или задумывался над ней?