Sto cercando di capire quale servizio di Azure utilizzare per creare un'applicazione distribuita. L'applicazione consiste di
- Un'applicazione desktop (Windows) che recupera, manipola e archivia i dati in Azure
- Un back-end che memorizza i dati e esegue l'elaborazione in background.
- Un front-end Web che consente di visualizzare i dati e attivare l'elaborazione in background nel back-end
- Qualsiasi numero di istanze di applicazioni desktop può connettersi al back-end e accedere agli stessi dati
L'applicazione desktop e l'applicazione Web invieranno e riceveranno dati sul back-end. Ogni messaggio può contenere fino a 100 MB (immagini, ecc.).
L'universo di Azure è un po 'opprimente e sto cercando di scoprire come impostarlo.
Il mio pensiero iniziale è di lasciare il desktopl'applicazione comunica con un Servizio Cloud di Azure con WCF. Il servizio cloud è impostato con un ruolo Web WCF. Un'applicazione Web separata (ruolo Web?) Comunica con lo stesso ruolo Web WCF.
Il ruolo WCF avvierà inoltre i ruoli dei lavoratori per eseguire un'elaborazione più pesante e dispendiosa in termini di tempo.
Qualche idea e intuizione sono benvenute! :)
risposte:
0 per risposta № 1Puoi utilizzare il servizio WCF e il front-end websia Azure Cloud Service o App Services - dipende in gran parte se è necessario installare alcuni componenti di terze parti sulla macchina (Servizio Cloud di Azure consente di farlo).
Per l'elaborazione in background utilizzare Web Job in AppServizi o ruolo di lavoratore nel Servizio Cloud. Dovresti anche usare qualche coda (mi piace più Bus di servizio e coda di Azure dall'account di archiviazione). Il tuo ruolo di lavoratore o Web Job dovrebbe monitorare questa coda e quando ci metti un messaggio, allora dovrebbe essere attivata qualche elaborazione in background. L'elaborazione in background può essere eseguita anche nello stesso processo WCF, ma l'utilizzo di ruoli di lavoro o di lavori Web consente di fornire una maggiore disponibilità.
Per la memorizzazione di BLOB (come le immagini) sicuramente usareMicrosoft Storage (Blob), per altri dati è possibile utilizzare il database Sql o qualcosa di completamente nuovo: DocumentDB. Il database Sql è più semplice da utilizzare e più facile da trasferire i dati su altri server, ecc. Ma è più costoso.
E ovviamente puoi fare lo stesso su Virtual Machines, ma immagino che non sia stato qualcosa che hai chiesto :)