Deep Dive into Presentation Server SpeedScreen Technologies
SpeedScreen technologies encompass several features found in Presentation Server that contribute to application responsiveness, user acceptance and productivity, and bandwidth optimization. This video takes an in-depth look SpeedScreen Browser Acceleration, Multimedia Acceleration and several others and just how they improve the user experience. (Running time: 46:07 minutes)
Tags: technical video
Views: 1,366
Rating: 0
Transcript : Hello. This is Brian Madden. This video is about understanding Citrix Presentation Server’s SpeedScreen technologies. It’s interesting, because SpeedScreen has been around for a long time in the world of Citrix Presentation Server. As a matter of fact, SpeedScreen Latency Reduction has been around since the days of MetaFrame 1.8. And a lot of people are maybe a little bit familiar with SpeedScreen Latency Reduction over the years. But as a matter of fact, the term SpeedScreen in the world of Presentation Server means a lot more than just latency reduction. As a matter of fact, in today’s world of Presentation Server Version 4, the term SpeedScreen is actually an umbrella term that’s used for five different technologies. Of course, first off, is that SpeedScreen Latency Reduction. And, as I said, that’s something that’s been around for years and a feature of Citrix that we’re going to take a look at more in this video. But it’s also important to know that, from Citrix’s standpoint, SpeedScreen also relates to SpeedScreen Browser Acceleration, which is technology that is used to make the experience of using Internet Explorer through ICA more pleasant. There’s SpeedScreen Multimedia Acceleration, which is used to accelerate videos such as Windows Media videos and QuickTime videos and things like that. There’s SpeedScreen’s Flash Acceleration, which can increase the performance of flash animations within remote ICA sessions. And then SpeedScreen Image Acceleration. We’ll look at the details of all of these five technologies, including samples of how they work and how you can configure them, within this video. The first SpeedScreen technology we’re going to look at is SpeedScreen Latency Reduction, or simply called, SLR. And, as I said, SLR is the sort of the original SpeedScreen technology. It’s been around for a very long time. It’s interesting, because what’s important here is this word latency. SpeedScreen Latency Reduction is for reducing the perception of latency from the perspective of the user. And to understand how SpeedScreen Latency Reduction works, we have to look at a typical environment. I’ll draw here a Citrix server, a Citrix Presentation Server, pardon me. I’ll draw an ICA client on this end. And the thing is, in most environments, I think everyone watching this video knows that when a user types on the keyboard here at the ICA client, those keystrokes are sent to the server. The server processes them and renders them and sends the cloaked pixels back down to the client. So that’s fine. But that means there’s a full roundtrip that takes place from the time the user pushes a key on their client until the time the letters appear on the screen of the client device. Now if we have a delay of maybe 30 milliseconds between our client and our server, that’s going to be okay. Because 30 milliseconds up and 30 milliseconds down is 60 milliseconds, which is something like, what, about a twentieth of a second? So the user is not really going to perceive that there’s much of a delay between the time that they’re typing and the time that the characters appear on the screen. But what if we’re using a slower connection that has, maybe, a 300 milliseconds delay? You can imagine, that means that when a user presses a key on the client, then that keystroke is sent to the server, we’ve already taken almost a third of a second. Now the server needs a few milliseconds to actually process that keystroke and make the pixels turn colors inside the screen buffer. And then that new screen data has to be sent back down to the client, which is going to take another 300 milliseconds. So by the time we’re done, we’re talking almost two-thirds of a second delay from the time the user pushes a key on their keyboard until the characters actually appear on their screen. And from the user standpoint, that would be very, very annoying. In addition to the delay in typing, this latency can also cause users to sort of accidentally double click on things. So maybe they click a button in an application, and nothing happens. Because, of course, it takes a full, in this case, two-thirds of a second for the button click to be registered by the server and for the screen to react in the client device. So they click a button, they’re impatient, and they click a button again. And they don’t realize they have activated the button twice, when in fact it’s just waiting for the server and the network to catch up to them. So SpeedScreen Latency Reduction does two things for us. The first thing that SLR does, is it does something called Local Text Echo. And Local Text Echo simply means that when a user clicks a key on their keyboard, the local ICA client software renders the characters immediately. So what that means is, for example, if you’re using Microsoft Word, and you type the letter b, and the letter b is Arial font, 8 point in size, everyone knows what an 8 point Arial letter b looks like. So when you push letter b, rather than sending that keystroke to the server and waiting for the server to send the new pixels down to the client, the client can actually be smart enough to say, “Hey, I know that this is Arial font. I know this is 8 points tall. And I know it’s a letter b. I can go ahead and draw this right now, right here for the user.” Now, of course, when the user pushes that b key, the b key command is still sent to the server. And the server is still rendering and processing it in the background. But in the meantime, the characters can be rendered locally on the client device. What that means is, it makes the connection feel like it has less latency to the user, because the characters are rendered quicker when they type the keys. So that’s the first component of SpeedScreen Latency Reduction. The second major component is called Mouse Click Feedback. And Mouse Click Feedback is very simple. Everyone knows that the mouse cursor looks like an arrow. So we have our arrow sort of mouse cursor. When the users are clicking something, whenever they click the mouse anywhere in the Citrix Presentation Server screen, it draws the little hourglass next to the mouse. So what happens is, they click the mouse. The instant they click the mouse, an hourglass appears on the screen. Now, this has nothing to do with the server at all. This is all client-side intelligence that just says, “Hey, we got your click. Please have some patience and wait for something to happen.” The idea is that maybe, if the user sees the hourglass, they’re not going to double click or triple click. And then, in fact, the server can have time to do what it needs to do. Now this is all well and good. But I think in order to really appreciate SpeedScreen Latency Reduction, we have to actually look at it. In order to take a look at this, let’s connect to a server. Now, the problem is this. Of course, as I’m recording this video, I’m in a lab environment. And as you know, one of the problems with lab environments, is labs are very, very fast in terms the networks are fast, the servers are fast, everything is fast. In fact, a lot of people use Citrix Presentation Server in their labs, and it works great. And then they get out and deploy it in the real world, and they find out, oh wow, I’ve got limited bandwidth, and I have high latency, and all these kind of problems. So, if I want to show you how SpeedScreen Latency Reduction works, I can’t do that very well in the lab environment, because the lab is going to be perfectly high speed. What I need to do is simulate a bad network. And so to do this, I’m connected to one of my servers here. And there’s actually some great utilities. I’m going to show you this web site. There’s a guy out there, his name is Tim Mangan. And he runs a web site. It’s called tmurgent.com. So tmurgent, so there it is, .com. And on Tim’s web site, he this thing called the ToolCrib. And so if you look over here, here it is, ToolCrib: Bad Applications for the Test Lab. And what this ToolCrib is, it’s a zip file of all these little utilities that he wrote that simulate different bad things that applications do. Well, you can go ahead and download this ToolCrib right here. By the way, this ToolCrib is completely free to use for integrators and enterprises and consultants, and things like that. If you are in the business of writing and selling software, then you need to talk to Tim about licensing it. But otherwise, for the purposes of just testing it, and using lab testing, then it’s completely free. So anyway, so we download the zip file. I’ve actually downloaded and unzipped the file here. And there’s this little utility here called TMnetsim. So I’m just going to double click TMnetsim and run this. Now right now, I’m connected via RDP to the console of my Citrix Presentation Server 4 server. And so what happens with TMnetsim is, the way this thing works, is what it does it listens on a certain TCP port. And it receives all traffic on that port. It injects bad network latency or drops packets or things like that, and then forwards it on to the proper port. So as we all know, the default port that the ICA protocol uses is port 1494. So what I’m going to do is, I’m going to configure this TMnetsim to listen on port 1493. It’s going to see traffic on 1493, forward it, in this case locally, because I’m actually running the software on the server. So it just forwards it to itself on port 1494. So what this means is that the ICA protocol in this particular server is still listening on 1494, just like regular. But I also have this utility running on 1493 to forward traffic over to 1494. And I’m going to use this utility and inject some latency. I’m going to put 500 milliseconds of latency for my inbound traffic, and then another 500 milliseconds of latency for my outbound traffic. Now I can also do things like add loss to this, and add jitter, and do, you know, change orders, and all that kind of stuff. In this particular case, I’m not going to actually do that. I’m just going to add the latency in here. Okay, I’ve gone ahead and started it here. The buttons are actually off the screen, because I’m using the small size screen for this recording of this video. And so the buttons don’t all quite fit. But just trust me that there’s a Start button off the edge of the screen over here. And we see this little blue pipe is now wagging around, showing that it’s listening for incoming connections. And as you see, port 1493 connections coming in have a delay of 500 milliseconds going in and 500 milliseconds going out. So I’m going to go ahead and minimize this. And now I’m going to fire up my local ICA client software. And so with that, I will go to my Start Menu and fire up Program Neighborhood. And, let’s see, I’ve got a custom…a few custom connections that I’ve built here. So first of all, you can see I’ve built a whole bunch of custom connections. I’m going to go ahead and change my view to look at the details view so I can kind of see what I have here. Well that server I was just on was the .72 IP address. And you see here, I have a few different ports I’m connecting to. Because, remember, if we connect on port 1494, that’s the regular connection. But if we connect on port 1493, that’s going through Tim’s TMnetsim utility and going to be adding that 1000 milliseconds delay. So what I’m going to go ahead and do here is, I’m going to double click this and make a connection to the server I just added the delay on, via port 1493. So I’m now going to connect to that server with 1000 milliseconds of delay. Okay, so now I’m sitting on the desktop of that server. And I’m going to go ahead to my Start Menu, and let’s just run something like WordPad. Okay, and I’ll go ahead and maximize this. Now what’s interesting, is you see here, up in this title screen, SpeedScreen has turned itself on. Because SpeedScreen noticed that my connection was very slow, and it decided that it wanted to be turned on and help me use it. I’m going to go ahead and turn off SpeedScreen. And I’ll show you how to do that in a second. So I just turned that off, and now you see that my SpeedScreen On has just disappeared. And so, if I type in here... Now first of all, what’s interesting is this, is if I click the file menu, when I click I’ve got a delay. So I’m going to tell you right now, okay, I’m clicking click. And there’s a delay. So we know, of course, there’s going to be a delay with everything, because there’s 1000 milliseconds of delay in my connection. Now in order to…if I move my mouse over here. If I just click in a blank spot, or click. You see that hourglass that appeared? That’s because the SpeedScreen Latency Reduction Mouse Click Feedback has been enabled, and that’s what is putting that little hourglass on the screen so the users hopefully don’t click, click, click. But what’s more important, though, is if I go down on some…the body of my thing. There’s my typing in there. Look how slow that is, okay? There we go. Very slow. Because of course, again, I’ve got 1000 milliseconds delay. So, this is not fun. And obviously, if you were a user using this, this would be very, very annoying. Now, what’s interesting here, you saw earlier that I was able to turn off SpeedScreen and turn on SpeedScreen. This is actually a hotkey setting. So, what setting is that? Well I’m going to my Program Neighborhood and go to Tools, ICA Settings, and I’ll go here to hotkeys. And you see Toggle Latency Reduction, because again, we are talking about SpeedScreen Latency Reduction. It’s control F5. So I’m going to click OK there. So I’ll go back to my remote session. And let’s see, I’ll push…now so, notice SpeedScreen is still not on. And so, I’ll say, Hello, and, sorry, look how slow that is. And I’ll type. And you see it’s very, very slow, very annoying. I’m going to push Control F5. And now we see here that, up in the title bar, it now is showing SpeedScreen as being on. If I click back in here, let’s push enter. And look at how fast I went down there. If I type my name now, it is absolutely full speed. I can even move my mouse around. I can click in there. I can push enter and break up words. I can do all sorts of things, and I’ll have here absolutely full-speed typing. I’m going to go ahead to Control F5. Turn SpeedScreen back off. And now watch the delay we have. And then, again, Control F5. Turn SpeedScreen back on. There it is. And you can see now, it’s absolutely instantaneous. And so, again, what is happening here is that the SpeedScreen software running on the Presentation Server is noticing, “Okay, well, I’m using the Arial font. I’m using a font size of 10 points. And since my client device has Arial installed, and my server has Arial installed, they both know how to render these Arial fonts.” As I said earlier, it makes it very easy for the client device to render the fonts locally. So, when SpeedScreen is turned on and I’m typing, as I said earlier, it’s the client device that is actually rendering those fonts locally. Now, of course, as I said earlier, it’s still true that, in the background, yes, those commands, those keystrokes, are still going to the server. The server is still rendering things. So, for example, if there was some kind of crazy application where I push the letter b, as in Brian, and instead it made the letter p, as in potato. Then, yeah, I’m going to type in b, and the b is going to appear on the screen for a few seconds until the server changes it, and then it’s changed back down. But in general, as I’m using these kinds of things, this is what SpeedScreen does for me. Now there’s a couple things I want to mention about SpeedScreen, and that is, if I go into my connection, you saw earlier how SpeedScreen was kind of going on and off kind of automatically. If I right click on this connection and look at the properties here, you’ll see that with my options for SpeedScreen, I can set it to Auto, to On, or to Off. Well you see this connection here was set to Auto. And so by setting that to auto means it’s going to try to detect the latency automatically. And if the latency falls below a certain threshold, like if it gets too slow, then it’s going to turn SpeedScreen on. And then if it gets really fast, it’s going to turn it off. I can also use these settings here to force SpeedScreen to be on or to force SpeedScreen to be off. And, by the way, if I’m using it for auto, or if I’m forcing it to be on, I can say which aspects of SpeedScreen Latency Reduction do I care about. Do I care about just turning on the Mouse Click Feedback, or just Local Text Echo, or do I want to change both? So, anyway, what you see here with SpeedScreen is that SpeedScreen is a client-side setting. Now what’s interesting, I’m going to jump back on my server here. And if I look at my server, and I’m going to go into the Citrix Administrative Tools. So go to Programs, Citrix, Administration Tools. You’ll see here I have SpeedScreen Latency Reduction Manager. And again, now remember, that SpeedScreen Latency Reduction, this latency reduction thing, we’re only talking about one out of these five components of SpeedScreen. So all this so far is just talking about latency reduction. But I can actually run the SpeedScreen Latency Reduction Manager, and I can look at my server properties. And here’s where I can say what the default properties are for the server. So by default is the server going to use latency reduction? We have Local Text Echo. Is it going to use Mouse Click Feedback? So I can actually change these settings on a server by server basis. Now, you may be wondering why I changed these settings inside this separate utility, the SpeedScreen Latency Reduction Manager, instead of changing the settings inside the Citrix Management Console. And the reason for that, quite simply, is because these settings are saved in the registry of the file system locally on each server. They are not saved in the data store. So I do not save these settings via the Presentation Server Java Console. But anyway, so here’s my default settings. What’s interesting here, though, is I can actually configure exceptions for my applications. So maybe I only want to use SpeedScreen for a certain application. Or maybe I want to use it for all applications, except I’ve got one application that’s kind of weird. So what I can do is, I can actually build exceptions, and I can click the button…I’ll click New here, and I’ll specify a new application I want to make a SpeedScreen profile for. And maybe I’ll go into, maybe I will use WordPad. So I’ll go here into Program Files, Windows NT, there’s WordPad. And now it’s asking what I want the options for it. Do I want to enable or disable Local Text Echo for that application? By the way, this Apply settings to all instances of the selected application, that means it’s going to be all Wordpad.exe, regardless of where they are. If I say only set it to this installation, then it’s going to be the full path to WordPad. But anyway, so I can go here, and I’ve got WordPad now configured as an application here. Now, what is interesting is, I can actually right click on that and go into Application Properties. I’m not going to go into the details here. You can actually read the Citrix Administrator’s Guide and the Advanced Concepts Guide from citrix.com to have more details about what this kind of stuff does. But you can actually get very granular and configure different input fields and different things for the application. So maybe you have an application where you only want to use SpeedScreen Latency Reduction on one text field, but you don’t want to use it on other fields, and things like that. If that’s the case, then you can be very granular on how you configure these applications. Now what’s interesting here is, when you configure an application, as I said, the configuration information for this is actually saved in the file system. So if I go back onto the server, and I’m just going to kind of explore here. And I’m actually going to look in a Windows folder. And under Windows, I’ll go to system32. And under system32, there’s a folder here that is called ss3config. Ss3, I don’t know where that comes from. I think it’s because of SpeedScreen 3 back in the old days, when they had this one before. But you see, remember I’ve configured my custom application in here called WordPad? So now this WordPad folder exists, and then I have this WordPad.ss3 file. That file is not human readable. It just contains the settings and the customizations I’ve made for WordPad. So if I have a multi-server load balanced environment, and I’m actually using WordPad on multiple servers, then I can actually just grab the contents of this ss3config folder, and copy that from server to server. And all of the customizations I have made for WordPad, in terms of SpeedScreen Latency Reduction Manager, would then apply to all the servers. So that’s about all there is to SpeedScreen Latency Reduction Manager. The important thing is this, is that number one, you know, it’s a client-side setting as to whether it’s turned on or off. So, yeah, you can set it on the server, but it still has to be enabled or disabled on the client. And as we saw here within the custom ICA settings, I can actually specify whether SpeedScreen Latency Reduction is automatic or on or off, and which aspects of SpeedScreen Latency Reduction I want to use. The thing is, though, of course, in today’s world, most people are not connecting with the full Program Neighborhood Client. Most people are using the PN agent or web interface. And it is still possible to use SpeedScreen Latency Reduction via web interface and via Program Neighborhood agent. And the way you do that is that you can also configure the SpeedScreen Latency Reduction properties via ICA files. So, just like I have three boxes here, my auto, on, or off, and then whether I want to enable for Mouse Click Feedback or enable for Local Text Echo, I have those same three options that are configurable via ICA files. So, as you know, when you are using web interface, or when you are using Program Neighborhood agent, you actually have template ICA files on your web servers that are used and built dynamically and sent down to your users. If you want to use or not use SpeedScreen Latency Reduction via web interface or via Program Neighborhood Agent, you can actually edit those template ICA files and configure your SpeedScreen Latency Reduction options there. And that’s how you can deploy these options to users, regardless of how they’re connecting. So, as I said, even though it’s been around for a long time, I really do think that SpeedScreen Latency Reduction is one of the most valuable features of Citrix Presentation Server. It’s very easy to use. It’s very effective, as you’ve seen. And it’s pretty cool stuff. However, that being said, keep in mind that SpeedScreen Latency Reduction, that’s only one part of the five different aspects of SpeedScreen technology. So the next technology we’re going to take a look at is SpeedScreen Browser Acceleration. So what is SpeedScreen Browser Acceleration? Well, quite simply, it is for the scenario where you have users who are browsing the web via ICA, via your Presentation Servers. And so if they’re using Internet Explorer, maybe it’s a published application or something like that, you know that sometimes the performance isn’t that great. Because the try to click the back button or the stop button, but the page is loading. And they try and scroll around, and it’s all messed up, and the pictures are slow to load, and things like that. So, basically, SpeedScreen Browser Acceleration is just a set of technologies that affect Internet Explorer and how it works through the ICA protocol. Now SpeedScreen Browser Acceleration is configured a little bit differently than the SpeedScreen Latency Reduction. I’m going to go ahead and show you that right now. SpeedScreen Browser Acceleration is--let me jump on my server here--is actually configured via the Presentation Server console. And it’s actually configured as a property of a server itself. And so I’m going to go ahead and right click on here and look at Properties. And then you’ll see here SpeedScreen Browser Acceleration. Now, I should point out here that you can click on your farm and set the browser acceleration level at the farm property. Or you can go to an individual server, and set that configuration at an individual sever to override the farm property. So, in this particular case, I have it turned off. You see I’ve got two servers here, server 2 and server 3. And the idea with this is, I’ve got these two servers. I have turned off all the SpeedScreen settings on server 2, and I’ve turned them on, on server 3. So as we go through this video, we can kind of do comparisons back and forth and see the differences here. But with SpeedScreen Browser Acceleration, you see if I enable, it does a few things, like, A), I can compress JPEG images. And the i…thought process behind this is , you know, JPEG files are compressed already anyway. And so, they’re compressed when they come from the web site. But then the browser renders them in an uncompressed way. And then they’re sent sort of uncompressed down to the client. So what this does is, it looks at JPEG images within web pages, and it uses a lossy JPEG-based compression to compress them and send them down to the client. So, maybe you lose a tiny bit of quality on a JPEG, but the idea is it takes up a lot of less stuff. This whole determine when to compress thing, means it’s going to happen automatically. So if you uncheck that, it’s going to compress JPEG images always. And you can say how high you want the compression. And of course, the higher the compression, the less bandwidth it takes, the faster it loads, but also the worse quality you get. But if you do Determine when to compress, if you check that, it’s going to go ahead and figure out on its own when it’s doing it. Now notice, you can enable SpeedScreen Browser Acceleration, but not actually compress the JPEGS. Because, as I said, SpeedScreen Browser Acceleration, it also does a few other things. I mean, it’ll disable web page animations, like when animated gifs, and things like that. It’ll change the way, as I said, the Back button and the Stop button work on the web pages to make them so that they function even when a page is loading. Really, the key takeaway for the Browser Acceleration is that it only works with Internet Explorer. And if you’re going to use Browser Acceleration, you should probably take a peek in the Advanced Concepts or the Admin Guide also. Because there are some caveats, like it doesn’t work for transparent gifs. It doesn’t work for inline image resizing, which his when an image comes down from the web server as one size, but then the web page itself specifies it in a different size, and Internet Explorer has to resize it on the fly. There’s a few little kind of gotchas like that, where it kind of doesn’t work. But, in general, it’s a good technology, and a technology that works well. And people are wanting to browse the web through their Presentation Servers. And we’ll go ahead and look at a demo of that in just a bit. But there’s actually a couple other things I want to talk about here first, and then we’ll go ahead and look at some demos. One of the other pieces of technology that I want to look at as far as the SpeedScreen is concerned, and we’ll do this out of order here, is SpeedScreen Flash Acceleration. And so what SpeedScreen Flash Acceleration does is a couple of things, is, number one, it forces flash animations to play in low quality, because by default, the Adobe Flash Player plays animations in the highest quality possible. Which is going to, of course, consume the most bandwidth. Now we’re talking about flash animations that are happening and being rendered on the server, and then sent through ICA down to the client device. And so lower quality flash animation is going to consume less bandwidth, and therefore should be a smoother experience for the user. So the Flash Acceleration does two things. Number one, it allows you as an administrator to just flat out disable flash. So if you don’t want any flash, anything to show up at all in the client, you can do that. But what also it does, though, is it forces the flash animations to be rendered as low quality, again saving that bandwidth. So I want to go ahead and take a look at this. The SpeedScreen Flash Acceleration is configured just like SpeedScreen Browser Acceleration. So I can set at the server level or the farm level. I can specify do I even want to allow flash via my ICA files. If that’s the case, if I want to allow flash, do I want to use this to reduce the quality of flash animations. And if I choose to optimize flash animations for restricted bandwidth connections, then that’s going to force the flash animations to be rendered in the lowest quality. So now, but you see here on this particular server--I’m on server 2 right now--I’m not optimizing my flash animations at all. I’m enabling flash, but I’m not optimizing them. And if I go here onto server 3, and look at my properties there, and look at my flash acceleration, you’ll see, let’s see, let’s optimize flash animations for restricted bandwidth connections. So I’ll make that setting there. Click OK. So now I’ve got server 3 is configured for the low quality flash, and server 2 is configured for the regular quality flash. So now I can jump back and make some side-by-side connections here. So let’s see. So here is the connection I have currently to the first server. Now this first server I have is with my high latency connection. So, I think I’m actually going to just close this session, just disconnect from that. And probably reconnect with no latency, because I just want to move on past that. So I’m going to connect to this one at full speed. And I’m going to connect to the second server at full speed. Okay, so now I’ve got my two connections here, and I’ll just minimize WordPad. Actually, I’ll just close that, since we don’t need that anymore. And let’s look for some flash animations now. So fire up Internet Explorer in each of these sessions. And, by the way, remember now my browser acceleration is enabled. So, now what’s interesting here is this, is first of all, it’s hard to really say if there’s any difference between the browser acceleration. Because, remember, the first one has browser acceleration disabled, and the second one has browser acceleration enabled. Well if you look here. Now I’m looking at the screen, and I can see that the quality, if I’m looking in this section of the pictures, I have some of those kind of pixilation because using a very high compression algorithm, I’m noticing that here. I’m noticing that in here. I’m noticing that around here. The problem, though, is of course, you are watching this in video format. And the video is going to be done with compression anyway, so I’m not sure how well that’s going to show up in the video. But I can definitely see that the images here in the screen are sort of a lower resolution, if you will, on my second server, as opposed to how they look on the first server. So anyway, let’s find some flash animations. And the best place to get those is from shockwave.com. So I will go in here. Shockwave.com. And I will go in here on the second server. Shockwave.com. And so again, what I notice here is that I’m looking at this Shockwave flash animation here, and I’m seeing it’s the very sort of low quality, it’s very, sort of looks like a very highly compressed video. Whereas the one on the primary server, well let’s see, it’s a different...it’s a different screen here, there’s the same animation. This one has much higher quality. Now, as I said, I can’t actually sh…I don’t actually know if that’s going to show up properly through this video. So I guess you’ll just have to kind of have to take my word for it, that the animations here on the second one are lower quality than the first one. Now, one of the things that’s kind of interesting here, though, is, you know, we still have this full speed. Because, remember, I’m not using Tim’s TMnetsim right now to connect. I’m just connecting full speed. So I’m connecting on port 1494. And so a lot of people sort of wonder, okay, well, you know…so, okay, well, it’s a lab environment and I’m basically going to have unlimited bandwidth, so this is not a very good demo. Like, yeah, it’s a demo to show that it’s a lower quality when I have the SpeedScreen technologies enabled, but it doesn’t actually show what it can actually do for me. So, which I think is a good point. So let’s go ahead and restrict some bandwidth and see what we can do there. So I’m going to jump back on my server. And I’ll first start in server 72. And one of the things also, I showed you how you can go to TMurgent Technologies and download the ToolCrib with that netsim tool. But remember this netsim tool only allows us to simulate delay and loss and jitter and packets out of order, and things like that. I cannot actually restrict the bandwidth with that. However, I can go to citrix.com/cdn, which is the Citrix Developer Network. I can log in there. Now it’s probably going to be my login saved from my cookie from before. But you can create a login here. It’s completely free. And when you go here, go to Download SDKs. And then get the Citrix Presentation Server SDK. Get version 4, since that’s the most recent version of SDK. Download that here. And I’ve done this earlier. And so if I go back to my desktop here, I downloaded the SDK, and I installed it here…is here. I went ahead and installed that. And there’s a sample application with the SDK, called the SMC Console. So I go to Start and then Programs. Citrix. MPSSDK, which I just installed. Samples. The Visual C samples. Then I have this little utility here called the SMC Console. The SMC Console stands for Session Monitoring and Control Console. Again, you can see it’s not really optimized for the small screen resolution I have here, but that’s okay. And if I click the dropdown box, I will see the ICA connections I have, which is just one there. And so now I can actually see my ICA connection. So I can see, here’s my current ICA connection, and I see I’m using about, you know, this many K per second. And that’s what’s kind of going on. So anyway, what I can do here if I go to Session Channels, I can see all the virtual channels that are in use for this particular session. And then I can look right now and set for unrestricted bandwidth. I go ahead and crank this up to, like, let’s say 20. So now I’m limiting the session to 20K per second. So this is on server 1. So if I go back here. Now if I look at this session right here. This session is limited to 20K per second. And, in fact, if I click on the buttons, you’ll notice I’ve got more delay, maybe (inaudible) I’ll click now. So I actually have more delay in my sessions because I’ve got that bandwidth that is limited. And I’m going to do the same thing on server number 2. So go in here, and I’ll fire up the SMC Console. And I’ll choose…there’s my session. By the way, this console, it seems to me like it only enumerates sessions when it starts up. So if you launch new sessions, you’ve got to shut it down and then start it up again. I’ll go to session channels. And, okay, now also you see using just restricted to 20K per second. So now in both of these cases, I have my connections back to my server limited to 20K. And as I said, if I click, maybe if I move over…you can kind of see as I’m moving around, it’s definitely more kind of limited in the way that I am moving through this. But because I have the, in this case the browser acceleration and as well as the flash acceleration enabled, both these SpeedScreen technologies, I can actually get some decent experience here. So, you know, click through some online games, and I can see that my animations are loading. And when the flash actually comes up, it doesn’t look too bad. I don’t know if you can really tell here, but the screen to the right, this one here, is the one where I have the browser acceleration and flash stuff enabled. And so it’s a tough connection, because it’s so slow, but it is generally sort of more responsive over here. Maybe I could also go back in here to the servers and up this to give it 40K per second. So that was server 2 I just gave 40K per second. And go to server 1 and just give that one 40K per second. So maybe that’s a little bit more realistic as far as the bandwidth. I just kind of doubled that bandwidth there. But let’s go ahead and play some games, huh? Yeah, this one here is really slow. As you…as I said, I don’t have any browser acceleration or the flash acceleration enabled. So this one’s almost unusable, even though it’s the same bandwidth as the other one. As a matter of fact, I think I’m just going to go ahead and stay on the other one and play my games when I have the flash acceleration enabled. Because that, for me, is a much more pleasant experience than trying to make it work without it enabled. And so on and so forth. So I’ll go ahead and kind of move on from there. But anyway, that was the SpeedScreen’s Flash Acceleration. So, so far we’ve looked at SpeedScreen Latency Reduction. We have looked at SpeedScreen Flash Acceleration. And we’ve looked at SpeedScreen Browser Acceleration. The next one I want to take a look at is SpeedScreen Multimedia Acceleration. And SpeedScreen Multimedia Acceleration is…this is really interesting. What this does. First of all, SpeedScreen Multimedia Acceleration, is for file types such as, let’s say, like QuickTime movies, Windows Media audio, MP3s, Windows Media videos, you know, anything kind of media player. The idea is, I don’t know if you’ve ever had a situation where you’re trying to watch a piece of media content through a Citrix session. And it’s really not that efficient. And the reason it’s not that efficient is, because if you think about it, if I have my Citrix Presentation Server... Well the way it works, let’s say I’m watching something with Media Player. So I’ve got, you know, the WindowsMediaPlayer.exe is sitting on my Presentation Server. So what happens is I have, let’s say it’s like a Windows Media video that’s being played. That Windows Media video is being played, it’s downloaded. What’s happening is the local media player is executing that video, is rendering and processing that video. So the video’s being shown on my Citrix Presentation Server. But of course I’ve got an ICA client, and I’m connecting via the ICA protocol. So what’s happening is the Citrix Presentation Server is rendering that video, and then the ICA protocol driver is taking that video, scraping it down, converting it to ICA, and sending it via ICA to the client device, where the client device is displaying as ICA. Well, as we know, the ICA protocol is great for Windows applications and for…it’s very efficient for that, because that’s what it is designed for. But the ICA protocol was never designed to be a protocol used for streaming media files. Why should it be, because we already have these great codex and protocols like, you know, movie codex and Windows Media, and all these kinds of things. So the way that the SpeedScreen Multimedia Acceleration works is this, is that when your ICA client software makes a connection to Presentation Server, they actually look at what in the media players installed on here via the Windows Direct Show technology. They look at all the codex that are installed on there. If the codex that you have on the client matches the codex you have on the server, and you have the SpeedScreen Multimedia Acceleration enabled, what happens is, when the server receives media files, instead of actually trying to process and render those media files on the server, the server just sends the media files via a special virtual channel down to the client, where the client is able to render them with their local media player. So this does a lot of really cool things. Number one, it makes it much better in terms of efficiency. I mean, these movies and audio that might be choppy and low quality before, you’re not going to experience that. The second thing that’s good about this is it’s much less processor-intensive on the server, because the server doesn’t actually have to render and stream the videos and try to process the videos. In fact, the server can just take the raw video content and send it right down to the client device. So you get better performance over lower bandwidth, and you get much better server CPU utilization. And again, so the best way to actually experience this is to kind of see it firsthand. So let’s jump out here to our to our presentation and go back to our couple of sessions we have open. So, by the way, the way you configure this multimedia acceleration is the same place where you configure the other stuff. So, if I go on my server here and go back into my management farm. Then you’ll see here that if I right click on my server and go to Properties, you’ll see SpeedScreen Multimedia Acceleration. And notice, remember on server, the first server, I’m not using multimedia acceleration. I’m not using any SpeedScreen technologies. So you see that here, using it, it’s actually disabled. Whereas you see, if you look at my second server here, and then I look at multimedia acceleration, I actually have it enabled. Now if you go into the…if you go into the Advanced Concepts Guide, which is available from Citrix, then you can see much more detail about how you can configure this via the registry, and specifically look at which media types it works with and everything. But in default, in general…in general it works with all sorts of stuff, divix, and xvid, and Windows Media, and all this kind of stuff. So we’ll go ahead and minimize this and fire up my…open up my two sessions here. So I’ll just get that web site kind of out of the way. And I actually put a document here… Now we’re still connecting over only 40K per second, and I, you know, I could give this more bandwidth, but I guess this is probably okay. So I put something in here in a videos folder. I put this Citrix policies video, which is another video that I recorded for Citrix and you can download from citrix.com. So I’m just going to go ahead and double click this. Now this is the first server. So this is the server with no multimedia acceleration enabled at all. So this is sort of the old way, if you will, of doing things. And can you hear that? Can you hear me talking? It’s not very good. And when it does come in, you know, it’s very choppy. The video has not appeared at all. There’s the video, finally. Okay, and I’m going to go ahead and pause that. I don’t know if you can actually hear that also. But even when I was talking, the quality was not very good quality. And the reason the quality was not very good was because it was using the ICA sound quality settings, and I have these sessions configured for medium quality audio. So, you know, when you configure medium quality audio, it kind of sounds like an old time scratchy record, as opposed to sounding like good quality stuff. So that’s this thing right now with no SpeedScreen Multimedia Acceleration enabled. I’m going to go on to my other session on the second server. Now I’m going to do the exact same thing. So I’ll minimize this and get it out of the way. And I’m going to go here to Explorer. While I’m going to Explorer, it’s kind of unfortunate. See that it says here, SpeedScreen On. That SpeedScreen On, those words, that only applies to the latency reduction. Because, remember, in the world of Citrix, SpeedScreen only used to mean latency reduction. Only more recently does it also mean multimedia acceleration and browser acceleration and flash acceleration, and all this other kind of stuff. But anyway, I’m just going to double click on this. And let’s see what happens. Now, remember, I’ve got a 5 second buffer configured. So we’re going to have a 5 second delay that’s configured in here. But once I start up, so there’s the video. The video shows up much faster, you see, than it did before. And one thing that’s cool about this is that, even though there’s some rendering going on, on the client, it’s still integrated in with the server. So it’s not like the client media player has to fire up or anything like that. I can move it around, it’s still there on the server. If I maximize the video stream within the server, it still stays within my window, and everything like that. So, it’s not like it’s firing up. This is not content redirection, where it’s using the local media player. It’s still kind of using the ICA client within the ICA window itself. It’s just that it’s making it a little bit smoother, because it’s sending the raw content down to the client, instead of actually trying to render it and send it down via ICA. So that is SpeedScreen Multimedia Acceleration. The very final SpeedScreen technology I want to look at, and let’s go back to the PowerPoint here, SpeedScreen Image Acceleration. SpeedScreen Image Acceleration, it’s interesting here because it uses a lossy compression for image elements in certain applications. So, again, a lossy compression, this is kind of like the JPEG compression, where it can compress things down very small. They’re not going to look quite right. They might look a little bit kind of pixilated or a little bit, you know, compressy, when they’re rendered on the client again. But what it does, it really reduces the bandwidth requirements. And so what’s cool about this is, actually if I go back out of here…if I look at this…again, I don’t know if this is going to show up in the video. But one thing that’s interesting is, for example, I have this…the SpeedScreen Image Acceleration enabled for server 2. So even here within my media player frame right here, these little buttons where I’m moving the mouse over, are kind of pixilated and sort of lower resolution. Now, again, I don’t know if you’re going to see that vs. on the first one, where I do not have it enabled, then these buttons are, sort of their full resolution and full crispiness. Same thing happens with my Start menu. So if I take this application and make it…again, if I click the Start button, my Start button pops up, and I’m going to see that the little icons on the start menu are sort of pixilated. So these are the icons along the edge here, kind of where the mouse arrow is. And so the idea, though, is that’s going to consume less bandwidth and should be faster performance for our users. Now, again, we configure this SpeedScreen Image Acceleration in very similar ways. But what’s interesting is we don’t configure that via these properties of the individual server. We actually configure this via Citrix policies. And I have absolutely no idea why Citrix decided to put Image Acceleration in policies, and put flash and multimedia and browser and these other things on server settings. I would imagine, at some point, they’ll put them all together. But what I’ve done here, if I was to look at the properties of the policy and look at my bandwidth setting. Then I have SpeedScreen. There’s the SpeedScreen Image Acceleration. And so I can enable SpeedScreen Image Acceleration. And when I enable, I can say how high or how low I want the compression to be. And, obviously again, the highest compression is going to have the lowest image quality, but the best performance and the least amount of bandwidth. So, again, it’s all sort of a trademark, or tradeoff. You can also then restrict compression to only under certain connections. So, basically, it will detect a connection speed and, if you do not have a certain amount of bandwidth, it will automatically enable that. And what’s cool here is, because this is configured via policy, you know how you can apply these policies based on certain inside of the firewall or outside of the firewall, or certain clients, and things like that. So maybe when users are connecting from home, then they use this image compression, but they don’t use it for others, and all sorts of fun things. So this is really kind of cool technology, too. And again, just one of the nice little things you can do within Presentation Server to really make it as efficient at possible over these lower bandwidth connections. So, all that being said, that’s about it, I wanted to say for these different technologies. As I said, all these technologies are outlined in the Administrator’s Guide, and they’re covered in a little…some of them are covered in a little bit more detail in the Advanced Concepts Guide. But the key here, is the term SpeedScreen. While it used to mean just this latency reduction, now SpeedScreen means five different technologies, and they’re basically not related to each other. And then the second key thing is that the SpeedScreen indicator in the title bar is only referring to the SpeedScreen Latency Reduction. It’s not referring to any of these other newer SpeedScreen technologies. But, as you saw, they’re pretty easy to configure, and they’re pretty easy to use. And it’s certainly a great feature, and it’s certainly really handy in these lower bandwidth and higher latency environments. So, with that, again, my name is Brian Madden. And I thank you so much for your time today.