Application streaming is a form of on-demand software distribution. In these scenarios, only essential portions of an application's code need to be installed on the computer: while the end user performs actions in the application, the necessary code and files are delivered over the network as and when they are required.
Application streaming is a related concept to application virtualization, where applications are run directly from a virtual machine on a central server that is completely separate from the local system. By contrast, application streaming runs the program locally, but still involves the centralized storage of application code.
An application is packaged and stored on a streaming server.Packaging or sequencing produces an image of the application in a way that orders delivery or predicatively optimizes delivery to the client.
The initial launch of an application would be important for the end user and the Packaging process might be optimized to achieve this. Once launched, common functions would be followed. As these functions are requested by the end user, these may be streamed in a similar manner. In this case the client is pulling the application from the stream server. Otherwise, the full application might be delivered from the server to the client in the background. In this case, the server pushes the application to the client.
The concept of application streaming carries several major advantages over traditional software distribution: given the complexity of modern applications, many functions are never or seldom used, and pulling the application on demand is more efficient in terms of server, client and network usage; streaming also allows for applications to be cached on the local system and still run in a traditional manner; updates can also be deployed automatically to the cached application files.