Google client products are capable of updating themselves to a newer version without end-user intervention. This is known as “auto-updating.”
Most of Google client products possess the auto-update feature, but with different implementation. Some has their own auto-update solutions, while others utilize the common auto-updater code and the common auto-updater server.
Google sought for client products to minimize code duplication and avoid maintaining multiple servers that essentially perform identical functionality. As result they considered unifying all client products under a single auto-update solution. This decision was influenced by the fact the evolution of Microsoft Windows, which made this unification almost mandatory. Window Vista has a strict security model that restricts the ability of most applications on a machine to perform system-changing activities, including: modifying the Windows registry, writing to the Program Files directory, and in some cases writing any persistent change to the system at all. The update of an installed program requires all these modifications, which would lead traditional auto-updating to fail on Microsoft Vista.
The lack of shared code brought another issue: each auto-update implementation had its own subset of desired features. Many of them failed to have multiple update tracks, or define a consistent versioning mechanism. Code unification allowed Google to deploy a rich set of auto-update capabilities to all its client applications.
As the number of Google applications increased, the improvement of the overall install user experience became increasingly desirable. Traditionally, the browser would prompt the end-user with a series of technical and confusing dialogs which encouraged the user to abandon their installation. Then the user was led to a wizard filled with choices that they did not need to know or know how to decide amongst. These result in a bad user experience during the product installation process.
In order to meet all the requirements and challenges mentioned above, Google developed a shared client infrastructure that handles all installation and auto-updating tasks for Google Windows client products. This client communicated with a single Google auto-update server. This server, together with the client, is named Google Update. And the project is known as Omaha. read more »