Embodiments of the present invention relate generally to mobile communication technology and, more particularly, relate to methods, apparatuses, computer program products, and systems for delivering web pages to mobile devices.
The modern communications era has brought about a tremendous expansion of wireline and wireless networks. Computer networks, television networks, and telephony networks are experiencing an unprecedented technological expansion, fueled by consumer demand. Wireless and mobile networking technologies have addressed related consumer demands, while providing more flexibility and immediacy of information transfer.
This explosive growth of mobile communications networks has allowed for widespread distribution of Internet content even to mobile devices in remote locations. However, one area in which there is a demand for further improvement is the delivery of web content to mobile devices over mobile networks in a functional form that is useful to a user of a mobile device while doing so with improved efficiency in terms of required network bandwidth and transmission time.
As mobile networking technologies have improved, so too have the mobile devices which communicate over mobile networks. Performance enhancements and continued miniaturization of central processing units (CPUs) and other components used in mobile devices in conjunction with improving mobile networks have allowed mobile devices to execute many of the functions traditionally limited to the realm of larger personal computing devices. One such function which is now commonly executed by mobile devices is web browsing.
However, the experience of mobile device users browsing the web on their mobile devices may not always be the best. Mobile networks often have less bandwidth and thus lower data transmission rates than the broadband connections many consumers are used to using on their desktop computers for browsing the web. Moreover, web browsing is some times inherently slowed when performed over mobile communications networks due to various adaptations which must occur to allow for HTTP communication over the protocols standard to some mobile networks. Thus, the slower data transmission rates of mobile networks present an inconvenience for users of mobile web browsers, who often face a noticeable delay between submitting a request to fetch a web page and display of the web page on their mobile device, especially for more complex web pages, which may contain several image files, Cascading Style Sheets (CSS), and dynamic HTML and JavaScript (also known as Ajax) elements, which are slow to load on mobile data networks because of high latency for each individual request. In addition to the frustration and inconvenience that the long delay between page request and display may incur, a user may also be faced with a potentially high cost for data consumed when downloading complex web pages to a device via network links that charge the user at a rate based upon the amount of data transferred.
Heretofore, a mobile device user has had several choices for browsing web pages on his mobile device. One option available to a mobile device user is to use a full web browser on the mobile device to directly fetch the original, full version of web pages. A full browser on a mobile device can display a web page similarly to a desktop browser with the exceptions of being slower as discussed above as well as the potential difficulties associated with viewing and interacting with the page on a device with a small screen and limited input methods. As it is a full web browser, the browser must necessarily fetch all of the original data comprising a web page, which may be quite large, often in excess of 512 KB, which includes all HTML, CSS, script, and image files comprising the web page. Thus using a full browser to view more complex web pages may often be slow and quite expensive in terms of both network usage and monetary cost to the user for data transfer and there is the potential that the full web page version may be cumbersome to view and interact with on a mobile device due to the small screen size and limited means of input. However, this may be the most feasible means for using many interactive web pages that depend on a full-featured web browser for their functionality.
A second option available to a mobile device user is to use a web browser or a wireless application protocol (WAP) browser on the device to fetch pages via an adaptation proxy, which transcodes the original HTML page to a simpler form of HTML with a goal of accelerating display of the page and reducing the size of the data that must be sent to a mobile device. The adaptation proxy may eliminate or reduce images, CSS styling, and interactive script. This elimination or reduction of some of the more complex and data intensive elements of the original web page may result in the transcoded version displayed on a mobile device having a much different appearance than the original web page displayed on a desktop browser. Generally, the rich, interactive features of the page are dropped and in some cases dropping these features may result in the transcoded version displayed on a mobile device being non-functional for a mobile device user. For example, the page may contain a form that uses JavaScript to check its values or to submit the form, and that function may not work on the transcoded page, making it impossible to submit the form. The page may have a sophisticated layout that is understandable when viewed in its original full mode, but becomes confusing when adapted by the server. Thus, while adapting web pages may result in decreased latency between the initial request to fetch a web page and subsequent display of the page by reducing the data that must be sent, frequently mobile device users may find that the adapted version displayed on their mobile device is not fully usable.
A third option currently available is to use a server-side browsing client that uses a server running a full web browser to perform the complex, data-intensive tasks of fetching and displaying a web page. After processing and rendering the page, the server sends the displayable results to a small client in the mobile device, resulting in faster display and smaller data size. However, with many server-side browsing clients, the user cannot use most rich interactive features that may be embedded in the web page because the client simply displays the results from the server-side browser. As such, the user may not be able to use interactive or dynamic features of a web page, such as rollover menus, dynamic forms, streaming media plug-ins, or interactive Ajax features of the page. As the client running in the device is only capable of simple display tasks, with many server-side browsing clients, the user has no possibility to request processing and rendering of the full web page on the mobile device so that he may use the interactive features. Thus, while the use of a server-side browsing client may provide a user with an excellent experience when viewing static pages, it is often inflexible because the actual browser is running on a server and thus the user may not have an alternative when wishing to view and interact with pages containing dynamic content and as such does not provide a viable solution to the aforementioned problems currently plaguing web browsing on mobile devices.
As such, it would be desirable for a mobile device web browser to fetch and display the original, full version of web pages only when necessary because of the complex layout of a page or dynamic features, the loss of which would render a transcoded version of the web page non-functional and otherwise to fetch and display a transcoded version when a page would remain viewable and functional in its adapted form. By switching between these two techniques, the data transmitted to the mobile device could be reduced and consequently the cost in terms of time, money, and network bandwidth could be similarly reduced. Today, however, there is not a convenient method for a user to switch between full browsing and viewing transcoded web pages via a proxy. Generally, the user must first browse to a proxy site on the web browser on his mobile terminal and then request a page to be transcoded. If, however, the user finds that the transcoded version of the web page layout displays poorly or that the loss of dynamic elements of the original web page has rendered the transcoded-version non-functional, the user must then manually request the browser to fetch the full version of the web page by directly entering the URL of the website in the browser, selecting a previously stored bookmark, or selecting a “view original version” link that may be inserted by the adaptation proxy server at the bottom of the page. The user is then faced with waiting an additional amount of time and perhaps being charged an additional sum of money for data transfer as two versions of the web page will have been fetched. As such, there is currently no automatic logical determination or foresight by either the mobile device or a remote adaptation proxy server of whether a web page needs to be displayed in its full version or may be transcoded and displayed in its adapted version to reduce the amount of data that must be transmitted over the mobile network. Sole discretion is in the hands of the mobile device user and acceptable results may only be obtained through sheer luck or by leveraging the user's experience if the user has previously fetched the particular web page and knows whether the page is viewable in its adapted form or must be viewed in its full form.
Accordingly, it would be advantageous to provide methods, apparatuses, computer program products, and systems that allow for the automated determination of whether a requested web page may be fetched in its reduced data size transcoded form or must be fetched in its full, original form without imposing any unnecessary decisional burden on mobile device users.
A method, apparatus, computer program product, and system are therefore provided to improve the web browsing experience of mobile device users. In particular, a method, apparatus, computer program product, and system are provided to enable an automatic determination of whether a requested web page is functionally displayable in an adapted mobile-friendly form and as such should be transcoded by an adaptation proxy server or if it contains, for example, a complex layout or dynamic elements that would prevent an adapted version from being useable and as such should be fetched in its full, original form. Accordingly, users of mobile devices may request a web page and have an appropriate version intelligently fetched for them while saving time, money, and network bandwidth without the frustration and perils of currently available options that require mobile device users to manually determine whether to always fetch the full version or an adapted version of web pages and in some cases may result in a user who made a poor choice having to fetch both versions of a web page.
In one exemplary embodiment, a method is provided that may comprise determining whether a web page may be adapted or should be viewed in its original form, transcoding the original web page to generate a transcoded version of the web page if it is determined that the web page may be adapted, and sending data comprising either the original web page or the transcoded version to a remote device.
In another exemplary embodiment, a computer program product is provided that includes at least one computer-readable storage medium having computer-readable program code portions stored therein. The computer-readable program code portions include first, second, and third executable portions. The first executable portion is for determining whether a web page may be adapted or should be viewed in its original form. The second executable portion is for transcoding the original web page to generate a transcoded version of the web page if it is determined that the web page may be adapted. The third executable portion is for sending data comprising either the original web page or the transcoded version to a remote device.
In another exemplary embodiment, an apparatus for generating a digital media file from a source file is provided. The apparatus may include a processor. The processor may be configured to determine whether a web page may be adapted or should be viewed in its original form, transcode the original web page to generate a transcoded version of the web page if it is determined that the web page may be adapted, and send data comprising either the original web page or the transcoded version to a remote device.
In another exemplary embodiment, a system is provided comprising a computing device configured to receive a request for a web page from a remote device and to determine whether to send either the original web page or a transcoded version of the web page to the remote device. The computing device is further configured to transcode the original web page to generate a transcoded version of the web page if the computing device determines that a transcoded version of the web page may be sent to the remote device. The system of this embodiment also includes a device executing a web browser application configured to send a request for a web page to the computing device and to receive one or both of the original web page or the transcoded version of the web page.
In another exemplary embodiment, an apparatus is provided comprising means for determining whether a web page may be adapted or should be viewed in its original form, means for transcoding the original web page to generate a transcoded version of the web page if it is determined that the web page may be adapted, and means for sending data comprising either the original web page or the transcoded version to a remote device.
Embodiments of the invention may therefore provide a method, apparatus, computer program product, and system for receiving a request for a web page from a remote device, determining whether the web page may be adapted and if so sending a transcoded version to the remote device and if not sending the full original web page to the device. As such the web browsing experience of mobile terminal users may be vastly improved without imposing any burden on users to select whether to fetch an adapted version or the full version of a web page.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Embodiments of the present invention will now be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the invention are shown. Indeed, the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like reference numerals refer to like elements throughout.
As shown, the mobile terminal 10 includes an antenna 12 in communication with a transmitter 14, and a receiver 16. The mobile terminal also includes a controller 20 or other processor that provides signals to and receives signals from the transmitter and receiver, respectively. These signals may include signaling information in accordance with an air interface standard of an applicable cellular system, and/or any number of different wireless networking techniques, comprising but not limited to Wireless-Fidelity (Wi-Fi), wireless LAN (WLAN) techniques such as IEEE 802.11, and/or the like. In addition, these signals may include speech data, user generated data, user requested data, and/or the like. In this regard, the mobile terminal may be capable of operating with one or more air interface standards, communication protocols, modulation types, access types, and/or the like. More particularly, the mobile terminal may be capable of operating in accordance with various first generation (1G), second generation (2G), 2.5G, third-generation (3G) communication protocols, fourth-generation (4G) communication protocols, and/or the like. For example, the mobile terminal may be capable of operating in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, the mobile terminal may be capable of operating in accordance with 2.5G wireless communication protocols GPRS, EDGE, or the like. Further, for example, the mobile terminal may be capable of operating in accordance with 3G wireless communication protocols such as UMTS network employing WCDMA radio access technology. Some NAMPS, as well as TACS, mobile terminals may also benefit from the teaching of this invention, as should dual or higher mode phones (e.g., digital/analog or TDMA/CDMA/analog phones). Additionally, the mobile terminal 10 may be capable of operating according to Wireless Fidelity (Wi-Fi) protocols. It will be appreciated that the above protocols are merely for purposes of example and the mobile terminal 10 is not limited to operation in accordance with the listed example protocols. The mobile terminal 10 may operate with any current or future wireless data technology protocols.
It is understood that the controller 20 may comprise the circuitry required for implementing audio and logic functions of the mobile terminal 10. For example, the controller 20 may be a digital signal processor device, a microprocessor device, an analog-to-digital converter, a digital-to-analog converter, and/or the like. Control and signal processing functions of the mobile terminal may be allocated between these devices according to their respective capabilities. The controller may additionally comprise an internal voice coder (VC) 22a, an internal data modem (DM) 22b, and/or the like. Further, the controller may comprise functionality to operate one or more software programs, which may be stored in memory. For example, the controller 20 may be capable of operating a connectivity program, such as a Web browser. The connectivity program may allow the mobile terminal 10 to transmit and receive Web content, such as location-based content, according to a protocol, such as Wireless Application Protocol (WAP), hypertext transfer protocol (HTTP), and/or the like. The mobile terminal 10 may be capable of using a Transmission Control Protocol/Internet Protocol (TCP/IP) to transmit and receive Web content across Internet 50.
The mobile terminal 10 may also comprise a user interface including a conventional earphone or speaker 24, a ringer 22, a microphone 26, a display 28, a user input interface, and/or the like, which may be coupled to the controller 20. Although not shown, the mobile terminal may comprise a battery for powering various circuits related to the mobile terminal, for example, a circuit to provide mechanical vibration as a detectable output. The user input interface may comprise devices allowing the mobile terminal to receive data, such as a keypad 30, a touch display (not shown), a joystick (not shown), and/or other input device. In embodiments including a keypad, the keypad may comprise conventional numeric (0-9) and related keys (#, *), and/or other keys for operating the mobile terminal.
As shown in
The mobile terminal 10 may comprise memory, such as a subscriber identity module (SIM) 38, a removable user identity module (R-UIM), and/or the like, which may store information elements related to a mobile subscriber. In addition to the SIM, the mobile terminal may comprise other removable and/or fixed memory. In this regard, the mobile terminal may comprise volatile memory 40, such as volatile Random Access Memory (RAM), which may comprise a cache area for temporary storage of data. The mobile terminal may comprise other non-volatile memory 42, which may be embedded and/or may be removable. The non-volatile memory may comprise an EEPROM, flash memory, and/or the like. The memories may store one or more software programs, instructions, pieces of information, data, and/or the like which may be used by the mobile terminal for performing functions of the mobile terminal. For example, the memories may comprise an identifier, such as an international mobile equipment identification (IMEI) code, capable of uniquely identifying the mobile terminal 10.
Referring now to
The MSC 46 may be coupled to a data network, such as a local area network (LAN), a metropolitan area network (MAN), and/or a wide area network (WAN). The MSC 46 may be directly coupled to the data network. In one typical embodiment, however, the MSC 46 may be coupled to a GTW 48, and the GTW 48 may be coupled to a WAN, such as the Internet 50. In turn, devices such as processing elements (e.g., personal computers, server computers or the like) may be coupled to the mobile terminal 10 via the Internet 50. For example, as explained below, the processing elements may include one or more processing elements associated with a computing system 52 (two shown in
As shown in
In addition, by coupling the SGSN 56 to the GPRS core network 58 and the GGSN 60, devices such as a computing system 52 and/or origin server 54 may be coupled to the mobile terminal 10 via the Internet 50, SGSN 56 and GGSN 60. In this regard, devices such as the computing system 52 and/or origin server 54 may communicate with the mobile terminal 10 across the SGSN 56, GPRS core network 58 and the GGSN 60. By directly or indirectly connecting mobile terminals 10 and the other devices (e.g., computing system 52, origin server 54, etc.) to the Internet 50, the mobile terminals 10 may communicate with the other devices and with one another, such as according to the Hypertext Transfer Protocol (HTTP), to thereby carry out various functions of the mobile terminals 10.
Although not every element of every possible mobile network is shown in
As depicted in
Although not shown in
For purposes of the ensuing description of embodiments of the invention, embodiments of the invention will be discussed in conjunction with the mobile terminal 10 of
Referring now to
In an exemplary embodiment, the mode user interface 510 may further be configured to allow a user to select a preferred mode for display. The user selected mode of preferred display may be locked so that all subsequent webpage fetches result in the fetching and display of web pages in the preferred mode. Alternatively, the user selected mode of preferred display may be limited to the current web page and a user may make similar selections in conjunction with the fetching and display of subsequent web pages. In addition, the mode user interface 510 may be further configured so that if a currently displayed web page is displayed in a mode that is not suitable, such as if an adapted version of the web page is displayed and it is non-functional, a user of the device 500 may request that the alternative version of the web page, such as the full web page, be fetched and displayed in response to the request. The mode user interface 510 may be configured to transmit a user selected mode over a network communication link, such as any of the communication links shown in the system of
The user device 500 may also include a viewer for server output (“viewer”) 506. The viewer 506 may be embodied in any device or means embodied in either hardware, software, or a combination of hardware and software. The viewer 506 may, for example, be embodied in software that may be executed on or otherwise controlled by the processor, such as for example, the controller 20 of the mobile terminal 10. The viewer 506 may be configured to receive data comprising an adapted version of a web page over a network communication link, such as any of the communication links shown in the system of
The user device 500 may further include a client-browser engine (“client-browser”) 508. The client-browser 508 may be embodied in any device or means embodied in either hardware, software, or a combination of hardware and software. The client-browser 508 may, for example, be embodied in software that may be executed on or otherwise controlled by the processor, such as for example, the controller 20 of the mobile terminal 10. The client-browser 508 may be configured to receive data comprising the full original version of a web page over a network communication link, such as any of the communication links shown in the system of
Although in some embodiments, adapted versions of web pages received by the user device 500 may be in a proprietary or other format not supported by the client-browser 508, in alternative embodiments, received adapted versions of web pages may be formatted using a format supported by the client-browser 508. In such alternative embodiments, the user device 500 need not include a separate viewer for server output 506 and the client-browser engine 508 may display adapted web pages as well as full unmodified web pages.
In an exemplary embodiment, the mode user interface 510 may have access to memory 512. The memory 512 may be embodied in the user device 500, such as the non-volatile memory 42 of a mobile terminal 10. The embodiment of the invention illustrated in
In addition to the device 500, the system may include a computing device, such as an adaptation proxy server 502. The adaptation proxy server 502 generally includes a processor and in exemplary embodiments may be embodied on any device in the system of
The adaptation proxy server may include a web proxy 518. The web proxy 518 may be embodied in any device or means embodied in either hardware, software, or a combination of hardware and software. The web proxy 518 may, for example, be embodied in software that may be executed on or otherwise controlled by a processor. The web proxy 518 may be configured to receive a request to fetch a web page from the client-browser 508 of the user device 500 and to then retrieve that web page from a web-service host 504. The web-service host 504 may be a remote computing device executing a server application configured to serve a web page stored in memory thereon to remote network devices in response to a request. The web-service host 504 may be any of the devices of the system of
The adaptation proxy server 502 may further include means, such as a mode selection module 514, for determining the mode of the web page to be provided to the user device 500. The mode selection module 514 may be embodied in any device or means embodied in either hardware, software, or a combination of hardware and software. The mode selection module 514 may, for example, be embodied in software that may be executed on or otherwise controlled by a processor. The mode selection module may be in communication locally with the web proxy 518 and upon receiving data comprising a web page retrieved from a web-service host 504 may determine in which mode the adaptation proxy server 502 should return the requested web page to the user device 500.
This determination may be made by any of several means. In one embodiment, the mode selection module 514 may analyze the page contents of the requested page. In analyzing the page contents of the requested page, the mode selection module 514 may analyze the complexity of the page layout, the data size of the requested page in its original form, as well as whether the requested page contains any dynamic elements which would render the page non-functional if they were removed through transcoding. If the mode selection module 514 determines that the original version of the requested page is sizeable in terms of data transmission requirements (such as by being of a size or complexity that would likely require the transmission of more than a predefined amount of data or being of a size or complexity that would likely require more than a predefined amount of time to load, for which the predefined amount of time may be an estimated time for adapting and loading an adapted version of the web page) but that it does not possess a complex layout or dynamic elements which would render the page non-functional if transcoded, then the mode selection module 514 may select turbo mode for delivery of the content. If, however, the mode selection module 514 determines that the original version of the requested page is not sizeable and thus a user of device 500 would not experience a high latency between making the fetch request and subsequent display and as such that adapting the web page would be a waste of computing resources (such as by being of a size or complexity that would likely require the transmission of less than a predefined amount of data), the mode selection module 514 may select full mode for delivery of the web content. The mode selection module 514 may also select full mode for delivery of the requested web content if, for example, the original web page contains dynamic elements such as JavaScript or a complex layout which would not display properly if the web page was adapted and thus render an adapted version non-functional.
In an exemplary embodiment, the mode selection module 514 may further be in communication with the mode user interface 510 of the user device 500, such as via a mobile network communications link. As such, the mode selection module 514 may be configured to send an indication of the selected mode to the mode user interface 510 for display at the device 500. The mode selection module 514 may further be configured to make a mode selection based upon an indication of a mode selected or preferred by a user of the device 500, which may be received from the mode user interface 510 in conjunction with a request to fetch a web page. In an exemplary embodiment, such a user selected or preferred mode, if available, may supersede any determination of an appropriate mode made by the mode selection module 514 based upon an analysis of the content of a requested page. As discussed above, in connection with the mode user interface 510, a user selected or preferred mode may comprise either a permanent mode selection by a user, a request for a particular mode limited to a single web page request, or if the requested web page has been viewed on the device 500 previously may comprise a stored user preference for that web page or the mode in which the web page was last viewed. As such, in an exemplary embodiment, the mode selection module 514 may be configured to first determine whether the requested web page has previously been fetched by the device 500. This determination may be made in multiple ways. As previously discussed, a memory 512 on the device 500 may store a list of previously visited URLs in association with a user-expressed preferred mode for that page and/or the last mode in which the page was viewed. As such, the mode user interface 510 may be configured to determine if a mode is associated with a user requested URL from a previous viewing of the requested web page and if so send the associated mode to the mode selection module 514, which may then select the mode sent by the mode user interface 510 as the appropriate mode for display in response to the current fetch request. If, however, the mode selection module 514 logically determines, such as through analyzing the content of a requested web page as described above, that the received selected or preferred mode is not optimal, such as if the requested web page may not display or operate properly in the received selected mode, the mode selection module 514 may be configured to communicate an indication that the selected mode may be improper along with a prompt to replace the currently displayed version with an alternative version to the mode user interface 510. While the above discussion discusses the list of previously viewed web pages and associated modes being stored on the device 500, embodiments of the invention are not so limited and as such the list may be stored on memory local to the adaptation proxy server 502, such as memory 520, or on memory of another device, such as a device of the system of
The mode selection module 514 may be configured to communicate with the web proxy 518 when the mode selection module 514 determines that a requested page should be sent and viewed in full mode and to instruct means, such as the web proxy 518, to send data comprising the full, unmodified version of the requested web page to the client-browser 508 of the device 500. As such, the web proxy 518 may be configured to communicate the data over a network link, such as over one of the network links of the system of
The mode selection module 514 may further be configured to communicate with means, such as a server browser engine (“server browser”) 516, if the mode selection module 514 determines that the requested page should be sent and viewed in turbo mode and to instruct the server browser 516 to transcode the requested web page and send the transcoded version to the device 500. The server browser 516 may be embodied in any device or means embodied in either hardware, software, or a combination of hardware and software. The server browser 516 may, for example, be embodied in software that may be executed on or otherwise controlled by a processor. The server browser 516 may be configured to receive data comprising an original full web page, such as from the web proxy 518. The server browser 516 may further be configured to transcode the full web page to generate an adapted version, such as the adapted page illustrated in
In an exemplary embodiment, the adaptation proxy server 502 may include a memory 520. Although discussed for purposes of example as being local to the adaptation proxy server 502, embodiments of the invention are not so limited and the memory 520 may be located in a device remote from the adaptation proxy server 502, such as any of the devices of the system of
Although the embodiment illustrated in
Accordingly, blocks or steps of the flowcharts support combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that one or more blocks or steps of the flowcharts, and combinations of blocks or steps in the flowcharts, may be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
In this regard, one embodiment of a method of delivering web content to a user device as depicted in
If at operation 610, it is determined that a user of the requesting device has previously overridden the automatic determination mode, then the mode selection module 514 may retrieve the requesting device user's last selected display mode, at operation 650. As discussed above, the last selected display mode may comprise either a preferred mode for the requested web page previously specified by the user of the requesting device or may be a globally selected preferred display mode for all requested web pages. If adapted (also referred to as “turbo”) mode was the user's last selected display mode, then the server browser engine 516 may transcode the web page to generate an adapted version, such as that illustrated in
Referring now to
In exemplary embodiments, this method for allowing a user to request a web page in a specific mode and aggregating user preferences as illustrated in
The above described functions may be carried out in many ways. For example, any suitable means for carrying out each of the functions described above may be employed to carry out embodiments of the invention. In one embodiment, all or a portion of the elements generally operate under control of a computer program product. The computer program product for performing the methods of embodiments of the invention includes a computer-readable storage medium, such as the non-volatile storage medium, and computer-readable program code portions, such as a series of computer instructions, embodied in the computer-readable storage medium.
As such, then, embodiments of the invention provide several advantages for mobile device users who use their mobile devices to browse the web as well as mobile communications service providers who provide mobile web browsing services. From the mobile device user perspective, embodiments of the invention may result in the automatic delivery of requested web content in a desirable format based upon factors such as aggregated preferences of a plurality of device users, a prior expressed preference of the user, the size of the requested web page, and/or the complexity of the requested web page as it relates to the potential impact on functionality of a transcoded version without requiring user foresight or otherwise imposing a burden on a user of a mobile device to participate in the mode selection process. From the perspective of a mobile communications service provider, embodiments of the invention may result in reduced use of network bandwidth as web pages may be transcoded to generate smaller adapted versions when possible. Network bandwidth usage may further be reduced by potentially reducing scenarios in which a device user requests a web page only to discover that the delivered version of the web page is not functional or viewable on the mobile device and then must request the web page be fetched in another mode, thus requiring data comprising the same web page to be sent twice over the network. Service providers and device manufactures may also benefit from the implementation of embodiments of the invention because users may automatically have a better web browsing experience and as such may be more satisfied with their current mobile device and service provider.
Many modifications and other embodiments of the inventions set forth herein will come to mind to one skilled in the art to which these inventions pertain having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the embodiments of the invention are not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.