1. A software architecture for a distributed computing system, the architecture for searching for, downloading, and installing software updates, the architecture being encoded upon one or more computer-readable media, and the architecture comprising: a program configured to access software updates existing in the distributed computing system, the program comprising: a first object receiving a set of search criteria from a requestor; the first object adapted to build a second object, which comprises updates matching the search criteria; the first object adapted to return the second object to the requestor, wherein the second object provides a third object of a category-collection class and a fourth object of an update-exception-collection class, the third object providing access to a plurality of objects of a category class and the fourth object providing a context of an exception when an update error occurs.