Building applications out of reusable distributed components is a great idea. Keeping such an application up-to-date with respect of new versions of the application as a whole, and to the varying new versions of the components used in the application isn't a trivial task. One new technology introduced by Microsoft along with its ActiveX push, which addresses this problem, is a system for automated code download and installation.
Conventional software upgrades produce major headaches for MIS departments, involving coordinated install, update schedules and user training sessions. It's easy to see the tremendous effort and cost associated with each build of a widely used piece of software.
It simply will not work in the componentized world.
Imagine an average component-based application using directly and indirectly about 50 to 60 classes of component objects. Just imagine two revisions for each component class each year, and you end up with 120 software upgrades a year or approximately 10 each month. We must look for an automated and reliable way of upgrading components.