Я намагаюся з'ясувати, яку службу Azure можна використовувати для створення розподіленої програми. Додаток складається з
- Програма для робочого столу (Windows), яка отримує, керує та зберігає дані в Azure
- Бекенда, в якому зберігаються дані та виконує фонову обробку.
- Веб-інтерфейс, який дозволяє переглядати дані і запускати фонову обробку в серверній частині
- Будь-яке число екземплярів настільних програм може підключитися до сервера і отримати доступ до тих самих даних
Програма для настільного ПК та веб-додаток надсилатимуть та отримуватимуть дані на сервер. Кожне повідомлення може бути до 100 Мб (зображення тощо).
Всесвіт Azure дещо перебільшує, і я намагаюся з'ясувати, як це налаштувати.
Моя первісна думка - дозволити робочому столідодаток спілкується з Cloud Service з Azure з WCF. Хмарний сервіс створено за допомогою веб-ролі WCF. Окреме веб-додаток (веб-роль?) Спілкується з тією ж веб-роллю WCF.
Роль WCF також запускатиме робочі ролі для більш важкої, трудомісткої обробки.
Будь-які ідеї та розуміння вітаються! :)
Відповіді:
0 для відповіді № 1Для сервісу WCF і веб-інтерфейсу можна використовуватияк служба Azure Cloud, так і служби App - це в основному залежить від того, чи потрібно інсталювати деякі компоненти сторонніх виробників на машині (служба Cloud Cloud дозволяє це робити).
Для фонової обробки використовуйте Веб-роботу в AppРоль служб або працівників у службі Cloud. Вам також слід скористатися деякою чергою (мені подобається більше Service Bus, а потім Azure Queue з облікового запису сховища). Роль Вашого працівника або Веб-робота повинна контролювати цю чергу, а коли ви покладете якесь повідомлення на неї, треба запустити деяку обробку фону. Фонова обробка може бути зроблена також у самому процесі WCF, але використання робочих ролей або Web-робота дозволяє забезпечити більшу доступність.
Для зберігання крапель (наприклад, зображень) обов'язково використовуйтеMicrosoft Storage (Blobs), для інших даних ви можете використовувати Sql Database або щось зовсім нове: DocumentDB. SQL база даних простіше у використанні і простіше переносити дані на інші сервери і т.д., але є більш дорогим.
І, звичайно, ви можете зробити те ж саме на віртуальних машинах, але я думаю, що це було не те, що ви просили :)