VMware

10/14/2009

Why PCoIP is Ideal for Remote Virtual Desktops

It’s not a secret that remote desktop protocols have been lacking to date when compared with local execution on client PCs. However the centralized management and security is compelling and has often made up for this shortcoming. VMware has been hard at work addressing this deficiency – we aim to bring all the operational benefits of virtualized desktops to our customers without having to compromise on the richness of the user experience. PCoIP is a remote graphics protocol originally designed by our partner, Teradici, and available today in hardware implementations. VMware has been diligently working with Teradici to create a virtualized implementation of this robust, innovative protocol and deliver the premier remote desktop experience for VMware View. I thought it would be useful to spend some blog space discussing why we believe this protocol and our joint implementation architecture delivers the ideal remote graphics experience for virtual desktops.

PCoIP is a server-centric protocol, meaning that we are doing the majority of the graphics rendering and processing on powerful servers. Compressed bitmaps or frames are transmitted to the remote client. This division of labor has some ideal properties for static content. First it’s making use of the powerful processing capabilities of multi-core servers such as Intel’s Nehalem to render the graphics. More importantly, by transmitting compressed bitmaps or frames, we can adjust the protocol in real time to account for the available bandwidth and latency of the communications channel. On a WAN connection with typically less bandwidth and higher latency, a less crisp image is produced quickly, typically with  0.2-0.5 bits/pixel producing a grainy, but still recognizable image. Kind of like an analog TV… This rapidly sharpens with increasing clarity and detail visibility with each succeeding frame until the image is perceptually lossless. This is a high quality image at a total of approximately 1-3 bits/pixel. Think of it as now Digital HD to stick with our TV analogy. On a higher performance LAN, the images become sharp instantly and will build to complete lossless at 5-15 bits per pixel. Think of it as Blu-Ray!

PCoIP blog 1

This is very different than protocols that make use of more client side processing to draw an object – those are all or nothing. And best of all, this compression algorithm is applied dynamically; the architecture doesn’t pre-compress content so we can pick exact bit-rates on the fly for almost every frame – this is really powerful.  Think about situations where the available bandwidth can fluctuate and become oversubscribed.  If you try to send drawing primitives to the client for it to render using local hardware, you generally consume a fixed amount of bandwidth and lose the ability to adapt to bit-rate availability changes.

The PCoIP architecture in our server-side Virtual Machines is a multi-layer architecture enabled by a Windows mechanism called DevTap and VMware Virtual Graphics Hardware in the guest OS. The remote bitmap display is rendered, encoded and sent at a low-level of the stack via our virtual SVGA driver, while we make use of the DevTap interface at higher levels of the graphics stacks that recognize the types of objects present in different areas of the screen and hence in the resulting bitmap. If we just did frame differencing in software, the overhead would be quite high.  However with virtual hardware, we can carve up the screen into a stream of regions that have changed so you only have to encode those updated regions.  Furthermore we may even have information about what is in that region based on what GDI calls were use to render it (text vs. video vs. blit graphics) and that can save a lot of effort in the categorization path. This allows the application of different codecs or graphics processing engines to render the different screen objects. Desktop screens are not one size fits all and this technique allows the division of multi-media content, static images and type from each other and the application of the ideal codec for each along with the tailored quality heuristics. The robust VMware Virtual NIC technology rounds this all out by enabling independent channels and even the separation of control and data streams. And of course, PCoIP still makes use of multi-media redirection for the most efficient and direct processing of streaming media directly on the client.

PCoIP blog 2

The transport used for PCoIP is also unique and tailored for a rich user experience. It makes use of UDP datagrams, not TCP. TCP is a generic virtual circuit protocol, meaning that the transport layer is making sure that packets are received and that they are delivered to the application in the specific order they were sent. Lost or dropped packets will hold up the delivery of subsequent packets and there is a specific acknowledgment sequence. This is a great mechanism and is widely used across the internet for many applications. However,  the most convenient, generic mechanism is not necessarily ideal or optimized for a specific application and in the case of remote desktops it will not deliver the richest user experience. If you have packet loss, is it best to ensure that every last bit gets to the client and in the order sent by asking for and waiting on retransmissions?  Is all content on the screen of equal importance (where is the mouse? What has focus?)? or what codecs are most resilient to loss?  By controlling the flow control policies in layer 7, the remote desktop centric application layer, and differing the algorithms and policies based on heuristics such as these, PCoIP delivered via UDP datagrams is able to make optimal use of the bandwidth available to deliver the richest interactive experience possible across a range of remote desktop scenarios.

And of course, all of this will be available later this year and with various flavors of optional hardware acceleration! Our advanced PCoIP software encoding will be good enough for the majority of users – and that might be the target audience for your initial roll-out. However knowing that hardware acceleration is an option provides an upgrade path for power-users who may need it and gives much greater confidence in deploying VMware View as your standard for Desktop Virtualization.

PCoIP blog 3
 
The remote desktop experience has fallen short in some dimensions to date and for certain classes of users. I hope I’ve given you some insights into exactly how and why VMware and Teradici are addressing these shortcomings together and why View with PCoIP will be the best remote desktop experience available anywhere!

 



09/21/2009

VMware's Desktop Vision

Welcome to VMware View-Point, our Desktop Office of the CTO Blog.  My name is Scott Davis and  I’ve recently moved over to VMware's Desktop BU as overall CTO.

So, who is this guy and what does he know about desktop computing and virtualization?

Besides being an expert in operating systems, storage, virtualization and enterprise IT, I’m also an entrepreneur at heart and I am very excited about the opportunity in front of us; using virtualization insights and technologies to create a far better and richer experience around client computing for both end users and the IT staff that administers the infrastructure. The opportunity to change the world is what gets me up in the morning and that’s what I see when I look at the state of client computing and the palette of technologies VMware and our partners are bringing to it.

When I tell folks about my new role, a question I get asked is “What does virtualization really mean for client or desktop systems?” Well, virtualization is powerful for ALL forms of computing, from the desktop to the data center and the cloud. Virtualization is fundamentally about encapsulation and isolation between layers. It’s about explicitly severing all dependencies between an application and the various software and hardware components necessary to perform the specific task – so that every layer is isolated and can be provisioned, managed, updated and secured independently. By layers here I mean my applications, my data, my user settings or profile, the operating system, middleware and the actual physical devices in use. In other words,  enabling these components on either side to have independence from each other and to evolve separately. The power of virtualization comes from this fundamental tenet - separating the work to be done from the dependence on specific hardware and software that does the work. However, it’s really a building block. And customers don’t buy cool building blocks, they buy solutions to real world business problems. And solutions are comprised of applying the right building blocks in the right way to real world problems. By virtualizing and centrally managing these different layers, end users get the flexibility and freedom they desire while desktop IT admins get a cost effective, secure way to manage the desktop infrastructure. And in the server world, it’s had incredible impact; this notion of encapsulating a workload into a file and moving it around live with the ease of copying a file – Consolidation, Business Continuity, Rapid Provisioning, Data Center Automation, Disaster Recovery, and ultimately Flexibility are just a few of these solutions. 

Ok, you've said enough for me to read the next paragraph. What's your vision of the desktop?

Diversity is growing. We have more client device types – thin clients, thick clients, mobile laptops, smartphones. We have more operating systems, look at the excitement generated by the iPhone, Blackberry, and Android operating systems, Mac OS, Linux and even the new Google Chrome OS designed for Web 2.0 applications. An explosion of new applications is occurring as well. Look at the plethora of iPhone/iPod Touch apps – a platform than didn’t exist a few short years ago. And we all use many of these technologies not just for fun, but to get our work done. Enterprise IT, on the other hand, needs to guarantee service levels (which has been historically more difficult for desktop), protect the company’s assets, provide security, and of course manage everything. And provide all the applications that everyone needs to accomplish their jobs. And by the way, do it all cost effectively! How to reconcile these vastly different and conflicting demands? This is a different climate than server
computing…

VMware’s vision for client or desktop computing is to use virtualization technologies to encapsulate and isolate all the aspects of the desktop. Make each aspect independently manageable, duplicate-able, recreate-able.  Employee-Owned IT? Separate into different virtual machines. Lost, broken or obsolete device? Throw it away, the VM is preserved in the data center and can be redeployed at will. 

I want the freedom that comes with complete separation between my physical devices and all my software. I want device independence; my applications, my data, my personality dynamically composited and encapsulated executing on the optimal device(s) for my  current time and location.  That may mean collocating layers on the same device or distributing across multiple systems. I want isolation; my personal and professional applications, run-time and data isolated and encapsulated, accessible via the internet, mobile devices, thin and thick clients. With client virtualization I want the display, the computes and the storage intelligently and automatically placed – sometimes its’ better to execute the workload in the data center and virtualize the graphics to a client. Other times, I want to take the whole workload with me and run it on a laptop. Or something in between. And why stop there? We’re also doing best of breed virtualization for isolation and encapsulation between all relevant boundaries – that’s why we have ThinApp for application virtualization and continue to invest in advancing that technology. And why we announced at VMworld our relationship with RTO to make use of their profile caching and replication technology in our solutions. And why we partner with Teradici to jointly bring solutions to market based on the best in class remote graphics protocol designed explicitly for virtualized desktops.  And there’s a lot more coming!

User-Centric Computing; a powerful vision and architecture…

User-Centric Computing is the term we at VMware have coined to describe this  desktop vision - the intersection of our virtualization technologies, management platform and the demands of client computing. This model is facilitated by composited client virtual machines; the desktop VM is not monolithic but created out of multiple component parts, but the result is itself also an encapsulated object, a VM. Each of these component parts are also isolated and may be independently managed and maintained. Client virtualization is about creating an encapsulated virtual machine that represents a user’s desktop out of a collection of independently virtualized parts – Base OS, Virtualized applications, User data files, User profile and settings, virtualized hardware such as graphics and storage. And these parts are dynamically brought together to form the complete desktop VM image. Each layer is independent and isolated from the others. And preserved. And when we execute such a client VM, we may span-machine/device boundaries during its execution.  

Blog figure 1

VMware is committed to this vision and best of breed technologies at every layer:

  • Platform –  VMware vSphere, the upcoming CVP client hypervisor and the world-class common Virtual Machine Monitor (VMM) that they both share.
  • Composition and Management – View Composer for image management, VMware vCenter Suite for virtualized data center management, desktop View Manager for Virtualized Client management, ThinApp our application virtualization  engine, etc.
  • >TRUE User Experience – The ground breaking Teradici PCoIP graphics protocol designed explicitly for virtualized desktops over LAN and WAN, as well as our investments in diverse mobile devices and providing an offline experience.

Blog figure 2

In future blogs, I ‘ll be delving into each of these technologies in depth and many additional topics. We’re just beginning on this journey together.

And a few final remarks…

I hope you’re as excited as I am and that I’ve given you a taste of our vision and what’s to come. The solutions we bring to market based on virtualization technologies will be revolutionary for the desktop computing experience.  Decoupling and managing desktops independently from physical end point devices. And with the Windows 7 refresh looming, this is the ideal time to make the break to virtualized clients. Rapid provisioning, desktop style. Replacing obsolete or lost devices. Painlessly. Upgrading any individual component part, be it hardware or software, without down time or outage. Reduced Complexity. Desktops have gotten burdened with greater and greater complexity, as anyone trying to figure out why their Windows system runs slower and slower will attest. Hey, I’ve built operating systems software and even I get stuck! Using virtualization to optimize and distribute portions of desktops across the optimal hardware to run them at the right time.  Manage and preserve desktop images in the data center – If my client workload is encapsulated as a file through virtualization, then my data center infrastructure can be used to manage, preserve and secure it. Irrespective of the physical device I might be using at the moment.  Rapid provisioning and business continuity, linchpin attributes of virtualization brought to the desktop world. Except instead of rapidly provisioning a new server instance to handle the load, for the desktop its replacing a lost, broken or stolen device without any loss of data or productivity. Or it’s optimizing my experience based on local resources. The right amount of physical hardware, applied to the virtual desktop when its needed.

As has been proven for servers, virtual desktops are really better than physical ones. And that’s our viewpoint!