Coexistence testing takes place once the application has been identified as compatible for a Citrix environment. This forms the next part of the rationalisation process and involves functional testing the application against other applications, to prove coexistence.
On a desktop computer the number of different applications that run at the same time is limited. Even though there may be several applications open, the user can only work with one application at a time.
This reduces the chances of any co-existence issues, as applications are not continually running against each other. So when you're typing away in a word processor, the spreadsheet application waits idly for user input.
"Soon as we started this application, all the other applications bombed out!"
We've probably all experienced at one time or another, an application becoming unresponsive, leading to other open applications becoming unresponsive aswell.
Eventually when the application returns to a normal state, the other applications stop being unresponsive too. As typically system resources are freed up again for all applications to use.
Running within a Thin Client environment means it's a shared environment, running multiple applications at the same time is the norm. As there are multiple users all using applications at the same time on a single Citrix server.
So one user could be using word processing software, another using a spreadsheet program and another using a database program. All these programs are being used at the same time on the same machine.
Whilst an application is open but in an unused state it may pose no problems. However, when used in conjunction with other applications, conflicts could arise which could stop applications working when another application is being used.
This in turn could affect the system stability, leading ultimately to users losing the usability of the system. Hence it is imperative to isolate any applications that can not co-exist with each other.
Strategies can be implemented to make applications that can't co-exist still work. Application silos can be used or application virtualization technology can be implemented using the like of Microsoft's App-V.
Application silos is a logical method of dividing Citrix servers into groups. So whilst you may have a single farm for example, you could assume that 25% are Silo A, 25% are Silo B and so on to Silo D with 25%.
If an application, say application 'A' doesn't work with application 'B', then application 'A' can be installed in silo 'A' whilst application 'B' in silo 'B', 'C' or 'D'. This method ensures the applications which are not compatible with each other can still be used but are run on separate servers in separate silos.
Application Virtualization involves streaming applications from a central repository, without having to necessarily install them on the Citrix server. Instead when the users clicks the icon displayed by the Citrix server, the application streams to the Citrix server from where it is presented. The application is isolated using special technology from other applications, which dramatically reduces co-existence issues.
Many larger organisations still tend to use silo'ing as it's something they've always done. Some organisations I've done projects for, silo by department and the IT department sell capacity to other departments, so for example, HR could buy 20 servers worth out of their budget and Sales could buy 30 servers. In such scenarios departments won't let other departments use their capacity, so you end up with large farms which are under utilised.
In conclusion, we can avoid many co-existence problems later by conducting Citrix coexistence testing.