Тонкие клиенты, толстые сервера

в 18:53, , рубрики: Исследования и прогнозы в IT, клиент-серверная архитектура, нф, публицистика, фантазия, Читальный зал, эссе

Идея тонкого клиента по-настоящему воплотилась в середине 30-ых годов. Хотя сам термин обсуждался и за пол-века до этого. Клиент-серверные приложения, преобладавшие долгое время перед этим, являлись, по-сути, тупиковой ветвью эволюции: идея тонкого клиента в виде веб-браузера мутировала до абсурда: клиентская часть приложения — та что выполнялась на машине пользователя — требовала ресурсов больше чем серверная, при том, что последняя могла обслуживать множество пользователей. Браузер стремился задействовать все доступные ресурсы пользовательской машины, становясь наиболее толстым клиентом за всю история информационных систем.

Попытки стандартизации технологий, используемых в этом — самом востребованном на рынке стеке — игнорировались разработчиками, которые, подгоняемые спросом, думали о совместности и поддерживаемости своей продукции в последнюю очередь. Свободный рынок живёт по диким законам. Если ты на минуту, час, или день замешкаешься, раздумывая о высоких инженерных ценностях, более циничный, но шустрый конкурент выпустит свою версию. Да — она будет не совместима со всем и вся из прошлого и будущего, но зато он успеет получить прибыль с миллиарда жаждущих пользователей уже сегодня. И завтра он будет работать надо новой версией, опять не совместимой, но уже с миллиардными инвестициями и ожиданиями. А ты останешься во вчерашнем дне, штудируя пыльные, всеми забытые спецификации. Без пользователей, без продукта, без инвестиций, без будущего и настоящего.

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

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

Удел специалистов гораздо скромнее, чем им хотелось бы считать. Большее, на что им стоит рассчитывать — высказать своё экспертное мнение, и то — только когда попросят. А попросят их тогда, когда игра по диким правилам рынка становится слишком дорогой. Когда прибыли под угрозой, никакие вложения не окупаются, а что делать — не ясно.

После десятилетий игнорирования рекомендаций Консорциума, мутация «тонкого» клиента достигла критической точки. Акулам рынка Информационных Технологий пришлось пойти на поклон к экспертам и просить их придумать принципиально новое решение, способное разрубить гордиев узел XXI века: клиент, замышлявшийся как тонкий, весит на порядок больше любого сервера, выполняющего всю полезную работу в одно лицо, занимает на машине пользователя всё, что только может отобрать, не считаясь со средствами, у операционной системы. Отзывчивость приложений с каждым годом всё хуже, качество ниже, каналы связи забиты полностью. Рынок же не просто глобальный, а можно сказать абсолютный: количество пользователей Сети и атмосферы на планете сравнялось, допуская статистическую погрешность.

Был собран кризисно-коордиоционный комитет (K3.org), где господам экспертам были предоставлены полная власть и лучшие условия: таких финансовых и человеческих вливаний наука не видела, пожалуй, со времён ядерной гонки. Только теперь праздник был не на улице физиков, а у компьютерщиков. Публичной славы в этот раз им выпало куда больше: никакой секретности и антимилитаристской пропаганды. Наоборот — почёт и вера от каждого землянина.

В 2032 году появилась первая версия стандарта нового сетевого протокола, ориентированного на:

  1. по-настоящему тонкий клиент
  2. действительно толстый сервер
  3. эффективное использование современных каналов связи

Основным содержимым в пакетах, передаваемых по новому протоколу предполагался векторный (!) гипертекст. Концептуально, новый формат был компромиссом между классическим гипертекстом и потоковой медиа-трансляцией.

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

Такая концепция предъявляет высокие требования к скорости между конечными точками в сети. Растёт пинг — падает отзывчивость. Зато, по мере проникновения технологии, теряют свой смысл очень многие проблемы, неразрешимые для предшествующего стека: конфигурация клиента минимальна, стандартизирована, на порядок дешевле и проще — нет постоянной памяти, нет необходимости в высокопроизводительном процессоре, больших объёмах ОЗУ. По сути это телевизор с устройствами ввода, подключенный к сети.

В серверной части наоборот, потребовались существенные усложнения. Но это приемлемый шаг, так как потенциально вычислительные мощности здесь не ограничены, а серверную инфраструктуру по определению легче контролировать и усложнять чем удалённый клиент. Зашла звезда архитектуры серверов «без состояния» — теперь сервер не только должен знать каждого клиента, но моментально реагировать на все его события скорейшим образом.

Господа владеющие рынком остались довольны. Новый стандарты, хотя и низводили некоторые направления индустрии до состояния «легкой» промышленности — производителей пользовательского «железа», например — в целом позволяли богатым стать ещё богаче: если раньше для контроля пользовательской активности приходилось прилагать дополнительные усилия и юридические уловки, то теперь, по мере упразднения клиента, как автономной программно-аппаратной платформы, игра всё время шла на их поле, то есть серверах.

Автор: samizdam

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js