GB2310937A - Monitoring the execution of modular programs - Google Patents

Monitoring the execution of modular programs Download PDF

Info

Publication number
GB2310937A
GB2310937A GB9604779A GB9604779A GB2310937A GB 2310937 A GB2310937 A GB 2310937A GB 9604779 A GB9604779 A GB 9604779A GB 9604779 A GB9604779 A GB 9604779A GB 2310937 A GB2310937 A GB 2310937A
Authority
GB
United Kingdom
Prior art keywords
information
program
computer program
execution
modules
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB9604779A
Other versions
GB9604779D0 (en
Inventor
David Watson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to GB9604779A priority Critical patent/GB2310937A/en
Publication of GB9604779D0 publication Critical patent/GB9604779D0/en
Publication of GB2310937A publication Critical patent/GB2310937A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)

Description

SYSTEM AND METHOD FOR MONITORING EXECUTION OF COMPUTER PROGRAMS Field of the Invention The present invention relates to the monitoring of computer programs, and in particular to monitoring the execution of computer programs comprising a plurality of modules. A module can be considered to be a discrete block of program code that can be logically combined with other modules to produce a computer program. Typically each module will define a particular processing function, for example parsing a command line input, convolving an image, sub-sampling a data file, etc.
Background of the Invention When running a program comprising a plurality of modules, a user may often wish to know which module is executing at any particular time.
This is particularly true during the development of such computer programs, since the user, in this case the program developer, will be interested to know if the program is running properly, and in particular if any of the modules are not executing correctly and hence are having an effect on the program as a whole.
Visual programming is one area of technology where such modular programs are constructed, and where the developer of such programs is typically provided with information about the execution of the visual program. The visualization system used to construct and execute visual programs can be considered as comprising of two main parts. Firstly, a number of modules are stored from which visual programs are constructed.
Some of these will typically be provided as part of the visualization system purchased by the visual program developer, whereas other modules will be added by the visual program developer later. These modules can be considered as the basic building blocks from which visual programs are constructed.
The second part of the visualization system is a user interface control means which presents the user with display panels through which the user can construct visual programs by logically connecting up a plurality of the modules. Further, the user interface control means provides mechanisms for displaying visual programs to the user, and for providing information to the user about the execution of those visual programs.
Typically, a visual program will be displayed to the user as a series of interconnected boxes, each box representing a module, and the interconnections indicating the logical relationship between the various modules. When such a visual program is running, the visualization system can keep the user informed of which module is running by, for example, highlighting that module on the display device. Such an approach is described in US Patent No 4,872,167, in which the currently executing module is represented in a visually discriminated fashion (eg by use of different hatching) from both modules that have already been executed and modules that have not yet been executed.
This may be an acceptable approach when the visual program is small enough that it can be displayed in its entirety on the display screen.
However, when the visual program is large, it may not be possible to display the whole program on the screen, and in such cases the highlighting approach does not work effectively. Due to the speed with which the visual program may move between the modules, it is not efficient for processing time to be expended in continually altering the display in an attempt to display on the screen that part of the visual program containing the currently executing module, and to then highlight the relevant module. By the time this process has been completed, a different module to the one highlighted may be being executed, and hence the information displayed will be inaccurate.
IBM's Visualization DataExplorer product (IBM and Visualization DataExplorer are Trade Marks of International Business Machines Corporation) provides a different, or complementary, approach to the highlighting technique mentioned above by allowing a tracing facility to be invoked, which creates a text window in which lines of information about the program execution can be displayed. Typically, as the window fills up with lines of information, the text is scrolled such that each new line of information is contained in the window. The management of this window is performed by the user interface control means of the visualization system, and hence the user interface control means has to dedicate time to maintaining the information in this window. In dedicating time to the display of this information the user interface control means must ensure that all of the operations required of its processing are performed in step with the execution of the visual program modules. In practice this is very difficult to achieve as the user interface control means has to monitor execution state, update any highlighting of modules in the visual program, monitor for errors, and display these together with the information displayed in the window. A further disadvantage of the window being owned by the interface control means is that if the visualization system terminates abnormally the window is lost together with any information yet to be displayed. When the display window is part of the visualization system, then any updating of the display window with module execution information will slow down the execution of the visualization system.
Although the above discussion of the problems associated with monitoring execution of modular computer programs has been provided with reference to visual programming environments, it will be apparent that the same problems are generally applicable to any situation where it is desired to provide information to a user about the execution of a modular computer program.
It is hence an object of the present invention to provide a system and method for monitoring the execution of computer programs comprising a plurality of modules, which alleviates the above described problems associated with prior art techniques.
Summarv of the Invention Accordingly, the present invention provides a method of monitoring the execution of a computer program comprising a plurality of modules, the method comprising the steps of: arranging the computer program to send to an information program messages containing information about execution of the modules of the computer program, the information program being arranged to execute separately from the computer program and to operate asynchronously to the computer program; and employing the information program to create user information from the messages and to provide that user information on an output device. Preferably, the computer program is arranged to send a message each time a module begins execution.
By providing an information program that executes separately from, and operates asynchronously to, the computer program, reliable information about the execution of the modules of the computer program can be provided.
In preferred embodiments, the computer program is a visual program, and the computer program displays representations of modules of the computer program on a display device. However, the invention is applicable to any computer programs comprising a plurality of modules, where it is desired to provide information about the execution of the program.
Preferably, the output device through which the user information is displayed is a display device, and the information program is arranged to create a window on the display device within which the user information is displayed. However, it will be apparent that any other output device suitable for providing the information to the user could be used. For instance, the output device could be a speaker and audio output could be used to provide the necessary information.
In preferred embodiments where the computer program is a visual program and a window is used to display the user information, the visual program and the window are preferably displayed on the same display device. However, it is possible for the information process to be executed on a separate machine to that on which the visual program is being executed, and in such cases, the window would generally be displayed on a different display device to that on which the visual program is displayed.
In preferred embodiments, the computer program is arranged to run on a UNIX type operating system, and a socket connection is used to pass messages between the computer program and the information program.
However, the invention is not restricted to any particular operating system, and other appropriate mechanisms can be used to pass messages between the computer program and the information process.
Viewed from a second aspect, the present invention provides a system for monitoring the execution of a computer program comprising a plurality of modules, the system comprising: an information program arranged to execute separately from the computer program and to operate asynchronously to the computer program to display information about the execution of the computer program; message transfer means for sending to the information program messages generated by the computer program and containing information about execution of the modules of the computer program; and information display means within the information program for creating user information from the messages and providing that user information on an output device.
Viewed from a third aspect, the present invention provides a tool for providing information about the execution of a modular computer program within a system, the tool comprising the information program. The tool may be provided separately, or as part of the operating system itself.
Brief Description of the Drawings The present invention will be described further, by way of example only, with reference to a preferred embodiment thereof as illustrated in the accompanying drawings, in which: Figure 1 is a schematic diagram illustrating a system in accordance with the preferred embodiment of the present invention; and Figure 2 is a flow diagram illustrating the operation of the system of the preferred embodiment.
Descristion of a Preferred Embodiment For the purpose of illustrating the preferred embodiment of the present invention, we will consider a visualization system running on IBM's AIX operating system (AIX is a Trade Mark of International Business Machines Corporation), which is a UNIX type operating system. However, the invention is not limited to any particular operating system.
A visualization system which uses visual programming is shown in the schematic diagram of Figure 1. The visualization system 10 is composed of a visual programming part 20, referred to herein as the User Interface Control means, and modules 30 which can be 'wired' together to form a visual program for performing a task.
Once a visual program has been constructed, the user interface control means 20 can be used to display that visual program on a display device 50. An example visual program 40 comprising modules A through K is shown in Figure 1. From the figure, it is clear that only a selection of the modules can be viewed at any one time in the visible screen area 60 of the display device 50.
In accordance with the preferred embodiment of the present invention, an information process 70 is provided for displaying information about the execution of a visual program. Preferably, as each module of a visual program begins execution, the visualization system 10 sends the information process 70 a message. Upon receipt of a message, the information process 70 creates user information from the message, typically this involving the extraction of a text portion from the message, and displays that user information within an information window 80 created by the information process 70. The information process may be executed on the same computer as the visualization system is running on, or alternatively may be on a different machine.
The operation of the system of the preferred embodiment will now be described in more detail with reference to the flow diagram of Figure 2.
At step 200, the user interface control means 20 of the visualization system 10 is started on the system. Preferably, as part of the start up procedure for the system, user input is checked at step 210 to see if the user has requested the information process to be used for this session.
If not, then the operation of the visualization system is performed in the usual manner (step 220).
However, if the user has requested that the information process be used, an information program used to perform the information process is started, either locally or on some remote computer as discussed earlier.
This results at step 230 in the information process displaying an information window 80 comprising a display area for information and a button 90 by which the process can be terminated if required.
Further, the information process 70 establishes at step 230 a communications connection between itself and the visualization system. In the preferred embodiment where the visualization system is running on IBM's AIX operating system, this communications connection takes the form of a 'socket' connection. A 'socket' is a reference point to which messages can be sent and from which messages can be received, sockets being a mechanism provided by UNIX type operating systems. It will be appreciated by those skilled in the art that alternatives to sockets exist in other operating systems, such as the pipes and queues used in IBM's OS/2 operating system.
The information process, once started, will create a socket which will return to the process an address, this address being stored as part of the information process's control data and the process then "binding" to that address. The information process then listens on the address to which it is bound until some communication is attempted into the socket connection. Therefore, once started the information process simply waits until a message arrives, and then the message is displayed or actioned as appropriate.
In addition to the starting up of the information process 70, and the connection between it and the visualization system 10, further initialization of the visualization system takes place, at which time the user may develop a visual program, using whatever means is provided by the user interface control means 20 of the visualization system 10, or alternatively may load a predefined program for execution (step 240).
Execution of the visual program at step 250 causes the visualization system to run the modules required by the currently defined visual program. At the outset of the visual program execution, a flag is checked to see if the user has requested the information process 70 to be used. If the information process is being used, then at step 260 each module in the visual program will send a message to the information process when it starts to execute. For example, considering the Figure 1 example, module A may be the first module to run. On entry to module A, the visualization system 10 (in preferred embodiments the user interface control means 20) reads the control data for the information process from memory or from some shared medium, such as a file. The control data for the information process gives the address of the socket connection which is used by the visualization system to write a message to the information process.
The module builds a suitable message to send and executes a command to pass the data across the socket link to the information process.
Since, as mentioned earlier, the information process is in a listen state waiting for a message to be sent across the socket link, the information process will be prompted by the presence of the message to read it from the socket link.
It should be noted that, if for some reason the information process is not available (for example it has been terminated by the user) then no delay is caused to the visualization system. The message is not required to reach it's destination before the sending module can continue processing. Hence, the module can continue executing as soon as the message has been placed in the socket.
In preferred embodiments, where the visualization system 10 and the information process 70 are being run on the same uni-processor machine, the operating system will allocate processing time to both the visualization system 10 and the information process 70. Hence steps 270 and 280 will be performed at the same time in accordance with the time slicing allocated by the operating system.
At step 270, the message data is read by the information process, and information is then created from that message data for display in the information window 80 associated with the process. Each message contains a control code to identify the type of message, and the information process examines this code and takes appropriate action. The exact form of the textual information passed over the socket can be varied by the system, however, in preferred embodiments it includes as a minimum the name of the module currently being executed by the visualization system as part of the current visual program.
After displaying the message data the information process returns to the listening state until another message is sent over the socket link. Messages may be either discarded once displayed in a single line display, stored in a scrollable or multi line display, or written to a log for further user examination.
After sending the message to the information process 70, the visualization system 10 immediately continues execution of the current module at step 280, without waiting for step 270 to be performed.
Since the visualization system has to both execute the modules and provide visual information to the user (eg the diagram of the visual program shown in Figure 1), the accuracy of the execution information displayed by the visualization system is less reliable than when using the information process 70, since the visualization system cannot dedicate all its processing time to keeping that information up to date.
The asynchronous nature of the information process 70 allows it to use the processor time allocated simply to display a message rather than the numerous tasks required of the visualization system 10. This allows the information process 70 to keep in step with processing by the visualization system more easily, and to thereby improve the accuracy of the information displayed to the user.
At step 290, it is determined whether the module executed at step 280 is the last module of the visual program. If not, the process returns to step 260, where the procedure is repeated for each subsequent module execution in the visual program. By using the system of the preferred embodiment, the information process display window 80 will show the current module which is executing, irrespective of the module's visibility to the user on the display device. For instance, considering the Figure 1 example, if module H is executing, but only modules A to D are shown on the display device 50, the prior art approach of highlighting the currently executing module does not provide the user with the necessary information. However, by employing the dedicated information process 70, the user will be provided with a message in window 80 stating that module H is currently executing.
When the visual program is complete, then the process proceeds from step 290 to step 300, where it is determined if the user has terminated the visualization system. If the visualization system has not been terminated, because for example the user has decided to develop a new program or load another pre-defined collection of modules, then at step 310, the visualization system sends a message to the information process which contains a clear command to clear the display in window 80. The process then returns to step 240.
If the user does decide to terminate the visualization system, then at step 320 the information process is sent a terminate command which causes it at step 330 to close any files it is using (such as message logs), release all resources being used, close the display window, and terminate.
If the visualization system 10 terminates abnormally before the user requests such termination, the information process 70 will remain active, and the last module to communicate with the information process 70 will be displayed in the window 80. This feature makes debugging of the visual program easier than in prior art techniques where the display of execution information was controlled as an integral part of the visualization system.
From the above description, it will be apparent that, by providing an information process arranged to execute separately from the visualization system, and to operate asynchronously from it, reliable information about the execution of the modules of the visual program can be provided. The information process of the preferred embodiment provides a useful tool for monitoring the execution of the visual program, and aids in the debugging of the visual program.

Claims (13)

1. A method of monitoring the execution of a computer program comprising a plurality of modules, the method comprising the steps of: arranging the computer program to send to an information program messages containing information about execution of the modules of the computer program, the information program being arranged to execute separately from the computer program and to operate asynchronously to the computer program; and employing the information program to create user information from the messages and to provide that user information on an output device.
2. A method as claimed in Claim 1, wherein the computer program is arranged to send a message each time a module begins execution.
3. A method as claimed in Claim 1 or Claim 2, wherein the computer program is a visual program, and the computer program displays representations of modules of the computer program on a display device.
4. A method as claimed in any of claims 1 to 3, wherein the output device is a display device, and the information program is arranged to create a window on the display device within which the user information is displayed.
5. A method as claimed in Claim 3 and Claim 4, wherein the visual program and the window are displayed on the same display device.
6. A method as claimed in any preceding claim, wherein the computer program is arranged to run on a UNIX type operating system, and a socket connection is used to pass messages between the computer program and the information program.
7. A system for monitoring the execution of a computer program comprising a plurality of modules, the system comprising: an information program arranged to execute separately from the computer program and to operate asynchronously to the computer program to display information about the execution of the computer program; message transfer means for sending to the information program messages generated by the computer program and containing information about execution of the modules of the computer program; and information display means within the information program for creating user information from the messages and providing that user information on an output device.
8. A system as claimed in Claim 7, wherein the computer program is arranged to send a message each time a module begins execution.
9. A method as claimed in Claim 7 or Claim 8, wherein the computer program is a visual program, and representations of modules of the computer program are displayed on a display device.
10. A system as claimed in any of claims 7 to 9, wherein the output device is a display device, and the information display means is arranged to create a window on the display device within which the user information is displayed.
11. A system as claimed in Claim 9 and Claim 10, wherein the visual program and the window are displayed on the same display device.
12. A system as claimed in any of claims 7 to 11, wherein the computer program is arranged to run on a UNIX type operating system, and the message transfer means comprises a socket connection arranged to pass messages between the computer program and the information program.
13. A tool for providing information about the execution of a computer program within a system as claimed in any of claims 7 to 12, the tool comprising the information program.
GB9604779A 1996-03-06 1996-03-06 Monitoring the execution of modular programs Withdrawn GB2310937A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9604779A GB2310937A (en) 1996-03-06 1996-03-06 Monitoring the execution of modular programs

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB9604779A GB2310937A (en) 1996-03-06 1996-03-06 Monitoring the execution of modular programs

Publications (2)

Publication Number Publication Date
GB9604779D0 GB9604779D0 (en) 1996-05-08
GB2310937A true GB2310937A (en) 1997-09-10

Family

ID=10789959

Family Applications (1)

Application Number Title Priority Date Filing Date
GB9604779A Withdrawn GB2310937A (en) 1996-03-06 1996-03-06 Monitoring the execution of modular programs

Country Status (1)

Country Link
GB (1) GB2310937A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004099980A2 (en) * 2003-05-09 2004-11-18 International Business Machines Corporation Monitoring operational data in data processing systems
GB2434461A (en) * 2006-01-24 2007-07-25 Hawkgrove Ltd System for monitoring the performance of the components of a software system by detecting the messages between the components and decoding them

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0596591A1 (en) * 1992-10-09 1994-05-11 Sun Microsystems, Inc. Method and apparatus for a real-time data collection and display system
US5388268A (en) * 1992-09-18 1995-02-07 Hewlett-Packard Company Methods of indicating states of software processes cooperating on a single task

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5388268A (en) * 1992-09-18 1995-02-07 Hewlett-Packard Company Methods of indicating states of software processes cooperating on a single task
EP0596591A1 (en) * 1992-10-09 1994-05-11 Sun Microsystems, Inc. Method and apparatus for a real-time data collection and display system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004099980A2 (en) * 2003-05-09 2004-11-18 International Business Machines Corporation Monitoring operational data in data processing systems
WO2004099980A3 (en) * 2003-05-09 2005-05-12 Ibm Monitoring operational data in data processing systems
US7996513B2 (en) 2003-05-09 2011-08-09 International Business Machines Corporation Monitoring operational data in data processing systems
GB2434461A (en) * 2006-01-24 2007-07-25 Hawkgrove Ltd System for monitoring the performance of the components of a software system by detecting the messages between the components and decoding them
US8103762B2 (en) 2006-01-24 2012-01-24 Hawkgrove Limited Monitoring system for monitoring a message-sending system

Also Published As

Publication number Publication date
GB9604779D0 (en) 1996-05-08

Similar Documents

Publication Publication Date Title
US5898873A (en) System and method for visualizing system operation trace chronologies
US5075675A (en) Method and apparatus for dynamic promotion of background window displays in multi-tasking computer systems
US5506952A (en) Method and system for guiding the formation of a correctly structured instruction for data processing systems
US20020066071A1 (en) Local environment for integrated multiple-tier client-server concurrent program developement
CA2099020C (en) Apparatus and method for creation of a user definable video displayed document showing changes in real time data
EP0568386A2 (en) Console simulator, multi-console management system, and console management distribution system
EP0462691A2 (en) Data processing apparatus having a user inquiry facility
EP0508633A2 (en) Dynamic user panels
US5659788A (en) Management system comprising a unified interface for integrating a plurality of different system management software tools
US5590314A (en) Apparatus for sending message via cable between programs and performing automatic operation in response to sent message
CN110480633B (en) Method and device for controlling equipment and storage medium
US6650342B1 (en) Method for operating network management system in a graphic user interface enviroment and network management system
US5745903A (en) Method and apparatus for file change notification
GB2310937A (en) Monitoring the execution of modular programs
JPH09146859A (en) Network system with terminal managing function
US5812825A (en) Integrated console and console apparatus and method for use thereof
EP0352908A2 (en) Computing system and method used to provide instruction to a user for a plurality of computer applications
JP2619487B2 (en) File operation method
JP2896536B2 (en) Electronic message system
JP2002099590A (en) Daily report preparing system for construction work
KR100298291B1 (en) How to run a batch job to manage the exchange system
JP2905552B2 (en) Keyboard control method
JP3222504B2 (en) Service equipment
JPH096692A (en) Input and output simulator
JPH01136236A (en) System for editing, analyzing and executing program

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)