A method and system for streaming software applications to a client uses
an application server having a library with the application files stored
therein. A streaming manager is configured to send the application files
to a client as a plurality of streamlets, each streamlet corresponding to
a particular data block in a respective application file. A streaming
prediction engine is provided to identify at least one streamlet which is
predicted to be most appropriate to send to a given client at a
particular time in accordance with a prediction model reflecting the
manner in which the application files are loaded and used by the
application. In the preferred implementation, the application files are
preprocessed and stored as a set of compressed streamlets, each of which
corresponds to a file data block having a size equal to a code page size,
such as 4k, used during file reads by an operating system expected to be
present on a client system. In addition, the server is configured to send
a startup block to a new streaming client containing a file structure
specification of the application files and a set of streamlets comprising
at least those streamlets containing the portions of the application
required to enable execution of the application to be initiated.