В. Столлингс - Операционные системы (1114679), страница 127
Текст из файла (страница 127)
» Обязательным условием корректной работы системы является корректная работа сети, поэтому при организации инФормационных систем и их рабате управлению сетью и ее безопасности должно быть уделено осо бае внимание. Приложения клиент/сервер Основной возможностью архитектуры клиент/сервер является распределение задач уровня приложения между клиентом и сервером. На рис. 13.2 проил люстриравано обычно использующееся разделение.
Как у клиента, так и у сервера, разумеется, базовое программное обеспечение — зто операционная сис ная система.. работающая на конкретной аппаратной платформе. Платформы и операционные системы клиента и сервера могут быть различны; более тога, в одной среде с е е клиент/сервер мажет работать целый ряд различных платформ клиентов и серверов При условии, чта конкретные клиенты и серверы используют одни и те же Р . же про. таколы связи и поддержинают одни и те же приложения, их низкоуровн овневьн отличия не играют никакой роли.
Глава 13. Распределенные вычисления, архитектура... Службы представления Сервер Логикаприложений на сптроне клианта Службм представления Коммуникационное программноеобесгечение Взаимодействие на уровне протоколов ЛОГика припомнил Ответ Аппаратная платформа Аппаратная платформа Коммуникационное программное обеспечение Коммуникационное проГраммное обеспечение Взаимодействие протоколов Операционная система клиента Операционная система сервера Аппаратная платформа Аппаратнаяплатформа Рабочая станция клиента Часть 6. Распределенные системы Рис.
13.2. Обобщенная архитектура клиент(сервер Взаимодействие клиентов и серверов обеспечивают разнообразные програм. Одним из ярчайших примеров такого программного обеспечения служат темы, поддерживающие работу с ТСР/1Р. Естественно, главная цель такого граммного обеспечения (как коммуникационного, так и операционных сис:) состоит в предоставлении базы для распределенных приложений. В идеале Функции, выполняемые приложением, могут быть разделены между клиен- ~ и сервером так, чтобы оптимизировать использование компьютеров и сетес ресурсов, а также возможности пользователей по выполнению различных ач и кооперации друг с другом при использовании разделяемых ресурсов. В ;е случаев такие требования обуславливают выполнение основных вычислений сервере; тем не менее основная логика других приложений может размещатьна машине-клиенте.
Определяющим Фактором в успешной деятельности среды клиент/сервер яется способ взаимодействия пользователя с системой в целом. Соответственкрнтическим являегся дизайн пользовательского интерфейса на клиентской пине. Б большинстве систем клиент/сервер применяется графический интер~с пользователя (агар)т(са1 ттзег тпбегХасе — СШ), мощность и гибкость котоо сочетается с простотой при использовании и обучении. Таким образом, на вине клиента мы можем использовать модуль представления, который являт частью распределенного приложения и обеспечивает дружественный польательский интерфейс. Приложения баз данных Рассмотрим в качестве примера, иллюстрирующего концепцию разделения ики приложения между клиентом и сервером, использование реляционных данных.
В этой среде сервером является, по сути, сервер баз данных. Взаиействие между клиентом и сервером осуществляется в виде транзакций, в орых клиент выполняет запрос к базе данных и получает от нее ответ. На рис. 13,3 показана архитектура такой системы в общем виде. Сервер отцет за поддержку базы данных, для чего требуется сложное программное обеспечение СУБД. Ряд приложений используют эту базу данных, работая иа клиентских машинах. Связующим звеном между клиентом и сервером служит программное обеспечение, позволяющее клиенту обращаться с запросами к базе данных сервера. Широко распространенным примером такой логики может слу жить язык структурированных запросов (атгттс$ттгей к)негу 1апртаде — ЯЯ1.).
Рис. 13.3. Архитектура клиент(сервер для прияоткений бал данных Предполагается, что вся логика приложения — программное обеспечение для обработки и анализа данных — размещена на стороне клиента, в то время как задача сервера состоит только в управлении базой данных (см. Рис. 13.3). Насколько такая конфигурация подходит для конкретной задачи, зависит от ее стиля и предназначения. Предположим, например, что основная цель состоит в обеспечении оперативного доступа для поиска записей. На рис. 13.4,а показан пример того, как может работать описываемая система.
Допустим, сервером поддерживается база данных, включающая миллион записей (в терминах реляционных баз данных именуемых строками), и пользователь намерен выполнить поиск, который в результате должен вернуть одну или несколько (нли ни одной) записей. Поиск записей может производиться по множеству различных критериев. Первоначальный запрос может привести к ответу сервера, гласящему, что указанному клиентом критерию соответствует 100000 записей. Добавив дополнительные критерии, пользователь повторяет запрос. Допустим, что на этот раз сервер сообщает о наличии 1000 записей, удовлетво.
ряющих новому запросу. И, наконец, клиент выполняет третий запрос с еще одним дополнительным критерием. В ответ на этот уточненный запрос сервер возвращает клиенту единственную запись, Описанное приложение подходит для архитектуры клиент1сервер по двути причинам. 1. Требуется выполнение большого объема работы по сортировке и поиску в базе данных.
Для этого необходимо большое дисковое пространство, высо. Глава 13. Распределенные вычисления, архитектура... Сервер 3) Обработка нв одном узле Начальный запрос 100 000 возможных записей Сервер Очередной запрос 1 000 вазможныхзаписей Окончательный запрос б) Обработка нз сервере с 1 ООО 000 записей а) серное использование архитектуры клиент/сервер Сервер в) Обработка при сотрудничестве Запрос 300 000 возврао1аемых записей Базаданных с1 ШООО записей Часть 6. Распределенные системы коскоростные процессор и устройства ввода-вывода. Такая мощность слиш- ком дорога, да и не нужна для клиентских машин.
Передача миллиона записей клиенту для выполнения им поиска перегрузит сеть. Следовательно, недостаточно, чтобы сервер мог только возвращать данные по запросу клиента; он должен быть способен выполнять поиск и производить другие действия по запросу клиента. б) Неверное использование архитектуры клиент/сервер Рис. 13.4. Использование базы данных в системе клиент/сервер Теперь рассмотрим приведенный на рис. 13.4,б сценарий, в котором участет та же база данных с миллионом записей. В этом случае один запрос привот к передаче по сети ЗООООО записей.
Такое может произойти, например, если иент хочет вычислить среднее значение некоторого поля среди множества засей ~а то и базы данных целиком). Понятно, что такой метод неприменим, и но из решений данной задачи — перенесение части логики приложения на рнер, с тем чтобы он был способен производить не только поиск н базе данных, и выполнять частичный или полный анализ данных.
Классы приложений клиент/сервер В Рамках общей схемы клиент/сервер имеется широкий спектр реализаций, ждая из которых по-своему разделяет работу между клиентом и сервером. На с. 13 5 показано, как может быть выполнено это разделение. Здесь приведены лько его основные варианты; на практике могут быть реализованы и другие особы разделения.
г) Обработка у клиента Рис. 13.б. Класси ириложеиий клиент/сервер На рисунке представлены четыре класса приложений. е Обработка на одном узле. По сути тазсая обработка не являе'гся вариантом среды клиенту'сервер в обычном смысле. Такая обработка традиционно использоналась на мейнфреймах, когда практически нся обработка выполнялась центральным узлом, а пользовательский интерфейс осуществлялся посредством неинтеллектуальных терминалов.
Даже если пользователь оснащен мощным микрокомпьютером, последний играет роль всего лишь эмулятора терминала. Обработка на сервере. Одна из основных конфигураций клиент/сервер, в которой клиент отвечает за обеспечение графического интерфейса пользователя, а практически вся обработка выполняется на сервере. Такая конфигуРация типична для ранних систем клиент/сервер, в особенности для бизнес- систем уровня отделов. Обоснование использования таких систем заключается н том, что пользовательские машины лучше всего подходят для реали- Глава 13.
Распределенные вычисления, архитектура... зации графического интерфейса пользователя„а поддержку приложений и баз данных легче организовать на центральном сервере. Однако, хотя пользователь и получает более удобный и дружественный интерфейс, эта конфигурация принципиально не отличается от предыдущей, поэтому не происходит значительного увеличения производительности или существенных изменений поддерживаемых системой бизнес-функций.
е Обработка у клиента. В другом предельном случае практически вся обработка мажет осуществляться на матпине клиента; на сервере выполняются только программы проверки корректности данных и подобные функции, которые лучше выполнять на сервере. В целом же более сложные функции логики базы данных выполняются на машине клиента. Такая архитектура позволяет пользователю работать с приложениями, приспособленными для его конкретных нужд, и в настоящее время, пожалуй, наиболее распространена.
е Обработка при сотрудничестве. В этой конфигурации приложение выполняется оптимальным образом, используя сильные стороны машин клиента и сервера и распределенности данных. Эта конфигурация несколько сложнее предыдущих, ее труднее поддерживать, но она обеспечивает более высокую производительность и эффективность работы сети по сравнению с остальными вариантами конфигураций.