The present invention generally relates to a system, method and program for localizing web page interfaces via asynchronous data and automatic binding. More particularly, the present invention relates to a system, method and program that utilize a backend data-driven functionality with front-end automatic data binding to achieve hot swappable language and region-specific content within a web page without the need to reserve or refresh a web page and without interrupting any of the existing web page functionality. The system, method and program can be employed in any suitable device, such as a satellite communication terminal.
Communication networks, such as satellite communication networks, employ satellite communication terminals at end-user sites which communicate with one or more satellites in the satellite communication network. The satellite communication network can function as an Internet service provider which provides content, such as typical web page content, to the satellite communication terminals for access by the end users.
Naturally, the satellite communication terminals, which can be referred to simply as satellite user terminals or user terminals, are dispersed throughout different countries across the world. Therefore, the language in which the user-readable content is provided on the web pages varies from country to country. For instance, content on the web pages being accessed via satellite user terminals in the United States would normally appear in English, while content on the web pages being access via satellite user terminal in Japan would normally appear in Japanese, and so on.
To localize a web page, a communication network would typically create multiple versions of the web page, and then serve the locale-specific version of the web page as requested by the user. Accordingly, the English-language version of the web page would normally be served to the user terminal of the user requesting the web page in the United States, but a Japanese-language version of the web page would normally be served to the user terminal of the user requesting the web page in Japan. However, a user at a specific location may desire for the web page content to be provided in a different language than that of the region. For instance, an American user traveling abroad would most likely want the content of the web page to be provided in English regardless of the region from which the American user is accessing the web page.
The practice of creating multiple versions of a web page and serving a specific version of the web page as requested by the user is generally costly in terms of bandwidth and load times, especially because the entire web page is built and resent over the satellite communication network any time the language/region context of the web page is switched. This can be particularly problematic for embedded satellite communication networks, since every byte sent over the satellite link noticeably increases the perceived page load times and responsiveness due to the extra work performed by the embedded satellite communication network and the limited resources of the satellite communication network.
In order to address these issues, the disclosed embodiments provide a system, method and program that dramatically improve performance over the traditional methodology discussed above. In accordance with the system, method and program of the disclosed embodiments, base web pages are cacheable in a locale-independent manner at the user terminals. Therefore, a base web page will load much faster in a user's browser since the same static HTML is used for all locales and stored in the browser's cache. Furthermore, the base web page does not need to refresh upon a locale switch. Therefore, less bytes are sent over the satellite link when switching languages, and perceived load times for the web page is dramatically improved. Furthermore, anything currently running in the web page is not disrupted or restarted due to the locale switch since the content being switched is merely “hot swapped.” Thus, the back-end embedded system of the satellite communication network completes tasks faster since the network merely sends the switched data, and does not need to rebuild or re-serve an entire web page.
Accordingly, disclosed embodiments provide a system, method and program for localizing web page interfaces via asynchronous data and automatic binding. The system, method and program employ a terminal for use with a communication network. A system, method and program for localizing web page interfaces via asynchronous data and automatic binding. The system, method and program employ a terminal for use with a communication network. The terminal comprises a server that is configured to bind web page core data representing a web page with locale data local to the terminal to create web page data. The locale data pertains to a location in which the terminal is disposed. The server is further configured to bind different locale data with the web page core data to create modified web page data.
Referring now to the attached drawings which form a part of this original disclosure:
Selected embodiments will now be explained with reference to the drawings. It will be apparent to those skilled in the art from this disclosure that the following descriptions of the embodiments are provided for illustration only and not for the purpose of limiting the invention as defined by the appended claims and their equivalents.
As will be appreciated from the following description, a system, method and program according to disclosed embodiments utilize a backend data-driven functionality with front-end automatic data binding to achieve hot swappable language and region-specific content within a web page without the need to re-serve or refresh a web page and without interrupting any of the existing web page functionality.
As understood in the art, the controller 20 preferably includes a microcomputer with a control program that controls the gateway 12 as discussed herein. The controller 20 can also include other conventional components such as an input interface circuit, an output interface circuit, and storage devices such as a ROM (Read Only Memory) device and a RAM (Random Access Memory) device. The RAM and ROM store processing results and control programs that are run by the controller 20. The controller 20 is operatively coupled to the components of the gateway 12 as appropriate, in a conventional manner. It will be apparent to those skilled in the art from this disclosure that the precise structure and algorithms for the controller 20 can be any combination of hardware and software that will carry out the functions of the present invention.
The gateway 12, satellites 14 and satellite user terminals 24 typically communicate with each other over a radio frequency link, such as a Ku-band link, a Ka-band link or any other suitable type of link as understood in the art. Also, one or more of the gateways 12 can be configured as a network management center or network operating center which, among other things, operate to communicate with remote sites, such as web content providers 26, via the Internet 28, cloud storage, or other communication networks as understood in the art. In addition, the gateways 12 can communicate with each other via, for example, the Internet 28 or other communication networks.
As further shown in
As with the controller 20 for a gateway 12, the controller 36 preferably includes a microcomputer with a control program that controls the satellite user terminal 24 as discussed herein. The controller 36 can also include other conventional components such as an input interface circuit, an output interface circuit, and storage devices such as a ROM (Read Only Memory) device and a RAM (Random Access Memory) device. The RAM and ROM store processing results and control programs that are run by the controller 36. The controller 36 is operatively coupled to the components of the satellite user terminal 24 as appropriate, in a conventional manner. It will be apparent to those skilled in the art from this disclosure that the precise structure and algorithms for the controller 36 can be any combination of hardware and software that will carry out the functions of the present invention.
The memory 38 can be, for example, an internal memory in the terminal 24, or other type of memory devices such as a flash memory or hard drives with external high speed interface such as a USB bus or an SATA bus, or remote memories such as cloud storage and so on. These other types of memory can be present at the terminal 24 or accessible at a location apart from the terminal 24 via a network connection such as an Ethernet connection, a WiFi connection or any other suitable type of connection as understood in the art. Also, the local server 40 can communicate with an access point 42, such as a WAP or any other suitable device, which enables the local server 40 to provide packets to end user devices 44 as discussed herein. Such end user devices 44 include, for example, desktop computers, laptop or notebook computers, tablets (e.g., iPads), smart phones, Smart TVs and any other suitable devices as understood in the art. Naturally, the communications between the local server 40, the access point 42 and the end user devices 44 can occur over wireless connections, such as WiFi connections, as well as wired connections as understood in the art.
In accordance with the disclosed embodiments, before an IDU 32 is shipped to a location, locale-specific web page content for “internal” type web pages pertaining to the satellite communication network 10 are stored in the memory 38 of the IDU 32. These internal type web pages can be web pages containing information about the company hosting the satellite communication network 10 (e.g., Hughes Network Systems), customer service information, information pertaining to equipment such as the IDU 32, and so on. This information can be stored in a database 46 as shown, for example, in
As will now be described, the controller 36 and the local server 40, for example, can operate to perform functions of an asynchronous fetching mechanism, an automatic data-binding system, and a data driven backend. The local server 40, for example, can be configured to perform operations of the data driven backend, which operates as a server that is capable of serving data. In this example, the data driven backend functionality of the local server 40 would operate as a web server that can serve the locale-specific data of a given web page without serving the web page itself. The locale-specific data can be, for example, information in a specific language of a region in which the user terminal 24 is present. For instance, a database 50, as shown in
The asynchronous fetching mechanism is used to make HTTP requests to the backend web server without refreshing the page. The asynchronous fetching mechanism could be, for example, AJAX, WebSockets technology, or any other type of mechanism that permits the same functionality. The automatic data-binding system (ADBS) configured in, for example, the local server 40, enables the static HTML page to be locale-independent, and therefore cacheable. The ADBS takes the data from the asynchronous HTTP request and automatically binds the data to the Document Object Model (DOM). Therefore, the locale-specific page can be hot-swapped, and any currently running functions or tasks in the page are not disrupted. In addition, from a front-end perspective, the HTML is merely written to match the structure of asynchronous data.
Accordingly, as shown in the exemplary flow diagram set forth in
The local server 40 serves the core web page if it is the first time that the core web page is being served. For subsequent requests of the core web page, the core web page can be served from the cache which can be included, for example, in the memory 38 of the IDU 32. The local server 40 also retrieves the locale data from the database 46 and the ADBS of the server 40 binds the locale data to the web page automatically. For example, the server 40 automatically converts machine format locale data into readable format on the web page. When a separate asynchronous request to, for example, change the locale-data (e.g., from English to French) is made in step S104, the locale-data is served by the data-driven backend based on user preference or a default in Step 106. The ADBS thus binds the served data to the web page automatically, and the updated web page is displayed in the user's web browser 48 (
It should be noted that the ADBS can occur in the local server 40 or in the browser 48 itself via, for example, JavaScript libraries running in the browser 48. As understood in the art, ADBS enables changes to locale data (e.g., translated words, sentences, and so on) without having to make any changes to HTML or JavaScript since the ADBS will insure that the data is filled into the web page at the correct location regardless of the actual translated words that appear on the web page.
Accordingly, as can be appreciated from the above, the server 40 binds web page core data representing a web page with locale data retrieved from the database 46 at the terminal to create web page data, with the locale data pertaining to a location (e.g., a geographic region or country) in which the terminal 24 is disposed. The server 40 further, in response to a request, retrieve different locale data from the database 46, and binds the different locale data with the web page core data to create modified web page data without interrupting another function running in the web page core data. The server 40 thus can provide the web page data to a browser 48 of a user device 44, receive the request via the browser 48, and provide the modified web page data to the browser 48.
Although the embodiments are described with regard to a satellite communication network 10 exemplary purposes, the system, method and program according to the disclosed embodiments are operable in LAN settings in addition to satellite-link settings. Table 1 below illustrates an example of measured load times and consumed bandwidth for a comparable web page using traditional CGI localization techniques versus the disclosed embodiments over a satellite connection.
As can be appreciated from the results in Table 1, using a data-driven asynchronous approach according to the disclosed embodiments reduced the load times for a locale switch by a factor of 6, and reduced the amount over data sent over the air by a factor of more than 10. Hence, although a CGI program that builds locale-specific pages can be used, such an approach is costly over a satellite link and increases strain on the embedded system containing the web server.
In understanding the scope of the present invention, the term “comprising” and its derivatives, as used herein, are intended to be open ended terms that specify the presence of the stated features, elements, components, groups, integers, and/or steps, but do not exclude the presence of other unstated features, elements, components, groups, integers and/or steps. The foregoing also applies to words having similar meanings such as the terms, “including”, “having” and their derivatives. Also, the terms “part,” “section,” “portion,” “member” or “element” when used in the singular can have the dual meaning of a single part or a plurality of parts. Also, the term “detect” as used herein to describe an operation or function carried out by a component, a section, a device or the like includes a component, a section, a device or the like that does not require physical detection, but rather includes determining, measuring, modeling, predicting or computing or the like to carry out the operation or function. The term “configured” as used herein to describe a component, section or part of a device includes hardware and/or software that is constructed and/or programmed to carry out the desired function. The terms of degree such as “substantially”, “about” and “approximately” as used herein mean a reasonable amount of deviation of the modified term such that the end result is not significantly changed.
While only selected embodiments have been chosen to illustrate the present invention, it will be apparent to those skilled in the art from this disclosure that various changes and modifications can be made herein without departing from the scope of the invention as defined in the appended claims. For example, the size, shape, location or orientation of the various components can be changed as needed and/or desired. Components that are shown directly connected or contacting each other can have intermediate structures disposed between them. The functions of one element can be performed by two, and vice versa. The structures and functions of one embodiment can be adopted in another embodiment. It is not necessary for all advantages to be present in a particular embodiment at the same time. Every feature which is unique from the prior art, alone or in combination with other features, also should be considered a separate description of further inventions by the applicant, including the structural and/or functional concepts embodied by such feature(s). Thus, the foregoing descriptions of the embodiments according to the present invention are provided for illustration only, and not for the purpose of limiting the invention as defined by the appended claims and their equivalents.
Number | Name | Date | Kind |
---|---|---|---|
6623529 | Lakritz | Sep 2003 | B1 |
6983313 | Korkea-Aho | Jan 2006 | B1 |
7580960 | Travieso | Aug 2009 | B2 |
7590681 | Chang | Sep 2009 | B1 |
7640512 | Appling | Dec 2009 | B1 |
7792297 | Piccionelli | Sep 2010 | B1 |
8266000 | Harris | Sep 2012 | B1 |
8640023 | Murray | Jan 2014 | B1 |
8700633 | Murphy | Apr 2014 | B1 |
8756050 | Harkness | Jun 2014 | B1 |
9003540 | Johansson | Apr 2015 | B1 |
9197696 | Jakatdar | Nov 2015 | B1 |
9454618 | Chen | Sep 2016 | B1 |
9503499 | Donaldson | Nov 2016 | B1 |
9658998 | Dillard | May 2017 | B2 |
9805135 | Hamm | Oct 2017 | B2 |
20020023010 | Rittmaster | Feb 2002 | A1 |
20040102197 | Dietz | May 2004 | A1 |
20050021862 | Schroeder | Jan 2005 | A1 |
20050289178 | Angus | Dec 2005 | A1 |
20060047728 | Kim | Mar 2006 | A1 |
20060184640 | Hatch | Aug 2006 | A1 |
20060206594 | Brown | Sep 2006 | A1 |
20070067495 | Levy | Mar 2007 | A1 |
20080235351 | Banga | Sep 2008 | A1 |
20090070190 | Gorty | Mar 2009 | A1 |
20090187830 | Jorasch | Jul 2009 | A1 |
20090287471 | Bennett | Nov 2009 | A1 |
20090287671 | Bennett | Nov 2009 | A1 |
20100131366 | Gibson | May 2010 | A1 |
20100180330 | Zhu | Jul 2010 | A1 |
20100191545 | Heinert | Jul 2010 | A1 |
20100192070 | Peckelbeen | Jul 2010 | A1 |
20100262914 | Todd | Oct 2010 | A1 |
20100286977 | Chin | Nov 2010 | A1 |
20110034184 | Rothschild | Feb 2011 | A1 |
20110125724 | Mo | May 2011 | A1 |
20110172987 | Kent | Jul 2011 | A1 |
20110313755 | Oh | Dec 2011 | A1 |
20120135753 | Wang | May 2012 | A1 |
20120157199 | Nord | Jun 2012 | A1 |
20120185236 | Blodgett | Jul 2012 | A1 |
20120190385 | Nair | Jul 2012 | A1 |
20130091425 | Hughes | Apr 2013 | A1 |
20130290516 | Eaton | Oct 2013 | A1 |
20140156725 | Mandyam | Jun 2014 | A1 |
20140181634 | Compain | Jun 2014 | A1 |
20140358994 | Liu | Dec 2014 | A1 |
20140372099 | Ronin | Dec 2014 | A1 |
20150121199 | Wu | Apr 2015 | A1 |
20150178299 | Kazerani | Jun 2015 | A1 |
20150278166 | Hanechak | Oct 2015 | A1 |
20150302110 | Deng | Oct 2015 | A1 |
20160117730 | Nats | Apr 2016 | A1 |
20170199630 | Perry | Jul 2017 | A1 |
Number | Date | Country | |
---|---|---|---|
20180152542 A1 | May 2018 | US |