Identifying interpreted programs through class loading sequences
First Claim
Patent Images
1. A computer-implemented method, comprising:
- associating, to meter usage of a predefined plurality of interpreted programs on a data processing system, each one of the predefined plurality of interpreted programs with an indication of at least one reference sequence of interpreter actions that identify the interpreted program, where each interpreted program is executed under control of an interpreter within a separate runtime environment and the reference sequence of interpreter actions comprises a reference sequence of at least one interpreter class load operation and at least one of a file read operation, a port opening operation, and a socket use operation;
monitoring, from within each runtime environment, an executed sequence of interpreter actions performed by the interpreter within that runtime environment, where the monitored executed sequence of interpreter actions comprises at least one executed interpreter class load operation and at least one of an executed file read operation, an executed port opening operation, and an executed socket use operation;
comparing a portion of the monitored executed sequence of interpreter actions performed by each interpreter with a plurality of reference sequences of interpreter actions associated with the predefined plurality of interpreted programs; and
detecting the usage of each of the predefined plurality of interpreted programs in response to a matching of the monitored executed sequence of interpreter actions with one of the associated at least one reference sequence of interpreter actions.
3 Assignments
0 Petitions
Accused Products
Abstract
A solution is proposed for metering the usage of Java programs. For this purpose, each Java program to be metered is associated with a fingerprint defined by a reference sequence of classes that must be loaded for its execution. The sequence of classes that are actually loaded by the Java Virtual Machine (JVM) is monitored, for example, by means of a wrapper for a class loader of the JVM. The sequence of loaded classes is then used to identify the Java program in execution (which fingerprint matches this sequence of loaded classes).
21 Citations
20 Claims
-
1. A computer-implemented method, comprising:
-
associating, to meter usage of a predefined plurality of interpreted programs on a data processing system, each one of the predefined plurality of interpreted programs with an indication of at least one reference sequence of interpreter actions that identify the interpreted program, where each interpreted program is executed under control of an interpreter within a separate runtime environment and the reference sequence of interpreter actions comprises a reference sequence of at least one interpreter class load operation and at least one of a file read operation, a port opening operation, and a socket use operation; monitoring, from within each runtime environment, an executed sequence of interpreter actions performed by the interpreter within that runtime environment, where the monitored executed sequence of interpreter actions comprises at least one executed interpreter class load operation and at least one of an executed file read operation, an executed port opening operation, and an executed socket use operation; comparing a portion of the monitored executed sequence of interpreter actions performed by each interpreter with a plurality of reference sequences of interpreter actions associated with the predefined plurality of interpreted programs; and detecting the usage of each of the predefined plurality of interpreted programs in response to a matching of the monitored executed sequence of interpreter actions with one of the associated at least one reference sequence of interpreter actions. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A system, comprising:
-
a processor; a data bus coupled to the processor; and a computer-usable storage medium embodying computer program code, the computer-usable storage medium being coupled to the data bus, the computer program code comprising instructions executable by the processor and configured for; associating, to meter usage of a predefined plurality of interpreted programs, each one of the predefined plurality of interpreted programs with an indication of at least one reference sequence of interpreter actions that identify the interpreted program, where each interpreted program is executed under control of an interpreter within a separate runtime environment and the reference sequence of interpreter actions comprises a reference sequence of at least one interpreter class load operation and at least one of a file read operation, a port opening operation, and a socket use operation; monitoring, from within each runtime environment, an executed sequence of interpreter actions performed by the interpreter within that runtime environment, where the monitored executed sequence of interpreter actions comprises at least one executed interpreter class load operation and at least one of an executed file read operation, an executed port opening operation, and an executed socket use operation; comparing a portion of the monitored executed sequence of interpreter actions performed by each interpreter with a plurality of reference sequences of interpreter actions associated with the predefined plurality of interpreted programs; and detecting the usage of each of the predefined plurality of interpreted programs in response to a matching of the monitored executed sequence of interpreter actions with one of the associated at least one reference sequence of interpreter actions. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. A computer-usable storage memory embodying computer program code, the computer program code comprising computer executable instructions configured for:
-
associating, to meter usage of a predefined plurality of interpreted programs, each one of the predefined plurality of interpreted programs with an indication of at least one reference sequence of interpreter actions that identify the interpreted program, where each interpreted program is executed under control of an interpreter within a separate runtime environment and the reference sequence of interpreter actions comprises a reference sequence of at least one interpreter class load operation and at least one of a file read operation, a port opening operation, and a socket use operation; monitoring, from within each runtime environment, an executed sequence of interpreter actions performed by the interpreter within that runtime environment, where the monitored executed sequence of interpreter actions comprises at least one executed interpreter class load operation and at least one of an executed file read operation, an executed port opening operation, and an executed socket use operation; comparing a portion of the monitored executed sequence of interpreter actions performed by each interpreter with a plurality of reference sequences of interpreter actions associated with the predefined plurality of interpreted programs; and detecting the usage of each of the predefined plurality of interpreted programs in response to a matching of the monitored executed sequence of interpreter actions with one of the associated at least one reference sequence of interpreter actions. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification