Лучший способ уведомить клиентов об обновлении? - PullRequest
5 голосов
/ 11 октября 2011

Хорошо, на стороне сервера есть настольное приложение, которое используется для вставки некоторой информации в базу данных (новости, изображения и т. Д.), И у меня есть клиенты, которые собирают эту информацию из базы данных и сохраняют ее в своем локальном XML.

Таким образом, каждый клиент загружает новости из базы данных и отображает их.

Проблема заключается в том, как я могу уведомить клиентов об обновлении.

Мое решение

Я подумал об использовании базы данных, поданной как UpdateID, и при каждом обновлении данных в базе данных UpdateID должен иметь значение +1, тогда каждый клиент должен иметь атрибут UpdateID в своем XML и проверять, соответствует ли их UpdateID Server UpdateID, если нет чем это новое обновление. При каждом успешном обновлении клиенты должны указывать UpdateID сервера в своем XML UpdateID.

Так есть ли лучший способ добиться этого?

PS: слой представления данных, который я использую, является службой WCF

1 Ответ

7 голосов
/ 11 октября 2011

Я думаю, что модель, которую вы предлагаете, является, вероятно, самой простой в реализации и наиболее простым решением проблемы.Однако, зная, что вы используете веб-сервисы WCF, у вас есть возможность реализовать push-модель, используя WCF Callbacks.В этой модели вы пишете сервисные контракты как обычно, но здесь клиенты регистрируются на сервере.При обновлении данных на сервере сервер вызывает функцию обратного вызова для всех зарегистрированных клиентов, которые отвечают за выборку новых данных.

Типичным демонстрационным приложением для этой модели является система продажи билетов, где билеты бронируются и выпускаются часто.Такой подход устраняет необходимость постоянного опроса клиентов сервером.

В статье под названием Устранение опроса сервера с помощью обратных вызовов WCF приводится более подробная информация по этому вопросу, а также приведен пример системы создания билетов. В этой статье также описывается этот метод.

Я не говорю, что это лучше, чем вы предлагаете сами, но, возможно, стоит разобраться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...