Electronic content (hereinafter “content”) is increasingly used by society to perform services and to provide information. Accordingly, as services are upgraded and information changes, content must be updated. The update content may include updated information (e.g., news updates, weather reports, stock updates, new magazine articles and the like) or updated products and services (e.g., software updates, bug fixes, new software products, recently released videos, television episodes, or songs, upgrades to email and internet services, subscriptions to view or use content provided by a website, and the like). Generally, update content may be delivered to a client computing device using one or more of a plurality of forms of computer readable media. For example, computer readable storage media which includes updated content may be used to deliver the updated content to the client computing device. Alternatively, the update content may be provided via one or more data communication networks, such as the internet. Several different formatting techniques are available for embodying updated content in each of the plurality of forms of computer readable media. As a result of the multitude of options for formatting and delivering updated content to a client computing device, content consumers (e.g., users of the client computing devices) are burdened with a plurality of inconsistent update experiences (required interactions by the content consumer to receive the update content).
Because software and hardware are frequently updated to comply with rapid improvements in technology, providing content related to software and hardware updates is particularly burdensome for both content consumers, including end-users and organization administrators, and content providers, such as independent software vendors (ISVs), independent hardware vendors (IHVs), and/or original equipment manufacturers (OEMs). Since the internet allows information to be provided quickly and globally, the internet is often used to by content providers to distribute updates or other content to a large number of content consumers. However, many small content providers are focused on development of their core product and lack the operations team and server infrastructure necessary to manage a distribution system on an internet scale. Moreover, even when content providers have the resources to distribute the updates via the internet, the content providers require content consumers to use content-specific or provider-specific software programs or to visit particular web sites or in order to receive the updated content. Accordingly, content provided by each content provider involves a specific update experience. Because end-users are interested in receiving software and hardware updates from a plurality of different content providers, content consumers must navigate through a plurality of update experiences in order to receive the updated software and hardware content. Likewise, corporate content consumers lack a single unified automatic update distribution system for all products used in their organization. Administrators must seek out updates for each software and hardware product and import the updates into their system.
Thus, a need exists, for a unified distribution infrastructure which can be used by all content providers to provide their updates to content consumers via a single update experience.
Embodiments of the invention overcome one or more deficiencies of existing practices for providing content to the content consumers by providing a unified distribution infrastructure. According to aspects of the invention, the unified distribution infrastructure can be used by a plurality of diverse content providers, advantageously facilitating the distribution of content to content consumers. In addition, aspects of the unified distribution infrastructure advantageously allow content consumers to selectively receive different types of content and/or content from a plurality of content providers via a single user experience.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Other features will be in part apparent and in part pointed out hereinafter.
Corresponding reference characters indicate corresponding parts throughout the drawings.
Embodiments of the invention provide electronic content from a variety of content providers to a content consumer in a single federated or aggregated update experience. According to aspects of the present invention, content providers organize content into channels and publish the channels to a distribution processor. Content consumers (broadly “users”), such as end users, server administrators and content aggregators subscribe to various channels published on the distribution processor in a single update experience. Updates from the subscribed channels are accordingly processed directly by the content consumer or aggregated and distributed to other content consumers.
Referring to
The interface 102 interacts with a content provider to develop a channel. A channel comprises channel content and channel attributes which define the channel content or channel behavior. According to one embodiment, each content provider selects and/or creates content for including in a channel via the interface 102. Additionally, each content provider interacts with the interface 102 to establish channel attributes defining the selected and/or created content. For example, the interface 102 may include a developing application which can be used by each of the plurality of content providers to select/create content and to define the channel attributes. The set of channels attributes are consistently used by the plurality of content providers to describe content in the channels. An exemplary set of channel attributes include attributes which indicate the content provider of the channel, procedures for validating the content authenticity of the channel content, content consumer authentication requirements, and restrictions applicable to client computing devices. In other embodiments, additional or alternative channel attributes are used to define and describe the content of the channel. For example, channel attributes may include content such as images, text, or instructions for interactive experiences that are used by the update agent 110, further discussed below, to customize the uniform infrastructure of the user experience on the user computing device 108 when content is downloaded or installed from that channel. For example, an embodiment of the uniform user experience on the user computing device 108 may provide functionality to display branding images, text, or experiences as part of the user experience, with the branding information provided by the content provider as an attribute of the channel. In an additional example, the user experience on the user computing device may provide a facility to direct the user to the content provider's web site or other location with the experience and destination specified as an attribute of the channel. By employing a set of channel attributes which are used by various content providers to define content, the present invention advantageously provides a uniform infrastructure for providing content to client devices 106.
The interface 102 further interacts with a content provider to publish the channel to the distribution processor 104. The distribution processor 104 hosts the published channel. The content provider manages the hosted channel via the interface 102. In particular, the content provider may create and publish new data to the hosted channel. Additionally or alternatively, the content provider may modify (e.g., alter, delete, revise, etc.,) the attributes or content of the hosted channel. In one embodiment, the distribution processor 104 additionally hosts channels published to it by another content provider(s) (e.g., distribution processor 104-B hosts channels published via user interfaces 102-B, 102-C from different content providers).
The distribution processor 104 is connected to the client devices 106 via a wired (e.g., wired network or direct-wired connection) and/or a wireless (e.g., acoustic, radio frequency (RF), infrared) communication media such that the client devices 106 may communicate with the distribution processor 104. The distribution processor 104 is configured to permit client devices 106 (e.g., requestors) which are requesting to receive content from a channel hosted by the distribution processor 104 to access the hosted channel based on the attributes of the published channel. For example, when the hosted channel attributes indicate that particular client devices 106 are restricted from accessing the channel, the distribution processor 104 prohibits the particular client devices 106 (e.g. requestors) from accessing the channel. In particular, client devices or users may be restricted by identity or by descriptive attributes of the hardware or software on the client device. Likewise, when the hosted channel attributes indicate that user authentication is required, the hosted channel permits access by client devices 106 (requesters) to the channel as a function of authenticating the user of the client device 106.
Referring further to
As illustrated by
In one embodiment, the update agent 110 allows a user to select a particular channel for which the user would like to receive content. For example, when a user installs a software application on the user computing device, the update agent 110 prompts the user to subscribe to the channel which includes content for updating the software application. Alternatively, the software application may be designed such that when a user installs the software application on the user computing device 108, the software application interacts with the update agent 110 to register for automatic updates from the channel which includes content for updating the software application. In another embodiment, the update agent 110 additionally or alternatively allows the user to specify how or when the content is displayed to the user. For instance, the user may request the update agent 110 to notify the user prior to downloading a first set of content to the user computing device 108. The user may request the update agent 110 to automatically download a second set of content at a particular time and display the downloaded content to the user at another subsequent particular time. In another embodiment, the update agent 110 stores identifying information, such as user information (e.g., login ID, password, email address, a channel subscription identifier, hardware or software identifiers, etc.), required by a channel to authenticate the user. The user may request the update agent 110 to automatically provide the required user information to the distribution processor 104 for authenticating the user with respect to a particular channel.
In one embodiment, the present invention is implemented to provide the user computing device 108 with software updates from channels developed by a plurality of content providers and hosted by a distribution processor 104. The user submits a request to the update agent 110 indicating one or more channels for which the user would like to subscribe (e.g., receive new content subsequently published to the channel). For example, the update agent 110 may indicate to the user the channels hosted by the distribution processor 104 for selecting by the user. In response, the user submits the request to the update agent 110 by selecting one or more of the indicated channels. The update agent 110 receives the user's request and subscribes to the requested channel(s). The update agent 110 may alternatively subscribe to channels in response to a request for automatic updates received from a software application being installed on the user computing device. The update agent 110 communicates with the distribution processor 104 to identify new content in one or more of the subscribed channels. The new content includes a new software update and may also include computer readable and/or executable information for installing the software update on the user computing device 108. When the update agent 110 identifies new content, the update agent 110 accesses the channel and downloads the new content based on the channel attributes (e.g., providing user authentication, authenticating the content provider) and/or specifications from the user (e.g., automatically provide authentication information) and/or descriptive information provided to the distribution processor 104 (e.g., descriptive/identifying attributes of/associated with the user computing device 108). The downloaded new content is installed on the user computing device 108 based on specifications from the user (e.g., installation time). Advantageously, the user may receive software updates from a plurality of content providers in a single update experience.
In another embodiment, the present invention is implemented to provide the user computing device 108 with software updates from channels developed by a plurality of content providers and which are hosted by a plurality of distribution processors 104 (e.g., channel sources). As previously described, the update agent 110 subscribes to channels requested by the user and/or software application being installed and identifies new content in the subscribed channels. The update agent 110 aggregates the identified new content from the plurality of content sources on the user computing device 108. For example, the update agent 110 downloads the identified new content to the user computing device 108 based on the channel attributes defining the new identified new content. The update agent 110 subsequently installs the aggregated content on the user computing device 108 according to specifications from the user.
As further illustrated by
In one embodiment, the aggregator processor 112 examines the received content and alters and/or distributes the aggregated content based on the examination. For example, the aggregator processor 112 may define channel attributes for the single channel which includes the aggregated data. Additionally or alternatively, the aggregator processor 112 may alter (e.g., modify, delete, supplement, etc.,) the aggregated content based on the preferences or needs of a potential recipient user and/or the components of a user computing device 114. For instance, prior to distributing multimedia content to a particular user, an aggregator processor 112 may alter the multimedia content so that it can be accessed by a user with software currently installed on the user computing device 114. In another example, the aggregator processor 112 may additionally or alternatively group the aggregated content into sets. For instance, the aggregator processor 112 may group all of the content which relates to basic anti-virus protection into a first set and group all of the content which relates to extensive anti-virus protection into a second set. The aggregator processor 112 may then distribute the first set to any/all user computing devices 114 but distribute the second set only to preferred user computing devices 114 (e.g., 114-A and 114-B).
According to an embodiment of the invention illustrated by
Referring to
Referring to
Still referring to
Referring to
Referring to
The order of execution or performance of the operations in embodiments of the invention illustrated and described herein is not essential, unless otherwise specified. That is, the operations may be performed in any order, unless otherwise specified, and embodiments of the invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that executing or performing a particular operation before, contemporaneously with, or after another operation is within the scope of aspects of the invention.
Embodiments of the invention may be implemented with computer-executable instructions. The computer-executable instructions may be organized into one or more computer-executable components or modules. Aspects of the invention may be implemented with any number and organization of such components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or the specific components or modules illustrated in the figures and described herein. Other embodiments of the invention may include different computer-executable instructions or components having more or less functionality than illustrated and described herein.
When introducing elements of aspects of the invention or the embodiments thereof, the articles “a,” “an,” “the,” and “said” are intended to mean that there are one or more of the elements. The terms “comprising,” “including,” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
Having described aspects of the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of aspects of the invention as defined in the appended claims. As various changes could be made in the above constructions, products, and methods without departing from the scope of aspects of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.