1. Field of the Invention
The present disclosure generally relates to a network based computer interaction and, more particularly, to generating a web-based user interface for a client device.
2. Description of the Related Art
Computer systems exist that enable a user to remotely access computer information, e.g., a database. In some instances a user will use a client device, e.g., cell phone, personal digital assistant (PDA), lap top computer, application specific device, and the like, to connect via a network to a server hosting the information. Such devices have a predefined interface for accessing the computer information from the server. The interface may be created by a program or agent executing on the device; however, such programs or agents require substantial processing resources and memory availability which make them unsuitable for many devices. The interface, produced by such programs or agents, is static—the user enters data and/or queries in predefined fields.
More recently, to accommodate a wide range of devices, browsers have been used to launch web pages that form the interface to the computer information (i.e., web-based user interface). Although web-based user interfaces generally utilize less computer resources than application (program) based interfaces, the interface remains static, i.e., once created, the interface remains the same for each user. Such a static nature to the interface may impact worker productivity in that the interface cannot be easily optimized to their work habits.
Specifically, web pages are typically static (as predefined in HTML form) or dynamically generated using an application server (as in PHP or ASP form). This arrangement results in either a completely static web page, or a web page that must be rendered by the browser any time an update is made by the application server. Furthermore, anytime an update is made to the page, the application server must resend the entire page. This process is time consuming and may result in a sluggish and time consuming user experience.
Although applications exist which are capable of running interactive web sites, they typically require a large install, significant processing power, and a significant amount of data to be transmitted to and from the application server. These requirements make the applications unsuitable for uses on many types of devices, such as mobile devices. These devices are often limited to static interfaces for these reasons.
It would be advantageous if it were possible to access a web application through a user interface that does not require the installation of a large application or resending an entire web page. Therefore, there is a need in the art for a dynamic web user interface generator.
An embodiment of the invention comprises a method and apparatus for generating a web-based user interface. The method comprises generating an interface information packet, sending the interface information packet to a client device, and generating a user interface of the client device via a display engine in accordance with the interface information packet. The interface information packet comprises user interface information readable by a script-based application. The display engine comprises the script-based application.
An embodiment of the apparatus comprises a web-based user interface generator and a display engine. The web-based user interface generator generates an interface information packet comprising user interface definition information readable by a script-based application, and sends the information packet to a client device. The display engine, comprising the script-based application, parses the interface information packet and generates a user interface from the data contained therein.
So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.
The CPU 204 also executes the host application 212. The host application 212 listens for an incoming request from the network 106. In one embodiment, when the incoming request is received, the host application 212 executes a user interface generator 216 to create an interface information packet 218 comprising interface definition information for the interface of the client device 104. A person of ordinary skill in the art would recognize that in another embodiment of the invention, it is possible to incorporate the user interface generator 216 into the host application. When the user interface generator 216 is executed by the host application 212, it creates an interface information packet 218, as discussed in detail with respect to
In one embodiment, the host computer 102 may further comprise a protocol coupler 222. The protocol coupler 222 provides an interface for the gateway interface 112 to communicate with the user interface generator 216. The protocol coupler 222 translates communications received from a database application server 110 into a format readable by the user interface generator 216. The user interface generator 216 uses these communications to generate interface information packets 218 to generate the user interface 108.
In one embodiment, the host computer 102 may further comprise a client data table 214. The client data table 214 stores one or more client interface states 220. The client data table 214 resides in memory and may comprise a database, a data table, or any other data structure capable of storing client interface information. The client interface states 220 represent a current state of a client device user interface. In this embodiment, the user interface generator 216 queries the client data table 214 for the client interface state 220 comprising a device that sent the incoming network request. The interface information packet 218 is generated in accordance with the client information state 220 corresponding to the client device 104.
The CPU 302 also executes the client application 312. The client application 312 may comprise a web browser or a binary application that executes a web browser module. The client application 312 receives interface information packets 218 from the host application 212 executed by the host computer 102. In one embodiment, the client application 312 may provide an interface to a database application server 110 coupled to the host computer 102. The client application 312 may communicate with a host application 212 executed on the host computer 102, which may in turn communicate with the database application server 110. The host application 212 may modify the communications received from the client application 312 to make said communications suitable for interaction with the database application server 110. Responses to these communications may be received from the database application server 110 by the host application 212, and may in turn be communicated to the client application 312 by the host application 212. In this manner, the client application 312 may communicate with the database application server 110 when such communication would ordinarily not be possible. The client application 312 further comprises a display engine 310. The display engine 310 is executed from within the client application 312 for the purpose of generating the user interface 108. Interface information packets 218 received by the client application 312 are processed by the display engine 310. In one embodiment, the client application 312 is, at least in part, a web browser and the display engine 310 executes within the browser.
The display engine 310 generates the user interface in accordance with the data contained within the interface information packet 218. In one embodiment, the display engine 310 comprises a set of commands provided in a scripted language. Such applications are commonly used in web-based applications because they do not require binary executable code to be sent to the client device 104. One example of such a scripted language is JAVASCRIPT.
The display engine 310 executes in a web browser environment, and accepts interface information packets 218 received via the web without the need for the web browser to render the interface itself. The task of generating the user interface 108 is left to the display engine 310, rather than the browser from which it was launched. In one embodiment, the display engine 310 generates the user interface 108 by modifying the Document Object Model (DOM) of a displayed web page. In this manner it is possible for the display engine 310 to generate a user interface 108 via the intermediate representations provided by the interface information packets 218, rather than resending the entire web page, as would normally be required.
The display engine 310 generates a user interface in accordance with the interface information packets 218 received from the host computer 102. The client application may receive the interface information packet 218 at any time, as they may be used for such purposes as refreshing a user interface screen.
At step 406, the user interface generator 216 accesses the client data table 214. Then, at step 408 the user interface generator 216 then determines the client interface state 220 corresponding to the client device 104 for which the interface information packet 218 is generated. At step 410, the interface information packet 218 is generated comprised of the client information state 220 determined in step 408. At step 412, the interface information packet 218 is communicated to the host application to send the interface information packet 218 to the client device 104. At step 414, the user interface generator 216 saves the client interface state 220 corresponding to the client device 104 in the client data table 214. The method ends at step 416 after the packet has been sent and the client interface state 220 saved.
While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.
Number | Name | Date | Kind |
---|---|---|---|
6058375 | Park et al. | May 2000 | A |
6108309 | Cohoe et al. | Aug 2000 | A |
6397220 | Deisinger et al. | May 2002 | B1 |
6760745 | Tan et al. | Jul 2004 | B1 |
6822663 | Wang et al. | Nov 2004 | B2 |
6970823 | Yago et al. | Nov 2005 | B1 |
6993712 | Ramachandran et al. | Jan 2006 | B2 |
7093195 | Lynch et al. | Aug 2006 | B2 |
7137127 | Slotznick | Nov 2006 | B2 |
7278110 | Wugofski | Oct 2007 | B1 |
7386485 | Mussman et al. | Jun 2008 | B1 |
7493591 | Charisius et al. | Feb 2009 | B2 |
7577601 | Rademacher et al. | Aug 2009 | B1 |
7752299 | Bookman et al. | Jul 2010 | B2 |
7792784 | Gupta | Sep 2010 | B2 |
7805523 | Mitchell et al. | Sep 2010 | B2 |
7809600 | Como et al. | Oct 2010 | B1 |
7899763 | Machulsky et al. | Mar 2011 | B2 |
7970943 | Lin et al. | Jun 2011 | B2 |
8010605 | Chang | Aug 2011 | B2 |
8166130 | Reinart | Apr 2012 | B2 |
20020083154 | Auffray et al. | Jun 2002 | A1 |
20030014496 | Spencer et al. | Jan 2003 | A1 |
20030231750 | Janveja et al. | Dec 2003 | A1 |
20060041618 | Chang | Feb 2006 | A1 |
20060212846 | O'Farrell et al. | Sep 2006 | A1 |
20060265662 | Gertzen | Nov 2006 | A1 |
20070094597 | Rostom | Apr 2007 | A1 |
20070112958 | Kim | May 2007 | A1 |
20070124670 | Finck et al. | May 2007 | A1 |
20070150820 | Salvo | Jun 2007 | A1 |
20070220527 | Tolgu et al. | Sep 2007 | A1 |
20070234235 | Scott | Oct 2007 | A1 |
20070238488 | Scott | Oct 2007 | A1 |
20070238489 | Scott | Oct 2007 | A1 |
20070256003 | Wagoner et al. | Nov 2007 | A1 |
20080040653 | Levine | Feb 2008 | A1 |
20090013267 | Cudich et al. | Jan 2009 | A1 |
20090013281 | Helfman et al. | Jan 2009 | A1 |
20090204583 | Hechler et al. | Aug 2009 | A1 |
20090228490 | Faenger | Sep 2009 | A1 |
20090318126 | Schimitzek | Dec 2009 | A1 |
20100005053 | Estes | Jan 2010 | A1 |
20100100823 | Ewe et al. | Apr 2010 | A1 |
20110111742 | Neil et al. | May 2011 | A1 |
20110307630 | Lange et al. | Dec 2011 | A1 |
20120110209 | Bonefas et al. | May 2012 | A1 |
20130060845 | Chalana et al. | Mar 2013 | A1 |
20130097095 | Rumig et al. | Apr 2013 | A1 |
20130103391 | Millmore et al. | Apr 2013 | A1 |
Number | Date | Country |
---|---|---|
2008031625 | Mar 2008 | WO |
Entry |
---|
International Search Report and Written Opinion mailed May 3, 2010 for PCT Application No. PCT/US2009/061469. |
GuiXT Designer Configuration Guide, GuiXT® by Synactive, 2009, Synactive, Inc. Foster City, CA, 13 pages. |
GuiXT Designer Installation Guide, GuiXT® by Synactive, 2009, Synactive, Inc. Foster City, CA, 17 pages. |
Number | Date | Country | |
---|---|---|---|
20100100823 A1 | Apr 2010 | US |