Abstract:
The invention provides a method and system for providing features for internet access at an internet appliance which go beyond the resource limitations of the internet appliance. The desired features are primarily implemented on the server, and coupled to the internet appliance for display, responsive to the ability of the internet appliance to provide those features. (1) The internet appliance and the server adapt to communication link limitations by dynamically adjusting picture quality or size for graphics to be displayed. (2) The internet appliance and the server adapt to memory and processor limitations by dynamically running applets at the server and intercepting display functions of applets for display at the internet appliance. (3) The internet appliance and the server adapt to memory and processor limitations by dynamically running editing programs or web pages at the server and by dynamically adjusting picture quality or size for graphics to be displayed.

Description:
BACKGROUND OF THE INVENTION  
       [0001]     1. Field of the Invention  
         [0002]     The invention relates to internet appliances.  
         [0003]     2. Related Art  
         [0004]     An “internet appliance” is a relatively inexpensive, relatively low-powered processor which is capable of connection to a network of computers, the largest of which is commonly known as the “internet” (but such networks may be independent networks or may be part of a private network commonly known as an “intranet”). An internet appliance is typically designed to provide access to services available using the internet, including electronic mail and access to the world wide web. An internet appliance provides such access using client software which interfaces to server software on another, relatively more powerful, processor which a more direct connection to the internet.  
         [0005]     One problem which has arisen in the art is that resource limitations of the internet appliance limit the capability of the internet appliance to provide features in the client software. For a first example, communication link or memory limitations of the internet appliance can limit the ability of the internet appliance to provide quality graphics display. For a second example, memory or processor limitations of the internet appliance can cause the internet appliance to be unable to run applets using Java (or using other applet languages such as ActiveX), or to be unable to provide editing features for graphics or other web page features.  
         [0006]     Accordingly, it would be desirable to provide a method and system for providing features for internet access at an internet appliance, notwithstanding resource limitations at the internet appliance. This advantage is achieved in an embodiment of the invention in which desired features are primarily implemented on the server, and coupled to the internet appliance for display, responsive to the ability of the internet appliance to provide those features.  
       SUMMARY OF INVENTION  
       [0007]     The invention provides a method and system for providing features for internet access at an internet appliance which go beyond the resource limitations of the internet appliance. The desired features are primarily implemented on the server, and coupled to the internet appliance for display, responsive to the ability of the internet appliance to provide those features. In particular embodiments, (1) the internet appliance and the server adapt to communication link limitations by dynamically adjusting picture quality or size for graphics to be displayed; (2) the internet appliance and the server adapt to memory and processor limitations by dynamically running applets at the server and intercepting display functions of applets for display at the internet appliance; (3) the internet appliance and the server adapt to memory and processor limitations by dynamically running editing programs or web pages at the server and by dynamically adjusting picture quality or size for graphics to be displayed. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0008]      FIG. 1  shows a block diagram of a system including an internet appliance and a server, in use for displaying graphics.  
         [0009]      FIG. 2  shows a block diagram of a system including an internet appliance and a server, in use for running applets.  
         [0010]      FIG. 3  shows a block diagram of a system including an internet appliance and a server, in use for editing applets or web pages. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT  
       [0011]     In the following description, a preferred embodiment of the invention is described with regard to preferred process steps and data structures. Those skilled in the art would recognize after perusal of this application that embodiments of the invention can be implemented using general purpose processors or special purpose processors adapted to particular process steps and data structures described herein, and that implementation of the process steps and data structures described herein would not require undue experimentation or further invention.  
         [0012]     Inventions described herein can be used in conjunction with inventions described in the following applications: 
        application Ser. No. ______, filed ______, 1997, Express Mail Mailing No. ______, in the name of the same inventor, titled “Active Electronic Mail”, attorney docket number NOVA-005; and     application Ser. No. ______, filed ______, 1997, Express Mail Mailing No. ______, in the name of the same inventor, titled “Secure Graphical Objects in Web Documents”, attorney docket number NOVA-006.        
 
         [0015]     Each of these applications is hereby incorporated by reference as if fully set forth herein.  
         [0000]     Miniclient and Server  
         [0016]      FIG. 1  shows a block diagram of a system including an internet appliance and a server, in use for displaying graphics.  
         [0017]     In a system  100  including an internet appliance  110  and a server  120 , the internet appliance  110  includes a miniclient  111 , while the server  120  includes a full web browser  121 .  
         [0018]     The miniclient  111  comprises a web client which has been stripped down; it uses only the relatively limited resources of the internet appliance  110  (such as relatively limited memory or processing capability), and consequently has only relatively limited capability. The miniclient  111  is capable of transmitting web requests entered by a user, capable of displaying web pages, in a manner described herein, and capable of other functions described herein.  
         [0019]     The web browser  121  comprises a full-featured web client which is able to take advantage of the relatively greater resources of the server  120  (such as relatively greater memory or processing capability), and consequently has capabilities found in web clients which are designed for full-featured computers. In a preferred embodiment, the web browser  121  might have features such as found in Microsoft Corporation&#39;s “Internet Explorer” product or Netscape Corporation&#39;s “Netscape Navigator” product.  
         [0020]     For example, these features might include transmitting web requests entered by the user and transmitted from the internet appliance  110  to the server  120 , preparing web pages for display by the miniclient  111  at the internet appliance  110 ,  11  caching web pages and other web objects for use by the miniclient  111  at the internet appliance  110 , and running applets embedded in web pages.  
         [0021]     As used herein, the term “web” as used in the phrases “web client”, “web page”, and the like, refers to information transfer using the hypertext transmission protocol (HTTP), and extensions and variants thereof. The reader is cautioned that HTTP is a rapidly evolving protocol, with many variants and many extensions, modifications, and variants thereof, both official and unofficial. Some of these extensions, modifications, and variants include those which have security features, those which are particular to certain languages or character sets, those which are particular to certain display features, and so on. Not all web browsers are compatible with all extensions, modifications, and variants of HTTP, and it is expected both that further extensions, modifications, and variants of HTTP will continue to develop, and that this lack of industry-wide compatibility will continue for the near future.  
         [0022]     Those skilled in the art would be aware, after perusing this application, that the invention is applicable to all such extensions, modifications, and variants of HTTP, without undue experimentation or further invention, and that the scope and spirit of the invention is broad enough to encompass all such applications.  
         [0023]     The miniclient  111  and the web browser  121  are coupled by a communication link  130 . The miniclient  111  transmits a set of web requests  131  to the web browser  121  on the communication link  130 . The web browser  121  receives the web requests  131  and (if they are not already in a dialect of HTTP) transforms them into proper HTTP protocol requests and transmits them to a web server (not shown). The web server serves up web pages and other web objects to the web browser  121 , which caches them and prepares them for display by the miniclient. The web browser  121  transmits a set of display updates  132  to the miniclient  111  on the communication link  130 . The miniclient  111  receives the display updates  132  and updates its display for presentation to the user.  
         [0000]     Displaying Graphics  
         [0024]     In a preferred embodiment, the communication link  130  includes a cellular telephone communication circuit or other radiotelephone communication circuit. In alternative embodiments, the communication link  130  includes other communication elements, such as other telephone communication circuits, frame relay or packet radio communication circuits, or other known methods of communication.  
         [0025]     The communication link  130  might accordingly be a limited resource, either by bandwidth (because of the quality of the communication circuit), by expense (because of the cost of maintaining the communication circuit), or by availability (because of the physical difficulty of maintaining the communication circuit). For example, in the case the communication link  130  includes a cellular telephone communication circuit or other radiotelephone communication circuit, each minute of communication is relatively expensive, has only limited bandwidth, and may also be subject to periods of unavailability due to the radio transmission environment.  
         [0026]     When transmitting the display updates  132 , the web browser  121  adjusts a measure of relative quality of the web page to be displayed (or a graphic element therein) in response to the relative quality of the communication link  130 . The measure of relative quality might include the relative coarseness or fineness of the graphic element, the relative size of the graphic element, the relative color density of the graphic element, the relative lossiness of compression of the graphic element, or other measures of quality of the graphic element.  
         [0027]     In a preferred embodiment, any adjustment to the relative quality of the web page to be displayed can also be made with regard to one or more graphic elements, such as pictures, to be displayed with the web page. Similarly, any adjustment to the relative quality of the web page to be displayed can also be made with regard to text to be displayed with the web page, either by compressing the text or by serving only that text which fits within a display window for the miniclient  111 .  
         [0028]     In a preferred embodiment, the web browser  121  dynamically measures the relative quality of the communication link  130 , such as the bandwidth available using the communication link  130 , the cost of using the communication link  130 , the bit error rate or other availability measure for the communication link  130 , or other measures of relative quality of the communication link  130 .  
         [0029]     Upon dynamically measuring the relative quality of the communication link  130 , the web browser  121  adjusts the display updates  132  to account for that dynamic measure. In a preferred embodiment, the web browser  121  dynamically adjusts the relative quality of the web page (or the graphic element therein) for display, so as to maintain relatively constant a measure of resource usage at the miniclient  111 . For example, the measure of resource usage might be the amount of time taken to serve the web page to the miniclient  111  or the monetary cost associated with serving the web page to the miniclient  111 .  
         [0030]     In alternative embodiments, the miniclient  111  informs the web browser  121  of a display resolution or a display size which is available at the miniclient  111  for web pages, and the web browser  121  adjusts the relative quality of the web page (or the graphic element therein) for display, so as to match the display to the display capability of the miniclient  111 . For example, the web browser  121  can adjust the display size of a graphic element so that the graphic element can be displayed at the miniclient  111  without any requirement for scrolling.  
         [0031]     The miniclient  111  also has one or more additional commands by which the user can instruct the web browser  121  to adjust the measure of relative quality of the web page for display (or of the graphic element therein) to a selected relatively constant value, or to a selected value associated with a selected relatively constant measure of resource usage at the miniclient  111 . Thus, for example, the user can instruct the web browser  121  to display graphic elements at the miniclient  111  at a selected resolution, or can instruct the web browser  121  to display graphic elements at the miniclient  111  so that each web page is served in no more than 50 seconds of cellular air time.  
         [0032]     In a preferred embodiment, the miniclient  111  also has one or more additional commands by which the user can also instruct the web browser  121  to continue serving progressive information about the graphic element even after the graphic element is ready for display at the miniclient  111 , so that the user can, for example, enter a command (such as a control key or a mouse click), to obtain a relatively better quality or relatively larger size graphic element, or further text which otherwise would not be displayed. In alternative embodiments, the continued serving of progressive information about the graphic element can occur even after the user has spent substantial time reviewing the graphic element.  
         [0033]     In a preferred embodiment, a second internet appliance  110  with a second miniclient  111  can duplicate the display of the first miniclient  111  by receiving the display updates  132  and presenting a display which is identical to the first miniclient  111 . In alternative embodiments, the second miniclient  111  can also transmit web requests  131  using the communication link  130  (where the communication link  130  is susceptible to such common usage), so that either miniclient  111  can affect the display of the other miniclient  111 .  
         [0000]     Running Applets  
         [0034]      FIG. 2  shows a block diagram of a system including an internet appliance and a server, in use for running applets.  
         [0035]     In a system  200  including an internet appliance  110  and a server  120 , the internet appliance  110  includes a miniclient  111 , while the server  120  includes an applet  210 .  
         [0036]     Because the miniclient  111  has no Java capability or only relatively limited Java capability, it is desirable to execute the applet  210  on the server  120 . The applet  210  includes a set of advanced window tools  211  and a set of display classes  212 . In normal operation, the applet  210  provides a local display  213  for the server  120 , which if the server  120  were local to the user, would be displayed to the user.  
         [0037]     The server  120  dynamically receives the applet  210 , such as from a web page which it has accessed at the request of the miniclient  111  (at the behest of the user), and dynamically executes the applet  210  at the server  120 . One of two alternative embodiments is preferred.  
         [0038]     First, the server  120  may generate the local display  213  and transmit display updates  132  to the miniclient  111  in response thereto.  
         [0039]     Second, the server  120  may intercept calls made by the applet  210  from the advanced window tools  211  to the set of display classes  212 , and transmit those calls as display commands to the miniclient  111  for execution at the miniclient  111 .  
         [0040]     In either embodiment, the miniclient  111  is not required to execute or interpret Java code, and is able to display the results of the executing applet  210  as if the applet  210  were actually executing at the miniclient  111 .  
         [0000]     Editing Applets or Web Pages  
         [0041]      FIG. 3  shows a block diagram of a system including an internet appliance and a server, in use for editing applets or web pages.  
         [0042]     In a system  300  including an internet appliance  110  and a server  120 , the internet appliance  110  includes a miniclient  111 , while the server  120  includes web document  310  or other web object.  
         [0043]     Because the miniclient  111  has relatively limited memory, it is desirable to maintain the web document  310  and editing tools  320  on the server  120 . The miniclient  111  receives editing commands  330  from the user and transmits those editing commands  330  to the server  120 .  
         [0044]     The server  120  receives the editing commands  330  and passes them to the editing tools  320 , which edit the web document  310  at the server  120 . The server  120  receives the HTML updates  321  and updates the web document  310 , including updating any applets, graphical elements or references to other web objects.  
         [0045]     The server  120  dynamically generates a reduced-size (“thumbnail”) graphic display  311  of the web document  310 , and transmits display updates  132  for the thumbnail graphic display  311  to the miniclient  111 . The miniclient  111  dynamically displays the thumbnail graphic display  311  so the user can review changes to the web document  310  as they are made. The server  120  dynamically adjusts quality and size of the thumbnail graphic display  311  as described herein.  
         [0046]     Where the web document  310  includes actual text  312 , the miniclient  111  receives the actual text  312  from the server  120  and displays the actual text  312  in a separate display window for the user.  
       Alternative Embodiments  
       [0047]     Although preferred embodiments are disclosed herein, many variations are possible which remain within the concept, scope, and spirit of the invention, and these variations would become clear to those skilled in the art after perusal of this application.