Azure, Sync Framework и служба контроля доступа: есть ли очевидные недостатки или проблемы при совместном использовании этих технологий? - PullRequest
0 голосов
/ 21 июля 2011

У меня есть настольное приложение, которое использует плоские файлы (некоторые xml и маленькие картинки) в качестве данных.Я хочу, чтобы эти данные были доступны на других ПК, на которых установлено настольное приложение и которые могут использоваться клиентом смартфона (в настоящее время WP7).

Пользователь должен очень легко синхронизировать эти данные.Он должен иметь возможность использовать учетные записи, которые у него уже есть (Live-Login, Googlemail, Facebook, ...).

Я думал об использовании хранилища BLOB-объектов Azure для сохранения данных в Azure, Sync Framework для выполнения фактической синхронизации и Служба контроля доступа для обработки аутентификации.

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

1 Ответ

1 голос
/ 22 июля 2011

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

Если я правильно понимаю, вам нужен облачный файловый сервер, а не целая локальная сеть.Windows SkyDrive хорошо выполняет это требование и предлагает 25 ГБ хранилища для каждого участника без платы за членство.

О Hotmail и Windows Live Люди часто путают Hotmail и Windows Live, потому что когда вы настраиваете учетную запись Hotmail, она использует Windows Live для аутентификации и, следовательно, вы получаете WindowsРеальный аккаунт и все связанные с ним объекты, включая SkyDrive.Тем не менее, вполне возможно настроить учетную запись Windows Live, используя любой адрес электронной почты в качестве имени пользователя.

Если вы сделаете это, важно помнить, что пароль Windows Live, связанный с данным адресом электронной почты, полностью независим от пароля, который требуется почтовому серверу, на котором размещена почта для учетной записи.Это может привести к путанице среди пользователей.Для Hotmail (или любого другого почтового сервера, который использует Windows Live для аутентификации) они гарантированно будут использовать один и тот же пароль.

Официальной платформы Microsoft для SkyDrive не существует. является проектом с открытым исходным кодом под названием SkyDriveApiClient, но он работает только с полной .NET Framework.Я попытался перенести его, но автор был немного архитектурным астронавтом, и он абсолютно пронизан [Serializable], который недоступен в WP7x.

Ребята из WP7 сказали, что инфраструктура WP7, вероятно, будет включать поддержкудля SkyDrive, но не в Mango (WP7.1) и учитывая, что типичный цикл выпуска Microsoft составляет 18 месяцев, а Mango еще не вышла на улицы, я бы сказал, что пройдет два года, прежде чем вы сможете рассчитывать на собственные облачные файловые сервисы для WP7.

Свернуть свое дело не составит труда, службы WPF чрезвычайно просты в использовании из WP7.Но это не совсем облако, так как вы должны сами обеспечивать и поддерживать инфраструктуру сервера.По этой причине и учитывая расписание MS, я приложил немало усилий для создания своего собственного клиента SkyDrive для WP7.Основные функциональные возможности завершены, и сейчас я занимаюсь рефакторингом, улучшая надежность и добавляя улучшения производительности, такие как локальное кэширование токенов (по сути, куки).Я не собираюсь выпускать это;У меня запланировано несколько приложений, которые зависят от этой функциональности, и меня устраивает, что существует серьезный барьер для конкуренции.

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

  • Облачное хранилище файлов идеально подходит для мобильных устройств.
  • Azure не является хорошим ответом для тех телефонных приложений, которые нужны отдельным пользователям, поскольку хранилище данных не используется совместно, что требует индексации или поддерживает высокий уровень параллелизма
  • Я, конечно, могу вспомнить корпоративные телефонные приложения, которые выиграют от использования SQL Server в качестве хранилища
  • Azure может выполнять файловые службы, но это требует постоянных затрат.Никто не собирается мириться с этим, когда Google и Microsoft отдают облачное хранилище на основе Интернета.
  • Я могу лично засвидетельствовать, что, если вы решительно настроены, можно использовать SkyDrive из WP7.
  • Облачное хранилище - это единственный способ получить доступ к программно доступному хранилищу, которое совместно используется мобильным устройством вашего пользователя и его компьютером.Одна из вещей, которые я собираюсь сделать, зависит от общего хранилища - это написать приложение Silverlight, которое позволит вам подготовить маршруты карт с несколькими путевыми точками на настольном компьютере, и сопутствующее приложение, которое использует их в WP7.

Команда Windows Live выпустила так называемую поддержку WP7. Они предоставляют пример проекта, показывающий, как создать экземпляр объекта браузера и загрузить их страницы входа в систему и манипулировать ими, чтобы войти в систему, и использовать их API JavaScript для управления SkyDrive.

Это имеет одно большое преимущество: файлы cookie браузера и кэшированные учетные данные. Недостатки очевидны; Технические недостатки, несмотря на то, что команда Windows Live, кажется, думает, что единственное, что люди хотят сделать с телефоном, - это пометить свои фотографии и возиться с социальными сетями.

Я закончил свои собственные библиотеки. Они не поддерживают большинство социальных сетей. Я рассматривал SkyDrive как не более или менее облачную файловую систему, обеспечивающую

  • Аутентификация (имя пользователя, пароль)
  • CreateFolder (путь к папке [, блокировка = ложь])
  • Удалить (fileOrFolderPath [, blocking = false])
  • SaveString (путь к файлу, значение [, блокировка = ложь])
  • LoadString (путь_к_файл)

Я мог бы обрабатывать двоичные файлы, но Convert.ToBase64 делает это ненужным, а строки удобны для XML. CreateFolder, Delete и SaveString опционально блокируются. LoadString всегда блокируется, потому что это функция, которая возвращает загруженную строку. CreateFolder является рекурсивным, поэтому вы можете создать полный путь за один вызов (например, / folder1 / folder2 / folder3). Вызов CreateFolder по существующему пути не имеет никакого эффекта, и SaveString использует CreateFolder, чтобы убедиться, что путь действителен, что делает ненужным предварительное создание пути к файлу. Authenticate загружает файловую систему (кроме содержимого файла) в память, устраняя шум сервера. Это асинхронно, и событие FileSystemReady объявляет, когда файловая система полностью загружена. Модель сохраняется при добавлении и удалении файлов и папок.

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

...