It has been about two years since Microsoft purchased Softricity, and probably a good time to take one more look at what has happened since, and is happening now.
When Microsoft announced the purchase, I stated that the real value of Softricity to Microsoft might not be in the "product as a whole", but in the pieces. With the changes to the product being released this year, we are seeing some of that come true.
Today, when I look at what application virtualization involves, I break it into three parts:
- Application publication
- Application delivery
What we had
The Softricity SoftGrid product did all three parts.
The client would pull down the application publishing information at logon. This involves the shortcuts, icons, and file type associations needed, plus the OSD object to make the magic happen. Some customers, especially when using Citrix and/or RES PowerFuse, were already turning off this part of the functionality and doing the application publishing with those products.
The application delivery with SoftGrid was performed by a client pull mechanism using the RTSP(S) streaming protocol. Softricity could never get over just how cool this was and were effective in their Marketing message of a kind of "just in time" delivery. In practice, we found we had to invent ways to get the client cache pre-filled with the assets to that the user never needed to wait for the streaming and could also work (disconnected mode) if the client lost connectivity with the server for some reason. Technically, this streaming uses a special ("remote sparse matrix") file system that was specifically developed for the product. At the time of the purchase I felt that Microsoft would probably find other uses for technology.
The actual virtualization engine doing the encapsulation and isolation (SystemGuard) was of course the real heart of the product.
What has happened so far?
First of all, Microsoft has managed to not screw everything up. It is hard for a large company to successfully bring in a start-up company and not destroy the product. So let's give them credit (Citrix also seems to be doing this well, currently) for that. First, Microsoft decided to give away all the server and sequencer pieces and charge a client license only. This was good. Yes, there are many customers unhappy with the client licensing model. The SoftGrid for Windows Desktop client, was bundled into the Microsoft Desktop Optimization Pack (MDOP) and offered for a ridiculously low price. This is a problem, however, because to purchase MDOP, the client OS has to be on subscription (Software Assurance), and SA is considered expensive given the long time that lapsed between XP and Vista (assuming the customer even wants Vista - but let's not go there). Ultimately, I think Microsoft intends to make desktop SA work. The fact that you can also get VECD (which you will want for VDI) only if you are on SA makes the cost of SA look a whole lot better. At any rate, although non SA customers are unhappy, Microsoft has been shipping an awful lot of MDOP (reported at 6 million copies in the first 6 months). In addition, we have seen good improvements to the virtualization engine. Support for virtual services has been added, as well as for applications that are .net based, and a bunch of other things which increase the range of applications that can be supported.
Finally, they also quietly included a new option for application publishing and virtualization without using streaming for the delivery. This major new feature was included in a hot-fix rollup pack in February of this year. And it was described as for use in one-off situations like for a contractor in India and you don't to try to stream stuff over the internet. But this week, I suggested using this feature (MSI based publishing) across the board to a customer with 50,000 SoftGrid client seats. Basically, you take the publishing info and create an MSI that "installs" the publishing info using whatever push mechanism you use for non-virtualized apps (such as SMS). The MSI populates the shortcuts and icons and file type associations, and them imports the asset file (sft) to pre-fill the cache. Configure the client to never look for a server and boom - you have a client with virtual apps with no back-end infrastructure to worry about. Fewer moving parts is reason enough to give up things like app usage reporting in my book. And if that reporting is important enough for you just use a tool that will monitor the clients and report both the virtual and non-virtual apps in one report.
What is coming soon?
The new 4.5 release coming out this year (Microsoft only says Q2/Q3 but the rumor mill puts money on a release candidate soon and RTM in probably September). Also important to some customers will be SCCM R2 which will have a slightly later timeframe. So what is in 4.5?
First, we have renaming happening. The Softricity name clearly will be gone. Microsoft is also trying hard to eliminate the SoftGrid name, but that is turning out to be more difficult than they realized. "System Center Microsoft Application Virtualization" sounds awful to say even the first time. Oh well, I'm just going to say MAV and move on to features. The beta only included a small set of these, but the others were shown or discussed at the Microsoft Management Summit ( which I blogged about here).
Starting with the virtualization engine, "Dynamic Suite Composition" (DSC) is the first attempt at solving a problem created because application virtualization virtualizes too well sometimes. The problem is that when we containerize apps and run them in independent virtual bubbles, they also can't talk to each other. We usually work around this by packaging multiple apps together into a single package. If the application has too many dependencies this starts to be too much and we sometimes decide to install the major application (such as Microsoft Office) natively on the clients and virtualize the rest. DSC allows us to make individual app packages and have the client perform a form of "mash-up" to bring them together into a single virtual bubble on the client. This paragraph makes it sound better than it is, as there are special steps involved in the package creations due to the dependencies. This will limit the use of DSC to a few things like Office and browser plug-ins.
There is a version of the MAV Server, which they call the "Streaming Server" (I call it the "lightweight server because that name is less confusing). The intent is to place this in a branch office. The only purpose of the streaming server is to deliver the application (sft) via the normal pull streaming mechanism to the client. This server does not deliver shortcuts, nor does it talk to the database. Client overrides (registry settings at the client) are used so that the client can pull publication info from the home office at logon, and then stream everything locally. You loose app usage reporting from these clients since nothing talks to a database if that is important.
4.5 will also automate the MSI option that came out in the hot-fix. Rather than a separate tool to generate the MSI, it is embedded in the sequencer as an option. By the way, the sequencer is getting a UI overhaul in the final release. The three wizards are combined into one, and some options that were formerly in the wizards are now just new tabs in the sequence editor.
It is the delivery part which will have a lot of new architectural options. In addition to MSI, we also have HTTP, SMB, and Bits. While you can still use RTSP(S) with the VAS (which is now called MAV Management Server), the new SCCM R2 release will allow you to ditch the VAS, SoftGrid Management Server, and SoftGrid Database and use SCCM instead for all of your virtual and non-virtual application distribution needs. You will be able to specify HTTP(S) streaming from an IIS distribution point if you go this way. There is also an SMB option ( file : // ) which I don't yet fully understand. We also have background streaming using Bits (which may be related to the SMB option), but again you need to be on SCCM R2 so that you have the BITS distribution point.
The segmentation of the technology into those three parts, and providing new options for implementing them is a smart long-term move. Maybe I'm not in love with SCCM, but the concepts work for any ESD to incorporate also. Many of these options make us (myself included) look a little silly at poking fun at Citrix for not having "real streaming". Streaming is a cool option, but quite frankly I would rather obtain delivery via other means.
Application Virtualization continues to make an awful lot of sense, not only for desktop and terminal server use, but for VDI in the future as well. The concepts of encapsulation, segmentation, and layering are important to all forms of virtualization.
On the competition front, application virtualization continues to draw interest. Two years ago we were not sure that Citrix would continue with AIE. They did (now renamed) and have continued to improve their capabilities. While the virtualizaiton engine of Citrix does not handle as high percentage of application as MAV, they have continued to make good progress. Thinstall (now Vmware ThinApp) has arrived on the seen, as have others. The Altiris/SVS/AppStream combo is also out there (I don't run into them, but if I don't mention them I'm sure "guest" will).
I think that Microsoft has done OK so far. I might not make all the same choices as they made (like failure to deliver a 64-bit client for Terminal Services), but I would not have thought to make some of the right choices either.