В прошлых уроках вы познакомились с клиент-серверным стилем архитектуры и его конфигурациями. В этом уроке вы познакомитесь с ещё одним стилем — серверной архитектурой.
Даня
А можно как-то без клиента обойтись? 😅
Айгуль
Конечно! Есть серверная архитектура — никаких клиентов, только сервер и «глупый» терминал.
Даня
Расскажешь, как это работает?
Айгуль
Обязательно!
Серверная архитектура (Server-Based Architecture) — это архитектура, в которой все функции ПО выполняются на стороне сервера, или мейнфрейма.
Мейнфрейм (Mainframe Computer) — это высокопроизводительный сервер с большим объёмом памяти, повышенной отказоустойчивостью и высокой мощностью для обработки поступающих запросов.
При таком стиле архитектуры пользователь взаимодействует с сервером (или мейнфреймом) через терминал (Terminal) — простейшее устройство ввода и вывода информации. Терминал выступает как клиент, который не хранит и не обрабатывает данные, не содержит никакой логики, а служит лишь инструментом получения и передачи данных — от пользователя серверу. Поэтому иногда его называют «глупым» терминалом (Dumb Terminal).
Терминал — это устройство, состоящее из монитора, клавиатуры и мыши, которое не имеет вычислительных мощностей и требует подключения к сети.
Все действия, которые выполняет пользователь, терминал передаёт на сервер без дополнительной логической обработки. Затем терминал получает от сервера данные и указания о том, как именно они должны быть представлены на экране.
К одному серверу может быть подключено несколько терминалов, таким образом разные пользователи могут использовать ПО одновременно.
Пример системы, реализованной с помощью серверной архитектуры, — платёжный терминал в магазине, где есть только кнопки и небольшой экран для вывода данных.
Преимущества и недостатки
У этой простой с виду архитектуры есть особенности, которые одновременно являются и преимуществами, и недостатками.
Нет клиента
Все функции ПО выполняет один элемент аппаратного обеспечения, поэтому при разработке не нужно тратить много усилий на поддержку клиентской части. В ПО с таким стилем архитектуры большая часть функций выполняется серверной частью. И для неё нужен только бэкенд-разработчик. Администрировать надо всего один сервер, а не десятки, как в клиент-серверной архитектуре.
В то же время отсутствие клиента — это и недостаток. Терминал — функционально ограниченное устройство с простейшим интерфейсом, не защищённое от пользовательских ошибок. Пользователь должен хорошо знать, что именно нужно ввести в терминал, чтоб получить ожидаемый результат.
Например, сотрудник магазина должен хорошо знать, как именно работать с платёжным терминалом, какие символы нужно ввести, чтобы покупатели могли проводить оплату. Интерфейс терминала не сможет дать им чётких и подробных инструкций, в отличие от интерфейса мобильного приложения.
Простой процесс обновления ПО
Как вы помните из предыдущего урока, в клиент-серверной архитектуре обновление ПО происходит в несколько этапов. Сначала нужно обновить все клиенты и серверы, а потом ещё проверить, что новое обновление применяется на всех устройствах.
С серверной архитектурой такой проблемы нет, так как бизнес-логика и даже логика представления находится на сервере. Обновление ПО происходит только на стороне сервера.
Проблемы масштабирования
Когда количество функций приложения и количество терминалов увеличивается, нагрузка на сервер возрастает. В клиент-серверной архитектуре нагрузка на серверы распределяется равномерно, поэтому, если нужны дополнительные мощности, просто добавляется новый сервер. А в серверной архитектуре сервер только один — на него и ложится вся нагрузка. С ростом числа пользователей сервер будет отвечать медленнее.
Если все функции выполняет один сервер, он должен быть мощным, отказоустойчивым и, как следствие, очень дорогим. Замена сервера на ещё более мощный может существенно повлиять на бюджет.
Стоимость одного мейнфрейма компании IBM, который гарантирует стопроцентную доступность, составляет более 200 тысяч долларов.
Одна точка контроля и одна точка отказа
В серверной архитектуре весь поток данных идёт от терминала в одну точку — на сервер. Это уменьшает вероятность ошибок и упрощает процесс поиска проблем, если они возникли. Но одна точка контроля — это и одна точка отказа. Если на сервере возникла проблема, пользователи всех терминалов не смогут взаимодействовать с ПО.
По сравнению с клиент-серверной архитектурой, где отказ одного сервера приводит к снижению доступности, при этом остальные серверы всё ещё работают, в серверной архитектуре отказ одного сервера приводит к полной недоступности.
Где используется серверная архитектура
Серверная архитектура используется там, где требуется централизованное управление несколькими однотипными клиентами (терминалами) и защита критически важной информации.
Централизованное управление терминалами часто применяется для организации работы в компании. При устройстве на работу сотрудники получают компьютеры, которые как раз и выступают в качестве терминалов. Установка и обновление ПО выполняется администратором удалённо, доступы к базам данных компании ограничены. Например, администратор системы может запретить сотрудникам копировать и редактировать персональные данные пользователей, при этом вносить новые данные можно.
Наверняка вы уже встречали терминалы в повседневной жизни, когда брали талоны электронной очереди в аптеке или банке.
Как системный аналитик вы будете сталкиваться с серверной архитектурой, когда ПО должно будет гарантировать защиту корпоративной информации. При использовании одного сервера будет только одна точка входа в систему — сервер. Чем меньше входов, тем безопаснее такая система.
Прочитайте определение и выберите в списке термин, которому оно соответствует.
Аппаратное устройство, которое предоставляет пользователю механизмы вывода информации.
Монитор
Монитор — это устройство, которое состоит из экрана и элементов аппаратного обеспечения. Монитор только выводит данные, а для ввода потребуются дополнительные устройства, например, клавиатура. Монитор и клавиатура вместе образуют терминал — устройство для ввода и вывода информации.
Тип сервера, который обладает большим объёмом памяти, повышенной отказоустойчивостью и высокой мощностью.
Мейнфрейм
Мейнфрейм — это высокопроизводительный сервер, сильно превышающий по мощности и объёму памяти обычные серверы.
Стиль архитектуры, в которой функции приложения распределены между клиентскими устройствами и одним или несколькими серверами.
Клиент-серверная архитектура
Клиент-серверная архитектура стремится распределить нагрузку между клиентскими устройствами и одним или несколькими серверами, заставляя обе стороны выполнять функции приложения.
Аппаратное устройство, которое предоставляет пользователю механизмы ввода и вывода информации.
Терминал
Терминал — это простейшее устройство для ввода и вывода информации. В терминале нет логики представления. Он всего лишь передаёт данные на сервер и выводит их в том виде, в котором они были переданы ему сервером.
Стиль архитектуры, в которой все функции приложения выполняются на стороне сервера.
Серверная архитектура
Если все функции ПО сконцентрированы в одном элементе аппаратного обеспечения — сервере, такой архитектурный стиль называют серверным.
Айгуль
Помнишь, говорили о тонком и толстом клиенте? 😏
Даня
Ага, но ведь в серверной архитектуре нет клиента…
Айгуль
Нууу, да, но нет. Есть ультратонкий клиент!
Даня
Ничего не понимаю 🤔
Ультратонкий клиент
В уроке о клиент-серверной архитектуре вы узнали о толстом и тонком клиенте. Эти типы клиентов выполняют логику представления, а также могут полностью или частично выполнять бизнес-логику. Так вот, бывает ещё ультратонкий клиент — и он совсем не содержит бизнес-логики.
Ультратонкий клиент (Ultrathin Client, Zero client) — это разновидность клиента, который выполняет только логику представления.
Ультратонкий клиент представляет собой небольшое устройство, которое соединяет устройства ввода/вывода данных пользователя (клавиатура, мышь, монитор, ноутбук) с удалённым сервером.
Сервер содержит всю информацию, которая требуется пользователю для работы: операционную систему и ПО, необходимое для работы. Таким образом, пользовательские устройства могут быть абсолютно «пустыми», но при соединении с сервером через ультратонкий клиент полноценно работать под управлением этого самого сервера.
Между ультратонким клиентом и сервером устанавливается соединение — беспроводное или кабельное.
Например, если вам нужно показать свою презентацию на экране в зале, вы можете подключить проектор к своему ноутбуку через ультратонкий клиент и вывести презентацию на экран. Это лишь одна из функций ПО Citrix, с которым вы можете столкнуться в организации.
Распределение функций с использованием ультратонкого клиента
Один из способов подключить устройство пользователя к серверу через ультратонкий клиент — это технология соединения Ethernet.
Ethernet контролирует процесс передачи данных по локальной сети. Он предоставляет информацию о том, как передавать данные, чтобы разные устройства в сети могли получать и обрабатывать информацию.
Пример — соединение офисного принтера с компьютерами сотрудников. Каждый сотрудник может по локальной сети отправить документ на выбранный принтер и распечатать.
VDI
Ультратонкий клиент часто используется в компаниях, которые позволяют сотрудникам работать удалённо через виртуальный рабочий стол (Virtual Desktop Infrastructure — VDI). Он предоставляет сотрудникам доступ к корпоративным данным с любого устройства, к которому можно подключить ультратонкий клиент.
Представьте, что вы в отпуске, рабочий компьютер далеко, а вам нужно срочно внести правки в спецификацию, которая доступна только с рабочего компьютера. VDI позволяет использовать любое устройство как окно на рабочий стол компьютера в офисе. При этом вам будет доступно всё ПО, которое на нём установлено, все файлы, которые надёжно хранятся на серверах организации и посторонним людям недоступны.
VDI — это не только про удобство пользователей. Доступ к корпоративным данным через VDI повышает безопасность обработки и хранения данных. При таком подходе все данные организации хранятся в одном месте, доступ к ним может получить ограниченный круг лиц, а сам сервер, установка и обновление ПО на нём доступны только администратору.
Преимущества ультратонкого клиента
Устройство ультратонкого клиента дешевле, чем тонкий клиент, и существенно дешевле толстого клиента.
Использование ультратонкого клиента облегчает поставку ПО конечному пользователю и его обновление. Нет необходимости подстраиваться под разные типы клиентов.
На стороне ультратонкого клиента отсутствует программное обеспечение, поэтому такая система менее уязвима. Пользователь не сможет самостоятельно установить вредоносное ПО.
Использование ультратонких клиентов позволяет администраторам системы полностью контролировать действия пользователей. Например, ограничивать использование социальных сетей на рабочем месте.
Современные IT-компании обращают внимание на количество потребляемой энергии и то, как утилизируются физические устройства. Энергопотребление ультратонкого клиента существенно ниже, по сравнению с потреблением энергии толстым клиентом. Поэтому такой подход считается eco-friendly и соответствует принципам Green IT.
Green computing, или Green IT, — это подход к созданию, производству, использованию и переработке различных устройств таким образом, чтобы снижать негативное влияние на окружающую среду. На некоторых устройствах вы можете заметить эмблему “Energy Star”, которая означает, что производитель придерживается принципов Green IT.
Посмотрите на изображения серверов, соединённых с клиентами. На основании того, какие функции выполняет сервер, выберите, с каким клиентом он соединён: толстым, тонким или ультратонким.
Тонкий клиент
Если сервер не содержит логики представления, то где-то существует клиент, который эту логику содержит. Значит, архитектура клиент-серверная. А если сервер выполняет часть бизнес-логики, то клиент тонкий.
Ультратонкий клиент
Если сервер выполняет все функции ПО, в том числе логику представления, то перед вами серверная архитектура. Значит, клиент ультратонкий.
Толстый клиент
Если сервер не содержит логики представления, то её содержит клиент. Значит, речь идёт о клиент-серверной архитектуре. А если сервер не выполняет бизнес-логику, то клиент толстый.
Подведём итоги
Серверная архитектура — стиль архитектуры ПО, при котором все функции ПО сконцентрированы в одном элементе аппаратного обеспечения — сервере.
Мейнфрейм — это высокопроизводительный сервер с большим объёмом памяти, повышенной отказоустойчивостью и высокой мощностью для обработки поступающих запросов.
Пользователь взаимодействует с мейнфреймом через терминал (Terminal) — простейшее устройство ввода и вывода информации. Терминал не хранит и не обрабатывает данные, он не содержит никакой логики, а служит лишь инструментом получения и передачи данных — от пользователя на сервер.
Для связи терминала с сервером может использоваться ультратонкий клиент —разновидность клиента, который содержит только небольшую часть логики представления.
Разделение логик между толстым, тонким и ультратонким клиентом представлены на иллюстрации: