System and method for collecting statistics related to software usage
AssigneeBMC Software, Inc.
InventorsRahul C. Ravulur, David R. Wegman, Gregory Gerard
Life of this patent
Estimating the term…
Abstract
A system and method identifies the times that certain applications are started and stopped on a computer system and such information about several computer systems is collected using a central computer system to allow decisions regarding software may be made based on usage of those certain applications.
Claims26
A method of providing information about software usage, comprising:
- on each of a plurality of first computer systems:
- automatically identifying, for each of a plurality of computer software applications, at least one first time at which an operation of said computer software application was detected to have been started;
- automatically identifying, for each of the plurality of computer software applications at least one second time at which the operation of said computer software application was detected to have been stopped, wherein the act of identifying, for each of a plurality of computer software applications, at least one second time comprises:
- making a first request to and receiving from an operating system, a first set of identifiers of a plurality of programs running at approximately the time of said first request;
- making a second request to and receiving from the operating system, at a time later than a time of the first request, a second set of identifiers of a plurality of programs running at approximately the time of said second request;
- and
- for a given one of the plurality of computer software applications:
- locating an identifier of the given one of the plurality of computer software applications in the first set of identifiers;
- and
- not locating the identifier of the given one of the plurality of computer software applications in the second set of identifiers;
- and
- storing said first and second times in at least one record associated with an identifier of said computer software application;
- and
- on a second computer system, receiving a query regarding the at least one record and providing at least one result to the query responsive to a plurality of the at least one records from at least two of the plurality of first computer systems.
A computer network system for providing information about software usage, comprising:
- on each of a plurality of first computer systems, wherein each of the first computer systems is communicatively coupled to a computer network;
- each of the first computer systems comprises a computer readable program code device and a programmable processing unit configured to execute:
- a status manager having an input for receiving information about each of a plurality of software applications, the status manager automatically identifying for each of the plurality of computer software applications, at least one first time at which an operation of said computer software application was detected to have been started, the status manager additionally automatically identifying for each of the plurality of computer software applications at least one second time at which the operation of said computer software application was detected to have been stopped, the status manager additionally providing at an output at least one record comprising said first and second times associated with an identifier of said computer software application, wherein the status manager comprises:
- a status request manager for:
- making a first request to and receiving, from an operating system, a first set of identifiers of a plurality of programs running at approximately the time of said first request;
- making a second request to and receiving, from the operating system, at a time later than a time of the first request, a second set of identifiers of a plurality of programs running at approximately the time of said second request;
- and
- providing the first and second set of identifiers at an output;
- and
- a status change identifier having an input coupled to the status manager output for receiving the information about each of a plurality of software applications, the status change identifier for, for a given one of the plurality of computer software applications, providing at an output coupled to the status manager input the at least one second time responsive to:
- the status change identifier locating an identifier of the given one of the plurality of computer software applications in the first set of identifiers;
- and
- the status change identifier not locating an identifier of the given one of the plurality of computer software applications in the second set of identifiers;
- and
- a query manager on a second computer system communicatively coupled to the computer network, the query manager having a record input coupled to the status manager output of at least two of the plurality of first computer systems for receiving at least a portion of at least some of the records provided by said status managers, the query manager additionally having a query input for receiving a query regarding the at least one record, the query manager for providing at an output at least one result to the query responsive to the query and the at least one portion of at least some of the records.
A computer program product having computer readable program code embodied therein to configure a processor to provide information about software usage, the computer program product comprising computer readable program code to:
- cause each of a plurality of first computer systems to:
- automatically identify, for each of a plurality of computer software applications, at least one first time at which an operation of said computer software application was detected to have been started;
- automatically identify, for each of the plurality of computer software applications at least one second time at which the operation of said computer software application was detected to have been stopped, wherein the act of identifying said computer software application stopped comprises:
- making a first request to and receiving from an operating system, a first set of identifiers of a plurality of programs running at approximately the time of said first request;
- making a second request to and receiving from the operating system, at a time later than a time of the first request, a second set of identifiers of a plurality of programs running at approximately the time of said second request;
- and
- for a given one of the plurality of computer software applications:
- locating an identifier of the given one of the plurality of computer software applications in the first set of identifiers;
- and
- not locating the identifier of the given one of the plurality of computer software applications in the second set of identifiers;
- and
- store said first and second times in at least one record associated with an identifier of said computer software application;
- and
- cause a second computer system to receive a query regarding the at least one record and provide at least one result to the query responsive to a plurality of the at least one records from at least two of the plurality of first computer systems.
A computer network system providing information about software usage, comprising:
- on each of a plurality of first computer systems, wherein each of the first computer systems comprises a programmable processing unit and a computer readable program code device and is communicatively coupled to a computer network, the programmable processing unit configured to perform the acts of:
- make a first request to an operating system and receiving, from the operating system, a first set of identifiers of a plurality of programs running at approximately the time of said first request;
- and
- make a second request to the operating system and receiving, from the operating system, at a time later than time of the first request, a second set of identifiers of a plurality of programs running at approximately the time of said second request;
- determine for a given one of the plurality of computer software applications if the given computer software application has started executing or stopped executing between time of the first request and time of the second request;
- store an indication of one or more computer software applications determined to start executing or stop executing in at least one record;
- and
- on a second computer system, receive a query regarding the at least one record and providing at least one result to the query responsive to a plurality of the at least one records from at least two of the plurality of first computer systems.
A computer program product having computer readable program code embodied therein for configuring a processor to provide information about software usage, the computer program product comprising executable instructions to:
- configure a first processor on each of a plurality of first computer systems to:
- make a first request to an operating system and receiving, from the operating system, a first set of identifiers of a plurality of programs running at approximately the time of said first request;
- and
- make a second request to the operating system and receiving, from the operating system, at a time later than time of the first request, a second set of identifiers of a plurality of programs running at approximately the time of said second request;
- determine for a given one of the plurality of computer software applications if the given computer software application has started executing or stopped executing between time of the first request and time of the second request;
- store an indication of one or more computer software applications determined to start executing or stop executing in at least one record;
- and
- configure a second processor on a second computer system to receive a query regarding the at least one record and providing at least one result to the query responsive to a plurality of the at least one records from at least two of the plurality of first computer systems.
Dependencies are inferred from the claim text.