Perhaps the biggest of today's multitude of announcements from Microsoft is that Microsoft is buying Calista Technologies. Calista is a privately-held, venture-backed software vendor who was in the process of developing extensions to Windows and RDP that virtualized the entire GPU (Graphics Processing Unit) of the host computer. This enables RDP to support multimedia, streaming and syncronized audio, and full and high-fidelity desktops and applications--all over a standard RDP connection from a standard RDP client device.
This is important in today's world because as people try to deliver a complete windows desktop, they learn that RDP is just not capable of this on it's own. Sure, it can work. But RDP was designed for delivering business apps here-and-there. When you're talking about delivering an entire desktop with all apps, multimedia, web browsing, graphics, huge resolutions, transparent windows--this is something that RDP just wasn't designed to do. I wrote about this a few months ago in an article "Remote display protocols for VDI: will RDP be enough?" (In case you're wondering whether RDP will be enough, my answer was 'no.' I felt that Microsoft would have to build or buy something if they wanted to get serious about delivering Windows desktops remotely.)
Let's get back to Calista though. As I said, Calista was in the process of developing a virtualized GPU that could be added to Windows. In my article about this last year, I quoted Provision Networks' (now part of Quest Software) Peter Ghostine as he explained what this meant. Let's look at what he said:
In “virtualizing” the graphics system of the host, software on the host captures all possible graphical layers (GDI, WPF, DirectX, etc.) and renders them into a remote protocol stream (like RDP) where they’re sent down to the client as fast as possible. This will give the client an experience which is very close to local performance, regardless of the client device (even on very low-end WinCE and Linux clients).
The challenge here is that GPU capabilities must exist on the server side where the rendering is taking place. This is fine if you plug a physical graphics card into physical hardware running a physical OS. But in a VDI scenario, your hypervisor must be able to virtualize the GPU just like any other piece of hardware. This means that the Windows desktop OS running inside the VM be able to detect the “virtual” GPU so that it can enable all of it’s cool graphical features.
The Calista technology can be used in all three modes of desktop delivery: terminal server, blade PCs, and VM-based VDI environments. When remoting the desktop of a physical single-user device (like a blade PC), the GPU is local and dedicated to that PC already, so this isn't too hard to do. When remoting a desktop via terminal services, Calista has to modify how Windows carves up the individual sessions and create a virtual GPU on a session-by-session basis. And when remoting a desktop via VDI, Calista has to work with the hypervisor to create a GPU for each VM (or it has to create a 100% software-based GPU in each VM).
Certainly creating these software-based host-based GPUs eat up some processing power on the host. But this is the type of transaction that would work well in multi-core environments. Since general Windows use was not really designed for multiple cores, Windows doesn't scale across multiple cores too well to begin with. So if you have all these "extra" cores on your host that aren't really doing anything too useful, why not let them spend time processing a software-based virtual GPU to improve the experience of the end users?
What will Microsoft do with the Calista technology?
Again, remember that Calista did NOT have a product on the market yet. At this point they are just a company who's developing some cool technology. In a phone call I had with some folks at Microsoft last night, they stressed that Microsoft does not yet have a roadmap for Calista. Will it be an independent product? An add-on product? Built-in to all products? They just don't know yet. They do know that it can enable remote desktop delivery both for Terminal Server and Windows XP and Vista. Their stated goal is to leverage it to make RDP more capable over time.
Of course there are a few unanswered questions that people are already starting to think about. For instance, will Microsoft "lock out" other hypervisor vendors (read: VMware) so that these Calista enhancements only work in Microsoft-approved scenarios (read: Hyper-V and Xen)?
What does this mean for Citrix?
In today's world, if you want to remote a full Windows desktop, you can't really do it with just RDP. One of the most popular options is to use Citrix's ICA protocol (either via Presentation Server or XenDesktop). So with Microsoft buying Calista, this is essentially Microsoft saying "soon RDP can be used to remote a full Windows desktop." In fact, in a blog item on MSDN posted a few minutes after the acquisition was announced, Calista's founder, Neal Margulis, wrote about Calista's technology and it's impact:
Some people in the industry seem to think that RDP and multimedia don’t go very well together, and it stuns me when they say that in order to provide a decent rich media desktop experience over an IP network, you need to resort to a non-RDP protocol. Well, these skeptics may want to rethink their position, in particular after watching a demo of the Calista Virtual Desktop software. When you utilize Calista’s unique GPU virtualization, smart capture and high-fidelity compression technologies, you end up with the industry’s most compelling, most economic, and most broadly acceptable solution for virtualizing a modern Windows desktop.
Which "non-RDP protocol" do you think Margulis is talking about?
How does Citrix respond to this? I had a conference call with David Roussain and Mick Hollison (VP, Product Management for XenDesktop) at Citrix. They were tripping over each other to say that Calista did not compete with them, that this just validates the space and Citrix's desktop delivery approach, and that they're a strong partner with Microsoft. Their feeling is that Calista is a core technology that Microsoft will build into their platform, most likely for the purpose of remoting WPF apps. They stressed that it's a raw technology and it won't make its way into a product for awhile. And when it does make it into a product, it will be another core technology that Citrix can "embrace and extend." Will this renew the conversation of whether Citrix should drop ICA and just go with RDP? Or is this just kind of "ho hum.. same old arguments, 2008 version?"
To be fair, the same press release also includes some news about Citrix and Microsoft strengthening their marketing relationship around XenSource and Hyper-V. Does this show that the two companies are still on the same page with everything? Or was this just thrown in there so that Citrix had some preemptive ammo against pissant alarmist bloggers who would claim that Microsoft doesn't need Citrix? Time will tell.