Independent Computing Architecture
Independent Computing Architecture (ICA) — закрытый протокол для сервера приложений, разработанного компанией Citrix Systems. Протокол определяет спецификацию обмена данными между сервером и клиентами, но не встроен ни в одну из платформ. По умолчанию используется порт TCP 1494 .
Программные продукты Citrix WinFrame и Citrix Presentation Server (ранее назывался Metaframe) реализуют эти протоколы. Они позволяют выполнять обычные приложения Microsoft Windows на Windows-сервере, а поддерживаемым клиентам подключаться к этим приложениям. Кроме Windows, ICA также поддерживается некоторыми серверными платформами Unix и могут использоваться для предоставления доступа к приложениям, выполняемым на этих платформах. Клиентские платформы не обязательно должны быть Windows, есть клиенты для Apple Macintosh, Unix, Linux и различных смартфонов. Клиентское ПО ICA также встроено в некоторые аппаратные платформы тонких клиентов.
ICA выполняет задачи, во многом схожие с X Window System. Он также предоставляет серверу ввод пользователя, а пользователю графический вывод от приложений, выполняемых на сервере.
Основная трудность такой архитектуры — это производительность. Графически ёмкие приложения, а таковыми являются большинство GUI-приложений, будучи переданными через медленное соединение, требуют высокой степени сжатия и оптимизации отрисовки приложения. Клиентская машина может быть на другой платформе и не иметь таких же GUI функций локально — в этом случае серверу может потребоваться передавать bitmap данные через подключение. В зависимости от возможностей клиента серверы могут также делегировать часть графической обработки клиенту, например отрисовку мультимедийного контента.