System and method for collecting statistics related to software usage
First Claim
Patent Images
1. 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.
9 Assignments
0 Petitions
Accused Products
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.
76 Citations
26 Claims
-
1. 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. 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. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16)
-
-
17. 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. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24)
-
-
25. 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.
-
-
26. 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.
-
Specification