Widgets in digital dashboards

Dashboard data representing a digital dashboard generated by a dashboard editor may be received. The digital dashboard may include a data widget to display metric data related to a metric. The data widget may be associated with a data source to receive the metric data from the data source. In response to the dashboard data representing the digital dashboard being loaded by a dashboard viewer for display, the metric data may be sent from the data source to the dashboard viewer so that the dashboard viewer is to display the metric data in the data widget.

BACKGROUND

A digital dashboard, as understood herein, is an electronic interface to display metric data relating to a metric. For example, the digital dashboard may simultaneously display different metric data relating to different metrics, for example different metrics associated with different aspects of an organization.

DETAILED DESCRIPTION

The following terminology is understood to mean the following when recited by the specification or the claims. The singular forms “a,” “an,” and “the” mean “one or more.” The terms “including” and “having” are intended to have the same inclusive meaning as the term “comprising.”

In some examples, digital dashboards may display metric data relating to multiple metrics. For each of the metrics, the respective metric data may be received from a different source. Therefore, data from different sources may be simultaneously displayed on the same dashboard. In some examples, the digital dashboard may provide a real-time display with dynamically changing metric data related to the metrics.

In some examples, the digital dashboard may be customizable by a user such that digital dashboard may perform display different data relating to different metrics according to a user's selection. For example, the user may select the widgets to be used in the digital dashboard, and also select the data associated with each of the widgets. However, in some examples, the digital dashboard may not be both easily user-customizable using a dashboard editor and easily displayable using a wide variety of dashboard viewers. Additionally, in some examples, the process of generating and viewing the digital dashboard may be overly complex due to data format transformations of the digital dashboard.

Accordingly, the present disclosure provides examples in which a dashboard editor may generate a digital dashboard in a vector format such as the Scalable Vector Graphics (SVG) format, such that the digital dashboard may be viewable, for example, in the same vector format using a wide variety of dashboard viewers such as web browsers without, for example, involving intervening data format transformations. Thus, the original design of the digital dashboard (e.g. designs, sizes, and locations of widgets) as defined in the original vector format may be displayed in a dashboard viewer, without any changes except that dynamic data may be displayed in the data widgets rather than the static original design of the data widgets. Additionally, integration with data sources may occur after the design of the digital dashboard. A vector format is an image format that includes a geometric description of an image allowing the image to be rendered smoothly at any desired display size.

FIG. 1is a block diagram illustrating a non-transitory computer readable storage medium10according to some examples. The non-transitory computer readable storage medium10may include instructions12that, when executed by a processor, cause the processor to receive dashboard data representing a digital dashboard generated by a dashboard editor, the digital dashboard including a data widget to display metric data related to a metric. The non-transitory computer readable storage medium10may include instructions14that, when executed by a processor, cause the processor to associate the data widget with a data source to receive the metric data from the data source. The non-transitory computer readable storage medium10may include instructions16that, when executed by a processor, cause the processor to, in response to the dashboard data representing the digital dashboard being loaded by a dashboard viewer for display, send the metric data from the data source to the dashboard viewer so that the dashboard viewer is to display the metric data in the data widget.

FIG. 2is a block diagram illustrating a system20according to some examples. The system20may include a memory22comprising instructions24. The system20may include a processor26coupled to the memory22and to execute the instructions24to: receive a digital dashboard in a vector format created by a dashboard editor, the digital dashboard including a widget to display metric data related to a metric; integrate the widget with a data channel to receive the metric data from a data source; and when the digital dashboard in the vector format is loaded by a dashboard viewer for display, send the metric data from the data source through the data channel to the dashboard viewer so that the dashboard viewer is to display the metric data within the widget.

FIG. 3is a flow diagram illustrating a method30according to some examples. At32, a widget may be selected to be included in a digital dashboard using a dashboard editor. The widget may display metric data related to a metric. The digital dashboard may be in a vector format. At34, the widget may be integrated with a data channel to receive the metric data from a data source. At36, the digital dashboard may be displayed in the vector format in a dashboard viewer such the metric data is dynamically displayed in the widget in response to being received by the dashboard viewer from the data source.

FIG. 4is a schematic illustration of a system100according to some examples. The system100includes a dashboard editor102. In some examples, the dashboard editor102may be implemented within a computing system including a processor, non-transitory computer readable medium, and instructions such as software and/or firmware stored in the non-transitory computer-readable storage medium that, when executed by the processor, cause the processor to perform processes defined herein. Thus, the dashboard editor102may be implemented as instructions on a non-transitory computer readable medium. In some examples, the dashboard editor102may include hardware features to perform processes described herein, such as a logical circuit, application specific integrated circuit, etc. The dashboard editor102may, for example, be any suitable application for generating a digital dashboard in a vector format. Such vector formats may include, for example, the Scalable Vector Graphics (SVG) format. In other examples, other suitable vector formats may be used. In some examples, the dashboard editor102may be a graphics editing application, slideshow editing application, or the like. For example, the dashboard editor102may be Microsoft Visio, Inkscape, or Adobe Illustrator. However, other dashboard editors may be used.

The dashboard editor102may include a canvas104for generating (e.g. drawing) a digital dashboard. As shown, an example digital dashboard106is already generated inFIG. 2. In some examples, the dashboard editor102may include drawing tools112for a user to draw widgets108a-cand110a-cin the digital dashboard106. In some examples, the dashboard editor102may include a library114which may include user-selectable, pre-drawn widgets108a-cand110a-cto be generated in the digital dashboard102. The library114may, for example, be implemented as the Stencil tool in Microsoft Visio. In some examples, the widgets108a-cand110a-cmay be selected from the library114and then further edited using the drawing tools112to finalize the widgets108a-cand110a-c.

In the example ofFIG. 4, the widgets108a-care static widgets, shown as a border108a, a dashboard title108b, and a logo108c. The static widgets108a-cmay be design or ornamental elements, or may be to provide information or data that is not to be dynamically updated when the digital dashboard106is displayed in a dashboard viewer. In some examples, a greater or lesser number of static widgets, or no static widgets, may be generated in the digital dashboard106. Additionally, any other static widget may be generated on the digital dashboard106rather than the static widgets108a-cshown. For example, static widgets may include any suitable type of geometric shape or image. The static widgets108a-cmay be static (e.g. unchanging) when generated in the canvas106using the drawing tools112and/or library114. Additionally, the static widgets108a-cmay remain static when loaded in a dashboard viewer, as will be discussed. This may, for example, be due to not associating the static widgets108a-cwith respective markers indicating that the elements108a-care to be dynamic (e.g. changing), or by associating the static widgets108a-cwith markers indicating that the elements108a-care to be static.

Each of the widgets110a-cmay be for displaying respective metric data related to a respective metric. In the example ofFIG. 4, the data widgets110a-care shown as a pie chart110a, a bar graph110b, and line chart110c. In some examples, a greater or lesser number of widgets may be generated in the digital dashboard106. Additionally, any other widgets may be generated on the digital dashboard106rather than the data widgets110a-cshown. For example, widgets may include any suitable type of geometric shape or image, including text, numbers, gauges, dials, indicators, charts, graphs, or the like, for displaying metric data related to a metric.

In some examples, the metrics may comprise performance (e.g. performance of IT components or an organization), traffic (e.g. in a network), correlations between any data points, predictions of any data points, results on data mining, prices, costs, revenue, sales, online status of users, or the like. The metrics may, for example, be associated with an organization or multiple organizations, such as corporations, governments, non-profit institutions, or other organizations. However, other metrics may be used as well.

The data widgets110a-cmay be static when generated in the canvas106using the drawing tools112and/or library114. However, using the dashboard integrator120as will be discussed, the data widgets110a-cmay be modified to become dynamic widgets when loaded in a dashboard viewer, or may be replaced with dynamic widgets when loaded in a dashboard viewer, as will be discussed. This may, for example, be due to associating the data widgets110a-cwith respective markers indicating that the data widgets110a-care to be dynamic (e.g. changing).

As discussed above, the static widgets108a-cmay be associated with respective markers indicating that the elements108a-care to be static when displayed by the dashboard viewer, and the data widgets110a-cmay be associated with respective markers indicating that the widgets110a-care to be dynamic. The association may be performed by a user using a marking tool116. A user may use the marking tool116to select a marker or create a marker to be associated with each widget or static widget. In some examples, the marking tool116may be a pre-populated field associated with a pre-drawn static widget or widget in the library114, such that a user may not need to separately associate a market with a static widget or widget. An example marking tool may, for example, be part of the Stencil tool in Microsoft Visio.

In some examples, any of the data widgets110a-cor static widgets108a-cmay be partially transparent, and may therefore be overlap (e.g. be superimposed on) each other. For example, a data widget may overlap another data widget, a static widget may overlap another static widget, or a static widget may overlap another data widget. One or both of the overlapping widgets may be partially transparent. InFIG. 4, data widget110boverlaps static widget108c.

In some examples, once the digital dashboard106is generated with the widgets108a-cand110a-c, the digital dashboard may be saved as dashboard data118which may be in a vector format such as the SVG format or another suitable vector format.

As shown inFIG. 4, system100includes a dashboard integrator120. The dashboard integrator120includes a receive engine122, associate engine124, and send engine126. In some examples, the engines, and any computing components of the dashboard integrator120, may be implemented as a computing system including a processor, non-transitory computer readable medium, and instructions such as software and/or firmware stored in the non-transitory computer-readable storage medium that, when executed by the processor, cause the processor to perform processes defined herein. In some examples, the engines may include hardware features to perform processes described herein, such as a logical circuit, application specific integrated circuit, etc. In some examples, multiple engines may be implemented using the same computing system features or hardware.

In some examples, the receive engine122may be to receive dashboard data118representing the digital dashboard106in a vector format from the dashboard editor102. The digital dashboard106may include data widget110ato display metric data134arelated to a first metric, data widget110bto display metric data134brelated to a second metric, and data widget110cto display metric data134crelated to a third metric.

In some examples, the associate engine124may be to associate (e.g. integrate) the data widgets110a-cwith respective data channels132a-cto receive the respective metric data134a-cfrom respective data sources130a-c. That is, the data widget110amay be associated with data channel132ato receive the metric data134afrom data source130a, the data widget110bmay be associated with data channel132bto receive the metric data134bfrom data source130b, and the data widget110cmay be associated with data channel132cto receive the metric data134cfrom data source130c. Thus, the digital dashboard106may be integrated with the data channels132a-cand data sources130a-c.

The data sources130a-cmay be communicatively coupled to the dashboard integrator120. The data sources130a-cmay be any suitable types of data sources. The data sources may be associated with an organization, and/or may be distributed across a network at different nodes of the network. The data sources130a-cmay be any types of storage devices, sensors performing measurements and providing data, status reporting devices, or the like. The data channels132a-cmay, for example, be virtual constructs in which respective metric data134a-care sent from the respective data sources130a-bto the dashboard integrator120.

In some examples, the metric data134a-cmay include respective data values (e.g. a numerical value or a string value such as a status) related to the respective metrics. In some examples, the metric data134a-cmay be in the form of data packets comprising the respective data values (e.g. numerical or string value), names of the respective metrics (e.g. “CPU load time”), respective attributes of the metrics (e.g. a name of a data source providing the metric data), and/or colors to be used for displaying the numerical values as text or other graphical elements. The metric data134a-cmay, for example, be in a JavaScript Object Notation (JSON) format.

In some examples, the integration of the digital dashboard106with the data channels132a-cand data sources130a-cmay be performed by a user. For example, the dashboard integrator120may include a user interface128which a user may view the digital dashboard106and a list131of available data sources130a-c. A storage device coupled with the dashboard editor120may include metadata (e.g. a Uniform Resource Locator (URL) or other identifying data) for respective data sources130a-cin the list so that the data sources130a-ccan be accessed. In some examples, a user may then input, into an input field129, a selection of a data source130a-cfrom the list131in the user interface128to be associated (e.g. integrated) with any respective data widgets110a-c, which the associate engine124may determine are associated with a respective marker indicating that the respective data widget110a-cis to be dynamic (e.g. changing). Thus, the association with data sources130a-cmay occur for the data widgets110a-cbut not for static widgets108a-c, which the associate engine124may determine are associated with respective markers indicating that the respective static widgets108a-care not to be dynamic (e.g. are to be static), or which the associate engine124may determine are not associated with respective markers with respective markers indicating that the respective static widgets108a-care to be dynamic.

In some examples, rather than selecting data sources from the list131, the user may add data sources to the list131, and input, into the input field129, a selection in the user interface128of a data source to be associated (e.g. integrated) with any respective data widgets110a-c. In these examples, the user may input, into the input field129, respective metadata (e.g. a Uniform Resource Locator (URL) or other identifying data) for respective data sources to be associated (e.g. integrated).

In some examples, once the data widgets110a-care associated (e.g. integrated) with the respective data channels132a-c, the digital dashboard106after integration may be saved as integrated dashboard data136which may be in the vector format such as the SVG format or another suitable vector format. The integrated dashboard data136may, for example, comprise the dashboard data118after integration. For example, the integrated dashboard data136may include the metadata (e.g. URLs) associated with each of the data widgets110a-csuch that the data widgets110a-care associated with respective data sources130a-c. The integrated dashboard data136may be loaded by a dashboard viewer138for display of the digital dashboard106. The dashboard viewer138may include a viewing area140for viewing the digital dashboard106. The metadata may further include an identifier indicating that the digital dashboard106is to access the send engine126of the dashboard integrator120such that the send engine126may access the data sources130a-cusing the URLs.

In some examples, the dashboard viewer138may be implemented within a computing system including a processor, non-transitory computer readable medium, and instructions such as software and/or firmware stored in the non-transitory computer-readable storage medium that, when executed by the processor, cause the processor to perform processes defined herein. Thus, the dashboard viewer138may be implemented as instructions on a non-transitory computer readable medium. In some examples, the dashboard viewer138may include hardware features to perform processes described herein, such as a logical circuit, application specific integrated circuit, etc. The dashboard viewer138may, for example, be any suitable application for viewing a digital dashboard in a vector format, such as a web browser.

In some examples, in response to the integrated dashboard data136representing the digital dashboard106in the vector format after integration being loaded by the dashboard viewer138to display the digital dashboard106in the viewing area140, the send engine126may be to send the metric data134a-cfrom the data sources130a-cto the dashboard viewer138(as shown inFIG. 4) so that the dashboard viewer138is to display the metric data130a-cin the respective data widgets110a-c(e.g. the metric data130ain the data widget110a, the metric data130bin the data widget110b, and the metric data130cin the data widget110c). In some examples, the metric data134a-cmay be pushed to the dashboard viewer138. In some examples, in response to the data136being loaded by the dashboard viewer138, the static widgets108a-cmay be displayed statically (e.g. unchangingly) in the viewing area140in the digital dashboard106.

In some examples, when the dashboard viewer138is displaying the data widgets110a-c, the dashboard viewer138may, based on the integrated dashboard data136including the identifier indicating that the digital dashboard106is to access the send engine126, notify the send engine126of the dashboard integrator120to send the metric data134a-cfrom the data sources130a-cusing the URLs. Thus, the send engine126may access the metric data134a-cthrough the data channels132a-cfrom the data sources130a-c, and send the metric data134a-cto the dashboard viewer138for a real-time display in the data widgets110a-cwith up-to-date metric data134a-c, as shown inFIG. 4. In some examples, based on the real-time access of the metric data134a-cfrom the data sources130a-c, the data134a-cmay be periodically (e.g. continuously) updated in the display. The period may, for example, be a regular period (e.g. same amount of time between each time the metric data is sent) or an irregular period (e.g., not the same amount of time between each time the metric data is sent). In some examples, based on the real-time access of the metric data134a-cfrom the data sources130a-c, the metric data134a-cmay be updated in the display when the dashboard is loaded or refreshed in the display, but may not be periodically updated in the display after the dashboard is loaded or refreshed.

In some examples, displaying the metric data134a-cdynamically in the data widgets110a-cmay comprise hiding the static versions of the data widgets110a-cand displaying dynamic versions of the data widgets110a-cprovided by the dashboard integrator120. In these examples, the dynamic versions may be dynamic versions of that widgets that are stored in a storage device coupled to the dashboard integrator120. In some examples, displaying the metric data134a-cdynamically in the data widgets110a-cmay comprise modifying the appearance of the existing static versions of the data widgets110a-csuch that they become dynamic (e.g. by changing the elements, such as text, chart elements, or graph elements, responsible for data display, but not changing elements, such as design, labels, or shape, that are not responsible for data display).

In some examples, the send engine126may specify that the metric data134a-cmay be displayed in the data widgets110a-cin respective data ranges suitable for the viewing the metric data134a-c. For example, if metric data comprises numerical time values within a two week range, then the displayed data range may be a two week range. However, if a new update of metric data comprises additional values outside the two week range, then the displayed data range provided by the send engine126may be expanded to encompass a one month range, for example.

In some examples, after display in the dashboard viewer138, the digital dashboard106may be edited further to add or remove any static widgets and data widgets using the dashboard editor102, and subsequently integrated using the dashboard integrator120with different data sources. Thus, a modified version of the digital dashboard120may be displayed in the dashboard viewer138. In this way, users may repeatedly modify, customize, and change the appearance of the digital dashboard120for future usage.

FIG. 5is a flow diagram illustrating a method200according to some examples. In some examples, the orderings shown may be varied, some elements may occur simultaneously, some elements may be added, and some elements may be omitted. In describingFIG. 5, reference will be made to elements described inFIG. 4. Any of the elements described earlier relative toFIG. 4may be implemented in the process shown in and described relative toFIG. 5.

At202, the digital dashboard106may be generated in a vector format using the dashboard editor102. The digital dashboard106may include static widgets108a-c, and may include data widgets110a-cassociated with respective markers indicating that the data widgets110a-care dynamic. At204, dashboard data118representing the digital dashboard106in vector format from dashboard editor102may be received by the receive engine122of the dashboard integrator120. At206, the associate engine122of the dashboard integrator120may associate the data widgets110a-cwith respective data channels132a-cto receive respective metric data134a-cfrom respective data sources130a-c. At208, the send engine124of the dashboard integrator120may send metric data134a-cfrom the data sources130a-cassociated with data widgets110a-cto the dashboard viewer138. At210, the metric data134a-cmay be displayed in the viewing area140of the dashboard viewer138in respective data widgets110a-cof the digital dashboard106. As shown, the method may then return to202if the user chooses to further edit the digital dashboard106to add or remove any static widgets and data widgets, and continue through the subsequent elements of the method200.

Any of the processors discussed herein may comprise a microprocessor, a microcontroller, a programmable gate array, an application specific integrated circuit (ASIC), a computer processor, or the like. Any of the processors may, for example, include multiple cores on a chip, multiple cores across multiple chips, multiple cores across multiple devices, or combinations thereof. In some examples, any of the processors may include at least one integrated circuit (IC), other control logic, other electronic circuits, or combinations thereof. Any of the non-transitory computer-readable storage media described herein may include a single medium or multiple media. The non-transitory computer readable storage medium may comprise any electronic, magnetic, optical, or other physical storage device. For example, the non-transitory computer-readable storage medium may include, for example, random access memory (RAM), static memory, read only memory, an electrically erasable programmable read-only memory (EEPROM), a hard drive, an optical drive, a storage drive, a CD, a DVD, or the like.

All of the features disclosed in this specification (including any accompanying claims, abstract and drawings), and/or all of the elements of any method or process so disclosed, may be combined in any combination, except combinations where at least some of such features and/or elements are mutually exclusive.

In the foregoing description, numerous details are set forth to provide an understanding of the subject disclosed herein. However, examples may be practiced without some or all of these details. Other examples may include modifications and variations from the details discussed above. It is intended that the appended claims cover such modifications and variations.