1.4. Модель клиент-сервер | Электронная библиотека
Информатика и вычислительная техника / Программирование в интернет / 1.4. Модель клиент-сервер
Общение по сети подразумевает, что между двумя компьютерами или процессами устанавливается сетевое соединение, включающее как приемник, так и передатчик, а также канал связи между ними. Модель “клиент-сервер” предполагает, что сетевое соединение является двухсторонним.
Одно и то же сетевое приложение при таком подходе выполняется двумя сторонами по-разному и состоит из части-клиента и части-сервера. Считается, что клиент запрашивает информацию или услугу, а сервер — выдает ее, то есть отвечает на запрос. Сетевое приложение в рамках модели “клиент-сервер” выполняет две различные и строго определенные функции: запрашивает и отвечает на запросы. Запрашивающая программа называется “клиент”, а отвечающая на этот запрос – “сервер”.
В большинстве случаев сетевое приложение состоит из двух независимых частей: “клиента” и “сервера”.
Сетевые уровни позволяют устанавливать виртуальное соединение между процессами или компьютерами. Считается, что виртуальное соединение образует виртуальную цепь. Многие проблемы исчезают, когда вы трактуете виртуальную цепь как настоящее соединение “точка-точка”, перекладывая ответственность за доставку данных на нижележащие сетевые уровни. Модель “клиент-сервер” поступает как раз таким образом.
Каждая из сторон виртуального соединения называется “сокет”. Каждая сторона, или сокет, установленного виртуального соединения обычно выполняет определенные функции. Сокет на стороне клиента, запрашивающий соединение, называется клиентом, а отвечающий на запрос — сервером. Программное обеспечение на стороне сервера называется серверной частью приложения, а на стороне клиента – клиентской частью.
Приложение-сервер, или просто сервер, как правило, инициализируется при запуске и далее бездействует, ожидая поступления запроса от клиента.
Каждый сервер предоставляет определенную услугу пользователям сети по всему миру, внутри корпорации или группы.
Запрос серверу от сетевого компьютера обычно активизируется пользователем. Процесс-клиент посылает запрос на установление соединения с сервером, требуя выполнить для него определенную функцию. Например, клиент может запросить передать ему точное время или определенный файл.
Приложения-серверы делятся на два типа: последовательный и параллельный, в зависимости от метода обработки запросов.
Сервер последовательной обработки запросов
Сервер с последовательной обработкой запросов обслуживает запросы один за одним, в порядке поступления. Хороший пример такого сервера — выдача текущего времени суток. Как только поступает запрос, такой сервер немедленно приступает к его обработке и не обслуживает следующие запросы до окончания текущей работы. По сравнению с параллельной обработкой такая методика значительно упрощает программную реализацию серверной части.
Сервер параллельной обработки запросов
Когда время для выполнения запроса невозможно предсказать или оно неизвестно, процесс-сервер выполняет параллельную обработку запросов. Такой сервер создаст отдельный процесс для каждого поступившего запроса. Другими словами, создается столько процессов-серверов, сколько поступило запросов. Обычно после создания процесса-обработчика сервер снова “засыпает”, ожидая обращений от новых клиентов. Конструкция сервера параллельной обработки требует, чтобы операционная система также обеспечивала параллельность, то есть способность выполнять несколько процессов в одно и то же время. Серверы с параллельной обработкой запросов обычно создаются, чтобы передавать файлы по сети, так как, вследствие неизвестных заранее размеров, время, уходящее на передачу файла, также невозможно предсказать.
13. Модель Клиент-сервер
В этой базовой модели все процессы в РИС делятся на две возможно перекрывающиеся группы. Процессы, реализующие некоторую службу, например, службу файловой системы или БД, называются серверами. Процессы, запрашивающие службы у серверов путем посылки запроса и последующего ожидания ответа от сервера, называются клиентами.
Взаимодействие в рамках модели клиент-сервер может быть как синхронным, когда клиент ожидает завершения обработки своего запроса сервером, так и
Рис. 1.2 Модель взаимодействия клиент-сервер
Обычно нет четкого различия разделения функций системы между клиентом и сервером. Например, сервер распределенной БД может выступать клиентом, передающим запросы на файловые серверы, отвечающие за хранение таблиц этой БД.
Рассмотрим некое типичное приложение, которое в соответствие с современными представлениями может быть разделено на следующие логические уровни (рис. 1.3).
Рис. 1.3 Логические уровни приложения
Уровень интерфейса обычно реализуется на клиенте, что вполне естественно.На уровне обработки обычно реализуется основная бизнес-логика приложения (функциональность).
Уровень данных содержит программы, которые предоставляют данные обрабатывающим их приложениям. Особым свойством этого уровня является требование сохранности (persistence). Это означает, что когда приложение не работает, данные должны сохраняться в определенном месте (файле или БД) для последующего использования. Этот уровень обычно реализуется на сервере.
Кроме хранения данных, уровень данных обеспечивает поддержку целостности данных для разных приложений. Для БД поддержание целостности означает, что схемы БД, специфические условия приложений (триггеры БД), хранимые процедуры и прочее также хранятся на этом уровне.
Обычно уровень данных реализуется в форме реляционной БД.
Варианты архитектуры клиент-сервер
Разделение системы на три логических уровня приводит к проблеме физического распределения приложений по отдельным компьютерам в модели клиент-сервер. Самая простая организация предполагает использование двух типов машин:
1. Клиентские машины (рабочие станции), на которых устанавливаются программы-клиенты, реализующие интерфейс.
2. Серверы, реализующие все остальное, то есть уровни обработки и данных.
Проблема такой организации состоит в том, что система не является распределенной, все происходит на сервере, а клиент используется как простой терминал.
Поскольку на практике разных пользователей системы обычно интересует доступ к одним и тем же данным, наиболее простым разнесением функций системы между несколькими компьютерами будет разделение логических уровней приложения между одной серверной частью приложения, отвечающей за доступ к данным, и находящимися на нескольких компьютерах клиентскими частями, реализующими интерфейс пользователя. Логика приложения может быть отнесена к серверу, клиентам или разделена между ними.
Таким образом, программные решения варьируются от минимизации функций интерфейса пользователя на клиенте (тонкий клиент) до передачи клиенту всей работы с пользовательским интерфейсом (толстый клиент). В обоих случаях мы отделяем от приложения графический внешний интерфейс, связанный с остальной частью приложения (находящейся на сервере) с помощью конкретного для данного приложения протокола. В этом подходе внешний интерфейс делает только то, что нужно для предоставления интерфейса приложения.
Архитектуру построенных по такому принципу называют клиент-серверной или двухзвенной (two-tiered architecture) (рис. 1.4). Хотя подобные системы часто не относят к классу распределенных, но формально они могут считаться простейшими представителями распределенных систем.
Рис. 1.4 Двухзвенная архитектура
Развитием архитектуры клиент-сервер является трехзвенная архитектура (three—tiered architecture), в которой интерфейс пользователя, логика приложения и доступ к данным выделены в самостоятельные составляющие системы, которые могут работать на независимых компьютерах (рис.
3).В такой архитектуре программы, составляющие часть уровня обработки выносятся на отдельный сервер (сервер приложений), но дополнительно могут частично находиться на машинах клиентов и серверов. Типичный пример – обработка транзакций. В этом случае отдельный процесс – монитор транзакций – координирует все транзакции.
Запрос пользователя в подобных системах последовательно обрабатывается клиентской частью системы, сервером логики приложения и сервером баз данных. Однако обычно под распределенной системой понимают системы с более сложной архитектурой, чем трехзвенная.
Рис. 3. Трехзвенная архитектура
Многозвенные архитектуры клиент-сервер – это прямое продолжение разделения приложений на уровни интерфейса пользователя, компонентов обработки и данных. Разные звенья взаимодействуют в соответствии с логической организацией приложения. Во многих бизнес-приложениях распределенная обработка эквивалентна организации многозвенной архитектуры приложений клиент-сервер.
Главная его особенность – это размещение логически разных компонентов на разных машинах.
Применительно к приложениям автоматизации деятельности предприятия, распределенными обычно называют системы с логикой приложения, распределенной между несколькими компонентами системы, каждая из которых может выполняться на отдельном компьютере.
Таким образом, в обиходе под распределенной системой часто подразумевают рост многозвенной архитектуры «в ширину», когда запросы пользователя не проходят последовательно от интерфейса пользователя до единственного сервера баз данных.
В современных архитектурах подобное распределение на клиенты и серверы называется горизонтальным распределением. При таком типе распределения клиент или сервер может содержать физически разделенные части логически однородного модуля, причем работа с каждой из частей может происходить независимо (рис. 5).
Рис. 5. Компоненты распределенной системы
Пример – web-сервер, реплицированный на несколько машин в локальной сети. При изменении одной Web-страницы – изменения рассылаются по всем серверам. Сервер, которому будет передан приходящий запрос, выбирается по принципу «карусели». Такая форма распределения используется для выравнивания нагрузки на серверы популярных web-сайтов.
Также могут быть распределены и клиенты. Для простых приложений можно обойтись без серверов. В этом случае говорят об одноранговом распределении (пиринговом). Подобное происходит, например, при связи двух (или более) пользователей. Оба должны запустить одно и то же приложение, чтобы начать сеанс.
Есть и другие варианты организации архитектур, например, которые распределены как вертикально, так и горизонтально.
Итоги
Распределенные системы (РС) состоят из автономных компьютеров, работающих совместно, в виде единой связной системы. Их преимущества по сравнению с монолитными системами:
РИС упрощают интеграцию разных приложений в единую систему;
Масштабируемость. Размер РИС ограничен только размерами базовой сети.
Платой за эти преимущества часто есть усложнение ПО, снижение производительности и проблемы с безопасностью.
Существуют разные типы распределенных систем. Распределенные ОС используются для управления аппаратными средствами взаимосвязанных КС к которым относятся мультипроцессорные и гомогенные мультикомпьютерные системы. Эти РС на самом деле не состоят из автономных компьютеров, но успешно воспринимаются в виде единой системы. Сетевые ОС, с другой стороны, объединяют разные компьютеры, работающие под управлением своих ОС, так что пользователи могут получать доступ к локальным службам каждого из узлов.
Современные РС обычно содержат поверх сетевой ОС промежуточный слой ПО (middleware), предназначенный для того чтобы скрыть гетерогенность и распределенную природу базового набора компьютеров. РС с промежуточным слоем требуют специфическую модель распределения и связи. Известные модели основаны на удаленном вызове процедур, а также на распределенных объектах, файлах и документах.
Для каждой РС важна схема ее внутренней организации. Наиболее распространенная модель – Клиент-сервер. Эта модель тесно связана с традиционным программированием, в котором службы реализуются в виде процедур в отдельных модулях. Дальнейшее уточнение обычно состоит в подразделении на уровень пользовательского интерфейса, уровень обработки и уровень данных. Сервер обычно отвечает за уровень данных, а уровень пользовательского интерфейса реализуется на стороне клиента. Уровень обработки может быть реализован на клиенте, на сервере или разделен между ними.
В современных РС для построения крупных систем такой вертикальной организации приложений модели клиент-сервер недостаточно. Необходимо горизонтальное распределение, при котором клиенты и серверы физически распределены и реплицируются на несколько компьютеров. Типичным примером успешного применения горизонтального распределения является Web.
Что такое архитектура клиент-сервер?
Обновлено 17.03.23 857 просмотров
В этом блоге вы найдете следующую тему –
- Что такое архитектура клиент-сервер?
- Пример архитектуры клиент-сервер
- Компоненты архитектуры клиент-сервер
- Как работает архитектура клиент-сервер?
- Типы клиент-серверной архитектуры
- Одноуровневая архитектура
- 2-уровневая архитектура
- 3-уровневая архитектура
- N-уровневая архитектура
- Разница между одноранговой сетью и архитектурой клиент-сервер
- Преимущества и недостатки клиент-серверной архитектуры
- Заключение
Прежде чем мы объясним архитектуру клиент-сервер, и вы начнете читать такие слова, как серверы, служба, сеть, данные и файлы, и начнете чувствовать себя перегруженным жаргоном, давайте сначала разберемся в этой архитектуре с точки зрения непрофессионала.
Понятие клиент-серверной архитектуры можно понять по аналогии с заказом пиццы на доставку. Вы звоните в магазин, чтобы заказать пиццу, и кто-то берет трубку, принимает ваш заказ, а затем доставляет его. Просто, верно? Да, эта аналогия в значительной степени отвечает фундаментальному принципу клиент-серверной архитектуры.
Проще говоря, задействованы два фактора:
- Сервер — это тот, кто предоставляет запрошенные услуги.
- Клиенты — это те, кто запрашивает услуги.
Архитектура клиент-сервер — это вычислительная модель, в которой сервер размещает, доставляет и управляет большей частью ресурсов и услуг, запрошенных клиентом. Она также известна как модель сетевых вычислений или сеть клиент-сервер, поскольку все запросы и услуги доставляются по сети. В архитектуре или модели клиент-сервер есть другие системы, подключенные к сети, где ресурсы совместно используются разными компьютерами.
Как правило, клиент-серверная архитектура организована таким образом, что клиенты часто располагаются на рабочих станциях или персональных компьютерах, а серверы размещаются в других местах сети, обычно на более мощных машинах. Такая модель особенно полезна, когда клиенты и сервер выполняют рутинные задачи. Например, при обработке данных в больнице клиентский компьютер может быть занят выполнением прикладной программы для ввода информации о пациенте, в то время как на серверном компьютере может быть запущена другая программа для извлечения и управления базой данных, в которой постоянно хранится информация.
Хотите узнать больше о кибербезопасности. Ознакомьтесь с нашим руководством по кибербезопасности на Intellipaat!
Получите 100% повышение!
Овладейте самыми востребованными навыками прямо сейчас!
Пример архитектуры клиент-сервер
Вот несколько примеров архитектуры модели клиент-сервер из нашей повседневной жизни. Надеюсь, это поможет вам лучше понять концепцию.
Почтовые серверыСерверы электронной почты используются для отправки и получения электронной почты. Существуют различные программы, которые позволяют обрабатывать электронную почту.
Файловые серверыФайловые серверы служат централизованным хранилищем файлов. Одним из примеров из повседневной жизни, позволяющим понять это, являются файлы, которые мы храним в Документах Google. Доступ к облачным сервисам для Microsoft Office и Google Docs возможен с ваших устройств; файлы, которые вы сохраняете на своем компьютере, могут быть доступны с вашего телефона. Таким образом, централизованно хранящиеся файлы могут быть доступны нескольким пользователям.
Веб-серверыВеб-серверы — это высокопроизводительные компьютеры, на которых размещены различные веб-сайты. Данные сайта сервера запрашиваются клиентом через высокоскоростной интернет.
Посмотрите наше руководство по кибербезопасности на YouTube, чтобы получить более глубокие знания:
Компоненты клиент-серверной архитектуры:По сути, для работы клиент-серверной архитектуры необходимы три компонента. Тремя компонентами являются рабочие станции, серверы и сетевые устройства. Давайте теперь обсудим их подробно:
Рабочие станции
Рабочие станции также называются клиентскими компьютерами. Рабочие станции работают как подчиненные серверам и отправляют им запросы на доступ к общим файлам и базам данных. Сервер запрашивает информацию с рабочей станции и выполняет несколько функций в качестве центрального хранилища файлов, программ, баз данных и политик управления. Рабочие станции управляются политиками, определяемыми сервером.
Серверы
Серверы определяются как быстродействующие устройства, которые действуют как централизованные хранилища сетевых файлов, программ, баз данных и политик. Серверы имеют огромное пространство для хранения и надежную память для обработки нескольких запросов, поступающих одновременно с разных рабочих станций. Серверы могут одновременно выполнять множество ролей, таких как почтовый сервер, сервер базы данных, файловый сервер и контроллер домена в архитектуре клиент-сервер.
Сетевые устройства
Теперь, когда мы знаем о ролях, которые играют рабочие станции и серверы, давайте узнаем, что их связывает, сетевые устройства. Сетевые устройства — это среда, которая соединяет рабочие станции и серверы в архитектуре клиент-сервер. Многие сетевые устройства используются для выполнения различных операций в сети. Например, хаб используется для подключения сервера к различным рабочим станциям. Повторители используются для эффективной передачи данных между двумя устройствами. Мосты используются для изоляции сегментации сети.
Также узнайте разницу между архитектурой клиент-сервер и одноранговой сетью из нашего блога.
Как работает архитектура клиент-сервер?До сих пор мы понимали, что архитектура клиент-сервер состоит из двух элементов, один из которых предоставляет службы, а другой потребляет эти службы.
Чтобы получить более четкое представление о процессе, давайте узнаем, как браузер взаимодействует с сервером.
Пожалуйста, прочитайте следующие шаги для лучшего понимания процесса:
- Пользователь вводит унифицированный указатель ресурсов (URL) веб-сайта или файла, и браузер отправляет запрос на сервер системы доменных имен (DNS).
- DNS-сервер ищет адрес веб-сервера, и DNS-сервер отвечает IP-адресом веб-сервера.
- После ответа DNS-сервера браузер отправляет запрос HTTP или HTTPS на IP-адрес веб-сервера, предоставленный DNS-сервером.
- Затем сервер отправляет необходимые файлы веб-сайта.
- Наконец, браузер отображает файлы и отображает веб-сайт.
Чтобы получить глубокие знания о сети, пройдите сертификацию Intellipaat Cyber Security Certification , чтобы изучить основные понятия сети, сетевой инфраструктуры, операций и многое другое!
Типы архитектуры клиент-серверФункциональность архитектуры клиент-сервер находится на разных уровнях.
Одноуровневая архитектураВ этой категории клиент-серверной архитектуры архитектура содержит все виды настроек, такие как настройка конфигурации и маркетинговая логика, на одном устройстве. Хотя разнообразие услуг, предлагаемых одноуровневой архитектурой, делает ее одним из надежных источников, работать с такой архитектурой сложно. В первую очередь это связано с разбросом данных. Часто это приводит к дублированию работы. Одноуровневая архитектура состоит из нескольких уровней, таких как уровень представления, бизнес-уровень и уровень данных, которые объединены с помощью уникального программного пакета. Данные, представленные на этом уровне, обычно хранятся в локальных системах или на общем диске.
Двухуровневая архитектураЭта архитектура имеет наилучшую среду. В этой архитектуре пользовательский интерфейс хранится на стороне клиента, а база данных хранится на сервере, а логика базы данных и бизнес-логика поддерживаются либо на стороне клиента, либо на стороне сервера.
2-уровневая архитектура быстрее по сравнению с 1-уровневой архитектурой; это связано с тем, что в двухуровневой архитектуре нет посредника между клиентом и сервером. Это часто используется, чтобы избежать путаницы между клиентами. Одним из популярных примеров двухуровневой архитектуры является система онлайн-бронирования билетов.
Карьерный переход
Трехуровневая архитектураВ отличие от двухуровневой архитектуры, в которой нет посредника, в трехуровневой клиент-серверной архитектуре между клиентом и сервером находится промежуточное программное обеспечение. Если клиент отправляет запрос на получение определенной информации с сервера, запрос сначала будет получен промежуточным программным обеспечением. Затем он будет отправлен на сервер для дальнейших действий. Тот же шаблон будет применяться, когда сервер отправляет ответ клиенту. Структура трехуровневой архитектуры подразделяется на три основных уровня: уровень представления, уровень приложений и уровень базы данных.
Все три слоя контролируются с разных концов. В то время как уровень представления управляется на клиентском устройстве, промежуточное ПО и сервер управляют уровнем приложения и уровнем базы данных соответственно. Благодаря наличию третьего уровня, обеспечивающего контроль данных, трехуровневая архитектура более безопасна, имеет невидимую структуру базы данных и обеспечивает целостность данных.
N-уровневая архитектураN-уровневая архитектура также называется многоуровневой архитектурой. Это масштабная форма трех других типов архитектуры. В этой архитектуре предусмотрена возможность размещения каждой функции в виде изолированного уровня, который включает представление, обработку приложений и функции управления данными.
Подготовка к собеседованию. Ознакомьтесь с нашими 50 лучшими вопросами для интервью по кибербезопасности!
Разница между одноранговой сетью и архитектурой клиент-серверВ следующей таблице перечислены пять основных различий между одноранговой архитектурой и архитектурой клиент-сервер:
Клиент-сервер архитектура | Одноранговая архитектура |
У него есть определенные клиенты и серверы. | Различий между клиентами и серверами нет. |
Централизованное управление данными. | Имеет собственные данные и приложения. |
Цель — обмен информацией. | Его основная цель — поддерживать связь между одноранговыми узлами. |
Данные предоставляются только в ответ на запрос. | В этой сети одноранговые узлы имеют право как запрашивать, так и предоставлять услуги. |
Подходит как для малых, так и для больших сетей. | Подходит для меньшего количества пользователей, менее 10 устройств. |
Запишитесь на наш учебный курс по этичному взлому и изучите этический взлом у экспертов отрасли!
Преимущества и недостатки клиент-серверной архитектурыНиже перечислены преимущества и недостатки клиент-серверной архитектуры:
Преимущества | Недостатки |
Централизованная сеть имеет все возможности для управления процессами и действиями. | Если основной сервер выйдет из строя, вся архитектура будет нарушена. |
Всеми устройствами в сети можно управлять централизованно. | Эксплуатация дорогая из-за стоимости тяжелого аппаратного и программного обеспечения. |
Пользователи имеют право доступа к любому файлу, находящемуся в центральном хранилище, в любое время. | Для этой архитектуры требуются определенные ОС, связанные с сетью. |
Он обеспечивает удобный пользовательский интерфейс, простую процедуру поиска файлов и систему управления для организации файлов. | Слишком много пользователей одновременно могут вызвать проблему перегрузки трафика. |
Возможно простое совместное использование ресурсов на различных платформах. | Для обслуживания сети требуется высокотехнологичный персонал, такой как серверы. |
Курсы, которые могут вам понравиться
Заключение:В этой статье описывается, как создание сетей представляет собой акт установления стратегических союзов путем общения и обмена данными с другими людьми, компьютерами или организациями. Архитектура клиент-сервер является частью сетевой модели, которая позволяет многопользовательским обновлениям общей базы данных через графический интерфейс пользователя. Организации, большие или малые, используют возможности сетей для масштабирования и оцифровки своего бизнеса, продвижения своей продукции и улучшения своих знаний о новостях и событиях в своих конкретных отраслях.
Если у вас есть какие-либо вопросы, обращайтесь к нам по телефону Сообщество кибербезопасности и !
Расписание курсов
Что такое клиент-серверная архитектура? Все, что вы должны знать
Сегодня компьютерами пользуется больше людей, чем когда-либо, и они полагаются на эти устройства и сети, к которым они подключены, для решения многих задач, от критически важных до несерьезных. Неудивительно, что огромное количество пользователей и еще более значительное количество запросов создают нагрузку на серверы и сети.
Как будто этих проблем недостаточно, ИТ-специалисты должны иметь дело с постоянным потоком новых технологий, которые необходимо внедрить в сеть. Развитие в этой быстро меняющейся среде имеет решающее значение для поддержания организации в актуальном состоянии и конкурентоспособности. Проще говоря, альтернативы нет.
ИТ-специалисты справляются с этой нагрузкой, внедряя клиент-серверную архитектуру или клиент-серверную архитектуру. Но вам может быть интересно: «Что такое сеть клиент-сервер?» Что ж, вы попали в нужное место. В этой статье будет объяснена архитектура клиент-сервер, показана модель клиент-сервер и проиллюстрированы преимущества архитектуры клиент-сервер.
Давайте сначала рассмотрим некоторые основы, а затем перейдем к сути дела.
Основы терминологии
Клиент — это физическое или юридическое лицо, использующее услугу. В контексте ИТ клиент — это компьютер/устройство, также называемое хостом, который фактически использует службу или принимает информацию. К клиентским устройствам относятся ноутбуки, рабочие станции, устройства IoT и аналогичные сетевые устройства.
Сервер в мире ИТ — это удаленный компьютер, обеспечивающий доступ к данным и службам. Серверы обычно представляют собой физические устройства, такие как стоечные серверы, хотя рост облачных вычислений привел к появлению виртуальных серверов. Сервер обрабатывает такие процессы, как электронная почта, размещение приложений, подключение к Интернету, печать и многое другое.
Объяснение архитектуры клиент-сервер
Архитектура клиент-сервер относится к системе, которая размещает, предоставляет и управляет большинством ресурсов и служб, запрашиваемых клиентом. В этой модели все запросы и услуги доставляются по сети, и ее также называют моделью сетевых вычислений или сетью клиент-сервер.
Архитектура клиент-сервер, также называемая моделью клиент-сервер, представляет собой сетевое приложение, которое распределяет задачи и рабочие нагрузки между клиентами и серверами, которые находятся в одной системе или связаны компьютерной сетью.
Архитектура клиент-сервер обычно включает несколько пользовательских рабочих станций, ПК или других устройств, подключенных к центральному серверу через Интернет-соединение или другую сеть. Клиент отправляет запрос данных, а сервер принимает и обрабатывает запрос, отправляя пакеты данных обратно тому пользователю, который в них нуждается.
Эта модель также называется сетью клиент-сервер или моделью сетевых вычислений.
Если коротко:
- Сначала клиент отправляет запрос через сетевое устройство
- Затем сетевой сервер принимает и обрабатывает запрос пользователя
- Наконец, сервер доставляет ответ клиенту
Какова цель архитектуры клиент-сервер?
Мы уже установили, что технологии постоянно развиваются и совершенствуются, часто очень быстрыми темпами. В результате сегодняшние предприятия все больше полагаются на технологии, особенно ИТ, чтобы процветать и оставаться конкурентоспособными в среде «развивайся или умри».
Таким образом, современным организациям нужна система, упрощающая сбор, обработку и действия с корпоративными данными, что повышает эффективность бизнес-процессов и обеспечивает выживаемость на современных мировых рынках.
Сетевая модель клиент-сервер обеспечивает более высокий уровень обработки, что повышает эффективность мощности рабочих станций, расширение возможностей рабочих групп, удаленное управление сетью, ориентированный на рынок бизнес и сохранение существующих инвестиций.
Подводя итоги, можно сказать, что архитектура «клиент-сервер» обеспечивает именно ту структуру, которая необходима современным организациям для решения задач быстро развивающегося ИТ-мира.
Характеристики клиент-серверной архитектуры
Архитектура клиент-сервер обычно имеет следующие характеристики:
- Клиентские и серверные машины обычно требуют разных аппаратных и программных ресурсов и поставляются другими поставщиками.
- Сеть имеет горизонтальную масштабируемость, которая увеличивает количество клиентских машин и вертикальную масштабируемость, а затем перемещает весь процесс на более мощные серверы или в многосерверную конфигурацию.
- Один компьютер-сервер может одновременно предоставлять несколько служб, хотя для каждой службы требуется отдельная серверная программа.
- Как клиентские, так и серверные приложения напрямую взаимодействуют с протоколом транспортного уровня. Этот процесс устанавливает связь и позволяет объектам отправлять и получать информацию.
- И клиентскому, и серверному компьютерам необходим полный стек протоколов. Транспортный протокол использует протоколы нижнего уровня для отправки и получения отдельных сообщений.
Визуализация клиент-серверной архитектуры
На следующей диаграмме клиент-сервер показаны основы архитектуры:
Источник: Serverwatch.
Какие примеры клиент-серверной архитектуры?
Вы можете задаться вопросом, что представляет собой реальное приложение архитектуры клиент-сервер. Вот три примера того, как вы используете архитектуру клиент-сервер, возможно, чаще, чем вы думаете!
- Серверы электронной почты. Благодаря простоте и скорости электронная почта вытеснила традиционную почту в качестве основной формы корпоративного общения. Серверы электронной почты, поддерживаемые различными брендами специального программного обеспечения, отправляют и получают электронные письма между сторонами.
- Файловые серверы. Если вы храните файлы в облачных службах, таких как Google Docs или Microsoft Office, вы используете файловый сервер. Файловые серверы — это централизованные хранилища файлов, к которым обращаются многие клиенты.
- Веб-серверы: на этих высокопроизводительных серверах размещено множество различных веб-сайтов, и клиенты получают к ним доступ через Интернет. Вот пошаговая разбивка:
- Клиент/пользователь использует свой веб-браузер для ввода нужного URL-адреса
- Браузер запрашивает у системы доменных имен (DNS) IP-адрес
- DNS-сервер находит IP-адрес нужного сервера и отправляет его в веб-браузер
- Браузер создает запрос HTTPS или HTTP
- Сервер/производитель отправляет пользователю правильные файлы
- Клиент/пользователь получает файлы, отправленные сервером, и процесс повторяется по мере необходимости
Преимущества и недостатки клиент-серверной архитектуры
Архитектура клиент-сервер имеет свои положительные и отрицательные стороны для современных цифровых потребителей. Начнем со списка преимуществ:
- Это централизованная система, которая хранит все данные и элементы управления в одном месте
- Обеспечивает высокий уровень масштабируемости, организации и эффективности
- Позволяет ИТ-специалистам отдельно изменять мощности клиента и сервера
- Экономичен, особенно с точки зрения обслуживания
- Позволяет восстановить данные
- Позволяет выполнять балансировку нагрузки, что оптимизирует производительность
- Позволяет различным платформам совместно использовать ресурсы
- Пользователям не нужно входить в терминал или другой процессор для доступа к корпоративной информации или настольным инструментам, таким как программы для презентаций PowerPoint или утилиты для работы с электронными таблицами
- Установка снижает частоту репликации данных
Естественно, клиент-серверная архитектура — это не только солнышко и леденцы. Вот минусы:
- Если на сервере есть червь, вирус или троян, пользователи, скорее всего, поймают его, поскольку сеть состоит из связанных клиентов и серверов
- Сервер уязвим для атак типа «отказ в обслуживании» (DoS).
- Пакеты данных могут быть подделаны или изменены во время передачи
- Запуск и первоначальное внедрение обходится дорого
- Если критический сервер выходит из строя, клиенты мертвы в воде
- Установка подвержена фишингу и атакам «Человек посередине» (MITM)
Что такое трехуровневая архитектура клиент-сервер?
Трехуровневая архитектура клиент-сервер состоит из уровня представления, известного как уровень пользовательского интерфейса, уровня приложений, называемого уровнем службы, и уровня данных, включающего сервер базы данных. Трехуровневую архитектуру можно разделить на три части:
- Уровень представления (или уровень клиента): этот уровень отвечает за пользовательский интерфейс.
- Уровень приложения (или бизнес-уровень): этот уровень выполняет детальную обработку.
- Уровень базы данных (или уровень данных): на этом уровне хранится информация.
Клиентская система управляет уровнем представления; Сервер приложений следит за уровнем приложений, а серверная система контролирует уровень базы данных.
Вот модель трехуровневой клиент-серверной архитектуры:
Источник: Thecrazyprogrammer
Клиент-сервер против одноранговой сети: сравнение
Одноранговые сети, также называемые P2P-сетями, состоят из групп компьютеров (также называемых узлами или одноранговыми узлами), объединенных в сеть, где одноранговые узлы действуют как клиент и сервер. Пиры имеют равные обязанности и разрешения для работы с данными. Эта установка радикально отличается от модели клиент-сервер, которая имеет очень определенные группы пользователей и серверов.
Если вы зашли в ресторан быстрого питания, подошли к стойке и заказали бургер у продавца, это будут отношения клиент-сервер. Однако, если вы вошли в это заведение на следующий день и обнаружили, что они убрали персонал, вы могли закричать: «Кто-нибудь, пожалуйста, принесите мне гамбургер!» и другой клиент вставал, приносил вам гамбургер и звонил в продажу. Это одноранговая сеть!
Если вы слышали о блокчейне, поздравляем, вы знаете о одноранговой сети!
Вот основные различия между двумя сетевыми моделями:
- Сети клиент-сервер нуждаются в центральном файловом сервере и, следовательно, стоят дороже; у одноранговой сети нет этого сервера.
- Сети клиент-сервер разграничивают пользователей и провайдеров; партнеры действуют как потребители и поставщики.
- Сети клиент-сервер предлагают больше уровней безопасности, что делает их более безопасными. Конечные пользователи несут ответственность за безопасность одноранговой сети.
- Чем больше активных узлов в одноранговой сети, тем больше страдает ее производительность. Сети клиент-сервер обеспечивают лучшую стабильность и масштабируемость. Идеальный диапазон для P2P-сетей — от двух до восьми пользователей.
- Одноранговые пользователи могут обмениваться файлами быстрее и проще, чем в сети клиент-сервер.
- При сбое сервера сети клиент-сервер все останавливается, но если один узел в сети P2P выходит из строя, остальные продолжают работать.
Осмысление мира ИТ
Быстро развивающийся мир информационных технологий постоянно развивается и меняется. И не только предприятия и организации должны идти в ногу со временем — ИТ-специалисты, которые хотят оставаться впереди всех и повышать свои шансы на найм или продвижение в своей компании, должны расширять и повышать свои технологические навыки.
К счастью, в Simplilearn есть все ресурсы, необходимые для повышения квалификации и повышения вашей конкурентоспособности в перспективной компании. Будь то ИТ-услуги и архитектура, искусственный интеллект и машинное обучение, кибербезопасность или многие другие области, Simplilearn предлагает программы, учебные курсы, учебные пособия и другие ресурсы, необходимые для того, чтобы стать авторитетом в области ИТ.