The present invention relates generally to the field of electronic systems that permit communication of generic content from one device to another. In particular, the present invention is directed to wireless communication networks and methods providing the capability of downloading media objects over-the-air from servers to mobile communication devices.
Wireless communication networks provide content delivery functionality, including content download, so that various types of content may be available to mobile users. For content delivery, a media object is delivered from a download server to a mobile device over a communication network that includes one or more wireless links. Once received, the mobile device processes the media object by performing operations such as installation and execution of the content. Delivery of the media object is typically performed based on a standard protocol utilized by the server and the mobile device.
A server's capability for content delivery to one or more mobile devices may vary based one the server's capacity to deal with its existing demand for service. For example, a server may become overloaded due to peaks in traffic or otherwise incapable of providing acceptable service to a mobile device. Also, capabilities of content deliver often vary from server to server. In relation to wired communication systems, the problems associated with a server inability to provide service are magnified for mobile devices due to the limited bandwidth and/or higher cost associated with wireless communication systems. Thus, each time a mobile device communicates with a server, the mobile device must hope that the server is currently capable of providing acceptable service.
There is a need for a system and method that maximizes a mobile device's opportunity to access a server that is currently capable of providing acceptable service. By increasing the chances of accessing an acceptable server, the mobile device decreases its chance of being subjected to problems or otherwise unacceptable service.
The present invention is a system and method for maximizing a mobile device's opportunity to access an acceptable server for over-the-air downloads by providing opportunities to multiple servers for over-the-air downloads when preferred servers are not available. If multiple servers are available, a user may select one particular server that provides optimal download capabilities (such as the fastest or most reliable download capability) or select an alternative server. For example, the system and method provides a mobile device with the capability of selecting a different or alternate server if a preferred server is not available. The available servers are identified for the mobile device by a descriptor that is provided by a server or proxy. The mobile device may initiate a download from a server based on an identifier, such as a universal resource identifier (“URI”) or a universal resource locator (“URL”), in the descriptor.
One aspect of the present invention is a mobile device for communicating wirelessly with content sources having access to media objects comprising a wireless transceiver and a processor. The wireless transceiver is configured to receive a download descriptor associated with a media object in which the download descriptor includes multiple server identifiers. The processor is configured to select a particular server identifier of the multiple server identifiers received by the wireless transceiver. The wireless transceiver retrieves the media object from a server associated with the particular server identifier.
Another aspect of the present invention is a wireless communication system capable downloading media objects to a mobile device from content sources comprising one or more servers. At least one server includes a memory configured to store a download descriptor associated with a media object in which the download descriptor includes multiple server identifiers, and a network interface configured to transmit to the mobile device, via a wireless communication link, the download descriptor.
Yet another aspect of the present invention is a method of a mobile device for communicating wirelessly with content sources having access to media objects. The mobile device ascertains, via a wireless communication link, a download descriptor associated with a media object in which the download descriptor includes multiple server identifiers. The mobile device then selects a particular server identifier of the multiple server identifiers. Thereafter, the mobile device retrieves, via the wireless communication link, the media object from a server associated with the particular server identifier.
Still another aspect of the present invention is a method of one or more servers having access to media objects for communicating wirelessly with a mobile device. A server transmits to the mobile device, via a wireless communication link, a download descriptor associated with a media object in which the download descriptor includes multiple server identifiers. The same server, or a different server, then receives, via the wireless communication link, a selection of a particular server identifier of the multiple server identifiers. Thereafter, the server that receives the selection delivers, via the wireless communication link, the media object from a server associated with the particular server identifier.
Referring to
The wireless communication system 100 may also comprise an intervening server or proxy 124 for managing communications and/or transactions between the mobile device 102 and the servers 104, 106, 108. For example, the servers 104, 106, 108 may include media objects that are of interest to the mobile device 102, and the proxy 124 may facilitate over-the-air downloading of one or more media objects from a particular server to the mobile device. For one embodiment, the proxy 124 may provides a download descriptor associated with a media object, which includes a plurality of server identifiers, to the mobile device 102, so that the mobile device may select a particular server identifier and retrieve the media object from the selected server corresponding to the particular server identifier. The media object may be retrieved by the mobile device 102 directly from the selected server of indirectly from the selected server via the proxy 124.
Referring to
An exemplary function of the wireless communication device 102 as represented by the internal components 200, upon reception of wireless signals, the internal components detect communication signals and the transceiver 202 demodulates the communication signals to recover incoming information, such as voice and/or data, transmitted by the wireless signals. After receiving the incoming information from the transceiver 202, the processor 204 formats the incoming information for one or more output devices 208. Likewise, for transmission of wireless signals, the processor 204 formats outgoing information, which may or may not be activated by the input devices 210, and conveys the outgoing information to the transceiver 202 for modulation to communication signals. The transceiver 202 conveys the modulated signals to a remote device, such as servers 104, 106, 108, 124.
The input and output devices 208, 210 of the internal components 200 may include a variety of visual, audio and/or mechanical outputs. For example, the output device(s) 208 may include a visual output device 216 such as a liquid crystal display and light emitting diode indicator, an audio output device 218 such as a speaker, alarm and/or buzzer, and/or a mechanical output device 220 such as a vibrating mechanism. Likewise, by example, the input devices 210 may include a visual input device 222 such as an optical sensor (for example, a camera), an audio input device 224 such as a microphone, and a mechanical input device 226 such as a flip sensor, keyboard, keypad, selection button, touch pad, touch screen, capacitive sensor, motion sensor, and switch. Actions that may actuate one or more input devices 210 include, but not limited to, opening the wireless communication device, unlocking the device, moving the device to actuate a motion, moving the device to actuate a location positioning system, and operating the device.
The internal components 200 of the mobile device 102 may include a location circuit 228. Examples of the location circuit 228 include, but are not limited to, a Global Positioning System (GPS) receiver, a triangulation receiver, an accelerometer, a gyroscope, or any other information collecting device that may identify a current location of the device.
The memory portion 206 of the internal components 200 may be used by the processor 204 to store and retrieve data. The data that may be stored by the memory portion 206 include, but is not limited to, operating systems, applications, and data. Each operating system includes executable code that controls basic functions of the communication device, such as interaction among the components of the internal components 200, communication with external devices via the transceiver 202 and/or the component interface 212, and storage and retrieval of applications and data to and from the memory portion 206. Each application includes executable code utilizes an operating system to provide more specific functionality for the communication device, such as file system service and handling of protected and unprotected data stored in the memory portion 206. Examples of the applications include a discovery application 230 for discovering media on behalf of a user and his/her mobile device and a download user agent 232 responsible for downloading the media object described by the download descriptor. Data is non-executable code or information that may be referenced and/or manipulated by an operating system or application for performing functions of the communication device.
Referring to
The memory portion 306 of the internal components 300 may be used by the processor 304 to store and retrieve data. The data that may be stored by the memory portion 306 include, but is not limited to, operating systems, applications, and data. Each operating system includes executable code that controls basic functions of the communication device, such as interaction among the components of the internal components 300, communication with external devices via the transceiver 302 and/or the component interface 312, and storage and retrieval of applications and data to and from the memory portion 306. Each application includes executable code utilizes an operating system to provide more specific functionality for the communication device, such as file system service and handling of protected and unprotected data stored in the memory portion 306. Data is non-executable code or information that may be referenced and/or manipulated by an operating system or application for performing functions of the communication device. Examples of the data include one or more download descriptors 334, one or more media objects 336, and an installation notification 338. Each download descriptor 334 includes metadata about an associated media object 336, instructions for the download user agent 232 of the mobile device 102 for downloading the media object, and multiple server identifiers each identifying a content source, i.e., download server, that may provide the media object. Each media object 336 is a resource, e.g., a single object or a container of multiple objects, on one or more servers that may be downloaded to the mobile device 102. Each installation notification 338 is a status report message indicating to a server, 104, 106, 108 and/or 124, that the download user agent 232 of the mobile device 102 has successfully installed a particular media object 336 to the mobile device.
In reference to
Referring to
The download descriptor 334 includes attributes that describe the media object at a particular location, e.g., at a URI or URL. Some attributes are mandatory and must be included in a valid download descriptor, whereas other attributes are optional and may be included in the download descriptor. Examples of mandatory attributes includes a TYPE attribute 402 which identifies the media type of the media object, a SIZE attribute 404 which identifies the number of bytes to be downloaded from a URI, and an ObjectURI attribute 406 which identifies the URI (usually URL) from which the media object may be loaded. The ObjectURI attribute 406 is particularly important for the download user agent 232 of the mobile device 102, because the download user agent references this attribute to determine the content source of the media object of interest. Although the ObjectURI attribute 406 may identify only one content source, the ObjectURI attribute 406 must include multiple server identifiers to identify multiple content source, i.e., multiple download servers, which may provide the media object in order to benefit from the advantages of the present invention. As described above, the download descriptor 334 may include other attributes 414, which may be mandatory or optional.
Referring to
The objectURI attribute 406 is represented by a third through seventh line 506-514 of the code format 500 in which <objectURI> and </objectURI> surround the locations of the media object 336 to be downloaded. Each of fourth, fifth and sixth lines 508, 510, 512 of the code format 500 represents a single server of the multiple servers identified within the objectURI attribute. For each of the fourth, fifth and sixth lines 508, 510, 512, a server attribute 408, 410, 412, such as <server> and </server> surrounds a location of the media object 336 to be downloaded for each server. According, multiple server attributes 408, 410, 412 are nested within the objectURI attribute 406 of the example shown in
By way of example, the exemplary code format 500 also shows an InstallNotifyURI attribute which is an optional attribute that may be included in the download descriptor 334. For this particular attribute, support of the functionality of this attribute is mandatory in the download user agent 232, but other optional attribute may note require such support in the download user agent. The InstallNotifyURI attribute 402 is represented by an eighth line 516 of the code format 500 in which <InstallNotifyURI> and </InstallNotifyURI> surround a location to which an installation report, whether successful or not, is to be sent.
Referring to
If the central download server 104, 106, 108, 124, is capable of operating with the DL OTA protocol, then the central download server may optionally determine which download servers appear in the descriptor 334 at step 612, particularly if the central download server is the proxy 124. Whether or not this determination is made, the central download server 104, 106, 108, 124, delivers the descriptor 334, which includes multiple download servers associated with the content or media object of interest, to the mobile device 102 at step 614. The mobile device 102 receives the descriptor 334 and, in response, processes the descriptor at step 616.
In processing the descriptor, the mobile device 102 determines whether multiple download servers, such as servers 104, 106, 108, are identified by the descriptor 334 at step 618. If multiple download servers are identified by the descriptor 334, then the mobile device 102 selects a particular download server based on a predetermined process at step 620. Examples of such predetermined processes include, but are not limited to, selecting a server based on a location of the mobile device 102, selecting a server based on the mobile network used to communicate between the server and the mobile device, selecting a server based on a user decision or input, and selecting a server based on preset instructions. An example of a user decision or input includes receiving a preference from a user of the mobile device 102 that one server is preferable over the other servers. An example of a preset instruction includes a process that matches the list of download servers to a pre-loaded loaded list of servers or a process that cycles through the list of download servers one-by-one. Thereafter, the mobile device 102 sends a request to the central download server or the selected download server, if different from the central download server, for content delivery at step 622. If, back at step 618, only one download server is identified by the descriptor 334, then the preferred operations 600 bypasses step 620 and, instead, directly proceeds to step 622.
After the request for content deliver is made, the mobile device 102 receives the media object of interest from the selected download server at step 624 and, if appropriate, installs the media object to its memory portion 206. The mobile device 102 then sends a confirmation to the central download server and/or the selected download server at step 626, particularly if confirmation (such as an InstallNotifyURI attribute) is specified by the descriptor 334. Thereafter, the preferred operations 600 terminate at step 628.
While the preferred embodiments of the invention have been illustrated and described, it is to be understood that the invention is not so limited. Numerous modifications, changes, variations, substitutions and equivalents will occur to those skilled in the art without departing from the spirit and scope of the present invention as defined by the appended claims.