One of the challenges for the Microsoft Store was how to effectively deliver Electronic Software Distribution (ESD) products to customers in a way that was both highly secure and fault tolerant. Oh yeah, it needs to be fast as well right?
The simple way to deliver ESD products is to enable the most basic file download, which is by HTTP download through your web browser. This is the defacto method of downloading that everyone is accustomed to on the web.
While this is guaranteed to work across any web browser, this method can be problematic. Raise your hand if any of these apply to you while you’ve been downloading a file with your web browser:
- You accidentally hit the <esc> key, or the Cancel button which then aborted your download.
- You system needed to be rebooted due to a software install or system update.
- Your wireless connection got disconnected at an unexpected time.
I could go on and on, but I know that I’ve fallen victim to all 3 of the above situations at various times.
Lastly, how many times have you tried to download something, then realized that the file was extremely large and just stared at the progress dialog? (I’m pretty sure that Murphy’s Law would tell us that download just get slower if you stare at the progress bar).
To address these types of issues, we have created a Microsoft Store Download Manager to deal with the delivery of your ESD products to your PC. We’ve had many customers buy ESD products through Microsoft Store already, so I thought it was a good time to explain what this download manager is, and why we created it.
The Microsoft Store Download Manager is a rich client application that you install on your PC which is used to download your first, and all subsequent, ESD products you buy from Microsoft Store.
If you don’t have the Download Manager installed when you choose to download your ESD purchase, you will be prompted to install it. You can change your download preference at any time to revert back to HTTP browser download, but for reasons you’ll learn shortly, we recommend using the download manager whenever possible.
The Download Manager provides similar benefits of other download managers you make have used, but does differentiate itself in a few ways.
The Microsoft Store Download Manager provides fault tolerance against interrupted downloads and enables you to pause and resume your download at any time. Have to reboot your PC because you just installed a system update? No problem. Just pause the download and resume the download from the Microsoft Store site after you’ve rebooted. Were you disconnected from your wifi access point in the middle of a download? No problem. When you’ve reconnected, just hit Retry and your download will resume where it left off.
The download manager also reduces the overall time required to download your ESD products. By downloading smaller chunks of the files simultaneously with multiple connections, we can more effectively use your bandwidth to deliver the ESD product in a shorter amount of time. This is the same strategy that you’ll see 3rd party general purpose download managers use.
This strategy is particularly effective if your ISP boosts your speeds for a small amount of a file transfer. Comcast has a feature called Powerboost where they boost your download speeds for the first 10MB of a file. Since we create a new connection for every chunk of the file, we can work very well with download speed boosters like Comcast’s.
Optimization of multi-file downloads
When an ESD product requires multiple files to be downloaded, normally you would have to do an individual browser download for each and every file. Since most web browsers limit the number of concurrent HTTP connections you can have (typically 2-4), you may be forced to sit there and babysit the download of the set of files. Needless to say, this can be both cumbersome and time consuming.
The Download Manager facilitates this by automatically downloading all the necessary files for a given ESD product without any further user intervention. it will download the first file (breaking it into chunks as described earlier), then automatically download subsequent files one by one.
When all the files are downloaded, customers can install the product with a single click of the “Install” button in the Download Manager. We try to make it as easy as possible for customers from purchase to install whether there is 1 file or 99 files.
Lastly, the download manager also provides a level of assurance that you are indeed downloading the correct file payload. We only download over HTTPS and also do a hash verification on the file after it’s downloaded. The hash verification is done to be extra sure that the files have not been corrupted or tampered with. The hash verification can take a long time if the file is multi-gigabyte (e.g. Vista), but we felt this tradeoff was the right one for the sake of protecting customers.
For our initial launch, the Download Manager is only supported with downloads initiated from Internet Explorer 6 and above (Windows XP/2003/Vista). Before you think it’s a conspiracy to force IE usage, we really did want to support other browsers like Firefox. However, as our schedule progressed, we had to make some tough cuts, and decided to add additional browser support at a later time. Based on current data of our customers, the majority are still using IE, so we’re getting the biggest bang for the buck in our investment. However, we still plan on looking at Firefox and other browser integration in the very near future.
Tell us what you think
Have you used the Microsoft Store Download Manager already? Shoot me an email or drop a comment. We’d love to know what you think.