GOLOS
RU
EN
UA
on1x
3 года назад

Как понять - является определенный сайт Толстым или Тонким клиентом

Я начал писать ответ к комментарию от @asuleymanov и понял, что лучше оформить это как отдельный пост. Вопрос специфичный и в интернете нет конкретного описания, определения таких понятий как Тонкие и Толстые клиенты для WEB приложений. Давайте исторически подходить к определениям. Отталкиваться надо от терминологии прикладного софта: Толстый клиент и Тонкий клиент.

Толстые клиенты, они же Rich (богатые) - это самостоятельные приложение на PC/Сервере. Пример - пакет программ Microsoft Office. Каждое приложение, будь то Word или Excel - самостоятельно. Они весят много, в них много кода для работы с данными и они не обращаются к головному серверу. Все данные хранятся у себя. Принимаем их как Толстые клиенты.

С развитием сети интернет появился новый подход. Главное приложение становилось приложением на отдельном Сервере. К нему подключались Тонкие клиенты и отправляли, получали данные. Но обработкой данных занимался главный сервер.

Таким образом появилось понятие - Тонкий клиент, заточенный для работы пользователя через сеть интернет с сервером, на котором вся обработка данных и происходит.

Теперь вернемся к WEB приложениям. PC в данном случае - Сервер в сети. Толстый клиент в данном случае - софт, который хранит, обрабатывает и предоставляет данные пользователю. Да, пользователь работает с Толстым клиентом через интернет, в таком разрезе можно сказать, что браузер является Тонким клиентом к любому сайту/сервису/соц сети. Но время изменилось и терминология претерпела изменения. Браузер уже не считается Тонким клиентом к каждому сайту, это просто механизм взаимодействия пользователя с программой - сайтом/сервисом/соц сетью.

Итого - каждый сайт, который имеет СВОЮ базу данных, СВОИ механизмы обработки и СВОЙ механизм предоставления этих данных пользователю - считается ТОЛСТЫМ клиентом. Он самостоятелен.

С развитием технологий: javascript, ajax, JSON-RPC, WebSocket появилась возможность серверу/сайту/соц сети не хранить у себя данные, не формировать на своей стороны отображение для клиента. Вся эта работа(запросы/фильтрация/алгоритмы/хранение/отображение) легла на компьютер пользователя. Программа есть, это управляющий скрипт js, но он выполняется уже на браузере клиента, а не на сервере. Браузер клиента связывается с главным сервером по API и получает данные, фильтрует, показывает их пользователю. Таким образом оболочка сайта + управляющий js код в совокупности стали называться Тонким клиентом по отношению к Главному серверу, который хранит все данные.

Вот мы и пришли к тому моменту: как понять - является определенный сайт Толстым или Тонким клиентом к главному серверу. Все просто, достаточно задать следующие вопросы:

  1. Где хранятся данные, которые выдает обслуживающий сайт сервер пользователю? Если своя база данных - то Толстый, если данные у себя не хранит - то Тонкий;
  2. Подключение к главной Базе Данных со всей информации происходит на стороне обслуживающего сайт сервере, или браузером на стороне пользователя? Если подключение к БД происходит не на стороне клиента, значит - Толстый, если на стороне пользователя - Тонкий.
  3. Обработка, сортировка, формирование вывода информации происходит на стороне клиента в браузере, или формируется заранее сервером и отдается пользователю? Если сервер отдает готовую верстку содержащую все данные - он Толстый клиент по отношению к этим данным. Если сервер отдает полу-пустую верстку и браузер пользователя сам подключается, получает информацию, формирует отображение, сортирует, обрабатывает данные - то речь про Тонкий клиент по отношению к этим данным.

Когда я говорю про Толстый клиент для Голоса, то речь про самостоятельный сайт/сервер с своей базой данных (которая не на стороне клиента, а на сервере синхронизирует и вычищает данные с блокчейна Голоса). Это позволит сделать на основе этого разные возможности, недоступные через API методы главного сервера. Смотрим в Википедию по определению Толстого клиента:

Толстый клиент обладает широким функционалом в отличие от тонкого.

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

Предоставляет возможность работы даже при обрывах связи с сервером.

Если ВДРУГ, что-то упадет/залагает, случится что-то со всеми серверами делегатов и их ноды сгорят одновременно - Толстый клиент будет иметь свое представление данных. И пользователи смогут получить к ним доступ, несмотря на недоступность главного сервера API Голоса.

На этом я заканчиваю, буду рад комментариям и подписавшимся. Впереди много интересного!

Предыдущие посты из серии:

  1. Размышления про толстые клиенты
  2. Начал работать над толстым клиентом для Голоса
  3. Проблема обновления данных в толстом клиенте
  4. Смотрим размер базы Голоса
8
2.734 GOLOS
На Golos с May 2017
Комментарии (10)
Сортировать по:
Сначала старые