`(10) Patent No:
`a2) United States Patent
`May4, 2004
`(45) Date of Patent:
`Kirkpatrick et al.
`
`
`US006732359B1
`
`(54) APPLICATION PROCESS MONITOR
`(75)
`Inventors: Mark Kirkpatrick, Conyers, GA (US);
`Darin J. Morrow, Acworth, GA (US)
`
`(*) Notice:
`
`(73) Assignee: BellSouth Intellectual Property
`Corporation, Wilmington, DE (US)
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`(21) Appl. No.: 09/468,446
`(22)
`Filed:
`Dec. 21, 1999
`7
`(51)
`Tint, CIeee tee nee eenee cette G06F 9/00
`_
`(52) US. Ch. cet 718/102; 718/104; 718/107
`
`(58) Field of Search «0.0.0.0... esse 709/104, 107,
`709/100, 101, 102, 103; 717/27, 127; 718/100,
`101, 102, 103, 104, 105, 106, 107
`
`(56)
`
`References Cited
`U.S. PATENT DOCUMENTS
`
`5,715,389 A *
`2/1998 Komori w.. eee 714/47
`5/1998 Notenboometal. .......... 700/3
`5,748,468 A *
`5,835,765 A * 11/1998 Matsumoto ...... 709/102
`* cited by examiner
`Primary Examiner—Majid A. Banankhah
`(74) Attorney, Agent, or Firm—Woodcock Washburn LLP
`(57)
`ABSTRACT
`A computer system has a memory, an operating system, and
`a computer application instantiated in a work space in the
`memory as managed by the operating system. The applica-
`tion includes a plurality of application processes running in
`the work space. An application monitor monitors whether
`each of the plurality of application processes is in fact
`running, and automatically attempts to remedy an occur-
`rence where anyof the plurality of application processesis
`not in fact running.
`
`59 Claims, 2 Drawing Sheets
`
`
`
`RUN APPLICATION MONITOR- 201
`
`!
`MONITOR WHETHEREACH AP. PROC. IS RUNNING — COMPARE
`APP. PROC. STATUS INFO. WITH EACH LISTED AP. PROC. - 203
`
`
`v
`
`
`
`
`
`
`AUTOMATICALLY ATTEMPT TO REMEDY NON-RUNNING
`APPLICATION PROCESSES — PERFORM RE-START -205
`
`t
`
`f=
`Y
`SHUTDOWN AND||SHUTDOWN EACH
`APPLICATION
`RE-START
`PROCESSIN
`APPLICATION ~||REVERSE ORDER
`RE-START EACH||SHUTDOWN EACH||Ont Somnt AND
`NON-RUNNING
`APPLICATION
`PE STAREADt
`APPLICATION
`PROCESSIN
`APPLICATION.
`
`PROCESS -205A||REVERSE ORDER ATION
`PROCESS FROM
`AS LISTEDIN
`SNe IN
`CONFIGURATION||-opwany ORDER -
`FILE - 2058
`an
`
`
`
`
`
`CHECK AFTER RE-START TO DETERMINE WHETHER EACH
`APPLICATION PROCESSIS RUNNING - 207
`4
`
`CREATE AND STORE RECORDOF RE-START- 209
`UO
`!
`ISSUE EMERGENCYNOTIFICATION IF REPEATED RE-STARTS
`OCCUR - 211
`
`
`
`Google Exhibit 1061
`Google v. VirtaMove
`
`Google Exhibit 1061
`Google v. VirtaMove
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 1 of 2
`
`US6,732,359 B1
`
`OPERATING
`SYSTEM 14
`
`CONFIG. FILE
`22
`
`RE-START
`JOURNAL26
`
`APPLICATION
`MONITOR10
`
`AP. PROC.
`STAT.INFO. 24
`
` COMPUTER 12
`
`AP. PROC. A
`18
`
`AP. PROC. B
`18
`
`AP. PROC. C
`18
`
`AP. PROC. D
`18
`
`APPLICATION 16
`
`WORKSPACE 20
`
`MEMORY13
`
`FIG. 1
`
`
`
`U.S. Patent
`
`May 4, 2004
`
`Sheet 2 of 2
`
`US6,732,359 B1
`
`RUN APPLICATION MONITOR- 201
`
`MONITOR WHETHER EACHAP. PROC. IS RUNNING — COMPARE
`APP. PROC. STATUS INFO. WITH EACH LISTED AP. PROC. - 203
`
`AUTOMATICALLY ATTEMPT TO REMEDY NON-RUNNING
`APPLICATION PROCESSES — PERFORM RE-START-205
`
`205C
` SHUT DOWN EACH
`
`RE-START EACH
`NON-RUNNING
`APPLICATION
`PROCESS- 205A
`
`SHUT DOWN AND
`RE-START
`APPLICATION —
`SHUT DOWN EACH
`APPLICATION
`PROCESS IN
`REVERSE ORDER
`AS LISTED IN
`CONFIGURATION
`FILE - 205B
`
`APPLICATION
`PROCESS IN
`REVERSE ORDER
`UNTIL POINT AND
`RE-START EACH
`APPLICATION
`PROCESS FROM
`POINTIN
`FORWARD ORDER-
`
`CHECK AFTER RE-START TO DETERMINE WHETHER EACH
`APPLICATION PROCESS IS RUNNING- 207
`
`CREATE AND STORE RECORDOF RE-START- 209
`
`ISSUE EMERGENCY NOTIFICATION IF REPEATED RE-STARTS
`OCCUR - 211
`
`FIG. 2
`
`
`
`US 6,732,359 B1
`
`1
`APPLICATION PROCESS MONITOR
`
`FIELD OF THE INVENTION
`
`The present invention relates to a method and apparatus
`for monitoring an application process. In particular,
`the
`present invention relates to monitoring the constituent com-
`ponents of an application and responding to failures in the
`operation thereof.
`BACKGROUND OF THE INVENTION
`
`Typically, a computer system/computer has an operating
`system, and a computer application is instantiated on the
`computer in the form of one or more application processes
`running in a work space managed by the operating system.
`This is especially truc with regards to large and/or complex
`applications, such as an application for managing one or
`more aspects of a factory, for controlling environmental
`conditions in a large building, for controlling power gen-
`eration in a powerfacility, etc.
`Forany of a variety of reasons, an application process can
`fail. For example, an application process can fail if a needed
`resource is not available, if an expected piece of information
`is missing, or if an impermissible operation is performed,
`among other things. While such a failure does not neces-
`sarily cause the entire application to fail immediately, such
`failure of such entire application is likely to be inevitable.
`As should be evident, failure of an entire application can
`be annoying to a system operator to say the least, and can
`cause critical and even fatal damage to say the most. In the
`most benign situation, a computer operator must somehow
`be informed that the application has failed and then must
`re-start the application on the computer. Of course, if the
`operator must be summoned at an inopportune hour, and/or
`if the operator must travel a relatively long distance to an
`appropriate location to commandthe re-start, even the most
`benign situation can become very costly and/or highly
`troublesome. In the most ominoussituation, the failure of
`the application can lead to loss of life, if for example the
`application controls medical equipment in a hospital; loss of
`property, if for example the application controls environ-
`mental equipmentin a sensitive location; and/or other dan-
`gerous situations.
`Accardingly, a need exists for a method and apparatus for
`monitoring the application processes that comprise an appli-
`cation running on an operating system, and for automatically
`attempting to address the failure of an application process
`before such failure causes the failure of the entire applica-
`tion.
`
`SUMMARYOF THE INVENTION
`
`invention, a computer system has a
`In the present
`memory, an operating system, and a computer application
`instantiated in a work space in the memory as managed by
`the operating system. The application includesa plurality of
`application processes running in the work space. An appli-
`cation monitor monitors whether each of the plurality of
`application processes is in fact running, and automatically
`attempts to remedy an occurrence where anyof the plurality
`of application processes is not in fact running.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The foregoing summary, as well as the following detailed
`description of preferred embodiments of the present
`invention, will be better understood when read in conjunc-
`
`10
`
`15
`
`20
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`2
`tion with the appended drawings. For the purpose of illus-
`trating the invention,
`there are shown in the drawings
`embodiments which are presently preferred. As should be
`understood, however,
`the invention is not
`limited to the
`precise arrangements and instrumentalities shown. In the
`drawings:
`FIG. 1 is a block diagram showing an application monitor
`operating in conjunction with a plurality of application
`processes constituting an application on a computer in
`accordance with one embodimentof the present invention;
`and
`
`FIG. 2 is a flow chart depicting steps employed by the
`application monitor of FIG. 1 in accordance with one
`embodimentof the present invention.
`
`DETAILED DESCRIPTION OF PREFERRED
`EMBODIMENTS
`
`Referring now to FIG. 1, an application monitor 10 is
`shown in accordance with one embodiment of the present
`invention. As seen, the application monitor 10 runs on a
`computer system/computer 12 or the like, and therefore may
`be embodied in the form of appropriate computer software.
`Of course, the application monitor 10 mayalso be embodied
`in the form of appropriate hardware or a combination of
`appropriate hardware and software without departing from
`the spirit and scope of the present invention.
`As was discussed above, the computer 12 typically has a
`memory 13 and an operating system 14, and a computer
`application 16 is instantiated on the computer 12 in the form
`of one or more application processes 18 running in a work
`space 20 in the memory 13 as managed by the operating
`system 14 and set aside specifically for the application 16.
`Notably, any appropriate computer 12, operating system 14,
`and application 16 may be employed without departing from
`the spirit and scope of the present invention. For example,
`the computer 12 may be a mainframe computer, a mini-
`computer, a desktop- or laptop-bascd personal computer, or
`the like;
`the operating system may be a LINUX-based
`operating system, a WINDOWS-basedoperating system, a
`UNIX-based operating system, or some other operating
`system; and the application may be a banking system an
`environmental control system, a physical plant control
`system,a factory operation system, a medical facility opera-
`tion system, or another application.
`As shown,
`the operating system 14 may be operating
`separately from the memory 13, or may be operated in the
`memory13. Such memory 13 maybe any type of computer
`memory, such as RAM, ROM, a hard disk drive, a remov-
`able disk drive, a CD-ROM drive, or combinations thereof,
`without departing from the spirit and scope of the present
`invention.
`
`Typically, when an operator commands the operating
`system 14 of a computer 12 to instantiate an application 16,
`such operating system 14 performs a numberof procedures.
`In one of such procedures, the operating system 14 locates
`a configuration file 22 for the application 16 in the memory
`13, and then processes the located configuration file 22. In
`particular, the configuration file includesa list of the appli-
`cation processes 18 that are to be run as part of instantiating
`the application 16. For example, the configurationfile 22 for
`a particular application 16 may include the following com-
`mands:
`
`RUN APPLICATION PROCESS A
`RUN APPLICATION PROCESS B
`
`
`
`US 6,732,359 B1
`
`3
`RUN APPLICATION PROCESS C
`RUN APPLICATION PROCESS D
`
`As should be apparent from FIG. 1, the processing of the
`aforementioned configuration file 22 creates such applica-
`tion processes A-D in the work space 20 set aside for the
`application 16 by the operating system 14 of the computer
`12. Of course, any particular configuration file 22 may be
`employed without departing from the spirit and scope of the
`present invention, and such configuration file 22 may con-
`tain other commands,again without departing from the spirit
`and scope of the present invention.
`Depending on the application 16, the constituent appli-
`cation processes 18 thereof may work independently of each
`other. That is, the operation of each application process 18
`does not affect the operation of any other application process
`18. More likely, though, at least some of the constituent
`application processes 18 of the application 16 are dependent
`on other application processes 18. That is, for at least some
`of the application processes 18, the operation of each such
`application process 18relics at lcast in part on the operation
`of at least one other application process 18. Accordingly,if
`a first application process 18 fails and therefore does not
`perform a particular function, a second application process
`that
`is depending on the first application process 18 to
`perform the particular function will likely in turn fail. Since
`a third application process 18 may be dependent on the
`second application process 18, a fourth application process
`18 may be dependent on the third application process 18,
`etc., such third, fourth, and further application processeswill
`likely eventuallyfail, too, until the underlying application 16
`collapses and grinds to a halt. As may be appreciated, such
`a cascade offailures can occur overa relatively short period
`(a millisecond, for example) or a relatively long period
`(days, for example).
`In one embodiment ofthe present invention, in addition to
`running each application process 18 as specified in the
`configuration file 22 to create such application process 18 in
`the work space 20 of the application 16,
`the operating
`system 14 of the computer 12 also runs the aforementioned
`application monitor 10 to create such application monitor 10
`(step 201, FIG. 2). As should be understood, the application
`monitor 10 is for monitoring the application 16, and in
`particular is for monitoring whether each constituent appli-
`cation process 18 is running (step 203, FIG. 2).
`As shown, the application monitor 10 for the application
`16 may be created by the operating system 14 in the work
`space 20 of the application 16. However, such application
`monitor 10 mayalso be created elsewhere without departing
`from the spirit and scope of the present invention. Further,
`the running of the application monitor 10 may take place in
`the course of processing the configuration file 22, or may
`take place separately. If separately, an application script or
`the like associated with the application 16 may include
`commands such as:
`
`RUN CONFIGURATION FILE
`RUN APPLICATION MONITOR
`
`Such application script thus causes the operating system 14
`to locate and process the configuration file 22 and also to
`locate and run the application monitor 10.
`In one embodiment of the present application, the appli-
`cation monitor 10 periodically checks with the operating
`system 14 to determine whether each application process 18
`is still running. The actual frequency of the checks may of
`course vary without departing from the spirit and scope of
`
`10
`
`15
`
`20
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`4
`the present invention, and may be a function of such factors
`as the degree of reliability of the application 16, the criti-
`cality of the application 16, system resources available, the
`meantime for a failure of an application process 18 to cause
`a failure of the entire application 16, and the like.
`In operation, the application monitor 10 is aware of each
`application proccss 18 listed in the configuration file 22 for
`the application 16, and refers to application process status
`information 24 maintained by the operating system 14 in the
`memory 13 (and perhaps even in the work space 20) to
`ascertain whether each such application process 18 is still
`running. The application monitor 10 may be made aware of
`each application process 18listed in the configurationfile 22
`in anyof several ways without departing from the spirit and
`scope of the present application. For example, the applica-
`tion monitor 10 may be specifically programmed with the
`name of each such application process 18, or may be
`provided with the capability to read the name of each
`application process from the configuration file 22, among
`other things.
`The application process status information 24 maintained
`by the operating system 14 includes the name of each
`application process 18 currently running or the equivalent,
`and perhapsfurther information as to the status of each such
`application process 18 (i.e., ‘running’, ‘standby’, etc.). Such
`information 24 is likely organized in a table and stored by
`the operating system 14 in an appropriate location such as
`the memory 13, as shown. If an application process 18 has
`failed, it may be listed in the information 24 as such, or as
`some variation thereof (‘failed’,
`‘not responding’, e.g.).
`Alternatively, such a failed application process 18 may not
`be listed in the information 24 at all. Thus,
`to ascertain
`whether each application process 18 of the application 16 is
`still running, the application monitor 10 in essence checks
`that each application process 18as listed in the configuration
`file 22 for the application 16 is also listed in the application
`process status information 24 as running or the equivalent
`(ie.,
`‘running’,
`‘standby’, etc., and not
`‘failed’,
`‘not
`responding’, etc.) (step 203, FIG. 2).
`If each such application process 18 of the application 16
`is in fact still running or the equivalent, the application
`monitor 10 need take no action except to remind itself to
`perform another check after the specified period has passed.
`However, if one or more of the application processes 18 of
`the application 16 have stopped, either due to failure or
`otherwise, the application monitor 10 attempts to address
`and remedy the situation, as will be explained in moredetail
`as follows (step 205, FIG. 2).
`In one embodiment of the present invention, addressing
`and remedyingthe situation involves the application monitor
`10 executing a command in cooperation with the operating
`system 14to re-start each failed application process 18 (step
`205A, FIG. 2). Notably, though, application processes 18
`often must be started in a particular sequence, such as that
`specified in the configuration file 22, owing to their depen-
`dent nature. Accordingly, re-starting a particular application
`process 18 out of sequence may not be successful, and in fact
`could cause other application processesto fail. Accordingly,
`such re-starting of a particular application process 18 is
`preferably immediately followed by the application monitor
`10 re-checking with the operating system 14 to determine
`whether each application process 18 is still running (step
`207, FIG. 2).
`In one embodiment of the present invention, if the afore-
`mentioned re-start of particular application processes 18 is
`unsuccessful, or as an alternative thereto, addressing and
`remedying the situation involves the application monitor 10
`
`
`
`US 6,732,359 B1
`
`10
`
`15
`
`20
`
`6
`5
`whether each application process 18 is still running. If in fact
`causiog the application 16 to shut down by causing each
`the partial re-start was unsuccessful, a controlled shut-down
`application process 18 thereof to shut down, and then
`and re-start should be performed (step 207, FIG. 2).
`causing the application to re-start in the normal manner,1.e.,
`In one embodimentof the present invention, a record of
`according to a commandto the operating system 14 of the
`each re-start/shut-down,
`including all appropriate
`computer 12 to again instantiate the application 16 (step
`information, is created and stored in a re-start/shut-down
`205B,FIG. 2). Accordingly, such operating system 14 would
`journal 26 located in the memory 13 of the computer 12 or
`then perform normalstart-up proceduresfor the application,
`elsewhere (step 209, FIG. 2). Thus, an operator and/or
`including locating and processing the configuration file 22
`programmer may review the journal 26 to diagnose the
`for the application 16, and if necessary or desirable again
`cause of any repeated application shut-downs.If a repeated
`running the application monitor 10.
`shut-downs occur, orif re-starts are repeatedly unsuccessful,
`Such shut-down may be as simple as immediately killing
`the application monitor 10 may cause an emergency notifi-
`all of the application processes 18 of the application 16 in no
`cation or the like to be issued to appropriate personnel by
`particular order or sequence and without any attempt to save
`way of an electronic mail message, an electronic telephone
`any data. However, such a ‘kill’ shut-down may be quite
`message, a telephone call
`to a beeper number, a radio
`radical and needlessly harsh in most circumstances. In one
`message, a warning buzzer,etc. (step 211, FIG. 2).
`embodiment of the present
`invention,
`the shut-down is
`The programming necessary to effectuate the present
`controlled as much as possible and is done in an orderly
`invention, such as the programming run bythe application
`manner in an attempt to save as much data as possible.
`monitor 10, the operating system 14, and the application 16
`Accordingly, such a ‘controlled’ shut-downis in a manner
`and application processes 18 thereof, is knownoris readily
`similar to if nol identical with a normal shut-down of the
`apparent to the relevant public. Accordingly, further details
`as to the specifics of such programming are not believed to
`application 16, excepting of course the fact that one or more
`be necessary herein.
`constituent application processes 18 are already de facto
`As should now be understood, in the present invention, a
`shut down. Such controlled shut-down may be directed by
`method and apparatus are provided to monitor the applica-
`the application 16 itself or by the application monitor 10 if
`tion processes 18 that comprise an application 16 running on
`the application 16 is unable or willing to shut itself down.
`an operating system 14 of a computer 12, and for automati-
`Accordingly, in such a situation, the application monitor 10
`cally attempting to address the failure of an application
`includes appropriate controlled shut-downprocedures and is
`process 18 before such failure causes the failure of the entire
`capable of executing such procedures in cooperation with
`application 16. Changes could be made to the embodiments
`the operating system 14.
`described above without departing from the broad inventive
`Such shut-down procedures may comprise shutting down
`concepts thereof. It is understood, therefore, that this inven-
`each application process in the reverse order/sequence as
`listed in the configuration file 22 (i.e., Application Process
`tion is not limited to the particular embodiments disclosed,
`D, Application Process C, Application Process B, etc.). In
`but it is intended to cover modifications within the spirit and
`
`suchasituation, it is preferable that the application monitor scope of the present invention as defined by the appended
`35
`claims.
`10 not be run in the course of processing the configuration
`Whatis claimed is:
`file 22. Otherwise, the application monitor 10 could shut
`itself down prematurely. Once the application 16 is fully
`shut down, the application monitor 10, which shouldstill be
`running, then can execute an appropriate start-up command
`in cooperation with the operating system 14. The application
`monitor 10 may then shut itself down in anticipation of
`being re-started by the operating system 14 in the course of
`re-starting the application 16, or may leave itself running.
`In one embodiment of the present invention, if the afore-
`mentioned re-start of particular application processes 18 is
`unsuccessful, or as an alternative thereto, addressing and
`remedying the situation involves the application monitor 10
`executing a command in cooperation with the operating
`system 14 to partially shut down the application 16 to the
`point of the failed application process 18, and then
`re-starting from such point (step 205C, FIG. 2). That is,
`remembering that the application processes 18 were started
`in a particular order/sequence as specified in the configura-
`tion file 22 (i.e., Application Process A, Application Process
`B, Application Process C, etc.), such application processes
`18 are shut downin the reverse order/sequence (i-e., Appli-
`cation Process D, Application Process C, Application Pro-
`cessB, etc.) until the point whereall of the failed application
`processes 18 would have been shut down. Thereafter, the
`application monitor 10 causes the application 16 to re-start
`from that point accordingto the particular order/sequence as
`specified in the configuration file 22.
`Owing to the fact that such a ‘partial’ shut-down and
`re-start may not be successful for any of a variety of reasons,
`such partial re-start of the application 16 is preferably
`immediately followed by the application monitor 10
`re-checking with the operating system 14 to determine
`
`1. A computer system having a memory, an operating
`system, a computer application instantiated in a work space
`in the memory as managed by the operating system, the
`application including a plurality of application processes
`running in the work space, and an application monitor
`monitoring whether each of the plurality of application
`processesis in fact running and automatically attempting to
`remedy an occurrence where any of the plurality of appli-
`cation processes is not in fact running.
`2. ‘he computer system of claim 1 wherein the applica-
`tion monitor is created by the operating system in the work
`space of the application.
`3. The computer system of claim 1 wherein the operating
`system instantiates the application by processing a configu-
`ration file which includes a scquential list of the plurality of
`application processes to be run, and wherein the application
`monitor is run separately from the processing of the con-
`figuration file.
`4. The computer system of claim 1 wherein the applica-
`tion monitor periodically checks with the operating system
`to determine whether each of the plurality of application
`processes is in fact running.
`5. The computer system of claim 1 wherein if the appli-
`cation monitor finds that any of the plurality of application
`processes is not in fact running, such application monitor
`re-start each non-running application process.
`6. The computer system of claim 5 wherein there-start is
`followed by the application monitor checking to determine
`whether each application process is in fact running.
`7. The computer system of claim 5 wherein the applica-
`tion monitor creates and stores a record of the re-start.
`
`30
`
`40
`
`45
`
`55
`
`60
`
`65
`
`
`
`US 6,732,359 B1
`
`7
`8. The computer system of claim 5 wherein the applica-
`tion monitor issues an emergencynotification if repeated
`re-starts occur.
`
`9. The computer system of claim 8 wherein the applica-
`tion monitor issues the emergency notification by way of a
`memberof a group consisting of an electronic mail message,
`an clectronic telephone message,a telephonecall to a beeper
`number, a radio message, and a warning buzzer.
`10. The computer system of claim 1 wherein if the
`application monitor finds that any of the plurality of appli-
`cation processes is not in fact running, such application
`monitor shuts down and re-starts the application.
`11. The computer system of claim 10 wherein the re-start
`is followed by the application monitor checking to deter-
`mine whether each application processis in fact running.
`12. The computer system of claim 10 wherein the oper-
`ating system instantiates the application by processing a
`configuration file which includes an ordered list of the
`plurality of application processes to be run, and wherein the
`shut down comprises shutting down each of the plurality of
`application processes in a reverse order as listed in the
`configurationfile.
`13. The computer system of claim 10 wherein the appli-
`cation monitor creates and stores a record of the re-start.
`
`14. The computer system of claim 10 wherein the appli-
`cation monitor issues an emergency notification if repeated
`re-starts occur.
`
`15. The computer system of claim 14 wherein the appli-
`cation monitor issucs the emergency notification by way of
`a member of a group consisting of an electronic mail
`message, an electronic telephone message, a telephone call
`to a beeper number, a radio message, and a warning buzzer.
`16. The computer system of claim 1 wherein the operating
`system instantiates the application by processing a configu-
`ration file which includes an orderedlist of the plurality of
`application processes to be run, and wherein if the applica-
`tion monitor finds that any of the plurality of application
`processes is not in fact running, such application monitor
`shuts down each of the plurality of application processes in
`a reverse orderas listed in the configurationfile until a point
`where all of the non-running application processes would
`have been shut down, and then re-starts each of the plurality
`ot application processes from the point in a forward order as
`listed in the configuration file.
`17. The computer system of claim 16 whereinthe re-start
`is followed by the application monitor checking to deter-
`mine whether each application process is in fact running.
`18. The computer system of claim 16 wherein the appli-
`cation monitor creates and stores a record of the re-start.
`
`19. The computer system of claim 16 wherein the appli-
`cation monitor issucs an cmergency notification if repeated
`re-starts occur.
`
`20. The computer system of claim 19 wherein the appli-
`cation monitor issues the emergency notification by way of
`a member of a group consisting of an electronic mail
`message, an electronic telephone message, a telephonecall
`to a beeper number, a radio message, and a warning buzzer.
`21. An application monitor employed in connection with
`a computer system having a memory, an operating system,
`and a computer application instantiated in a work space in
`the memory as managed by the operating system,
`the
`application including a plurality of application processes
`running in the work space, the application monitor moni-
`toring whether each of the plurality of application processes
`is in fact running and automatically attempting to remedy an
`occurrence where any of the plurality of application pro-
`cesses is not in fact running.
`
`10
`
`15
`
`20
`
`30
`
`35
`
`40
`
`45
`
`55
`
`60
`
`65
`
`8
`22. The application monitor of claim 21 wherein the
`application monitor is created by the operating system in the
`work space of the application.
`23. The application monitor of claim 21 wherein the
`operating system instantiates the application by processing a
`configuration file which includes a sequential
`list of the
`plurality of application processes to be run, and wherein the
`application monitor is run separately from the processing of
`the configuration file.
`24. The application monitor of claim 21 wherein the
`application monitor periodically checks with the operating
`system to determine whether each of the plurality of appli-
`cation processes is in fact running.
`25. The application monitor of claim 21 wherein if the
`application monitor finds that any of the plurality of appli-
`cation processes is not in fact running, such application
`monitor re-starts each non-running application process.
`26. The application monitor of claim 25 wherein the
`re-start is followed by the application monitor checking to
`determine whether each application process is in fact run-
`ning.
`27. The application monitor of claim 25 wherein the
`application monitor creates and stores a record of the
`re-start.
`
`28. The application monitor of claim 25 wherein the
`application monitor issues an emergency notification if
`repeated re-starts occur.
`29. The application monitor of claim 28 wherein the
`application monitor issucs the emergency notification by
`way of a memberof a group consisting of an electronic mail
`message, an electronic telephone message, a telephonecall
`to a beeper number, a radio message, and a warning buzzer.
`30. The application monitor of claim 21 wherein if the
`application monitor finds that any of the plurality of appli-
`cation processes is not in fact running, such application
`monitor shuts down andre-starts the application.
`31. The application monitor of claim 30 wherein the
`re-start is followed by the application monitor checking to
`determine whether each application process is in fact run-
`ning.
`32. The application monitor of claim 30 wherein the
`operating systeminstantiates the application by processing a
`configuration file which includes an ordered list of the
`plurality of application processes to be run, and wherein the
`shut down comprises shutting downeachof the plurality of
`application processes in a reverse order as listed in the
`configurationfile.
`33. The application monitor of claim 30 wherein the
`application monitor creates and stores a record of the
`re-start.
`
`34. The application monitor of claim 30 wherein the
`application monitor issues an emergency notification if
`repeated re-starts occur.
`35. The application monitor of claim 34 wherein the
`application monitor issues the emergency notification by
`way of a memberof a group consisting of an electronic mail
`message, an electronic telephone message, a telephonecall
`to a beeper number, a radio message, and a warning buzzer.
`36. The application monitor of claim 21 wherein the
`operating system instantiates the application by processing a
`configuration file which includes an ordered list of the
`plurality of application processes to be run, and wherein if
`the application monitor finds that any of the plurality of
`application processesis not in fact running, such application
`monitor shuts down each of the plurality of application
`processesin a reverse order aslisted in the configuration file
`until a point where all of the non-running application
`
`
`
`US 6,732,359 B1
`
`
`
`9
`processes would have been shut down, and then re-starts
`each of the plurality of application processes from the point
`in a forward orderas listed in the configurationfile.
`37. The application monitor of claim 36 wherein the
`re-start is followed bythe application monitor checking to
`determine whether each application process is in fact run-
`ning.
`38. The application monitor of claim 36 wherein the
`application monitor creates and stores a record of the
`re-start.
`
`39. Th