Method and system for building and distributing application profiles via the internet
First Claim
1. A computer-implemented method performed by a server computing device coupled to a network connected to a plurality of client computing devices, the method comprising:
- receiving an application file and an instruction from a first client computing device of the plurality of client computing devices over the network, the instruction instructing the server computing device to instruct a directing process executing on each one of the plurality of client computing devices that downloads the application file from the server computing device to record one or more transcripts profiling usage of the application file;
receiving a request from a directing process executing on a second client computing device of the plurality of client computing devices to download the application file to the second client computing device over the network, the directing process being configured to profile usage of the application file when the application file is executed on the second client computing device and to upload one or more transcripts to the server computing device, the one or more transcripts having been created by the directing process when the directing process profiled usage of the application file on the second client computing device, each of the one or more transcripts storing at least one order in which portions of the application file were accessed when the application file was executed on the second client computing device;
in response to the request, downloading the application file to the second client computing device over the network and instructing the directing process to profile usage of the application file on the second client computing device;
receiving one or more transcripts uploaded to the server computing device by the directing process executing on the second client computing device over the network;
creating a streaming model based on the at least one order stored in each of the one or more transcripts;
storing the streaming model in a data structure; and
dividing the application file into a plurality of files each smaller than the application file based on the streaming model stored in the data structure, the plurality of files comprising one or more initial execution files and one or more other files, the one or more initial execution files to be downloaded before the one or more other files, and the one or more other files to be downloaded after the one or more initial execution files have been downloaded.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for collecting transcripts each storing an order in which portions of an application file were accessed by the file when the file was executed on one of a plurality of computing devices. The method includes receiving requests to download the file from directing processes each executing on a different one of the computing devices, and in response to those requests, downloading the file to the computing devices and instructing the directing processes to profile usage of the file. Then, transcripts created by the directing processes are received therefrom. A streaming model may be created based on the transcripts received. The file may be divided into a plurality of smaller files based on the streaming model. The streaming model may be used to download the file by downloading at least a portion of the smaller files using a conventional download protocol without using a specialized streaming protocol.
171 Citations
30 Claims
-
1. A computer-implemented method performed by a server computing device coupled to a network connected to a plurality of client computing devices, the method comprising:
-
receiving an application file and an instruction from a first client computing device of the plurality of client computing devices over the network, the instruction instructing the server computing device to instruct a directing process executing on each one of the plurality of client computing devices that downloads the application file from the server computing device to record one or more transcripts profiling usage of the application file; receiving a request from a directing process executing on a second client computing device of the plurality of client computing devices to download the application file to the second client computing device over the network, the directing process being configured to profile usage of the application file when the application file is executed on the second client computing device and to upload one or more transcripts to the server computing device, the one or more transcripts having been created by the directing process when the directing process profiled usage of the application file on the second client computing device, each of the one or more transcripts storing at least one order in which portions of the application file were accessed when the application file was executed on the second client computing device; in response to the request, downloading the application file to the second client computing device over the network and instructing the directing process to profile usage of the application file on the second client computing device; receiving one or more transcripts uploaded to the server computing device by the directing process executing on the second client computing device over the network; creating a streaming model based on the at least one order stored in each of the one or more transcripts; storing the streaming model in a data structure; and dividing the application file into a plurality of files each smaller than the application file based on the streaming model stored in the data structure, the plurality of files comprising one or more initial execution files and one or more other files, the one or more initial execution files to be downloaded before the one or more other files, and the one or more other files to be downloaded after the one or more initial execution files have been downloaded. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer-implemented method comprising:
-
receiving requests from a plurality of directing processes each executing on a different client computing device to download an application file; in response to the requests, downloading the application file to the different client computing devices and instructing each of the plurality of directing processes to profile usage of the application file on the client computing device executing the directing process; receiving one or more transcripts from each of the plurality of directing processes, each of the transcripts received having been created by one of the plurality of directing processes when the directing process profiled usage of the application file on the client computing device executing the directing process and each of the transcripts storing an order in which portions of the application file were accessed when the application file was executed; combining the transcripts received into a combined transcript storing at least one combined order in which portions of the application file were accessed when the application file was executed; creating a streaming model based on the at least one combined order; storing the streaming model in a data structure; and dividing the application file into a plurality of files each smaller than the application file based on the streaming model stored in the data structure, the plurality of files comprising one or more initial execution files and one or more other files, the one or more initial execution files to be downloaded before the one or more other files, and the one or more other files to be downloaded after the one or more initial execution files have been downloaded. - View Dependent Claims (15, 16, 17, 18, 19)
-
-
20. A computer-implemented method comprising:
-
sending a request to one or more server computing devices to download and execute an application file that when executed implements an application, the application file comprising a plurality of data blocks; downloading the application file and receiving therewith an instruction to create a transcript file each time the application file is executed, the transcript file storing at least one order in which portions of the application file were accessed by the application file when the application file was executed; executing the application file, the application file being executed by a runtime engine; each time the executing application requests access to one of the plurality of data blocks, receiving an access request message from the runtime engine indicating the application has requested access to the one of the plurality of data blocks; recording that the application requested access to the one of the plurality of data blocks in a transcript file to thereby create a transcript file as the application file is executed; and when execution of the application file has terminated, uploading the transcript file to the one or more server computing devices, the one or more server computing devices (a) creating a streaming model based on the at least one order stored in the transcript file, (b) storing the streaming model in a data structure, and (c) dividing the application file into a plurality of files each smaller than the application file based on the streaming model stored in the data structure, the plurality of files comprising one or more initial execution files and one or more other files, the one or more initial execution files to be downloaded before the one or more other files, and the one or more other files to be downloaded after the one or more initial execution files have been downloaded. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27)
-
-
28. A computer-implemented method performed by a plurality of server computing devices connected together by at least one network, the method comprising:
-
creating a plurality of streaming models each associated with a different one of a plurality of application files, each streaming model being created based on at least one order stored in each of one or more transcripts created during the execution of the associated one of the plurality of application files; storing each of the plurality of streaming models in a different streaming model file to create a plurality of streaming model files, each streaming model file being associated with (a) the one of the plurality of application files associated with the streaming model stored in the streaming model file, and (b) a plurality of files each smaller than the application file associated with the streaming model stored in the streaming model file, the plurality of files having been created by dividing the associated application file into portions based on the streaming model, the plurality of files comprising one or more initial execution files and one or more other files, the one or more initial execution files to be downloaded before the one or more other files, and the one or more other files to be downloaded after the one or more initial execution files have been downloaded; storing one or more of the plurality of streaming models on each of the plurality of server computing devices, each streaming model file comprising information for downloading the plurality of files associated with the streaming model file using a conventional download protocol without the use of specialized streaming protocol such that an application implemented by the application file associated with the streaming model file is executable after a first portion of the plurality of files have been downloaded, the first portion of the plurality of files storing less than the entire application file associated with the streaming model file; recording information in a data storage accessible by the plurality of server computing devices indicating on which of the plurality of server computing devices the one or more of the plurality of streaming models are each stored; each of the plurality of server computing devices, querying the data storage to determine whether another of the plurality of server computing devices is storing a particular one of the plurality of streaming models not stored by the querying server computing device; when another of the plurality of server computing devices is storing the particular streaming model not stored by the querying server computing device, the querying server computing device copying the particular streaming model from the another server computing device; and recording the copying of the particular streaming model to the querying server computing device in the data storage. - View Dependent Claims (29, 30)
-
Specification