-
Есть задача например провести перепись населения в городе со 100 000 населением поименно и кто занесен в базу в первый раз получает 100 рублей. есть несколько групп людей которые с ноутбуками уходят к населению и начинают перепись. потом собираються в одной локальной сети и обмениваються собранной инфой. Задача состоит в том чтобы быстро синхронизировать инфу между этими ноутбуками и сервером. я хотел сделать так(посредством сокетов): на серверочке регистрируються ноутбуки и когда один передает на сервер список людей остальные зарегистрированные в этот момент тоже получают этот список.
хотелось бы узнать Ваше мнение как лучше это сделать чисто схематически без деталей реализации (если будет не понятно лучше разберусь или спрошу) и не обязательно посредством сокетов.
-
без деталей не получится, ибо это статья.
про персонифицированные данные и их защиту
-
остальные зарегистрированные в этот момент тоже получают
а не зарегистрированные в этот момент не получают данные которые в этот момент передаются?
-
потом собираються в одной локальной сети и обмениваються собранной инфой.
зачем?
они должны всего лишь слить каждый свою порцию на центральный большой и толстый сервер. зачем синхронизировать ноуты?
-
> зачем синхронизировать ноуты?
>
Видимо, большой и толстый сервер может быть коррумпирован настолько, что доверять ему результаты столь отвественного государственной важности дела никак нельзя.
-
условия чисто условны и служат толко для объяснения объема данных и постановки проблемы взаимоотношений, а теперь по сути не зарегестрированные ноуты не обновляються они обновляються при последующей регистрации. вообщем выкристализовываеться проблема быстрой синхронизации ноутов чтобы подключенные на данный момент ноуты были как можно быстрее синхронизированные между собой и с сервером. база построена на MS SQL и данная проблема не может быть решена с его посощью по разным причинам. да и еще, в записи надо использовать только уникальный номер человека и дату последнего обновления
-
они обновляються при последующей регистрации.
ну так ты же сказал, что при передаче данных с одного ноута, все остальные, зарегистрированные в этот момент тоже синхронизируются.
и еще повторяю вопрос: зачем синхронизировать ноуты между собой?
да и еще, в записи надо использовать только уникальный номер человека
у человека нет уникального номера.
-
условия чисто условны
обсуждать чисто условные условия - тратить время зря
-
> в городе со 100 000 населением поименно и кто занесен в
> базу в первый раз получает 100 рублей. есть несколько групп
> людей которые с ноутбуками
Интересно, что за арабский шейх раскошелился на такую грандиозную по бюджетно-расходному размаху акцию ?)
С ноутбуками, да по райцентру урюпинского масштаба, да по сто рублей, да программу "с нуля" заказать ..
-
база построена на MS SQL и данная проблема не может быть решена с его посощью по разным причинам
в природе нет таких причин, которые бы мешали решению задачи средствами мсскл.
-
> уникальный номер человека
Жутковатая картина вырисовывается, времен концлагерей
-
Кстати, шедевральная фраза.
без деталей реализации ... и не обязательно посредством сокетов.
Сразу чувствуется матерый Архитектор от автоматизации
-
вот добрый и полезный совет:
оставь сокеты и делфи в покое.
потрать свое драгоценное время на изучение вопроса как средствами самого сервера несколько акцессовских баз перекинуть в mssql as is и после этого соединить полученные данные воедино с помощью серверных процедур.
пользы от совета две как минимум :
1. Не надо будет тратить бюджет на оплату очередной неработающей программы-однодневки
2. Ты знания приобретешь. реально полезные тебе.
-
> кто занесен ...получает 100 рублей
Это крайне важная деталь в ТЗ.
Чичиков идет лесом.
-
Да и акцесс на ноуте пожалуй будет лишним.
Достаточно будет книги ёкселя.
-
> Сергей М. (10.12.2009 21:39:10) [10]
Похоже кто то собирает базу, для подписных листов и подобного.
-
я не пойму 15 постов и практически ни одного по теме. Хорошо для алчных напишем что не по 100 руб выдают а по цветному фантику и не за просто так а за приседания. ноуты надо между собой синхронизировать чтобы знать сколько фантиков получил каждый человек при повторном посещении. И еще большая просьба не оценивать личности поскольку вы можете сильно ошибаться. Выбор базы и дельфи не надо обсуждать потому как это дано как факт. просто помогите советом как лучше синхронизировать ноуты с большим количеством записей между собой и сервером, быстро и грубо говоря параллельно (разумеется подключенных в данный момент). к стати эта задача не политика, это медицина. просто какой смысл рассказывать длинные истории так было проще объяснить да и в общем я так понял задача ясна
-
> какой смысл рассказывать длинные истории так было проще
> объяснить
Вот и я думаю - какой смысл было рассказывать про 100 рублей и фантики с приседаниями. Никого кого кроме тебя или "заказчика" это не волнует.
По сабжу - про толстый сервер тебе уже сказали. Он должен быть во избежание бардака, характерного для многих децентрализованных систем распределенного хранения и обработки данных.
От него надо плясать
> быстро синхронизировать инфу между ..ноутбуками и сервером
Для этого Борланд предлагает готовую технологию MIDAS.
-
ноуты надо между собой синхронизировать чтобы знать сколько фантиков получил каждый человек при повторном посещении.
ноуты не надо между собой синхронизировать чтобы знать сколько фантиков получил каждый человек при повторном посещении.
надо синхронизировать ноут с центральным сервером.
-
тем более не следует закладываться на то, что процесс синхронизации должен начинаться только тогда, когда один из ноутов переписчиков начинает слив данных в центр и только для тех, кто в этот момент оказался подключенным к центру.
не надо требовать от людей безусловного присутствия всех сразу на магическом ритуале обновления.
один конкретный переписчик может закончить свою работу раньше всех остальных. затем он может приехать в центр, слить данные и уехать к теще на два часа переставить холодильник.
в это время в центре могут появиться данные остальных переписчиков а сами они уже могут отсутствовать в центре.
и тот первый, который передвигал холодильник теще, должен иметь возможность получить консолидированные данные с сервера, ибо они там уже есть.
не надо требовать от него присутствия на акте коллективного камлания.
-
> Медвежонок Пятачок © (11.12.09 09:42) [19]
> один конкретный переписчик может закончить свою работу раньше
> всех остальных. затем он может приехать в центр, слить данные
> и уехать к теще на два часа переставить холодильник.
> в это время в центре могут появиться данные остальных переписчиков
> а сами они уже могут отсутствовать в центре.
>
> и тот первый, который передвигал холодильник теще, должен
> иметь возможность получить консолидированные данные с сервера,
> ибо они там уже есть.
>
> не надо требовать от него присутствия на акте коллективного
> камлания.
Совершенно с Вами согласен именно это и имелось в виду (прошу прощения за корявость мною написанного мне казалось я понятно написал). синхронизация отдного ноута уже написана и нормально работает, но вот в чем затыка: пришел первый ноут и провел синхронизацию и остался подключенный на ночь, затем пришел второй и теперь он засинхронизировался с сервером а потом как сказать первому что есть новые данные(это гемморно но решается) и потом второй раз первому ноуту синхронизироваться с сервером, потом пришел третий и т.д. а если сразу знать кто подключен то можно парралельно было бы писать и на сервер и на первый ноут и т.д. вот в чем собственно и вопрос. сокеты чем хороши (на мой взгляд) легкое оповещение кто жив кто нет и не напряжное обеспечение передачи данных. хотя про мидас обязательно почитаю.
-
> как сказать первому что есть новые данные
Не надо ему ничего говорить.
Ничего страшного не случится, если он пропустит самые свежие новости с сервера.
Придет в след.раз, подключится к серверу, узнает все изменения на сервере, произошедшие с момента предыдущего сеанса связи, и соотв-но передаст все свои изменения за тот же межсеансовый период.
-
а потом как сказать первому что есть новые данные
ему не надо говорить что есть новые данные.
у ноута должна быть кнопка "дай мне все новые данные, что у тебя есть на сейчас"
-
> Ничего страшного не случится, если он пропустит самые свежие
> новости с сервера.
в том то и дело что к утру данные должны быть синхронизированны на всех ноутах и сервере. а лишнее обновление это процесс не быстрый к сожалению
-
> обновление это процесс не быстрый
Какой разработчик - такой и процесс не быстрый.
У грамотного разработчика "процесс" пройдет быстро и безболезненно для всех заинтересованных фигурантов.
-
> к утру данные должны быть синхронизированны на всех ноутах
Что страшного в том, что по утрянке на ноутбуке 1 по какой-либо уважительной причине не окажется свежих данных о БабеКлаве, к которой вчера ходил ноутбук 2, получил о ней эти данные и передал их вечером того же дня на сервер ?
Придет ноутбук 1 по утру след.дня к той же БабеКлаве, получит данные (возможно уже обновленные, например, БабаКлава вполне могла до утра не дотянуть) и текущим вечером передаст их серверу.
Текущим вечером сервер получит от ноутбука 1 данные, увидит что по более ранним (текущим, т.е. полученным прошлым вечером от ноутбука 2) данным БабаКлава была жива-здорова, а по только что поступившим от ноутбука 1 данным она преставилась. С этого момента сервер и ноутбук 1 считают БабуКлаву благополучно отошедшей в мир иной.
Ноутбук 1 спокойно и с чувством выполненного долга идет домой отдавать другие долги.
Этим же вечером, но часом позже к серверу является ноутбук 2 и заявляет, что БабаКлава жива и даже порозовела от счастья что ее уже дважды навестили участливые ноутбуки. Сервер при попытке воскресить бабулю видит очевидную лажу-нестыковку и протоколом сообщает об этом ноутбуку 2. Если у того есть полномочия для воскрешения, сервер правит у себя соотв.запись и отныне БабаКлава для всех воскресла, в противном случае БабаКлава объявляется почившей и в локальной базе ноутбука 2.
-
> bob (11.12.2009 11:36:20) [20]
Не надо, надо прежде чем уносить сделать синхронизацию на текущий момент времени.
-
> bob (11.12.2009 12:26:23) [23]
Значит пусть приходят ночью и синхронизируют и утром еще раз.