-
Каким образом можно решить проблему обновления данных в программах-клиентах при многопользовательской работе с субд (MS SQL Server). Сейчас программа работает так: например, пользователь 1 добавил новую запись. Чтобы в остальных программах-клиентах отобразились изменения другим пользователям нужно нажать на кнопку обновить. Программой пользуются 2-3 тыс. людей, большинство из них бесит такой подход, они хотят, чтобы, например, если пользователь 1 изменил какую-то информацию, у других пользователей эти изменения отобразились автоматом без лишних телодвижений с их стороны.
-
> они хотят, чтобы, например, если пользователь 1 изменил > какую-то информацию, у других пользователей эти изменения > отобразились автоматом без лишних телодвижений с их стороны. >
и как это по их мнению должно выглядеть? ты поинтересуйся у тех кого это бесит.
-
работа она вообще бесит...
-
> и как это по их мнению должно выглядеть? ты поинтересуйся > у тех кого это бесит.
Они захочут и рыбку съесть и ... :)
-
> Dmitry1987 (09.01.12 01:04) > > Каким образом можно решить проблему обновления данных в > программах-клиентах при многопользовательской работе с субд > (MS SQL Server). Сейчас программа работает так: например, > пользователь 1 добавил новую запись. Чтобы в остальных > программах-клиентах отобразились изменения другим пользователям > нужно нажать на кнопку обновить. Программой пользуются 2- > 3 тыс. людей, большинство из них бесит такой подход, они > хотят, чтобы, например, если пользователь 1 изменил какую- > то информацию, у других пользователей эти изменения отобразились > автоматом без лишних телодвижений с их стороны.
Начитались, блин фантастики.
-
> Dmitry1987 (09.01.12 01:04)
не сказано про клиента (в смысле софт), делали web-интерфейс и там аяксом переодически запрашивали изменения с сервера, и обновляли гриды. Но там специфика была такая, что частота опроса раз в 2 секунды была достаточна.
-
> Программой пользуются 2-3 тыс. людей, большинство из них > бесит такой подход, они хотят, чтобы, например, если пользователь > 1 изменил какую-то информацию, у других пользователей эти > изменения отобразились автоматом без лишних телодвижений > с их стороны.
в нормальной консерватории другим пользователям д.б. пофиг, что там изменил пользователь1. Речь не о том, как написана программа, а как организована работа. Бывают, конечно, исключения, но очень редко, опиши, почему их бесит, зачем им нужно вот прям онлайн видеть, что наколотили другие, тогда и решение проблемы само собой придет, если проблема есть, конечно.
-
> Бывают, конечно, исключения, но очень редко, опиши, почему > их бесит, зачем им нужно вот прям онлайн видеть, что наколотили > другие, тогда и решение проблемы само собой придет, если > проблема есть, конечно.
вероятно им хочется автообновления как в чатах (или по аналогии - как автополучение почты. Я вот стал привыкать на работе к почте которая сама "сыпется", хотя дома уже лет 10 использую "ручной режим"). Сидит работник, орудует степплером, а новые строки сами "доставляются" :)
-
> Я вот стал привыкать на работе к почте которая сама "сыпется",
это то самое специфическое исключение - новая почта требует действия (прочитать, забить)
> Сидит работник, орудует степплером, а новые строки сами > "доставляются" :)
и нафига они ему? нефиг от степлера отвлекаться.
-
> antonn © (09.01.12 01:59)
> Petr V. Abramov © (09.01.12 02:14) [6]
И вы считаете, что поняли нужды автора? Троешники!
-
У нас реализовано то, что надо автору. Правда, для связки Flex-Java. Уведомления мгновенно приходят по RTMP (red5), никаких пингов и прочих извращений, число пользователей практически неограничено. Судя по комментариям, такого в Delphi еще долго не будет...
-
> Компромисс © (09.01.12 10:43) [10]
> число пользователей практически неограничено
"нам то не гони" (c)
> Судя по комментариям, такого в Delphi еще долго не будет. > ..
Вот причем тут Delphi? И в Делфи легко прикручивается та же librtmp.dll и шли себе уведомления сколько влезет. Только метод странный какой то. Да, в делфи еще долго не будут применять протокол для передачи медиаданных (причем закрытый, проприетарный, неизвестно как еще там с лицензиями на его версию, сделанную энтузиастами по неполной документации от Adobe), в бухгалтерских программах.
-
Если уж очень хочется уведомлений, то логичнее всего посмотреть на то как это сделано в Extended MAPI у MS. Ни для кого не секрет, что тысячи пользователей MS Outlook практически мгновенно получают уведомления о приходе/удалении/перемещении писем в своих почтовых базах, причем они не делают постоянных перезапросов к базе Exchange. Уведомляет их сервер через UDP, на уведомления лишь надо подписаться. Сами пакеты, содержащие информацию очень компактны и клиентов может быть очень много.
-
Если так все критично, можно заюзать Notification Services.
-
DVM ©
Red5 with AMF calls less than 1024 bytes every second or so can support 20,000 clients in its sleep. It is scaled easily also. Red5 has GNU Lesser General Public License. К слову, Adobe в курсе насчет использования Red5 одним из наших клиентов и никаких претензий не предъявляет.
> И в Делфи легко прикручивается та же librtmp.dll и шли себе > уведомления сколько влезет.
Замечательно. Тогда я извиняюсь перед Delphi. Надо было сразу "наехать" персонально на некоторых комментаторов, вопрошающих "зачем это надо" :)
-
> Компромисс © (09.01.12 11:21) [14]
> Надо было сразу "наехать" персонально на некоторых комментаторов, > вопрошающих "зачем это надо" :)
Да вроде бы наехали на Delphi, совершенно безосновательно. RTMP ведь не заслуга Java или Java сообщества.
Я же все равно вижу затею с немедленным уведомлением пользователей об изменениях в базе сомнительной. Это из той же оперы что нумерация строк в гриде. Вроде бы надо, а зачем объяснить не могут. А потом проблем может создать больше, чем удобств. Это уже тут обсасывалось несколько раз. И примеры приводились, когда могут возникнуть проблемы.
-
> Я же все равно вижу затею с немедленным уведомлением пользователей > об изменениях в базе сомнительной
Задачи разные бывают. Такие широковещательные рассылки иногда нужны.
-
DVM © (09.01.12 12:03) [15]
> Да вроде бы наехали на Delphi, совершенно безосновательно.
Согласен. Моя реплика была вызвана "Начитались, блин фантастики."
> RTMP ведь не заслуга Java или Java сообщества.
Ну, red5 (причем абсолютно бесплатно) - заслуга именно Java сообщества. Точнее, авторов red5, которая написана на Java.
> Я же все равно вижу затею с немедленным уведомлением пользователей > об изменениях в базе сомнительной
Почему? Если у пользователя загружена только что отредактированная запись, почему бы ее сразу не показать в актуальном виде? Во избежание проблем с повторным редактированием. Кстати, данные о том, что другой пользователь начал редактировать какую-то запись, тоже можно передавать по RTMP.
-
> Надо было сразу "наехать" персонально на некоторых комментаторов, вопрошающих "зачем это надо" :) от того "зачем", часто зависит "как, и можно/нужно ли вообще". т.что ты и тут с наездами некстати.
-
sniknik © (09.01.12 14:34) [18]
Перечитай [0] и пойми, что здесь не тот случай. Совершенно справедливое требование пользователей.
|