3.Клиент-серверная архитектура
Содержание
Что это и как работает
Зачем нужен клиент
Зачем нужен сервер
Зачем нужна база
Плюсы архитектуры
Минусы архитектуры
Что тестировать
Итого
Знакомая картинка? А вы ведь постоянно сталкиваетесь с этой
архитектурой — когда покупаете билет в кино онлайн, бронируете путевку на
море или записываетесь к врачу. На клиент-серверной архитектуре построены
все сайты и интернет-сервисы. Также ее используют десктоп-программы,
которые передают данные по интернету. Поэтому ИТ-специалисту нужно
понимать, что это такое и как работает. Об этом я и расскажу в статье. Объясню
на пальцах, с примерами и забавными картинками =). Если вы больше любите
видео-формат, можно посмотреть ролики на youtube.com на ту же тему.
Что это и как работает. Вот есть у нас некий Вася, который решил купить
машину. Такую, как в рекламе — быструю, мощную, красивую! Только стоит
она как хвост самолета, у Васи таких денег нет.
202
Конечно, Вася может подкопить несколько лет, а
потом уже покупать машину. Но ведь хочется здесь и
сейчас! Да и средство передвижения нужно.
А еще Вася не умеет копить — получил
зарплату, закупился основным, оплатил жилье, всё!
Остальное можно потратить. Для таких людей есть
банки, куда можно прийти и взять деньги в кредит.
Конечно, потом вы будете переплачивать, возвращая их назад. Проценты-
то конские. Но зато уже сейчас можете позволить купить себе что-то дорогое.
Вася подумал, прикинул и сказал:
— Да, хочу именно так! 100 рублей с зарплаты платить в банк могу, а
откладывать — нет. Потрачу.
Поэтому Вася идет в банк и говорит:
— Я Василий Иванов, хочу автокредит на 1000р.
Операционистка Катя должна проверить его
кредитную историю. Вдруг ему нельзя давать
кредит, у него плохая история? Может, он уже
набрал 10 кредитов и ни один не выплачивает? Или
вдруг он вообще террорист?! Нужно проверить,
операционисты не знают черные списки наизусть.
У Кати есть специальная программа для проверки данных по клиентам. Эта
программа может быть как web, так и desktop:
203
Web — в браузере открыта, как google или facebook
Desktop — на компьютере, как ворд или калькулятор
Это неважно, смотрит Катя в браузер или просто
в программу. В любом случае это будет клиент. Клиент
— это ваше приложение. То, с которым работает наша
операционистка.
Катя вбивает в программу «Василий
Иванов» и получает информацию по клиенту
— есть ли он в черных списках? Была ли
кредитная история раньше? И так далее. Но
что происходит в потрохах приложения?
Катя ввела данные на клиенте. Но когда
она нажала «проверить», клиент отправил
запрос на сервер:
— Дай мне информацию по Васе
Иванову!
204
Сервер отправил запрос в БД, базу данных:
— Select * from clients where fio = ‘Василий Иванов’. (Дай мне всю
информацию по ФИО ‘Василий Иванов’)
База ответила:
— Вот тебе все, что нашла.
Сервер вернул эту информацию клиенту:
205
А клиент уже отрисовал ее для Кати:
Катя смотрит:
— Ага, кредитная история хорошая.
И делает предложение Васе:
— Пожалуйста, если хотите взять кредит, то мы готовы выделить 1000р на
12 лет под 80% годовых. Устроит?
Вася доволен:
— Да, меня всё устраивает, давайте скорее деньги, и я побежал за
машиной!
206
Все счастливы, все довольны.
Катя даже не догадывается, какой путь проделали данные в программе,
когда она вбила туда ФИО своего клиента. Но мы с вами должны узнать, что же
это за путь такой? И к чему все эти сложности? Почему именно такая структура?
Почему есть клиент, почему есть сервер?
Зачем нужен клиент
Тут все просто — с клиентом работает пользователь. Он нужен, чтобы
превратить байтики программного кода в красивую и понятную картинку.
Пользователь — не программист, он не понимает язык программирования или
sql. Он понимает формочки и кнопочки. Их в клиенте и рисуем.
Зачем нужен сервер
Он мощнее. Клиентов может быть много. В примере с банком у нас может
быть по 10 отделений в 10 городах России, а в каждом отделении по 10
операционисток. Тысяча Катек, и у каждой отдельный компьютер.
207
Итого. Клиент — та программа, с которой работает пользователь. Он знать
не знает, это у него на компьютере программа целиком, или где-то за ней
прячутся сервер с базой, а то и целый RAID. Он работает в браузере или с
desktop-приложением. И всё, что ему нужно знать — это «куда тут тыкать».
Клиенту не нужно много памяти, места на диске и других ресурсов.
Поэтому рабочие места относительно дешево стоят. А это именно то, что нам
нужно, особенно если нужно закупить оборудование для тысяч операционисток
банка.
Сервер — компьютер, на котором хранится само приложение. Весь код,
вся логика, все дополнительные материалы и справочники. Например,
справочник адресов ФИАС или справочник юр лиц ЕГРЮЛ — они тоже
занимают место, как сами по себе, так и в памяти приложения.
Иногда говорят «сервер приложения» и «сервер БД». Это нормально, ведь
фактически сервер — это просто машина, компьютер. А базу и сервер
приложения обычно хранят на разных машинах, ради безопасности. В таком
случае, если говорят «сервер приложения» — речь о втором звене нашей схемы.
Приложения бывают самые разные. Есть ресурсоемкие, им нужно много
памяти и места на диске. Есть «легкие», которые можно развернуть даже на
домашнем компьютере.
БД (база данных) — хранилище данных. Тут вы можете легко поискать
информацию + уверены в том, что она сохранится, даже если в приложении что-
то сломается. Подробнее о ней — в статье «Что такое База Данных (БД)».
Сколько места нужно под базу, зависит от количества данных. Есть
огромные базы в банках, где и 1тб будет мало. А есть совсем небольшие, которые
вы можете установить на своей машине. Например, XAMPP можно поставить. И
врядли вы напихаете туда столько данных, что у вас не останется под них место.
Отдельной базы может не быть, тогда структура станет двузвенной:
клиент-сервер. И все!
Схема условная, в реальной жизни у нас как минимум будет больше
клиентов. А если приложение высоконагруженное, то будет несколько серверов
и несколько баз данных.
208
Do'stlaringiz bilan baham: |