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

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

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

    Сколько бы не завывали маркетологи про особые свойства ТК, это просто компьютер. Зачастую с обычным биосом, в котором вы можете взять и загрузить свою ОС. В особо запущенных случаях вам придётся к этой ОС собрать особое ядро или играться с параметрами ядра, но обычно — это просто компьютер. В формате 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 на обычном железе, которое можно купить и без покупки ТК.

    Да, даже это проще самосбора. Но разница в объёме работы между «этим» и «идеальным ТК» примерно такая же, как между сбором компьютера из комплектухи под собственным «брендом» и изготовлением ноутбука.
    Share post

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 49

      +1
      на работе стоят 5 терминальных на основе линукса(по тфтпд) и вот один недавно поставил с винтом 2 гиговым(тоже линукс). настроек минимум… Работают с почтой, в инете, документы. Справляется вроде.
        0
        принтеры (локальные)? Флешки?

        Поднять что-то небольшое — без проблем. В ближайшее время я даже опубликую как это сделать, но любой линуксоид это делает на N+1 минуту (из которых N-1 минута — чтение мана от rdesktop).
          0
          в ltsp 5 настроить работу с локальными устройствами достаточно просто (пара строчек в lts.conf)

          больше расстраивает то что не весь софт хочет работать в терминальной сессии.
          Например был затык с лазарусом — с тонкого клиента работать не возможно…
          пробовали в качестве терминального сервера freenx но nxclient кажется слишком тяжелым для тонкого клиента… да и вопрос с локальными устройствами возвращается…
            0
            Какое железо используется на клиентах?
            0
            Жду с нетерпением! Надеюсь, что этот интересный цикл статей продолжится. Спасибо.
          +2
          Слушайте, а вроде SUN предлагает очень неплохое решение. На их же железе. Про цену умолчу.
            0
            Я глубоко санов не смотрел, каюсь. Но то, что я видел, очень похоже на «обычное компьютерное железо» с необычным софтом.
              0
              Sun Ray — широко используются внутри Sun, и их можно щупать на сантехнях обычно. Работают шустро, бесшумно, но на картинке слегка видны jpeg-артефакты, если присматриваться.

              en.wikipedia.org/wiki/Sun_Ray
              www.sun.com/desktop/sun-ray-clients.jsp
            • UFO just landed and posted this here
                +1
                Видел. Идея выглядит красиво только на рекламе. Во-первых, расстояние до розетки. (У вас много таких длинных как патч-корды шнуров для мониторов, мышей, клавиатур?). Во-вторых там совсем не ясно с питанием. Я не хочу видеть разъёмы слаботочки внутри стены. В коробе может быть, но в крупных зданиях коробы совсем не пустые, а габариты этой штуки явно больше ethernet розетки.

                В третьих (я не видел), но подозреваю, что они сосут по скорости отрисовки и поддержке вайдскринов.

                Лучше бы такую же маленькую, но в подмониторном исполнении сделали.
                0
                www.thinstation.org/
                около 50 компов
                6 терминальных серверов
                все работает быстро и стабильно :)
                  0
                  может расскажите success story с картинками?
                    0
                    да… нужно… вы правы…
                    сделаем :)
                      +1
                      Пожалуйста, видеозапись с экрана открытия какого-нибудь mail.ru без adblock или аналогов и прогуляться по менюшкам какой-нибудь сложной програмки, хочется увидеть отзывчивость.
                        0
                        Какое-то описание сна )…
                        Последний раз помнится для пирближения ко сну пришлось, распаковыватьиз bzImage ядро, затем патчить в бинарнике код модуля ядра, затем закпаковывать его назад и так, что бы размер до байта после запкавоки сошелся… клиент был hp t5125…
                          0
                          ээ… там ребята в 1с активно работают, в гимпе и прочих опенофисных пакетах.
                          тормозов ну совсем не наблюдается… откуда там тормоза? rdp? 100mbit?
                            0
                            Насчёт того, что в 1С тормозов не наблюдается, не спорю. А вот с гимпом я бы это, чуть постепенился говорить.

                            Ну представьте себе, что кто-то правит фотографию. На мониторе с FullHD. И решает он, что ему не нравится. Нажимает Ctrl-Z. Сколько там данных пройдёт по сети? А если он кисточкой малюет, да большого радиуса?
                              0
                              скажу так:
                              с задачей передать картинку 1920x1080 100 мегабитный канал справляется в легкую.
                                0
                                Ну вот я могу сказать, что справляться-то он справляется, но некомфортно. Особенно, когда кистью рисуешь. 1-3 фрейма в секунду, раздражает.
                              0
                              И решает он, что ему не нравится. Нажимает Ctrl-Z. Сколько там данных пройдёт по сети?

                              А вы действительно считаете, что всю задачу по обработке действия «Отмена» будет выполнять терминальный клиент?

                              При нажатии на Ctrl-Z от терминального клиента к терминальному серверу пойдет эта комбинация (сколько там бит в сканкоде, не помню, лень смотреть).
                              Получив эту комбинацию, терминальный сервер (приложение на нем) обработает ее, выполнит все действия и передаст клиенту новый экран.
                              Размер экрана, в зависимости от настроек.
                              Все…

                              Вот если перерисовка каждого элемента изображения будет происходить отдельно, и после каждой перерисовки весь экран будет передаваться клиенту, тогда «ой»…
                              Так было с сплеш-заствакой 1С при загрузке.
                              Кто админил, меня поймут :)
                                0
                                Вот я про это «передаст клиенту новый экран». Важно же не просто передать, но и за разумное время.
                      0
                      OMG
                      А где-же рекламные слоганы 1сервер на 50-80 клиентов?
                        0
                        Где-то я видел статью MS какого-то тараканьего года, где предлагали в 256 мегабайт памяти пихать чуть ли не пару сотен человек (nt4).

                        Реально для терминальных серверов важно, скорее, не число пользователей, и используемый софт. IE7 жрёт много больше IE6, а IE8 я на сервер ставить не рискнул (свободно всего полтора гига памяти, народу много...)
                      –1
                      На старой работе стоит около 20 терминальных компов, 3 сервера.
                      Проблемы возникали восновном из кривыми юзерами.
                        0
                        кривых пользователей не бывает, бывают кривые админы.
                          +5
                          нет. не так.

                          все пользователи кривые и лишь кривой админ не делает на это поправку :)
                        +1
                        тонкий клиент, хоть и является dump terminal

                        Do check your spelling mate cause typos of this sort make you appear the word you mixed up `dump' with
                        ;-)
                          0
                          Грр… В России нарастает волна национализма. Предлагаю написать путину, чтобы запретили грамманаци.
                            +1
                            What is a spelling mate and why is it causing typos? A grammar Nazi with MGIMO punctuation is such a grammar Nazi.
                            0
                            а Вы еще обещали рассказать про ncomputing терминалы :-)
                              0
                              обещал — сделал. См соотв. пост.
                              +1
                              «Сложность у ТК много выше, чем у принт-сервера, чем даже у маршрутизатора. „

                              Сдается мне вы слабо представляете сложность разработки маршрутизатора\коммутатор уровня juniper cisco.
                              Как на аппаратном (full custom asic flow) так и на программном уровне.

                              “До сих пор не нашлось производителя, который бы не пытался адаптировать существующие решения, железо и софт, а взял и сделал с нуля. Думаю, тот, кто это сделает, получит весь рынок.»

                              Думаю тот кто это сделает не доживет до рынка.
                              Строить свои велосипеды это ОООЧЕНЬ дорого.
                              Поддержка велосипеда на современном уровне стоит еще дороже.

                              Вообще ваш подход мне напоминает программиста из анекдота который все что то хочет переписать с нуля, заявляет начальству что на это понадобится три дня и через пол года рождает новый велосипед.

                                0
                                под «маршрутизатором» я имел в виду, конечно, SOHO (т.к. через запятую писал с принт-серверами). Если сделать ТК по цене juniper'а, то фиг его кто купит.

                                +1
                                Как-то непонятно, зачем и почему автор пытается требовать от специализированного решения, призванного сэкономить средства и применимого в достаточно широком, но, все же, ограниченном спектре задач, производительности полноценных настольных решений?

                                Вам сэкономить корпоративный бюджет при организации сотни рабочих мест для печатания бумажек, или той же сотни рабочих мест для просмотра видео высокого разрешения?

                                Покупая велосипед вы же не планируете погружаться на(в) нем на дно Байкала?

                                P.S.
                                В моей практике терминальный клиент на базе хлама (AMD K5-75MHz/Trident 512M/16Mb RAM) справлялся с офисными задачами отлично.
                                В качестве терминального сервера машинка уровня Celeron 1,2 GHz/512Mb RAM…
                                Обслуживал он три терминальных клиента.
                                Чуть не забыл. Linux на терминальном сервере и на клиентах (загрузка по сети).
                                Они же и на Win RDP ходили время от времени.
                                Замечаний не было…
                                  0
                                  Разрешение? Количество цветов? Думаю, с новыми мониторами оно бы лагало капитально.
                                    0
                                    Разница в том, что я не думаю, а знаю ;)
                                    Если вы в силах внятно объяснить, зачем вам полноцветный режим и высокое разрешения на терминальном клиенте, мы продолжим это разговор…

                                    Напоминаю, клиент — терминальный.
                                    Узкоспециализированное решение для ограниченного круга задач.
                                      0
                                      Объясняю, внятно. В 16-цветах на экране неприятно читать многие сайты и делать презентации. В маленьком разрешении неудобно работать во многих приложениях.

                                      Да, если вам нужна затычка на склад для нескольких человек, чтобы отгружали и не вякали, то да, 16 цветов и 800х600 достаточно. Но если вы на ТК переводите офис, то почему сотрудники должны лишаться многих привычных вещей из-за того, что у них тормознутые тонкие клиенты?
                                        –1
                                        Если вы про убогую реализацию виндового RDP, то может быть и можно аргументировать что-либо 16-ю цветами.
                                        Но миру известны и более другие решения…
                                        Там все гораздо лучше (и быстрее).

                                        Когда (и если) я перевожу кого-то на терминальный режим, то я думаю перед тем как.
                                        И тех, кому достаточно, перевожу.
                                        Ключевое слово: думаю

                                        Если пользователю, по роду работы, нет необходимости готовить презентации или еще что-либо толсто-графическое, то терминальный режим для него.

                                        А денег фирме это может сэкономить достаточно много.

                                        Если непонятно так, то поясню на пальцах:
                                        Есть лыжи, широкие, охотничьи и узкие, беговые.
                                        А есть роликовые коньки…
                                        По асфальту любые лижи сливают роликам, а по снегу ролики катятся хреновастенько.
                                        По рыхлому снегу беговые лижи — то же.
                                        А вот охотничьи, хоть и не так быстро, как беговые, по лыжне, но вполне терпимо топают…

                                        Теперь понятно, что нужно выбирать решение под задачу, а не под понты с битностью цвета?
                                          0
                                          Миру, может и известны, а вы названий не пишите. Спорить в безымянных терминах скучно.
                                            0
                                            liveder упоминал www.thinstation.org
                                            Повторять не вижу смысла…
                                            Ну, а более подробно смотрите LTSP

                                            Но не это главное…
                                            Печально, что вы не хотите замечать главную идею, которую я хочу до вас донести…

                                            Вот vasilisc правильный вопрос задает…
                                            И ответ на него очевиден.
                                              0
                                              Печально. Особенно, когда доносят в таких выражениях. В чём идея-то?
                                                0
                                                А, вы читаете только первое предложение комментария…
                                                Цитирую последнее предложение моего ответа
                                                Теперь понятно, что нужно выбирать решение под задачу, а не под понты с битностью цвета?

                                                  0
                                                  Это прописная истина, и я не понимаю, к чему вы её тут цитируете.
                                          0
                                          Думаю у каждого свои «привычные вещи» тем более потребности. Сталкивался с такими(они графикой не занимаются и по сайтам в рабочее время не ходят), что уже более 5 лет сидят на 800х600 и переходить на более высокие разрешения — отказываются))))
                                          Спасибо за интересную серию статей.
                                    0
                                    топикстартер опишите свое мнение по поводу:
                                    гибридная схема из терминальных клиентов (допустим кладовщики в 1С) + обычные компьютеры (допустим конструктора в тяжелых CAD и *shop)

                                      0
                                      Совершенно нормальная схема. Особенно, если seamless режим использовать.
                                    • UFO just landed and posted this here
                                        0
                                        А ещё мне не нравится у ТК техподдержка. В частности, у HP — полгода решали, почему перестаёт выдаваться изображение на монитор, и приходилось сбрасывать настройки клиента, и настраивать заново всё. В итоге сделали патч, вроде нормально пока что всё. А для старых клиентов, железа которых вполне хватает поставить ВинСЕ, но в своё время сделанных на линуксе, вообще забили какие-либо обновления и патчи делать — а даже такой простой вещи, как верхняя выезжающая панелька при рдп-подключении, чтобы можно было переключаться между соединениями, и то нет. Я уж молчу про поддержку разрешений современных мониторов. И это у такого навороченного брэнда, как HP.

                                        Only users with full accounts can post comments. Log in, please.