в чем заключается основной принцип технологии клиент сервер

В чем заключается основной принцип технологии клиент сервер

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

Компанией Gartner Group, специализирующейся в области исследования информационных технологий, предложена следующая классификация двухзвенных моделей взаимодействия клиент-сервер (двухзвенными эти модели называются потому, что три компонента приложения различным образом распределяются между двумя узлами):

Исторически первой появилась модель распределенного представления данных, которая реализовывалась на универсальной ЭВМ с подключенными к ней неинтеллектуальными терминалами. Управление данными и взаимодействие с пользователем при этом объединялись в одной программе, на терминал передавалась только «картинка», сформированная на центральном компьютере.

С появлением первых специализированных серверов баз данных появилась возможность другой реализации модели доступа к удаленной базе данных. В этом случае ядро СУБД функционирует на сервере, протокол обмена обеспечивается с помощью языка SQL. Такой подход по сравнению с файловым сервером ведет к уменьшению загрузки сети и унификации интерфейса «клиент-сервер». Однако, сетевой трафик остается достаточно высоким, кроме того, по прежнему невозможно удовлетворительное администрирование приложений, поскольку в одной программе совмещаются различные функции.

Сейчас ряд поставщиков коммерческих СУБД объявило о планах реализации механизмов выполнения хранимых процедур с использованием языка Java. Это соответствует концепции «тонкого клиента», функцией которого остается только отображение данных (модель удаленного представления данных).

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

Источник

IT-блог о веб-технологиях, серверах, протоколах, базах данных, СУБД, SQL, компьютерных сетях, языках программирования и создание сайтов.

О модели взаимодействия клиент-сервер простыми словами. Архитектура «клиент-сервер» с примерами

Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем рубрику Сервера и протоколы. В этой записи мы поговорим о том, как работают приложения и сайты в сети Интернет, да и вообще в любой компьютерной сети. В основе работы приложения лежит так называемая модель взаимодействия клиент-сервер, которая позволяет разделять функционал и вычислительную нагрузку между клиентскими приложениями (заказчиками услуг) и серверными приложениями (поставщиками услуг).

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Модель взаимодействия клиент-сервер. Архитектура «клиент-сервер».

Итак, небольшая аннотация к записи: сначала мы разберемся с концепцией взаимодействия клиент сервер. Затем поговорим о том зачем вообще веб-мастеру нужно понимать модель клиент-сервер. Далее мы посмотрим на архитектуру приложений, которые работают по принципу клиент-сервер и в завершении рассмотрим преимущества и недостатки данной модели.

Концепция взаимодействия клиент-сервер

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

Здесь мы разберемся с концепцией, которая позволяет нам выполнять все эти действия в сети Интернет. Данная концепция получила название «клиент-сервер». Как понятно из названия, в данной концепции участвуют две стороны: клиент и сервер. Здесь всё как в жизни: клиент – это заказчик той или иной услуги, а сервер – поставщик услуг. Клиент и сервер физически представляют собой программы, например, типичным клиентом является браузер. В качестве сервера можно привести следующие примеры: все HTTP сервера (в частности Apache), MySQL сервер, локальный веб-сервер AMPPS или готовая сборка Denwer (последних два примера – это не проста сервера, а целый набор серверов).

Клиент и сервер взаимодействую друг с другом в сети Интернет или в любой другой компьютерной сети при помощи различных сетевых протоколов, например, IP протокол, HTTP протокол, FTP и другие. Протоколов на самом деле очень много и каждый протокол позволяет оказывать ту или иную услугу. Например, при помощи HTTP протокола браузер отправляет специальное HTTP сообщение, в котором указано какую информацию и в каком виде он хочет получить от сервера, сервер, получив такое сообщение, отсылает браузеру в ответ похожее по структуре сообщение (или несколько сообщений), в котором содержится нужная информация, обычно это HTML документ.

Сообщения, которые посылают клиенты получили названия HTTP запросы. Запросы имеют специальные методы, которые говорят серверу о том, как обрабатывать сообщение. А сообщения, которые посылает сервер получили название HTTP ответы, они содержат помимо полезной информации еще и специальные коды состояния, которые позволяют браузеру узнать то, как сервер понял его запрос.

Сейчас мы схематично описали, как взаимодействуют клиент и сервер на седьмом уровне модели OSI, но, на самом деле это взаимодействие происходит на всех семи уровнях. Когда клиент отправляет запрос, сообщение упаковывается, можно представить, что сообщение заворачивается в семь оберток (хотя их может быть намного больше или же меньше), а когда сообщение получает сервер, он начинает эти обертки разворачивать.

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

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

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Простая схема взаимодействия клиент-сервер

Мы видим, что к одному серверу может обращаться сразу несколько клиентов (действительно, на одном сайте может находиться несколько посетителей). Также стоит заметить, что количество клиентов, которые могут одновременно взаимодействовать с сервером зависит от мощности сервера и от того, что хочет получить клиент от сервера.

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

Почему веб-мастеру нужно понимать модель взаимодействия клиент-сервер

Давайте теперь ответим на вопрос: «зачем веб-мастеру или веб-разработчику понимать концепцию взаимодействия клиент-сервер?». Ответ, естественно, очевиден. Чтобы что-то делать своими руками нужно понимать, как это работает. Чтобы сделать сайт и, чтобы он правильно работал в сети Интернет или хотя бы просто работал, нам нужно понимать, как работает сеть Интернет.

Мы уже упоминали, что большая часть сетевых протоколов имеют архитектуру клиент-сервер. Например, веб-мастеру или веб-разработчику будут интересны протоколы седьмого и шестого уровня эталонной модели. Сетевым администраторам важно понимать, как происходит взаимодействие на уровнях с пятого по второй. Для инженеров связи наибольший интерес представляют протоколы с четвертого по первый уровень модели OSI.

Поэтому если вы действительно хотите быть профессионалом в сфере web, то сперва вам необходимо понимать, как происходит взаимодействии в сети (именно на седьмом уровне), а уже потом начинать изучать инструменты, которые позволят создавать сайты.

Архитектура «клиент-сервер»

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

Существует два вида архитектуры взаимодействия клиент-сервер: первый получил название двухзвенная архитектура клиент-серверного взаимодействия, второй – многоуровневая архитектура клиент-сервер (иногда его называют трехуровневая архитектура или трехзвенная архитектура, но это частный случай).

Принцип работы двухуровневой архитектуры взаимодействия клиент-сервер заключается в том, что обработка запроса происходит на одной машине без использования сторонних ресурсов. Двухзвенная архитектура предъявляет жесткие требования к производительности сервера, но в тоже время является очень надежной. Двухуровневую модель взаимодействия клиент-сервер вы можете увидеть на рисунке ниже.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Двухуровневая модель взаимодействия клиент-сервер

Здесь четко видно, что есть клиент (1-ый уровень), который позволяет человеку сделать запрос, и есть сервер, который обрабатывает запрос клиента.

Если говорить про многоуровневую архитектуру взаимодействия клиент-сервер, то в качестве примера можно привести любую современную СУБД (за исключением, наверное, библиотеки SQLite, которая в принципе не использует концепцию клиент-сервер). Суть многоуровневой архитектуры заключается в том, что запрос клиента обрабатывается сразу несколькими серверами. Такой подход позволяет значительно снизить нагрузку на сервер из-за того, что происходит распределение операций, но в то же самое время данный подход не такой надежный, как двухзвенная архитектура. На рисунке ниже вы можете увидеть пример многоуровневой архитектуры клиент-сервер.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Многоуровневая архитектура взаимодействия клиент-сервер

Типичный пример трехуровневой модели клиент-сервер. Если говорить в контексте систем управления базами данных, то первый уровень – это клиент, который позволяет нам писать различные SQL запросы к базе данных. Второй уровень – это движок СУБД, который интерпретирует запросы и реализует взаимодействие между клиентом и файловой системой, а третий уровень – это хранилище данных.

Если мы посмотрим на данную архитектуру с позиции сайта. То первый уровень можно считать браузером, с помощью которого посетитель заходит на сайт, второй уровень – это связка Apache + PHP, а третий уровень – это база данных. Если уж говорить совсем просто, то PHP больше ничего и не делает, кроме как, гоняет строки и базы данных на экран и обратно в базу данных.

Преимущества и недостатки архитектуры клиент-сервер

Преимуществом модели взаимодействия клиент-сервер является то, что программный код клиентского приложения и серверного разделен. Если мы говорим про локальные компьютерные сети, то к преимуществам архитектуры клиент-сервер можно отнести пониженные требования к машинам клиентов, так как большая часть вычислительных операций будет производиться на сервере, а также архитектура клиент-сервер довольно гибкая и позволяет администратору сделать локальную сеть более защищенной.

К недостаткам модели взаимодействия клиент-сервер можно отнести то, что стоимость серверного оборудования значительно выше клиентского. Сервер должен обслуживать специально обученный и подготовленный человек. Если в локальной сети ложится сервер, то и клиенты не смогут работать (в качестве частного случая можно привести пример: мощности сервера не всегда хватает, чтобы удовлетворит запросы клиентов, если вы хоть раз работали с биллинговыми системами, то понимаете о чем я: время ожидания ответа от сервера может быть очень большим).

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

Источник

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Как видно из названия, главные «действующие лица»:

· клиент – компьютерное устройство, которое отсылает запросы серверу, касающиеся выполнения определенных задач или предоставления конкретной информации.

· сервер – компьютерное устройство, гораздо мощнее обычного ПК.

Система работает по следующему принципу:

1. Клиент отправляет запрос серверной машине.

2. Сервер принимает обращение с требованием выполнить определенное действие и выполняет поставленную задачу.

3. Программно-аппаратный комплекс отправляет клиенту результат выполненной работы, обработанного запроса.

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

Основные компоненты системы:

· клиент. Рабочая станция считается входной точкой конечного пользователя в данной системе. Отправляет запросы, получает ответы;

· сервер. Взаимодействует с многочисленными клиентами и решает поставленные ими задачи;

· сеть. Здесь происходит передача данных. Посредством сети можно соединить рабочие машины общими ресурсами;

· приложения. Могут обрабатывать информацию, организовывать физическое распределение данных между сервером и клиентом. Программным обеспечением оснащают серверные устройства для сбора данных, работы с ними и хранения. А также ПО устанавливают на компьютерной станции-клиенте.

О технологии клиент-сервер

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

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

Именно технология клиент сервер предоставляет возможность реализовать вышеуказанные многочисленные поставленные задачи. Обычно клиент – это браузер конкретного пользователя. А серверами зачастую выступают:

· любые серверы http;

· наборы серверных машин (например, Denwer);

Обмен информацией между клиентом и сервером происходит благодаря сетевым протоколам в интернете. Каждой услуге соответствует определенный протокол, их предостаточно. Запросы, отсылаемые клиентом, классифицируют как http сообщения. Здесь четко указано, какие сведения нужно предоставить, в каком оформлении. Серверное устройство после анализа и обработки запроса, обычно отвечает html документом – дает свой http ответ.

Сообщение от клиента поступает с дополнительными данными, чтобы серверу было понятно, как с ним работать. Ответ машины также отправляется с кодами помимо полезных запрашиваемых данных, чтобы браузер оценил понятливость аппаратно-программного комплекса при обработке его запроса.

Смотря на каком уровне осуществляется взаимосвязь клиента с сервером, отсылаемые сообщения браузером упаковываются по-разному. Как будто они оборачиваются клиентом в несколько слоем обертки. После того, как послание поступило серверной станции, она приступает к разворачиванию всех этих слоев, проводит анализ информации и сбор данных.

Говоря больше о технологии клиент-сервер, следует уточнить, что браузер первый выходит на контакт и делает запрос серверной машине, которая лишь предоставляет услуги в ответ на сообщения и указывает, какие условия нужно при этом соблюдать. Разные компьютерные устройства используют, чтобы установить программное обеспечение клиента и серверного оборудования. Но есть случаи, когда они работали на одном ПК.

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

Архитектура клиент-сервер

Благодаря архитектуре клиент и сервер определены позиции взаимной связи между компьютерными машинами лишь в целом. Что же касается нюансов взаимодействия, они определены протоколами. Технология вполне прозрачно намекает на разделение в сети рабочих машин: серверы и клиенты. Рабочий контакт всегда инициирован клиентской машиной. Протокол же описывает, по каким правилам этот контакт установлен и действует.

Архитектура взаимодействия между клиентом и сервером подразделяется на два вида:

· двухзвенная. Сторонние ресурсы не задействованы. Одна машина обрабатывает поступившие сообщения. В этом случае сервер должен быть высокопроизводительным. Несмотря на эти жесткие требования, архитектура очень надежная. Первый уровень – клиент отправляет запрос. Второй уровень – сервером принимается сообщение, обрабатывается и отправляется ответ.

· многоуровневая. Речь идет о любой современной архитектуре СУБД. Принципиальное отличие и особенность: запросом клиента занимаются одновременно несколько серверных устройств. Операции перераспределяются, нагрузка на серверную машину снижена и оптимальная. Единственный минус: низкая надежность по сравнению с предыдущим вариантом.

Многоуровневая клиент-серверная архитектура

Обработкой данных занимаются несколько разных серверов. Благодаря такому подходу возможности серверов и клиентов используются более эффективно за счет разделения функций:

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

На веб-технологию очень просто перевести многоуровневую систему. Заменяют клиентскую часть браузером спецтипа или универсального назначения. При этом дополняют веб-сервером и компактными программными модулями сервер приложений. Многоуровневая архитектура также использует менеджеры транзакций. Обмен информацией одновременно происходит между одной серверной машиной приложений и несколькими серверами БД.

· информация защищена и безопасно хранится. Так как серверная машина БД ведет базы данных, можно независимо от программ пользователя обрабатывать информацию в базе;

· повышенная стойкость к сбоям. Сохранена целостность информационных запросов, они доступны другим пользователям, если во время работы клиента случился сбой;

· масштабируемость. Архитектура адаптируется к увеличению количества пользователей. База данных также расширяется в объеме. Однако при этом не поставлена задача менять ПО. Система наращивает аппаратные средства, так происходит подстройка под меняющиеся факторы;

· повышенная защита данных от взлома и опасных атак;

· один пользователь меньше нагружает сеть, поэтому увеличивается ее пропускная способность. Можно удовлетворить запросы большего количества пользователей;

Преимущества и недостатки архитектуры клиент-сервер

Разделен код программы клиентского и серверного приложения. Это главное преимущество архитектуры. Выбрана локальная сеть. Поэтому плюсы следующие:

· к клиентским рабочим станциям выдвигают низкие запросы;

· преимущественно все вычислительные операции выполняются на серверах;

· реально повысить защиту локальной сети.

Но не все так гладко с клиент-серверной архитектурой, есть и недостатки:

· серверные машины стоят в разы дороже, чем клиентские рабочие станции;

· обслуживание серверов доверяют только квалифицированным и профессионально подготовленным специалистам;

· работа клиентских компьютерных устройств остановлена, если в локальной сети «полетело» серверное оборудование.

Важно понимать, что нет четкого разделения оборудования на клиентское и серверное. Просто архитектура к/с дает возможность перераспределить и оптимизировать загруженность и распределить функциональность между этими рабочими станциями.

Источник

Клиент-серверная архитектура в картинках

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Знакомая картинка? А вы ведь постоянно сталкиваетесь с этой архитектурой — когда покупаете билет в кино онлайн, бронируете путевку на море или записываетесь к врачу.

На клиент-серверной архитектуре построены все сайты и интернет-сервисы. Также ее используют десктоп-программы, которые передают данные по интернету. Поэтому ИТ-специалисту нужно понимать, что это такое и как работает.

Об этом я и расскажу в статье. Объясню на пальцах, с примерами и забавными картинками =) Если вы больше любите видео-формат, можно посмотреть мой ролик на youtube на ту же тему.

Содержание

Что это и как работает

Вот есть у нас некий Вася, который решил купить машину. Такую, как в рекламе — быструю, мощную, красивую! Только стоит она как хвост самолета, у Васи таких денег нет.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Конечно, Вася может подкопить несколько лет, а потом уже покупать машину. Но ведь хочется здесь и сейчас! Да и средство передвижения нужно…

А еще Вася не умеет копить — получил зарплату, закупился основным, оплатил жилье, всё! Остальное можно потратить. Для таких людей есть банки, куда можно прийти и взять деньги в кредит.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Конечно, потом вы будете переплачивать, возвращая их назад. Проценты-то конские. Но зато уже сейчас можете позволить купить себе что-то дорогое.

Вася подумал, прикинул и сказал:

— Да, хочу именно так! 100 рублей с зарплаты платить в банк могу, а откладывать — нет. Потрачу.

Поэтому Вася идет в банк и говорит:

— Я Василий Иванов, хочу автокредит на 1000р.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

У Кати есть специальная программа для проверки данных по клиентам. Эта программа может быть как web, так и desktop:

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Катя вбивает в программу «Василий Иванов» и получает информацию по клиенту — есть ли он в черных списках? Была ли кредитная история раньше? И так далее. Но что происходит в потрохах приложения?

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Катя ввела данные на клиенте. Но когда она нажала «проверить», клиент отправил запрос на сервер:

— Дай мне информацию по Васе Иванову!

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Сервер отправил запрос в БД, базу данных:

— Select * from clients where fio = ‘Василий Иванов’. (Дай мне всю информацию по ФИО ‘Василий Иванов’)

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

— Вот тебе все, что нашла.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Сервер вернул эту информацию клиенту:

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

А клиент уже отрисовал ее для Кати:

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

— Ага, кредитная история хорошая.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

И делает предложение Васе:

— Пожалуйста, если хотите взять кредит, то мы готовы выделить 1000р на 12 лет под 80% годовых. Устроит?

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

— Да, меня всё устраивает, давайте скорее деньги, и я побежал за машиной!
Все счастливы, все довольны.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Катя даже не догадывается, какой путь проделали данные в программе, когда она вбила туда ФИО своего клиента. Но мы с вами должны узнать, что же это за путь такой? И к чему все эти сложности? Почему именно такая структура? Почему есть клиент, почему есть сервер?

Зачем нужен клиент

Тут все просто — с клиентом работает пользователь. Он нужен, чтобы превратить байтики программного кода в красивую и понятную картинку. Пользователь — не программист, он не понимает язык программирования или sql. Он понимает формочки и кнопочки. Их в клиенте и рисуем.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Зачем нужен сервер

Клиентов может быть много. В примере с банком у нас может быть по 10 отделений в 10 городах России, а в каждом отделении по 10 операционисток. Тысяча Катек, и у каждой отдельный компьютер.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

А мы ведь хотим, чтобы приложение работало быстро. Чтобы оно не тупило и не зависало, нервируя операциониста и заставляя клиента ждать. Значит, машина нужна мощная. Но если делать мощным каждый компьютер операциониста, денег придется вложить очень много!

Поэтому мы выносим всю основную логику на сервер. И вот его уже делаем мощным! А клиентские машины могут быть дешевыми, потому что на них остается лишь логика в стиле «запросить информацию и красиво отрисовать».

Нет дублирования кода

Если бы у нас были только клиентские машины, на каждой из них хранился бы одинаковый код по обработке логики, лежала вся база данных, все справочники террористов и прочая. Но так как сервер и БД вынесены в отдельные звенья, с клиентской машины освобождается куча места… И кода.

Не надо дублировать код, ведь вся основная логика вынесена на более мощный сервер.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

На сервере и в базе хранится информация, недоступная простому операционисту. Это:

Есть операционисты, готовые за денюшку слить информацию о клиентах. Есть нечистые на руку люди, готовые невзначай заглянуть через плечо. А, может, клиент сам такой человек. Представляете, отпихивает Вася хрупкую Катю, садится за ее компьютер, и переводит себе на счет миллионы, пока его не повяжет охрана.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Зачем нужна база

При чем же тут БД? Вот у нас есть наш сервер, пусть он и хранит всю информацию. Бывает и так, иногда база просто не нужна и у нас остается двузвенная архитектура клиент-сервер.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

В таком случае все данных сервер хранит в памяти. Вот только если сервер упадет, или просто перезагрузится — вся информация будет потеряна. Все, что было в памяти, стирается при выключении системы.

БД (база данных) — отдельный программный продукт, который позволяет:

Да, базы может не быть. Но когда она есть, мы уверены в сохранности данных и легко можем по ним поискать.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Плюсы архитектуры

Резюмируем плюсы архитектуры:

Минусы архитектуры

Упало одно звено — все отдыхают

Если упал сервер или отвалилась база, то есть испортилось 1 звено — всё, все в ступоре, все отдыхают. Сотни, тысячи, да хоть миллионы клиентов если есть — никто не может работать. Все операционистки грустно смотрят на окно «Простите, что-то пошло не так» и разводят руками перед клиентом.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Именно поэтому в бизнес-критичном ПО архитектуру усложняют и даже дублируют. Банк с тысячами операционистов не может позволить себе простой. Поэтому они используют кластер серверов — один упал, остальные работают.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Как в таком случае клиент понимает, куда ему отправлять запрос?

Перед серверами ставят балансировщик, и клиент шлет запрос туда. Сколько бы серверов не поставили в кластер, клиенту это не интересно. У него есть один URL — адрес балансировщика.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

И вот с клиента поступает запрос:

— Дай мне всю информацию по Васе Иванову.

— Ребята, новый запрос! Кто меньше загружен?

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

— У меня 5 запросов в очереди стоит.

Балансировщик отправляет запрос второму серверу.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Такая схема используется для высоконагруженного приложения — когда запросов поступает так много, что один сервер с ними просто не справляется.

Facebook, amazon, google — туда заходят миллионы пользователей. Один сервер с ними не справится. Поэтому ставят кластер, а балансировщик делит между ними нагрузку. И в таком случае в кластере может быть не 2 сервера, а 10, 15, сколько нужно, столько и ставим.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

При этом мы можем точно также балансировать базу данных. У нас может быть несколько копий баз данных на самых разных машинах, и балансировщик отправляет запросы то к одной, то ко второй.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

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

При этом может быть и схема холодного резерва — когда у нас второй сервер является резервной копией «на всякий случай». Все запросы идут на первый сервер, второй отдыхает.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Но если с первым сервером что-то случится и он помрет, балансировщик перенаправит нагрузку на второй сервер:

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

В это время у администраторов будет время разобраться с проблемой на сервере 1.

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

Простой может быть не только потому, что случилось что-то плохое. Есть еще штатное обновление приложения. Обе схемы резервирования позволяют обновляться безболезненно. Если в кластере два сервера, обновление будет выглядеть так:

Таким образом, схемы резервирования помогают нам устранить проблему «упало 1 звено — все отдыхают». Клиент никогда не узнает, что один или несколько серверов в кластере сдохли, у него всё как работало, так и работает.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Высокая стоимость оборудования

Сервера стоят дорого. Туда нельзя поставить обычный SSD как для домашнего компьютера. Почему? Потому что к железу для серверов совсем другие требования по надежности + есть поддержка специфичных функций:

— у HDD это специальная микропрограмма контроллера, которая оптимизирована для работы диска в RAID, дома это не нужно.

— у SSD это наличие группы конденсаторов, которые хранят энергию на случай отключения питания, чтобы хватило времени скинуть из DDR кэша данные в энергонезависимую память и данные не побились.

SSD — быстро работающий диск, HDD — обычный. RAID — когда мы N дисков вместе соединили, а DDR кэш — это оперативная память

Плюс у серверных решений гарантия обычно гораздо дольше: 5 лет, а не год.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

По цене отличаются в 2 раза. Например, SSD:

Вроде не сильно отличается, да? Но смысл в том, что для дома 1 тб хватает за глаза — и фоточки все влезут, и кино, и куча приложений… А для базы данных иногда и 10 тб будет мало. А если делать кластер, то умножаем стоимость на 2, если не больше. Поэтому и разница в цене кажется огромная, но при пересчете на гигабайт небольшая выходит.

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

Нужно нанять сисадмина

Нам нужно нанять сисадмина, который будет следить за всеми нашеми серверами приложения и БД. Добавляем его зарплату к стоимости оборудования!

Что тестировать

Чтобы понимать, что тестировать, надо понимать, с чем имеет дело человек.

Пользователь работает с клиентом. Это может быть web или desktop приложение, не суть. Операционистке Кате дали рабочее место, показали какую программу запускать и как с ней работать. Она знать не знает о наличии серверов и БД, она работает только с клиентом.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Поэтому тестировщик в первую очередь проверяет клиент! Потому что сервер может работать идеально, вы можете даже написать тесты на уровне API и они все будут зелененькие, и кажется, что все зашибись! А пользователь загрузит отчет и увидит ошибку. Ой.

Сервер работает, на клиенте ошибка. И плевать на сотни «зеленых» автотестов. У пользователя все равно ошибка. И наша задача — посмотреть с его точки зрения.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Однако, если у вас есть доступ к серверу приложения и его базе данных — стоит проверять и их тоже! Так мы можем увидеть «будущий баг». Например:

— Ну, наверное, их и не заполняли.

А их заполняли! Просто сохранение криво сработало. Поэтому, если у нас только черный ящик, то нужно проверять, «а реально ли сохранились данные?». Сохранили? Откройте карточку в новом окне или вызовете информацию через API-метод.

Если доступ к базе есть — просто проверьте по ней, что все хорошо. Если есть доступ к серверным логам — проверьте их на наличие ошибок.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Помимо простых пользователей бывают злые люди, которые пытаются встрять в наше приложение и своровать деньги / данные. Они используют не клиент или сервер — туда у них доступа нет. Они пытаются перехватить данные в пути от клиента к серверу, или от сервера к БД.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Ну а раз нехорошие люди могут это сделать, то тестировщик тоже должен это уметь! Потому что тестировщик предоставляет информацию о нашем продукте.

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Тестировщик изучает уязвимости и потом рассказывает команде:

— Ребята, вот я проверил, у нас есть такие-то и такие-то потенциальные дыры. Давайте подумаем, надо нам их как-то закрывать или нет.

То есть не факт, что исправлять проблему будут. Может, у вас некритичное приложение — данные не утекут, деньги вы не храните. Тогда и заморачиваться лишний раз никто не будет, потому что тестировать на защищенность — дорого, специалистов мало.

Но какие-то базовые проверки типа sql-иньекций или XSS-атак стоит изучить и проверить на своем приложении. Хотя бы чтобы понять их критичность. Ведь если атака сломает клиент — ну и пусть, сам себе буратино. А если атака положит сервер, это уже не очень хорошо. И надо хотя бы знать, от чего это бывает.

Итого

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

Клиент — та программа, с которой работает пользователь. Он знать не знает, это у него на компьютере программа целиком, или где-то за ней прячутся сервер с базой, а то и целый RAID. Он работает в браузере или с desktop-приложением. И всё, что ему нужно знать — это «куда тут тыкать».

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

Сервер — компьютер, на котором хранится само приложение. Весь код, вся логика, все дополнительные материалы и справочники. Например, справочник адресов ФИАС или справочник юр лиц ЕГРЮЛ — они тоже занимают место, как сами по себе, так и в памяти приложения.

Иногда говорят «сервер приложения» и «сервер БД». Это нормально, ведь фактически сервер — это просто машина, компьютер. А базу и сервер приложения обычно хранят на разных машинах, ради безопасности. В таком случае, если говорят «сервер приложения» — речь о втором звене нашей схемы.

Приложения бывают самые разные. Есть ресурсоемкие, им нужно много памяти и места на диске. Есть «легкие», которые можно развернуть даже на домашнем компьютере.

БД (база данных) — хранилище данных. Тут вы можете легко поискать информацию + уверены в том, что она сохранится, даже если в приложении что-то сломается. Подробнее о ней — в статье «Что такое База Данных (БД)»

Сколько места нужно под базу, зависит от количества данных. Есть огромные базы в банках, где и 1тб будет мало. А есть совсем небольшие, которые вы можете установить на своей машине. Например, XAMPP можно поставить. И врядли вы напихаете туда столько данных, что у вас не останется под них место.

Отдельной базы может не быть, тогда структура станет двузвенной: клиент-сервер. И все!

Схема условная, в реальной жизни у нас как минимум будет больше клиентов. А если приложение высоконагруженное, то будет несколько серверов и несколько баз данных:

в чем заключается основной принцип технологии клиент сервер. Смотреть фото в чем заключается основной принцип технологии клиент сервер. Смотреть картинку в чем заключается основной принцип технологии клиент сервер. Картинка про в чем заключается основной принцип технологии клиент сервер. Фото в чем заключается основной принцип технологии клиент сервер

PS — больше полезных статей ищите в моем блоге по метке «полезное». А полезные видео — на моем youtube-канале

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *