1. Technology Field
The present invention generally relates to software applications. In particular, the present invention relates to graphically depicting multiple workflow run instances performed by a software application in conjunction with a communications network via a graphical user interface.
2. The Related Technology
Modern computer networks involve the transmission of large amounts of data at very high speeds across the networks. For example, in some networks, transmission rates as high as 10 Gbits/second are currently being used. Today, hardware and protocols that will support transmission rates up to 40 Gbits/second are being developed. Within these networks, transmission problems may occur intermittently.
Using network analysis tools, network administrators can identify and resolve various types of network problems. In some situations, network problems may be resolved by sampling a portion of the data transmitted across the network or by performing a statistical analysis on portions of the transmitted data. Other solutions require the collection of all data that traverses the network during a given time period.
One example of a network analysis tool mentioned above is known as a network analyzer. Network analyzers utilize a combination of hardware and software components to monitor data transmitted across the network, to capture such data upon the execution of one or more triggers, and to analyze captured data in order to diagnose or detect problem conditions existing on the network. As such, the software applications that cooperate with hardware components of the network analyzer are critical to ensure proper data traffic monitoring, capture and problem condition diagnosis. Indeed, software applications used in this manner can be employed to view and/or manipulate various network configurations and overall topology of the physical network. Thus, these software applications are highly beneficial in maximizing the utility of network analyzers and other types of network analysis tools.
Many known network analyzers and similar apparatus utilize both hardware and software components in order to perform monitoring and diagnostic functions within the communications network. Often, network analyzers are configured such that they perform multiple tasks during operation, with many of these tasks performed simultaneously.
Each task performed by the software of a network analyzer may be composed of a single procedure, or work item, or a sequence of work items to be executed. One specification for the sequencing of these work items is called a “workflow”. The workflow specification is visualized as a directed graph, more formally known as a Petri Net. The Petri Net contains constructs that represent the procedures to be executed and their related paths and possible branches that are followed during task execution based on data conditions, timing, and other factors that occur in the work items themselves or that are evaluated in decision or calculation nodes of the Petri Net. Thus, a Petri Net construction illustrates the various workflow specifications of a particular task to be executed by the software of a network analyzer, including procedure iteration, branching, joining, event generation, event activation, and many other commonly known directed graph constructs.
Traditional screen displays associated with software applications often fail to adequately depict details regarding one or more workflows executed by the application. This failure is particularly evident when such workflows are performed simultaneously with respect to one another. However, in the realm of network analysis tools, the ability for a user to readily view the details of one or more specified workflows and to maneuver between the multiple workflow run instances being executed by a network analyzer is essential for rapid analysis of network conditions.
In light of the above, a need therefore exists for a method by which identification and data relating to multiple workflow run instance run instances executed by a software application can be graphically depicted by a computer system having a display device, so as to enable the progress or status of each workflow run instance run instance to be easily ascertained by a user. In addition, it would be an advancement in the art to enable the selective display of details regarding selected workflow run instance run instances performed by a software application. Additionally, any advancement that can be adapted for use with network analysis tools, such as hardware and software-based network analyzers, to monitor and diagnose problem conditions in a communications network is also desired.
Briefly summarized, embodiments of the present invention are directed to a method by which data and other details regarding tasks performed by a software application can be graphically depicted via a graphical user interface. Embodiments of the present invention can be practiced on a computer system having a screen display, for example, wherein the computer system interacts with a communications network. In one embodiment, the computer system is a network analyzer that monitors data transmission activities within a communications network. Therefore, the workflow tasks performed or executed by a software application that is associated with the computer system are utilized in such monitoring of the communications network.
Embodiments of the present invention enable tasks that are executed by a software application to be displayed as one or more workflow run instances using a Gantt chart configuration. The Gantt chart depiction of workflow run instances representing various past or current tasks performed by the software application can be displayed in a visual format via a graphical user interface, thereby enabling a user to selectively identify any one or more of the workflow run instances performed by the software application. The Gantt chart format provides an easy to understand time-based display that is easily navigable by the user.
Employing a selector that is included in the graphical user interface, the user can select the desired workflow run instance. Data and other details regarding the workflow run instance are then immediately produced on the display, thereby enabling the user to view such details. In the case of two or more workflow run instances being simultaneously selected, details or data regarding each of the selected workflow run instances can be simultaneously displayed. This enables a user to readily identify the progress or details of the multiple workflow run instances relating to the software application, thereby further enabling performance of the software application to be maximized. When used in conjunction with a network analyzer for monitoring data transmissions within a communications network, depiction of the various workflow run instances of the software application enable a user to more readily identify problem conditions present in the communications network.
In one embodiment, then, a method is disclosed of selectively displaying data relating to multiple workflow run instances executed by a software application. The method includes displaying a plurality of workflow run instances arranged in a time-based format via a graphical user interface, enabling the selection of at least one workflow run instance via a selector block of the graphical user interface, and depicting data relating to the selected workflow run instance.
In another embodiment, a computer program product for implementing a method of displaying data relating to multiple workflow run instances executed by a software application is disclosed, and includes a computer readable medium carrying computer executable instructions for performing a method that includes displaying a plurality of workflow run instances arranged in a Gantt chart format, enabling the selection of at least one workflow run instance via a selector block of a graphical user interface, and depicting data relating to the selected workflow run instance.
In yet another embodiment, a method of selectively displaying data relating to multiple workflow run instances executed by a software application is disclosed and comprises displaying a plurality of workflow run instances arranged in a Gantt chart format via a graphical user interface, enabling the selection of at least one workflow run instance via at least two selector blocks of the graphical user interface; and depicting data relating to the selected at least one workflow run instance.
These and other features of the present invention will become more fully apparent from the following description and appended claims, or may be learned by the practice of the invention as set forth hereinafter.
To further clarify the above and other advantages and features of the present invention, a more particular description of the invention will be rendered by reference to specific embodiments thereof that are illustrated in the appended drawings. It is appreciated that these drawings depict only typical embodiments of the invention and are therefore not to be considered limiting of its scope. The invention will be described and explained with additional specificity and detail through the use of the accompanying drawings in which:
Reference will now be made to figures wherein like structures will be provided with like reference designations. It is understood that the drawings are diagrammatic and schematic representations of exemplary embodiments of the invention, and are not limiting of the present invention nor are they necessarily drawn to scale.
Reference is first made to
In one embodiment, the computer system 110 is a network analyzer or similar apparatus for monitoring network data traffic in the communications network 120 in order to detect and diagnose problem conditions existing in the network, such as problem conditions existing between network components (not shown here), or links between components.
The computer system 110 includes an application program 130 including computer executable instructions that are included in one or more modules. For instance, in one embodiment, the application program 130 includes a workflow monitor module 132 and an output module 134. As configured here, the workflow monitor module 132 monitors procedures and tasks associated with the monitoring of the communications network 120 by the computer system 110 in conjunction with the application program 130. Results obtained by the workflow monitor module 132, referred to here as “workflow run instances” and explained in greater detail further below, can be compiled and output via the output module 134. In the illustrated embodiment, data that is received and/or compiled by the output module 134 is directed in one embodiment to a display device 140 for visual presentation to a user (not shown) in a manner to be described further below. Alternatively, the data that is output via the output module 134 can be temporarily stored in a storage medium 142 before or after being forwarded to the display device 140.
In addition to the workflow monitor module 132 and output module 134, other modules containing computer executable instructions can be contained within the application program 130. Indeed, the modules shown in
Reference is now made to
As can be seen, the flow of operations 210 can proceed along one or more paths defined by the directed graph 200. For example, segment 230A of the directed graph 200 contains operations 210 that are executed first. The directed graph 200 then diverges, and flow of the task can travel along either divergent path, according to task input, parameters, etc. In one case, task flow proceeds along segment 230B, wherein corresponding operations 210 are executed. In another case, task flow proceeds along segment 230C, where one or more iterations of the corresponding operations 210 are executed. Regardless of which of the segments 230B or 230C is followed, segment 230D is then executed via its corresponding operations 210 to complete the task. Generally, for a task represented by a directed graph, one or more iterations of selected operations can occur according to the flow of the task during application execution, while other operations are not executed at all. In yet other situations, some operations are executed simultaneously with other operations. Thus, the depiction of a directed graph in
Reference is now made now to
As seen in
In greater detail, the workflow run instance portions 254 of the workflow run instance 252 shown in
As shown in
Reference is now made to
The workflow run instances 302 are shown in a vertically stacked configuration, in accordance with the fact that multiple, simultaneous tasks can be executed by the application program at any given point in time, again in accordance with Gantt chart format conventions.
It is often desirable for data and other details regarding the execution of the tasks represented by the workflow run instances 302 to be viewed by a user. To that end, embodiments of the present invention provide a manner by which such data can be viewed. In particular, a selector 305 is included in the GUI 300 to enable data regarding selected workflow run instances to be viewed. In detail, the selector 305 according to one embodiment includes a vertical selector bar 306 together with a selector block 308. The vertical selector bar 306 is horizontally moveable along the longitudinal lengths of the various work flows 302 as indicated by the arrow in
In contrast, the selector block 308 is vertically moveable along the length of the vertical selector bar 306 as indicated by the respective arrow in
In the illustrated embodiment, the selector block 308 includes edge indicators 309A and corner indicators 309B. Via a click and drag operation or other suitable user input, the edge indicators 309A can be used to laterally expand or decrease the width of the selector block 308, while the corner indicators 309B can be used to expand or decrease the overall size of the selector block. A “snap to grid” feature in one embodiment can enable the selector block 308 to be sized to discrete increments. This snap to grid feature can enable both the vertical selector bar 306 and the selector block 308 to be accurately positioned with respect to the timeline 304 and the various workflow run instances 302. In one embodiment, clicking on a portion of the selector block 308, such as via a mouse, then using keyboard strokes, such as arrow keys, can also be used to alter the size of the selector block. Upon manipulation of the size of the selector block 308 in this manner, the vertical selector bar 306 can be configured to snap to the new center point of the selector block.
As shown in
Once the workflow run instance 302A is selected by cooperative movement of the vertical selector bar 306 and selector block 308 of the selector 305, the GUI 300 can enable data regarding the task represented by the workflow run instance to be selectively viewed, either automatically or according to user input via a mouse click, keyboard action, etc.
The display element 350 can include various sets of information that relate to the task that is executed by the application program and represented by the selected workflow run instance. Configured in one embodiment by the output module 134 of the application program 130 (
The display element 350 can be updated by movement of the selector 305 in the GUI 300 (
As mentioned, in one embodiment movement of the vertical selector bar 306 and selector block 308 is achieved by placing a mouse over the selector bar or selector block and initiating a mouse “click and drag” operation. This or other suitable action will move the selector 305 as desired in order to position the vertical selector bar 306 and/or selector block 308 over a desired workflow run instance portion of a workflow run instance 302.
In one embodiment, the GUI 300 is separately displayed with respect to the 350. In other words, once a workflow run instance is selected by the selector 305 in GUI 300, the screen is refreshed to show the data as reflected in the display element 350. In another embodiment, both the GUI 300 and the display element 350 coexist on a single screen display.
It is also appreciated that one, two, or more workflow run instance portions can be represented by the display element 350 at a given time, according to the position of the selector block 308, and that the relative positions of the various workflow run instances 302 can be vertically interchanged within the GUI 300, if desired. Further, note that, while the workflow run instances 302 of the GUI 300 in
Reference is now made to
More generally, it is appreciated that the size of the selector block(s) of the selector can be modified from that shown in the accompanying figures in order to be able to capture relatively more workflow run instances at one time. Indeed, the size of the workflow run instances and selector block(s) can be modified relative one another in order to fit an increased number of workflow run instances in the GUI depiction, if necessary.
Reference is now made to
Principles of embodiments of the present invention can be practiced in connection with features of a U.S. Patent Application entitled “METHOD OF CREATING A VIRTUAL NETWORK TOPOLOGY FOR USE IN A GRAPHICAL USER INTERFACE,” having inventors David R. Bernstein and Rodrigo Laguisma, filed concurrently herewith, which is incorporated herein by reference in its entirety.
With respect to computing environments, communications networks, and related components in general, at least some embodiments of the present invention may be implemented in connection with a special purpose or general purpose computer that is adapted for use in connection with communications systems. Embodiments within the scope of the present invention also include computer-readable media for carrying or having computer-executable instructions or electronic content structures stored thereon, and these terms are defined to extend to any such media or instructions for use with devices such as, but not limited to, link analyzers and multi-link protocol analyzers.
By way of example, such computer-readable media can include RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code in the form of computer-executable instructions or electronic content structures and which can be accessed by a general purpose or special purpose computer, or other computing device.
When information is transferred or provided over a network or another communications connection (either hardwired, wireless, or a combination of hardwired or wireless) to a computer or computing device, the computer or computing device properly views the connection as a computer-readable medium. Thus, any such connection is properly termed a computer-readable medium. Combinations of the above should also be included within the scope of computer-readable media. Computer-executable instructions comprise, for example, instructions and content which cause a general purpose computer, special purpose computer, special purpose processing device, such as link analyzers and multi-link protocol analyzers, or computing device to perform a certain function or group of functions.
Although not required, aspects of the invention have been described herein in the general context of computer-executable instructions, such as program modules, being executed by computers in network environments. Generally, program modules include routines, programs, objects, components, and content structures that perform particular tasks or implement particular abstract content types. Computer-executable instructions, associated content structures, and program modules represent examples of program code for executing aspects of the methods disclosed herein.
A computer system as described herein can include a processing unit, a system memory, and a system bus that couples various system components including the system memory to the processing unit. The computer system is connectable to networks, such as, for example, an office-wide or enterprise-wide computer network, an intranet, and/or the Internet. The computer system can exchange data with external sources, such as, for example, remote computer systems, remote applications, and/or remote databases over such a network.
The computer system can also include a network interface through which it receives data from external sources and/or transmits data to external sources. The network interface facilitates the exchange of data with a remote computer system via a link. The link represents a portion of a network, and the remote computer system represents a node of the network.
Modules of the present invention, as well as associated data, can be stored and accessed from any of the computer-readable media associated with the computer system. For example, portions of such modules and portions of associated program data may be included in an operating system, application programs, program modules and/or program data, for storage in a system memory. When a mass storage device, such as a magnetic hard disk, is coupled to the computer system, such modules and associated program data may also be stored in the mass storage device. In a networked environment, program modules and associated data depicted relative to the computer system, or portions thereof, can be stored in remote memory storage devices, such as, for example, system memory and/or mass storage devices associated with a remote computer system. Execution of such modules may be performed in a distributed environment as previously described.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative, not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes that come within the meaning and range of equivalency of the claims are to be embraced within their scope.
This application claims the benefit of the following U.S. Provisional Patent Applications: Application No. 60/502,019, filed on Sep. 11, 2003, entitled “GANTT CHART GUI METAPHOR FOR OUTPUT OF MULTI-WORKFLOW RUN INSTANCES;” and Application No. 60/502,018, filed on Sep. 11, 2003, entitled “RUNTIME BINDING OF APPLICATION TO NETWORK.” Each of the aforementioned applications is incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60502019 | Sep 2003 | US | |
60502018 | Sep 2003 | US |