For beginners I think Citrix technologies can be a bit daunting. There's loads of documentation out there but it can take ages to read it and at the end you still might not have a good understanding of what XenApp is.
One of my pet hates is software vendors marketing material. Coming from a technical point of view, sometimes it's impossible to get to the bottom of what a product actually does.
So in this article I will outline, in layman terms (but from a technical point of view), what Citrix XenApp is, what it can do, and how it works. I am trying to keep in simple so I cannot include every possible feature or configuration scenario, of which there are many. The idea is to give you a high level overview.
What is Citrix XenApp?
In its simplest form XenApp is just a piece of software or a collection of pieces of software. XenApp used to be known as Presentation Server, MetaFrame, and WinFrame.
What it does
XenApp allows you to install applications on a server and then access those applications without having to install anything on the client apart from the Citrix client software. All processing is done by the server. All that passes between the client and the server is mouse clicks / movement and keystrokes; and all the passes between the server and the client is screen refreshes. This is done over Citrix's proprietary remote display protocol called Independent Computing Architecture (ICA). To the users it (mostly) looks and feels like the application is running locally on their client operating system.
It is also possible to publish the server desktop and give users a complete Windows user interface on the server along with access to the applications installed on it. This is known as a Hosted Shared Desktop.
The last 3 versions of XenApp have offered application streaming, also known as Application Virtualization. This replaced the application isolation feature that was available in some previous versions of XenApp. By profiling an application using the Citrix Streaming Profiler you can stream the application down to a target Operating Systems without having to install anything apart from the Citrix Offline Plug-in.
With Application Streaming you have the option of streaming the application to the client device, or to a XenApp server. If you stream to a client device it will run locally on that device and consume local resources (CPU, memory etc), if you stream to a XenApp server it will run on the XenApp server and be accessed over ICA just like a traditional XenApp server-installed application.
Streamed applications are cached on the target operating system and therefore only pulled across the network on first run or when the central package is updated.
How it helps
The advantages of Session Virtualization / Hosted Shared Desktops is you can centrally manage the Operating System and Applications and quickly deploy applications to many thousands of users without having to "touch" each client device. You install the Citrix client software once and then you can deploy pretty much any application to any machine without having to ever visit them again. Because all the processing is done on the XenApp servers you can deploy apps that would potentially not run on older desktops.
If you are considering thin clients you can potentially run all of your users on XenApp and get rid of the maintenance costs associated with PC Operating Systems and hardware.
Citrix streamed applications execute locally on the target Operating System within a sandbox (isolation environment). This means that the applications cannot interfere with or break other applications on the target Operating System. Streamed applications can be run offline on laptops for up to 365 days.
Streamed applications can be updated and patched centrally and will be pulled down to the target Operating System the next time a user request it.
How it works
The latest version is XenApp 6.5 which can only be installed on Windows 2008 R2. You must have Windows Remote Desktop Services Session Host Role installed.
There are four versions of XenApp: Fundamentals, Advanced, Enterprise, and Platinum. This Comparative Feature Matrix explains what features are available in each version.
In order to be able to connect to a Citrix XenApp server to view hosted applications or a hosted desktop you must have some client software installed.
If you are only using the Citrix Web Interface through a browser then the very minimum you need in terms of client software in the Citrix Online Plug-in Web.
If you would like to have user's Start Menus automatically populated with application icons, the full Citrix Online Plug-in is required.
To be able to stream applications to clients you must have the Citrix Offline Plug-in installed.
The Citrix Receiver is a client that works across multiple devices (Windows, iOS, Android) and gives a unified look and feel to users, whichever devices they are using. It also incorporates function such as user self services to applications.
Receiver Plug-ins such as the Offline Plugin add functionality such as Application Streaming.
To be able to connect to Citrix XenApp to run virtual applications, hosted shared desktops, or streamed application you need to have a Citrix Web Interface server or servers. This is installed on a Windows 2008 R2 on top of the IIS Role. Web Interface is being replaced by Cloud Gateway Express. Web Interface will go End of Life in 2015.
Thomas Koetzing has a feature comparison matrix on his website
The Web Interface can either be accessed through a browser or directly via the Online Plug-in or the Offline Plug-in.
This allows you to configure the Citrix client software once to point at the Web Interface or Cloud Gateway Express server and then all the configuration is done using the respective Management Console. This allows you to easily add and remove XenApp (or XenDesktop) Farms, or XML brokers without having to make any changes to the clients that have the client software installed.
You can configure the Web Interface to populate Client's Start Menus and /or Desktops with the icons for your Hosted Applications, Streamed Applications, or Hosted Desktops.
To use XenApp you need to have a Remote Desktop Services License Server and a Citrix License Server. It is common to put the two on the same server. Remote Desktop Services Licensing is installed as a Window 2008 R2 role and the Citrix Licensing Server component is downloaded from Citrix.com.
You must have Remote Desktop Services Client Access Licenses (RDS CALs) and Citrix Concurrent User Licenses. There is no getting around these license requirements. You HAVE to have both.
Remote Desktop Services is licensed on a Per Device or Per User model. In Per Device mode each device connecting to the RD Session Host server requires a permanent license. In Per User Mode an RDS Per User CAL gives one user the right to access an RD Session Host server (in this case a XenApp server) from an unlimited number of client computers or devices. RDS CALs are NOT concurrent. This means you need one per device or per user.
XenApp Fundamentals is licensed Per Device and all other versions of XenApp are licensed in a concurrent user model.
Per Device = One user, any device, unlimited connections to virtual applications
Concurrent = Any user, any device, one connection to unlimited virtual applications.
A picture speaks a thousand words
As they say, a picture speaks a thousand words so here is what a very simple XenApp environment might look like
I am planning to write a similar article for XenDesktop and also a more advanced one for XenApp. Please leave comments if you feel these would be useful for you.