US20060265662A1 - System and method for generating and updating user interfaces of web-based applications - Google Patents

System and method for generating and updating user interfaces of web-based applications Download PDF

Info

Publication number
US20060265662A1
US20060265662A1 US11/133,910 US13391005A US2006265662A1 US 20060265662 A1 US20060265662 A1 US 20060265662A1 US 13391005 A US13391005 A US 13391005A US 2006265662 A1 US2006265662 A1 US 2006265662A1
Authority
US
United States
Prior art keywords
web
gui
client
events
update
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/133,910
Inventor
Joshua Gertzen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Custom Credit Systems LP
Original Assignee
Custom Credit Systems LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Custom Credit Systems LP filed Critical Custom Credit Systems LP
Priority to US11/133,910 priority Critical patent/US20060265662A1/en
Assigned to CUSTOM CREDIT SYSTEMS, L.P. reassignment CUSTOM CREDIT SYSTEMS, L.P. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: GERTZEN, JOSHUA J.
Priority to PCT/US2006/015871 priority patent/WO2006124215A2/en
Publication of US20060265662A1 publication Critical patent/US20060265662A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Definitions

  • This disclosure relates generally to the field of web-based applications and more specifically to a system and method for generating and updating user interfaces of web-based applications.
  • the World Wide Web (the “web”) has allowed companies and other entities to provide publicly-accessible web sites to market their products and services and to interact with customers. Furthermore, many companies have used the ease of deployment, centralized management, and high availability that web applications provide to maintain internal business process applications built using web-based technologies. However, the transition of such applications to a web-based environment has created a number of challenges to application developers that did not exist under desktop application development frameworks that were previously used to implement these applications.
  • GUI graphical user interface
  • HTML Hypertext Markup Language
  • the request/response model utilized by these frameworks requires the logic flow of a web-based application to be built in a fragmented manner.
  • each client request goes to a specific request handler on the server (for example, a specific Active Server Page (ASP) or PHP Hypertext Preprocessor (PHP) page on the server) and that request handler is designed to respond exclusively to that request, typically by generating HTML to send as the response.
  • ASP Active Server Page
  • PHP PHP Hypertext Preprocessor
  • Some frameworks have been developed to persist state information across multiple requests in a request/response model, but the vast majority of the frameworks do not address the fragmented logic issue. Those frameworks that do address this issue still require the application developer to program according to the request/response model, which often creates unneeded complexity and can limit the capabilities of a web-based application.
  • a method for generating and updating a graphical user interface includes receiving, at a web server, a request for a web-based application from a web client. The method further includes communicating an initial web page to the web client including instructions for generating a GUI for the application that includes one or more components and communicating support scripts to the web client. In addition, the method includes receiving one or more action events from the web client at the web server indicating one or more user actions associated with the GUI that have occurred at the web client. Furthermore, the method includes generating one or more update events at the web sever based on the received action events and communicating the update events to the web client. The update events instruct the web client to call one or more of the support scripts to update one or more components of the GUI in response to the user actions.
  • GUI graphical user interface
  • GUIs generated using particular embodiments may include GUI components such as a tree, a menu, a table, a tab folder, combo boxes, and multi-column drop-down menus. Additionally, such GUIs may include features that are not provided by HTML forms, such as text field edit masks and text area length limits. Furthermore, these GUI components are generated in certain embodiments using server-side programming libraries that provide the ability to respond immediately to various events a user may trigger in a GUI, such as focus, selection change, button click, and the like. Therefore, such GUIs provide interactive and low-latency response to user actions.
  • the desktop application development model used by particular embodiments may be used to create web-based applications that have flow control and logic that executes on a web server in a “top-down” fashion in the same way that a desktop application handles logic (typically with only one entry point).
  • This top-down execution enables server-side web applications to interact with a user at a web client to update a GUI based on a user's actions and to return to the server-side application logic to continue where it left off before the update.
  • the desktop application development model used by certain embodiments allows the application state to be stored in variables at various levels of scope, much in the same manner that an application's state is tracked when developing a desktop application. This is unlike applications based on the request/response model that requires state to be maintained using a special mechanism.
  • particular embodiments of the present invention define a process for constructing web-based applications and associated GUIs using the programming language of the server-side development environment and provide programming libraries implementing this process. This eliminates the need for the developer to be familiar with HTML, Cascading Style Sheets (CSS), the Document Object Model (DOM), client-side JavaScript, browser specific object models or any other web programming tools required to construct a web application using previous techniques. Furthermore, unlike HTML & CSS (which approach the layout of a web page from a desktop publishing standpoint), particular embodiments of the present invention provide an application development framework like the desktop development model (which, as a simple example, would set the x, y, width and height properties of a component in order to place it on the screen).
  • FIG. 1 illustrates an example system for generating and updating graphical user interfaces (GUIs) according to one embodiment of the present invention
  • FIG. 2 illustrates an example GUI and updates the GUI based on user actions in the GUI
  • FIG. 3 is a flowchart illustrating an example method for generating and updating a GUI.
  • FIG. 1 illustrates an example communication system 10 for generating and updating graphical user interfaces according to one embodiment of the present invention.
  • Communication system 10 includes one or more clients 12 and one or more web servers 14 coupled via a network 16 .
  • communication system 10 enables a client 12 to request from the server 14 one or more graphical user interface (GUI) elements associated with a web-based application at the server 14 , enables the server 14 to communicate information to the client 12 to generate such GUI elements, and enables the client 12 and the server 14 to dynamically and incrementally update the GUI elements on the client 12 based on continuing input from a user of the client 12 .
  • GUI graphical user interface
  • system 10 provides an event-driven framework for constructing distributed, web-based applications that are created and operate in a similar manner as desktop applications.
  • Such web-based applications created and executed using system 10 automatically maintain state with the client 12 with which the user of the application is associated, maintain a hierarchical flow of application logic on the server 14 , provide application developers a consolidated, abstracted syntax for generating GUIs, and provide users of the applications with a rich, dynamic GUIs.
  • Each client 12 may include input devices, output devices, mass storage media, processors, memory, interfaces, communication ports, or other appropriate components for communicating requests to the server 14 and for viewing or processing the information communicated from the server 14 , as described in further detail below.
  • Client 12 may be implemented as a personal computer, workstation, video-conferencing equipment, a wireline or wireless communication devices, a personal digital assistant (PDA), or any other suitable device or application.
  • Client 12 may include the typical, well-known components of a web browser.
  • the client 12 includes a web browser communication layer 40 that handles communications with the server 14 over the network 16 .
  • Browser communication layer 40 may be of the type commonly used in conventional web browsers, such as Microsoft's Internet Explorer.
  • client 12 also includes a web browser display 42 that handles the actual rendering of GUIs and other content for display to a user and which may be of the type found in conventional web browsers.
  • client may include an “XmlHttpRequest” component 44 (included with most conventional web browsers) that allows client-side script, typically JavaScript, to send and receive HTTP messages to and from the server 14 though the browser communication layer 40 .
  • GUI elements may include one or more text boxes, one or more drop-down boxes, one or more check boxes, one or more radio buttons, one or more titles, one or more charts, and/or any other suitable GUI elements according to particular needs.
  • GUI elements may include elements of a HyperText Markup Language (HTML) form that includes scripts, styles, and other components, as described further below.
  • HTML HyperText Markup Language
  • GUI elements are referred to primarily as “elements,” the GUI elements may include GUI fragments, GUI components, or any other suitable subdivisions of a GUI.
  • client 12 and “user” of client 12 may be used interchangeably without departing from the scope of this disclosure.
  • the client 12 may comprise a computer that includes an input device, such as a keypad, touch screen, mouse, or other device that can accept information, and an output device that conveys information associated with the operation of the server 14 , including digital data, visual information, or any other suitable information.
  • Both the input device and output device may include fixed or removable storage media such as a magnetic computer disk, CD-ROM, or other suitable media to both receive input from and provide output to users of the client 12 .
  • Server 14 may include any suitable server or other computer for storing and communicating information, such as GUIs, over network 16 .
  • This server may include one or more electronic computing devices operable to receive, transmit, process and store data associated with system 10 .
  • the server 14 may include one or more general-purpose personal computers (PCs), workstations, server computers, or any other suitable devices. Such devices may include input devices, output devices, mass storage media, processors, memory, interfaces, communication ports, or other appropriate components.
  • Server 14 may implement any suitable software for receiving requests for information from the client 12 and communicating that information over the network 16 to the client 12 .
  • the server 14 may include any suitable software and/or hardware in any combination suitable to present the client 12 with one or more GUI elements as described below. Particular example software components of the embodiment of server 14 illustrated in FIG. 1 are described below in further detail.
  • Server 14 may include an interface for communicating with other computer systems, such as clients 12 over the network 16 in a client-server or other distributed environment.
  • Network 16 facilitates wireless and/or wireline communication between the server 14 and clients 12 .
  • Network 16 may include one or more local area networks (LANs), radio access networks (RANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of the global computer network known as the Internet, and/or any other network of wireline, optical, wireless, or other communication links.
  • Information may be communicated over the network 16 using Internet Protocol (IP) packets, Frame Relay frames, Asynchronous Transfer Mode (ATM) cells, or any other suitable communication format.
  • Server 14 may communicate with the client 12 via the network 16 using any suitable communication protocol. For example, in particular embodiments, the client 12 and the server 14 may communicate using HTTP.
  • IP Internet Protocol
  • ATM Asynchronous Transfer Mode
  • particular embodiments of the present invention maintain a persistent connection between the server 14 and the client 12 over the network 16 .
  • a persistent connection means that the client 12 may obtain information from the server 14 without having to submit a form to the server 14 , as is typical with many web-based applications. Additionally, the sever 14 may directly notify the client 12 of any changes that need to occur within the GUI. Java applets, inline frames (iframes), XML HTTP requests, ActiveX controls, and/or any other suitable mechanisms may be used to provide this persistent connection.
  • the server 14 includes a Java servlet container 20 that provides functionality to receive requests from and send responses to the client 12 using HTTP.
  • Servlet container 20 also provides support for pluggable request handlers (“servlets”) that can be configured to respond to requests from the client 12 for specific uniform resource locator (URL) addresses.
  • Event handling servlet 22 is one such servlet.
  • Server 14 also includes one or more applications 24 that are stored on or associated with the server 14 .
  • Each application 24 includes application logic 26 that is operable to construct, in cooperation with other components of the server 14 and the client 12 , GUIs or other content to present to a user of the application 24 at the client 12 .
  • a user of the client 12 inputs a URL for a specific application 24 that resides on the server 14 .
  • the web browser communication layer 40 of the client 12 establishes a connection to the server 14 and sends an HTTP request to the Java servlet container 20 of the server 14 .
  • Java servlet container 20 receives the URL and analyzes it to determine the appropriate request handling servlet, which in this case is the event handling servlet 22 .
  • Java servlet container 20 then communicates a Request object that represents the HTTP request from the client 12 .
  • Java servlet container 20 also creates an HTTP session 28 after receiving the initial HTTP request.
  • the event handling servlet 22 Upon receiving the Request object, the event handling servlet 22 creates a new instance of the application 24 identified by the HTTP request and the Request object. The instance of the application 24 is then stored on the HTTP session 28 so that it may be retrieved later when action events from a specific client 12 are received. This new instance of the application 24 starts in a new thread, and this new instance in turn calls the entry point for the associated application logic 26 .
  • the application logic 26 uses commands from a user interface component library 30 to construct and present all aspects of a GUI that is presented to the user of the application 24 at the client 12 .
  • User interface component library 30 includes all of the commands necessary to execute appropriate support scripts 48 to construct and modify GUIs associated with the application 24 based on input from the user at the client 12 .
  • a developer may develop a web-based application that generates rich GUIs using these commands and without having to know to use HTML, Cascading Style Sheets (CSS), the Document Object Model (DOM), client-side JavaScript, browser specific object models or any other web programming tools typically required to construct a web application. All of this “know-how” is pre-programmed into support scripts 48 that may be executed using commands from library 30 .
  • the server 14 Upon receiving an initial request from the client 12 and initiating a new instance of the appropriate application 24 , the server 14 returns a simple “skeleton” HTML page that contains a single “DIV” tag in its body (which serves as the insertion point for dynamic updates to the GUI created using the HTML page, as described below), a “LINK” tag pointing to a Cascading Style Sheet (CSS) that contains the styles for GUI components, and a series of “SCRIPT” tags that instructs the client 12 to download from the server 14 and execute a client event handler 46 and user interface client-side support scripts 48 used to generate GUIs for display to the user of the client 12 .
  • CCS Cascading Style Sheet
  • the client event handler 46 is a counterpart to the event handling servlet 22 on the server 14 and receives requests from the server 14 and dispatches the requests to appropriate components of the client 12 .
  • the CSS serves as a universal style sheet that defines the “look” of all the GUI components displayed at the client 12 as a part of the application 24 . Each of the GUI components are based on this style sheet.
  • the client 12 after sending an initial HTTP request to the server 14 for a particular application 24 , the client 12 receives from the server 14 a simple web page framework, a number of support scripts 48 , and instructions to execute particular ones of these support scripts 48 to create an initial GUI (or GUIs) for display to a user of the client 12 . Therefore, the server 14 does not generate an HTML page that includes all the necessary HTML code to generate a GUI, but rather sends a skeleton HTML page with appropriate scripts that the client 12 may run itself to create the GUI. Furthermore, as is described below, once the user of the client 12 begins to interact with the GUI, the client 12 sends user interface “action events” to the server 14 to indicate the user's interaction with the web page (for example, the selection of particular items in the GUI).
  • the server 14 communicates further commands (“update events”) to the client 12 to execute particular support scripts 48 that cause the GUI to be updated incrementally at the client 12 based on the user's interactions with the GUI.
  • update events refers to further commands
  • the client event handler 46 instantiates an XmlHttpRequest object 44 that is then instructed to make an asynchronous HTTP GET request.
  • This GET request is communicated to the event handling servlet 22 for the application 24 via the browser communication layer 40 and the Java servlet container 20 .
  • the servlet 22 Upon receiving this GET request, the servlet 22 will block (not return a response) until one or more update events for the application 24 are generated from the user interface component library 30 in response to one or more action events received from the client 12 (these commands are used to execute particular support scripts 48 at the client 12 ).
  • the XmlHttpRequest object 46 is used to send an HTTP POST command containing the action event to the event handling servlet 22 on the server 14 , at which time the application 24 is retrieved from the HTTP Session 28 and the appropriate GUI component of the application 24 is notified of the action event.
  • the GUI component then calls/invokes any event listeners that have been attached to the component (the server 14 instantiates event listeners associated with the various components in the GUI and with user actions that may occur with respect to those components when the GUI is initially generated).
  • update events may include commands from interface component library 30 to execute particular support scripts 48 ).
  • update events may include commands from interface component library 30 to execute particular support scripts 48 .
  • a value being entered into a text field of the GUI by the user might result in an update event that causes other fields to be enabled or the selection of an item in a drop-down menu might result in an update event that causes items in another drop-down menu to be changed.
  • the servlet 22 When an initial update event is generated, the servlet 22 will unblock and return a response, containing a series of function calls to be made using the support scripts 48 , to the XmlHttpReqeust object 44 .
  • the XmlHttpReqeust object 44 then forwards the response to the client event handler 46 , which in turn calls the functions defined in the response.
  • These function calls result in dynamic updates to the Document Object Model (DOM) associated with the GUI being displayed and thus changes the GUI in the web browser display 42 .
  • DOM Document Object Model
  • the entire process of using the XmlHttpRequest object 46 to make an asynchronous requests to the server 14 (in response to action events) and receive update events from the server 14 may repeat indefinitely until either the browser associated with the client 12 is closed or a special event is received from the server 14 signaling that the application instance has terminated.
  • HTTP commands and particular web components are described as being used by the server 14 and the client 12 to generate and update GUIs, any suitable commands and components providing similar functionality may be used and are within the scope of the present invention.
  • FIG. 2 illustrates an example GUI 100 generated by server 14 and client 12 and updated to the GUI 100 based on user actions in the GUI 100 .
  • GUI 100 is illustrated in an updated state after being initially generated at the client 12 based on the techniques described above and after some user interaction with GUI 100 .
  • FIG. 2 also illustrates particular steps involved in the process of updating the initial form of GUI 100 to its state as illustrated.
  • GUI 100 includes two drop-down menus 102 and 104 , a text field 106 , and a table component 108 . Again as an example, these components may be used to perform a database search on a number of different record types that are stored in a database (for example, a database associated with server 14 ).
  • GUI 100 the user may first select a record type to search in drop-down menu 102 .
  • Such a selection (in this example, the selection of the “customer” record type) is communicated as an action event to the server 14 (as indicated by arrow 120 ) and causes an item selection event listener 122 on the server 14 to be executed.
  • the event listener 122 queries a database to determine what fields for GUI 100 are valid for that record type and then causes appropriate update events to be sent back to the client 12 (as indicated by arrow 124 ).
  • the client 12 would update the items contained in the “Search By” drop-down menu 104 and would update the columns displayed in the table 108 . Again, this is different than typical web-based applications in which the user of the client would submit an updated form to the server after selecting the record type and the server would communicate an entire new GUI to the client that is updated to reflect the record type selection.
  • the user may then select a parameter to search by using the drop-down menu 104 (these parameters where added in the update based on the record type selection).
  • the user may then enter a search value in the text field 106 and tab out of the field 106 or otherwise indicate the user is finished entering the search value.
  • associated action events may be communicated to the server 14 (as indicated by arrow 126 ) and may cause a “lose focus” event listener 128 on the server 14 to be executed.
  • the execution of the event listener 128 causes an associated database to be queried for records associated with the selection in the drop-down menu 104 that match the search value and causes update events to be sent back to the client 12 that would populate the table 108 with the search results (as indicated by arrow 130 ).
  • a GUI may be incrementally updated at the client 12 based on user actions (identified by action events) and corresponding update events communicated to and from the server 14 .
  • a simple GUI 100 is presented with a limited number of user actions, it should evident that many more GUI components may be included in a GUI, many more user actions may be monitored to update the GUI, and many more dependencies of GUI components upon one another may be implemented.
  • FIG. 3 is a flowchart illustrating an example method for generating a GUI. Specifically, this example method show the application logic, flow control, and state management for the generation and updating of GUI 100 and associated Guls, as described above in conjunction with FIG. 2 .
  • the method starts at step 200 where an application instance is created at the server 14 based on a request from the client 12 .
  • the request calls the entry point for an application 24 , which in turn executes any application logic 26 that is to be executed prior to the GUI 100 being shown.
  • a new “dialog” window is instantiated and a number of GUI components are added to the dialog window instance to create the GUI 100 .
  • the server also associates one or more event listeners with the GUI components.
  • the newly constructed dialog is then shown to the user at the client 12 by generating GUI rendering instructions (referring to support scripts 48 ) and communicating these to the client.
  • the application instance at the server then transitions into a wait mode.
  • the client 12 generates the GUI 100 at step 208 based on the GUI rendering instructions. As described above in conjunction with FIG. 2 , one of the actions the user may take in the GUI 100 is to select a record type to search using the “Record Type” drop-down menu. At step 210 of the example method, the client 12 receives such a record type selection from the user. At step 212 , the client 12 communicates an action event to the server 14 indicating the record type selection and the server 14 executes an appropriate event listener associated with the record type GUI component. The server 14 then generates one or more update events based on the action event and communicates these update events to the client 12 at step 214 . At step 216 , the GUI 100 is updated at the client 12 based on the update events.
  • the “Search By” drop down menu and the table headings may be updated to reflect the record type selection.
  • the client 12 may receive a search value entry from the user.
  • the client 12 communicates an action event to the server 14 indicating the search value entry and the server 14 executes an appropriate event listener associated with this GUI component (as described above, this event listener may then initiate a database search to find records matching the entered search value).
  • the server 14 then generates one or more update events based on the action event and communicates these update events to the client 12 at step 222 .
  • the GUI 100 is updated at the client 12 based on the update events. For example, as described above, the table of the GUI 100 may be updated to show the matching database records.
  • this example method also provides a further option in GUI 100 for the user to select a particular record in the updated table to receive additional information related to that record. Therefore, at step 226 , it is determined whether such additional details regarding a record are requested (for example, by the user clicking on the record entry in the table). If no such request is received, the example method proceeds to step 228 . However, if such a request is received, the method proceeds to step 230 . At step 230 , the server 14 receives this request (as an action event) and removes the dialog (the dialog illustrated in FIG. 2 ) from the GUI. The application 24 then resumes from its waiting mode at step 234 .
  • the server 14 Based on the received action event, the server 14 generates a new dialog used to show the details of the selected record (not illustrated) and shows this dialog (in a similar manner as described above for the “search” dialog).
  • the application 24 again transitions into a waiting mode. Such transitions to and from a waiting mode at the point at which the application entered the waiting mode show how the application flow is “top-down” and shows how the application can maintain state (since it returns to the point at which it was left after sending a dialog to the client 12 and updating that dialog).
  • a selection may be received in the “record detail” dialog requesting a return to the search dialog. If so, the method may them return to step 202 and the method may repeat.
  • step 228 it is determined whether the user desires to perform further searching in the GUI 100 (for example, the user may simply begin a new search by selecting a new record type, may select a “New Search” button (not illustrated), or take any other suitable action). If further searching is desired, the method returns to step 210 . Alternatively, the method could also return to step 218 . If no further searching is desired by the user at step 228 , then the method may proceed to step 240 if the user instead indicates that the application should be terminated. In this case, the server 14 receives this request to terminate (as an action event) and removes the dialog from the GUI at step 240 . The application 24 then resumes from its waiting mode at step 242 and the application instance is terminated at step 244 .
  • the server 14 receives this request to terminate (as an action event) and removes the dialog from the GUI at step 240 .
  • the application 24 then resumes from its waiting mode at step 242 and the application instance is terminated at step 244 .
  • FIGS. 2 and 3 Although a particular method for generating and updating a GUI has been described with reference to FIGS. 2 and 3 , the present disclosure contemplates any suitable method for generating and updating a GUI in accordance with the present disclosure. Thus, certain of the steps described with reference to FIG. 2 or 3 may take place simultaneously and/or in a different order than as shown. Moreover, particular embodiments may use methods with additional steps, fewer steps, and/or different steps, so long as the methods remain appropriate. Furthermore, it should be understood that the GUIs described in FIGS. 2 and 3 are only examples, and that any of a large variety GUIs and GUI components may be generated and updated based on a large variety of user actions.

Abstract

A method for generating and updating a graphical user interface (GUI) includes receiving, at a web server, a request for a web-based application from a web client. The method further includes communicating an initial web page to the web client including instructions for generating a GUI for the application that includes one or more components and communicating support scripts to the web client. In addition, the method includes receiving one or more action events from the web client at the web server indicating one or more user actions associated with the GUI that have occurred at the web client. Furthermore, the method includes generating one or more update events at the web sever based on the received action events and communicating the update events to the web client. The update events instruct the web client to call one or more of the support scripts to update one or more components of the GUI in response to the user actions.

Description

    TECHNICAL FIELD
  • This disclosure relates generally to the field of web-based applications and more specifically to a system and method for generating and updating user interfaces of web-based applications.
  • BACKGROUND
  • The World Wide Web (the “web”) has allowed companies and other entities to provide publicly-accessible web sites to market their products and services and to interact with customers. Furthermore, many companies have used the ease of deployment, centralized management, and high availability that web applications provide to maintain internal business process applications built using web-based technologies. However, the transition of such applications to a web-based environment has created a number of challenges to application developers that did not exist under desktop application development frameworks that were previously used to implement these applications.
  • In a web-based environment, users frequently view information or other data using a browser providing a graphical user interface (GUI). Numerous web server frameworks have been developed to perform dynamic generation of GUIs for presentation to a user via a browser. All of these frameworks fundamentally work using the same concept—the request/response model. In this model, a Hypertext Transport Protocol (HTTP) request is received by a web server from a web client (usually a web browser) and an HTTP response is generated by the server and returned to the client. In the case of a web browser this response is typically Hypertext Markup Language (HTML) content that is rendered as a web page.
  • The request/response model utilized by these frameworks requires the logic flow of a web-based application to be built in a fragmented manner. In most cases, each client request goes to a specific request handler on the server (for example, a specific Active Server Page (ASP) or PHP Hypertext Preprocessor (PHP) page on the server) and that request handler is designed to respond exclusively to that request, typically by generating HTML to send as the response. While this fragmented approach works adequately for certain types of web content, it often fails to adequately address the needs of an application that requires a specific, connected flow of logic and significant state information to exist across multiple requests from a web client. Some frameworks have been developed to persist state information across multiple requests in a request/response model, but the vast majority of the frameworks do not address the fragmented logic issue. Those frameworks that do address this issue still require the application developer to program according to the request/response model, which often creates unneeded complexity and can limit the capabilities of a web-based application.
  • SUMMARY
  • A system and method for generating and updating user interfaces of web-based applications are provided. According to one embodiment, a method for generating and updating a graphical user interface (GUI) includes receiving, at a web server, a request for a web-based application from a web client. The method further includes communicating an initial web page to the web client including instructions for generating a GUI for the application that includes one or more components and communicating support scripts to the web client. In addition, the method includes receiving one or more action events from the web client at the web server indicating one or more user actions associated with the GUI that have occurred at the web client. Furthermore, the method includes generating one or more update events at the web sever based on the received action events and communicating the update events to the web client. The update events instruct the web client to call one or more of the support scripts to update one or more components of the GUI in response to the user actions.
  • Technical advantages of certain embodiments of the present invention may include a process for developing web-based applications using a desktop application development model to provide GUIs with complex user interface components that are beyond those provided by the standard set of HTML form controls. As examples only, GUIs generated using particular embodiments may include GUI components such as a tree, a menu, a table, a tab folder, combo boxes, and multi-column drop-down menus. Additionally, such GUIs may include features that are not provided by HTML forms, such as text field edit masks and text area length limits. Furthermore, these GUI components are generated in certain embodiments using server-side programming libraries that provide the ability to respond immediately to various events a user may trigger in a GUI, such as focus, selection change, button click, and the like. Therefore, such GUIs provide interactive and low-latency response to user actions.
  • In addition, the desktop application development model used by particular embodiments may be used to create web-based applications that have flow control and logic that executes on a web server in a “top-down” fashion in the same way that a desktop application handles logic (typically with only one entry point). This top-down execution enables server-side web applications to interact with a user at a web client to update a GUI based on a user's actions and to return to the server-side application logic to continue where it left off before the update.
  • Furthermore, the desktop application development model used by certain embodiments allows the application state to be stored in variables at various levels of scope, much in the same manner that an application's state is tracked when developing a desktop application. This is unlike applications based on the request/response model that requires state to be maintained using a special mechanism.
  • Additionally, particular embodiments of the present invention define a process for constructing web-based applications and associated GUIs using the programming language of the server-side development environment and provide programming libraries implementing this process. This eliminates the need for the developer to be familiar with HTML, Cascading Style Sheets (CSS), the Document Object Model (DOM), client-side JavaScript, browser specific object models or any other web programming tools required to construct a web application using previous techniques. Furthermore, unlike HTML & CSS (which approach the layout of a web page from a desktop publishing standpoint), particular embodiments of the present invention provide an application development framework like the desktop development model (which, as a simple example, would set the x, y, width and height properties of a component in order to place it on the screen).
  • It will be understood that the various embodiments of the present invention may include some, all, or none of the enumerated technical advantages. In addition other technical advantages of the present invention may be readily apparent to one skilled in the art from the figures, description, and claims included herein.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • For a more complete understanding of the present disclosure and its advantages, reference is now made to the following descriptions, taken in conjunction with the accompanying drawings, in which:
  • FIG. 1 illustrates an example system for generating and updating graphical user interfaces (GUIs) according to one embodiment of the present invention;
  • FIG. 2 illustrates an example GUI and updates the GUI based on user actions in the GUI; and
  • FIG. 3 is a flowchart illustrating an example method for generating and updating a GUI.
  • DETAILED DESCRIPTION OF THE DRAWINGS
  • FIG. 1 illustrates an example communication system 10 for generating and updating graphical user interfaces according to one embodiment of the present invention. Communication system 10 includes one or more clients 12 and one or more web servers 14 coupled via a network 16. In general, communication system 10 enables a client 12 to request from the server 14 one or more graphical user interface (GUI) elements associated with a web-based application at the server 14, enables the server 14 to communicate information to the client 12 to generate such GUI elements, and enables the client 12 and the server 14 to dynamically and incrementally update the GUI elements on the client 12 based on continuing input from a user of the client 12. In short, as described in further detail below, system 10 provides an event-driven framework for constructing distributed, web-based applications that are created and operate in a similar manner as desktop applications. Such web-based applications created and executed using system 10 automatically maintain state with the client 12 with which the user of the application is associated, maintain a hierarchical flow of application logic on the server 14, provide application developers a consolidated, abstracted syntax for generating GUIs, and provide users of the applications with a rich, dynamic GUIs.
  • Each client 12 may include input devices, output devices, mass storage media, processors, memory, interfaces, communication ports, or other appropriate components for communicating requests to the server 14 and for viewing or processing the information communicated from the server 14, as described in further detail below. Client 12 may be implemented as a personal computer, workstation, video-conferencing equipment, a wireline or wireless communication devices, a personal digital assistant (PDA), or any other suitable device or application. Client 12 may include the typical, well-known components of a web browser. In the example of FIG. 1, the client 12 includes a web browser communication layer 40 that handles communications with the server 14 over the network 16. Browser communication layer 40 may be of the type commonly used in conventional web browsers, such as Microsoft's Internet Explorer. Similarly, the client 12 also includes a web browser display 42 that handles the actual rendering of GUIs and other content for display to a user and which may be of the type found in conventional web browsers. Additionally, client may include an “XmlHttpRequest” component 44 (included with most conventional web browsers) that allows client-side script, typically JavaScript, to send and receive HTTP messages to and from the server 14 though the browser communication layer 40.
  • Although one client 12 is illustrated, the present disclosure contemplates system 10 including any suitable number of clients 12, according to particular needs. Each client 12 may submit one or more requests to the server 14 to provide one or more GUI elements for display at the client 12. The GUI elements may include one or more text boxes, one or more drop-down boxes, one or more check boxes, one or more radio buttons, one or more titles, one or more charts, and/or any other suitable GUI elements according to particular needs. In certain embodiments, the GUI elements may include elements of a HyperText Markup Language (HTML) form that includes scripts, styles, and other components, as described further below. Although GUI elements are referred to primarily as “elements,” the GUI elements may include GUI fragments, GUI components, or any other suitable subdivisions of a GUI.
  • It should be understood that “client 12” and “user” of client 12 may be used interchangeably without departing from the scope of this disclosure. As an example, the client 12 may comprise a computer that includes an input device, such as a keypad, touch screen, mouse, or other device that can accept information, and an output device that conveys information associated with the operation of the server 14, including digital data, visual information, or any other suitable information. Both the input device and output device may include fixed or removable storage media such as a magnetic computer disk, CD-ROM, or other suitable media to both receive input from and provide output to users of the client 12.
  • Server 14 may include any suitable server or other computer for storing and communicating information, such as GUIs, over network 16. This server may include one or more electronic computing devices operable to receive, transmit, process and store data associated with system 10. For example, the server 14 may include one or more general-purpose personal computers (PCs), workstations, server computers, or any other suitable devices. Such devices may include input devices, output devices, mass storage media, processors, memory, interfaces, communication ports, or other appropriate components. Server 14 may implement any suitable software for receiving requests for information from the client 12 and communicating that information over the network 16 to the client 12. In short, the server 14 may include any suitable software and/or hardware in any combination suitable to present the client 12 with one or more GUI elements as described below. Particular example software components of the embodiment of server 14 illustrated in FIG. 1 are described below in further detail.
  • Server 14 may include an interface for communicating with other computer systems, such as clients 12 over the network 16 in a client-server or other distributed environment. Network 16 facilitates wireless and/or wireline communication between the server 14 and clients 12. Network 16 may include one or more local area networks (LANs), radio access networks (RANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of the global computer network known as the Internet, and/or any other network of wireline, optical, wireless, or other communication links. Information may be communicated over the network 16 using Internet Protocol (IP) packets, Frame Relay frames, Asynchronous Transfer Mode (ATM) cells, or any other suitable communication format. Server 14 may communicate with the client 12 via the network 16 using any suitable communication protocol. For example, in particular embodiments, the client 12 and the server 14 may communicate using HTTP.
  • Unlike typical communications between web servers and web clients, particular embodiments of the present invention maintain a persistent connection between the server 14 and the client 12 over the network 16. Such a persistent connection means that the client 12 may obtain information from the server 14 without having to submit a form to the server 14, as is typical with many web-based applications. Additionally, the sever 14 may directly notify the client 12 of any changes that need to occur within the GUI. Java applets, inline frames (iframes), XML HTTP requests, ActiveX controls, and/or any other suitable mechanisms may be used to provide this persistent connection.
  • Referring to the particular embodiment illustrated in FIG. 1, the server 14 includes a Java servlet container 20 that provides functionality to receive requests from and send responses to the client 12 using HTTP. Servlet container 20 also provides support for pluggable request handlers (“servlets”) that can be configured to respond to requests from the client 12 for specific uniform resource locator (URL) addresses. Event handling servlet 22 is one such servlet. Server 14 also includes one or more applications 24 that are stored on or associated with the server 14. Each application 24 includes application logic 26 that is operable to construct, in cooperation with other components of the server 14 and the client 12, GUIs or other content to present to a user of the application 24 at the client 12.
  • To initiate the communication of a GUI or other information from the server 14, a user of the client 12 inputs a URL for a specific application 24 that resides on the server 14. In response to the input, the web browser communication layer 40 of the client 12 establishes a connection to the server 14 and sends an HTTP request to the Java servlet container 20 of the server 14. Java servlet container 20 receives the URL and analyzes it to determine the appropriate request handling servlet, which in this case is the event handling servlet 22. Java servlet container 20 then communicates a Request object that represents the HTTP request from the client 12. Java servlet container 20 also creates an HTTP session 28 after receiving the initial HTTP request.
  • Upon receiving the Request object, the event handling servlet 22 creates a new instance of the application 24 identified by the HTTP request and the Request object. The instance of the application 24 is then stored on the HTTP session 28 so that it may be retrieved later when action events from a specific client 12 are received. This new instance of the application 24 starts in a new thread, and this new instance in turn calls the entry point for the associated application logic 26. The application logic 26 uses commands from a user interface component library 30 to construct and present all aspects of a GUI that is presented to the user of the application 24 at the client 12. User interface component library 30 includes all of the commands necessary to execute appropriate support scripts 48 to construct and modify GUIs associated with the application 24 based on input from the user at the client 12. Therefore, a developer may develop a web-based application that generates rich GUIs using these commands and without having to know to use HTML, Cascading Style Sheets (CSS), the Document Object Model (DOM), client-side JavaScript, browser specific object models or any other web programming tools typically required to construct a web application. All of this “know-how” is pre-programmed into support scripts 48 that may be executed using commands from library 30.
  • Upon receiving an initial request from the client 12 and initiating a new instance of the appropriate application 24, the server 14 returns a simple “skeleton” HTML page that contains a single “DIV” tag in its body (which serves as the insertion point for dynamic updates to the GUI created using the HTML page, as described below), a “LINK” tag pointing to a Cascading Style Sheet (CSS) that contains the styles for GUI components, and a series of “SCRIPT” tags that instructs the client 12 to download from the server 14 and execute a client event handler 46 and user interface client-side support scripts 48 used to generate GUIs for display to the user of the client 12. The client event handler 46 is a counterpart to the event handling servlet 22 on the server 14 and receives requests from the server 14 and dispatches the requests to appropriate components of the client 12. The CSS serves as a universal style sheet that defines the “look” of all the GUI components displayed at the client 12 as a part of the application 24. Each of the GUI components are based on this style sheet.
  • Therefore, after sending an initial HTTP request to the server 14 for a particular application 24, the client 12 receives from the server 14 a simple web page framework, a number of support scripts 48, and instructions to execute particular ones of these support scripts 48 to create an initial GUI (or GUIs) for display to a user of the client 12. Therefore, the server 14 does not generate an HTML page that includes all the necessary HTML code to generate a GUI, but rather sends a skeleton HTML page with appropriate scripts that the client 12 may run itself to create the GUI. Furthermore, as is described below, once the user of the client 12 begins to interact with the GUI, the client 12 sends user interface “action events” to the server 14 to indicate the user's interaction with the web page (for example, the selection of particular items in the GUI). Based on these action events, the server 14 communicates further commands (“update events”) to the client 12 to execute particular support scripts 48 that cause the GUI to be updated incrementally at the client 12 based on the user's interactions with the GUI. This is unlike typical web-based client-sever interaction in which a client submits a new form to the server after one or more user interactions with the GUI and in which the server sends an entire new HTML page that is updated based on the user interactions.
  • Once executed by the initial HTML page received from the server 14, the client event handler 46 instantiates an XmlHttpRequest object 44 that is then instructed to make an asynchronous HTTP GET request. This GET request is communicated to the event handling servlet 22 for the application 24 via the browser communication layer 40 and the Java servlet container 20. Upon receiving this GET request, the servlet 22 will block (not return a response) until one or more update events for the application 24 are generated from the user interface component library 30 in response to one or more action events received from the client 12 (these commands are used to execute particular support scripts 48 at the client 12).
  • When a user triggers an action event by manipulating the GUI, for example by typing a value into a text field or selecting an option from a drop-down menu, the XmlHttpRequest object 46 is used to send an HTTP POST command containing the action event to the event handling servlet 22 on the server 14, at which time the application 24 is retrieved from the HTTP Session 28 and the appropriate GUI component of the application 24 is notified of the action event. The GUI component then calls/invokes any event listeners that have been attached to the component (the server 14 instantiates event listeners associated with the various components in the GUI and with user actions that may occur with respect to those components when the GUI is initially generated). Typically, the invocation of the event listeners will lead to one or more update events being sent back to the client event handler 46 to update the GUI displayed to the user at client 12 (these update events may include commands from interface component library 30 to execute particular support scripts 48). For example, a value being entered into a text field of the GUI by the user might result in an update event that causes other fields to be enabled or the selection of an item in a drop-down menu might result in an update event that causes items in another drop-down menu to be changed.
  • When an initial update event is generated, the servlet 22 will unblock and return a response, containing a series of function calls to be made using the support scripts 48, to the XmlHttpReqeust object 44. The XmlHttpReqeust object 44 then forwards the response to the client event handler 46, which in turn calls the functions defined in the response. These function calls result in dynamic updates to the Document Object Model (DOM) associated with the GUI being displayed and thus changes the GUI in the web browser display 42.
  • After an initial update event is received at the client 12, the entire process of using the XmlHttpRequest object 46 to make an asynchronous requests to the server 14 (in response to action events) and receive update events from the server 14 may repeat indefinitely until either the browser associated with the client 12 is closed or a special event is received from the server 14 signaling that the application instance has terminated.
  • It should be understood that although particular HTTP commands and particular web components (such as Java servlets and XmlHttpRequest objects) are described as being used by the server 14 and the client 12 to generate and update GUIs, any suitable commands and components providing similar functionality may be used and are within the scope of the present invention.
  • FIG. 2 illustrates an example GUI 100 generated by server 14 and client 12 and updated to the GUI 100 based on user actions in the GUI 100. As an example, GUI 100 is illustrated in an updated state after being initially generated at the client 12 based on the techniques described above and after some user interaction with GUI 100. FIG. 2 also illustrates particular steps involved in the process of updating the initial form of GUI 100 to its state as illustrated. As examples only, GUI 100 includes two drop-down menus 102 and 104, a text field 106, and a table component 108. Again as an example, these components may be used to perform a database search on a number of different record types that are stored in a database (for example, a database associated with server 14).
  • As an example of a typical use of GUI 100, the user may first select a record type to search in drop-down menu 102. Such a selection (in this example, the selection of the “customer” record type) is communicated as an action event to the server 14 (as indicated by arrow 120) and causes an item selection event listener 122 on the server 14 to be executed. The event listener 122 then queries a database to determine what fields for GUI 100 are valid for that record type and then causes appropriate update events to be sent back to the client 12 (as indicated by arrow 124). Based on these update events and using support scripts 48 associated with the update events, as described above, the client 12 would update the items contained in the “Search By” drop-down menu 104 and would update the columns displayed in the table 108. Again, this is different than typical web-based applications in which the user of the client would submit an updated form to the server after selecting the record type and the server would communicate an entire new GUI to the client that is updated to reflect the record type selection.
  • Upon the client 12 displaying the updated GUI 100, the user may then select a parameter to search by using the drop-down menu 104 (these parameters where added in the update based on the record type selection). The user may then enter a search value in the text field 106 and tab out of the field 106 or otherwise indicate the user is finished entering the search value. Upon tabbing out of the field 106, associated action events may be communicated to the server 14 (as indicated by arrow 126) and may cause a “lose focus” event listener 128 on the server 14 to be executed. The execution of the event listener 128 causes an associated database to be queried for records associated with the selection in the drop-down menu 104 that match the search value and causes update events to be sent back to the client 12 that would populate the table 108 with the search results (as indicated by arrow 130). In this manner, a GUI may be incrementally updated at the client 12 based on user actions (identified by action events) and corresponding update events communicated to and from the server 14. Although, a simple GUI 100 is presented with a limited number of user actions, it should evident that many more GUI components may be included in a GUI, many more user actions may be monitored to update the GUI, and many more dependencies of GUI components upon one another may be implemented.
  • FIG. 3 is a flowchart illustrating an example method for generating a GUI. Specifically, this example method show the application logic, flow control, and state management for the generation and updating of GUI 100 and associated Guls, as described above in conjunction with FIG. 2. The method starts at step 200 where an application instance is created at the server 14 based on a request from the client 12. The request calls the entry point for an application 24, which in turn executes any application logic 26 that is to be executed prior to the GUI 100 being shown. At step 202, a new “dialog” window is instantiated and a number of GUI components are added to the dialog window instance to create the GUI 100. Furthermore, the server also associates one or more event listeners with the GUI components. At step 204, the newly constructed dialog is then shown to the user at the client 12 by generating GUI rendering instructions (referring to support scripts 48) and communicating these to the client. At step 206, the application instance at the server then transitions into a wait mode.
  • The client 12 generates the GUI 100 at step 208 based on the GUI rendering instructions. As described above in conjunction with FIG. 2, one of the actions the user may take in the GUI 100 is to select a record type to search using the “Record Type” drop-down menu. At step 210 of the example method, the client 12 receives such a record type selection from the user. At step 212, the client 12 communicates an action event to the server 14 indicating the record type selection and the server 14 executes an appropriate event listener associated with the record type GUI component. The server 14 then generates one or more update events based on the action event and communicates these update events to the client 12 at step 214. At step 216, the GUI 100 is updated at the client 12 based on the update events. For example, as described above, the “Search By” drop down menu and the table headings may be updated to reflect the record type selection. Furthermore, at step 218, the client 12 may receive a search value entry from the user. At step 220, the client 12 communicates an action event to the server 14 indicating the search value entry and the server 14 executes an appropriate event listener associated with this GUI component (as described above, this event listener may then initiate a database search to find records matching the entered search value). The server 14 then generates one or more update events based on the action event and communicates these update events to the client 12 at step 222. At step 224, the GUI 100 is updated at the client 12 based on the update events. For example, as described above, the table of the GUI 100 may be updated to show the matching database records.
  • Although not described in association with FIG. 2, this example method also provides a further option in GUI 100 for the user to select a particular record in the updated table to receive additional information related to that record. Therefore, at step 226, it is determined whether such additional details regarding a record are requested (for example, by the user clicking on the record entry in the table). If no such request is received, the example method proceeds to step 228. However, if such a request is received, the method proceeds to step 230. At step 230, the server 14 receives this request (as an action event) and removes the dialog (the dialog illustrated in FIG. 2) from the GUI. The application 24 then resumes from its waiting mode at step 234. Based on the received action event, the server 14 generates a new dialog used to show the details of the selected record (not illustrated) and shows this dialog (in a similar manner as described above for the “search” dialog). At step 236, the application 24 again transitions into a waiting mode. Such transitions to and from a waiting mode at the point at which the application entered the waiting mode show how the application flow is “top-down” and shows how the application can maintain state (since it returns to the point at which it was left after sending a dialog to the client 12 and updating that dialog). At step 238, in the example method, a selection may be received in the “record detail” dialog requesting a return to the search dialog. If so, the method may them return to step 202 and the method may repeat.
  • If record details are not requested at step 226, then the method continues at step 228 where it is determined whether the user desires to perform further searching in the GUI 100 (for example, the user may simply begin a new search by selecting a new record type, may select a “New Search” button (not illustrated), or take any other suitable action). If further searching is desired, the method returns to step 210. Alternatively, the method could also return to step 218. If no further searching is desired by the user at step 228, then the method may proceed to step 240 if the user instead indicates that the application should be terminated. In this case, the server 14 receives this request to terminate (as an action event) and removes the dialog from the GUI at step 240. The application 24 then resumes from its waiting mode at step 242 and the application instance is terminated at step 244.
  • Although a particular method for generating and updating a GUI has been described with reference to FIGS. 2 and 3, the present disclosure contemplates any suitable method for generating and updating a GUI in accordance with the present disclosure. Thus, certain of the steps described with reference to FIG. 2 or 3 may take place simultaneously and/or in a different order than as shown. Moreover, particular embodiments may use methods with additional steps, fewer steps, and/or different steps, so long as the methods remain appropriate. Furthermore, it should be understood that the GUIs described in FIGS. 2 and 3 are only examples, and that any of a large variety GUIs and GUI components may be generated and updated based on a large variety of user actions.
  • Moreover, in general, although this disclosure has been described in terms of certain embodiments and generally associated methods, alterations and permutations of these embodiments and methods will be apparent to those skilled in the art. Accordingly, the above description of example embodiments does not define or constrain this disclosure. Other changes, substitutions, and alterations are also possible without departing from the spirit and scope of this disclosure.

Claims (30)

1. A system for generating and updating a graphical user interface (GUI), comprising:
a web server comprising one or more components operable to:
receive a request for a web-based application from a web client;
communicate an initial web page to the web client including instructions for generating a GUI for the application, the GUI comprising one or more components; and
communicate a plurality of support scripts to the web client;
the web client comprising one or more components operable to:
generate the GUI based on the initial web page;
monitor user actions associated with the GUI; and
generate one or more action events indicating one or more user actions that have occurred at the web client;
wherein one or more components of the web server are further operable to:
receive the action events from the web client;
generate one or more update events based on the received action events; and
communicate the update events to the web client, the update events instructing the web client to call one or more of the support scripts to update one or more components of the GUI in response to the user actions.
2. The system of claim 1, wherein the request received from the web client comprises a Hypertext Transfer Protocol (HTTP) request identifying a Uniform Resource Locator (URL) associated with the application.
3. The system of claim 1, wherein the initial web page includes a tag indicating a position for insertion of updates to the GUI based on action events.
4. The system of claim 1, wherein the initial web page includes a tag identifying a style sheet to apply to the components of the GUI.
5. The system of claim 1, wherein the initial web page includes one or more tags instructing the web client to:
download from the web server a client event handler operable to communicate action events to the web server and to receive update events from the web server; and
download from the web server the plurality of support scripts.
6. The system of claim 5, wherein the client event handler is operable to call one or more of the support scripts in response to receiving one or more update events.
7. The system of claim 6, wherein calling the support scripts results in a Document Object Model associated with the GUI being updated to reflect one or more action events.
8. The system of claim 1, wherein the web server is further operable to instantiate one or more event listeners, each event listener associated with one or more components of the GUI.
9. The system of claim 8, wherein the web server is further operable to call one or more event listeners associated with a received action event, the event listeners operable to generate the one or more update events.
10. The system of claim 1, wherein the web-based application maintains state across a plurality of action events received by the web server from the web client.
11. A method for generating and updating a graphical user interface (GUI), comprising:
receiving, at a web server, a request for a web-based application from a web client;
communicating an initial web page to the web client including instructions for generating a GUI for the application, the GUI comprising one or more components;
communicating a plurality of support scripts to the web client;
receiving one or more action events from the web client at the web server indicating one or more user actions associated with the GUI that have occurred at the web client;
generating one or more update events at the web sever based on the received action events; and
communicating the update events to the web client, the update events instructing the web client to call one or more of the support scripts to update one or more components of the GUI in response to the user actions.
12. The method of claim 11, wherein the request received from the web client comprises a Hypertext Transfer Protocol (HTTP) request identifying a Uniform Resource Locator (URL) associated with the application.
13. The method of claim 11, wherein the initial web page includes a tag indicating a position for insertion of updates to the GUI based on action events.
14. The method of claim 11, wherein the initial web page includes a tag identifying a style sheet to apply to the components of the GUI.
15. The method of claim 11, wherein the initial web page includes one or more tags instructing the web client to:
download from the web server a client event handler operable to communicate action events to the web server and to receive update events from the web server; and
download from the web server the plurality of support scripts.
16. The method of claim 15, wherein the client event handler is operable to call one or more of the support scripts in response to receiving one or more update events.
17. The method of claim 16, wherein calling the support scripts results in a Document Object Model associated with the GUI being updated to reflect one or more action events.
18. The method of claim 11, further comprising instantiating one or more event listeners at the web server, each event listener associated with one or more components of the GUI.
19. The method of claim 18, further comprising calling one or more event listeners associated with a received action event, the event listeners operable to generate the one or more update events.
20. The method of claim 11, wherein the web-based application maintains state across a plurality of action events received by the web server from the web client.
21. Web server software for generating and updating a graphical user interface (GUI), the software being embodied in computer-readable media and when executed operable to:
receive a request for a web-based application from a web client;
communicate an initial web page to the web client including instructions for generating a GUI for the application, the GUI comprising one or more components;
communicate a plurality of support scripts to the web client;
receive one or more action events from the web client indicating one or more user actions associated with the GUI that have occurred at the web client;
generate one or more update events based on the received action events; and
communicate the update events to the web client, the update events instructing the web client to call one or more of the support scripts to update one or more components of the GUI in response to the user actions.
22. The software of claim 21, wherein the request received from the web client comprises a Hypertext Transfer Protocol (HTTP) request identifying a Uniform Resource Locator (URL) associated with the application.
23. The software of claim 21, wherein the initial web page includes a tag indicating a position for insertion of updates to the GUI based on action events.
24. The software of claim 21, wherein the initial web page includes a tag identifying a style sheet to apply to the components of the GUI.
25. The software of claim 21, wherein the initial web page includes one or more tags instructing the web client to:
download a client event handler operable to communicate action events to the web server software and to receive update events from the web server software; and
download the plurality of support scripts.
26. The software of claim 25, wherein the client event handler is operable to call one or more of the support scripts in response to receiving one or more update events.
27. The software of claim 26, wherein calling the support scripts results in a Document Object Model associated with the GUI being updated to reflect one or more action events.
28. The software of claim 21, further operable to instantiate one or more event listeners, each event listener associated with one or more components of the GUI.
29. The software of claim 28, further operable to call one or more event listeners associated with a received action event, the event listeners operable to generate the one or more update events.
30. The software of claim 21, further operable to maintain state using the web-based application across a plurality of action events received by the web server software from the web client.
US11/133,910 2005-05-19 2005-05-19 System and method for generating and updating user interfaces of web-based applications Abandoned US20060265662A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US11/133,910 US20060265662A1 (en) 2005-05-19 2005-05-19 System and method for generating and updating user interfaces of web-based applications
PCT/US2006/015871 WO2006124215A2 (en) 2005-05-19 2006-04-27 System and method for generating and updating user interfaces of web-based applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US11/133,910 US20060265662A1 (en) 2005-05-19 2005-05-19 System and method for generating and updating user interfaces of web-based applications

Publications (1)

Publication Number Publication Date
US20060265662A1 true US20060265662A1 (en) 2006-11-23

Family

ID=37431753

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/133,910 Abandoned US20060265662A1 (en) 2005-05-19 2005-05-19 System and method for generating and updating user interfaces of web-based applications

Country Status (2)

Country Link
US (1) US20060265662A1 (en)
WO (1) WO2006124215A2 (en)

Cited By (50)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061708A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Script markup
US20070174419A1 (en) * 2006-01-23 2007-07-26 O'connell Brian M JavaScript error determination and reporting
US20080094659A1 (en) * 2006-10-05 2008-04-24 Seiko Epson Corporation Print setting means, print setting apparatus, and printing apparatus
US20080127097A1 (en) * 2006-11-28 2008-05-29 International Business Machines Corporation Method and devices for url command testing and for scenario testing
US20080228715A1 (en) * 2007-03-12 2008-09-18 Terabyte Media, Llc Apparatus and method for distributed information retrieval and processing
US20080267067A1 (en) * 2007-04-30 2008-10-30 Gabriel Salazar Controlling the flow of data updates between a receiving station and a sending station
US20080307043A1 (en) * 2007-06-11 2008-12-11 Paul Raymond Dorsey Method and architecture supporting high performance web applications
US20090006523A1 (en) * 2007-06-26 2009-01-01 Alexander Kordun Method and system for providing xml-based asynchronous and interactive feeds for web applications
US20090082003A1 (en) * 2007-09-20 2009-03-26 Per Thorell Mobile Phone Code Editing Method and Apparatus
US20090082008A1 (en) * 2007-09-21 2009-03-26 Per Thorell Mobile Phone Code Debugging Method and Apparatus
US20090265760A1 (en) * 2008-04-20 2009-10-22 Microsoft Corporation Component-oriented architecture for web mashups
US20090327468A1 (en) * 2008-06-30 2009-12-31 International Business Machines Corporation Interactive Remote Command Execution Over a Stateless Client/Server Network Protocol
US20100100823A1 (en) * 2008-10-21 2010-04-22 Synactive, Inc. Method and apparatus for generating a web-based user interface
US20100138753A1 (en) * 2006-10-23 2010-06-03 Brian Riggs Application modification based on feed content
US20100191811A1 (en) * 2009-01-26 2010-07-29 Nokia Corporation Social Networking Runtime
EP2395425A1 (en) * 2010-06-11 2011-12-14 Alcatel Lucent Fault resolution apparatus and related method
US20120192079A1 (en) * 2010-07-23 2012-07-26 Hans-Peter Burk Methods and systems for operating a remote computer application from a thin client
US20120317488A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Techniques for adapting an interpretive run time application to multiple clients
US20120324358A1 (en) * 2011-06-16 2012-12-20 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US8549472B1 (en) * 2007-06-12 2013-10-01 Fair Isaac Corporation System and method for web design
US8589950B2 (en) 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser
WO2014018175A1 (en) * 2012-07-23 2014-01-30 Vmware, Inc. Providing access to a remote application via a web client
US20150019628A1 (en) * 2013-07-12 2015-01-15 Wensheng Li System and methods for accessing multi-origin content from web browser and application to web application testing
US8941675B2 (en) 2011-04-05 2015-01-27 Blackberry Limited Backing store memory management for rendering scrollable webpage subregions
US8959142B2 (en) 2012-02-29 2015-02-17 Microsoft Corporation Combining server-side and client-side user interface elements
US20150074089A1 (en) * 2006-05-03 2015-03-12 Oracle International Corporation User Interface Features to Manage a Large Number of Files and Their Application to Management of a Large Number of Test Scripts
US8990427B2 (en) 2010-04-13 2015-03-24 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
US9069627B2 (en) 2012-06-06 2015-06-30 Synactive, Inc. Method and apparatus for providing a dynamic execution environment in network communication between a client and a server
US20160057220A1 (en) * 2014-08-20 2016-02-25 Samsung Electronics Co., Ltd. System for cloud computing using web components
US9300745B2 (en) 2012-07-27 2016-03-29 Synactive, Inc. Dynamic execution environment in network communications
US9330077B2 (en) * 2009-11-18 2016-05-03 Google Inc. Dynamic image generation for customizable user interfaces
US20160188321A1 (en) * 2009-07-23 2016-06-30 Shuv Gray Llc Modification of Terminal and Service Provider Machines Using an Update Server Machine
WO2016118769A1 (en) * 2015-01-22 2016-07-28 Alibaba Group Holding Limited Processing application interface
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US20170097922A1 (en) * 2015-10-01 2017-04-06 Sap Se Optimizing software application user interface performance using interactive images
US9946995B2 (en) * 2013-03-15 2018-04-17 Bottomline Technologies (De) Inc. System and method for collecting clearing information for implementing a global electronic funds transfer
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US10474358B2 (en) * 2016-02-29 2019-11-12 Google Llc Computing devices having dynamically configurable user input devices, and methods of operating the same
US10523767B2 (en) 2008-11-20 2019-12-31 Synactive, Inc. System and method for improved SAP communications
CN110765746A (en) * 2019-10-15 2020-02-07 支付宝(杭州)信息技术有限公司 Automatic form generation method and system based on event agent
CN113938475A (en) * 2021-12-16 2022-01-14 深圳市大头兄弟科技有限公司 Data transmission method
US20220179531A1 (en) * 2010-10-05 2022-06-09 Citrix Systems, Inc. Display Management for Native User Experiences
US11409990B1 (en) 2019-03-01 2022-08-09 Bottomline Technologies (De) Inc. Machine learning archive mechanism using immutable storage
US11526859B1 (en) 2019-11-12 2022-12-13 Bottomline Technologies, Sarl Cash flow forecasting using a bottoms-up machine learning approach
US11532040B2 (en) 2019-11-12 2022-12-20 Bottomline Technologies Sarl International cash management software using machine learning
US11556807B2 (en) 2018-11-09 2023-01-17 Bottomline Technologies, Inc. Automated account opening decisioning using machine learning
US11675484B2 (en) * 2017-07-10 2023-06-13 Palantir Technologies Inc. Integrated data authentication system with an interactive user interface
US11687807B1 (en) 2019-06-26 2023-06-27 Bottomline Technologies, Inc. Outcome creation based upon synthesis of history
US11704671B2 (en) 2020-04-02 2023-07-18 Bottomline Technologies Limited Financial messaging transformation-as-a-service

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080244514A1 (en) * 2007-03-29 2008-10-02 Microsoft Corporation Scriptable object model for network based services
KR101539461B1 (en) * 2008-07-16 2015-07-30 삼성전자주식회사 Apparatus and method for providing an user interface service in a multimedia system
EP2963885A1 (en) * 2014-07-03 2016-01-06 HOB GmbH & Co. KG A client-server-communication system running a client-side-script-program
CN109542437A (en) * 2018-11-16 2019-03-29 北京科罗菲特科技有限公司 A kind of HMI development approach based on Linux built-in browser

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6342907B1 (en) * 1998-10-19 2002-01-29 International Business Machines Corporation Specification language for defining user interface panels that are platform-independent
US6611498B1 (en) * 1997-09-26 2003-08-26 Worldcom, Inc. Integrated customer web station for web based call management
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US20050120330A1 (en) * 2003-07-11 2005-06-02 Computer Associates Think, Inc. System and method for creating and using self describing events in automation
US20060129499A1 (en) * 1997-09-26 2006-06-15 Mci, Inc. Integrated proxy interface for web based data management reports
US7068680B1 (en) * 1999-10-01 2006-06-27 Accenture Llp Communication service architectures for netcentric computing systems
US7099834B2 (en) * 2000-12-15 2006-08-29 International Business Machines Corporation Method, system, and program for transferring data between servers through a client computer over a network
US7216298B1 (en) * 2001-06-07 2007-05-08 Oracle International Corporation System and method for automatic generation of HTML based interfaces including alternative layout modes

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6611498B1 (en) * 1997-09-26 2003-08-26 Worldcom, Inc. Integrated customer web station for web based call management
US6956845B2 (en) * 1997-09-26 2005-10-18 Mci, Inc. Integrated customer web station for web based call management
US20060098583A1 (en) * 1997-09-26 2006-05-11 Worldcom, Inc. Integrated customer web station for web based call management
US20060129499A1 (en) * 1997-09-26 2006-06-15 Mci, Inc. Integrated proxy interface for web based data management reports
US6342907B1 (en) * 1998-10-19 2002-01-29 International Business Machines Corporation Specification language for defining user interface panels that are platform-independent
US6636242B2 (en) * 1999-08-31 2003-10-21 Accenture Llp View configurer in a presentation services patterns environment
US7068680B1 (en) * 1999-10-01 2006-06-27 Accenture Llp Communication service architectures for netcentric computing systems
US7099834B2 (en) * 2000-12-15 2006-08-29 International Business Machines Corporation Method, system, and program for transferring data between servers through a client computer over a network
US7216298B1 (en) * 2001-06-07 2007-05-08 Oracle International Corporation System and method for automatic generation of HTML based interfaces including alternative layout modes
US20050120330A1 (en) * 2003-07-11 2005-06-02 Computer Associates Think, Inc. System and method for creating and using self describing events in automation

Cited By (92)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7945853B2 (en) * 2005-09-12 2011-05-17 Microsoft Corporation Script markup
US20070061708A1 (en) * 2005-09-12 2007-03-15 Microsoft Corporation Script markup
US20070174419A1 (en) * 2006-01-23 2007-07-26 O'connell Brian M JavaScript error determination and reporting
US7725574B2 (en) * 2006-01-23 2010-05-25 International Business Machines Corporation Web browser-based programming language error determination and reporting
US10824593B2 (en) * 2006-05-03 2020-11-03 Oracle International Corporation User interface features to manage a large number of files and their application to management of a large number of test scripts
US20150074089A1 (en) * 2006-05-03 2015-03-12 Oracle International Corporation User Interface Features to Manage a Large Number of Files and Their Application to Management of a Large Number of Test Scripts
US20080094659A1 (en) * 2006-10-05 2008-04-24 Seiko Epson Corporation Print setting means, print setting apparatus, and printing apparatus
US8671351B2 (en) * 2006-10-23 2014-03-11 Adobe Systems Incorporated Application modification based on feed content
US20100138753A1 (en) * 2006-10-23 2010-06-03 Brian Riggs Application modification based on feed content
US20080127097A1 (en) * 2006-11-28 2008-05-29 International Business Machines Corporation Method and devices for url command testing and for scenario testing
US20080228715A1 (en) * 2007-03-12 2008-09-18 Terabyte Media, Llc Apparatus and method for distributed information retrieval and processing
US20080267067A1 (en) * 2007-04-30 2008-10-30 Gabriel Salazar Controlling the flow of data updates between a receiving station and a sending station
US20080307043A1 (en) * 2007-06-11 2008-12-11 Paul Raymond Dorsey Method and architecture supporting high performance web applications
US8549472B1 (en) * 2007-06-12 2013-10-01 Fair Isaac Corporation System and method for web design
US20090006523A1 (en) * 2007-06-26 2009-01-01 Alexander Kordun Method and system for providing xml-based asynchronous and interactive feeds for web applications
US7865544B2 (en) 2007-06-26 2011-01-04 International Business Machines Corporation Method and system for providing XML-based asynchronous and interactive feeds for web applications
US20090082003A1 (en) * 2007-09-20 2009-03-26 Per Thorell Mobile Phone Code Editing Method and Apparatus
US20090082008A1 (en) * 2007-09-21 2009-03-26 Per Thorell Mobile Phone Code Debugging Method and Apparatus
US20090265760A1 (en) * 2008-04-20 2009-10-22 Microsoft Corporation Component-oriented architecture for web mashups
US9009657B2 (en) 2008-04-20 2015-04-14 Microsoft Technology Licensing, Llc Component-oriented architecture for web mashups
US7882173B2 (en) 2008-06-30 2011-02-01 International Business Machines Corporation Interactive remote command execution over a stateless client/server network protocol
US20090327468A1 (en) * 2008-06-30 2009-12-31 International Business Machines Corporation Interactive Remote Command Execution Over a Stateless Client/Server Network Protocol
US9003312B1 (en) * 2008-10-21 2015-04-07 Synactive, Inc. Method and apparatus for updating a web-based user interface
US9195525B2 (en) 2008-10-21 2015-11-24 Synactive, Inc. Method and apparatus for generating a web-based user interface
US9696972B2 (en) 2008-10-21 2017-07-04 Synactive, Inc. Method and apparatus for updating a web-based user interface
US20100100823A1 (en) * 2008-10-21 2010-04-22 Synactive, Inc. Method and apparatus for generating a web-based user interface
US10523767B2 (en) 2008-11-20 2019-12-31 Synactive, Inc. System and method for improved SAP communications
US11025731B2 (en) 2008-11-20 2021-06-01 Synactive, Inc. System and method for improved SAP communications
US11381649B2 (en) 2008-11-20 2022-07-05 Synactive, Inc. System and method for improved SAP communications
US11736574B2 (en) 2008-11-20 2023-08-22 Synactive, Inc. System and method for improved SAP communications
US20100191811A1 (en) * 2009-01-26 2010-07-29 Nokia Corporation Social Networking Runtime
US8200766B2 (en) 2009-01-26 2012-06-12 Nokia Corporation Social networking runtime
US10261774B2 (en) 2009-07-23 2019-04-16 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US11662995B2 (en) 2009-07-23 2023-05-30 S3G Technology Llc Network efficient location-based dialogue sequence using virtual processor
US9940124B2 (en) * 2009-07-23 2018-04-10 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US10831468B2 (en) 2009-07-23 2020-11-10 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US20160188321A1 (en) * 2009-07-23 2016-06-30 Shuv Gray Llc Modification of Terminal and Service Provider Machines Using an Update Server Machine
US11210082B2 (en) 2009-07-23 2021-12-28 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US10387140B2 (en) 2009-07-23 2019-08-20 S3G Technology Llc Modification of terminal and service provider machines using an update server machine
US9330077B2 (en) * 2009-11-18 2016-05-03 Google Inc. Dynamic image generation for customizable user interfaces
US9661096B2 (en) 2010-04-13 2017-05-23 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
US9420054B2 (en) 2010-04-13 2016-08-16 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
US9225804B2 (en) 2010-04-13 2015-12-29 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
US10277702B2 (en) 2010-04-13 2019-04-30 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
US8990427B2 (en) 2010-04-13 2015-03-24 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
US9888088B2 (en) 2010-04-13 2018-02-06 Synactive, Inc. Method and apparatus for accessing an enterprise resource planning system via a mobile device
EP2395425A1 (en) * 2010-06-11 2011-12-14 Alcatel Lucent Fault resolution apparatus and related method
US9058088B2 (en) * 2010-07-23 2015-06-16 Libera, Inc. Methods and systems for operating a remote computer application from a thin client
US20120192079A1 (en) * 2010-07-23 2012-07-26 Hans-Peter Burk Methods and systems for operating a remote computer application from a thin client
US20220179531A1 (en) * 2010-10-05 2022-06-09 Citrix Systems, Inc. Display Management for Native User Experiences
US9170861B2 (en) 2011-01-05 2015-10-27 Blackberry Limited Processing user input events in a web browser
US9542245B2 (en) 2011-01-05 2017-01-10 Blackberry Limited Processing user input events in a web browser
US8589950B2 (en) 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser
US8941675B2 (en) 2011-04-05 2015-01-27 Blackberry Limited Backing store memory management for rendering scrollable webpage subregions
CN103597464A (en) * 2011-06-13 2014-02-19 微软公司 Techniques for adapting an interpretive runtime application to multiple clients
US20120317488A1 (en) * 2011-06-13 2012-12-13 Microsoft Corporation Techniques for adapting an interpretive run time application to multiple clients
US20120324358A1 (en) * 2011-06-16 2012-12-20 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US9582601B2 (en) 2012-02-29 2017-02-28 Microsoft Technology Licensing, Llc Combining server-side and client-side user interface elements
US9053201B2 (en) 2012-02-29 2015-06-09 Microsoft Technology Licensing, Llc Communication with a web compartment in a client application
US9032383B2 (en) 2012-02-29 2015-05-12 Microsoft Technology Licensing, Llc Automatically updating applications on a client's device without interrupting the user's experience
US8959142B2 (en) 2012-02-29 2015-02-17 Microsoft Corporation Combining server-side and client-side user interface elements
US9069627B2 (en) 2012-06-06 2015-06-30 Synactive, Inc. Method and apparatus for providing a dynamic execution environment in network communication between a client and a server
US10313483B2 (en) 2012-06-06 2019-06-04 Synactive, Inc. Method and apparatus for providing a dynamic execution environment in network communication between a client and a server
JP2015529878A (en) * 2012-07-23 2015-10-08 ヴイエムウェア インコーポレイテッドVMware,Inc. Providing access to remote applications via a web client
WO2014018175A1 (en) * 2012-07-23 2014-01-30 Vmware, Inc. Providing access to a remote application via a web client
US10353718B2 (en) 2012-07-23 2019-07-16 Vmware, Inc. Providing access to a remote application via a web client
EP2875425B1 (en) * 2012-07-23 2020-12-30 VMware, Inc. Providing access to a remote application via a web client
AU2013293535B2 (en) * 2012-07-23 2016-01-14 VMware LLC Providing access to a remote application via a web client
US9300745B2 (en) 2012-07-27 2016-03-29 Synactive, Inc. Dynamic execution environment in network communications
US11216173B2 (en) 2012-07-27 2022-01-04 Synactive, Inc. Dynamic execution environment in network communications
US11687227B2 (en) 2012-07-27 2023-06-27 Synactive, Inc. Dynamic execution environment in network communications
US9946995B2 (en) * 2013-03-15 2018-04-17 Bottomline Technologies (De) Inc. System and method for collecting clearing information for implementing a global electronic funds transfer
US20150019628A1 (en) * 2013-07-12 2015-01-15 Wensheng Li System and methods for accessing multi-origin content from web browser and application to web application testing
US20160057220A1 (en) * 2014-08-20 2016-02-25 Samsung Electronics Co., Ltd. System for cloud computing using web components
US10545749B2 (en) * 2014-08-20 2020-01-28 Samsung Electronics Co., Ltd. System for cloud computing using web components
CN105867754A (en) * 2015-01-22 2016-08-17 阿里巴巴集团控股有限公司 Application interface processing method and device
WO2016118769A1 (en) * 2015-01-22 2016-07-28 Alibaba Group Holding Limited Processing application interface
US20170097922A1 (en) * 2015-10-01 2017-04-06 Sap Se Optimizing software application user interface performance using interactive images
US10474358B2 (en) * 2016-02-29 2019-11-12 Google Llc Computing devices having dynamically configurable user input devices, and methods of operating the same
US11010052B2 (en) 2016-02-29 2021-05-18 Google Llc Computing devices having dynamically configurable user input devices, and methods of operating the same
US11675484B2 (en) * 2017-07-10 2023-06-13 Palantir Technologies Inc. Integrated data authentication system with an interactive user interface
US11556807B2 (en) 2018-11-09 2023-01-17 Bottomline Technologies, Inc. Automated account opening decisioning using machine learning
US11409990B1 (en) 2019-03-01 2022-08-09 Bottomline Technologies (De) Inc. Machine learning archive mechanism using immutable storage
US11687807B1 (en) 2019-06-26 2023-06-27 Bottomline Technologies, Inc. Outcome creation based upon synthesis of history
CN110765746A (en) * 2019-10-15 2020-02-07 支付宝(杭州)信息技术有限公司 Automatic form generation method and system based on event agent
US11532040B2 (en) 2019-11-12 2022-12-20 Bottomline Technologies Sarl International cash management software using machine learning
US11526859B1 (en) 2019-11-12 2022-12-13 Bottomline Technologies, Sarl Cash flow forecasting using a bottoms-up machine learning approach
US11704671B2 (en) 2020-04-02 2023-07-18 Bottomline Technologies Limited Financial messaging transformation-as-a-service
CN113938475A (en) * 2021-12-16 2022-01-14 深圳市大头兄弟科技有限公司 Data transmission method

Also Published As

Publication number Publication date
WO2006124215A3 (en) 2007-12-06
WO2006124215A2 (en) 2006-11-23

Similar Documents

Publication Publication Date Title
US20060265662A1 (en) System and method for generating and updating user interfaces of web-based applications
US8965864B2 (en) Method and system for efficient execution and rendering of client/server interactive applications
US6108673A (en) System for creating a form from a template that includes replication block
US6003047A (en) Non-hierarchical application interface for HTML-based network storage management programs
US8578333B2 (en) Method and system for client-side user interface enhancement to enable application integration and portalisation
TW413764B (en) Method for generating display control information and computer
US7899847B2 (en) System and method for authoring new lightweight web applications using application traces on existing websites
US8700988B2 (en) Selectively interpreted portal page layout template
US8627344B2 (en) Methods and apparatuses for user interface management
EP1649361B1 (en) System and method for generating a graphical user interface (gui) element
US20020169789A1 (en) System and method for accessing, organizing, and presenting data
US20030081003A1 (en) System and method to facilitate analysis and removal of errors from an application
US20070288644A1 (en) Systems and methods for developing and running applications in a web-based computing environment
US20070106946A1 (en) Method and system for developing interactive Web applications in a unified framework
US20030120719A1 (en) System, method and computer program product for a user agent for pattern replay
WO2004001593A2 (en) User interface builder
JP2005259131A (en) Method and system for generating screen element or data object of wireless application
WO2003104985A2 (en) Retrieving data for generating view components
WO2003104984A2 (en) Controllers and subcontrollers generating user interface displays
US20060041623A1 (en) Method and system to trigger an activity associated with a user interface element on a web page
US7814020B2 (en) System, method and computer program product for the recording and playback of transaction macros
US20030080994A1 (en) System, method and computer program product for recognizing a state of a remote application
US7353456B2 (en) Prototype page for simulating navigation in computer programs
JP2004342085A (en) Server process for accessing data from various types of client processes
Moroney Foundations of Atlas: Rapid Ajax Development with ASP. NET 2.0

Legal Events

Date Code Title Description
AS Assignment

Owner name: CUSTOM CREDIT SYSTEMS, L.P., TEXAS

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:GERTZEN, JOSHUA J.;REEL/FRAME:016588/0754

Effective date: 20050518

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION