Maintaining state between web applications
By implementing state transfer between lightweight viewer and classic viewer in the browser, using incremental state objects to capture state changes of lightweight viewer, and applying these incremental states to maintain the modified state of the dashboard when the user navigates to the classic viewer, solving the problem of state loss when the user switches the application and improving the user experience.
Patent Information
- Application Number
- CN202411231113.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-09-06
- Filing Date
- 2024-09-04
- Publication Date
- 2025-03-07
AI Technical Summary
When a user switches from a lightweight web application to a classic web application, it is difficult for the prior art to maintain the user's state in a lightweight application, resulting in the user having to re-execute operations to restore the original state, and the problem can be more complicated if the user cannot remember the steps.
By implementing state transfer between lightweight viewer and classic viewer in the browser, the incremental state object is used to capture state changes in the lightweight viewer and apply these incremental states to maintain the modified state of the dashboard as the user navigates to the classic viewer.
This enables state retention from lightweight viewers to classic viewers, avoiding the need for users to re-execute operations to restore the original state, improving the user experience, and simplifying the state transition process.
Smart Images

Figure CN119576429A_ABST
Abstract
Description
Background Art
[0001] The present disclosure relates to web applications, and in particular, to maintaining state between web applications.
[0002] A web application is a software program that runs on a web browser. A web application is typically stored on a remote system and delivered over the Internet or another network. An example of a web application is a data analysis cloud application provided by a cloud platform.
[0003] In some cases, two web applications can generally provide similar functionality, but one application can provide more functionality and complexity than the other application, often with the disadvantage of being slower or requiring additional computing resources. For example, a "lightweight" data analysis web application can provide similar functionality to a "classic" or full-featured web application, but may lack certain specific features or capabilities (e.g., geographic maps). However, the lightweight web application can run faster (e.g., when loading and opening a dashboard) than the classic version of the web application. In this example, the lightweight application and the classic application are two different software applications, but can be considered to be two different versions of the same application, with overlap in functionality, and both applications can access the same data from the same backend server.
[0004] When a user opens a lightweight version of an application, they may perform some actions and later realize that they want to access features that are only available in the classic or full version of the application. In some systems, users can navigate to the classic web application, but they may lose the current state of the software because they are using the software in the lightweight version.
[0005] This can be problematic when the user needs to re-perform actions to return to the state they were in, and can be even more problematic if the user cannot remember the steps they took in the lightweight version.
[0006] The present disclosure addresses these and other problems, as described further below. Summary of the invention
[0007] Some embodiments provide a computer system, which includes one or more processors and one or more machine-readable media coupled to the one or more processors. The one or more machine-readable media store computer program codes, the computer program codes including an instruction set that can be executed by one or more processors to run a lightweight viewer of a web application in a web browser, the lightweight viewer providing a first user interface presenting a visual dashboard including one or more visualizations of data. The computer program code also includes an instruction set that can be executed by one or more processors to obtain one or more user inputs to modify the visual dashboard of the lightweight viewer to a modified state. The computer program code also includes an instruction set that can be executed by one or more processors to obtain user input for navigating to a classic viewer of a web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer. The computer program code also includes an instruction set that can be executed by one or more processors to navigate to a classic viewer in a web browser, the classic viewer providing a second user interface presenting a visual dashboard including one or more data visualizations. The computer program code also includes an instruction set that can be executed by one or more processors to modify the visual dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer and in the absence of user input to the classic viewer to modify the visual dashboard to a modified state.
[0008] Some embodiments provide a non-transitory computer-readable medium storing computer program code. The computer program code includes an instruction set for running a lightweight viewer of a web application in a web browser, the lightweight viewer providing a first user interface presenting a visual dashboard including one or more visualizations of data. The computer program code also includes an instruction set for obtaining one or more user inputs for modifying the visual dashboard of the lightweight viewer to a modified state. The computer program code also includes an instruction set for obtaining user input for navigating to a classic viewer of the web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer. The computer program code also includes an instruction set for navigating to a classic viewer in a web browser, the classic viewer providing a second user interface presenting a visual dashboard including one or more visualizations of data. The computer program code also includes an instruction set for modifying the visual dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer and without user input to the classic viewer to modify the visual dashboard to a modified state.
[0009] Some embodiments provide a computer-implemented method comprising: running a lightweight viewer of a web application in a web browser, the lightweight viewer providing a first user interface presenting a visual dashboard that includes one or more visualizations of data; obtaining one or more user inputs to modify the visual dashboard of the lightweight viewer to a modified state; obtaining user input for navigating to a classic viewer of the web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer; navigating to the classic viewer in the web browser, the classic viewer providing a second user interface presenting a visual dashboard that includes one or more visualizations of data; and modifying the visual dashboard of the classic viewer to a modified state based on the navigation from the lightweight viewer to the classic viewer and in the absence of user input to the classic viewer to modify the visual dashboard to the modified state.
[0010] The following detailed description and accompanying drawings provide a better understanding of the nature and advantages. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The following detailed description and accompanying drawings provide a better understanding of the nature and advantages of the present disclosure.
[0012] Figure 1 A diagram of a computer system that maintains state between a first web application and a second web application is shown according to an embodiment.
[0013] Figure 2 A flow chart of a method for maintaining a state between a first web application and a second web application according to an embodiment is shown.
[0014] Figure 3 A default state of a lightweight web application user interface including a dashboard is shown according to an embodiment.
[0015] Figure 4 A modified state of a lightweight web application user interface including a dashboard is shown according to an embodiment.
[0016] Figure 5 A default state of a classic web application user interface including a dashboard is shown according to an embodiment.
[0017] Figure 6 A modified state of a classic web application user interface including a dashboard is shown according to an embodiment.
[0018] Figure 7 A diagram showing an architecture for maintaining state between a lightweight viewer web application and a classic viewer web application, according to an embodiment.
[0019] Figure 8An information flow diagram is shown for using encrypted delta state objects to maintain state between web applications according to an embodiment.
[0020] Fig. 9 A diagram showing hardware of a special-purpose computing machine for implementing the systems and methods described herein. DETAILED DESCRIPTION
[0021] In the following description, for the purpose of explanation, many examples and specific details are set forth in order to provide a thorough understanding of the present disclosure. These examples and details should not be interpreted as overly limiting the elements of the claims or the subject matter of the entire claims. Based on the language of the different claims, it is apparent that the claimed subject matter may include some or all of the features in these examples, alone or in combination, and may also include modifications and equivalents of the features and techniques described herein.
[0022] In the accompanying drawings and their corresponding descriptions, although some elements may be depicted as separate components, in some cases, one or more components may be combined into a single device or system. Similarly, although some functions may be described as being performed by a single element or component in a system, in some cases, functions may be performed by multiple components or elements working together in a functionally coordinated manner. In addition, hard-wired circuits may be used independently or in combination with software instructions to implement the technology described in the present invention. The described functions may be performed by custom hardware components containing hard-wired logic for performing operations, or by any combination of computer hardware and programmed computer components. The embodiments described in this disclosure are not limited to any specific combination of hardware circuits or software. The embodiments may also be practiced in a distributed computing environment, where operations are performed by a remote data processing device or system linked by one or more wired or wireless networks. As used herein, unless otherwise indicated, the terms "first", "second", "third", "fourth", etc. do not necessarily indicate sorting or order. As used herein, these terms may be simply used to distinguish between different objects or elements.
[0023] As described above, in some cases, two web applications may generally provide similar functionality, but one application may provide more functionality and complexity than the other application, often with the disadvantage of being slower or requiring additional computing resources. For example, a "lightweight" data analysis web application may provide functionality similar to a "classic" or full-featured web application, but may lack certain specific features or capabilities (e.g., geographic maps). However, the lightweight web application may run faster (e.g., when loading and opening a dashboard) than the classic version of the web application. In this example, the lightweight application and the classic application are two different software applications, but can be considered to be two different versions of the same application, with overlap in functionality, and both applications can access the same data from the same backend server.
[0024] When a user opens a lightweight version of an application, they may perform some actions and later realize that they want to access features that are only available in the classic or full version of the application. In some systems, users can navigate to the classic web application, but they may lose the current state of the software because they are using the software in the lightweight version.
[0025] This can be problematic when the user needs to re-perform actions to return to the state they were in, and can be even more problematic if the user cannot remember the steps they took in the lightweight version.
[0026] The present disclosure provides techniques for maintaining states between web applications to solve this and other problems. In the following description, some examples of these techniques are described with respect to data analysis web applications. However, the present disclosure covers other types of web applications, and these techniques can be implemented across various other types of web applications.
[0027] Figure 1 Diagram 100 of a computer system 150 that maintains a state between a first web application and a second web application according to an embodiment is shown. The computer system 150 may be a user device, such as a personal computer, a laptop, a smart phone, etc. Here, the two applications are a lightweight viewer 170 and a classic viewer 180, both of which are web applications running on a web browser 160 of the computer system 150. The computer system 150 includes a local browser storage 162 for storing data of the web browser 160. The web applications 170 and 180 may be provided by a backend server 190, which provides data for these web applications.
[0028] In this embodiment, the lightweight viewer 170 and the classic viewer 160 are different versions of a data analysis web application that users can use to create interactive dashboards, reports, and charts to visualize data from multiple sources. Users can create a collection of interactive visualizations, charts, and other components that help themselves and other users analyze and present data in a meaningful way.
[0029] The data analysis web application provides a classic viewer web application 180 to view the visualization dashboard. The classic viewer 180 supports all functions of the web application, but in some cases, it may take a considerable time to load and open the dashboard in the user's computer system 150.
[0030] To address performance issues, the web application also provides a lightweight viewer web application 170. The SAC also provides another viewer application called a lightweight viewer 170 (LWV) that can load and open visualization dashboards faster than the classic viewer 180. The computer system 150 can run the lightweight viewer of the web application in a web browser 160, where the lightweight viewer provides a first user interface that presents a visualization dashboard that includes one or more visualizations of data, as described herein.
[0031] The lightweight viewer 170 is designed to be "lighter" and faster, and to achieve this, it does not support the "heavy" (i.e., computationally resource intensive) functionality of the classic viewer 180. Examples of such heavy functionality not supported by the lightweight viewer 170 include geographic charts (e.g., overlays on maps) and linked analysis and linked interactions between visualizations in dashboards. Thus, the classic viewer provides one or more features or capabilities that the lightweight viewer does not provide. Figure 3 and Figure 4 An example of a notification or indication of such heavy functionality not provided by the lightweight viewer is shown in and described below. As an example, a placeholder image may be shown for an unsupported widget such as a geographic chart. Figure 3 A placeholder image 320 is shown. As another example, an unsupported feature can be disabled (e.g., as indicated by a dashed line or grayed out), and when the user clicks, taps, hovers over, or otherwise selects a button for that feature, the user interface can present a message (e.g., a tool tip) indicating that the heavy feature is not supported. As an example, filtering can be a heavy feature, and when the user selects, Figure 4 Messages 440 may be displayed in a lightweight viewer when filter button 460 is shown. These embodiments are further described below.
[0032] Even if the visualization dashboard includes heavy features that are not supported by the lightweight viewer 170, the dashboard can still be loaded and opened by the lightweight viewer 170 without loading the visualizations that require the heavy features. However, when the dashboard contains heavy features such as geographic charts and the user opens the same dashboard in the lightweight viewer 170, the user may later realize that these features are not loaded, but they need these features for further analysis. To this end, the lightweight viewer 170 provides a navigation feature in which the user is able to navigate to the classic viewer 180 to obtain the full functionality of the story. Therefore, the web browser 160 can obtain user input for navigating to the classic viewer of the web application and navigate to the classic viewer 180 in the web browser 160. The classic viewer 180 can provide a second user interface presenting the visualization dashboard including one or more visualizations of the data. An example of the navigation feature is shown in FIG. Figure 4 As an example, Figure 4 A navigation button 430 is shown for navigating to the classic viewer. The icon of the button is an open door with an arrow to indicate that the user can select the function to navigate away. As another example of a navigation feature, the message, notification, or indication may include, for example, Figure 4 Hyperlink 450 is shown.
[0033] When a user opens a story in the lightweight viewer 170, it opens the dashboard in its designed default state. The web browser 160 can then obtain one or more user inputs that modify the visualization dashboard of the lightweight viewer to a modified state. That is, the user can provide input to modify the dashboard state. For example, the user can perform operations such as applying filters for visualization of data, drilling down hierarchical dimensions of data, etc. When the user performs such operations, the dashboard state can change. Figure 3 An example of a user opening a dashboard in a default state is shown in Figure 4 An example of a dashboard in a modified state based on user input is shown in FIG.
[0034] In some existing web applications, if the user navigates to the classic viewer 180, the dashboard will open in the default state again and the user will lose the context of the current story. Figure 5 An example of a classic viewer 180 loading a dashboard in a default state is shown in FIG. Figure 6 An example of a classic viewer 180 loading a dashboard in the same modified state as the lightweight viewer is shown in FIG.
[0035] The present disclosure provides a technology for maintaining the state between web applications to solve this and other problems. In this embodiment, two viewers (lightweight viewer 170 and classic viewer 180) are two different web applications working on the same data. In other words, they are different versions of the same application, a lightweight version and a classic version. When a user navigates from a lightweight viewer 170 to a classic viewer 180, a web browser 160 can close the lightweight viewer 170 application and open the classic viewer 180 application in the same browser window. Before closing the lightweight viewer 170 application, the web browser 160 can capture the change (e.g., "increment") of the state of the dashboard and store it in a local browser storage 162. When the classic viewer 180 application is opened, the web browser 160 can retrieve the default dashboard state from the backend server 190 and apply the increment maintained by the lightweight viewer 170 in the browser storage 162. That is, the web browser 160 can modify the visualization dashboard of the classic viewer to a modified state based on the navigation from the lightweight viewer to the classic viewer, and no user input to the classic viewer is required to modify the visualization dashboard to a modified state. Advantageously, the dashboard context is maintained when switching from the lightweight viewer 170 to the classic viewer 180. Once the delta is applied to the dashboard, it is cleaned up and deleted from the browser storage 162.
[0036] Figure 2 A flowchart 200 of a method for maintaining a state between a first web application and a second web application according to an embodiment is shown. Figure 2 The method can be obtained from the above Figure 1 The computer system 150 described performs.
[0037] At 201, a lightweight viewer of a web application is run in a web browser, the lightweight viewer providing a first user interface presenting a visual dashboard that includes one or more visualizations of data. As previously described, data analysis applications can enable users to create interactive dashboards, reports, and charts to visualize data from multiple sources that help users analyze and present their data in a meaningful way. In some embodiments, the first user interface of the lightweight viewer includes an indication that a particular function is not available in the lightweight viewer. For example, a button or menu item for a particular function may be drawn with a dashed line or otherwise "greyed out" to indicate that the function is not available. An example of a visual dashboard is shown in FIG. Figure 3-Figure 6 In particular, Figure 3 and Figure 4 An example of a lightweight viewer is provided.
[0038] At 202, one or more user inputs are obtained to modify a visualization dashboard of a lightweight viewer to a modified state. As examples, the user inputs may include inputs for applying filters to visualizations within the dashboard or inputs for drilling down within hierarchical data presented within the visualization.
[0039] In some embodiments, one or more visualizations of data in the visualization dashboard are defined by a visualization definition, and wherein one or more user inputs that modify the visualization dashboard to a modified state also modify the visualization definition to a modified visualization definition.
[0040] At 203, user input is obtained for navigating to a classic viewer of the web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer. In some embodiments, navigating to the classic viewer in the web browser includes an indication in the uniform resource locator that the navigation was from the lightweight viewer. For example, the navigation may involve adding a URL parameter, such as "navigatefromlwv=true", to inform the classic viewer that the user has opened it by navigating from the lightweight viewer.
[0041] In some embodiments, navigating to the classic viewer in the web browser includes additional parameters of the visualization dashboard. In some embodiments, the additional parameters may include a page identifier identifying a specific page within the visualization dashboard.
[0042] At 204, a classic viewer is navigated to in a web browser, the classic viewer providing a second user interface presenting a visualization dashboard including one or more visualizations of the data. An example of a visualization dashboard is shown in FIG. Figure 3-Figure 6 In particular, Figure 5 and Figure 6 An example for the Classic Viewer is provided.
[0043] At 205 , based on the navigation from the lightweight viewer to the classic viewer and in the absence of user input to the classic viewer to modify the visualization dashboard to the modified state, the visualization dashboard of the classic viewer is modified to a modified state.
[0044] In some embodiments, the method for maintaining state may further include the steps of determining a delta state object by comparing the modified visualization definition to the visualization definition, retrieving, by the lightweight viewer, an encryption key for the web application from a server, encrypting, by the lightweight viewer, the delta state object using the encryption key to obtain an encrypted delta state object, storing, by the lightweight viewer, the encrypted delta state object in a local browser storage, retrieving, by the classic viewer, a decryption key for the web application from a server, retrieving, by the classic viewer, the encrypted delta state object from the local browser storage, and decrypting, by the classic viewer, the encrypted delta state object using the decryption key to obtain the delta state object, wherein modifying the visualization dashboard of the classic viewer to the modified state is based on the navigation from the lightweight viewer to the classic viewer based on the delta state object.
[0045] Example
[0046] Examples of visualization dashboards are available at Figure 3-Figure 6 In particular, Figure 3 and Figure 4 Provides an example of a lightweight viewer, and Figure 5 and Figure 6 An example for the Classic Viewer is provided. Figure 7 and Figure 8 Examples of architectures and information flow diagrams for maintaining state between web applications are provided, respectively.
[0047] Figure 3 A diagram 300 of a default state of a lightweight web application user interface including a dashboard according to an embodiment is shown. The dashboard shows product details and information about discounts given on various product categories. When a user opens the dashboard in a lightweight viewer, it shows the following data in the form of a chart 310.
[0048] From this chart 310, the user can visualize that more discounts are given to juices. Now the user is interested in knowing the discounts given to various juices, so he will perform a drill-down operation on juices.
[0049] The illustration 300 of the lightweight web application user interface also includes a placeholder image 320 of a map and a message indicating that the lightweight viewer does not support the geographic map widget: "Unsupported Widget: Geographic Map."
[0050] The user interface also includes navigation buttons 330 to navigate from the lightweight viewer to the classic viewer (eg Figure 5 and Figure 6 shown).
[0051] Figure 4A diagram 400 is shown of a modified state of a lightweight web application user interface including a dashboard according to an embodiment. Diagram 420 shows the state of a modified state of a lightweight web application user interface including a dashboard according to an embodiment. Figure 3 Describes the information about discounts given on product categories after a drill-down operation.
[0052] The illustration 400 of the lightweight web application user interface also shows a navigation button 430 that the user can select to navigate to the classic viewer web application.
[0053] The illustration 400 of the lightweight web application user interface also shows a filter button 460, which is shown in dashed lines other than solid lines to indicate that the lightweight viewer does not support this functionality. In addition, when the user selects (e.g., hovers, taps, clicks, etc.) the filter button 460, the user interface can present a message 440 indicating that the classic viewer can provide the following functionality: "To enable the filter functionality, please switch to the classic viewer first." The message 440 also includes a hyperlink 450 to "Navigate to the classic viewer."
[0054] From chart 420, the user can navigate to the classic viewer (e.g., by selecting button 430 or hyperlink 450). As described above, the user may want to preserve the context and modification state of chart 420. Preserving the state would be advantageous because the user would not need to repeat the drill-down operation.
[0055] For comparison, Figure 5 A diagram 500 of a default state of a classic web application user interface including a dashboard according to an embodiment is shown. This is the default state that would be displayed if the user had opened the per-product discount chart 530 directly in the classic viewer without first opening the lightweight viewer and modifying the dashboard from there before navigating to the classic viewer.
[0056] As mentioned earlier, the lightweight viewer does not support geographic maps, but instead provides Figure 3 320 is shown. However, the classic web application does support this functionality, and the user interface shows a geographic map widget 510. In addition, the classic viewer web application also supports a filter functionality 540 (shown as a solid line) that is not supported by the lightweight viewer.
[0057] Figure 6 600 shows a modified state of a classic web application user interface including a dashboard according to an embodiment. Figure 4 The same modified state of the chart 420 in the lightweight viewer in FIG. 6 shows the per-product discount chart 640. The modified state can be maintained between the two web applications using the above-described techniques.
[0058] Below together with Figure 7 The architecture diagram and Figure 8 Information flow in Figure 1 The following describes further details of maintaining state between web applications.
[0059] Figure 7 A diagram 700 of an architecture for maintaining state between a lightweight viewer 770 web application and a classic viewer 780 web application according to an embodiment is shown. These web applications are run by a web browser 760, which is run by a computer system. The lightweight viewer 770 web application includes a lightweight viewer navigation manager 772 software component. The classic viewer 780 includes a classic navigation manager 782 software component. These lightweight and classic navigation manager software components 772, 782 can access the browser local storage 176 to store and receive incremental state objects, which can be encrypted.
[0060] The lightweight viewer 770 and the classic viewer 780 are two different applications working on the same data from the backend server 790. When the user navigates from the lightweight viewer 770 to the classic viewer 780, the web browser 760 closes the lightweight viewer 770 application and opens the classic viewer 780 application in the same browser window. Before closing the lightweight viewer 770 application, the web browser 760 can capture the change of state (i.e., the delta) and retain it in the browser storage 762. When the classic viewer 780 application is opened, it retrieves the default story state from the backend server 790 and applies the delta retained by the lightweight viewer 770 in the browser's local storage 762. Thus, the dashboard context is maintained in this way. Once the delta is applied to the dashboard, it is cleaned up and deleted from the browser's memory.
[0061] The incremental state object stored in the browser local storage 762 may be encrypted by the lightweight navigation manager 772 using an encryption key obtained from the backend server 790. The encrypted incremental state object is the incremental state stored in the browser local storage 762. The backend server 790 may later deliver a decryption key to the classic navigation manager 782 so that it can decrypt the encrypted incremental state object stored by the lightweight viewer navigation manager 772.
[0062] The generation and encryption of incremental state objects is further described below.
[0063] Figure 8An information flow diagram 800 is shown for maintaining state between web applications using encrypted incremental state objects according to an embodiment. In diagram 800, information flows between lightweight viewer navigation manager 840, incremental state manager 850, backend 860, browser local storage 870, classic navigation manager 880, and classic incremental state manager 890.
[0064] At 801, when a user ("from LWV") clicks on a navigation button, a lightweight viewer navigation manager 840 is instantiated.
[0065] At 802, the lightweight viewer navigation manager 840 obtains the original / old dashboard definitions. In some embodiments, these can be obtained from a unified store.
[0066] At 803 , lightweight viewer navigation manager 840 obtains a delta state object from delta state manager 850 .
[0067] At 804, the delta state manager 850 instantiates a delta state object by reading the state of each component of the dashboard definition (e.g., from a unified store), and compares it to the initial state from the dashboard definition, and creates a delta and adds the delta to the delta state object. The delta state manager 850 performs the above steps for each component so that a complete delta will be formed.
[0068] At 805, the incremental state object is provided from the incremental state manager 850 to the lightweight viewer navigation manager 840.
[0069] Now the incremental state object can be stored in the browser cache, but it can be encrypted first.
[0070] In some cases, when a web application session is created, the back end 860 may create a unique key for the session. The key may be valid while the session is valid. Once the session expires, the key may be removed from the back end 860.
[0071] At 806 , the lightweight viewer navigation manager 840 sends a request to the backend 860 to obtain an encryption key.
[0072] At 807 , the backend 860 sends the encryption key to the incremental state manager 850 .
[0073] At 808, delta state manager 850 encrypts the delta state object using the encryption key.
[0074] At 809 , delta state manager 850 stores the delta state object in local storage of browser 870 .
[0075] At 810, the incremental state manager 850 retrieves other parameters, such as the page identifier, and these parameters are not part of the incremental state object but are required to obtain the current state of the story. These parameters can be passed in the navigation URL.
[0076] At 811, the delta state manager 850 prepares the navigation URL for the classic viewer by adding all required URL parameters. The delta state manager 850 adds the URL parameter "navigateFrom1WV=true" to notify the classic viewer that the user has opened the data analytics application by navigating from the lightweight viewer.
[0077] At 812, the delta state manager 850 calls the navigation API and passes the navigation URL to open the classic viewer application.
[0078] The classic viewer now instantiates the classic navigation manager 880 if the URL contains 'navigatefromlwv=true' or another identifier that the user has navigated from the lightweight viewer.
[0079] At 813, the classic navigation manager 880 delivers a request to the backend 860 to obtain a decryption key.
[0080] At 814 , the backend 860 sends the decryption key to the classic navigation manager 880 .
[0081] At 815, the classic navigation manager 880 reads the encrypted delta state object from the browser's local storage, and the classic navigation manager 880 decrypts the delta state object using the decryption key.
[0082] At 816, the classic navigation manager 880 deletes the encrypted delta state from the browser.
[0083] At 817 , the classic navigation manager 880 retrieves the dashboard definition.
[0084] At 818, the classic navigation manager 880 instantiates the classic delta state manager 890 and passes the delta state and dashboard definition.
[0085] At 818, the classic incremental state manager 890 navigates through the incremental state and reads the state of each component and merges it into the story definition. In this way, the classic incremental state manager 890 prepares an updated story definition that represents the state of the story that existed in the LWV at the time of navigation.
[0086] At 819 , the classic delta state manager 890 passes the updated story definition to the classic navigation manager 880 .
[0087] At 820, the classic navigation manager 880 provides the state to the classic viewer, which loads the dashboard with the same modified state as in the lightweight viewer. This is advantageous because the user does not need to repeat the same operation to return to the same context and application state they were in before navigating from the lightweight viewer to the classic viewer.
[0088] Example Hardware
[0089] Fig. 9 A diagram 900 of hardware for a special purpose computing machine that implements the systems and methods described herein is shown. The following hardware description is merely an example. It should be understood that various computer topologies may be used to implement the above techniques. Fig. 9 The hardware shown in can be used to implement the computer system and computer software (computer reprogramming code) described herein.
[0090] The computer system 910 includes a bus 905 or other communication mechanism for communicating information, and one or more processors 901 coupled to the bus 905 for processing information. The computer system 910 also includes a memory 902 coupled to the bus 905 for storing information and instructions to be executed by the processor 901, including, for example, information and instructions for performing some of the above-mentioned techniques. The memory can also be used to store programs executed by the processor 901. Possible implementations of the memory can be, but are not limited to, random access memory (RAM), read-only memory (ROM), or both. A storage device 903 for storing information and instructions is also provided. Common forms of storage devices include, for example, hard drives, disks, optical disks, CD-ROMs, DVDs, flash memory or other non-volatile memories, USB memory cards, or any other medium that can be read by a computer. For example, the storage device 903 may include source code, binary code, or software files for performing the above-mentioned techniques. Storage devices and memories are examples of non-temporary computer-readable storage media.
[0091] Computer system 910 may be coupled to a display 912 via bus 905 for displaying information to a computer user. Input devices 911 such as a keyboard, touch screen, and / or mouse are coupled to bus 905 for communicating information and command selections from the user to processor 901. The combination of these components allows the user to communicate with the system. In some systems, bus 905 represents, for example, multiple dedicated buses.
[0092] The computer system also includes a network interface 904 coupled to the bus 905. The network interface 904 can provide two-way data communication between the computer system 910 and the network 920. For example, the network interface 904 can be a wireless or wired connection. For example, the network 920 can be a local area network or an intranet. The computer system 910 can deliver and receive information to a computer system connected to the Internet 930 across the network 920 through the network interface 904. Using the Internet 930, the computer system 910 can access data and features residing on multiple different hardware servers 931, 932, 933, 934. In some embodiments, the servers 931-934 can be part of a cloud computing environment.
[0093] Additional Embodiments
[0094] Additional embodiments of techniques for maintaining state between web applications are described below.
[0095] Some embodiments provide a computer system, which includes one or more processors and one or more machine-readable media coupled to the one or more processors. The one or more machine-readable media store computer program codes, the computer program codes including an instruction set that can be executed by one or more processors to run a lightweight viewer of a web application in a web browser, the lightweight viewer providing a first user interface presenting a visual dashboard including one or more visualizations of data. The computer program code also includes an instruction set that can be executed by one or more processors to obtain one or more user inputs to modify the visual dashboard of the lightweight viewer to a modified state. The computer program code also includes an instruction set that can be executed by one or more processors to obtain user input for navigating to a classic viewer of a web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer. The computer program code also includes an instruction set that can be executed by one or more processors to navigate to a classic viewer in a web browser, the classic viewer providing a second user interface presenting a visual dashboard including one or more data visualizations. The computer program code also includes an instruction set that can be executed by one or more processors to modify the visual dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer and in the absence of user input to the classic viewer to modify the visual dashboard to a modified state.
[0096] In some embodiments of the computer system, one or more visualizations of data in the visualization dashboard are defined by visualization definitions, and wherein one or more user inputs that modify the visualization dashboard to a modified state also modify the visualization definitions to modified visualization definitions.
[0097] In some embodiments of the computer system, the computer program code further comprises a set of instructions executable by the one or more processors to determine a delta state object by comparing the modified visualization definition to the visualization definition.
[0098] In some embodiments of the computer system, the computer program code also includes an instruction set executable by one or more processors to retrieve, by the lightweight viewer, an encryption key for the web application from a server, encrypt, by the lightweight viewer, an incremental state object using the encryption key to obtain an encrypted incremental state object, store, by the lightweight viewer, the encrypted incremental state object in a local browser storage, retrieve, by the classic viewer, a decryption key for the web application from the server, retrieve, by the classic viewer, the encrypted incremental state object from the local browser storage, and decrypt, by the classic viewer, the encrypted incremental state object using the decryption key to obtain the incremental state object, wherein modifying a visualization dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer is based on the incremental state object.
[0099] In some embodiments of the computer system, the first user interface of the lightweight viewer includes an indication that a particular function is not available in the lightweight viewer.
[0100] In some embodiments of the computer system, navigating to the classic viewer in the web browser includes an indication in the uniform resource locator that the navigation was from the lightweight viewer.
[0101] In some embodiments of the computer system, navigating to a classic viewer in a web browser includes additional parameters for visualizing the dashboard.
[0102] Some embodiments provide a non-transitory computer-readable medium storing computer program code. The computer program code includes an instruction set for running a lightweight viewer of a web application in a web browser, the lightweight viewer providing a first user interface presenting a visual dashboard including one or more visualizations of data. The computer program code also includes an instruction set for obtaining one or more user inputs for modifying the visual dashboard of the lightweight viewer to a modified state. The computer program code also includes an instruction set for obtaining user input for navigating to a classic viewer of the web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer. The computer program code also includes an instruction set for navigating to a classic viewer in a web browser, the classic viewer providing a second user interface presenting a visual dashboard including one or more visualizations of data. The computer program code also includes an instruction set for modifying the visual dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer and without user input to the classic viewer to modify the visual dashboard to a modified state.
[0103] In some embodiments of the non-transitory computer-readable medium, one or more visualizations of data in a visualization dashboard are defined by a visualization definition, and wherein one or more user inputs that modify the visualization dashboard to a modified state also modify the visualization definition to a modified visualization definition.
[0104] In some embodiments of the non-transitory computer readable medium, the computer program code further comprises a set of instructions for determining a delta state object by comparing the modified visualization definition to the visualization definition.
[0105] In some embodiments of the non-transitory computer-readable medium, the computer program code further comprises a set of instructions for retrieving, by the lightweight viewer, an encryption key for the web application from a server, encrypting, by the lightweight viewer, an incremental state object using the encryption key to obtain an encrypted incremental state object, storing, by the lightweight viewer, the encrypted incremental state object in a local browser storage, retrieving, by the classic viewer, a decryption key for the web application from the server, retrieving, by the classic viewer, the encrypted incremental state object from the local browser storage, and decrypting, by the classic viewer, the encrypted incremental state object using the decryption key to obtain the incremental state object, wherein modifying a visualization dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer is based on the incremental state object.
[0106] In some implementations of the non-transitory computer-readable medium, the first user interface of the lightweight viewer includes an indication that a particular function is not available in the lightweight viewer.
[0107] In some embodiments of the non-transitory computer-readable medium, navigating to the classic viewer in the web browser includes an indication in the uniform resource locator that the navigation was from the lightweight viewer.
[0108] In some embodiments of the non-transitory computer-readable medium, navigating to a classic viewer in a web browser includes additional parameters for visualizing the dashboard.
[0109] Some embodiments provide a computer-implemented method that includes running a lightweight viewer of a web application in a web browser, the lightweight viewer providing a first user interface that presents a visual dashboard that includes one or more visualizations of data, obtaining one or more user inputs to modify the visual dashboard of the lightweight viewer to a modified state, obtaining user input for navigating to a classic viewer of the web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer, the classic viewer providing a second user interface that presents the visual dashboard that includes one or more visualizations of data, and modifying the visual dashboard of the classic viewer to a modified state based on the navigation from the lightweight viewer to the classic viewer and in the absence of user input to the classic viewer to modify the visual dashboard to the modified state.
[0110] In some embodiments of the computer-implemented method, one or more visualizations of data in the visualization dashboard are defined by visualization definitions, and wherein one or more user inputs that modify the visualization dashboard to a modified state also modify the visualization definitions to modified visualization definitions.
[0111] In some embodiments of the computer-implemented method, further comprising determining a delta state object by comparing the modified visualization definition to the visualization definition.
[0112] In some embodiments of the computer-implemented method, further comprising retrieving, by the lightweight viewer, an encryption key for the web application from a server, encrypting, by the lightweight viewer, a delta state object using the encryption key to obtain an encrypted delta state object, storing, by the lightweight viewer, the encrypted delta state object in a local browser storage, retrieving, by the classic viewer, a decryption key for the web application from the server, retrieving, by the classic viewer, the encrypted delta state object from the local browser storage, and decrypting, by the classic viewer, the encrypted delta state object using the decryption key to obtain the delta state object, wherein modifying the visualization dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer is based on the delta state object.
[0113] In some embodiments of the computer-implemented method, the first user interface of the lightweight viewer includes an indication that a particular function is not available in the lightweight viewer.
[0114] In some embodiments of the computer-implemented method, navigating to the classic viewer in the web browser includes an indication in the uniform resource locator that the navigation was from the lightweight viewer, and wherein navigating to the classic viewer in the web browser includes additional parameters of the visualization dashboard.
[0115] The above description shows various embodiments of the present disclosure and examples of how various aspects of specific embodiments can be implemented. The above examples should not be considered to be the only embodiments, and are presented to illustrate the flexibility and advantages of specific embodiments defined by the appended claims. Based on the above disclosure and the appended claims, other arrangements, embodiments, implementations and equivalents may be adopted without departing from the scope of the present disclosure defined by the claims.
Claims
1. A computer system comprising: one or more processors; One or more machine-readable media, coupled to the one or more processors and storing computer program code, the computer program code comprising a set of instructions executable by the one or more processors to: A lightweight viewer of the web application is executed in a web browser, the lightweight viewer providing a first user interface presenting a visualization dashboard including one or more visualizations of the data; obtaining one or more user inputs that modify a visualization dashboard of the lightweight viewer to a modified state; Obtaining user input for navigating to a classic viewer of the web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer; navigating to a classic viewer in a web browser, the classic viewer providing a second user interface presenting a visualization dashboard including one or more visualizations of the data; as well as Based on the navigation from the lightweight viewer to the classic viewer and in the absence of user input to the classic viewer to modify the visualization dashboard to the modified state, the visualization dashboard of the classic viewer is modified to the modified state.
2. The computer system according to claim 1, wherein: One or more visualizations of data in the visualization dashboard are defined by visualization definitions, and wherein one or more user inputs that modify the visualization dashboard to a modified state also modify the visualization definitions to modified visualization definitions.
3. The computer system according to claim 2, wherein: The computer program code also includes a set of instructions executable by one or more processors to: A delta state object is determined by comparing the modified visualization definition to the visualization definition.
4. The computer system according to claim 3, wherein: The computer program code also includes a set of instructions executable by one or more processors to: Retrieving, by the lightweight viewer, an encryption key for the web application from the server; The incremental state object is encrypted by the lightweight viewer using the encryption key to obtain an encrypted incremental state object; storing the encrypted incremental state object in local browser storage by the lightweight viewer; The decryption key for the web application is retrieved from the server by the classic viewer; Retrieving the encrypted delta state object from local browser storage by the classic viewer; The encrypted delta state object is decrypted by the classic viewer using a decryption key to obtain a delta state object, wherein modifying a visualization dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer is based on the delta state object.
5. The computer system according to claim 1, wherein: The first user interface of the lightweight viewer includes an indication that a particular function is not available in the lightweight viewer.
6. The computer system according to claim 1, wherein: Navigating to the classic viewer in a web browser includes instructions in the uniform resource locator to navigate from the lightweight viewer.
7. The computer system according to claim 1, wherein: Navigating to the classic viewer in a web browser includes additional parameters for visualizing the dashboard.
8. A non-transitory computer readable medium storing computer program code, the computer program code comprising a set of instructions for: A lightweight viewer of the web application is executed in a web browser, the lightweight viewer providing a first user interface presenting a visualization dashboard including one or more visualizations of the data; obtaining one or more user inputs that modify a visualization dashboard of the lightweight viewer to a modified state; Obtaining user input for navigating to a classic viewer of the web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer; navigating to a classic viewer in a web browser, the classic viewer providing a second user interface presenting a visualization dashboard including one or more visualizations of the data; as well as Based on the navigation from the lightweight viewer to the classic viewer and in the absence of user input to the classic viewer to modify the visualization dashboard to the modified state, the visualization dashboard of the classic viewer is modified to the modified state.
9. The non-transitory computer readable medium of claim 8, wherein: One or more visualizations of data in the visualization dashboard are defined by visualization definitions, and wherein one or more user inputs that modify the visualization dashboard to a modified state also modify the visualization definitions to modified visualization definitions.
10. The non-transitory computer readable medium of claim 9, wherein: The computer program code also includes a set of instructions for: A delta state object is determined by comparing the modified visualization definition to the visualization definition.
11. The non-transitory computer readable medium of claim 10, wherein: The computer program code also includes a set of instructions for: Retrieving, by the lightweight viewer, an encryption key for the web application from the server; The incremental state object is encrypted by the lightweight viewer using the encryption key to obtain an encrypted incremental state object; storing the encrypted incremental state object in local browser storage by the lightweight viewer; The decryption key for the web application is retrieved from the server by the classic viewer; Retrieving the encrypted delta state object from local browser storage by the classic viewer; The encrypted delta state object is decrypted by the classic viewer using a decryption key to obtain a delta state object, wherein modifying a visualization dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer is based on the delta state object.
12. The non-transitory computer readable medium of claim 8, wherein: The first user interface of the lightweight viewer includes an indication that a particular function is not available in the lightweight viewer.
13. The non-transitory computer readable medium of claim 8, wherein: Navigating to the classic viewer in a web browser includes instructions in the uniform resource locator to navigate from the lightweight viewer.
14. The non-transitory computer readable medium of claim 8, wherein: Navigating to the classic viewer of a web browser includes additional parameters for visualizing the dashboard.
15. A computer-implemented method comprising: A lightweight viewer of the web application is executed in a web browser, the lightweight viewer providing a first user interface presenting a visualization dashboard including one or more visualizations of the data; obtaining one or more user inputs that modify a visualization dashboard of the lightweight viewer to a modified state; Obtaining user input for navigating to a classic viewer of the web application, the classic viewer providing one or more functions or capabilities not provided by the lightweight viewer; navigating to a classic viewer in a web browser, the classic viewer providing a second user interface presenting a visualization dashboard including one or more visualizations of the data; as well as Based on the navigation from the lightweight viewer to the classic viewer and in the absence of user input to the classic viewer to modify the visualization dashboard to the modified state, the visualization dashboard of the classic viewer is modified to the modified state.
16. The computer-implemented method of claim 15, wherein: One or more visualizations of data in the visualization dashboard are defined by visualization definitions, and wherein one or more user inputs that modify the visualization dashboard to a modified state also modify the visualization definitions to modified visualization definitions.
17. The computer-implemented method of claim 16, further comprising: A delta state object is determined by comparing the modified visualization definition to the visualization definition.
18. The computer-implemented method of claim 15, further comprising: Retrieving, by the lightweight viewer, an encryption key for the web application from the server; The incremental state object is encrypted by the lightweight viewer using the encryption key to obtain an encrypted incremental state object; storing the encrypted incremental state object in local browser storage by the lightweight viewer; The decryption key for the web application is retrieved from the server by the classic viewer; Retrieving the encrypted delta state object from local browser storage by the classic viewer; The encrypted delta state object is decrypted by the classic viewer using a decryption key to obtain a delta state object, wherein modifying a visualization dashboard of the classic viewer to a modified state based on navigation from the lightweight viewer to the classic viewer is based on the delta state object.
19. The computer-implemented method of claim 15, wherein: The first user interface of the lightweight viewer includes an indication that a particular function is not available in the lightweight viewer.
20. The computer-implemented method of claim 15, wherein: The navigating in the web browser to the classic viewer includes an indication in the uniform resource locator that the navigation was from the lightweight viewer, and wherein the navigating in the web browser to the classic viewer includes additional parameters of the visualization dashboard.