The present application relates generally to wireless delivery of network content, and more particularly to efficient methods for delivering and accessing website content to wireless receivers via a broadcast network.
Wireless communication technologies have seen explosive growth over the past few years. This growth has been fueled by wireless services providing freedom of movement to the mobile public, and cutting the tether to hardwired communication systems. As a result of service enhancements, the popularity of wireless services is expected to continue to grow rapidly. A recent addition to wireless communication services has been the ability to broadcast television and other content to mobile devices. Mobile multimedia broadcast services allow users to view TV programming, as well as receive mobile editions of news, entertainment, sports, business, and other programming, using their cell phone or other wireless mobile device configured to receive the mobile broadcast transmissions.
The various aspects include a method for broadcasting content in a mobile multimedia broadcast system, in which the method includes assembling a content element into a content element package suitable for broadcast via a broadcast network, broadcasting a content description message describing the content element and identifying a time at which the content element package will be broadcast, and broadcasting the content element package at the identified time. In an aspect of the method, the content element may be a webpage content element, and the content element package may be a webpage content element package.
The various aspects include a multimedia broadcast network including a broadcast transmission system and a server coupled to the broadcast transmission system, in which the servicer is configured with server-executable instructions to perform operations of the above described method.
The various aspects include a multimedia broadcast network including means for assembling a content element into a content element package suitable for broadcast via the broadcast network, means generating a content description message describing the content element and identifying a time at which the content element package will be broadcast by the broadcast transmission system, means for broadcasting the generated content description message to the transmission system for broadcast, and means for broadcasting the content element package at the identified time.
The various aspects include a non-transitory computer readable storage medium having stored thereon server-executable instructions configured to cause a server of a multimedia broadcast network to perform operations of the above described method.
The various aspects further include a receiver device method for accessing a rich media content in a receiver device configured to receive transmissions from a broadcast network, the method including receiving in the receiver device a broadcast content description message describing a content element and identifying a time at which a package including the content element will be broadcast, determining in the receiver device from at least some of the information included in the received content description message whether the package including the content element should be received, receiving the package including the content element at the identified broadcast time when it is determined that the content element should be received, storing the received content in memory of the receiver device, receiving a request to access the content in the receiver device, and rendering the requested content using an application resident in the receiver device. In an aspect of the receiver device method, the content element may be a webpage content element, the content element package may be a webpage content element package, receiving a request to access the content in the receiver device may include receiving a request to access a webpage in the receiver device, and rendering the requested content using an application resident in the receiver device may include generating the requested webpage in a web server application operating in the receiver device using the stored webpage content element and providing the generated requested webpage to a web browser operating in the receiver device. In an aspect of the receiver device method, generating the requested webpage may include obtaining a template for the requested webpage from memory in the receiver device, and applying in the receiver device to the obtained template to the stored webpage content element. In an aspect the receiver device method may further include receiving the template for the requested webpage from the broadcast network and storing the received template in memory in the receiver device. In an aspect of the receiver device method, generating the requested webpage may include loading from memory in the receiver device a program for execution on the web server of the receiver device, the program being configured to generate the requested webpage according to logic implemented in the program, processing the stored webpage content element in the program, and receiving the program for the requested webpage from the broadcast network and storing the received template in memory in the receiver device. In an aspect of the receiver device method, determining whether the package including the webpage content element should be received may be based at least in part upon an identifier associated with the webpage content element.
In an aspect the receiver device method may further include receiving a user request to access a website (e.g., an Internet or local network website), and using an identifier of the requested website as the identifier associated with the webpage content element for determining whether the package including the webpage content element should be received, in which the identifier associated with the webpage content element is not a URL for the requested website.
In an aspect the receiver device method may further include receiving a user request to access a web flow of the broadcast network broadcasting content of the requested website, and using an identifier of the requested website as the identifier associated with the webpage content element for determining whether the package including the webpage content element should be received.
In an aspect the receiver device method may further include determining in the receiver device from at least some of the information included in the received content description message a version of the webpage content element that will be broadcast, and comparing the version of the webpage content element that will be broadcast to a version of a webpage content element stored in memory of the receiver device, in which determining whether the package including the webpage content element should be received may be based at least in part upon whether the version of the webpage content element that will be broadcast is newer than the version of the webpage content element stored in memory of the receiver device.
In an aspect of the receiver device method, the webpage content element may include an address for accessing the requested website via a network which may be different from the identifier of the requested website, in which the method may further include determining whether a unicast network connection is available to the receiver device, accessing a remote server supporting the requested website via the unicast network connection when it is determined that a unicast network connection is available to the receiver device, requesting a download of webpage content elements, and storing webpage content elements received from the requested website via the unicast network connection.
In an aspect the receiver device method may further include requesting from the remote server supporting the requested website a list of webpages available at the requested website when it is determined that a unicast network connection is available to the receiver device, generating and displaying in the receiver device a list of webpages corresponding to the requested website, receiving a user input selecting one of the listed webpages, and determining whether the selected one of the listed webpages is supported by webpage elements stored in memory of the receiver device, in which requesting a download of webpage content elements may be accomplished when it is determined that the selected one of the listed webpages is supported by webpage elements stored in memory of the receiver device. In an aspect of the receiver device method, requesting from the remote server supporting the requested website a list of webpages available at the requested website may include transmitting to the remote server supporting the requested website a list of webpages supported by webpage elements stored in memory of the receiver device, and receiving from the remote server via the unicast network a list of missing webpages which are available at the requested website but not included in the list of webpages supported by webpage elements stored in memory of the receiver device, in which generating and displaying in the receiver device a list of webpages corresponding to the requested website may include generating the list of webpages corresponding to the requested website based on a combination of the list of webpages supported by webpage elements stored in memory of the receiver device and the list of missing received webpages.
In an aspect of the receiver device method, the identifier associated with the webpage content element may include a web flow identifier. In an aspect of the receiver device method, the program for the requested webpage may include an address of a remote server which may be contacted via a network, wherein the address of a remote server is different from the web flow identifier.
In an aspect the receiver device method may further include determining whether a unicast network connection is available to the receiver device, accessing a web content server of the broadcast network via the unicast network connection when it is determined that a unicast network connection is available to the receiver device, requesting a download of webpage content elements associated with the requested web flow from the web content server, and storing webpage content elements received from the web content server via the unicast network connection.
In an aspect the receiver device method may further include determining whether an age of the stored webpage content element exceeds a threshold value prior to generating the requested webpage, determining whether a unicast network connection is available to the receiver device when it is determined that the age of the stored webpage content exceeds the threshold value, accessing the requested website via the unicast network connection when it is determined that a unicast network connection is available to the receiver device, downloading an updated webpage content element from the requested website via the unicast network connection, and storing the updated webpage content element in the memory of the receiver device, in which generating the requested webpage in the web server application operating in the receiver device using the stored webpage content element may use a most recently stored webpage content element.
The various aspects include a communication system including a wireless multimedia broadcast network, a wireless unicast network and a receiver device, in which the wireless multimedia broadcast network is configured to perform operations including assembling a content element into a content element package suitable for broadcast via a broadcast network, broadcasting a content description message describing the content element and identifying a time at which the content element package will be broadcast, and broadcasting the content element package at the identified time, and the receiver device includes a processor configured to perform operations of the methods described above.
The various aspects include a receiver device including a processor, a broadcast receiver circuit coupled to the processor, a unicast transceiver coupled to the processor and a memory coupled to the processor, in which the processor is configured with processor-executable instructions to perform operations of the methods described above.
The various aspects include a receiver device including means for accomplishing the operations of the methods described above.
The various aspects include a non-transitory processor-readable storage medium having stored thereon processor-executable instructions configured to cause a processor of a receiver device to perform operations of the methods described above.
The accompanying drawings, which are incorporated herein and constitute part of this specification, illustrate exemplary embodiments of the invention, and together with the general description given above and the detailed description given below, serve to explain the features of the invention.
The various embodiments will be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts. References made to particular examples and implementations are for illustrative purposes, and are not intended to limit the scope of the invention or the claims.
The word “exemplary” is used herein to mean “serving as an example, instance, or illustration.” Any implementation described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other implementations.
The terms “mobile device” and “receiver device” are used interchangeably herein to refer to any one or all of personal mobile television receivers (e.g., FLO TV® related devices), cellular telephones, automobile mobile television receivers, personal data assistants (PDA's), palm-top computers, wireless electronic mail receivers (e.g., the Blackberry® and Treo® devices), multimedia Internet enabled cellular telephones (e.g., the Blackberry Storm®), and similar personal electronic devices which include a programmable processor and memory and mobile multimedia broadcast receiver circuitry for receiving and processing mobile multimedia broadcast transmissions.
The word “broadcast” is used herein to mean the transmission of data (information packets) so that it can be received by a large number of receiving devices simultaneously. Examples of a broadcast message are mobile television service broadcast signals, including content broadcasts (content flow) and overhead information broadcasts (overhead flow) such as metadata messages.
The word “unicast” is used herein to refer to a wireless data transmission that is directed to a single receiver device. In contrast to a broadcast network, a “unicast network” refers to a wireless communication network that sends and receives transmissions to and from individual wireless communication devices. Examples of unicast networks that may be used with the various embodiments include cellular communication networks (e.g., third generation (3G) cellular data networks), WiFi networks, and WiMax networks.
The word “web server” is used herein to mean an application or group of applications capable of receiving a Hypertext Transfer Protocol (HTTP) request and returning an appropriate HTTP response, such as providing a Hypertext Markup Language (HTML) file. A web server may include middleware or an application portion, such as a J2EE® server, an ASP® server, a PHP module, a PERL interpreter, or similar functionality. A web server may also include a data storage portion, such as a database management system (DBMS) or local file store. A web server may be implemented within a conventional server, but in the various embodiments a web server is also implemented within a receiver device.
The various embodiments provide bandwidth efficient mechanisms for delivering data to receiver devices via a wireless multimedia broadcast network so that the data can be assembled in the receiver device by a local application. The various embodiments may be particularly useful for delivering Internet webpages to mobile devices since a wireless broadcast network provides an efficient delivery mechanism that can be levered for delivering popular Internet websites. Data files, such as webpage contents of selected webpages such as may be hosted on local networks or the Internet, are broadcast as disassembled content elements via the broadcast network. To enable reception, the disassembled content elements are broadcast according to a broadcast schedule that is communicated in an overhead content description flow, such as an electronic catalog. Receiver devices receive the overhead content description flow and use the metadata information to selectively receive the disassembled webpage content and store the content elements in memory. When a user requests access to a file, such as an Internet webpage via a web browser, a local application, such as a web server application operating in the receiver device, assembles the requested file (e.g., webpage) from the previously received and stored disassembled content elements (e.g., webpage content elements), and passes the assembled file (e.g., requested webpage) to the requesting application (e.g., a web browser). The local application then uses the file as if it had been downloaded directly from a network connection. In the case of web content, the local application is the web browser which presents the requested webpage to the user as if it had been received from a remote Internet server. The local web server may combine webpage elements received from both broadcast and unicast networks and present the documents (e.g., webpages) to the user in a seamless manner. In a typical situation, most of the data may be received from the broadcast network and only a small portion of the webpage content from the unicast network.
The various embodiments have a wide variety of potential applications for delivering rich media content to mobile receiver devices via a broadcast network. The large bandwidth of broadcast networks can be leveraged to transmit large media content files to receiver devices. By accomplishing the assembly of rich media content into a form that is presented to a user of utilized by a local application within receiver device, the delivery of rich media content in the form of broadcast content elements can more efficiently utilize bandwidth and enable receiver devices to conserve battery power. This is especially the case when portions of the rich media content are updated regularly while other portions are updated infrequently or not at all, since only the updated media content elements need to be broadcast regularly and receiver devices do not have to activate their receiver circuitry to receive media content elements already received and stored in memory. Once received and stored in memory, the media content elements may be used by a local application to use or present the content to the user in the required or preferred format, such as webpages, native application content, e-books, etc. Since the downloading and storage of the media content elements occurs in the background, the user need not be aware that the content is being received. Thus, the content appears to be instantly accessed when requested by the user since it is recalled from local memory.
A particularly useful application of the various embodiments is the delivery and rendering of frequently accessed web pages. Employing the various embodiments, commonly accessed webpages can be displayed to a user via a web browser without the delay associated with downloading webpage content. Since the disaggregated webpage content can be broadcast during periods of greater availability of broadcast bandwidth (i.e., during off-peak hours), the embodiments enable efficient utilization of wireless bandwidth to enable webpage delivery via a broadcast network instead of via a unicast network. Since a large portion of Internet traffic involves a limited number of popular websites, the various embodiments enable delivery of the most frequently accessed webpages to a large number of mobile devices in a bandwidth-efficient and power-efficient manner. Since the web server is hosted on the mobile device, the various embodiments can dynamically generate personalized web pages from the broadcast content elements which can be displayed using a standard browser. If content elements for a requested webpage have not been received via the broadcast network, the receiver device may request delivery of the webpage via conventional wireless Internet access protocols and communication systems.
For ease of reference, the various embodiments are described below using the example application of Internet web content delivery. This application illustrates functioning of the various embodiments using common terminology. However, the following descriptions are not intended to limit the embodiments to Internet web content delivery. One having ordinary skill in the art would appreciate that the various embodiments may also be used for delivering a variety of rich media content. Accordingly, the scope of the claims should not be limited to Internet web content delivery and reception unless specifically recited.
A number of different mobile broadcast television services and broadcast standards are available or contemplated in the future, all of which may implement and benefit from the various embodiments. Such services and standards include, e.g., Open Mobile Alliance Mobile Broadcast Services Enabler Suite (OMA BCAST), MediaFLO, Digital Video Broadcast IP Datacasting (DVB-IPDC), Digital Video Broadcasting-Handheld (DVB-H), Digital Video Broadcasting-Satellite services to Handhelds (DVB-SH), Digital Video Broadcasting-Handheld 2 (DVB-H2), Advanced Television Systems Committee-Mobile/Handheld (ATSC-M/H), and China Multimedia Mobile Broadcasting (CMMB).
Popular web content may be suitable for distribution over a broadcast wireless network (versus a unicast network) since a large portion of common web page requests are directed to a relatively small number of Internet content providers. For example, popular web sites providing frequently accessed content, such as news, weather, traffic, current events, and public announcements, may be delivered to mobile devices using the various embodiments, enabling the content to be broadcast efficiently (in terms of bandwidth utilization and receiver device battery power consumption) while providing users with near-instant access to web pages. A broadcast network provider, working with a small number of popular web content providers, can provide a sufficient variety of content using the efficient website data delivery mechanisms of the various embodiments. A broadcast network, such as those incorporating Qualcomm's MediaFLO® technologies, can efficiently deliver the web content according to the various embodiments to an unlimited number of users. When a mobile receiver device user accesses a broadcast website (e.g., by entering in the URL of the website), the web server functioning within the receiver device may rapidly generate the requested website from content modules stored in memory without delays associated with requesting and receiving the web page from a remote server. If a user accesses a website to request display of a web page that is not broadcast according to the embodiments, the user's receiver device may obtain the requested web page from a remote server via a unicast wireless network.
In the various embodiments, the receiver device may automatically monitor the broadcast network for scheduled broadcasts of webpage content elements, and selectively receive and store webpage content elements for websites that the user is interested in receiving. In a typical embodiment, this process may be done in the background. When a user of the receiver device enters a command to view a particular webpage (e.g., by entering the websites name or selecting the corresponding URL), the web server application within the receiver device assembles the requested webpage and presents it to a standard web browser or other application (e.g., a widget) for viewing. The presented web content may be dynamic and interactive, and have the same look-and-feel as the regular webpage downloaded from the Internet via a unicast wireless network or a wired network connection. Since the webpage content elements are locally stored, the requested webpage may be assembled and displayed very rapidly. Thus, from the user's perspective, the receiver device appears to have very high-speed Internet access capability for webpages that were previously received as disassembled webpage content elements. This may provide a significant improvement in the user experience over traditional mobile web browsers, since web pages typically take 20 seconds or more to download over a 3G link, which is in addition to any server delays.
By transmitting webpage content as disassembled elements, the various embodiments reduce the amount of information that needs to be broadcast to and saved by receiver devices. One reason for this is that webpages typically reuse large amounts of content each time they are rendered. Popular webpages tend to reuse standard graphics, e.g., logos, banners and stock images. Also, most commercial webpages assemble content according to standard templates which specify where individual content elements are to be presented on the page and the manner in which it should be displayed (e.g., font size and color), as well as background colors, shading and textures. In the various embodiments, webpages may also be assembled using known mechanisms other than templates, such as a program running on the web server on the receiver device to generate webpages according to logic implemented in the program. Such programs may be preloaded on the receiver device, received via period transmission by the broadcast network, from a unicast network, or via a software upload, such as from a processor-readable storage medium. In the various embodiments, such reused graphics and templates can be broadcast infrequently or downloaded one time via a unicast network (such as part of a website registration process) and stored in memory of the receiver devices. Thereafter, only the content elements (e.g., text files) need to be broadcast to enable receiver devices to present the webpages in response to user access requests. The web server operating in the receiver device assembles the requested webpage into the necessary HTML document using the pre-stored templates, standard graphics and content files, and locally provides the assembled webpage to the web browser. Thus, accessing a common webpage does not require the entire webpage to be transmitted as a complete HTML document. Further, since webpage content elements are broadcast to all receiver devices, the amount of bandwidth consumed to deliver those websites is fixed no matter how many times users access any one or all of the websites.
The various embodiments may be implemented within a variety of mobile multi-media broadcast systems, an example of which is illustrated in
As part of this content delivery system, the mobile broadcast network 1 may also include a web content server 5 for managing webpage content elements for broadcast via the mobile broadcast network 1 according to the various embodiments. The web content server 5 may receive webpage content elements, such as text files, images, graphics, CSS files, JavaScript® files, JPEG media files, Flash® media files, and templates, from a website hosting server 9, either via a direct network connection or an indirect network connection, such as the Internet 7. In some implementations, the web content server 5 may periodically access a website hosting server 9 to download the latest webpage content. In some implementations the website hosting server 9 may periodically push updated webpage content elements to the web content server 5. In some implementations, the web content server 5 may receive updated webpage content elements both by accessing websites and by receiving content pushed to it by website hosting servers 9. The generation of web content in the website hosting server 9 may be accomplished in the ordinary manner that website content is generated and hosted.
In addition to the mobile multimedia broadcast network 1, receiver devices 10 may also be configured for duplex communication via a unicast network 11, such as a 3G cellular telephone network or a WiFi wireless network (e.g., a WiFi “hotspot”). A typical cellular telephone network includes a plurality of cellular base stations 12 coupled to a network operations center 14, which operates to connect voice and data calls between mobile devices 10 and other network destinations, such as via telephone land lines (e.g., a POTS network, not shown) and the Internet 7. Communications between mobile devices 10 and the unicast network 11 may be accomplished via two-way wireless communication links 13, such as 3G, CDMA, TDMA, and other cellular telephone communication technologies, as well as wireless wide area network such as WiFi, WiMax, etc. To facilitate Internet data communications, the unicast network 11 alone will typically include one or more servers 16 coupled to or within the network operations center 14 that provide a connection to the Internet 7. Mobile devices 10 may communicate with the broadcast network 1 via the unicast network 11, such as via an IP data call to a broadcast network server 6 by way of the Internet 7, such as for purposes of subscribing to broadcast services (e.g., subscribing to broadcast web services) and reporting user viewing patterns. Additionally, mobile device users can access the Internet 7 via the unicast network 11, such as to download webpages that are not broadcast per one of the various embodiments. The unicast network 11 may also be used to subscribe to broadcast web services enabled by the various embodiments, including downloading of templates, stock graphics and other content elements that are reused by subscribed-to websites.
An example of how a typical web server processes web content to create a web page is illustrated in
The server side scripts 66 often comprise the middleware or application level of a web site and for a typical ecommerce website or similarly complex web application, the server side scripts 66 contains a large portion of the code required to process transactions. In a typical content-based website, the server side scripts 66 may perform a more limited role such as selecting the appropriate content based on user preferences (e.g., selecting which news stories to display on the main page based on past browsing history). In a further simplified example, the server side scripts 66 may merely query a database for the most up to date information, but not customize the webpage 68 based on the user. The server side scripts 66 may be script files containing code in languages such as PHP, ASP®, PERL, PYTHON, but they may be compiled code originally written in a language such as JSP®, ASP.NET®, Java® or C++, or a combination of scripted and compiled code.
The page templates 64 may be utilized for properly formatting the web page 68. A typical website may have many page templates 64, including some that are only executed when generating a webpage 68 intended for display on a mobile device. While the page templates 64 may include static HTML code segments, they often include server-side code such as PHP. The distinction between a page template 64, a server side scripts 66 and raw content 62 is primarily functional in that both the page template 64 and the raw content 62 may be executable computer code rather than pure data, or a combination thereof. As used herein, a page template 64 refers to the data and code primarily used to generate a web page while raw content 62 refers to the data and code which is frequently and/or periodically updated and may be suitable for use in various circumstances beyond web sites.
An example of a conventional process by which a web content provider can dynamically generate a web page based on a user request is illustrated in
As
In contrast to the conventional webpage delivery process illustrated in
The various embodiments may utilize a web browser 31, a web server 32, and a local data store 33 to dynamically generate web content, as shown in
Further, webpages may be generated by the local application (e.g., local web server) using methods other than templates. For example, webpages may also be assembled by a program running on the local web server on the receiver device to generate webpages according to logic implemented in the program. Such programs may be preloaded on the receiver device, received via period transmission by the broadcast network, from a unicast network, or via a software upload, such as from a processor-readable storage medium. Such programs for particular webpage may include an address of a remote server which may be contacted via a network. This address of the remote server may be different from the web flow identifier and the Internet URL for the website.
To broadcast webpage content elements to mobile devices, the various embodiments may utilize methods similar to how other content is broadcast to mobile receiver devices in a mobile multimedia broadcast network.
A typical mobile multimedia broadcast network transmits content on a plurality of different channels or flows, thereby enabling several different programs to be broadcast simultaneously. Due to the nature of the broadcast transmission waveform, the plurality of different channels or flows may be carried over the same radio frequency spectrum, but include a structure and information that enables each of the channels or flows to be selected and received by the mobile devices 10. Individual channels or flows may be identified by an address or a flow identifier (ID). Information within the content description flow enables mobile devices 10 to determine the particular address in order to receive particular content.
Mobile devices 10 receive the broadcast transmissions and are able to separately process the broadcast web page content element transmissions 26 and the content description packet transmissions 28. Specifically, mobile devices 10 monitor the broadcast overhead flows to receive broadcast catalogs and content packet descriptions as part of determining the portion of the broadcast signal to be received. By monitoring the content package description flow, receiver devices 10 are able to identify those webpage content elements that are of interest to a user (e.g., having an ID matching webpages or webpage services to which the user has subscribed) and activate a receiver at the designated broadcast time to access the designated flow ID in order to receive the web page content elements.
In order to enable mobile devices 10 to receive broadcast webpage content elements, the content package descriptions for the webpage content elements may be broadcast in advance in a manner similar to how other content catalogs are broadcast. The timing relationship between content package description broadcasts on the content description flow and the corresponding webpage content element package broadcasts on the content flow is illustrated in
It should be noted that the webpage ID used by the transport layer to identify webpage content elements and used by the receiver devices to selectively received content of interest in most cases will be different from the webpage's normal Internet URL (in the case of an Internet website). For example, an element for a CNN news article might have as its identifier “/web/cnn/article—10” instead of the URL for the article that would be used to access the webpage via the Internet. However, in some implementations the webpage URL may be used as the identifier or as part of the webpage identifier.
Broadcasting webpage content elements in preannounced broadcast windows enables receiver devices to conserve battery power, since they only need to activate their receiver circuitry when a required webpage content element is to be broadcast. Thus, the various embodiments enable a broadcast network to broadcast webpage content elements for a large number of websites without reducing the effective battery life of receiver devices since devices only received the broadcast content for which the user has expressed an interest, such as by subscribing to a particular website.
In order to efficiently communicate content description information in a reliable communication package, content package description messages may generated according to an information processing algorithm that condenses the content information and formats it into a broadcast format that can be received with low error rates even in a noisy environment.
The amount of web content that may be broadcast by a broadcast network implementing the various embodiments may be too great to be stored in memory of a typical mobile device. Thus, in a typical implementation, a mobile device may select a subset of the broadcast web content for reception and downloaded. Broadcast web content may be divided into one or more “web flows,” which refer to broadcasts of webpage content element packages related to a given website or series of websites. Content from each web content provider may be organized a web flow. For example, a News Central web flow (i.e., the web flow corresponding to content provided by the hypothetical website News Central) may comprise the broadcasts of webpage content element packages including a main page template or program which can display the latest headlines corresponding to news stories stored in the local data store, an article template or program for formatting and displaying a raw news story, standard graphics or banners for the website, and the various data updates that include the raw news stories and images. In some embodiments, users may select or subscribe to web flows they wish to access. Selecting or subscribing to a web flow informs their receiver device about the webpage content element packages to receive and store, namely the webpage content element packages associated with the selected or subscribed web flows. In a further embodiment, receiver devices may be configured to automatically subscribe to certain web flows based on any number of determine mobile parameters, such as customer demographics, user's browsing history, and/or marketing initiatives of the mobile broadcast network service provider. In some embodiments, a user may be able to subscribe to only a portion of a web flow. Returning to the News Central example, a user might wish to subscribe to only top news stories, top sports stories, stories containing the word “Qualcomm,” and/or editorials from a certain writer. So configured, a receiver device would only receive those webpage content element packages with webpage IDs and object IDs (or other filtering criteria) that match the webpage IDs and object IDs associated with the subscribed to portions.
A method 700 for determining which broadcast web content to receive is shown in
In some embodiments, a content description may indicate a plurality of broadcast times and flow IDs when broadcasters broadcast the same content multiple times to provide redundancy in the event that the mobile device cannot receive a broadcast (e.g., due to lack of battery power or signal power). By comparing the information regarding broadcast webpage content element packages included in the content description flow to the webpage content elements stored in memory, mobile devices can avoid the unnecessary power drain from downloading redundant copies of content elements. Therefore, if the content descriptions match a local subscription criterion, the mobile device may access a version number of the matching content description within the content description and compare it to a version number of the same or similar content stored in memory in step 720. Based upon this comparison, the mobile device may determine whether the matching content description corresponds to a webpage content element that has not already been received in determination step 724. If the information in the content description enables the receiver device to determine that the webpage content element package is already stored in memory (i.e., determination step 724=“no”), the mobile device may await the next update of the content description flow by returning to step 708.
If the information in the content description enables the receiver device to determine that the webpage content element package is not stored in memory, and therefore should be received, (i.e., determination step 724=“yes”), the mobile device may determine from the content description the time and channel of the matching webpage content element package broadcast in step 728. The mobile device may store the broadcast time and channel information in a command queue that allows the mobile device to energize the broadcast receiver at the appointed time to receive the selected content in step 732. Received webpage content element packages may be decoded, error corrected and stored in the local data storage in step 736.
The various steps in the method 700 may occur asynchronously or in different order than shown in
In a typical embodiment, the template or program portions of the web content may be broadcast periodically, regardless of whether they have been recently updated. Example message flows 800 of transmissions that may be implemented for broadcasting webpage content elements is illustrated in
In some embodiments, the mobile device may be configured to both receive transmissions from a mobile multimedia broadcast network and communicate via a unicast network (e.g., a 3G data network). The broadcast web environment enabled by the various embodiments may complement a unicast data network by providing a faster and more bandwidth-efficient web browsing experience for commonly accessed websites, while the unicast network enables users to subscribe to particular broadcast web flows or websites as well as access websites that are not supported by the broadcast network. For example, a mobile device configured to access the Internet via a unicast network may download the templates/programs and webpage content elements using the unicast network the first time a website or web flow is selected by a user in order to quickly make the site available for browsing. Example methods suitable for use with a unicast network are illustrated in
An embodiment method 900 for receiving templates/programs and webpage content elements for a newly subscribed to web flow via a unicast network is illustrated in
While
If the mobile device determines that it does not have a unicast network connection (i.e., determination step 908=“no”), the mobile device may obtain the necessary template/program and webpage content elements from the broadcast web flows by performing operations similar to those described above with reference to
In some implementations, webpage data or files may be considered stale if updated data has not been received within a predefined number of hours. The threshold for stale data may be determined by user preferences, mobile network operator preferences, and/or content provider preferences, such as may be indicated in the webpage template or program. Webpage data may become stale if the user turns off the mobile device for a period of time such that it is unable to download periodic updates as described above with reference to
In method 1000 in step 1004, the mobile device may receive a user request to load a webpage. The mobile device may load a default template or program for that webpage from local memory in step 1008. The mobile device may determine from the webpage template or program any data or files that are required to generate the requested webpage (e.g., the most recent top news headlines) in step 1012. The mobile device may access the local memory to obtain the required data or files in step 1016. In determination step 1020, the mobile device may determine whether any of the obtained data or files is stale (i.e., whether the data is older than a threshold value that may be specified in the template or program). The mobile device may determine the age of the data or file by comparing a date and time of value associated with the webpage data or file to a current time. If the mobile device determines that an obtained data or file is stale (i.e., determination step 1020=“yes”), the mobile device may determine whether there is a unicast network connection available in determination step 1024. If the mobile device can access a unicast network (i.e., determination step 1024=“yes”), the mobile device may access the unicast network and transmit an HTTP message via the unicast network to an appropriate server requesting updated webpage content elements in step 1036. If the webpage content elements for the requested website or webpage are broadcast as part of a web flow, the mobile device may direct the HTTP request message to the web content server of the broadcast network requesting updated webpage content elements associated with the corresponding web flow. The address of the web content server may have been stored in memory as part of the procedure of subscribing to the particular web flow. If the webpage content elements for the requested website or webpage are not broadcast as part of a web flow, the mobile device may direct the HTTP request message to the URL of the of the remote server supporting the website or webpage. In step 1040, the mobile device may receive the updated webpage content elements via the unicast network connection. The mobile device may continue processing the template/program in step 1044 to generate the webpage, and display it to the user in step 1048. If the webpage data or files are either not stale (i.e., determination step 1020=“no”) or there is no available unicast network connection (i.e., determination step 1024=“no”), the mobile device may continue processing the template/program using the locally obtained data and files (i.e., stale data) by proceeding directly to step 1044, and generate the webpage and display it to the user in step 1048.
In a further aspect, the local web server may be configured to use both the broadcast and unicast communication networks to provide websites to users while leveraging the efficient transmission capabilities of the broadcast network. In this aspect, webpage elements for subscribed websites may be downloaded regularly as described above. When a user asks to access a particular website the local web server may contact a remote server supporting that website via the unicast network to obtain an up to the minute listing of webpages associated with the site and present the listing to the user. When a user selects a particular page for viewing, the local web server generates the requested webpage using webpage elements stored in memory, if available, and if not in memory (i.e., the webpage elements have not yet been received via the broadcast network), the local web server obtains the required webpage elements via the unicast network and then generates the webpage. Thus, in this aspect, the local web server determines whether the webpage elements for the requested webpage are available in memory, and if not, the local web server obtains them via the unicast network (if available).
This aspect is illustrated in
In block 1114 the web server provides the list (obtained either from memory in block 1112 or received from the remote server in block 1110) of available webpages for the requested website to the web browser for display to the user. In block 1116 the web browser may receive a user input in the form of selection of one of the listed webpages. The web browser may pass the user selection information (e.g., in the form of a URL access request) to the local web server. In determination block 1118 the local web server may determine whether the webpage elements necessary to generate the selected webpage are stored in memory. If the selected webpage elements are not stored in memory (i.e., determination step 1118=“no”), the local web server may use the unicast network to access the remote server supporting the requested website and send an HTTP (or similar) request message requesting the updated webpage content elements for the selected webpage in block 1120. In block 1122, the local web server may receive the requested webpage elements and store them in memory.
If the requested webpage is supported by webpage elements stored in memory (i.e., determination step 1118=“yes”) or after receiving requested webpage elements in block 1122, the local web server may process the template or program for the requested webpage using the webpage elements stored in memory in block 1124. In block 1126 the local web server generates the requested webpage and passes the generated web page to the web browser for display to the user.
In a typical implementation of this aspect, a user may enter a command (e.g., select a browser hyperlink to a webpage) or type in a website name (e.g., “CNN” or “cnn.com”) to access a particular website, such as a news site hosted by the local web server which may have a local URL different from the URL of the website typically accessed on the Internet (e.g., http://localhost:8080/com). The template or program in charge of the news site on the local web server may send a list of news articles it currently has stored in memory to the remote web server via the unicast to a web address that may be embedded in the program. The remote web server may compare the received list against a current status of the new site to check if there are any news article webpage elements missing from the receiver device's list. If so, the remote server may transmit back a response message via the unicast network providing a list of news articles that are missing from the local list (i.e., the list of article webpage elements stored in memory). The local web server may then present the list of article webpage elements (e.g., CNN news articles) to the user. For example, the list may include webpage IDs or titles for article webpage elements that are not currently on the local web server. If the user clicks one of the missing webpage names or titles, the local web server may access the unicast network to download the corresponding content elements from the remote server, generate the web page from the received webpage elements and present the webpage to the user. In various aspects the URL used to access the element is a “local” URL (e.g., http://localhost:8080/cnn/article—10), and not a remote URL (e.g., http://cnn.com/article—10). In this manner a user may have the flexibility to select the remote web page directly. In the special case of the web server acting as a web proxy, the URL may be a remote URL.
The various embodiment methods for receiving and processing interactivity event signaling messages may be performed by the multimedia broadcast receiver 1208 and portions of the processor 1201 and memory 1202. Alternatively, dedicated modules within or coupled to the multimedia broadcast receiver 1208 may perform the embodiment methods.
The various embodiments on the broadcast side described above may be implemented on any of a variety of commercially available server devices, such as the server 1300 illustrated in
The processors 1201, 1301 may be any programmable microprocessor, microcomputer or multiple processor chip or chips that can be configured by software instructions (applications) to perform a variety of functions, including the functions of the various embodiments described below. In some mobile receiver devices, multiple processors 1301 may be provided, such as one processor dedicated to wireless communication functions and one processor dedicated to running other applications. Typically, software applications may be stored in the internal memory 1202, 1302, 1303 before they are accessed and loaded into the processor 1201, 1301. The processor 1201, 1301 may include internal memory sufficient to store the application software instructions.
As discussed above, the various embodiments may be used for delivering a variety of rich media content, and not just Internet web content. Accordingly, the scope of the claims should not be limited to Internet web content delivery and reception unless specifically recited.
The foregoing method descriptions and the process flow diagrams are provided merely as illustrative examples and are not intended to require or imply that the steps of the various embodiments must be performed in the order presented. As will be appreciated by one of skill in the art the order of steps in the foregoing embodiments may be performed in any order. Words such as “thereafter,” “then,” “next,” etc. are not intended to limit the order of the steps; these words are simply used to guide the reader through the description of the methods. Further, any reference to claim elements in the singular, for example, using the articles “a,” “an” or “the” is not to be construed as limiting the element to the singular.
The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
The hardware used to implement the various illustrative logics, logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration. Alternatively, some steps or methods may be performed by circuitry that is specific to a given function.
In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the functions may be stored as one or more instructions or code on a non-transitory computer-readable storage medium. The steps of a method or algorithm disclosed herein may be embodied in a processor-executable software module executed which may reside on a tangible or non-transitory computer-readable storage medium. Non-transitory computer-readable storage media may be any available storage media that may be accessed by a computer. By way of example, and not limitation, such computer-readable media may comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that may be used to carry or store desired program code in the form of instructions or data structures and that may be accessed by a computer. Disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk, and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above also can be included within the scope of non-transitory computer-readable media. Additionally, the operations of a method or algorithm may reside as one or any combination or set of codes and/or instructions on a non-transitory machine readable medium and/or non-transitory computer-readable medium, which may be incorporated into a computer program product.
The preceding description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein.