Method and system for profiling file access by an executing virtual application
First Claim
Patent Images
1. A computer-implemented method comprising:
- receiving, by a runtime engine, an execute command from a management process, the execute command instructing the runtime engine to execute an application, the management process operating independently of the runtime engine;
executing the application inside the runtime engine in response to the execute command, the application being implemented by an application file comprising a plurality of data blocks, the application executing on an operating system configured to generate a thread identifier for each thread executing on the operating system;
determining, by the runtime engine, a pseudo thread identifier as a function of a first time value indicating when a thread was created and an associated thread identifier generated by the operating system for the thread when the thread was created;
sending, by the runtime engine, a thread start message comprising the pseudo thread identifier to the management process, the thread start message comprising the first time value indicating when the thread was created;
detecting, by the runtime engine, a plurality of read operations performed by the executing application on the plurality of data blocks;
sending, by the runtime engine, a plurality of read messages to the management process, each read message being sent after the runtime engine has detected at least one of the plurality of read operations;
storing, by the management process, information included in the plurality of read messages in a transcript file, the transcript file including an access order for the plurality of data blocks; and
determining, by a computing device, an order in which to download the plurality of data blocks to a client computing device based at least in part on the access order stored in the transcript file.
3 Assignments
0 Petitions
Accused Products
Abstract
A method and system for profiling execution of an application implemented by an application file comprising a plurality of data blocks. The application is executed in response to an execute command from a management process. Read messages are sent to the management process each time the application reads one or more of the plurality of data blocks of the application file. The management process records information about the read operations in one or more transcripts which may be used to create a streaming model for the application allowing the application to be downloaded using a conventional download protocol without using a specialized streaming protocol.
-
Citations
38 Claims
-
1. A computer-implemented method comprising:
-
receiving, by a runtime engine, an execute command from a management process, the execute command instructing the runtime engine to execute an application, the management process operating independently of the runtime engine; executing the application inside the runtime engine in response to the execute command, the application being implemented by an application file comprising a plurality of data blocks, the application executing on an operating system configured to generate a thread identifier for each thread executing on the operating system; determining, by the runtime engine, a pseudo thread identifier as a function of a first time value indicating when a thread was created and an associated thread identifier generated by the operating system for the thread when the thread was created; sending, by the runtime engine, a thread start message comprising the pseudo thread identifier to the management process, the thread start message comprising the first time value indicating when the thread was created; detecting, by the runtime engine, a plurality of read operations performed by the executing application on the plurality of data blocks; sending, by the runtime engine, a plurality of read messages to the management process, each read message being sent after the runtime engine has detected at least one of the plurality of read operations; storing, by the management process, information included in the plurality of read messages in a transcript file, the transcript file including an access order for the plurality of data blocks; and determining, by a computing device, an order in which to download the plurality of data blocks to a client computing device based at least in part on the access order stored in the transcript file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer-implemented method comprising:
-
sending, by a management process, an execute command to a runtime engine to execute an application, the application being implemented by an application file comprising a plurality of data blocks; receiving, by the management process, a thread start message from the runtime engine after the runtime engine begins executing the application on an operating system configured to generate a thread identifier for each thread executing on the operating system, the thread start message comprising a pseudo thread identifier that uniquely identifies a thread, the thread start message comprising a first time value indicating when the thread was created, the pseudo thread identifier having been determined as a function of the first time value and an associated thread identifier generated by the operating system for the thread when the thread was created; recording, by the management process, the pseudo thread identifier in a transcript; receiving, by the management process, a plurality of access request messages from the runtime engine, at least one of the plurality of access request messages comprising the pseudo thread identifier, information in the plurality of access request messages identifying ones of the plurality of data blocks to which the executing application requested access, each of the plurality of access request messages having been received after the executing application requested access to a selected one or more of the plurality of data blocks, and indicating the executing application has requested access to the selected one or more data blocks; recording, by the management process, that the executing application requested access to the ones of the plurality of data blocks in the transcript, the transcript identifying an access order in which the ones of the plurality of data blocks were accessed by the executing application; and determining, by a build server, an order in which to download the plurality of data blocks to a client computing device based at least in part on the access order stored in the transcript. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33)
-
-
34. A computer-implemented method comprising:
-
receiving, by a runtime engine, an execute command from a management process, the execute command instructing the runtime engine to execute an application, the management process operating independently of the runtime engine; executing the application inside the runtime engine in response to the execute command, the application being implemented by an application file comprising a plurality of data blocks; detecting, by the runtime engine, a plurality of read operations performed by the executing application on the plurality of data blocks, detecting the plurality of read operations comprising receiving a thread discriminate value from a thread when the thread performs a read operation on the application file, the thread having been created by a module, the module being associated with a module identifier, execution of the thread having been initiated at an offset location within the module, the thread discriminate value including the module identifier and an offset value identifying the offset location in the module; sending, by the runtime engine, a plurality of read messages to the management process, each read message being sent after the runtime engine has detected at least one of the plurality of read operations, at least one of the plurality of read messages comprising the thread discriminate value; storing, by the management process, information included in the plurality of read messages in a transcript file, the transcript file including an access order for the plurality of data blocks; and determining, by a computing device, an order in which to download the plurality of data blocks to a client computing device based at least in part on the access order stored in the transcript file. - View Dependent Claims (35, 36)
-
-
37. A computer-implemented method comprising:
-
receiving, by a runtime engine, an execute command from a management process, the execute command instructing the runtime engine to execute an application, the management process operating independently of the runtime engine; executing the application inside the runtime engine in response to the execute command, the application being implemented by an application file comprising a plurality of data blocks, the application executing on an operating system configured to generate a process identifier for each process executing on the operating system; determining, by the runtime engine, a pseudo process identifier as a function of a time value indicating when the application began executing and a process identifier generated by the operating system for the application when the application began executing; sending, by the runtime engine, a process start message comprising the pseudo process identifier and the time value; detecting, by the runtime engine, a plurality of read operations performed by the executing application on the plurality of data blocks; sending, by the runtime engine, a plurality of read messages to the management process, each read message being sent after the runtime engine has detected at least one of the plurality of read operations; storing, by the management process, information included in the plurality of read messages in a transcript file, the transcript file including an access order for the plurality of data blocks; and determining, by a computing device, an order in which to download the plurality of data blocks to a client computing device based at least in part on the access order stored in the transcript file. - View Dependent Claims (38)
-
Specification