Patent ID: 8645942

Claim:
A method of providing software to one or more clients, the method comprising generating by a first server a plurality of software packages for distribution to the one or more clients, wherein the first server comprises a server of a provider of the plurality of software packages; publishing the plurality of software packages by the first server to a media accessible by the one or more clients; generating by the first server a description of each of the plurality of software packages, each description identifying one of the plurality of software packages, contents of the identified software package, and uses of the identified software package; appending a signature to each of the descriptions of the software packages, each signature identifying a source of each of the description; publishing the descriptions of the plurality of software packages by the first server to the media accessible by the one or more clients of a user group, wherein the user group comprises a corporation or a university; reading by a second server the descriptions of the plurality of software packages from the first server, wherein the second server is a server of the user group and is not a server of the software provider; verifying by a second server an origin of each of the descriptions of the plurality of software packages from the first server based on the signature of each of the descriptions; in response to verifying the origin of each of the descriptions is valid, determining by the second server whether the descriptions indicate that each of the plurality of software packages is available for a plurality of clients communicatively coupled with the second server based on at least in part on one or more specification files maintained by the second server for each of the plurality of clients; in response to determining each of the plurality of software packages is available for the plurality of clients, downloading the plurality of software packages by the second server from the first server, wherein downloading the plurality of software packages by the second server comprises obtaining by the second server from the first server the plurality of software packages and the descriptions, publishing the plurality of software packages by the second server to a media accessible by the plurality of clients, and publishing the descriptions of the plurality of software packages by the second server to the media accessible by the plurality of clients, wherein publishing the plurality of software packages and the descriptions by the second server comprises making the downloaded plurality of software packages available from the second server to the clients.