Application Isolation and Streaming
By leveraging Citrix’s Application Isolation and Streaming technology you can efficiently and flexibly deliver applications to be published on Presentation Server or directly to the end users’ clients. Shawn Bass will explore the architecture, the process for profiling applications and the resulting easy, quick and flexible delivery of the applications. (Running time: 32:55 minutes)
Tags: technical video
Views: 6,181
Rating: 5
Transcript : Hello, my name is Shawn Bass. I’m an independent consultant that specializes in Citrix technologies, and I’m a frequent contributor to a variety of Citrix-related forums on the Internet. I’m here today to talk about Citrix’s application streaming and virtualization technology that’s built into Presentation Server 4.5. Today’s topic will be an introductory overview to Citrix app streaming and virtualization. Before we get started, I’d like to begin with an outline of today’s topic. First, we’ll talk about what application streaming is and why you should be using it. Then we’ll discuss what the application virtualization technology is and why you should use it. Then we’ll discuss what some of the limitations are of streaming and virtualization, and we’ll go over a brief history of virtualization as it pertains to Citrix, starting with Presentation Server 4.0’s Application Isolation Environments through present day streaming in Presentation Server 4.5. Next, we’ll give you some reference documents and background material that’ll help you if you’re ever getting started. And we’ll cover the Streaming Profiler and some best practices for profiling your applications. Then we’ll go through a walkthrough of profiling an application, and we’ll publish the application for desktop streaming. And we’ll go through a walkthrough of testing the desktop stream. And, finally, a walkthrough of publishing an application for Presentation Server streaming and a corresponding test of that application on a Presentation Server. What is application streaming? Streaming is a method of getting software onto a system, either a desktop or Presentation Server. Applications are streamed over the network when the application is requested, as opposed to being placed on a system through a scheduled installation process, as you may be familiar with in the case of an electronic software distribution product. Benefits of streaming technology include just in time delivery. There’s no longer a need to wait to deliver the software after hours. You do not need to plan a list of machines to distribute software to. You can assign the software to users and groups, not machines. It also handles the scenario of machines that are powered off, or otherwise not able to receive the distribution at night. Streamed applications are cached on the system, so they’re available for quick launch on subsequent access attempts. There’s also support for offline access. Using Program Neighborhood Agent, you can provide offline access to applications and circumstances where the client PC does not have connectivity to your backend infrastructure. This obviously requires that the application is able to function without connectivity. As an example, an application like Microsoft Office. It also supports easy upgrade mechanism. Applications can be patched or upgraded in the profile, and subsequent launches will receive the new update. Now that we’ve discussed application streaming, I’d like to discuss application virtualization. While Citrix doesn’t specifically mention application virtualization, it’s important to know that the Citrix streaming component in Presentation Server 4.5, is really a combination of application streaming and application virtualization. So let’s talk about application virtualization. Application virtualization is an isolation technology that allows multiple applications to co-exist on a system concurrently with the files, registry, and named object of one application invisible to the other application. As an example of this, let’s take it that you have two versions of Microsoft Office on the same system: Office 97 and Office 2003. Both of those versions of Office share similar registry entries that would normally cause problems if they’re deployed side-by-side in the same system. However, in the case of application virtualization, the registry data of one version of Office is invisible to the other version of Office, so they’re allowed to peacefully co-exist on the same system. Because of this, application virtualization minimizes the potential for application conflicts. So other benefits of application virtualization is that it allows for easy delivery of software, since they can be delivered without requiring users to be logged off, and without requiring a reboot of the desktop or Presentation Server. In server-based computing, it’s a common practice to silo, or group, servers together to minimize application conflicts. Application virtualization reduces the necessity of server siloing, since applications can co-exist on the same system. This results in a higher level of server utilization. Now that we’ve discussed what streaming and virtualization is all about, let’s discuss some of the limitations of streaming and virtualization. First, make sure you have the right use case for streaming. If an application transmits several megabytes of data for each query that it makes, it may not be a good candidate to be streamed in a low bandwidth scenario. Don’t forget why you deployed Presentation Server in the first place. Also, clients must have file share, or UNC, access to the profiled application. This is typically Windows SMB file share access. So for your remote users, you must VP it into the corporate network, or run the streamed application from a Presentation Server via the ICA protocol. However, HTTP based streaming is on the road map for a future version. While this is not a limitation, it is something you should be aware of. You must have a license to stream applications. The Presentation Server license can be used, or you can purchase desktop streaming licenses separately. Application virtualization is not going to work for every application. As of Presentation Server 4.5 Feature Pack 1, applications that require services or kernel drivers can’t be virtualized. Some applications also record machine specific details or licensing in them. These applications may not be able to be virtualized. You will still need a traditional ESD solution for things like operating system hotfixes and Citrix hotfixes. However, Citrix Installation Manager is perfectly capable of performing this function. Many applications have hooks into other applications, such as Microsoft Office, to generate reports. If you have applications that hook into Microsoft Office, you may need to include Office with the virtual environment. And this might get kind of costly from a disc or network perspective, if Office ends up being in ten or fifteen different applications. One way to get around that is to have some way of allowing the virtual applications to talk to one another. Citrix has on the road map for a future version a method called inter-isolation communication, or sometimes called contexting, that will allow virtual environments to talk to one another. You may be aware of certain items that are shared, such as File Type Associations. Only one application can associate to a given File Type Association. For example, Microsoft Access uses .MDB as its file format. If you’re publishing Access 97 and Access 2007, only one of the two can have an active File Type Association. This will usually be the latest version. For the other version, you’ll need to launch the app by its executable, and pass the database name on the command line or navigate to where the Access 97 database file is. Also, you’ll have a slightly reduced number of users due to the overhead involved in virtualizing the file system and registry. Citrix Article 114837 has more details on the performance overhead. Now that we’ve discussed some of the limitations of application streaming and virtualization, I’d like to talk about a history of Citrix application virtualization. Citrix introduced Application Isolation Environments in Presentation Server 4.0. AIEs were intended to provide a method of isolating applications that were deployed to a Presentation Server only. There was no desktop isolation technology at that time. Citrix significantly improved the isolation technology for Presentation Server 4.5 and introduced the streaming profiler utility that makes it possible to isolate many more applications than before. Citrix streaming and virtualization is now supported on Presentation Servers, as well as 2000, XP, and Vista desktops. While Application Isolation Environments are still available in PS 4.5, the preferred mechanism of virtualizing software is to use the Citrix streaming profiler. There are many enhancements in this virtualization technology of the Citrix streaming profiler, such as the capability to process virtual reboots. Application streaming is the future direction for application delivery. With more enhancements planned, you should definitely become familiar with the streaming profiler, if you haven’t done so already. Before we discuss the streaming profiler utility, I’d like to point out some good reference documents or background materials. The first is the Application Streaming Guide, CTX 112526 for Presentation Server 4.5. Also, for Presentation Server 4.5 Feature Pack 1, the guide was updated and can be found at CTX 113700. If you want more detailed information on the Streaming Internals, CTX110303 has some great information. There’s also a Application Streaming Delivery and Profiling Best Practices, CTX 114663, with specific details about how the streaming profiler works and how to best profile your applications. There’s an excellent implementation guide written for streaming, which is CTX113428. There’s also an excellent document on enhancing security for application streaming for desktops, which is CTX110304. Finally, if you’re having difficulty with your applications that are streamed, I recommend the Troubleshooting Application Streaming Issues document, CTX113304. And finally, the Citrix official support forums are an excellent source of information for application streaming difficulties. There’s a specific forum dedicated to application streaming at the official support forums. Before we get into a demo of the profiling process, I’d like to talk about what the streaming profiler utility is and cover some best practices for profiling your applications. What is the streaming profiler? It’s a standalone application that allows you to run the installation routine for an application and monitor the installation to determine which files, registry, and named objects are modified, and then encapsulates that up into a streaming profile. The streaming profile is then placed onto a file share, and the applications are published to users or groups. The streaming profiles can be consumed by workstation operating systems and Presentation Servers for remoting user interface over ICA. Let’s talk about a few best practices for the streaming profiler utility. First, you must understand your applications well, including any system requirements or dependent components. You should always attempt a regular installation of the application outside of the streaming profiler, to ensure your documentation is correct and that the application works as you expected it. Most people profile applications on Windows XP to target XP, Vista, and 2003 Server. If the initial profile doesn’t work, then you can create a separate target within the profile for specific operating systems, if needed. Be cautious with OS components and add-ons, such as MDAC, .NET Framework, Java, Visual Basic and Visual C++ Runtimes, and database clients. Also be aware of things, like VMware tools, as it deploys the Visual C++ Runtime, which could alter your profiling environment. If you’re using an RDP connection to your profiler workstation, ensure that you’re using a Console connection, as some applications will not install it within an RDP session. Better yet is to use the physical console, or view the console using your virtualization management software. If you’re profiling on physical hardware, using faster CPU and Disk subsystem will result in much quicker profiling. The use of hardware virtualization technologies, such as Citrix Xen, Microsoft Virtual PC or Server, and VMware, offer quick ways of restoring the system to a clean state. So it will speed up the process of developing and testing your profiles. Always obtain the latest version of the streaming profiler utility from mycitrix.com before you start profiling your applications. Be very cautious about entering any user specific information during the profiling process. Doing so may result in those details being captured and applied to all users. Finally, document the entire profiling process. Include as much detail as possible, and pay particular attention to anything out of the ordinary that needed to be done to make the application work. Your documentation will help in the future if the application needs to be re-profiled or upgraded. Now that we’ve talked about how Citrix streaming works, let’s actually get into a demo of how to profile an application. Right here I have a RDP console connection to a Windows XP SP2 virtual machine. And on it I have installed the Citrix Streaming Profiler version 1.1 that can be obtained by www.mycitrix.com. I’ve also copied a MSI for WinSCP version 3.8.1 onto the desktop of my profiler. In order to profile this application, first thing we need to do is start the Citrix Streaming Profiler utility. Since we don’t have a pre-existing profile, we’re going to create New Profile from the startup screen. And it’s going to start a wizard called the New Profile Wizard. I’m going to choose Next here. We have to name our profile. Since the application’s called WinSCP, we’re going to name our profile WinSCP3.81 and choose Next. Now you see a screen that asks you to set the user profile security level with two options: enhanced security and relaxed security. What this is referring to is the level of security in the virtual environment when the user runs the application. You normally want to choose enhanced security, as it will prevent any things that come down during the execution of the virtual environment from executing aside from the published application. If you have an application that has several other EXEs that are copied down at launch time, you may need to choose relaxed security for them to execute properly. But as a security best practice, you should leave it on enhanced security, unless you determine that you need to do something other. So I’m going to leave it on enhanced security and choose Next. Now you need to pick the target operating systems where you want this application to run. Since I’m profiling on Windows XP, I’m going to choose operating systems that are Windows XP or later. In this case, I’m going to choose Windows XP Professional and Server 2003. And I’m also going to choose Windows Vista. Off on the right here, you can set a required service pack level to allow the application to run. I’m not going to do that in this case, but I want to make you aware that you can set specific service pack requirements. In addition, you’ll notice that I did not choose any of the 64-bit edition versions of the operating system. This is because, by default, the location for the C: program files is altered on 64-bit systems, so you probably won’t have any luck installing applications to C: program files on both 32-bit and 64-bit platforms at the same time. You can also specify a target location at the bottom, or choose all languages. In this case, I’m doing English. I’m just going to leave the default checked and choose Next. Now you see a warning from the Streaming Profiler letting us know that we’ve chosen operating systems other than the one that we’re currently running. This is a…just a normal warning message that you should be aware that the targeted operating systems may not allow the application to run. In this case, we’re going to go ahead and give it a try, so I’ll just click OK. Now you receive an option to choose an install option. There’s two types of installs. There’s quick install and advanced install. For most applications that are a single setup EXE or MSI, quick install will work just fine. Advanced install is left for a couple different options. If you have an application routine that requires the execution of several setup install routines or MSIs, you’re going to want to choose advanced install. So if you had certain dependent components, like database drivers, or if the case may be, you’ll choose advanced install. Also, IE plug-ins, or if you have to do manual registry edits, those are great options to choose the advanced install. One final important thing you may want to consider advanced install for is that if you have an application that you just need to copy some files down and maybe make some registry edits, you could choose the advanced install option and then specify CMD.EXE as the installation routine. And then when the command prompt comes up, you can copy your files in and do your registry edits, and they’ll all get captured by the Profiling Wizard. But in this case, I’m running a single MSI, so I’m going to choose a quick install and choose Next. Now you have to specify the installation program or command line script and any command line parameters. An important thing that’s brought up here is that the profiler workstation boot drive is C:. Applications profiled in this profiler should be deployed to targeted systems on boot drive C:. You shouldn’t try to install software on the profiler on drive C:, and then attempt to target systems on drive D: or any other drive. In this case, we’re going to use the C: drive all around, so I’m going to browse to the desktop and choose my WinSCP MSI. And now I’m going to choose Next. And I have an option here to launch the installer. Down at the bottom, I want to bring up something that’s here, is a checkbox to perform a virtual restart. It says it simulates a system reboot. This is really just kind of an informational message that you can tell the system to watch for virtual restart. But in reality, if the system detects a virtual restart during installation, it’s going to go ahead and capture that and suppress the reboot. What’s important about the virtual reboots is that, if the system detects there’s a reboot required, because there’s certain post reboot actions that have to be taken, the profiler will detect that, and it will go ahead and process those post reboot tasks to ensure that the entire application installation routine is captured during this instance. In my case, I’m just going to launch the installer. Now the installer comes up. I’ve got the regular MSI Installation Wizard. I’m going to choose Next. Create the license agreement. And here you want to make sure that you are, in fact, installing to your C: drive, which I am. I’m going to choose next. And you get an option for what type of installation you want to perform. This is all dependent on what kind of installation engine that you’re using. But one important thing you may see is an option to perform a full or custom installation, or whatever the case may be. One thing you want to check for is to make sure that the application doesn’t have any install on first use components. A common technique in MSI technology is to allow a component to be installed when the user requests it the first time. You don’t want to do this is any kind of virtualization technology, because the user may not have rights to install the product. So in my case, I’m going to choose full installation and choose Next. Specify the program folder and choose Next. Something very important shows up in this dialogue. The WinSCP setup routine is asking me if I want to enable automatic checking for application updates, and it says it’s recommended. However, for any kind of managed software installation, you don’t want the application automatically checking for updates and trying to install them, because there’s a good chance the user’s going to be a limited rights user and won’t have the ability to install the software update anyway. So I’m going to de-select that option and change my shortcut to be installed for all users. And I’m going to choose Next. This is a user interface customization for WinSCP. I’m just going to choose the default. I’m given final confirmation that I confirm everything for installation routine. I’m going to give it a quick look and choose install. What’s happening now is the streaming profiler is looking at all the files that are written, all the registry entries and that kind of stuff, and capturing it up to the virtual environment. I’m given an option to launch WinSCP, which I’m going to not do right now, and just click Finish. And now I’m going to click Next to complete the profiler. The profiler now identifies what applications were installed in the system and tells me whether or not they have been run at this time. Since I didn’t launch the application at the end of the installation, it all says Application Not Run. It’s generally a best practice to make sure you execute all your applications in the virtual environment to make sure they function properly. So at this time, I’m going to run through each installation…each application that was installed, and just make sure they basically start up okay. So PuTTYgen is launched and appears to have executed. WinSCP has launched and appears to have executed okay. And this is actually a duplicate shortcut, but I’m going to go ahead and run it anyway. Okay. So now that all my application shortcuts have run, and I didn’t see any error messages, I’m pretty confident this application has been installed properly. So I’m going to choose Next. I receive a message now from the streaming profiler that specifies that there’s some invalid shortcuts. What happened here is that there are some shortcuts that were created by WinSCP that are referencing EXEs and DLLs that, while they are on the system at this time, they were not put there by the installation routine. So this is a warning from the profiler telling me these shortcuts may not work on a target system. If I wanted to get around this, I’d have to remove these DLLs and EXEs off the system before installing this application. Unfortunately, winhlp32 and shdoc viewer dll are not things that are easy to remove. But since I don’t need these shortcuts, I’m going to ignore this warning and continue. Now I see the initial list of applications that are going to be created as shortcuts for this application. Normally, you’ll keep all these shortcuts intact, but if you want to simplify your list, you might want to remove anything except for the core application executable. In my case, there’s actually a duplicate here, so I’m going to remove WinSCP and just leave WinSCP3 and the two other shortcuts there and choose Next. You now receive an option to sign this profile with a certificate. If you wanted to have enhanced security, you could sign all your profiles with digital certificates to ensure integrity when they’re running on the client. I’m not going to do that in this case. I’m just going to click Next. You’ll see a final confirmation that your profile is going to be built, so I’ll click Finish. Now that the profiler is built, I can go in here and look at and modify additional targets, specify additional applications, file types, or digital signatures. At this point in time, I’m just going to save my profile. So I’m going to choose File, Save, and I’ll keep the profile name WinSCP 3.81. I have to specify a UNC path where I’m going to store this. I’ve got a share created already called CitrixStreamingProfiles. So I’m going to go ahead and verify this path, and it’s going to create a new folder called WinSCP 3.81 and store the profile out there. Keep in mind, this needs to be a share that’s accessible to your client machines. Now that this profile is saved, we can continue on with the next step, which is to actually publish the streaming appli…streamed application. At this time, though, it’s important to note that while it’s not necessary to revert your virtual machine, in this case because all the changes were captured up into the virtual environment, some people still tend to do that just as a best practice. However, with Citrix streaming, it’s not necessary to revert your virtual machine. Now that we’ve successfully profiled the application, it’s time to publish it with the Management Console and actually perform the test of a local client stream. So I’m opening up an RDP console session to Presentation Server 4.5 server, and I’m gong to go through the process of publishing the application like I would any other Presentation Server app. I’ll move the soft screen so we can actually see it and choose Next. I have to name the application. I’m going to call it WinSCP, but I’m going to fill in that it’s a local stream to differentiate it from any other applications. I’m going to choose Next. Now I’m going to choose the option for streamed to client. In this case, I want to force the application to stream down to a desktop OS. Normally, though, you’d probably choose the option for streamed if possible, otherwise accessed from a server. This is what’s called dual mode streaming. With Program Neighborhood Agent and Web Client, you can have applications streamed, as long as the client satisfies the requirement of having the streaming client. Otherwise, you can have the application launch from Presentation Server with the ICA client. In this case I want to demonstrate streaming app within the client, so I’m going to choose that option and choose Next. I have to specify where the streaming profile is located. If you remember, we copied it up to a file share after we finished the profiling process. So I’m going to go back to that location and browse and choose the WinSCP profile. I have to specify what application I want to launch from within that profile. In this case, it’s the WinSCP3 program. I’m going to choose Next. You see an option now, that checkbox to enable offline access. If you’re using Program Neighborhood Agent, you can have the applications available for offline use, if the client can support that and if the application can support that. You also have an option to either pre-cache the application at login or pre-cache the application at launch time when it’s requested. The selection here really kind of depends on whether or not you think you’ve got adequate network and file share bandwidth, and whether or not you want the applications available immediately, in case someone should take their laptop offsite. In this case, we’re doing a local stream to client. We’re not going to enable offline access. We’ll be testing this with the regular web client. So I’m going to choose Next. Now I have to specify, like you would for any published application, who you want to have access to actually run the application. So I have a client…a user name called streamtest that I’m going to use for this purpose. So , once we add that user account and choose Next, you get the standard configuration option for how you want the shortcut to appear. I’m just going to choose Next, because your user will have web interface in this case. Finally, we’ll choose Finish to actually publish the application. Now that the application’s been published, let’s minimize our Presentation Server and switch over to our XP client. Now in this case, whereas I said before, we’re using Web Interface, so I’m going to log in as the streamtest user account. And I should mention, too, that this particular client has already had the Citrix streaming client deployed to it before we started this recording. So now I’m going to choose the WinSCP local stream, and the streaming client is going to kick off and attempt to run that application. Now you see down here, it’s preparing the application and starting the application. And this is the point in time where it’s actually streaming down the individual DLLs and EXEs into the system cache. Now, the WinSCP application has started up, and we can perform a test of this. So I’m going to type in a server, and I’m going to get a SCP connection into it. This is just an error…warning message from the WinSCP application. And here we go. WinSCP is started up, and it’s functioning. Now, I want to go ahead and close that application down, but I want to show something very important. If we bring up Windows Explorer on this client machine and go to C:, Program Files, where this application would have normally been installed, you’ll notice that there is no trace of the WinSCP folder. That’s because, in the case of the streamed and virtualization technology, it never actually installed it onto the physical C: drive of this system. It’s only stored in the virtualized environment. I’d also like to mention that, since the application was cached, you’ll notice if we launch this a second time, that the application starts up much quicker than previously. And the application’s launched. Now that we’ve gone through a local streamed application, it’s time to actually walk through publishing an application that would be streamed to a Presentation Server. So let’s switch over to our PS 4.5 console and choose our new published application. Move this offscreen a bit so you can actually see. And I’m going to choose Next. And we’re going to call this WinSCP, and we’ll call it CPS Stream, to indicate this is streamed to a Presentation Server. And choose Next. Now I have to choose the option that this is accessed from a server, instead of streamed to a client. Again, I’ll bring out that there is the capability for dual mode streaming, if you’ve configured Web Interface or Program Neighborhood Agent accordingly. In this case, I’m going to force it to be streamed from the server, so I’m going to choose accessed from server. And in the dropdown here for the server application type, I’m going to choose streamed to server. These other options here would be a physically installed application or an IM pushed package. In this case, though, I’m just going to choose streamed to server, because I want to actually demonstrate the application streaming technology. So I’m going to choose Next. Now, again, we have to enter in the streaming profile address. So I’m going to paste in my file share and choose my WinSCP 3.81 profile. And, again, I have to choose what application I want to publish, so I’m going to choose WinSCP. I also have the option to enter any optional command line parameters, which I’m not going to do at this time. Now I have to specify which Presentation Server I want to do this on. So I’m going to add my server named TIN and choose Next. And I also have to specify which user account I want to have access to. So, again, we’re going to choose our streamtest user account that we used previously. And OK. And click Next. And, again, you can customize the shortcut presentation, but I’m not going to do that, because we’re testing through Web Interface. And finally, we’re going to choose Finish. Now that both those applications appear, I’m going to go ahead and minimize my Presentation Server and switch over to my console connection on my XP desktop session. Now, we published the application, but this Web Interface session has not actually seen the shortcut. So I’m going to do a refresh. Now I’ll see the WinSCP CPS Stream. Now it’s important to note, as well, that I already pre-deployed the Presentation Server 10.1.5.0 client to this workstation, as well as the streaming client was installed in the Presentation Server when it was built. So all the clients are in place, and we’re going to launch the WinSCP CPS Stream. Now you’ll see the standard Citrix ICA client connection. And after I get successfully logged in, and the login scripts execute and all that kind of good stuff, you’ll actually see the streaming client execute, exactly like you would if this was a local streaming client execution. So, I’ll go to login scripts. Oops, we’re getting our file access. And now that the ICA session is started, we’ll see the preparing applications. Now this is actually where the streaming is beginning to the Presentation Server. So the streaming client dialogue is actually being remoted to the client from Presentation Server. And, as we expected, the WinSCP application started up. And just to show that this is actually on Presentation Server, you’ll see here’s the TIN server and WinSCP as a remote application. Now I’ll just confirm that this is working as it was before. So we’re going to get an SCP session into our server, just to make sure the application’s working properly. And we get the host cache message. And the application is started up. Now, I’m going to go ahead and exit out of the application here. And there’s one other thing that I’d like to demonstrate, which is…requires us to go back to our Presentation Server. And we’ll go in…I want to actually show where the applications get installed in the case of a streamed application. So under C:\Program Files in my Presentation Server, you’ll notice that there is no WinSCP folder. Again, because that was deployed entirely in the virtualization environment. But if you go to the Citrix folder, there’s a RadeCache folder. Inside of here, you see the gooey that represents the application that we profiled. And inside here, you see a variety of files that were captured. And you’ll see C:, Program Files, WinSCP. Now what I’m going to do, just for demonstration purposes, is go into here, and I’m going to delete the WinSCP executable. Now in the case of a normal installed application, by doing that, we would have just broken the application. But to demonstrate how streaming and virtualization works, I’m going to go ahead and launch that application again. CPS Stream. And we’ll let it start up, get our connection back into the server on our logon scripts. And shortly thereafter, you’ll see the streaming profile utility kick in. And it’s basically repairing the application right now, redelivering the WinSCP executable, and the application is launched. So, essentially, we were able to heal the application, if for some reason the application was damaged, files were deleted, or whatever the case may be. This applies to all the components of the virtualized application. These demos conclude the introduction to Citrix application streaming and virtualization. I hope you’ve enjoyed this video, and I wish you luck with your implementation.
anonymous - Great introduction to the subject and thanks for the reference to the CTX documents.<br>
tgeibel85 - This was outstanding! Well done! It was clear, concise, and provided a wealth of valuable information in a manageable time frame. Well done on the narration! Thank you so much for providing this!
anonymous - Wow what a great introduction....cheers
anonymous - Really useful, especially tip about VMWare machines potentially have issues creating streamed apps. Also found the links to Ctx documents handy.
anonymous - Excellent video. Loved it !<br>
anonymous - MOARRRRRRRR (seriously excellent presentation)<br>
licensehelpdesk - Really good video!! Would love more like this, proper info and walkthroughs!!
abdelli.s - Nice work, it was a pleasure for me<br>
anonymous - Very useful. All of doubts were cleared. Thanks a lot...... Syaam.
anonymous - Very nice Video, Help me alot
anonymous - Must watch...vivek
anonymous - <P>Very nice video to learn Streaming application. Thanks for your support !!!</P>
anonymous - This is a fine video... Hats off for presenter.. David, u rocks.<br><br>NVL<br><br>