Мне действительно нужны надежные сеансы для моих услуг?(описание внутри) - PullRequest
0 голосов
/ 27 марта 2012

Наша компания сдает в аренду музыкальный сервис своим клиентам. Продукт состоит из автоматического mp3-плеера и ежедневных обновлений / обновлений музыкальной библиотеки клиентов (mp3-песен), загруженной на их машины. До сих пор мы использовали некрасивое решение для обновлений mp3, синхронизируя папки сервера и клиента с помощью GBridge. Это, очевидно, является недостатком, поскольку мы заставляем наших клиентов загружать всю нашу музыкальную библиотеку (в настоящее время 25 000 песен), в то время как большинство из них никогда не будут воспроизводить песни из всех наших музыкальных категорий (поп, рок и т. Д.). Самое главное, мы можем предложить только один пакет подписки (всю нашу музыкальную библиотеку), в то время как наши конкуренты предлагают пакеты по категориям с более низкими ценами. По этим причинам мы решили обратиться к WCF.

Служба использует режим создания экземпляров PerCall и реализует две операции, вызываемые из клиентского приложения winform с классическим шаблоном запрос-ответ.

Первая операция извлекает из базы данных категории, из которых клиенту разрешено загружать (запрос), и отправляет обратно клиенту список этих категорий (ответ).

Вторая операция используется для загрузки. Сначала клиент загружает версию базы данных сервера в формате xml. Аналогичный xml лежит на стороне клиента. Клиентское приложение проверяет, какие песни в каждой из категорий, возвращаемых после первой операции, отсутствуют в своем собственном XML-файле по сравнению с XML-файлом сервера. Если отсутствуют какие-либо файлы (элементы в xml), он загружает их по одному файлу за раз. После каждой загрузки клиент обновляет свой xml и снова делает то же самое сравнение, пока все файлы (элементы) не совпадут в 2 xml.

Короче говоря, учитывая, что режимом экземпляра в службе является PerCall по соображениям пропускной способности и сохранения низкого потребления памяти, и что обе мои операции используют шаблон запрос-ответ, что означает, что сообщения подтверждения будут отправляться обратно клиенту с каждый ответ от службы, поэтому, если что-то идет не так в соединении или если клиент не может связаться со службой, я могу перехватить CommunicationObjectFaptedException на клиенте, восстановить прокси-сервер и повторить попытку, как вы считаете, нужна надежная сессия в моей службе реализация? Какие проблемы могут возникнуть, если у меня нет надежных сеансов в только что описанных операциях?

1 Ответ

0 голосов
/ 27 марта 2012

Какие проблемы могут возникнуть, если у меня нет надежных сессий в только что описанных операциях?

Мне известно только о нескольких проблемах, которые решаются с помощью надежных сессий, хотя это многостресса на сервере.

Я бы лично пошел на BasicHttpBinding (для лучшей совместимости) без надежного сеанса.


ОБНОВЛЕНИЕ

Для понимания надежных сеансов,прочитайте это и это .

Если вы являетесь банком, имеет смысл использовать надежные сеансы, если вы отправляете деньги в другие банки и из других банков.,Это обеспечит получение сообщения последней участвующей стороной.Но в большинстве случаев вам это не понадобится.

...