System administration
April 2010 13

Тонкие клиенты: как их делают

Чуть раньше я писал про тонкие клиенты. Мол, зачем они нужны, кому они нужны и какой с них прок.

А теперь немного грустной правды о том, что есть тонкий клиент на самом деле.

Сколько бы не завывали маркетологи про особые свойства ТК, это просто компьютер. Зачастую с обычным биосом, в котором вы можете взять и загрузить свою ОС. В особо запущенных случаях вам придётся к этой ОС собрать особое ядро или играться с параметрами ядра, но обычно — это просто компьютер. В формате mini-itx или меньше. Без вентиляторов. Такие компьютеры до выхода Атома были экзотикой, с момента появления Атома — практически «компьютер как компьютер», только меньше.

Я не видел ни одного мейнстрим производителя, который бы делал тонкие клиенты примерно так, как делают принт-сервера (очень специальная плата, минимум лишнего...). Основная причина состоит в том, что тонкий клиент, хоть и является dumb terminal с логической точки зрения, на самом деле должен обладать очень и очень приличной производительностью.

Для чего нужна эта производительность? Во-первых, для обработки сетевого трафика. В условиях реального использования ТК как платформы для удалённого рабочего стола трафик RDP совсем не похож на обещанные 22-64 килобита. Мелькающая реклама в веб-браузере, запущенный ролик на ютубе, открытая презентация в пауэрпоинте или просто html'ное письмо в аутлуке — и вот у вас единицы, если не десятки мегабит пикового трафика. А его надо обработать весь. И чем быстрее, тем меньше лагает рабочее место.

Второе — полученное надо нарисовать. Лично мне мой опыт работы с железом говорит, что очень многие «малые» платформы (включая унихром на VIA) страдают от производительности видео.

Третье — нужно обработать запросы RDP на работу с флешками (считать/записать)… Всё это хочется делать с скоростью десктопа. А значит, скорость ТК просто физически не может быть ниже некоторой границы. Для VIA нижняя часть идёт по C3 (~600МГц), для Vortex86SX — чем выше, тем лучше (не видел ни разу не лагающий вортекс). Нормальная же комфортная работа идёт от гигагерца и выше.

Да, такова реальность: машина, с производительностью мощного сервера 90ых работает в качестве «отзывчивого» dumb terminal.

Это и есть причина, почему нет тонких клиентов на арме. Точнее, есть, но малопопулярны, ибо тормозят. Банально не хватает процессора на отрисовку (декодирование и обработку) того потока, который нужно показывать.

Тут скрывается тонкий мухлёж. Да, мы можем на любом хламе показать работу RDP без тормозов. В 16 цветах, 640х480 и на статичных приложениях а-ля блокнот/1С 7.7. А вот если поставить хотя бы 16 бит, 1280х1024, добавить прокидывание звука, воспроизведение (пусть и не в полный экран) анимации, обширные графические фрагменты, шифрование и передачу всего этого трафика, то станет ясно, что это вполне себе такая приличная работа. И любой покупатель проверяет ТК не в идеальных условиях, а в реальной нагрузке. А значит, выбраковывает всё, что ему кажется тормознутым.

Впрочем, назад к тому, как их делают.

Для начала о ТК с локальной загрузкой.

Берётся железо. Желательно подешевле. Но в формате. Обычно это всё-таки виа или атом, хотя бывают и геоды.

Берётся программист 1-2 шт, часто на аутсорс. И ставится задача «нужно тонкий клиент». Нужно? Сделаем. В билдере для CE есть шаблон thinclient, и мы получаем вот такую типичнейшую для всех картинку:



За вычетом русского языка, так выглядит 99% тонких клиентов на CE. И заслуга этого — не создателей ТК, а майкрософт.

Дальше существует два варианта: либо это отдаётся «as is» клиенту, либо допиливается. Как человек, активно участвовавший в допиливании этого, я могу сказать, что там не много, а очень много нужно исправлять. Периодически закупаем продукцию конкурентов, смотрим — у примерно половины эти проблемы не решены, и так и висят хвостами. О том, какие хвосты и что проверять, я напишу чуть позже.

Для linux всё сложнее — там нет «готового» конфигуратора. Так что даже если программист может совместить x-server c rdesktop, то что-то писать ему всё-таки придётся. И тут начинаются приплясывания. Кто-то пытается использовать fwm, кто-то icewm, кто-то ещё какой-то wm, с целью «не рисовать меню самому». Кто-то приделывает текстовые конфигураторы на ncurses с одной запускающейся сессией.

В большинстве случаев, написав простейший конфигуратор (т.к. пишется он чаще всего с нуля, то и настроек там 1-2-3-4), это отдаётся со словами «готово». И снова допиливание.

Иногда люди берутся за написание могучей энтерпрайзнутой системы… на джаве. Внутри тонкого клиента. Страшно? Правильно, смотреть на это на гигагерцовом C7 без слёз невозможно.

Иногда это делается в виде веб-интерфейса с локальным браузером (в этом случае люди «на халяву» получают удалённое администрирование).

В большинстве случаев главной головной болью linux версии являются размеры, русская раскладка и поддержка железа (да-да, если вы считаете, что линукс хорошо работает с железом, попробуйте выставить разрешение на экране, переключить порт на KVM и загрузить ТК — вы получите совсем не то, что хотели).

Под CE головная боль одна — железо. Драйверов под CE ничтожно мало, и часть из них такого качества, что лучше не надо (например, я наблюдал замечательный драйвер для USB-картридера (картридера смарткарт), который запрашивал пин, рисуя запрос поверх всех остальных окон. Это было хорошо до тех пор, пока не образовывалось другое окно, которое хотело рисовать там же. После этого прочитать что-либо на экране было невозможно).

Но главное, тонкий клиент — это программный продукт. По своей сложности, конечно, уступающий, например, sql серверу, но всё равно требующей инфраструктуры для разработки и отладки. Сложность у ТК много выше, чем у принт-сервера, чем даже у маршрутизатора. Именно не понимание того, что тонкий клиент сложное ПО и приводит к шапкозакидательству.

А большинство компаний-железячников совершенно не готово заниматься полномасштабной разработкой ПО — практически всегда это получается конструктор, собранный теми или иными ограниченными силами. Компании похуже пытаются это сделать своими силами, компании получше — отдают на аутсорс. Хочу заметить, что в этом списке не российская IT-мелочь, а вполне себе именитые бренды вроде HP, Fujitsu и Wyse.

До сих пор не нашлось производителя, который бы не пытался адаптировать существующие решения, железо и софт, а взял и сделал с нуля. Думаю, тот, кто это сделает, получит весь рынок. Потому что рынок объективно ждёт дешёвых, простых, надёжных ТК. Вместо этого им предлагают слегка переделанный линукс, CE или WES на обычном железе, которое можно купить и без покупки ТК.

Да, даже это проще самосбора. Но разница в объёме работы между «этим» и «идеальным ТК» примерно такая же, как между сбором компьютера из комплектухи под собственным «брендом» и изготовлением ноутбука.
+59
17.9k 48
Comments 49
Top of the day