Micro-client for internet appliances

A method and system are described for providing features for internet access at an internet appliance which go beyond the resource limitations of the internet appliance. Such features may be 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.

BACKGROUND

An “internet appliance” may be configured as 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 has a more direct connection to the internet.

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.

SUMMARY

A method and system are described for providing features for internet access at an internet appliance which go beyond the resource limitations of the internet appliance. The features may be 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; and (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.

DETAILED DESCRIPTION

In the following description, embodiments are described with regard to process steps and data structures. Those skilled in the art would recognize after perusal of this application that embodiments 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.

Techniques described herein can be used in conjunction with techniques described in the following applications: application Ser. No. 08/918,698, filed Aug. 21, 1997, (pending) in the name of the same inventor, titled “Active Electronic Mail”, and application Ser. No, 08/918,094, filed Aug. 21, 1997, U.S. Pat. No. 6,032,150 in the name of the same inventor, titled “Secure Graphical Objects in Web Documents.” Each of these applications is hereby incorporated by reference as if fully set forth herein.

Miniclient and Server

FIG. 1shows a block diagram of a system including an internet appliance and a server, in use for displaying graphics.

In a system100including an internet appliance110and a server120, the internet appliance110includes a miniclient111, while the server120includes a full web browser121.

The miniclient111comprises a web client which has been stripped down; it may use relatively limited resources of the internet appliance110(such as relatively limited memory or processing capability), and consequently has relatively limited capability. The miniclient111is 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.

The web browser121comprises a full-featured web client which is able to take advantage of the relatively greater resources of the server120(such as relatively greater memory or processing capability), and consequently has capabilities found in web clients which are designed for full-featured computers. In an embodiment, the web browser121might have features such as found in Microsoft Corporation's “Internet Explorer” product or Netscape Corporation's “Netscape Navigator” product.

For example, these features might include transmitting web requests entered by the user and transmitted from the internet appliance110to the server120, preparing web pages for display by the miniclient111at the internet appliance110, caching web pages and other web objects for use by the miniclient111at the internet appliance110, and running applets embedded in web pages.

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.

Those skilled in the art would be aware, after perusing this application, that the techniques described herein are applicable to such extensions, modifications, and variants of HTTP, without undue experimentation, and that the scope and spirit is broad enough to encompass such applications.

The miniclient111and the web browser121are coupled by a communication link130. The miniclient111transmits a set of web requests131to the web browser121on the communication link130. The web browser121receives the web requests131and (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 browser121, which caches them and prepares them for display by the miniclient. The web browser121transmits a set of display updates132to the miniclient111on the communication link130. The miniclient111receives the display updates132and updates its display for presentation to the user.

The components shown inFIGS. 1-3, and described throughout the specification (e.g., the internet appliance110, the server120, etc.), may include or be implemented using computer-readable storage medium.

Displaying Graphics

In an embodiment, the communication link130includes a cellular telephone communication circuit or other radiotelephone communication circuit. In alternative embodiments, the communication link130includes other communication elements, such as other telephone communication circuits, frame relay or packet radio communication circuits, or other methods of communication.

The communication link130might 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), by availability (because of the physical difficulty of maintaining the communication circuit), and so on. For example, in the case the communication link130includes a cellular telephone communication circuit or other radiotelephone communication circuit, each minute of communication may be relatively expensive, have limited bandwidth, and may also be subject to periods of unavailability due to the radio transmission environment.

When transmitting the display updates132, the web browser121adjusts 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 link130. 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.

In a preferred embodiment, adjustments 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 text which fits within a display window for the miniclient111.

In a preferred embodiment, the web browser121dynamically measures the relative quality of the communication link130, such as the bandwidth available using the communication link130, the cost of using the communication link130, the bit error rate or other availability measure for the communication link130, or other measures of relative quality of the communication link130.

Upon dynamically measuring the relative quality of the communication link130, the web browser121adjusts the display updates132to account for that dynamic measure. In a preferred embodiment, the web browser121dynamically 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 miniclient111. For example, the measure of resource usage might be the amount of time taken to serve the web page to the miniclient111or the monetary cost associated with serving the web page to the miniclient111.

In alternative embodiments, the miniclient111informs the web browser121of a display resolution or a display size which is available at the miniclient111for web pages, and the web browser121adjusts 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 miniclient111. For example, the web browser121can adjust the display size of a graphic element so that the graphic element can be displayed at the miniclient111without any requirement for scrolling.

The miniclient111also has one or more additional commands by which the user can instruct the web browser121to 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 miniclient111. Thus, for example, the user can instruct the web browser121to display graphic elements at the miniclient111at a selected resolution, or can instruct the web browser121to display graphic elements at the miniclient111so that each web page is served in no more than 50 seconds of cellular air time.

In an embodiment, the miniclient111also has one or more additional commands by which the user can also instruct the web browser121to continue serving progressive information about the graphic element even after the graphic element is ready for display at the miniclient111, 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.

In an embodiment, a second internet appliance110with a second miniclient111can duplicate the display of the first miniclient111by receiving the display updates132and presenting a display which is identical to the first miniclient111. In alternative embodiments, the second miniclient111can also transmit web requests131using the communication link130(where the communication link130is susceptible to such common usage), so that either miniclient111can affect the display of the other miniclient111.

Running Applets

FIG. 2shows a block diagram of a system including an internet appliance and a server, in use for running applets.

In a system200including an internet appliance110and a server120, the internet appliance110includes a miniclient111, while the server120includes an applet210.

Because the miniclient111has no Java capability or only relatively limited Java capability in this instance, it may be desirable to execute the applet210on the server120. The applet210includes a set of advanced window tools211and a set of display classes212. In normal operation, the applet210provides a local display213for the server120, which if the server120were local to the user, would be displayed to the user.

The server120dynamically receives the applet210, such as from a web page which it has accessed at the request of the miniclient111(at the behest of the user), and dynamically executes the applet210at the server120. One of two alternative embodiments is preferred.

First, the server120may generate the local display213and transmit display updates132to the miniclient111in response thereto.

Second, the server120may intercept calls made by the applet210from the advanced window tools211to the set of display classes212, and transmit those calls as display commands to the miniclient111for execution at the miniclient111.

In either embodiment, the miniclient111is not required to execute or interpret Java code, and is able to display the results of the executing applet210as if the applet210were actually executing at the miniclient111.

Editing Applets or Web Pages

FIG. 3shows a block diagram of a system including an internet appliance and a server, in use for editing applets or web pages.

In a system300including an internet appliance110and a server120, the internet appliance110includes a miniclient111, while the server120includes web document310or other web object.

Because the miniclient111may have relatively limited memory, it may be desirable to maintain the web document310and editing tools320on the server120. The miniclient111receives editing commands330from the user and transmits those editing commands330to the server120.

The server120receives the editing commands330and passes them to the editing tools320, which edit the web document310at the server120. The server120receives the HTML updates321and updates the web document310, including updating any applets, graphical elements or references to other web objects.

The server120dynamically generates a reduced-size (“thumbnail”) graphic display311of the web document310, and transmits display updates132for the thumbnail graphic display311to the miniclient111. The miniclient111dynamically displays the thumbnail graphic display311so the user can review changes to the web document310as they are made. The server120dynamically adjusts quality and size of the thumbnail graphic display311as described herein.

Where the web document310includes actual text312, the miniclient111receives the actual text312from the server120and displays the actual text312in a separate display window for the user.

Alternative Embodiments

Although example 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.