Device to device content upgrades

In embodiments of device to device content upgrades, a computing device includes a peer sharing manager that shares content and upgrades to content with peer devices. The computing device downloads content and upgrades from sources on the Internet, and shares the content and upgrades with peer devices that lack an Internet connection. A lowest supported version of the content can be shared from the computing device to one of the peer devices. The lowest supported version of the content determines capabilities of the peer device and establishes a peer-to-peer communication link with the computing device. The peer device reports the capability information to the computing device and, if the computing device determines that the peer device is capable of supporting an upgraded version of the content, the computing device communicates the upgraded version of the content to the peer device.

BACKGROUND

Downloads and upgrades of software applications and other various types of digital content to computing devices typically require an Internet connection to on-line stores or distributors to obtain the software applications and digital content, or to upgrade the software applications and digital content with updated versions. There are however, some devices that do not have a continuous Internet connection, which makes it difficult for a user to obtain, or keep current, the software applications and other digital content on his or her devices. Other devices in proximity to a user's device may have applications or other digital content that could be used as a source for obtaining the applications or digital content, but the capabilities of various devices is not consistent. Traditionally, the logic for downloading the correct version of an application to a device is maintained in an on-line store, which receives information about the device requesting the application. The on-line store can then choose the correct version of a requested application to download that is compatible with the requesting device.

DETAILED DESCRIPTION

Embodiments of device to device content upgrades are described for various forms of computing devices, such as a mobile phone or tablet device, a computer, or a mobile hotspot. A computing device may be any form of device that has storage for content, and the capability to communicate with peer devices to either share the content with a peer device, or upgrade the content on the peer device. The content may be a software application, media file, and/or any other type of digital content, as well as upgrades associated with the application, media file, and the digital content. For example, the digital content may be a video file of a television show, with the upgrade being additional episodes of the television show. The digital content may also be any other form of content that can be shared and/or upgraded, such as from one version of a software application that is upgraded to the next version.

In implementations, a computing device may be a first peer device that shares a software application and/or media content with a second peer device, or may be the second peer device that receives the shared software application and/or media content from the first peer device. The first peer device can initially communicate a lowest supported version of content (e.g., a software application) to the second peer device that then installs the content on the device. The lowest supported version of the content can determine the capabilities of the second peer device, such as API versions and a hardware configuration, and can also request to establish peer-to-peer communications with the first peer device. The first peer device can assess the determined capability information about the second peer device to determine whether an upgraded version of the content is compatible with the second peer device. If the upgraded version of the content is compatible with the second peer device, as determined based on the compatibility information, then the first peer device communicates the upgraded version of the content application to the second peer device.

While features and concepts of device to device content upgrades can be implemented in any number of different devices, systems, networks, and/or configurations, embodiments of device to device content upgrades are described in the context of the following example devices, systems, and methods.

FIG. 1illustrates an example system100in which embodiments of device to device content upgrades can be implemented. The example system100includes a computing device102, such as a mobile device104, a mobile hotspot106, or a computer108. The computing device102may be any type of wired or wireless electronic and/or computing device, such as a mobile phone, tablet computer, handheld navigation device, portable gaming device, media playback device, or any other type of electronic and/or computing device. Generally, any of the devices described herein can be implemented with various components, such as a processing system110and memory112, as well as any number and combination of differing components as further described with reference to the example device shown inFIG. 5.

As described herein, any of the computing devices may each be a peer device and can be connected via a network114, such as over a peer-to-peer network, to other peer devices. The network can be implemented to include a wired and/or a wireless network. The network can also be implemented using any type of network topology and/or communication protocol, and can be represented or otherwise implemented as a combination of two or more networks, to include IP-based networks and/or the Internet. The network may also include mobile operator networks that are managed by a mobile network operator and/or other network operators, such as a communication service provider, mobile phone provider, and/or Internet service provider.

The computing device102may include any suitable type of communication transceivers116, including a wireless transceiver118for communication via a wireless network (e.g., a mesh network) and/or a wired transceiver120for wired communication. The wireless transceiver118may be any type of transceiver configured to communicate via a wireless network, such as a wireless wide-area network (WWAN), a wireless local-area network (WLAN), and a wireless personal-area network (wireless PAN), each of which may be configured in part or entirely as infrastructure, ad-hoc, or mesh networks. For example, the wireless transceiver118can be implemented as a short-range wireless transceiver to communicate over a wireless personal-area-network (PAN) in accordance with a Bluetooth™ and/or Bluetooth™ low energy (BTLE) protocol. The Bluetooth™ family of protocols support various communication profiles for communicating various types of data and/or enabling different feature sets between devices connected for communication via a wireless PAN.

The Bluetooth™ and/or BTLE family of protocols also support “pairing” between devices, which may enable the computing device102to associate with other peer devices. When initially pairing with another device, the computing device102can store self-identifying information (e.g., a medium access control (MAC) address) associated with the other device in an information table (e.g., a pairing table) for future use. The information table can also store a context associated with the other device, such as an identity of a user, a mode of use for the computing device102, and/or a location of the other device. For example, the computing device102may communicate with a peer device that has shareable content and is within proximity whenever the wireless transceiver118using Bluetooth™ is able to communicate with the paired peer device. Alternatively, the wireless transceiver may be implemented for near-field communication (NFC), to enable NFC with the peer device, in accordance with various NFC standards, such as ISO 18000-3, ISO/IEC 18092, ECMA-340, ISO/IEC 21481, and ECMA 352, just to name a few.

The computing device102includes the wired transceiver120that may include wired data interfaces for communicating with other devices, such as an Ethernet transceiver, serial data interface, audio/video port (e.g., high-definition multimedia interface (HDMI) port), or universal serial bus (USB) port. These wired data interfaces may be implemented using standard connectors or through the use of proprietary connectors and associated cables providing enhanced security or interconnect density.

The computing device102includes device data122that may include shareable content124, which is maintained in the memory112on the device and designated as shareable, such as by a user of the computing device. The shareable content124can include any content items that may be shareable between the devices, such as music, documents, emails, contacts, applications, and any other type of audio, video, and/or image data. Alternatively or in addition, the device data122may include other device and/or user data that is not shareable.

The computing device102also includes device applications that implement embodiments of device to device content upgrades. In this example, the computing device includes a peer sharing manager126and a peer communication manager128that can be implemented as software applications or modules (e.g., computer-executable instructions) stored on computer-readable storage memory, such as any suitable memory device or electronic data storage (e.g., the memory112), and executed with the processing system110. Although shown and described as separate manager modules, the peer sharing manager126and the peer communication manager128can be implemented together as a single software application or module. Implementations and functions of the manager modules are further described with reference toFIGS. 2-4.

FIG. 2illustrates an example system200with examples of the computing device102implemented as peer devices, such as a first peer device (referred to and shown as computing device202) and a second peer device204that may each be implemented as any of the devices described with reference toFIG. 1. Simply for ease of discussion, the first peer device is referred to as the computing device202that is implemented for peer-to-peer communication with the second peer device204, such as via the communication network114described with reference toFIG. 1. In this example, the computing device202is shown to implement the peer sharing manager126and a first instance of the peer communication manager128. The peer device204is shown to implement a second instance of the peer communication manager128. In practice, however, both the computing device and the peer device can each implement the peer sharing manager126and the peer communication manager128, as described with reference to the computing device102shown inFIG. 1.

The peer sharing manager126at the computing device202is implemented to manage sharing content items of the shareable content124in the device data122that is maintained on the computing device202with other peer devices, such as the peer device204. Content items of the shareable content can include multiple versions of a content item. For example, a content item may include a lowest supported version of a content item206, as well as an upgraded version of the content item208. The lowest supported version of the content item206is a version that may run on a broader range of peer devices than the upgraded version of the content item208. For example, an upgraded version of a software application may require hardware capabilities, or an operating system version, that is not supported by older devices, or by devices that have less capable hardware configurations.

The peer communication manager128for each respective device is implemented to establish and manage the device and data communications via a communication link210between the computing device202and the peer device204. The peer sharing manager126at the computing device202is implemented to share a content item of the shareable content124, such as a software application, with the peer device204. The peer sharing manager can initiate communication to share the lowest supported version of the content item206to the peer device204, and the peer communication manager128communicates the lowest supported version of the content item to the peer device using one of the communication transceivers116via the communication link210.

As shown at212, the peer device204receives and installs the lowest supported version of the content item206. In embodiments, the lowest supported version of the content item206that is installed on the peer device204can determine peer device capability information214of the peer device, such as an operating system version, API versions, hardware capabilities, content licenses, and any other type of capability information associated with the peer device. Alternatively or in addition, the peer device204may implement an instance of the peer sharing manager126that is implemented to determine the peer device capability information of the peer device. The peer sharing manager126at the computing device202can then receive the capability information214from the peer device204, as shown at216and, based on the capability information, determine whether or not the upgraded version of the content item208is compatible with the peer device.

If the peer sharing manager126determines that the upgraded version of the content item208is compatible with the peer device204, then the peer sharing manager initiates communication of the upgraded version of the content item208to the peer device204, as shown at218. The peer device204receives and installs the upgraded version of the content item208, which replaces or can be executed in place of, the lowest supported version of the content item206. Additionally, the upgraded version of the content item208may include an instance of the peer sharing manager126, which is distributed to the peer device204from the computing device along with the upgraded version of the content item208.

In embodiments, the computing device202has Internet connectivity to obtain content items of the shareable content124, as well as upgraded versions of the content items, from on-line sources, such as software and/or content providers, on-line stores, and other types of distributors on the Internet. The computing device202can connect to the on-line content sources (via constant or intermittent Internet connectivity) and download the content, which is then shared with other peer devices. For example, the computing device202could be a smart phone that a user takes from a home with no Internet service to an area that does have Internet connectivity. While the computing device202is connected to the Internet, the shareable content items are downloaded and later shared with other peer devices at the home.

In this example system200, a single content item is described, with the lowest supported version of the content item206and the upgraded version of the content item208. In implementations, the computing device202may contain multiple different content items, each with a lowest supported version and an upgraded version, as well as additional versions of a content item. Each content item may be any form of digital content, such as software applications, media files, and/or any other type of digital content and upgrades associated with an application, media file, and digital content.

For example, the lowest supported version of a media file may be one or more episodes of a particular television show, and the upgraded version of the media file may be later episodes in the same television series, or additional seasons in the series of the television show. In the case of a software application, the lowest supported version of the application may be an older or initial version of the application, a reduced function version of the application, or a version of the application designed to execute on a less capable hardware platform. The upgraded version of the application may then be an enhanced version with updated capabilities, a version that is supported only by peer devices with newer hardware capabilities, a version that requires a newer version of an operating system for execution, or that simply contains bug fixes or other software updates.

In implementations, the upgraded version of the content item208may include, contain, or otherwise integrate the lowest supported version of the content item206. These two versions of the content item may be distributed and configured in any number of ways, such as the upgraded version of the content item208including the lowest supported version of the content item206, or the upgraded version and the lowest supported version being separate items stored as the shareable content124of the device data122. The functions of the peer sharing manager126may be implemented as a separate module by a computing device that shares multiple content items. Alternatively or in addition, the peer sharing manager functions may be incorporated into the upgraded version of the content item208and/or in the lowest supported version of the content item, or the functions may be distributed between the different versions of the content item and the peer sharing manager. The operations described herein apply to any configuration, regardless of the partitioning of these functions. Similarly, the capability information of the peer device204may be determined by the lowest supported version of the content item206that is installed on the peer device, determined by a peer sharing manager126that is implemented by the peer device, or by a combination of the peer sharing manager and the lowest supported version of the content item.

Additionally, the second peer device204may further share content items with other peer devices utilizing the same device to device content upgrades techniques that the computing device202shared the content item with the peer device204. Further, the computing device202may share various content items and upgrades with multiple other peer devices utilizing the same described sharing techniques. The initiation of sharing a content item, such as a software application, media file, or an upgrade may be performed in any number of ways, such as by the computing device202determining that the peer device204is in proximity, a user initiating content sharing and upgrades from either of the computing device202or the peer device204, a scheduled push of new software applications from the computing device202to the peer device204, a query from the peer device204to the computing device202, and/or by any other techniques that are contemplated.

Example methods300and400are described with reference to respectiveFIGS. 3 and 4in accordance with implementations of device to device content upgrades. Generally, any of the services, components, modules, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. The example methods may be described in the general context of executable instructions stored on computer-readable storage media that is local and/or remote to a computer processing system, and implementations can include software applications, programs, functions, and the like.

FIG. 3illustrates example method(s)300of device to device content upgrades and is generally described with reference to a peer device that provides shareable content items with one or more additional peer devices. The order in which the method is described is not intended to be construed as a limitation, and any number or combination of the described method operations can be performed in any order to perform a method, or an alternate method.

At302, a communication link is established between peer devices. For example, the computing device202and the peer device204(FIG. 2) each implement an instance of the peer communication manager128that establishes a peer-to-peer communication link210between the respective devices for device and data communications between the computing device202and the peer device204. The peer-to-peer communication link210can be established by the peer communication managers utilizing the wireless transceivers118and/or the wired transceivers120of the respective devices.

At304, a lowest supported version of a content item is communicated to a peer device. For example, the peer sharing manager126of the computing device202initiates communication to share the lowest supported version of the content item206, and the peer communication manager128communicates the lowest supported version of the content item to the peer device204using one of the communication transceivers116via the communication link210. The peer device204receives and installs the lowest supported version of the content item206, which can then determine the peer device capability information214of the peer device, such as an operating system version, API versions, hardware capabilities, content licenses, and any other type of capability information associated with the peer device.

At306, capability information about the peer device is received from the peer device and, at308, a determination is made as to whether an upgraded version of the content item is compatible with the peer device. For example, the peer sharing manager126at the computing device202receives the capability information214from the peer device204and, based on the capability information, determines whether or not the upgraded version of the content item208is compatible with the peer device. The capability information214is received either in response to a request from the computing device202that is transmitted to the peer device204, or is pushed from the peer device204to the computing device202as a result of the installation of the lowest supported version of the content item206that is communicated to the computing device202.

If the upgraded version of the content item208is not supported by the capabilities of the peer device (i.e., “No” from308), then the method continues at302and the computing device202can establish another communication link with one or more additional peer devices. If the upgraded version of the content item208is compatible with the peer device204(i.e., “Yes” from308), then the upgraded version of the content item is communicated to the peer device. For example, the peer sharing manager128initiates communication of the upgraded version of the content item208

FIG. 4illustrates other example method(s)400of device to device content upgrades, and is generally described with reference to a peer device that receives shareable content items from another peer device. The order in which the method is described is not intended to be construed as a limitation, and any number or combination of the described method operations can be performed in any order to perform a method, or an alternate method.

At402, a communication link is established between peer devices. For example, the computing device202and the peer device204(FIG. 2) each implement an instance of the peer communication manager128that establishes a peer-to-peer communication link210between the respective devices for device and data communications between the computing device202and the peer device204. The peer-to-peer communication link210can be established by the peer communication managers utilizing the wireless transceivers118and/or the wired transceivers120of the respective devices.

At404, a lowest supported version of a content item is received from a peer device and, at406, the lowest supported version of the content item is installed. For example, the peer device204receives the lowest supported version of the content item206from the computing device202(e.g., a peer device), and the peer device installs the content item.

At408, peer device capability information is determined. For example, the lowest supported version of the content item206that is installed on the peer device204can determine the peer device capability information214of the peer device, such as an operating system version, API versions, hardware capabilities, content licenses, and any other type of capability information associated with the peer device. Alternatively or in addition, the peer device204may implement an instance of the peer sharing manager126that is implemented to determine the peer device capability information of the peer device.

At410, the device capability information is communicated to the peer device. For example, the peer device204communicates the peer device capability information214to the computing device202(e.g., a peer device), and the peer sharing manager126at the computing device202determines whether or not the upgraded version of the content item208is compatible with the peer device204based on the capability information.

At412, an upgraded version of the content item is received from the peer device and, at414, the upgraded version of the content item is installed. For example, the peer device204receives the upgraded version of the content item208from the computing device202(e.g., a peer device), and the peer device installs the content item. The peer device204receives and installs the upgraded version of the content item208, which replaces or can be executed in place of, the lowest supported version of the content item206. Additionally, the upgraded version of the content item208may include an instance of the peer sharing manager126, which is distributed to the peer device204from the computing device along with the upgraded version of the content item208.

FIG. 5illustrates various components of an example device500that can be implemented as any of the devices described with reference to any of the previousFIGS. 1-4. In embodiments, the example device may be implemented in any form of electronic and/or computing device, such as a fixed or mobile device, in any form of a consumer, computer, portable, user, communication, phone, navigation, gaming, messaging, Web browsing, paging, media playback, mobile hotspot, wireless router, and/or other type of electronic device, such as the computing device102described with reference toFIG. 1.

The device500includes communication transceivers502that enable wired and/or wireless communication of device data504, such as the keyword broadcasts, metadata, requests for content items, and/or other device data. Example transceivers include wireless personal area network (WPAN) radios compliant with various IEEE 802.15 (Bluetooth™) standards, wireless local area network (WLAN) radios compliant with any of the various IEEE 802.11 (WiFi™) standards, wireless wide area network (WWAN) radios for cellular telephony, wireless metropolitan area network (WMAN) radios compliant with various IEEE 802.15 (WiMAX™) standards, and wired local area network (LAN) Ethernet transceivers.

The device500may also include one or more data input ports506via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television content, recorded content, and any other type of audio, video, and/or image data received from any content and/or data source. The data input ports may include USB ports, coaxial cable ports, and other serial or parallel connectors (including internal connectors) for flash memory, DVDs,

The device500includes a processor system508of one or more processors (e.g., any of microprocessors, multi-core processors, controllers, and the like) and/or a processor and memory system (e.g., implemented in an SoC) that processes computer-executable instructions. The processor system can include a digital signal processing (DSP) subsystem for processing signals and data of the device. The processor system may be implemented at least partially in hardware, which can include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon and/or other hardware.

Alternatively or in addition, the device can be implemented with any one or combination of software, hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits, which are generally identified at510. Although not shown, the device can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.

The device500also includes one or more memory devices512that enable data storage, examples of which include random access memory (RAM), non-volatile memory (e.g., read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable disc, any type of a digital versatile disc (DVD), and the like. The device500may also include a mass storage media device.

A memory device512provides data storage mechanisms to store the device data504, other types of information and/or data, and various device applications514(e.g., software applications). For example, an operating system516can be maintained as software instructions with a memory device and executed by the processor system508. The device applications may also include a device manager, such as any form of a control application, software application, signal-processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, and so on.

The device may also include a peer sharing manager518and a peer communication manager520in embodiments of device to device content upgrades, such as when the device500is implemented as any of the devices described with reference toFIGS. 1-4. The peer sharing manager518is an example of the peer sharing manager126and the peer communication manager520is an example of the peer communication manager128that are described with reference toFIGS. 1-4.

The device500also includes an audio and/or video processing system522that generates audio data for an audio system524and/or generates display data for a display system526. The audio system and/or the display system may include any devices that process, display, and/or otherwise render audio, video, display, and/or image data. Display data and audio signals can be communicated to an audio component and/or to a display component via an RF (radio frequency) link, S-video link, HDMI (high-definition multimedia interface), composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link, such as media data port528. In implementations, the audio system and/or the display system are integrated components of the example device.

The device500can also include a power source530, such as when the device is implemented as a mobile device. The power source may include a charging and/or power system, and can be implemented as a flexible strip battery, a rechargeable battery, a charged super-capacitor, and/or any other type of active or passive power source.

Although embodiments of device to device content upgrades have been described in language specific to features and/or methods, the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of device to device content upgrades.