Файл: Модель клиент-сервер (Основы модели «Клиент-сервер).pdf
Добавлен: 27.06.2023
Просмотров: 64
Скачиваний: 3
Введение
В настоящее время модель «Клиент-сервер» очень популярна среди компаний, объединений и пр, т.к. она экономична, имеет свою защиту, к одной базе данных можно подключиться с разных компьютеров (при наличии доступа к базе и подключении к сети сервера), что в свою очередь удобно, как для маленьких компаний, так и для компаний «миллиоников».
Модель «Клиент-сервер» - это такая модель, при которой сервер является «поставщиком», а клиент «заказчиком».
Для того чтобы клиент мог использовать ресурсы сервера, он должен иметь приложение, для взаимодействия с ним, как это показано на рис. 1
Клиентское приложение
Клиентское
приложение
Клиентское приложение
Сервер базы данных
Рис.1
Сервер
В современном языке слово «сервер» обозначает одновременно два понятия: выделенный или приспособленный для тех или иных сетевых сервисных функций компьютер и специализированное программное обеспечение, которое принимает и обрабатывает задачи пользователей. Важной особенностью обоих вариантов является то, что и аппаратное устройство, и софт адаптированы для решения определенных сетевых запросов без прямого вмешательства человека. Это свойство отличает физический сервер от, например, рабочей станции, которая подразумевает присутствие оператора. Классифицируют серверы, как правило, по признаку решаемых ими задач (почтовые, терминальные, 1С, веб) и по внешнему исполнению устройства (tower – вертикальные, аппараты для серверных стоек – горизонтальные).[1]
Для того, чтобы понять, как работает сервер, достаточно воспользоваться примером из каждодневной практики пользователя Интернета. Итак, пользователь в строке поиска набирает то, что хочет найти. Текст этот принято называть запросом. После отправки запрос, с использованием сложной системы маршрутизации, попадает на сервер. Сервер обрабатывает запрос и отправляет пользователю решение. Такой пример допускает сильное упрощение. Существует множество серверов, решающих узкие задачи, но, в общем, работа системы примерно так и выглядит.
Сервер можно представить себе в виде обычного компьютера. Зачастую так и бывает. Персональный компьютер, на котором установлен специальное программное обеспечение, может работать сервером, обеспечивая функционирование небольшой локальной сети или отдельного сайта. Но из настольного компьютера не получится мощный сервер. Для работы сетей с большим количеством клиентов используются рабочие станции, оснащенные оборудованием большой вычислительной мощности и обеспеченные значительными возможностями для хранения информации. Для работы таких структур необходимы специальные помещения, запасные источники электроэнергии и обслуживать их может только высококвалифицированный персонал.
Обеспечивают работу серверов UNIX-подобные операционные системы, в том числе Linux, FreeBSD, IRIX. Не так часто, но используются серверные варианты операционных систем компаний Microsoft, Apple, Sun и других. UNIX-подобные операционные системы предпочтительнее из-за меньших требований к ресурсообеспечению и из-за высокой надежности. Оборудование производят компании с мировым именем. Среди них Intel, IBM, Hewlett-Packard, NEC.[2]
Если вы возьмете обычный компьютер, закачаете туда фильмов, откроете папку с фильмами на доступ по сети - то это уже и будет выделенный медиа сервер. То есть грубо говоря - сервер это компьютер (или программа), выполняющие одну или несколько функций для многих людей (ну для одного крайне редко), который служит для чего-либо.
Сервера бывают разных типов, вот некоторые из них:
Контроллер домена- для обеспечения безопасности и удобства обслуживания компьютерной сети, пользователь должен иметь логин и пароль для доступа на свой компьютер. Можно просто поставить его средствами операционной системы. Но тогда если пользователь забыл или потерял пароль, переехал на другой компьютер, уволился, устроился на работу - системному администратору придется выполнять много лишних действий. В случае с сервером достаточно произвести его настройку. То есть каждое действие выполняется проще и быстрее. Чаще всего Контроллер Домена совмещен с Сервером Данных.
Сервер данных (файлов) и личных папок - если пользователь хранит данные на своем компьютере - то в результате сбоя данные могут быть потеряны (сейчас делают малонадежное оборудование, не то что раньше). Чтобы этого не произошло, данные необходимо хранить в надежном месте. И дублировать. При наличии Контроллера Домена, компьютер пользователей может быть настроен так - чтобы данные, которые пользователь сохраняет к себе на компьютер попадали на сервер и хранились там. Таким образом придется меньше бояться за сохранность данных.
Сервер Приложений - 1С, Консультант+, Гарант - это самые простые программы, которые могут быть устновлены на сервере для обеспечения доступа большому числу сотрудников. [3]
Сервер Имен (DNS) - в сети каждому компьютеру присвоен ip адрес (айпи, айпишник). Между собой компьютеры общаются, обращаясь именно по нему. Для человеков такой вид обращения мало удобен. Например чтобы зайти на сайт ya.ru необходимо было бы набрать: 213.180.204.8 Удобного мало. Вот и придумали обращаться к компьютерам по имени. А сервер имен и есть та программа, которая помогает преобразовывать цифры в читаемые имена. В офисной сети сервер DNS чаще всего совмещен с Контроллером Домена.
Почтовый Сервер -электронная почта. Без нее невозможно представить офисную жизнь. Многим пользователям кажется, что электронная почта - это программа, которая стоит к них на компьютере. Но на самом деле - почтовая программа это только оболочка, а самая главная часть - и есть Почтовый Сервер. Это то место, откуда отправляется почта, куда она приходит. Почтовый сервер общается с другими почтовыми серверами на основе конфигурационных файлов, заданных пользователем. Самые известные почтовые серверы это: Sendmail, Postfix, IIS, Kerio. Почту можно принимать и без почтовой программы - через сайт. А сайты лежат на веб-сервере.
Веб Сервер - это, наверное, самый популярный вид сервера в мире, учитывая то что по статистике каждый день в мире создаются более 7млн. вебстраниц. Веб-сервер нужен чтобы хранить сайты и веб-приложения. Самый популярный веб-сервер - этоApache.
Шлюз - каждый офис имеет выход в интернет. Но кабель интернета, приходящий в здание - один. А пользователей может быть тысяча. Как сделать так чтобы раздать один интернет на тысячу пользователей?
Самые сообразительные скажут: нужен хаб или свитч. Но эти устройства лишь соединяют. А для интернета нам нужно задать каждому пользователю маршрут. Тут нам и поможет шлюз (маршрутизатор, роутер). Это может быть как аппаратная железка (CISCO, JUNIPER, D-LINK) а может быть и сервер с программами. Шлюз лучше делать отдельно от контроллера домена и файлов. А вот сервер имен можно разместить тут. Также как и прокси-сервер.
Прокси Сервер - (от англ. proxy — «представитель, уполномоченный»). Это сервер, который осуществляет запрос в Интернет вместо вас. Зачем это нужно? Анонимность,безопасность,экономия трафика,контроль за посещением сайтов сотрудниками,авторизация выхода в Интернет,блокировка баннеров,блокировка нежелательных сайтов и многое другое. Перечень возможностей такой программы велик.
Сервер Баз Данных - разные программы используют базы данных (MySQL, Oracle, Postgress, MSSQL) для своей работы. Это могут быть сайты, бухгалтерские и многие другие программы. Для большого количества данных ставится выделенный сервер баз данных.[4]
Терминальный Сервер- нужен для создания удаленной работы на сервере сотрудникам. Например - у вас много офисов и всем нужно работать с одной программой или вы не хотите чтобы кто-то знал где находится ваш сервер.Терминальный сервер может быть поставлен для Тонких Клиентов - компьютеров с ограниченными функциями и возможностью загружаться по сети с Терминального сервера.
Видеосервер - если установлена система видеонаблюдения, то один из вариантов ее использования - хранить записи на видеосервере. А просматривать их с помощью разных программ.[5]
Медиа Сервер- используется, в основном, в домашних сетях и домашних кинотеатрах. На нем хранятся видео, музыка, игры. Нужен чтобы много людей могли получать доступ к одному контенту (содержимому).
Термин «сервер» толкуют по-разному. Иногда его относят к оборудованию, а иногда — к ПО. В некотором смысле оба этих определения относятся к архитектуре, подготовленной к получению запросов извне и отвечающей на эти запросы путем выдачи информации заданного типа. Разумеется, в обоих случаях ядром системы является соответствующее ПО. Когда об оборудовании говорят как о сервере, обычно имеют в виду, что на нем работает одна или более серверных программ, что он может быть предназначен для той или иной роли и, возможно, состоит из компонентов, обеспечивающих высокую степень готовности. Вообще говоря, слово «сервер» имеет тот же корень, что и «сервис». Таким образом, с точки зрения аппаратных средств сервер — это компьютер, который способен оказывать некоторые услуги другим, подсоединенным к нему компьютерам. Подразумевается, что компьютеры каким-то образом связаны с сервером и друг с другом (рис. 1).[6]
Рис.1
2. Основы модели «Клиент-сервер
Модели клиент-сервер - это технология взаимодействия в информационной сети. Сервер обладает правом управления тем или иным ресурсом, а клиент – пользования им. Каждый конкретный сервер определяется видом того ресурса, которым он владеет. Например, назначением сервера баз данных является обслуживание запросов клиентов, связанных с обработкой данных; файловый сервер, или файл-сервер, распоряжается файловой системой.[7]
Этот принцип распространяется и на взаимодействие программ. Программа, выполняющая предоставление соответствующего набора услуг, рассматривается в качестве сервера, а программы, пользующиеся этими услугами, принято называть клиентами. Программы имеют распределенный характер, т.е. одна часть функций прикладной программы реализуется в программе-клиенте, а другая - в программе-сервере, а для их взаимодействия определяется некоторый протокол.
Рассмотрим эти функции. Один из основных принципов технологии клиент-сервер заключается в разделении функций стандартного интерактивного приложения на четыре группы, имеющие различную природу:
Функции ввода и отображения данных.
Прикладные функции, характерные для данной предметной области (для банковской системы - открытие счета, перевод денег и т.д.).
Функции хранения и управления информационно-вычислительными ресурсами (базами данных, файловыми системами и т.д.).
Служебные функции, осуществляющие связь между функциями первых трех групп.
В соответствии с этим в любом приложении выделяются следующие логические компоненты: компонент представления (presentation), реализующий функции первой группы; прикладной компонент (businessapplication), поддерживающий функции второй группы; компонент доступа к информационным ресурсам (resource manager), поддерживающий функции третьей группы, а также вводятся и уточняются соглашения о способах их взаимодействия (протокол взаимодействия).[8]
Клиент и сервер не играют симметричную роль. Процесс-сервер инициализируется и, затем, переходит в состояние ожидания запросов от возможных клиентов. Как правило, процесс-клиент запускается в интерактивном режиме и посылает запросы серверу. Сервер исполняет полученный запрос, причем это может подразумевать диалог с клиентом, а может и нет. Затем сервер вновь переходит в состояние ожидания других клиентов.
Различают два типа процессов-серверов:
- итеративные серверы: процесс-сервер сам обрабатывает ответ. Этот тип сервера используется в случае, если время обработки весьма непродолжительно или если сервер используется единственным клиентом.
- параллельные серверы: процесс-сервер вызывает для обработки вызова клиента другой процесс . Этот процесс создается системным вызовом fork (). Порождающий процесс не блокируется по окончании выполнения порожденного процесса и может, таким образом, ждать другие запросы.
С каждым сервером связан служебный (сервисный) адрес. Клиент посылает запросы по этому адресу. В зависимости от вида осуществляемой обработки данных, различают серверы без состояния (stateless) и серверы с состоянием (statefull). Сервер без состояния не сохраняет о своих клиентах никакой информации. Сервер с состоянием сохраняет информацию о состоянии своих клиентов после каждого запроса. В случае разрыва связи, повторный запуск проще у серверов без состояния, но иногда это может привести к случайным срабатываниям.