The Windows Server Update Services (WSUS) family of protocols provides support for central publication and distribution of software updates from server machines to client machines, and for hierarchical synchronization of available software components between servers.<1>
This protocol enables client machines to determine available, applicable software updates, and to download those updates for installation. This protocol is a SOAP-based protocol that uses HTTP 1.1 as its transport and includes four distinct phases.
Self-Update: The client consults the server to determine if updated executable files are available for the client implementation of this protocol. If so, the client updates itself to operate using the updated executable files before continuing to communicate with the server.
Metadata Synchronization: The client synchronizes update metadata from the update server by calling a sequence of web service methods, as specified in section 3.1.5. The metadata describes various characteristics of the update including its title, description, rules for determining if the update is applicable to a computer, and instructions for installing the update content.
To reduce network overhead and increase performance, the protocol facilitates the caching of update metadata on clients.
To further reduce the amount of update metadata that clients need to synchronize, update metadata is divided into fragments. Each client synchronizes only the fragments that it needs. In particular:
The client invokes the SyncUpdates (section 220.127.116.11.4) method, which returns to the client a "core" fragment. This fragment contains sufficient update metadata for a client to evaluate if the update content is required.
If the client determines that update content is required, it then invokes the GetExtendedUpdateInfo (section 18.104.22.168.6) method to obtain additional metadata fragments.
Content Synchronization: The client can request update content comprised of any files associated with the updates required by the client.
Reporting: The client reports events to the server that provide information on its update-related activities (for example, content download succeeded or failed; content install succeeded or failed). Reports are generated asynchronously from the rest of the protocol.
A UML sequence diagram can be found in section 3.1.5.
This specification details the protocol mechanisms that enable clients to download self-update binaries, synchronize update metadata , and download update content. It also details the protocol mechanisms for enabling clients to report events to servers.