Служба WCF <-> Связь клиента WPF / iOS / Android с быстрыми обновлениями - PullRequest
2 голосов
/ 25 августа 2011

Обзор Я делаю вводное решение по технологии для нового проекта.Нам нужно, чтобы бизнес-объекты находились в центре и просматривались на клиентских устройствах.Клиентскими устройствами будут толстые клиенты (WPF, Silverlight, MacOS, Linux) и мобильные клиенты (Android, iPad / iPhone, WP7).Номинальный сценарий использования - это сценарий локальной сети, но также возможно использование распределенного Интернета.Нам необходимо иметь центральное расположение (думающий сервис WCF), обновляющее бизнес-объекты на основе входных данных клиентов и быстро обновлять представление этих бизнес-объектов на всех подключенных устройствах, которые просматривают эти объекты.

Безопасность Безопасность - это низкий уровень заботы, единственные важные данные, которые должны быть переданы, - это имена на этом этапе, хотя окончательное решение там не было принято.

Основной вопрос Мой основной вопрос таков: как лучше всего к этому подойти?Я думаю, что сервис WCF - это дом для бизнес-объектов, но нам нужно, чтобы изменения были очень быстрыми.Желательно, чтобы пользователи казались мгновенными.Для меня это означает около 1/4 секунды.Я просто не знаю, возможно ли это.Я предполагаю, что для охвата аудитории устройства это должен быть базовый веб-сервис.Что будет делать опрос с такой скоростью от устройств на время автономной работы устройств?Есть ли элегантный способ нажать на все эти устройства?

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Поскольку вам нужно очень короткое время обновления / распространения (1/4 секунды), вам нужно использовать очень быстрый опрос веб-службы, который IMO недостижим.

Для таких коротких задержек вам лучше всего использовать какую-либо технологию веб-push (кометы, веб-сокеты) или даже непосредственно сокеты.

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

1 голос
/ 26 августа 2011

Вы также можете использовать JSON для WP7, с ним обычно немного быстрее работать в WP7 и эффективно, особенно при сжатии; также в WP7 Mango вы можете реализовать фоновый агент, который периодически обновляется (10 ~ 30 минут) в зависимости от использованиятелефон, пока приложение не работает.

в вашем сценарии Push Services будет идеальным для всех устройств, но опрос постоянно разряжает батарею, а также сильно сказывается на пропускной способности пользователей.Однако вы не гарантируете, что он попадет на устройство (по крайней мере, на WP7 вы, судя по моему опыту, не имеете ограничений на количество устройств).Mango поддерживает сокеты, что, вероятно, идеально подходит для использования очень маленькой полосы пропускания и при условии, что пользователь не теряет соединение, почти гарантированная доставка вашего контента или флаг для устройства, чтобы начать опрос.

Только проблема 1 / 4sявляется довольно жестким для мобильных устройств, если они подключены к мобильным сервисам вместо соединения WiFi.Как сообщается, есть проблемы с производительностью UDP для WP7, см. Плохая производительность UDP с Windows Phone 7.1 (Mango)

Я никогда не делал ничего подобного, но я собираюсь сам рассмотреть реализацию сокетов дляМанго, в настоящее время только использующий Сервисы Push через мой Сервис WCF, который доставляет весь контент.

Удачи

0 голосов
/ 25 августа 2011

В нашей команде было то же самое, что нужно для разработки мультиплатформенного приложения, такого как iOS WP7 Silverlight и т. Д.

Для нас лучшей практикой была разработка службы в .NET с использованием службы WCF RIA в дополнение к некоторой конечной точке, такой как SOAP для WP7 и JSON для iOS.

Отзывчивость данных очень быстрая.

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