views:

171

answers:

3

Two years ago, we shipped a multi-gigabyte Windows application, with lots of video files. Now we're looking to release a significant update, with approximately 1 gigabyte of new and changed data.

We're currently looking at DVD fulfillment houses (like these folks, for example), which claim to be able to ship DVDs to our customers for $5 and up. Does anyone have any experience with these companies?

We've also looked at a bunch of network-based "updater" software. Unfortunately, most of these tools are intended for much smaller programs. Are there any libraries or products which handle gigabyte-sized updates well?

Thank you for your advice!

+1  A: 

BITS is a library from Microsoft for downloading files piece by piece using unused bandwidth. You can basically have your clients trickle-download the new video files. The problem, however, is that you'll have to update your program to utilize BITS first.

Bob King
Interesting! Have you use BITS? How hard was it to deal with?
emk
We'd looked into it thoroughly and it's got a well-designed API, but our data files are under 4Mb in size so just rolled a regular web service. We were also doing .NET, and while there are wrappers, it was easier for us to serve the content directly. If we have a need again, we'll use it.
Bob King
+1  A: 

Depending on who the end user is you have a few options:

  1. Shipping DVD's

    This option tends to be rather expensive, and may not be the best way, what if you are shipping it to someone that no longer has the software installed.

  2. HTTP hosting (using Akamai, or any other CDN)

    This works rather well for other companies, for example Apple and I believe Microsoft as well.

  3. Bittorrent

    It is not just used for illegal content, it will allow you to offload some of the work load of sending the file, and at the same time it is a fast protocol, if you make sure the that the machine seeding has the correct file, the bittorrent protocol will make sure the end user gets the same file with the exact same hash.

X-Istence
A: 

You can use the rsync algorithm: http://samba.anu.edu.au/rsync/

Emil