/ / Servizio di Azure per desktop distribuito e applicazione Web - c #, azzurro, cloud

Servizio di Azure per desktop e applicazioni Web distribuite - c #, azzurro, cloud

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 № 1

Puoi 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 :)