The background of the present disclosure is hereinafter introduced with the discussion of techniques relating to its context. However, even when this discussion refers to documents, acts, artifacts and the like, it does not suggest or represent that the discussed techniques are part of the prior art or are common general knowledge in the field relevant to the present disclosure.
The present disclosure relates to the information technology field. More specifically, this disclosure relates to user interfaces.
User Interfaces (UI) are provided in association with any software applications requiring interactions with human users; a typical example is a Graphical User Interface (GUI), wherein the (human) users may interact with the software application by means of visual objects (such as buttons, menus), which are displayed and manipulated on a monitor.
Very often, the user interface of a software application comprises commands that may be used to submit operation requests to the software application; the user interface is then configured to output corresponding results provided by the software application for the operation requests; for example, the operation requests may involve the execution of queries on databases that return data extracted from one or more tables thereof according to selected criteria.
In some cases, the software application may require a relatively long time to serve each operation request; for example, this may happen with queries that are complex and/or retrieve large amount of data. As a consequence, a response time of the software application (required to respond to the operation request) increases accordingly. Generally, in this period the user interface is unusable (frozen) without the possibility of performing any other action thereon (until the result of the operation request is received).
However, any long delay is quite frustrating for the user (which is stuck waiting for the completion of the operation request). Moreover, the user may be led to believe that the software application is not working or that the operation request has not been submitted correctly; this may cause the user to abort the operation request or to submit it again, in both cases further worsening the situation. This is especially true when the software application has a client/server architecture, wherein the user interacts remotely with the software application running on a server computing machine by means of a client computing machine thereof (for example, in the Internet wherein the user has to wait for the loading of a corresponding web page).
A progress indicator (for example, an animated icon or a progress bar) may be displayed to inform the user that the serving of the operation request is in progress. Particularly, the progress indicator (such as in case of the progress bar) may also provide an indication of an amount of processing that has already been performed (from which a quite approximated indication of the time remaining to complete the serving of the operation request may be inferred).
Performance monitoring techniques are also available to collect performance indicators of computing systems (for example, by measuring different metrics relating to monitored resources thereof); this information may be used to detect any problems that may be experienced by the computing systems, so that appropriate actions may be taken to remedy the situation. Particularly, U.S. Pat. No. 7,873,715 discloses a technique for instrumenting web pages for performance management, wherein a web server (receiving a request for a web page from a web client) inserts a callout to a performance management agent therein; the web client receiving the web page including the callout to the agent uses it to load the agent, which collects performance metrics on the web client and sends them to a collector server for storage and/or analysis. Moreover, US-A-2012/0030338 discloses a technique for predicting cloud service performance, wherein a parental dependency graph for a web page (encapsulating one or more dependency relationships for each web object in the web page) is extracted; a loading of the web page is simulated based on adjusted timing information of each web object, and a corresponding new page load time is estimated and compared with an original page load time of the web page to determine whether the adjusted timing information increased or decreased it.