- Тема 5.2. Сетевые ос. Клиент-сервер
- 11. Компьютерные сети. Сервер, клиент и редиректор. Функциональные роли компьютеров в сети.
- 12. Модель процессов в многозадачной среде. События, приводящие к созданию процессов и завершению процессов.
- Глава 4. Модель «клиент-сервер» и её реализация в компьютерных сетях
- 4.1. Определение модели «клиент-сервер»
- 4.2. Виды сетевых служб
Тема 5.2. Сетевые ос. Клиент-сервер
Клиент-сервер (Client-server) — вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. Нередко клиенты и серверы взаимодействуют через компьютерную сеть и могут быть как различными физическими устройствами, так и программным обеспечением.
Многоуровневая архитектура клиент-сервер
Многоуровневая архитектура клиент-сервер — разновидность архитектуры клиент-сервер, в которой функция обработки данных вынесена на один или несколько отдельных серверов. Это позволяет разделить функции хранения, обработки и представления данных для более эффективного использования возможностей серверов и клиентов.
Частные случаи многоуровневой архитектуры:
- Трёхуровневая архитектура
- Сеть с выделенным сервером
- Сеть с выделенным сервером (англ. Client/Servernetwork) — это локальная вычислительная сеть (LAN), в которой сетевые устройства централизованы и управляются одним или несколькими серверами. Индивидуальные рабочие станции или клиенты (такие, как ПК) должны обращаться к ресурсам сети через сервер(ы).
Сетевая операционная система— операционная система со встроенными возможностями для работы в компьютерных сетях. К таким возможностям можно отнести:
- поддержку сетевого оборудования
- поддержку сетевых протоколов
- поддержку протоколов маршрутизации
- поддержку фильтрации сетевого трафика
- поддержку доступа к удалённым ресурсам, таким как принтеры, диски и т. п. по сети
- поддержку сетевых протоколов авторизации
- наличие в системе сетевых служб позволяющей удалённым пользователям использовать ресурсы компьютера
Примеры сетевых операционных систем:
- Novell NetWare
- LANtastic
- Microsoft Windows (95, NT, XP, Vista, Seven)
- Различные UNIX системы, такие как Solaris, FreeBSD
- Различные GNU/Linux системы
- IOS
- ZyNOS компании ZyXEL
Современные сетевые ОС (UNIX,WIN2000,NOWELL NW) реализуют полный стек протоколов модели OSI.Так в UNIX поддерживается стек протоколов (TCP/IP,NW LINK,NET BIOS). В Nowell NW поддерживается стек протоколов IPX/SPX.В Aplle Mac используется свой набор протоколов. Независимо от производителя все сетевые ОС осуществляют следующие функции:
- Распределение функций между узлами сети(клиенты и серверы);
- Поддержка коммуникационных протоколов;
- Поддержка сетевой файловой системы;
- Защита данных.
Все сетевые ОС можно разделить на 2 вида:
- Одноранговые или равноправные сети (каждый из каждых). Пример Windows 9x;
- Сеть на основе выделенного сервера.
К1.В одноранговой сети все ПК равноправны , однако в сети есть и клиенты и серверы. Обычно каждый ПК может переводиться в режим сервера , если пользователь сам этого захочет (выделяется общий ресурс). Сетевая ОС для одноранговой сети не отличается надежной производительностью и уровнем защиты. Использывается в сети когда 10-15 пк. Примером одноранговой сети есть Win94/98/ OS/2 /LANtastic K2.В этой сети всегда существует главный ПК – сервер, который специально оптимизирован для быстрой обработки запросов от многих клиентов (порядка -100) и для управления защитой файлов и каталогов. В больших сетях выделяются отдельные серверы для отдельных приложений (WEB – сервер, Файл – сервер, Принт – сервер, сервер БД и почтовый сервер) Серверное программное обеспечение отличается высокой сложностью, надежностью и производительностью. Оно может функционировать на разных платформах. Разные ОС – Unix, Win 2000Server, NovellNetWare Клиентское программное обеспечение любой ОС позволяет переадресовать запрос пользывателя из лок. ПК к серверу с необходимыми ресурсами. Это осуществляется с помощью специального редиректора (перехватчика), который перехватывает запрос и определяет должен ли он выполнятся на локальном пк или на сервере. Структура ре-директора:Основное назначение Главными задачами являются разделение ресурсов сети (например, дисковые пространства) и администрирование сети. С помощью сетевых функций системный администратор определяет разделяемые ресурсы, задаёт пароли, определяет права доступа для каждого пользователя или группы пользователей. Отсюда деление:
- сетевые ОС для серверов;
- сетевые ОС для пользователей.
- Существуют специальные сетевые ОС, которым приданы функции обычных систем (Пр.: Windows NT) и обычные ОС (Пр.: Windows XP), которым приданы сетевые функции. Сегодня практически все современные ОС имеют встроенные сетевые функции.
11. Компьютерные сети. Сервер, клиент и редиректор. Функциональные роли компьютеров в сети.
Компьютерная сеть (вычислительная сеть, сеть передачи данных) — система связи компьютеров или вычислительного оборудования (серверы, маршрутизаторы и другое оборудование). Для передачи данных могут быть использованы различные физические явления как правило — различные виды электрических сигналов, световых сигналов или электромагнитного излучения.
Редиректор (англ. redirector, перенаправляющий) — модуль в прокси-серверах, отвечающий за фильтрацию и обработку адресов (URL) запросов от клиентов к серверам. Может быть как встроенным в прокси-сервер, так и запускающийся отдельным приложением (скриптом).
Задачи, решаемые с помощью редиректора:
- Закрытие доступа к определённым адресам по сложным критериям.
- Замена одного содержимого на другое (например, баннеров на пустые изображения)
- Выдача сообщения о точной причине запрета доступа к странице
- Выдача предупреждения о возможной фишинг-атаке (при наличии фишинг-фильтра)
- Анализ статистики обращения к определённым ресурсам (как разрешённым, так и запрещённым)
12. Модель процессов в многозадачной среде. События, приводящие к созданию процессов и завершению процессов.
Модель процессов в многозадачной среде. В модели сообщений поток представлен как отдельные мессаги, тут важны показатели границ сообщений. Важное понятие, относящееся к взаимодействию процессов — нить исполнения (thread). Нити процесса разделяют его программный код, глобальные переменные и системные ресурсы, но каждая нить имеет собственный программный счетчик, свое содержимое регистров и свой стек. То есть процесс — это много нитей (минимум одна). События, приводящие к созданию процессов и завершению процессов. Для создания нового процесса существующий процесс клонирует самого себя с помощью системного вызова fork. Результатом является получение копии исходного процесса, имеющей лишь некоторые отличия. В частности, новому процессу присваивается новый идентификатор, и учет ресурсов ведется для него независимо от предка. Системный вызов fork обладает уникальным свойством: он возвращает сразу два значения. В порожденном процессе эта функция возвращает 0, а в родительском — идентификатор потомка. Поскольку в остальном процессы идентичны, они должны проверять это значение, чтобы определить, в какой роли следует выступать дальше. После выполнения системного вызова fork новый процесс обычно запускает новую программу с помощью одного из системных вызовов семейства exec. Все вызовы семейства exec производят приблизительно одинаковые действия: они замещают сегмент кода процесса и устанавливают сегменты данных и стека в исходное состояние. Формы вызовов exec отличаются только способами указания аргументов командной строки и переменных среды, передаваемых новой программе. Когда система загружается, ядро самостоятельно создает несколько процессов. Наиболее важный из них — процесс init, идентификатор которого всегда равен 1. Программа init отвечает за вызов командного интерпретатора для выполнения стартовых сценариев, если они используются в системе. Все процессы, кроме тех, что создаются ядром, являются потомками процесса init. Программа init играет и другую важную роль в управлении процессами. Когда процесс завершается, он вызывает функцию _exit(), чтобы уведомить ядро о своей готовности прекратить работу. В качестве параметра функции _exit() передается код завершения — целое число, указывающее на причину останова процесса. По соглашению нулевой код завершения означает, что процесс окончился успешно. В UNIX требуется, чтобы, прежде чем процесс окончательно исчезнет, его удаление было подтверждено родительским процессом с помощью системного вызова wait. Данная функция возвращает код завершения потомка и, если требуется, статистику использования ресурсов. По этой причине ядро должно хранить код завершения, пока родительский процесс не запросит его. По окончании дочернего процесса его адресное пространство освобождается, время центрального процессора ему не выделяется, однако в таблице процессов ядра сохраняется запись о нем. Процесс в этом состоянии называется зомби. Описанный механизм работает нормально, если родительский процесс завершается позже порожденных им процессов и добросовестно выполняет системные вызовы wait для того, чтобы все процессы-зомби были уничтожены. Если же родительский процесс завершается первым, то ядро понимает, что вызова wait не последует, и переназначает все процессы-зомби программе init. Она обязана принять «осиротевшие» процессы и ликвидировать их, осуществив для каждого из этих процессов вызов wait.
Глава 4. Модель «клиент-сервер» и её реализация в компьютерных сетях
Для понимания материала этой главы необходимы знания по компьютерным сетям, изложенные в предыдущей главе, а также общие понятия о вычислительной технике, изложенные в главе 1.
4.1. Определение модели «клиент-сервер»
Клиент-сервер — это модель взаимодействия процессов в вычислительной системе, при которой один процесс (клиент) делает запрос, другой процесс (сервер) его обрабатывает и возвращает первому ответ или предоставляет определенную услугу в виде вычислений, каких-либо данных и т.п.
Чаще всего процесс-клиент запускается на одном компьютере, процесс-сервер — на другом.
В общем виде модель представлена на рис. 13.
Рис. 13 Модель «клиент-сервер»
Также клиентом (рабочей станцией) в двухранговой компьютерной сети называется компьютер, на котором преобладают процессы-клиенты, а сервером — компьютер, на котором преобладают процессы-серверы. В процессе работы сети компьютер-сервер и компьютер-клиент могут меняться ролями. Любой компьютер может одновременно быть клиентом и сервером для различных видов услуг.
Требования надежности, скорости и отказоустойчивости у серверов выше, чем у рабочих станций. Среднее время простоя современных серверов может достигать всего несколько минут в год.
4.2. Виды сетевых служб
Несмотря на то, что технологии «клиент-сервер» применима как в централизованных, так и в распределенных вычислительных системах, она достигла популярности именно в компьютерных сетях.
Сетевая служба (сервис) — это определенный вид обслуживания, предоставляемый сервером.
Сетевые службы занимаются предоставлением:
- совместно используемых аппаратных ресурсов — процессорного времени, памяти, диска, принтеров;
- различных сетевых услуг — обрабатывают и предоставляют различную информацию.