REST просто использует протокол HTTP, поэтому каждое устройство, выступающее в роли клиента HTTP, может использовать его. Это не протокол - вы определяете протокол, используемый через REST. Каждая мобильная платформа может использовать REST-сервисы, поэтому вы не должны сталкиваться с проблемой блокирования, а если вы не уверены, просто попробуйте сделать некоторые доказательства концепции.
Используйте WCF и проверьте новый Web-API (это все еще только предварительный просмотр, но это будет будущая версия WCF), потому что это упрощает разработку службы REST с WCF и добавляет новые функции. Для аутентификации вы можете использовать все, что доступно в HTTP - будет работать базовая аутентификация с HTTPS или вы можете проверить OAuth.
У меня есть одна большая проблема с вашими требованиями:
Поведение сеанса (с сохранением состояния) (хотя возможна локальная обработка всей информации сеанса и отключение службы без сохранения состояния)
REST-состояния для Репрезентативная передача состояния . По своей природе все состояния должны передаваться в запросе, потому что вы публикуете новые ресурсы, получаете существующие ресурсы и возвращаете их обратно. Размещая или публикуя ресурс, вы делаете переход состояния, определенный в ресурсе. Полностью с состоянием связи для RPC. Но действительно трудно думать об этом больше без глубокого знания вашего продукта.