Архитектура Клиент/сервер.
Понятие выделенного сервера.
Виды серверов
В зависимости от сложности выполняемых прикладных процессов и числа работающих клиентов различают двухи трехуровневые архитектуры. Наиболее простой является двухуровневая. Здесь клиенты выполняют простые операции обработки данных, отрабатывают интерфейс взаимодействия с сервером, обращаются к нему с запросами. Большую же часть задач обработки выполняет сервер. Для этих целей он имеет базу данных… Читать ещё >
Архитектура Клиент/сервер. Понятие выделенного сервера. Виды серверов (реферат, курсовая, диплом, контрольная)
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНИ ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ им. В. Н. Каразина Контрольная работа по предмету «Компьютерные сети и системы»
(Архитектура Клиент/сервер. Понятие выделенного сервера. Виды серверов) выполнила Буланова Елена Александровна студентка ІІ курса Скадовск
2007 г.
Сервер
Типы Серверов
Главные Серверы
Первичный
Вторичный
Кэширующий Сервер
Удаленный Сервер
Подчиненный Сервер
Архитектура клиент-сервер
модель «файл-сервер»
модель «сервер транзакций»
модель «сервер приложений»
Выделенный сервер
Список использованной литературы
Сервер — компьютер или программная система, предоставляющие удаленный доступ к своим службам или ресурсам с целью обмена информацией.
Сервер работает по заданиям клиентов. После выполнения задания сервер посылает полученные результаты клиенту, инициировавшему это задание.
Обычно связь между клиентом и сервером поддерживается посредством передачи сообщений, и при этом используется определенный протокол для кодирования запросов клиента и ответов сервера.
Типы Серверов Имеется несколько типов серверов:
Master (Главный),
Caching (Кэширующий),
Remote (Удаленный)
Slave (Подчиненный).
Главные Серверы Главный Сервер поддерживает все данные, соответствующие домену. Каждый домен должен иметь по крайней мере два главных сервера, первичный главный, и неcколько вторичных главных, чтобы обеспечить сервис резервирования, если первичный недоступен или перегружен. Сервер может быть главным для множества доменов, будучи первичным для некоторых доменов и вторичным для других.
Первичный Первичный Главный Сервер — это сервер, который загружает свои данные из файла на диске. Этот сервер может также делегировать полномочия другим серверам в своем домене.
Вторичный Вторичный Главный Сервер — это сервер, который получает полномочия и принимает данные для домена от первичного главного сервера. Во время начальной загрузки вторичный сервер запрашивает все данные для данной зоны от первичного главного сервера. Этот сервер затем периодически сверяется с первичным сервером на предмет необходимости обновления своих данных.
Кэширующий Сервер Все серверы являются кэширующими серверами. Это значит, что сервер кэширует информацию, которую он получает для использования, пока срок хранения данных не истечет. Только Кэширующий Сервер — это сервер, который не авторизован ни для какого домена. Этот сервер обслуживает запросы и опрашивает другие серверы, которые авторизованы, на предмет необходимой информации. Все серверы хранят данные в своем кэше до тех пор, пока срок хранения данных не истечет, базируясь на поле времени жизни, присоединенном к данным, когда они приняты от другого сервера.
Удаленный Сервер Удаленный Сервер — это средство, позволяющее использовать сервер имен на рабочей станции или на машине с ограниченным объемом памяти и производительностью CPU. Используя его можно использовать все сетевые программы использующие сервер имен без запуска сервера на локальной машине. Все запросы обслуживаются сервером имен работающим на другой машине в сети. Хост, имеющий файл /etc/resolv.conf, перечисляющий только удаленные хосты и не имеющий локального сервера имен, иногда называется Удаленным Сервером, но намного чаще он называется просто «DNS клиент «. Такой тип хостов технически не «сервер «, так как он не имеет кэша и не отвечает на запросы.
Подчиненный Сервер Подчиненный Сервер — это сервер, всегда переправляющий запросы, которые он не может обслужить используя свой кэш, на ограниченное число пересыльных серверов, которые он не может удовлетворить локально, на перенаправляющие серверы из фиксированного списка, вместо взаимодействия с главным сервером имен для корневого и других доменов. Запросы к пересыльным серверам не являются рекурсивными. Запросы на перенаправляющие серверы являются рекурсивными запросами.
Может быть один или более перенаправляющих серверов, и они опрашиваются по очереди, пока список не исчерпается. Конфигурация Подчиненного и перенаправителей обычно используется, когда нужно, чтобы все серверы данного узла взаимодействовали с остальным серверами Internet. Типичным является случай, когда для доступа к Internet задействованы несколько рабочих станций и отдельная машина с разделением времени. Рабочим станциям может быть административно запрещено иметь доступ к Internet. Чтобы дать рабочим станциям возможность доступа к системе доменов Internet, рабочие станции могут быть Подчиненными серверами для машины с разделением времени, которая будет переправлять запросы и взаимодействовать с другими серверами имен для разрешения запроса перед возвратом ответа. Дополнительная полезность использования возможности перенаправления состоит в том, что центральная машина обрабатывает гораздо более полный кэш информации, которая дает преимущество всем рабочим станциям.
Архитектура клиент-сервер Архитектура клиент-сервер (Client-server architecture) — архитектура распределенной вычислительной системы, в которой приложение делится на клиентский и серверный процессы.
В современной архитектуре выделяется четыре группы объектов: клиенты, серверы, данные и сетевые службы. Каждый из них является комплексом взаимосвязанных прикладных программ. Серверы предоставляют ресурсы, необходимые многим пользователям. К ним относятся базы данных, файлы, память. Клиенты используют эти ресурсы и предоставляют удобные интерфейсы пользователя.
Клиенты располагаются в системах, находящихся на рабочих местах пользователей. Данные хранятся в основном в серверах. Сетевые службы являются совместно используемыми прикладными программами, которые взаимодействуют с клиентами, серверами и данными. Кроме этого, службы управляют процедурами распределенной обработки данных, информируют пользователей о происходящих в сети изменениях.
В зависимости от сложности выполняемых прикладных процессов и числа работающих клиентов различают двухи трехуровневые архитектуры. Наиболее простой является двухуровневая. Здесь клиенты выполняют простые операции обработки данных, отрабатывают интерфейс взаимодействия с сервером, обращаются к нему с запросами. Большую же часть задач обработки выполняет сервер. Для этих целей он имеет базу данных. В трехуровневой архитектуре вместо единого сервера применяются серверы приложений и серверы баз данных. Их использование позволяет резко увеличивать производительность локальной сети. В абонентскую систему в зависимости от ее производительности загружается клиент, сервер либо сервер с группой клиентов. архитектура сервер приложение Архитектура клиент-сервер постепенно превращается в архитектуру клиент-сеть, в которой используется не один, а множество серверов. Например, в сети Internet их сотни тысяч. Стремление дать возможность работы в сети клиентам, созданным различными производителями, привело к возникновению архитектуры любой клиент — сервер.
Преимуществами технологии Клиент/Сервер являются:
стабильность,
высокая производительность,
целостность данных,
надежность индексов,
шифрование данных.
Общая цель систем баз данных — это поддержка разработки и выполнения приложений баз данных. Поэтому на высоком уровне систему баз данных можно рассматривать как систему с очень простой структурой, состоящей из двух частей — сервера (или машины базы данных) и набора клиентов.
Сервер — это собственно система управления баз данных (СУБД). Он поддерживает все основные функции СУБД, которые обсуждались выше, а именно: определение данных, обработку данных, защиту и целостность данных и т. д. В частности, он предоставляет полную поддержку на внешнем, концептуальном и внутреннем уровнях. Поэтому «сервер» в этом контексте — это просто другое имя СУБД.
Клиенты — это различные приложения, которые выполняются «над» СУБД: приложения, написанные пользователями, и встроенные приложения, предоставляемые поставщиками СУБД или некоторыми сторонними поставщиками программного обеспечения.
Исключениями являются специальные «служебные» приложения. Такие приложения иногда могут работать только непосредственно на внутреннем уровне системы. Такие утилиты скорее относятся к непосредственным компонентам СУБД, чем к приложениям в обычном смысле.
Приложения, в свою очередь, делятся на несколько четко определенных категорий.
Приложения, написанные пользователями. Это в основном профессиональные прикладные программы, написанные (обычно) либо на общепринятом языке программирования, таком как С++, Delphi, либо на специализированном, таком как FoxPro, Clipper, Access и т. п.
Приложения, предоставляемые поставщиками (часто называемые инструментальными средствами). В целом назначение таких средств — содействовать в процессе создания и выполнения других приложений, т. е. приложений, которые делаются специально для некоторой специфической задачи; и действительно, эта категория инструментальных средств позволяет пользователям, особенно конечным, создавать приложения без написания традиционных программ.
Поставляемые инструментальные средства, в свою очередь, делятся на несколько самостоятельных классов:
процессоры языков запросов;
генераторы отчетов;
графические бизнес-подсистемы;
электронные таблицы;
процессоры обычных языков;
средства управления копированием;
генераторы приложений;
другие средства разработки приложений, включая CASE-продукты (CASE или Computer-Aided Software Engineering — автоматизация разработки программного обеспечения), и т. д.
Так как система в целом может быть четко разделена на две части (сервер и клиенты), появляется возможность работы этих двух частей на разных машинах. Иначе говоря, существует возможность распределенной обработки. Распределенная обработка предполагает, что отдельные машины можно соединить какой-нибудь коммуникационной сетью таким способом, что определенная задача, обрабатывающая данные, может быть распределена на нескольких машинах в сети Утилиты Утилиты — это программы, разработанные для администратора и используемые при выполнении различных административных задач. Как уже упоминалось выше, некоторые утилиты выполняются на внешнем уровне системы и потому представляют собой не что иное, как приложения специального назначения; некоторые из них могут предоставляться даже не поставщиками СУБД, а скорее некоторыми сторонними поставщиками программного обеспечения. Однако другие утилиты выполняются непосредственно на внутреннем уровне (т.е. являются частью сервера) и поэтому должны предоставляться поставщиками СУБД.
Ниже приводится несколько типичных примеров типов утилит, которые часто применяются на практике.
Процедуры загрузки, применяемые для создания первоначальной версии базы данных из одного или более файлов, которые не принадлежат базе данных.
Процедуры выгрузки-перезагрузки, применяемые для выгрузки базы данных или порции из нее, дублирования памяти с целью восстановления и перезагрузки данных из таких дублированных копий.
Процедуры реорганизации, применяемые для перераспределения данных в базе данных по различным соображениям, например, для группировки некоторых данных каким-то определенным способом на диске или освобождения пространства, занятого данными, которые больше не используются.
Статистические процедуры, применяемые для вычисления различных статистических показателей производительности, таких как распределение размеров файлов или значений данных и счетчиков ввода-вывода и т. п.
Процедуры анализа, применяемые для анализа только что упомянутой статистики.
Прочее В зависимости от того, как распределены логические компоненты приложения между клиентами и серверами, различают четыре модели архитектуры клиент-сервер:
модель «файл-сервер» ;
модель «сервер базы данных» ;
модель «сервер транзакций» ;
модель «сервер приложений» .
модель «файл-сервер»
Файл-сервер [англ. file server] - Технология построения вычислительных систем, при которой данные размещаются централизованно, а система управления ими располагается на каждой рабочей станции.
Файл-сервер — это сервер вычислительной сети, обеспечивающий хранение общих файлов на объемных дисковых устройствах и доступ к ним из других узлов сети.
модель «сервер транзакций»
Сервер транзакций управляет бизнес-транзакциями. Он размещается между клиентом и сервером и объединяет важнейшие операции обработки данных. Он позволяет сохранять целостность гигантских объемов информации и гарантирует завершение транзакций без прерываний и искажения данных Сервер транзакций располагается в самом центре информационной системы.
Сервер транзакций отвечает за поддержку высокой производительности, готовности и целостности данных. Он также следит за равномерностью загрузки компьютеров в сети.
Когда сервер транзакций выясняет, что один из компьютеров несет слишком большую нагрузку, он автоматически распределяет работу между всеми имеющимися машинами, объединяя ресурсы, чтобы предотвратить сбой на любой из них.
При обновлении базы данных сервер транзакций выполняет операцию, называемую управлением состоянием. В случае, если компьютер не может завершить транзакцию, сервер приостанавливает работу программы и возвращается в исходное состояние без искажения данных.
Сервер транзакций представляет собой либо часть операционной системы, либо часть промежуточного программного обеспечения, то есть программы, которая размещается между клиентскими компьютерами и сервером. Промежуточное программное обеспечение гарантирует, что когда клиенты запрашивают информацию, серверы обязательно ее предоставляют, даже если они работают на различных вычислительных платформах.
Фундаментальные характеристики промежуточного программного обеспечения — независимость и открытость. Это универсальная инфраструктура, в состав которой могут входить самые разнообразные инструментальные средства.
Объектно-ориентированные программы создаются на основе правил, позволяющих программным компонентам действовать как независимые объекты, которые работают вместе, обмениваясь друг с другом сообщениями. Подобный подход позволяет также заменить один объект на другой, так что нет необходимости переписывать всю программу целиком.
Где бы ни размещался сервер транзакций, он инкапсулирует в себе базовую инфраструктуру программы. Он предоставляет такую программную среду, в которой разработчикам при создании нового приложения не придется беспокоиться о реализации базовых функций.
Серверы транзакций лучше всего подходят для защищенных, высокоскоростных приложений, например:
электронная коммерция;
торговля ценными бумагами;
резервирование авиабилетов;
проверка подлинности кредитных карт;
интерактивные банковские транзакции.
модель «сервер приложений»
Многозвенные распределенные приложения обеспечивают эффективный доступ удаленных клиентов к базе данных, так как в них для управления доступом к данным применяется специализированное ПО промежуточного слоя. В наиболее распространенной схеме — трехзвенном приложении — это сервер приложения, который выполняет следующие функции:
обеспечивает авторизацию пользователей;
принимает и передает запросы пользователей и пакеты данных;
регулирует доступ клиентских запросов к серверу БД, балансируя нагрузку сервера БД;
может содержать часть бизнес-логики распределенного приложения, обеспечивая существование «тонких» клиентов.
Клиент и сервер имеют специфическую структуру:
Логика функционирования клиента приложения такова. Клиент должен инициировать связь с системой, передав ей сведения о себе; выделить динамическую память под исходный и результирующий буфера данных. Затем клиент может обращаться к серверу различными способами.
Буфер инициализации содержит информацию о программе-клиенте:
имя пользователя,
запускающего программу, имя программы,
имя группы программ,
флаг, определяющий системные характеристики взаимодействия данного клиента с системой,
пароль клиента, который после передачи буфера системы будет сверен с эталоном пароля из Конфигурационного файла приложения.
Отключение клиента от системы (терминирование связи с системой) выполняется вызовом. Как только клиент использовал этот вызов и он завершился успешно, система уменьшает число подключенных клиентов на единицу.
Сервер устроен более сложно, нежели клиент. Дело в том, что сервер должен обслуживать запросы нескольких клиентов. Запросы помещаются в очередь запросов к серверу, которая обслуживается системой. Очередь запросов организована по приоритетному принципу. Система извлекает запрос из очереди и передает его тому сервису сервера, которому он был адресован (имя адресуемого сервиса присутствует в структуре запроса).
Перед тем как начать извлечение запросов из очереди, система объявляет все сервисы, которые доступны в данном сервере. Для этого система обращается к параметрам приложения, размещенным после загрузки из конфигурационного файла в разделяемой памяти и выставляет на доску объявлений имена сервисов данного сервера.
Сервисы имеют приоритеты: целые положительные числа в диапазоне от 1 до 100.
Приоритет определяет порядок извлечения запроса из очереди. Начальные значения приоритетов сервисов задаются в параметрах приложения в секции сервисов; далее они могут изменяться динамически либо посредством использования MIB, либо при помощи вызова. Интуитивно ясно, что этот вызов может использоваться, если следующий запрос должен быть выполнен немедленно; и с этой целью устанавливается максимальный приоритет адресуемого в запросе сервиса.
Приоритетность обслуживания запросов в очереди к серверу отнюдь не означает, что запросы к сервисам с низкими приоритетами будут бесконечно долго находиться в ней — через некоторый промежуток времени система выполняет ревизию очереди, направляя на обработку сервисам «засидевшиеся» в очереди процессы.
Код сервера состоит из двух частей: прикладной и системной. Прикладная часть, представляющая собой реализацию сервисов данного сервера, пишется разработчиком приложения. Системная часть сервера добавляется системой на этапе препроцессирования исходного кода сервера.
Выделенный сервер Выделенный сервер (Dedicated Server) — компьютер в сети, выступающий только в роли сервера и не используемый в качестве клиента.
Выделенный сервер предоставляет своему владельцу все ресурсы без ограничений.
По обслуживанию серверы делятся на две категории: unmanaged (необслуживаемые) и managed (обслуживаемые). Техподдержка не обслуживаемых серверов сводится к двум действиям — перезагрузке сервера по запросу и переустановке ОС в случае выхода ее из строя по причине неграмотного обращения или взлома.
Техподдержка обслуживаемого сервера весьма расплывчата и зависит от уровня самого персонала, предоставляемых часов рабочего времени, гарантированной сетевой доступности (SLA), гарантированного времени реакции и сложности проблемы.
Техподдержка делится на уровни.
В круг задач 1 уровня тех поддержки входят ребуты, ответы на часто задаваемые вопросы, а также оттягивание времени разными глупыми уточнениями, пока запрос обрабатывает техподдержка с более высоким уровнем. Иногда в штате нет такого специалиста и решение проблемы может затянуться надолго. В приличных дата-центрах тех поддержка 1 уровня передает запрос, а сам честно пишет, что не смог справиться с проблемой и передал ее более квалифицированному специалисту. Это называется эскалацией запроса. Иногда время перехода эскалации может занимать 24 часа.
В круг задач Техподдержки 2 уровня входит решение типичных проблем — установка и настройка штатного ПО, пополнение базы знаний для 1 уровня, прочее.
Техподдержка 3 уровня занимается решением глобальных проблем — когда сервер медленно работает или происходит частая пиковая загрузка, какое-то ПО не желает устанавливаться или не работает после установки, если есть подозрения на аппаратные проблемы — все это входит в компетенцию 3 уровня технической поддержки.
Техподдержка 4 уровня находится в штате очень крупных и серьезных дата-центров или же работает на контрактной почасовой основе с более мелкими компаниями. В его компетенцию входит всё, в том числе и работа с незнакомым ему ПО, восстановление системы после взлома, поиск аккаунта, занимающегося спамом, установка системных лимитов и т. п.
Следующая важная характеристика — это количество предоставляемого времени.
Типичная практика дата-центров в случае какой-либо проблемы — это использование предоставленного времени специалистами низкого уровня, так как разделение по времени каждого уровня обычно не предоставляют.
Обычно перезагрузки сервера — свободны, и время за них не списывается. В некоторых случаях даже предоставляется доступ к специальному оборудованию, которое способно выполнить перезагрузку сервера.
Уровень сетевой доступности означает, что отправленный запрос будет прочитан в любое время и, соответственно, обработан в указанные сроки.
Список использованной литературы Кульгин М. В. Компьютерные сети. Практика построения. Для профессионалов. 2-е издание. — Питер, 2003. — 464с.
К. Закер «Компьютерные сети. Модернизация и поиск неисправностей». М. — 2003
Ирвин «Передача данных в сетях: инженерный подход». М. 2002
Новиков Ю.В., Кондратенко С. В. «Локальные сети: архитектура, алгоритмы, проектирование». М. 2003