DYNAMIC CLIENT SYSTEM
FIELD OF THE INVENTION
This invention relates to the client-server relationship in an information processing arrangement, and particulaxly to downloading of information to a resource-limited client in a client-server relationship.
BACKGROUND OF THE INVENTION
The use of computer devices has proliferated in recent years. Many individuals rely on digital devices for a variety of personal information storage, information management, and information presentation functions. The digital devices so employed generally fall into two categories: personal computers (PC's) and personal data assistants (PDA's). PC's are typically embodied in "desktop" devices, or in "laptop" devices which are integrated in single units and which tend to be smaller and more portable than desktop PC's. PDA's are typically embodied in units considerably smaller than laptop PC's, and commonly in hand-held or "palmtop" devices.
Technological advances in recent years have made it possible for even laptop PC's to have advanced features, such as powerful central processing units (CPU's), large amounts of random-access memory (RAM), high-capacity mass-storage devices, and fast communication channels. Space considerations, however, limit the capabilities that can be incorporated into palmtop devices.
Often, PC's and palmtops are adapted to be connected via communications media to central sources of information. For example, such a device might be connected to the Internet to obtain current stock quotations. Typically, such connection follows a "client-server" model, with the PC or palmtop as the client and the central source of information as the server. In a connection to the Internet, the program running in the client is generally known as a "web browser".
The personal device typically has provision to present information to its user on a display screen. Typically, it also has provision for user interaction, wherein the user may request options in the display presentation by pressing keys on the device, which may be
either physical keys or "soft" keys presented on the screen. Some of the user requests may require the download of new information and the construction of an entirely new display for the screen. The new display may contain new data, is specified to be in a particular format, and is specified to contain particular controls (e.g., soft keys appearing on the display screen for specifying what user actions may be taken).
Languages have been devised for sending such information over communication media to remote devices. Hypertext Markup Language (HTML) is a language that has found ubiquitous use for sending such information to PC's. HTML contains new content data along with formatting information for specifying the format in which that content data should be displayed on screen.
For a particular type of data (stock quotes, for example), the format of the data remains constant, and it is only the content that needs to be changed dynamically. Yet the languages in use for PC's (such as HTML) download both the content and the format in an inseparable manner. HTML is generally textual in nature (consists of text to be displayed with textually-expressed control codes embedded throughout) and thus requires a lot of computation in the PC to interpret the textual language and produce the intended display. This does not pose a problem in PC's since PC's can have advanced hardware capabilities; however, the computation required is extremely onerous for the hardware capabilities that can be embodied in a palmtop device. Java is another language used to download new information from a server to a PC client. The download consists mainly of instructions in the Java programming language, and requires a "virtual Java machine" in the client device to execute the Java program. Again, a virtual Java machine may be constructed in a PC with relative ease by virtue of the advanced hardware capabilities attainable in a PC. However, a virtual Java machine requires a significant amount of computing resources and is thus difficult to construct in a palmtop device, and would have to have curtailed capability. Further, Java is not a native language for palmtop devices and its use would entail commands and modes of operation unfamiliar to palmtop users.
Fig. 1 illustrates the conventional operation of a PC receiving downloads from a network. Many client devices connect via a communication medium 15 to a server 10. One
such client device (20) is shown. Device 20 is equipped with a screen 22. Browser application 24 causes information to be displayed on screen 22 as specified by application data 26. Screen 22 includes areas in which a user's touch may be detected, and the display specified by application data 26 includes "soft keys" in such areas by means of which a user may initiate a user interface (UI) event 210. A UI 210 triggers activity within browser application 24.
Fig. 2 is a block diagram of the activity triggered by UI event 210. UI event 210 causes dispatch to decision block 214 which determines whether the event may be serviced locally within the device (e.g., it may be a request to scroll through data previously provided to the client device 20), or whether a request must be forwarded to server 10. Logic 214 dispatches to logic 216 which is provided to perform a local action. For UI's 210 requiring new downloads, logic 214 prepares and forwards a download request 218 to server 10.
Server 10 responds to request 218 and sends a download 220, typically in a markup or scripting language such as HTML or Java. Download 220 in this conventional scheme comprises an entire new set of application data 26, specifying a new screen display, including data, format (data layout), and controls (e.g., soft keys to be displayed and information as to the actions to be taken in response).
Sending the format information every time new content information is sent represents a waste of bandwidth and transmission time. Sending controls (soft key layouts) along with the data requires the use of custom controls, determined by the provider of data, as opposed to native controls provided by calls to the operating system within client device 20. Native controls have the advantage of being familiar to the user of a client device 20, while custom controls may be unfamiliar and may vary from one provider's data to another. Native controls are based in the device's native operating system and thus are inherently more robust than any custom controls can be.
Other languages have been devised for downloading from servers to handheld devices. Handheld Markup Language (HDML) is a language intended for communicating to the display screens of wireless (e.g., cellular) telephones. HDML is designed to be efficiently received and processed by small (resource-limited) computing devices. HDML is transmitted in binary (not textual) form. HDML transmits all the information required for a screen
display— the layout and control information as well as the content information, although the layout and control information tend to remain constant while only the content changes.
Wireless Application Protocol (WAP) is a group of specifications for wireless telephone applications. WAP includes Wireless Markup Language (WML), and is a generalized form of HDML.
Web browsers for handheld devices are available that can display HTML pages, albeit in a limited manner. The browser application consists of program code in the handheld device that does not change; HTML downloads contain display presentation (layout) and content both. Displayed controls and metaphors are as specified by the provider of data and are not the ones native to the handheld device.
When layout and content are downloaded together, all the logic for trapping events and carrying actions is bound inside the download. Thus code must be written for each screen layout, for each possible event. While this is feasible for perhaps a dozen screen layouts, with perhaps a dozen events on each layout, it becomes unmanageable when a large number of screen layouts is contemplated.
A significant supplier of handheld devices is 3Com Corporation, which markets a line of devices known as "Palm"-- for example, Palm I, Palm II, and so on. Web browsers called Palm Query Applications (PQA's) are available to access Internet services using the Palm VII. A PQA has a core application in which display layout and controls are prespecified, and which can request download of new content information. PQA's have the advantage of using controls native to Palm devices and thus familiar to owners of Palm devices. Layout and controls cannot be changed by downloads from a network, although they can be changed using a local computer (such as a PC) intermediately. Although layout and controls change infrequently compared to volatile data such as stock prices, the inability to change layout and controls via the network is a significant drawback.
There is thus a need for a system and method of downloading display content, format, and controls separately in downloads from a server to a limited-function client.
It is thus an object of the present invention to provide separate downloading of display format, display content, and display controls from a server to a limited-function client.
It is a further object of the present invention to download display format, display content, and display controls from a server to a limited-function client in a form easily assimilated by the limited-function client.
It is a further object of the present invention to provide a client device which retains format and control information when new content information is downloaded.
It is a further object of the present invention to provide a client device which displays native controls according to identifications thereof included in downloads of display content from a server.
These and other objects of the invention will become apparent to those skilled in the art from the following description thereof.
SUMMARY OF THE INVENTION
In accordance with the teachings of the present invention, these and other objects may be accomplished by the present systems and methods of downloading content data to be displayed on a client device separately from format information which specifies layout of the display and separately from control information which specifies the user controls to be visible on the display and the actions to be taken responsive to a user's actuations of those controls. An embodiment of the present invention includes a user interface language for downloading content data; the language has provision for invoking format information resident in the client device and for providing current content information to be displayed in the invoked format. The invention will next be described in connection with certain exemplary embodiments; however, it should be clear to those skilled in the art that various modifications, additions and subtractions can be made without departing from the spirit or scope of the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
The invention will be more clearly understood by reference to the following detailed description of an exemplary embodiment in conjunction with the accompanying drawings, in which: Fig. 1 (prior art) is block diagram of a conventional client device connected to a server through a communication medium in a client-server arrangement;
Fig. 2 (prior art) is a high-level diagram of a conventional method of responding to a user interface request in the arrangement depicted in Fig. 1;
Fig. 3 is a block diagram of a client device according to the present invention connected to a server through a communication medium in a client-server arrangement;
Figs. 4 A, 4B, and 4C comprise a high-level block diagram of a method according to the present invention of responding to a user interface request in a client device in the arrangement depicted in Fig. 3;
Fig. 5 illustrates a typical download according to the present invention, its resultant display, and the correlation between portions of the download and portions of the display.
DESCRIPTION OF THE INVENTION
Fig. 3 is a block diagram including a client device 30 which may receive information in a client-server arrangement according to the present invention. Application parameters 36 and application content 38 are separate entities and are inputs to browser application 34. Browser application 34 can be permanent for the life of device 30. Application parameters are typically downloaded infrequently (on the order of once in several months, as new releases of applications are developed). Application content may be downloaded quite frequently, perhaps on the order of every few minutes when a user is actively following volatile data, such as stock prices. Application server 14 can download new application parameters 36 (including Events
Maps 36A and UI Templates 36 B). Content server 12 can download new application content 38. Downloaded information is loaded into the respective storage areas 36 and 38 under control of browser application 34 by means not shown but known to those in the art. A user, viewing screen 32, may press one of the soft keys displayed thereon and thus initiate a UI event 310, which in turn initiates a corresponding activity as determined by events map 36A. Figs. 4A, 4B, and 4C contain a block diagram of activity triggered by a UI 310 according to the present invention. In Fig. 4 A, UI event 310 initiates decision block 310, which determines whether the requested action can be performed locally (for example, scrolling of information that is already in device 30) or if a download request is indicated. If the action can be performed locally, dispatch is to box 314 which performs the requested action. Otherwise block 316 determines whether a parameter download request is indicated, and if so block 316 issues parameter download request 318 over communication medium 15 to application server 14.
If block 316 determines that an application parameter download is not required, block 320 determines whether a download of new application content is called for. If so, content download request is issued over communication medium 15 to content server 12.
Fig. 4B shows the actions that arise when content server 12 sends a download 340 of new application content (which is in response to request 322 on Fig. 4A). Block 342 receives download 340 and loads the newly provided application content into content storage 38 (shown on Fig. 3) Block 344 determines whether the new content calls for the use of any
templates that are not resident in UI templates 36B, and if so it dispatches through callout A to Fig. 4A where a request 318 for parameter download is initiated. Otherwise, block 346 is reached, displaying the current content according to the current templates.
Fig. 4C shows the actions flowing from a new parameter download 360 from application server 14, which occurs in response to request 318 (Fig. 4A). Block 362 receives download 360 and determines whether it contains a new template. If yes, block 364 stores the new template as one of templates 36B. If the download is not a new template, block 366 determines whether it is a new event, in which case block 368 stores it in events map 36A. After storing the new event or template, blocks 364 and 368 dispatch to block 346 on Fig. 4B (through callout B) to display the current content 36 according to current templates 36B and to be responsive to user keypresses according to current events map 36A.
Fig 5. shows a typical display on screen 32 of a palmtop device 30, and a description of a content for a download 340 specifying that display. Fig. 5 shows but a single example of a screen display, but those in the art realize that the system and method of the present invention permits a broad range of formats, controls, and content. The download 340 is specified by a novel language called Palmtop device User interface Markup Language (PUML). Thus the first line of the description specifies that it follows the PUML document type definition (DTD). PUML is a high-level language, but it is apparent to those in the art that the PUML statements shown in Fig. 5 may be translated to binary for compact, rapid downloading over communication medium 15 and for facilitating interpretation by browser application 34. Browser application 34 is provided with a component for interpreting the compiled translated PUML, as is known to those in the art.
Element 501 specifies that screen display 32 shall be in a layout specified by a form ID of 1900. The form definitions are part of application parameters 36. The form with ID of 1900 has probably been provided to device 30, perhaps by download, at some point in the past. As will be discussed below, if it has not been provided to device 30 a download of it will now be requested. Soft keys 510 (in the present example, "Refresh", "Add Portf", "Quote View", and scroll buttons) are specified as part of the identified form, and are reflected in UI templates 36B and events map 36A.
Item 502 specifies a list format identified by an ID of 1913 (available in application parameters 36, provided in the remote past or in the immediate past as described above), and item 503 specifies the content of one the lines in the list, in this example the line "NB Personal". Item 504 specifies prestored field layouts identified by ID numbers of 1904 and 1905
(predefined as "Total Value" and "Buy Power"), and provides current contents for those fields (1,274,00 and 460,999, respectively).
Item 505 identifies a prestored table layout identified by ID number 1907, and specifies the present content for the "MSFT" line in that table. It will thus be seen that the invention efficiently attains the objects set forth above, among those made apparent from the preceding description. In particular, the invention provides separate downloading of display format, display content, and display controls from a server to a client. The invention further provides downloading of display format, content, and controls in a form easily assimilated by a limited-function client. The invention further provides a client device which retains format and control information when new content information is downloaded. The invention further provides a client device which displays controls according to identifications thereof made in downloads from a server.
Those skilled in the art will appreciate that the configurations depicted in Figs. 3, 4A- 4C, and 5 provide a palmtop device providing separate downloading of content, format, and controls.
It will be understood that changes may be made in the above construction and in the foregoing sequences of operation without departing from the scope of the invention. It is accordingly intended that all matter contained in the above description or shown in the accompanying drawings be interpreted as illustrative rather than in a limiting sense. It is also to be understood that the following claims are intended to cover all of the generic and specific features of the invention as described herein, and all statements of the scope of the invention which, as a matter of language, might be said to fall therebetween.