Workspace Streaming

 View Only

Symantec Workspace Streaming Launch Cycle 

Apr 05, 2010 11:52 AM

The other day I was thinking about the streaming launch cycle utilized in our streaming product and realized it would be a good idea to post it on Connect. This way if anyone has any concerns around this process, this will hopefully provide a good level of comfort. The entire launch cycle beginning with the endpoint requesting a package and receiving it happens over multiple phases between all components, which puts the request through not only the initial authentication but a validation of that authentication. Take a look at the chart below for a visual representation with an explanation directly following it.

  1. The endpoint establishes a connection to the Launch Server and requests an application package
  2. The Launch Server forwards the request to the Streamlet Engine
  3. At this point there are a couple things that happen
      The STE will check with AD or DB to verify your user/user group association. The DB becomes the datasource where user and user group information is stored if not connected to LDAP
      The DB checks your package entitlement and attaches a TOKEN to the request
  4. The Database sends a response with the request + TOKEN back to the Streamlet Engine
  5. The Streamlet Engine associates the TOKEN to the original request and forwards it to the Launch Server
  6. The Launch Server sends the TOKEN to the endpoint
  7. Using the TOKEN the endpoint requests streaming blocks from the Streaming Server
  8. The Streaming Server verifies the license and TOKEN with the Streamlet Engine to make sure it matches the original requester and request
  9. The Streamlet Engine sends a license authorization to the Streaming Server and consumes a license on the DB
  10. The Streaming Server streams the application package to the endpoint

As you can see there are multiple levels of validation before an endpoint is allowed to stream an application package. And not to worry, the entire process is very quick...subject to the bandwidth and amount of latency present on the pipe of course.

Statistics
0 Favorited
0 Views
0 Files
0 Shares
0 Downloads

Tags and Keywords

Comments

Oct 06, 2010 06:22 AM

So, to resume,  there are actually two tokens: One generated from Backend Appstream and provided back to the client from launch server as an "application" response in order to uniquely identify a future streaming process. This token has nothing to do with LB management.

Than we have another one ("infrastructure token")  placed inside the http reaquest from Streaming server to client during the pre-streaming handshake, in order to assure that whole streaming session will be properly managed by LB mechanisms (and carried over by the same STS).

May be some schematical drill/down (following Gene's approach) about what's happening in term of application and infrastruccture tokens in various steps  could clarify better how the whole process works in an LB environment and magnify possible point of failures.. 

 

I think the KB could be very  useful but I cannot access it. Could you please it attach to this forum?I hope it helps me reconstruct whats behind the scenes

 

thank you

Oct 01, 2010 08:03 PM

Let me try to explain this better - as you might know from the diagram abaove the streaming front end is composed of launch server and streaming server. Launch server taking take of application launch requests and user portal at a high level. Streaming server handling block streaming requests, session handling and client communication, etc. Now, this should give some background to what I am about to explain.

As Gene commented the client is somehow assigned or associated with a front end server (typically by way of source IP stickiness). This is what facilitates for subsequent request that is part of the same HTTP session to go back to the same server. There are few things that happen before the real "streaming" session starts, i.e. between step 6 and step 7. The "infrastructure" token, as you referred to it comes into play when a "streaming" session is started. This is typically started as session negotiation happens. This is basically, as you referred, the application token or the session id created in the backend is passed back to the client and that is sent as part of the negotiation to the streaming server. When this request goes to a streaming server, the "infrastrcture" token is acquired and attached as part of the HTTP response that comes back to the client. This process is the handshake between the client and the server. This is when the "infrastructure" token association between the client and a server is done.

About the iRule - there is a good KB article @ http://www.symantec.com/business/support/resources/sites/BUSINESS/content/staging/HOW_TO/10000/HOWTO10701/en_US/1.0/Best%20practice%20for%20configuring%20a%20BIG%20IP%209%200%20with%20SWS%206%201_V1.0.pdf?__gda__=1285978584_93581989301de487ab759ae8a3438705

If you don't have access to this let me know I can attach it to this forum.

Hope this helps.

Oct 01, 2010 10:11 AM

I'm confused because according to Gene the client in step 7 has already received the token from the LS (in step6) while Nirmal states that in step 7 "a new client would not have received a token yet".

Also I'm puzzled with a token question:  is the TOKEN that Gene was talking about in his scheme the same TOKEN that Nirmal refers to when disserting about LB http inspection mechanism?

Personally I understand that the former is an APPLICATION TOKEN (randomically?) created by DB node and assigned each time a client asks for a package, independent from the underlying server architecture (Load Balanced or not).

Instead the latter token (the one involved in LB inspection) is an "infrastructure" TOKEN statically configured on every Streaming Server (from the basic Configuration page of the of Appstream Console) in order to uniquely identify the server only when a load balancing mechanism is implemented.

For example we have implemented a LB configuration following the guidelines I found in a Symantec best-practice. I configured in each Basic Configuration page of our two streaming server the TOKEN parameter with 100 and 200.  For example here you'll find the "100" labbelled server.

Basic
  Host Name or IP Address:
  Bind Address:
  Server Token:

 

We consequently implemented in our LB system (Foundry) the "iRule" to match those tokens for example:

Server1 (HTTP::Header AppstreamKey=100)

stasvpbp01 (10.68.1.136)

 

Are we wrong?

Sep 27, 2010 10:25 PM

In the example you pointed out, step 7 and step 10 - the end point does not receive a token until the response from the server is received. Session stickiness is based on http header sent as part of the response. The way it works is, when the end point makes a request for a package, there is a handshake. If the client had ever communicated to this streaming infrastructure, it would have had a token from the server. The load balancer inspects this info from the http request and if a token is found it directs the request to the appropriate server. In the case you pointed out (step 7), a new client would not have recieved a token yet. Hence the load balancer uses the routing algorithm (default round robin) to send to the next server in the order. Now, when the response comes back, the server would have filled its token in the response. This is how the communication is establed between the client and the server. Going forward any request from that end point as long as a session is active will be directed to the same server based on token inspection by the load balancer. This is why iRule as used in BigIP load balancer (or equivalent in other load balancers) is critical.

Sep 27, 2010 10:59 AM

Great question! There should not be any impact to streaming when you have a LB set up. The session stickiness allows your session to reconnect to the same server you were connected to, however, if you have your launch server backup configured then a failure on the server you are streaming from should not impact you since the client will automatically try to establish a connection to the backup. The only other thing that you would need to do is make sure that any streaming server that is configured as backup to another, has the same packages available to stream.

 

Sep 27, 2010 10:07 AM

Thank you Gene for the contribution, but I was wondering if the LB "VIP-aware" SWS configuration alters or changes (if ever) the Launch Cycle Diagram that you depicted in your previous article.

Do "stickiness" and "recovery" rules that stays behind the scenes of a LB configuration interfere with an ongoing Launch Cycle process?

In other words, do you think that a node failure (i.e. one STS/LS goes down) or a standard LB operation (round roubin assignment),  that occurrs after or during some specific point of the diagram could break down the whole process and generate a problem that could not be self-recovered and managed by the streaming architecture?

For example point 7 (when client request streaming after obtaining the TOKEN) and point 10 (when client begins streaming) seems two good moments to investigate this issue.

May be there's no real issue going on since I lacks of more specifc knowledge on these subjects to address it propoerly , but any comment would be appreciated.

Aug 26, 2010 12:56 PM

@achojwal
I wrote an article to describe the difference in architecutre between using a load balancer and not using one. Please follow this link.
https://www-secure.symantec.com/connect/articles/symantec-workspace-streaming-load-balancer-impact-architecture

 

Aug 25, 2010 06:46 AM


Hi Jhallam3, regarding load balancers would it be possible for you to publish an update concerning how the streaming workflow changes when  balancing is implemented?
thank you in advance
Antonio

May 06, 2010 07:47 AM

Hi,

looks like good news....New releases for Workspace Streaming and Workspace Virtualization

see - for more information https://www-secure.symantec.com/connect/blogs/new-releases-workspace-streaming-and-workspace-virtualization

Jon

Apr 25, 2010 10:59 PM


Maybe this isn't the appropriate place to ask, but is there any explanation for the continued delays in the Windows 7 support for this product? This has been pushed back several months and is keeping my enterprise from deploying it. I do appreciate this detailed explanation of the streaming authentication process.

Apr 23, 2010 04:38 AM


  • HI cnpalmer75


  •  


  • Response to your questions....


  •  


  • 1 ---Q,  Does it matter what the end might be for streaming the app as in a physical device, thin client device or virtual device?


  • 1 ---A,  You can stream to thick client windows devices IE XP, it doesn't matter if its a VDI desktop or Physical. also you can stream to Citrix / Terminal Servers


  •  


  • 2 ---Q,  Once the app has stopped streaming, is the license reclaimed on the DB server?


  • 2 --- A,  within Streaming you can set a 'time to live' this is a setting which after x days of none use it removes the application automatically, leaving the icon in start menu/desktop so if the end users requires it again it streams back down. the database also reclaims license once the application is removed.. (however read the EULA due to MS stating it has to be on the computer for 90 days in some cases)


  •  


  •  


  • 3 ---Q,  Is there any integration point into CMS for license usage/tracking?


  • 3 ---A,  Licensing within CMS doesn't have this yet... to fill the gap today I would look at Licencedahboard. www.licencedashboard.com


  •  


  •  


  • The diagram above also doesn't show screaming cache servers or load balances, these can help with reducing the load on sites with poor connections back to the main streaming servers and to spread the load on servers


  •  


  • Streaming also supports streaming of Data, this allows you to stream virtual desktops to computers, I personally use this with VMware ACE.


  •  


  •  


  •  


  •  

  • Apr 22, 2010 02:41 PM

    A few quick questions...


    • Does it matter what the end might be for streaming the app as in a physical device, thin client device or virtual device?


    • Once the app has stoped streaming, is the license reclaimed on the DB server?


    • Is there any inegration point into CMS for license usage/tracking?


    Apr 21, 2010 02:13 PM

    Excellent idea to have this available.  This would be a great reference point for customers (and for those of us who are new to the product) when asked to provide a high-level overview.

    Apr 08, 2010 06:31 PM

    It's actualy a very quick process. The Launch Server and STS are both on the same box, I only split it up to show which component is doing what.

    Apr 07, 2010 11:03 AM

    There is a lot going on in this process. Is there a performance impact if everything is on one server? Does it help to have things split up like you have shown in the diagram?

    Apr 06, 2010 07:06 PM

    Hi Sarah. Thank you for the feedback. Maybe the best way to describe it would be as a checks and balances kind of process. We are validating the requester receiving the package is the same one that requested it. To do this you need to generate a token of some kind, pass it to the requester, then verify that it's still the same client talking to the server.

    I have revised the diagram and updated the steps to provide some additional details. I have also replaced SID with TOKEN. In this case we are referring to Session ID, but SID can be understood in various ways so I chose to use something more direct.

    Apr 05, 2010 03:21 PM


    What a great visual way to explain this complicated process! I have to ask though, how come after the liscense is verified, the SID isn't sent to the database? It just goes back to the endpoint? You'd think that, at least for someone like me who thinks this process is slightly complicated, that it would go to the data base in the end? Am I missing something here?

    -Sarah

    Related Entries and Links

    No Related Resource entered.