Feb 10, 2009 at 9:51 AMInteresting scenario. I am always surprised with the number of ways people come up with to use this technology. It is one of the things that makes it so fun to work on.
Feb 10, 2009 at 9:49 AMIronically, this looks like another video about shared state and concurrency. But instead of program state, its installation, files, and registry state, and running programs concurrently.
You are right. We deal not just with program state, but with all of the state that the application attempts to place on the system.
It would be nice to further explain how a single "capture" installation can target many "clients." More specifically, how would it deploy to different hardware, or versions of windows? Would you have to create a new image for each machine profile?
I think most of this is covered in the first video. Basically, a single image typically can be used for all machines. Of course, if the installer did something very different based on the hardware, it would be an issue. But, since we don't virtualize device drivers, this isn't something we see in practice. As far as different OS versions go, customers typically capture the install on the lowest OS version they want to support and then stream the image to all OS versions. From the application's perspective, it looks no different than if the app had been installed on the lower OS version and then it was upgraded to the new OS version.
Also, about the virtual file system, does it only redirect the original installed files? Or does it also redirect newer files created by the user (settings, for example)?
It has to do both. There is logic in the VFS to handle redirecting installation state and user state (i.e. settings).
I'm sure Charles would have been happy to barge into my office, if it wasn't on the other side of the country. Even with the more formal setting, it was still a really fun interview. I wish I could have spent more time diving into the architecture. But, unfortunately, most people still have no idea what app virtualization is. So, this one ended up being a little bit more of a level-set. I hope to do another one soon so that I can dive a little deeper into our architecture. I'm looking forward to it.