In one of my previous articles I discussed the streaming launch cycle and looked at the steps that are part of this flow up to version 6.1 of SWS. Starting with SWS 6.1 SP4 we have a new streaming flow, so I thought I'd follow up the original article with the most current version of this flow. From a step by step process if you compare what I have here to the original post, you will notice only one different. We do not separate the communication on the FrontEnd between the Launch Server and the Streaming Server. Any communication in this part of the flow can be considered to be happening on the FrontEnd.
- The endpoint establishes a connection to the FrontEnd and requests an application package
- The FrontEnd forwards the request to the Streamlet Engine
- 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
- The Database sends a response with the request + TOKEN back to the Streamlet Engine
- The Streamlet Engine associates the TOKEN to the original request and forwards it to the FrontEnd
- The FrontEnd sends the TOKEN to the endpoint
- Using the TOKEN the endpoint requeFrontEnd streaming blocks from the Streaming Server
- The Streaming Server verifies the license and TOKEN with the Streamlet Engine to make sure it matches the original requester and request
- The Streamlet Engine sends a license authorization to the Streaming Server and consumes a license on the DB
- The FrontEnd streams the application package to the endpoint
Once again, the various levels of validation have not changed and our security in this flow is still very much intact. And as always, the process is for the most part negligible in terms of time to get from start to finish, but naturally that time is a reflection of what the bandwidth utilization looks like. Also, don't forget to always consider your latency since it is a constant factor only differing in its amount and impact.