Network service for a software change catalog

A catalog for maintaining a store of public and private limited distribution release software changes in a single location. A method for distributing limited distribution release software changes to clients via a network comprises receiving a search request, authenticating the client, querying a database of limited distribution release software changes, filtering the returned data according to a screening criteria, and providing the returned data to the client. A further method receives a request from a client to develop a limited distribution release software change, develops the limited distribution release software change, adds the developed limited distribution release software change to a catalog, notifies the client, and provides an interface to the client for accessing. A system further links knowledge base entries with related limited distribution release software changes.

BACKGROUND

Software applications often require updating to ensure their proper functioning. Such updates can be periodic, or in response to a particular event, such as a security threat. Conventionally, some software update releases (e.g., patches, security updates, drivers, feature packs, update rollups, and service packs, among others) are globally distributed, affecting many users of a particular software. Also conventionally, these software updates are automatically loaded and installed upon computing devices, often without user intervention.

In contrast, other types of software updates are released to much smaller audiences. For example, some of these software updates are private in nature and are only applicable to a small class of clients and computing devices. Such limited distribution release software updates are often produced and distributed at the request of a sole client, rather than driven by general preferences and requests of many clients. One type of limited distribution release software change is conventionally referred to as a hotfix, although any type of specific, non-globally distributed, software update is contemplated as within the scope of the present application.

Hotfixes are designed and implemented for a specific client based upon a request for such a software solution. In this manner, they are specific, discrete entities that may only have applicability to the requesting client. Over time, however, such hotfixes can become more generally available, such as after they have been made available to one or more clients for a time, they can be distributed to a larger audience of other similarly situated clients. Conventionally, a client calls its technical account manager and requests a specific fix for a particular problem. This technical account manager will then seek a solution to the problem from a product development group. The product development group will then provide a private, pretested solution to the client's problem. The product development group then gives the private solution to the technical account manager who typically posts the solution to an ftp (file transfer protocol) site, or other file transfer means. The technical account manager then informs, either personally or via electronic messaging, the client that the solution is ready. The client then accesses the ftp site, downloads and extracts (e.g., unzips) the hotfix file, typically enters a required password, decrypts the file, and applies the hotfix solution. Clients seeking more widely available, yet not globally available (e.g., GDRs (Globally Distributed Releases)), hotfixes available to more than one client, also follow this process. Obviously, this process is laborious and only provides such a solution to the client who requested the solution.

In addition, a client often requires both limited distribution release software updates and global software update releases. Conventionally, obtaining these two types of software releases occurs in two entirely different ways and must be pursued separately. As noted previously, obtaining global software update releases is relatively straightforward and often occurs automatically. Conversely, obtaining limited distribution release software updates can be laborious. No single source for all types of software updates (e.g., both GDRs and hotfixes) is available. Moreover, conventionally clients cannot directly search or access a store of such private and public limited distribution release software updates. In particular, a client seeks such limited distribution release software updates from a technical account manager. Moreover, one or more of such limited distribution release software updates may relate to knowledge base entries. But no mechanism exists for linking such updates to knowledge base entries, whereby the distribution of such updates could be facilitated.

Unfortunately, conventional systems for distributing limited distribution release software changes are cumbersome and do not allow for direct client access to the private and public software changes available to them via other conventional mechanisms, such as global software updates and knowledge bases.

SUMMARY

The following simplified summary provides a basic overview of some aspects of the present technology. This summary is not an extensive overview. It is not intended to identify key or critical elements or to delineate the scope of this technology. This Summary is not intended to be used as an aid in determining the scope of the claimed subject matter. Its purpose is to present some simplified concepts related to the technology before the more detailed description presented below.

Accordingly, aspects of the invention facilitate distribution of limited distribution release software changes by providing direct access of such changes by clients. This access provides appropriate limited distribution release software changes to clients, while ensuring that clients do not obtain software changes for which they do not have appropriate privileges. Aspects of the invention enhance distribution of both private and public limited distribution release software changes by providing both to clients simultaneously. Aspects of the invention provide links between a catalog of limited distribution release software changes and related knowledge base entries.

DETAILED DESCRIPTION

System

Referring now to the drawings, a system for storing, or cataloging, limited distribution release software changes according to one embodiment of the present invention is generally indicated21inFIG. 1. In this exemplary embodiment, the system21comprises a catalog25for maintaining a store27of limited distribution release software changes in a single location. As used herein, limited distribution release software changes include those software changes distributed to limited numbers of clients based upon their specific, rather than general, needs. Hotfixes generated for a specific client to address a specific issue, for example, are within this category, among others. Although such hotfixes are generated for single client and are not generally applicable to all clients, a few clients similarly situated may benefit from such hotfixes if they knew such hotfixes were available.

The catalog25comprises a store of private limited distribution release software changes27A and a store of public limited distribution release software changes27B. Private limited distribution release software changes are those requiring particular privileges for access (e.g., private hotfixes), while public limited distribution release software changes require no special privileges for access (e.g., public hotfixes). As would be readily understood by one skilled in the art, the catalog25may include any number of additional, either private, public, or other, stores27N of limited distribution release software changes. In one exemplary embodiment, the limited distribution release software changes are stored in numerical form, such as in binary form. The limited distribution release software changes may be stored in any number of different form within the catalog25without departing from the scope of the embodiments of the present invention.

The catalog25also includes a store of metadata31related to the private limited distribution release software changes and the public limited distribution release software changes. For example, such metadata can include detailed information relating to the problems addressed by and enhancements included in the software changes.

A communication component33of catalog25comprises provides direct access to the stores27by a client37seeking limited distribution release software changes. The communication component33is adapted for receiving queries from the client37, as will be discussed in greater detail below. In one exemplary embodiment, the communication component33includes a user interface (not shown) for receiving data from the client. The user interface can include data entry elements for entering information, including search terms and authentication information. The client37and communication component33communicate with one another via a network39, such as the World Wide Web, as would be readily understood by one skilled in the art. Other communication means are also contemplated as within the scope of embodiments of the present invention.

The catalog25is further adapted to be readily imported into other application software. In one exemplary embodiment, the catalog25is adapted to be readily imported into a system administration software. As would be readily understood by one skilled in the art, the format of the data in the catalog25may be formatted, or coded, in any number of configurations to ensure that various applications can readily import the catalog. This provides greater functionality, as the catalog can be readily utilized in existing software applications, such as distribution software and searching software.

The catalog25is further adapted to be integrated with a software update service41. In one exemplary embodiment, the catalog25is adapted to be integrated with a software update service41distributing globally distributed releases (e.g., Windows Server Update Service). In this embodiment, the catalog25can be adapted to be searched for each of the private limited distribution release software changes in the private store27A, the public limited distribution release software changes in the public store27B, and the globally distributed releases of the software update service41, simultaneously. The catalog25can also be adapted to provide results of such a search simultaneously to the client37.

The system21further links, generally indicated at43, a knowledge base45with the stores27of limited distribution release software changes. In one embodiment, the knowledge base45includes a store of informational entries of interest to clients and a communication component47for providing direct access by the client37to the store of informational entries. The client37and communication component47communicate with one another via the network39, such as the World Wide Web, as would be readily understood by one skilled in the art. At least a portion of the entries in the knowledge base45relate to one or more of the limited distribution release software changes of the catalog25. The links43between the knowledge base45and the catalog25are adapted to provide connections between the informational entries and any related limited distribution release software changes. For example, the knowledge base45is adapted to provide access to the informational entries in response to inquiries such as by browsing or searching the knowledge base by the client37. When displaying such knowledge base entries to the user via a user interface (not shown), the knowledge base45further displays selection elements with each of the informational entries in the portion displayed, thereby linking the informational entries of the knowledge base with any related limited distribution release software changes of the catalog25. In this manner, the client37can find useful informational entries in the knowledge base and readily select one or more of the selection elements associated with entries to gain access to related limited distribution release software changes.

Network Service

Referring now toFIG. 2, a network service51for distributing limited distribution release software changes to the client37is generally indicated51. In one exemplary embodiment, the network service51may be utilized with the catalog25of the system21described above. In such an example, the network service51is accessible by the client37via network39, and overlays the catalog25described above. The network service51comprises an interface component55for interfacing with the client37outside the network service51and receiving one or more search requests from the client for limited distribution release software changes. In one exemplary embodiment, the interface component55presents a user interface for accessing the network service51by the client37via the network39.

The network service51further comprises a validation component59for authenticating the client37attempting to access the network service51via the interface component55. With respect to authentication, those skilled in the art are familiar with several means for authenticating a user. In one exemplary embodiment, the validation component59receives a user name and password entered via the interface component55and compares the submitted information to a database of privilege information. For example, the user name and password credentials may be passed to the validation component59of the network service51by an component outside the network service (e.g., Windows Live ID). In another exemplary embodiment, the validation component59further comprises a privilege engine61for determining what portions of a database65the client37has privileges to access. In still another exemplary embodiment, the validation component59comprises a mapping engine, also depicted61, for mapping client privileges and limited distribution release software changes to one another. In one example, the mapping engine61is responsive to changes in client privileges for changing the mapping.

The network service51also includes a management component69for managing the network service. In particular, the management component69comprises at least one of a reporting component73for managing communications between the client37and the network service51, a logic component75for processing the functions of the network service, and a filter component77for filtering results of any query based upon the received search, as discussed below. The filter component77filters results of the query before providing results to the client37. This ensures that the provided results conform to the wishes of the client37and do not include information or other data to which the client37should not have access. In one example, the filter component77filters results of the query based upon at least one of the private/public nature of the requested content, the requesting client's access rights, and the subject matter of the query results. For example, the filter component77could remove unnecessary metadata where a more streamlined web feed (e.g., an RSS feed) is requested.

The network service51further includes a query engine81for forming queries based upon received search requests from clients. For example, the received search requests may be reformatted to provide more accurate search results. Moreover, the query engine81may form a query with additional search criteria for broadening or narrowing the search, to better effectuate the search request of the client.

The network service51also comprises a database component85for receiving the queries formed by the query engine81and applying such queries to the database65of information related to limited distribution release software changes accessed by the network service. This application will be discussed in greater detail below with respect to the embodied methods of the present invention.

Methods for Distributing Limited Distribution Release Software Changes

A method for distributing limited distribution release software changes to clients37via a network39is generally indicated91inFIG. 3. The method91comprises receiving, at95, a search request from the client37for limited distribution release software changes. These limited distribution release software changes can be any number of objects, including hotfixes, for example, as discussed above.

The method91also comprises obtaining, at97, authentication information about the client37submitting the search request. In one example, obtaining97authentication information comprises obtaining an identifier and a password (e.g., via a Windows Live ID). This information may be obtained97in any number of ways, including receiving authentication information from the client37and obtaining authentication information from a client cookie, among others.

The method91continues by authenticating, at101, the client37with the obtained97authentication information. For example, with the obtained97identifier and password. Where the authentication101fails, a client may attempt to reauthenticate, at103.

The method91further comprises forming, at105, a query in accordance with the received search request. For example, the received search request may be reformatted to provide more accurate search results. Moreover, the query may be formed with additional search criteria for broadening or narrowing the search, to better effectuate the search request of the client. The method91further queries, at109, a database of limited distribution release software changes with the query.

After querying, the method91returns, at111, data from the database associated with the limited distribution release software changes based upon the query. In one embodiment, the method91can further merge, at113, the returned data from the database with other data associated with the data returned111from the database query. In the example shown, this merger113occurs before the filtering and providing processes discussed below. In still another example, returned111data from the database is merged113with metadata associated with the returned data.

The method91further filters, at117, the returned data according to a screening criteria. In one exemplary embodiment, the filtering117the returned data comprises removing data not suitable for the client37. For example, removing data not suitable for the client can comprise removing data the client37is not authorized to receive. In another example, removing data the client37is not authorized to receive comprises removing data associated with private limited distribution release software changes if the search request requests only data associated with public limited distribution release software changes.

The method91continues by providing, at121, the returned data to the client. In one embodiment, the method91may then receive, at125, a request from the client37to provide additional data relating to the returned data. Once the method91receives125such a request, the method provides, at129, such additional data along with at least a portion of the returned111data. In one example, this additional data is detailed data about a specific limited distribution release software change, while continuing to provide a portion of the returned111data.

The method91further comprises receiving, at133, a request from the client37to receive limited distribution release software changes associated with the provided121data. The method91then provides, generally indicated141, the requested133limited distribution releases to the client37. In one example, providing121the returned data to the client37comprises providing a selection element associated with each data associated with a limited distribution release software change included in the provided returned data. The selection elements allow the client37to request receipt of the associated limited distribution release software change.

In one alternative embodiment, the method91requires that the client37acknowledge, at145, any contractual duties related to the requested limited distribution releases before providing141the requested limited distribution releases to the client. This acknowledgement145serves as a reminder to the client37that certain duties, such as confidentiality and licensing, may apply to the present release.

In one exemplary embodiment, providing141the requested limited distribution releases to the client includes detecting, at149, if the recipient of the requested limited distribution releases has update service software (e.g., Windows Server Update Services) installed. Where the update service software is detected, the method91provides, at151, the recipient with the option to use the installed update service software. If the client37elects to use the update service, which in one embodiment is assumed if installed, the method91provides, at153, the requested limited distribution releases via the installed update service. Where the update service is not detected, the method91provides, at155, the recipient, or client, with the option to save the requested limited distribution releases to a file system.

In another exemplary embodiment, the providing141the requested limited distribution releases to the client may further comprise providing, also at141, software updates, globally distributed releases, service packs, and drivers, among others, related to the client with the provided limited distribution releases. In this manner, the method91can provide helpful content to the client while providing the requested limited distribution releases.

In another exemplary embodiment, the method91comprises receiving, at161, at least one additional search request from the client37after providing141the returned data to the client. The method91continues with the other processes of the method and ultimately provides further data to the client after providing the returned data to the client.

Referring now toFIG. 4, another method for distributing limited distribution release software changes to a client37via a network39is generally indicated at171. The method171comprises receiving, at173, a search request from a client37seeking limited distribution release software changes. The method171further comprises authenticating, at175, the client with authentication information, generally as set forth above with the previous method.

The method171searches, at177, in accordance with the search request, and the search yields both private limited distribution release software changes and public limited distribution release software changes. The method171further determines, at181, the types of limited distribution release software changes the client37is authorized to receive (e.g., public and/or private).

The method171provides, at183, a list of limited distribution release software changes derived from the search request. The list includes all public limited distribution release software changes derived from the search request. The list also includes any private limited distribution release software changes derived from the search request that the client is authorized to receive.

Method for Providing a Limited Distribution Release Software Change

A method for providing a limited distribution release software change is generally indicated191inFIG. 5. The method191comprises receiving, at193, a request from a client37to develop a limited distribution release software change. The method191further develops, at197, the limited distribution release software change in response to the request from the client37. This request and development process is typically administered manually by a technical account manager and product development personnel.

The method191adds, at199, the developed limited distribution release software change to a catalog adapted for maintaining a store of limited distribution release software changes. In one exemplary embodiment, the adding199the developed limited distribution release software change to a catalog comprises adding the limited distribution release software change to a catalog adapted for maintaining both a store of limited distribution release software changes and a store of globally distributed releases. The method191notifies, at203, the client37that the limited distribution release software change has been added199to the catalog.

The method191further provides, at207, the client37with an interface for accessing the catalog to gain access to the developed limited distribution release software change. In the example noted above where the catalog is adapted for maintaining both a store of limited distribution release software changes and a store of globally distributed releases, providing207the client with an interface further comprises providing the client with an interface for accessing both the store of limited distribution release software changes and the store of globally distributed releases.

In another exemplary embodiment, the method191further comprises detecting, at211, if the client has an update service software installed. Where an update service software is detected211, the method191provides, at213, the recipient with the option to use the installed update service software to access the developed limited distribution release software change, generally as set forth above with the method91ofFIG. 3.

Those skilled in the art will note that the order of execution or performance of the methods illustrated and described herein is not essential, unless otherwise specified. That is, it is contemplated by the inventors that elements of the methods may be performed in any order, unless otherwise specified, and that the methods may include more or less elements than those disclosed herein.