Что такое клиент серверная архитектура тонкий и толстый клиент микросервисная архитектура
Обновлено: 20.08.2024
В компьютерных устройствах используются тонкие и толстые приложения. Первый продукт может функционировать самостоятельно на обособленном оборудовании, для его запуска не нужен сервер, в отличие от тонкой версии.
Что такое толстый клиент
Данное приложение обеспечивает полное функционирование вне зависимости от сервера. Часто он выступает в роли хранилища информации. Все расчеты, обработка совершается на устройстве пользователя.
Разработка позволяет работать сразу нескольким пользователям. Даже при отсутствии соединения с сервером (в некоторых случаях, зависит от программы), он может продолжать работать с локальными сохраненными копиями баз, а обмениваться информацией после появления связи.
Но обширные функции продукта несовместимы с политикой безопасности, а его цена очень высокая. Работая с ним, появляются трудности, касающиеся удаленной работы с данными. Их сложно обновлять, согласовывать с другими пользователями. К тому же эти сведения уже бывают неактуальными. Установить толстый клиент не всегда просто, часто может потребоваться помощь специалиста. Обычно сложность заключается не столько в установке, сколько в правильной настройке.
Отличительной чертой является то, что значительный объем информации обрабатывается на пользовательском устройстве. Основные сведения хранятся в форме временных файлов. Ввиду этого, версия предъявляет повышенные требования к каналу передачи данных.
Тонкий клиент
Тонким клиентом называют компьютеры и программы, функционирующие в терминальной или серверной сети. Множество задач по обработке данных осуществляются на главных компьютерах, к которым подсоединено приложение и компьютер.
Часто представлен в виде системного блока без жесткого диска. Происходит подсоединение клавиатуры, мышки, монитора, сетевого кабеля. Можно подключить другую технику, но ее используют при условии идентификации и отправки сведений серверу.
Снижаются траты на ПО, поскольку отпадает потребность получать лицензию на каждое устройство, будет достаточно одного серверного терминала. Также сокращается расходная часть на выплату зарплаты сотрудникам, ведь администрирование проводится только для терминала.
На компьютере пользователя запускается только оболочка, все остальные данные хранятся и обрабатываются на сервере. Таким образом достигается высокая скорость работы на слабых ПК, а также обеспечивается высокая защита информации.
Сервер хранит все программы, приложения, данные. На нем же осуществляются вычисления. Толстый клиент по загрузке бывает локальным и сетевым. Управление осуществляется:
- удаленно, на расстоянии;
- локально через специальные приложения;
- централизованно – при выборе клиента и задании настроек.
Веб-клиент
Это не обособленная разработка, а технология, при помощи которой можно заходить в программу через браузер, введя в строчке адрес нужного сервера. Для его функционирования нужно заранее «развернуть» веб-сервер.
Чаще всего используется платформой 1С, соответствующей требованиям тонкого клиента. Версия привлекательна тем, что для ее функционирования на оборудовании устанавливать ничего не требуется, она поддерживается всеми распространенными браузерами.
К недостаткам относится ограниченный функционал и то, что доступ к серверу не всегда соответствует требованиям безопасности.
Чем отличаются
Главное отличие между толстым и тонким клиентом заключается в том, что тонкий клиент большую часть расчетов осуществляет на сервере. Толстый использует рабочее пользовательское место. Все отличия актуальны для всех приложений, в том числе 1С. Другие отличия:
- Толстая версия возникла давно, и некоторое время она была единственным пакетом услуг. Тонкая разработка внедрилась недавно, и она кардинально отличается от другого продукта.
- Тонкий клиент не выдвигает особенных требований к линии связи, поскольку обмен данных с сервером происходит в небольшом объеме.
- Чтобы инсталлировать, загрузить и настроить обновления для толстой версии, понадобится вызвать квалифицированного специалиста. Это связано с тем, что пакет подразумевает использование большого объем ПО. С инсталляцией и установкой тонкого приложения справится продвинутый пользователь.
- Устанавливать тонкую разработку нужно в том случае, если сотрудник часто находится в разъездах или трудится удаленно, из другого города на ноутбуке или иной технике.
- Пакет, работающий в тонком режиме, имеет меньше требований к линии связи, что совсем не противоречит полному использованию системы. Но если несколько сотрудников в одно и то же время будут потреблять резервы сервера, могут появиться проблемы в системе.
- Для обновления тонкого приложения не требуется вмешательства сотрудника, она обновляется в автоматическом режиме. Для толстой версии их придется скачать с официальной страницы.
- С тонким пакетом можно совершать операции через интернет.
- Толстое приложение без перерывов функционирует только на аппаратуре с высокой мощностью при обеспечении стабильного канала связи, предоставляя сотруднику свободу действий.
- Если бухгалтерия и другие сотрудники работают в стационарном режиме, то рекомендовано применять толстую версию, подсоединив высокомощные устройства к локальной сети.
Терминальный клиент
Для запуска терминального клиента требуется сервер. В этом он отличен от старого приложения, которое обрабатывает сведения вне зависимости от него. Они пользуются им для хранения данных.
Помимо общей системы выделяют аппаратный тонкий клиент (терминальный). Эти разработки существенно отличаются от ПК. У них отсутствует жесткий диск, они применяют специализированную локальную сеть, задачей которой является организация взаимодействия с терминальным сервером.
Чтобы расширить функционал продукта, его утолщают – прибавляют возможность работать в автономном режиме, сохраняя функционирование с терминалом. При внедрении в разработку жесткого диска, она перестает называться тонкой, и превращается в универсальную.
Использование в 1С
Тонкий продукт внедрился с момента возникновения платформы 1С 8.2 и 8.3. Осуществлять расчеты в данном пакете можно только в режиме управляемого приложения. Все вычисления осуществляются на сервере, человек видит лишь отображение передаваемых сведений.
Разработка не подразумевает использование крупных системных ресурсов, а также нет возможности работать в конфигураторе. Установочный файл приложения занимает значительно меньший объем данных. Старт происходит через стандартный файл 1cv8c.exe.
Использование тонкой версии требует обязательного наличия локальной сети, происходит увеличение нагрузки на сервер. Благодаря продукту сотрудник получает возможность работать с базами, расположенными в отдаленной точке.
При включении толстого приложения применяется файл 1cv8.exe. Пока не внедрилась версия 1С 8.2, оно было единственной разработкой для сотрудников. Конфигуратор есть лишь в этом продукте.
Старт толстой разработки начинается через «предприятие» или «конфигуратор» в 1С. В подключении тонкого клиента конфигуратор не участвует, работа происходит в режиме пользователя.
Доступный функционал и виды встроенных языков в тонкой версии весьма ограничены. Работая с ней, отображается и меняется готовая информация выведенная с сервера, на котором происходит вычисление.
Чтобы перейти с одного клиента на другой запускают программу, нажимают на кнопку «изменить» и выбирают другой режим базы.
Протоколы работы
Выделяют 9 распространенных видов протоколов, применяемых при работе тонкой версии:
- Х11 применяется в Unix-системе.
- Telnet – протокол мультиплатформенного направления.
- SSH – аналогична предыдущему типа. Основная разница – защита передаваемых сведений.
- NX NoMachine – доработка версии Х11. Отличительная черта – сжатие данных.
- Virtual Network Computing – независимая система, применяет простой серверный протокол для получения доступа к компьютерам, которые подсоединены к программе.
- IndependentComputingArchitecture – несовершенный протокол, сказывающийся на производительности.
- Remote Desktop Protocol предоставляет удаленный доступ к рабочему столу. Он передает различные виды данных, предлагает широкие возможности для работы с удаленной техникой.
- Spice предоставляет передачу данных не только в локальной сети, но и через браузер. Его отличительная черта – легкость, позволяющая быстро обмениваться сведениями.
- Разные закрытые протоколы, применяющиеся в пределах одного предприятия, для которых создавались. Наделены уникальными характеристиками – архитектурой, системными требованиями, реализацией.
Сейчас чаще всего используется клиент-серверный вариант. Некоторый объем работы осуществляется на сервере, а другой – на компьютере пользователя. Распределение способствует снижению нагрузки на аппаратуру и оптимизации функционирования всей системы.
Если предприятие оснащено современной техникой объединенной в локальную сеть, то рекомендуется сделать выбор в пользу толстой разработки. Работая с базой посредством интернета, применяя маломощные компьютеры и мобильные, лучше установить тонкий вариант. Простые в эксплуатации программы являются достойными конкурентами западным аналогам. Приложения популярны и востребованы в России.
Типы клиентов в системе клиент-сервер
Толстый клиент, rich client архитектуре клиент-сервер — это приложение, обеспечивающее (в противовес тонкому клиенту) полную функциональность и независимость от центрального сервера. Часто сервер в этом случае является лишь хранилищем данных, а вся работа по обработке и представлению этих данных переносится на машину клиента.
Толстый клиент обладает полной функциональностью работы с данными сервера, обеспечивает режим многопользовательской работы, предоставляет возможность работы даже при обрывах связи с сервером, имеет возможность подключения к банкам данных без использования сети Интернет, обладает высоким быстродействием.
Однако широкие функциональные возможности "толстого клиента" часто несовместимы с политикой безопасности информационной системы и стоимость его чрезмерно высока.
При работе с ним возникают проблемы с удаленным доступом к данным, выражающиеся в сложности обновления данных, согласования их с другими клиентами и связанной с этим неактуальностью данных.
Как правило "толстый клиент" имеет довольно сложный процесс установки и настройки.
Тонкий клиент
Тонкий клиент, thin client в компьютерных технологиях — компьютер или программа-клиент в сетях с клиент-серверной или терминальной архитектурой, где большая часть задач по обработке информации перенесена на сервер и права доступа клиента строго ограничены. Примером тонкого клиента может служить компьютер с браузером, использующийся для работы с веб-приложениями.
Web-клиенты
Программный Web-клиент, WEB client как программа — браузер.
Аппаратный Web-клиент - устройство, основным и часто единственным приложением которого (с точки зрения разработчика устройства или маркетолога является браузер.
Тонкие клиенты, работающие в терминальном режиме
Под термином “тонкий клиент” подразумевается достаточно широкий с точки зрения системной архитектуры ряд устройств и программ, которые объединяются общим свойством: возможность работы в терминальном режиме. Таким образом, для работы тонкого клиента необходим терминальный сервер. Этим тонкий клиент отличается от толстого клиента, который, напротив, производит обработку информации независимо от сервера, используя последний в основном лишь для хранения данных.
Кроме общего случая, следует выделить аппаратный тонкий клиент (например, Windows- и Linux-терминалы) — специализированное устройство, принципиально отличное от ПК. Аппаратный тонкий клиент не имеет жёсткого диска, использует специализированную локальную ОС (одна из задач которой организовать сессию с терминальным сервером для работы пользователя), не имеет в своём составе подвижных деталей, выполняется в специализированных корпусах с полностью пассивным охлаждением.
Для расширения функциональности тонкого клиента прибегают к его “утолщению”, например, добавляют возможности автономной работы, сохраняя главное отличие — работу в сессии с терминальным сервером. Когда в клиенте появляются подвижные детали (жёсткие диски), появляются возможности автономной работы, он перестаёт быть тонким клиентом в чистом виде, а становится универсальным клиентом.
Тонкий клиент в большинстве случаев обладает минимальной аппаратной конфигурацией, вместо жёсткого диска для загрузки локальной специализированной ОС используется DOM (DiskOnModule), то есть модуль с разъёмом IDE, флэш-памятью и микросхемой, реализующей логику обычного жёсткого диска, - в BIOS определяется как обычный жёсткий диск, только размер его обычно в 2-3 раза меньше. В некоторых конфигурациях системы тонкий клиент загружает операционную систему по сети с сервера, используя протоколы PXE, BOOTP, DHCP, TFTP и RIS (Remote Installation Services).
Протоколы, используемые тонкими клиентами
X11 - используется в Unix
SSH - мультиплатформенный защищённый аналог Telnet
NX NoMachine - протокол X11 со сжатием данных
Virtual Network Computing
ICA - Citrix Independent Computing Architecture
RDP - Remote Desktop Protocol, протокол для удалённой работы с использованием графического интерфейса пользователя для Microsoft Windows
SPICE - Simple Protocol For Independent Computing Environments
Кроме того могут применяться закрытые протоколы, специально созданные разработчиками программного обеспечения для повышения безопасности системы.
Примеры тонких клиентов
Virtual Network Computing
Применение толстого и тонкого клиентов в системе 1С:Предпирятие
Толстый клиент - это одно из клиентских приложений системы 1С:Предприятие 8. Исполняемый файл этого приложения - 1cv8.exe.
“Толстым” клиент называется потому, что может исполнять практически всю функциональность, предоставляемую встроенным языком, в том числе умеет работать с прикладными типами данных, такими как СправочникОбъект.<имя>, ДокументОбъект.<имя> и т.д.
Но, по этой же причине, он требует значительного количества аппаратных ресурсов на компьютере пользователя и может “общаться” с базой данных или с сервером 1С:Предприятия 8 только посредством файлового доступа или по локальной сети.
Помимо работы в пользовательском режиме 1С:Предприятие, толстый клиент может работать в режиме Конфигуратор, в котором выполнятся администрирование информационных баз и разработка прикладных решений.
Тонкий клиент - это одно из клиентских приложений системы 1С:Предприятие 8. Исполняемый файл этого приложения - 1cv8c.exe.
“Тонким” клиент называется потому, что умеет исполнять ограниченный набор функциональности встроенного языка. В частности на тонком клиенте недоступны все прикладные типы данных. Вместо этого тонкий клиент оперирует ограниченным набором типов встроенного языка, предназначенным лишь для отображения и изменения данных в памяти. Вся работа с базой данных, объектными данными, исполнение запросов – выполняется на стороне сервера. Тонкий клиент только получает готовые данные, подготовленные для отображения.
Тонкий клиент обеспечивает работу только в пользовательском режиме 1С:Предприятие. Режим работы Конфигуратор тонким клиентом не поддерживается.
и главное - "тонкий клиент" позволяет работать с интерфейсом 1С:Предприятия через Интернет.
Всем отличного дня! В прошлом выпуске нашего блога мы рассказывали о том, что такое виртуализация и как она работает в общих чертах. Сегодня поговорим о железе, на котором крутится все это великолепие.
Виртуализированное рабочее место пока что не работает без аппаратных комплексов, которые позволяют человеку взаимодействовать с нимим. До нейроинтерфейсов мы пока не доросли, так что будем рассматривать более приземленные технологии.
Многие слышали выражение “тонкий клиент”? Году в 2007-2008 тонкие клиенты вызывали больше негативных эмоций, чем позитивных. Те, что были по-настоящему тонкими, работали отвратительно, а те, что работали хорошо, по своему устройству мало отличались от обычного компьютера, соответственно, и пользы от них было не особо много.
Сегодня понятие “тонкий клиент” соответствует вашим ожиданиям. В большинстве случаев это коробочка, размером с домашний роутер, в которой нет подвижных частей, сложной и дорогостоящей начинки, которая требует внимания или обслуживания. Гланвым отличием тонких клиентов (если не считать аппаратные особенности некоторых моделей) с точки зрения компании, которая решила перейти на виртуализированные рабочие места, является наличие мини-ОС внутри “рабочих станций”.
Основных подходов в отрасли — два. Поставить специальную Windows Embedded (ее лицензия закладывается в стоимость устройства), основанную на Windows XP или Windows 7, либо использовать т.н. Zero-клиент, в котором вся операционка занимает несколько мегабайт, и представляет собой ядро Linux и набор из микро-утилит и сервисов, которые обеспечивают загрузку, получение настроек сети по DHCP и подключение к серверу, который будет “проецировать” гостевую ОС на клиент.
Существует еще один подход, который используется в наших тонких клиентах: Smart Zero. Отличие от обычных Zero-клиентов — в размере “прошивки”. Она все еще существенно меньше Windows Embedded, и занимает пару десятков мегабайт, но содержит в себе большее количество сервисных утилит и менеджер по диагностике и настройке сети. Smart Zero также поддерживает некоторые проприетарные технологии по ускорению развертывания сети, установке новых рабочих мест, но обо всех возможностях нашего ПО лучше расскажем в отдельном топике. :)
На чем работаю пользователи — более-менее понятно. А чем отличается сервер от обычных серверов, использующихся для хранения данных или работы с внутренними ресурсами?
Принципиальных аппаратных отличий практически нет. Конечно, следует понимать, что чем лучше (мощнее) сервер, тем больше одновременно подключенных клиентов он сможет содержать.
В качестве примера сервера для “виртуалок” можно рассматривать HP ProLiant Gen8 DL160. Классический “стоечный” сервер, который часто выбирают в SMB-сегменте в качестве терминального сервера.
Внутри, как водится, ничего сверхъестесственного: обычные серверные Xeon'ы, большой объем оперативной памяти, да дисковая система для серверной ОС. Все особенности терминального сервера заключаются в программной части. И, раз уж так сложилось, что Windows де-факто стала стандартном в большинстве офисов по всему миру, рассматривать ПО мы будем на основе Windows-сервера.
В Windows Server устанавливаются компоненты для терминального сервера и менеджер лицензий для терминальных клиентов, производится их первоначальная настройка. После активации лицензий для терминальных ОС и первоначальной настройки сервер живет своей жизнью, и обслуживать его, в принципе, не надо: единожды настроенный, он будет обеспечивать бесперебойную работу для всех пользователей, использующих RPS или VDI для своих нужд.
Такой сервер можно дополнить системами хранения данных с повышенным коэффициентом надежности, мощным сетевым оборудованием, и получить высоконадежное централизованное решение, которое позволит работать не одному десятку человек, не задумываясь о том, что у них “неполноценный” компьютер.
Существует ещё один интересный случай: использование мощной рабочей станции в качестве VDI-сервера.
Допустим, вы инженер или дизайнер, и работаете в тяжелых пакетах, которые требуют действительно мощного оборудования. Хороший многоядерный процессор, 32, 64, а то и 128 гигабайт оперативки, Nvidia Quadro или Tesla, в общем, полный фарш высоких технологий и вы действительно знаете, как найти им применение.
И так случилось, что вы находитесь далеко от своей рабочей станции, а проект надо срочно отредактировать, внести изменения, показать или вообще поставить на обсчет следующую задачу. В таком случае вы просто подключаетесь с любого удобного вам устройства к вашему компьютеру, который становится сервером, и работаете с виртуальным рабочим столом, словно у вас не килограмм c небольшим надкушенных яблок на коленях, а ваша мощная рабочая станция.
С общей теорией мы закончили, все следующие посты — по конкретным практическим примерам. :) До встречи на страницах Хабра.
В среде компьютерной терминологии, понятие «клиент» означает определенное программное или аппаратное обеспечение, которое выполняет работу по взаимодействию с сервером для получения пользователем данных о выполненных системой действиях.
Клиент — очень важная составляющая системной архитектуры.
Простой пример клиента — это классический веб-браузер, способный выполнять передачу веб-запросов на веб-сервер, получая в ответ содержание необходимой веб-страницы. Все клиенты в клиент-серверной архитектуре условно делятся на два подтипа: толстые и тонкие.
Дополнительно есть архитектуры, которые могут объединять в себе «способности» тонких и толстых. Это гибридные клиенты.
Итак, разберем каждый вид по отдельности.
Понятие толстого клиента
Толстый клиент — клиент, выполняющий запрашиваемые со стороны пользователя манипуляции независимо от ведущего сервера. Основной сервер в такой вариации системной архитектуры может применяться как особое хранилище информации, обработка и конечное предоставление которых просто переносится на локальную машину пользователя.
Толстый клиент – это рабочая машина или ПК, которые функционируют на основе своей ОС и наполнены полноценным набором ПО для требуемых задач пользователя.
Преимущества толстых клиентов:
- Большая функциональность;
- Наличие многопользовательского режима;
- Возможность работы в режиме оффлайн;
- Мгновенное быстродействие;
- Минимальная зависимость от сложных серверов.
- Все рабочие машины на постоянной основе нуждаются в техническом обслуживании;
- Нужда в индивидуальном обновлении аппаратного ПО каждого клиента до уровня программного обеспечения, которое будет использоваться;
- Массивные объемы дистрибутивов;
- Полная зависимость от платформ, под которую данные клиенты были созданы.
Понятие тонкого клиента
Тонкий клиент — вид клиента, который может переносить выполнение задач по обработке информации на сервер, не применяя свои мощности по вычислению для их внедрения. Все вычислительные ресурсы подобного клиента максимально ограничены, важно, чтобы их хватало для старта нужного сетевого ПО, применяя, к примеру, веб-интерфейс.
Одним из наиболее распространенных примеров такого типа клиента считается ПК с заранее установленным веб-браузером, который применяется для функционирования с веб-програмами.
Характерная черта тонких клиентов — применение терминального режима функционирования. В такой ситуации, терминальный сервер применяется для процесса отправки и получения информации пользователя, что и является базовым отличием от процесса независимой обработки информации в толстых клиентах.
Плюсы тонкого клиента:
- Минимальное аппаратное обслуживание;
- Низкий риск возникновения неисправности;
- Минимальные технические требования к аппаратному оборудованию.
- При сбое на сервере «пострадают» все подключенные пользователи;
- Нет возможности работать без активного подключения к сети;
- При взаимодействии с большим массивом данных может снижаться объем производительности основного сервера.
Какая между ними разница?
Базовые отличия между ними – это варианты обработки данных.Толстые клиенты работают с информацией на основе собственных аппаратных и программных возможностей, в то же время тонкие применяют ПО центрального сервера только чтобы обработать данные, предоставляя системе лишь требуемый графический интерфейс для выполнения работы пользователем. Это значит, что в роли тонких клиентов иногда мы можем увидеть устаревшие или не очень производительные ПК.
Примеры использования из повседневной практики пользователей
Все пользователи глобальной сети Интернет, так или иначе, сталкиваются как с толстыми, так и с тонкими клиентами.
С технической стороны, толстым клиентом может считаться локальная машина, которую пользователь применяет для внедрения своих намеченных целей.
Тонкий клиент может представлять собой отдельную рабочую станцию. Подобные тонкие клиенты могут быть весьма компактными, применять пассивное охлаждение. Порой, тонких клиентов используют в роли офисных локальных машин.
Если взглянуть с программной точки зрения, понятными примерами толстых клиентов можно считать программы для совместной деятельности, если они изначально установлены на определенные вычислительные устройства. Например: Yahoo Messenger, Office 365, Microsoft Outlook.
Все веб-браузеры и веб-приложения, наподобие WP, Google Docs и масса онлайн-игр могут считаться примерами тонкого клиента. Также, к данному типу клиентов относятся поисковые движки популярных сайтов от Google/Yahoo.
Итоги
В завершении стоит сказать, что выбор о том, какому клиенту отдать предпочтение, порой, зависит от того, какие именно задачи поставлены перед пользователем (проведение тестирования на проникновение или тестирования безопасности), какой ресурс аппаратной части ему открыт или какая программная составляющая ему доступна. Только исходя из положительных сторон и недостатков реализации каждого подхода, можно подобрать наиболее подходящий вариант именно для вас!
Архитектура «Клиент-Сервер» (также используются термины «сеть Клиент-Сервер» или «модель Клиент-Сервер») предусматривает разделение процессов предоставление услуг и отправки запросов на них на разных компьютерах в сети, каждый из которых выполняют свои задачи независимо от других.
В архитектуре «Клиент-Сервер» несколько компьютеров-клиентов (удалённые системы) посылают запросы и получают услуги от централизованной служебной машины – сервера (server – англ. «официант, обслуга»), которая также может называться хост-системой (host system, от host – англ. «хозяин», обычно гостиницы).
Клиентская машина предоставляет пользователю т.н. «дружественный интерфейс» (user-friendly interface), чтобы облегчить его взаимодействие с сервером.
Рис. 1. Архитектура «Клиент-Сервер».
Типы клиент-серверной архитектуры
Архитектуру «клиент-сервер» принято разделять на три класса: одно-, двух- и трёхуровневую. Однако, нельзя сказать, что в вопросе о таком разделении в сообществе ИТ-специалистов существует полный консенсус. Многие называют одноуровневую архитектуру двухуровневой и наоборот, то же можно сказать о соотношении двух- и трёхуровневой архитектур.
Постараемся внести ясность в этот вопрос.
Одноуровневая архитектура (1-Tier)
Одноуровневая архитектура «клиент-сервер» (1-Tier) – такая, где все прикладные программы рассредоточены по рабочим станциям, которые обращаются к общему серверу баз данных или к общему файловому серверу. Никаких прикладных программ сервер при этом не исполняет, только предоставляет данные.
Рис. 2. Одноуровневая архитектура «клиент-сервер» (1-Tier).
В целом, такая архитектура очень надёжна, однако, ей сложно управлять, поскольку в каждой рабочей станции данные будут присутствовать в разных вариантах. Поэтому возникает проблема их синхронизации на отдельных машинах. В общем, как можно видеть из рисунка, в этой архитектуре просматривается ещё один уровень – базы данных, что даёт повод во многих случаях называть её двухуровневой.
Двухуровневая архитектура (2-Tier)
К двухуровневой архитектуре «клиент-сервер» следует относить такую, в которой прикладные программы сосредоточены на сервере приложений (Application Server), например, сервере 1С или сервере CRM, а в рабочих станциях находятся программы-клиенты, которые предоставляют для пользователей интерфейс для работы с приложениями на общем сервере.
Рис. 3. Двухуровневая архитектура «клиент-сервер» (2-Tier).
Такая архитектура представляется наиболее логичной для архитектуры «клиент-сервер». В ней, однако, можно выделить два варианта. Когда общие данные хранятся на сервере, а логика их обработки и бизнес-данные хранятся на клиентской машине, то такая архитектура носит название “fat client thin server” (толстый клиент, тонкий сервер). Когда не только данные, но и логика их обработки и бизнес-данные хранятся на сервере, то это называется “thin client fat server” (тонкий клиент, толстый сервер). Такая архитектура послужила прообразом облачных вычислений (Cloud Computing).
Преимущества двухуровневой архитектуры:
- Легко конфигурировать и модифицировать приложения;
- Пользователю обычно легко работать в такой среде;
- Хорошая производительность и масштабируемость.
Однако, у двухуровневой архитектуры есть и ограничения:
- Производительность может падать при увеличении числа пользователей;
- Потенциальные проблемы с безопасностью, поскольку все данные и программы находятся на центральном сервере;
- Все клиенты зависимы от базы данных одного производителя;
Трёхуровневая архитектура (3-Tier)
В трёхуровневой архитектуре сервер баз данных, файловый сервер и другие представляют собой отдельный уровень, результаты работы которого использует сервер приложений. Логика данных и бизнес-логика находятся в сервере приложений. Все обращения клиентов к базе данных происходят через промежуточное программное обеспечение (middleware), которое находится на сервере приложений. Вследствие этого, повышается гибкость работы и производительность.
Рис. 4. Трёхуровневая архитектура «клиент-сервер» (3-Tier).
Преимущества трёхуровневой архитектуры:
- Целостность данных;
- Более высокая безопасность, по сравнению с двухуровневой архитектурой;
- Защищённость базы данных от несанкционированного проникновения.
- Более сложная структура коммуникаций между клиентов и сервером, поскольку в нём также находится middleware.
Многоуровневая архитектура (N-Tier)
В отдельный класс архитектуры «клиент-сервер» можно вынести многоуровневую архитектуру, в которой несколько серверов приложений используют результаты работы друг друга, а также данные от различных серверов баз данных, файловых серверов и других видов серверов.
По сути, предыдущий вариант, трёхуровневая архитектура – не более, чем частный случай многоуровневой архитектуры.
Рис. 5. Многоуровневая архитектура «клиент-сервер» (N-Tier).
Преимуществом многоуровневой архитектуры является гибкость предоставления услуг, которые могут являться комбинацией работы различных приложений серверов разных уровней и элементов этих приложений.
Очевидным недостатком является сложность, многокомпонентность такой архитектуры.
Характеристики архитектуры «клиент-сервер»
Практические применения архитектуры «клиент-сервер»
Архитектуры «клиент-сервер» - один из основных принципов работы сети Интернет. Любой веб-сайт, или приложение в Интернет работает на сервере, а его пользователи являются клиентами. Социальные сети (Фейсбук, ВК и пр.), сайты электронной коммерции (Amazon, Озон и др.) , мобильные приложения (Instagram и т.д.), устройства Интернета вещей (умные колонки или смарт-часы) работают на основе клиент-серверной архитектуры.
Хорошим примером работы системы «клиент-сервер» является автомобильный навигатор. Приложение навигации на сервере собирает данные с многих смартфонов пользователей, на которых установлены клиенты приложения. Кроме того, приложение навигации использует ещё и данные с сервера базы данных – геоинформационной системы, который предоставляет данные, например, о текущих ремонтах дорог, о появлении новых дорог и пр. Данные со многих клиентов (местоположение, скорость) обрабатывается сервером навигации и выдаётся на смартфоны пользователей в виде информации о средней скорости движения по тому или иному участку маршрута.
Практически любая корпоративная сеть или ИТ-система предприятия, как правило, строится по архитектуре «клиент-сервер». В небольших сетях (3-5 компьютеров в компании) функции сервера может выполнять один из рабочих компьютеров. Если число машин в организации более 10, то лучше сделать выделенный сервер (почтовый сервер, приложений, баз данных и пр.), который будет заниматься обслуживанием клиентов – компьютеров и телефонов сотрудников организации.
В домашних сетях архитектура «клиент-сервер» тоже используется довольно часто. Например, в домашнюю сеть могут быть объединены компьютеры членов семьи, один из которых выполняет функции сервера. В домашнюю сеть также могут быть включены такие устройства, как умные колонки, умные домашние устройства (пылесосы-роботы, фотоаппараты, DVD-плееры и пр.), а также «умные» счётчики (вода, электричество) и т.д. Тогда в системе управления сервера, будут видны все параметры, данные и медифайлы (музыка, видео, фото), а также «умные устройства».
Преимущества и недостатки архитектуры «клиент-сервер»
К преимуществам архитектуры «клиент-сервер» можно отнести:
- Централизованность, поскольку все данные и управление сосредоточены в центральном сервере;
- Информационная безопасность, поскольку ресурсы общего пользования администрируются централизованно;
- Производительность, использование выделенного сервера повышает скорость работы ресурсов общего пользования;
- Масштабируемость, количество клиентов и серверов можно увеличивать независимо друг от друга.
К недостаткам архитектуры «клиент-сервер» следует отнести:
- Перегрузку трафика в сети, что является главной проблемой в сетях «клиент-сервер». Когда большое число клиентов одновременно запрашивают одну услугу на сервере, то число запросов может создать перегрузку в сети;
- Наличие единой точки отказа в небольших сетях с одним сервером. Если он отказывает, все клиенты остаются без обслуживания;
- Превышение пределов ресурсов сервера, когда новые клиенты, запрашивающие услугу, остаются без обслуживания. В таких случаях, требуется срочное расширение ресурсов сервера;
- Иногда клиентские программы могут не работать на терминалах пользователей, если не установлены соответствующие драйверы. Например, пользователь посылает запрос на печать документа, а на сервере нет подходящего драйвера для печати данного формата документа на определённом принтере.
Заключение
В настоящее время можно встретить термин Serverless Architecture, т.н. «бессерверная архитектура». Однако, по сути, она представляет собой процесс получения функций сервера в виде облачной услуги. То есть, серверы в облаке тоже есть, но для конечного пользователя они не видны, и он получает их сервисы в виде абстрактной «функции как услуги» FaaS (Function as a Service).
Архитектура «клиент-сервер» является основой большинства корпоративных сетей и берёт свое начало от самых первых вычислительных машин, т.н. «мэйнфреймов». Программное обеспечение для локальных компьютерных сетей, подавляющее большинство которых основано на архитектуре «клиент-сервер», начало создаваться около 50 лет назад.
Дальнейшее развитие информационных технологий также будет происходить в значительной степени с использованием архитектуры «клиент-сервер».
Читайте также: