简体   繁体   中英

Azure service for distributed desktop and web application

I am trying to figure out which Azure service to use to create a distributed application. The application consists of

  • A desktop (Windows) application which is fetching, manipulating and storing data in Azure
  • A backend which stores data and does background processing.
  • A web front-end which allows me to view the data and trigger background processing in the backend
  • Any number of desktop application instances can connect to the backend and access the same data

The desktop application and the web application will send and receive data to the backend. Each message can be up to 100 MB (images etc).

The Azure universe is a bit overwhelming, and I'm trying to find out how to set this up.

My initial thought is to let the desktop application communicate with an Azure Cloud Service with WCF. The cloud service is set up with a WCF web role. A separate web application (web role?) is communicating with the same WCF web role.

The WCF role will also start worker roles to do more heavy, time-consuming processing.

Any ideas and insight is welcome! :)

For WCF service and web front-end you can use both Azure Cloud Service or App Services - it mostly depends if you need to install some 3rd party components on the machine (Azure Cloud Service allows you to do that).

For background processing use Web Job in App Services or worker role in the Cloud Service. You should also use some queue (I like more Service Bus then Azure Queue from storage account). Your worker role or Web Job should monitor this queue and when you put some message to it then some background processing should be triggered. Background processing could be done also in WCF process itself, but using worker roles or Web Jobs allows you to provide more availability.

For storing blobs (like images) definitely use Microsoft Storage (Blobs), for other data you can use Sql Database or something quite new: DocumentDB. Sql Database is simpler to use and easier to migrate data to other servers etc. but is more expensive.

And of course you can do the same on Virtual Machines, but I guess it wasn't something that you asked for :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM