В описаниях некоторых технологий и сервисов есть такое понятие — «тонкий клиент». Рассказываем, что это за клиент и почему он тонкий.
Ситуация
Представьте, что вы сисадмин в огромной компании. У неё, например, тысяча операторов по всей России, которые работают с базой данных. Размер базы данных — 500 Гб, и она постоянно пополняется. Софт для работы с этой базой — ещё 100 Гб, со всякими нейросетями. Ваша задача — чтобы тысяча операторов могли работать с этой базой данных.
Один вариант — купить где-нибудь тысячу компьютеров, поставить на них тысячу копий базы данных, настроить между ними синхронизацию. Это будет дорого и долго.
Другой вариант — тонкие клиенты.
Что такое тонкий клиент
Тонкий клиент — это компьютер или программа, в которых все вычисления происходят на сервере, а пользователь видит результат у себя. Работает всё так:
- Пользователь на тонком клиенте начинает что-то делать: писать, рисовать, выполнять команды или что угодно ещё. В нашем случае он будет делать запрос в базу данных.
- Каждое действие пользователя отправляется на сервер. Нажал на кнопку, сделал запрос, записал — всё через сервер.
- Сервер обрабатывает эти действия и отправляет результат обратно на тонкий клиент.
- Тонкий клиент берёт ответ сервера и сразу показывает его пользователю.
Внешне кажется, что всё работает на компьютере пользователя: система реагирует на каждое действие пользователя и делает всё, что ему нужно. Но на самом деле за всё отвечает сервер: не будет связи с ним, и тонкий клиент не сможет работать.
Почему «Тонкий»?
«Тонкий» потому, что современные компьютеры под такую задачу могут быть очень компактными: размером с ладонь или даже кредитную карту. Их можно прикрепить к монитору сзади, положить в ящик стола или даже встроить в клавиатуру.
Для сравнения, «толстым» клиентом будет полноценный компьютер с большим накопителем, большим числом портов, большим объёмом памяти и мощным блоком питания. Всё это нужно, чтобы ворочать большими программами.
Зачем нужны тонкие клиенты
Задача тонкого клиента — дать пользователю все возможности для работы, но не затрачивать на это много ресурсов.
Например, облачный гейминг — это использование тонких клиентов для игр. Игроки запускают тонкий клиент, он ловит все нажатия на клавиши и отправляет их на сервер, там формируется новый кадр для игры и тут же отправляется обратно на тонкий клиент. Игроку кажется, что он играет у себя на компьютере, но на самом деле он играет на сервере, а компьютер просто получает картинку с сервера.
Тонкий игровой клиент не нуждается ни в мощной видеокарте, ни в большом объёме памяти. Это может быть почти любой планшет, слабенький домашний медиацентр или даже мобильный телефон. А весь расчёт графики будет происходить где-то на сервере.
Часто тонкие клиенты применяют в школах или крупных компаниях, когда нужно организовать много рабочих мест и потратить на это меньше денег. Для этого покупают мощный сервер и очень простые компьютеры с монитором и клавиатурой. После включения они соединяются с сервером, тот выделяет ресурсы для каждого и запускает на клиентах свою виртуальную систему. Внешне выглядит так, что мы купили много хороших компьютеров, но по факту это виртуальные системы на сервере.
Тонкие клиенты в жизни
В 2011 году компания Google выпустила ChromeBook — ноутбук с довольно слабым процессором, небольшой оперативной памятью и маленьким накопителем. Идея была в том, чтобы на этом ноутбуке работал браузер, а все остальные программы работали как бы внутри этого браузера, запускаясь в интернете.
Такой подход позволил сэкономить на производстве, и ChromeBook стоил в 3–4 раза дешевле других ноутбуков — 250 долларов.
Ещё тонкие клиенты — это разные информационные экраны и табло в больницах, метро, банках. Они либо просто выводят информацию с сервера, либо выполняют простейшие запросы — например, выдают талон в очередь или информируют посетителей о расписании работы разных специалистов.
Банкоматы — тоже тонкие клиенты: они только показывают интерфейс управления счетами и картами, а все вычисления, проверки и переводы выполняются на сервере.
Кассовые терминалы — тонкие клиенты: они не знают ничего про ваши деньги и счета, они лишь принимают цифры карты, применяют криптографический алгоритм и связываются с банком. Вам кажется, что ваш банк находится внутри терминала, но терминал — это тонкий клиент.
Плюсы и минусы тонких клиентов
У тонких клиентов как у технологии есть свои плюсы, благодаря которым она становится всё популярнее:
- не нужно тратить много ресурсов на создание рабочего места, всё можно сделать проще и дешевле;
- можно быстро менять содержание, логику работы и даже интерфейс — достаточно поменять настройки на сервере, и они сразу будут использоваться на всех тонких клиентах;
- можно адаптировать работу на разных устройствах с разной архитектурой — это даст возможность пользоваться сервисом где угодно;
- легко масштабировать инфраструктуру. Когда у вас налажен процесс развёртывания тонких клиентов, вам уже неважно, сколько их у вас — 10, 100 или 1000. Всё будет работать.
Минусы у тонких клиентов тоже есть, и иногда они оказываются сильнее, чем плюсы:
- на них нельзя запустить то, что не предусмотрено настройками сервера;
- для работы нужен интернет или локальная сеть для подключения к серверу. Нет сети — тонкий клиент не работает. А если сеть работает медленно, то тонкий клиент тоже тормозит или начинает выдавать ошибки
Тонкий клиент дома
Если у вас завалялся Raspberry Pi, вы можете установить на него специальную прошивку для режима киоска: при запуске системы вы будете видеть только браузер. Теперь, считайте, ваш Raspberry Pi — это тонкий клиент.
Если у вас есть приставка Android TV и компьютер со Steam, вы можете играть в игры на телевизоре. На приставке устанавливаете Steam Link, а в Steam включаете возможность Remote Play, добавляете свою приставку. Теперь можно играть на телевизоре, а вычисления будут на вашем домашнем компьютере.
Можно попробовать поиграть в облачные игры через сервисы Geforce Now или My.Games Cloud. А если у вас дома стоит невостребованный мощный комп, можно сделать его сервером для облачного гейминга в сервисе Drova: другие пользователи будут на нём играть на своих тонких клиентах и платить вам немного денег.