Abstract:
An IPTV may be controlled in part by a second user consumer electronic (CE) device using a web page served from a third party server even though the third party server cannot function as a proxy to the IPTV.

Description:
FIELD OF THE INVENTION 
     The present application relates generally to serving web pages from a third party server to a control device to enable the control device to control a local server, such as an IPTV, that does not have a public address. 
     BACKGROUND OF THE INVENTION 
     Internet access through TVs is typically provided by essentially programming the TV (often referred to as an Internet Protocol TV, or IPTV) as though it were a computer executing a browser. Such Internet access is thus uncontrolled except as a firewall or filtering program might block certain sites. 
     As understood herein, uncontrolled Internet access may not be desirable in the context of a TV. A firewall or filtering program may not always be installed on the TV and even when one is installed, access remains much more uncontrolled than conventional TV programming traditionally has expected. Also, a locally installed filter can be unloaded or defeated by a user. 
     Accordingly, uncontrolled Internet access has several drawbacks. From a viewer&#39;s standpoint, exposure to inappropriate subject matter particularly when young viewers are watching is one concern; a much lower threshold of quality screening is another. That is, while many TV shows might not be widely considered as “quality” shows, nonetheless a TV program is usually much more selectively screened than, say, an Internet video. The expectations of TV viewers for such higher level quality screening as a consequence cannot be met by simply providing unfettered Internet access through the TV. Furthermore, TV-related entities, from content providers, manufacturers, and carriers, in most cases derive no benefit from the extension of TV to the Internet, such as, e.g., might be derived, as understood herein, by pay-per-view based on one or more options. 
     As further recognized herein, it may be desirable to control an IPTV client with a second, control device that might have more convenient user input devices than the IPTV, or for other reasons. Present principles understand that such control may be effected by means of web pages, but as also recognized herein it would be desirable to serve such web pages from a third party Internet server, to avoid filling up storage in the IPTV and further to yield flexibility and robustness in being able to update web pages tailored for a variety of models without having to modify the software of the IPTV. 
     As still further recognized herein, however, an IPTV or other home server for which control is sought using a web page sourced from another server might not be publicly accessible on the Internet, or might not have a publicly known address even if it is. This raises a cross domain issue, which arises from a restriction which browsers impose to protect users from unauthorized usage of confidential information. Essentially, for security reasons hypertext transfer protocol (HTTP) requests from a client can only be made to the server that serves up the page to the client, and not to a different server on a different domain. On the Internet, this is resolved by using the server as a proxy to convey information to the intended third party server, but as mentioned above, if the third party resides on a home network with a network address that is not available to the proxy, this method is no longer applicable, because the proxy server on the internet has no way of contacting a server that is on a home network. 
     SUMMARY OF THE INVENTION 
     Accordingly, a webpage that is hosted by an external server nevertheless can perform AJAX (asynchronous JavaScript and XML) calls (and the like, such as AJAJ) to local servers that reside only on the home network using present principles. Specifically, a control device accessing the web page from the local server can send AJAX and AJAJ calls to the local server. 
     With the above in mind, a home server (which may be embodied by an IPTV) includes a housing, a display on the housing, and a network interface. A processor in the housing controls the display and communicates with the Internet through the network interface. An input device communicates with the processor which executes logic including presenting a web application selection user interface (UI) and receiving a selection of a web application from the UI. Responsive to the selection, the processor sends a request for a web page over the Internet to an Internet server, receiving the web page from the Internet server in response. The processor then sends, over a home network, the web page to a control device including a processor, display, and user input device such that the control device can display the web page to input commands to the home server. 
     The request for a web page may identify a type and/or model number of the control device, and the web page can be tailored to the type and/or model number. The web application selection UI may be presented on the display of the home server. In some examples, the web page presents an image of a virtual remote control (RC) including images of RC keys that can be selected to send a command to the home server to control the home server. The command in this example is configured in an infrared communication protocol. In other examples, the web page presents entry fields for accounting information to conduct a monetary transaction for audio video content. In yet other examples, the web page presents a search entry field into which non-Arabic characters are imputable to cause the home server to search for content. 
     In another aspect, a system includes a home server, a control consumer electronic (CE) device, and a third party server communicating with the home server over the Internet. The control CE device controls the home server using a web page served from the third party server on the home server even though the third party server cannot function as a proxy to the home server. 
     In another aspect, a server assembly includes a processor, a network interface communicating with the processor to establish communication between the processor and a wide area network, and a computer readable storage medium accessible to the processor and bearing logic. The logic causes the processor to receive a request for a web page from a control device and then request over the Internet the web page from a server on the Internet. The server assembly receives the web page over the Internet and serves the web page to the control device as though the server assembly originated the web page. 
     The details of the present invention, both as to its structure and operation, can best be understood in reference to the accompanying drawings, in which like reference numerals refer to like parts, and in which: 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of an example system in accordance with present principles; 
         FIG. 2  is a flow chart of example logic according to present principles; 
         FIG. 3  is a screen shot of a web application user interface (UI) that can be presented on the home server (IPTV); and 
         FIGS. 4-7  are screen shots of example web applications that can be returned to the control device. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Referring initially to  FIG. 1 , a client home server device  12  such as a TV, game player, video disk player, camera, digital clock radio, mobile telephone, personal digital assistant, laptop computer, etc. includes a portable lightweight plastic housing  14  bearing a digital processor  16 . The processor  16  can control a visual display  18  and an audible display  20  such as one or more speakers. For disclosure purposes, the home server device  12  in one example can be an Internet Protocol TV (IPTV) and may be referred to as such below without loss of generality. 
     To undertake present principles, the processor  16  may access one or more computer readable storage media  22  such as but not limited to RAM-based storage (e.g., a chip implementing dynamic random access memory (DRAM)) or flash memory or disk-based-storage. Software code implementing present logic executable by the CE device  12  may also be stored on one of the memories shown to undertake present principles. 
     The processor  16  can receive user input signals from various input devices including a remote control device  24 , a point and click device such as a mouse, a keypad, etc. A TV tuner  26  may be provided in some implementations particularly when the CE device is embodied by a TV to receive TV signals from a source such as a set-top box, satellite receiver, cable head end, terrestrial TV signal antenna, etc. Signals from the tuner  26  are sent to the processor  16  for presentation on the display  18  and speakers  20 . 
     As shown in  FIG. 1 , a network interface  28  such as a wired or wireless modem or wireless telephony transceiver communicates with the processor  16  to provide connectivity to a wide area network such as the Internet. Double arrows in  FIG. 1  indicate network communication between components over wired and/or wireless links. In this way, the client device  12  can communicate with a management server  30  on the Internet and with one or more content servers  32 , also on the Internet and communicating with the management server  30 . Also on the Internet is a third party server  34  which can serve Web pages. Note that “third party” is a term generally denoting an entity apart from the IPTV  12  and control device described below, and does not necessarily connote anything about respective ownership of the various components. 
     The servers  30 ,  32 ,  34  have respective processors  30   a ,  32   a ,  34   a  accessing respective non-transitory computer readable storage media  30   b ,  32   b ,  34   b  which may be, without limitation, disk-based and/or solid state storage. The servers communicate with a wide area network such as the Internet via respective network interfaces  30   c ,  32   c ,  34   c . It is to be understood in view of disclosure below that the home server device  12  particularly when implemented by a non-PC device such as a TV or game console or camera can communicate only with the management server  30  and with content servers  32  that appear on a service list provided to the processor  16  by the management server  30 , with the service list not being modifiable by the processor  16 . 
     A second or control CE device  36  with housing  38  such as another TV, game player, video disk player, camera, digital clock radio, mobile telephone, personal digital assistant, laptop computer, etc. bears a digital processor  40  controlling a visual display  42  and an audible display  44  such as one or more speakers. To undertake present principles, the second or control processor  40  may access one or more computer readable storage media  46  such as but not limited to RAM-based storage (e.g., a chip implementing dynamic random access memory (DRAM)) or flash memory or disk-based-storage. Software code implementing present logic executable by the second or control device  36  may also be stored on one of the memories shown to undertake present principles. Further, the second or control processor  40  can receive user: input signals from various input devices  48  including a point and click device such as a mouse, a keypad, etc. A network interface  50  such as a wired or wireless modem or wireless telephony transceiver communicates with the processor  40  to provide connectivity to a wide area network such as the Internet. 
       FIG. 2  shows example logic that may be executed by processors within the system of  FIG. 1 . Commencing at block  52 , a web page retrieval application programming interface (API) is loaded into the home server  12  (IPTV, in one example) for presentation thereof on the display  18  as shown in  FIG. 3  and discussed further below. At block  54 , the control device  36  establishes wired or wireless communication with the IPTV and from, e.g., a menu on the IPTV invokes presentation of the web application UI at block  56 . The UI is presented, listing available applications, and at block  58  a selection of one of the applications is received by the IPTV. Note that in executing the logic thus far a viewer may use the control device  36  or the RC  24 , since at this point the logic seeks to command the IPTV to retrieve a desired web page from the third party server  34 . 
     However, regardless of what mode of command is used, it is to be understood that information identifying the model number and type of the control device  36  is sent to the IPTV. In this way, a web page tailored for that particular type of control device may be retrieved from the third party server. Accordingly, when the control device  36  is used in the logic of blocks  54 - 58 , the control device  36  can be automatically programmed to send its identifying information to the IPTV as part of the selection at block  58 . On the other hand, if the RC  24  is used, the IPTV can be programmed to prompt on its display  18  for the viewer to enter, by means of the keys on the RC  24 , the identifying information of the control device  36 . 
     At block  60 , the home server  12  (IPTV) sends a request to the third party server  34  for the selected web application as embodied in a web page served from the server  34 . This request can include the information identifying the type/model number etc. of the control device  36 , as well as, if desired, the type/model number of the IPTV. With this information, the third party server  34  can return a version of the web page that is tailored for one or both the IPTV and the control device  36 . It will accordingly be appreciated that the server  34 , with its greater capacity for storage and processing, may store multiple versions of a web page for service to multiple different control devices and/or home servers while facilitating modifications to the web pages that in essence are propagated globally simply by changing them at the server  34 , instead of having to update every home server in the IPTV system with an updated page were the home servers tasked with storing and managing the web pages. 
     In response to its request, the home server  12  receives the web page from the third party server  34 . Then, at block  62  the home server  12  sends the web page to the control device  36 , identifying itself (the home server) as the web page sender to indicate to the browser of the control device that the home server and not the third party server is sourcing the web page. Commands from the control device  36 , entered by means of the web page, consequently are returned to the homer server where they are received by the home server  12  at block  64 , with the above-noted cross-domain problem having been solved by serving the page from the home server, so that the browser of the control device  36  encounters no security barriers to responding back to the serving IPTV. The commands may be in the form of AJAX/AJAJ calls. 
     The logic above thus describes a way of serving a web page from a third party server  34  on the Internet and having that web page, under control of the control device  36 , subsequently communicate with the home server  12  (IPTV). 
     Described differently, if the control device  36  is designated “A”, the home server  12  (IPTV) is designated “B”, and the third party server  34  designated “C”, then in the logic above, “A” must get a web page stored at “C”, but this web page principally communicates with “B” which must request it. Accordingly, to get the web page from “C”, “A” gets it from “B” which gets it from “C”, i.e., A-&gt;B-&gt;C-&gt;B-&gt;A. Subsequent hypertext transfer protocol (HTTP) calls involving the web page are “A” to “B” to “A”, i.e., A-&gt;B-&gt;A. 
     Thus, in the logic of  FIG. 2 , the call to the third party server  34  is made to load the web page, whereas in conventional Internet proxy sourcing the call to the third party server is made after the page is already loaded. 
     Present principles permit the home server (IPTV) to respond to the request from the control device  36  while leaving the flexibility of UI changes to the third party server host on the Internet. Consequently, the web page can be frequently improved, and not have any impact on the TV&#39;s software code. The IPTV merely serves up the web page directed by the control device to the control device. This also gives the control device the flexibility of getting the desired web page, and not be restricted to the any one that the IPTV offers were the web page to originate at the IPTV and not the third party server host. As intimated above, different implementations of the IPTV API can exist on ten different hosts, and the client operating the control device  36  can choose to use the implementation on any of the ten hosts to communicate with the IPTV. 
     Recall that at block  58 , using an API on the home server, the control device  36  requests a third party webpage. In a non-limiting manner, such an API call may be formatted as follows: http://&lt;ip &amp; port of homeserver&gt;/getWebpage.php?url=www.google.com/TVcontrols.html. When such a request is made to the home server, the home server downloads the web page stated by the uniform resource locator (URL) and returns it to the control device, making the home server  12  appear to be the host of that web page and hence resolving the cross domain issue of browsers because browsers allow HTTP calls within the web page to be made to the server that serves up the page. 
       FIG. 3  shows an example web page retrieval UI that can be presented at block  56  of  FIG. 2  on the display  18  of the IPTV. As shown, a list of web applications corresponding to web pages is presented, and one may be selected from the list.  FIGS. 4-7  illustrate various non-limiting examples of web pages that can be selected from the list on the IPTV display  18  for presentation on the control device display  42 . 
     Specifically and now referring to  FIG. 4 , responsive to a selection to present an image of a virtual RC at block  58 , a virtual RC UI  68  is obtained as described above by the IPTV from the third party server  34  and served by the IPTV to the control device  36 . In the example shown, the UI  68  can include an image  70  of a RC keypad with images  72  of RC keys that may be selected by means of the control device input device  48 . When a virtual RC key is selected, a code mimicking the code that would generated by a RC is sent to the IPTV. For example, a signal in Sony Infrared Remote Control System (SIRCS) protocol may be sent from the control device  36  to the IPTV responsive to selection of an image  70  of the virtual RC keypad  68 , although the signal itself need not be physically in the infrared spectrum. In this way, the TV recognizes the code since it is already programmed to recognize IR codes from physical RCs. The commands input to the IPTV using the virtual RC may be, without limitation, channel up/down, volume up/down, channel skip, tune to last channel, stop, play, pause, fast forward, reverse, skip chapter, etc. 
     Also, entry windows  74 ,  76  may be presented in the UI  68  into which a viewer may enter, respectively, an IP address for the IPTV to access, and text to command the IPTV, using the control device input device  48 . Send and close buttons  78 ,  80  may be presented on the UI  68  to send the text in the window  76  and close the UI, respectively. Also, a get assets button  82  may be provided which, when selected, commands the IPTV to obtain a list of assets from one of the content servers  32 . A sort selector button  84  can also be provided to sort the assets in plural user-defined ways, e.g., alphabetically, reverse alphabetically, etc. 
       FIG. 5  shows another web page  86  that can be selected at block  58  of  FIG. 2  to order a movie. The web page  86  includes the name of the movie being ordered along with fields for entering accounting data, typically credit card information, with which to purchase the movie. A virtual keypad  88  may also be presented on the web page  86 . The viewer can enter the appropriate purchase information and send it to the IPTV for causing the IPTV to download the movie from, e.g., a content server  32  and to upload the billing information thereto to generate a bill to the user&#39;s account. 
     In  FIG. 6 , a user of a control device  36  having non-Arabic letter keys may wish to input a search term in other than the Arabic alphabet for a movie. The web page UI  90  of  FIG. 6  may be selected by the control device  36  and obtained by the IPTV from the third party server  34  for service to the control device  36  by the IPTV as described above. Non-Arabic letters  92  (in this case, Japanese font) can be input to search for a movie, e.g., “Spiderman”. Send and close buttons can be provided to send the search terms to the IPTV and close the UI  90 , respectively. 
     The IPTV then executes the search to download results from, e.g., the content serves  32 . Although the results presented on the IPTV display  18  may contain only boxes instead of the non-Arabic characters establishing the search terms because, e.g., the IPTV may not have the capability to display non-Arabic fonts, as shown in  FIG. 7  a UI  94  presenting on the control device display  42  the search results may indeed display non-Arabic characters  96  in a description column  98  corresponding to results thumbnails in a results column  100 . Sort, clear, and get more assets buttons may also be provided in the UI  94 . 
     While the particular SERVING FROM A THIRD PARTY SERVER TO A CONTROL DEVICE A WEB PAGE USEFUL FOR CONTROLLING AN IPTV CLIENT WITH NON-PUBLIC ADDRESS is herein shown and described in detail, it is to be understood that the subject matter which is encompassed by the present invention is limited only by the claims.