Файл: Технология «Клиент - Сервер».pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 25.06.2023

Просмотров: 143

Скачиваний: 3

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Безопасность. Модель удаленного доступа к данным построена на учёте специфики размещения и физического управления данными во внешней памяти для реляционных СУБД. В RDA-модели компонент доступа к данным в СУБД отделен от двух других компонентов (прикладной и представления) полностью и размещается на сервере системы.

В файлы базы данных, которые обычно размещают на сервере системы, включается также и системный каталог базы данных, в котором находятся в том числе и сведения о зарегистрированных клиентах, так же их полномочиях и подобная информация [[20]]. На клиентских установках устанавливаются программные части СУБД, выполняющие прикладные и интерфейсные функции. Пользователь, заходя в клиентскую часть системы, имеет возможность зарегистрироваться через неё на сервере системы и сразу начать обработку данных.

Прикладные компоненты системы, такие как процедуры обработки данных и библиотеки запросов - полностью размещается и выполняются на клиентской установке [[21]]. Соответственно общение клиента и сервера происходит посредством SQL-инструкций, а как итог с сервера на клиентские установки передаются исключительно результаты обработки, то есть наборы данных – иногда существенно меньшие по объёму чем вся база данных. В результате чего сильно уменьшается нагрузка на сети, а сервер получает активную центральную функцию.

Многопротокольность это способность систем управления базами данных поддерживать прикладные программы, первоначально направленные на разные типы СУБД. В более простом представлении это специальный компонент ядра систем управления базами данных на сервере или драйвер ODBC который способен понимать запросы, обрабатывать их и отсылать результаты обработки запросов на клиентские установки, находящиеся под управлением реляционных СУБД не «родных» типов [[22]].

Данная возможность достаточно сильно увеличивает гибкость в создании распределенных информационных систем на основе интеграции уже функционирующих в какой-либо организации локальных баз данных под управлением настольных СУБД либо систем управления базами данных любого другого реляционного типа. Сервер баз данных включает в себя мощные средства защиты данных от несанкционированного доступа, что в свою очередь невозможно в настольных системах управления базами данных. При этом права доступа можно администрировать очень точечно, вплоть до уровня полей таблиц. Более того имеется возможность вообще поставить запрет на прямое обращение к таблицам, и заставить пользователя осуществлять взаимодействие с данными через промежуточные объекты - хранимые процедуры и представления. В любом случае любой администратор может быть спокоен – никакому продвинутом пользователю не под силу прочесть то, что ему читать запрещено.


Гибкость. В приложении, которое осуществляет работу с данными, можно отметить три важных логических слоя:

  • Пользовательский интерфейс.
  • Правила логической обработки.
  • Управление данными, но при этом не стоит пусть физические уровни с логическими слоями [[23]].

Сервер и клиент трудятся вместе. Вместе с удачной работой в собственной «родной» среде сети архитектуры клиент–сервер могут функционировать как с мэйнфреймами и микрокомпьютерами. Именно такая гибкость в совокупности с достаточно низкой, в сравнении с классическими решениями, стоимостью и является привлекательностью клиент–серверных сетей. Работая в данной среде на компьютере–клиенте, имеется возможность использования трех разных методов обработки информации, а именно взаимодействия с другими компьютерами сети, автономной работы и подключения к серверу-мэйнфрейму для доступа к находящейся на нём информации.

Сетевые операционные системы и программное обеспечение. Операционные системы с сетевыми функциями естественно представлены несколькими трудно различными разновидностями: клиентскими и серверными. Вызывается это тем, что существует различие между функциями и возможностями клиентов и серверов сети на базе персонального компьютера. Серверная операционная система сосредоточена на управлении ресурсами, а клиентская направляется на удовлетворение потребностей владельца - выполнении задания с максимальной эффективностью и скоростью. Что совершенно не значит, что эффективность и скорость не важны для сервера, однако его основной задачей всё же является поддержка большого числа компьютеров–клиентов. Клиент же чаще всего работает с конкретным приложением типа электронной таблицы, текстового процессора или почтовой программы. И если подготовка сообщения, пересечёт таблицы или проверка орфографии, занимает небольшое количество времени, то этот самый клиент навряд ли захочет им пользоваться.

Выбор серверных операционных систем для корпоративных сетей на базе персональных компьютеров - огромен: OS/2, UNIX, Windows NT, Mac OS с сетевыми службами и Novell NetWare, AppleTalk и AppleShare. Обычно данные системы имеют возможность работать как в качестве программного обеспечеения клиента, так и в качестве ПО для сервера. Однако так же имеют место быть и «младшие» версии для настольных компьютеров. Такие программные продукты как OS/2 Workstation и Windows NT Workstation, и программное решение для рабочей станции от NetWare. В сумме все они представляют собой несколько упрощённые версии своих полных версий, работающих на серверах [[24]].


Многопроцессорная обработка. Для сред с огромной нагрузкой многопроцессорная обработка крайне важна. В данном случае система сможет ещё успешнее справляться с задачами за счёт нагрузки, переложенной на множество параллельных процессоров.

Многопроцессорная обработка может быть как асимметричной, так и симметричной. При асимметричной обработке нагрузка распределяется так, что один либо несколько процессоров поддерживают исключительно операционную систему, а оставшиеся направляют на работу с приложениями. В случае с симметричной обработкой каждый процесс может быть поручен любому свободному в текущий момент времени процессору.

При более гибкой - симметричной обработке система с её поддержкой приобретает два важных преимущества. Возрастает отказоустойчивость, так как один процессор в силах справиться с любой задачей, отказ одного конкретного процессора не приведёт к отказу всей системы. А также улучшается распределение нагрузки, так как операционная система способна распределять всю нагрузку среди процессоров «равномерным слоем» и благодаря этого, пресекается вероятность появления узких мест из-за слишком частых обращений к одним процессорам и пренебрежения остальными [[25]].

ГЛАВА 2. АРХИТЕКТУРА И КЛАСТЕР СЕРВЕРОВ

2.1. Состав архитектуры «Клиент-Сервер» и её проблемные места.

Выделяют несколько базовых программных компонента архитектуры «клиент-сервер»:

  • Программное обеспечение сервера.
  • Программное обеспечение конечного пользователя.
  • Промежуточное обеспечение.

Серверы баз данных занимаются не только обслуживанием данных. В них предусмотрены также элементы управления многопользовательским доступом и механизмы блокировок, которые помогают обеспечить защиту данных от возможности параллельного доступа к ним. Более того, серверу баз данных приходится оптимизировать запросы к базе данных, обеспечивать кэширование и предоставлять место для размещения словаря данных, а также защищать данные от несанкционированного доступа [[26]].

В любом случае для того, чтобы прикладная программа, выполняющаяся на рабочей станции, имела возможность запросить услугу у отдельно взятого сервера, данной программе потребуется некоторый интерфейсный программный слой, поддерживающий подобное взаимодействие. Так как требовать, чтобы прикладная программа напрямую пользовалась примитивами транспортного уровня локальной сети было бы по меньшей мере неестественно. Из этого, в принципе и вытекают основные положения системной архитектуры «клиент-сервер» [[27]].


Система разбивается на две части, которые могут применяться в разных узлах сети, а именно серверную и клиентскую части. Конечный пользователь или прикладная программа взаимодействуют с клиентской частью системы, которая в самой простой ситуации обеспечивает исключительно надсетевой интерфейс. Клиентская часть системы при необходимости обращается по сети к серверной части. Очень важно то, что в развитых системах сетевое обращение к серверной части может и не понадобиться, это происходит в том случае, если система имеет возможность предугадывать потребности пользователя, а в клиентской части содержатся данные, удовлетворяющие следующий запрос этого самого пользователя [[28]].

Интерфейс серверной части фиксирован и определён. Поэтому возможно создание новых клиентских частей существующей системы, таких как интероперабельность на системном уровне. Основным недостатком систем, основанных на архитектуре «клиент-сервер», является то, что согласно концепции открытых систем от них требуется большая мобильность в широком классе аппаратно-программных решений открытых систем. Даже если остановиться только локальных сетях ориентированных на UNIX, то в различных сетях применяется различные протоколы связи и аппаратура. Попытки создания систем, работающих со всеми существующими протоколами, наносит ущерб функциональности и приводит к их перегрузке сетевыми деталями [[29]].

Более сложным аспектом данной является возможность использования разных представлений данных в разных узлах неоднородной локальной сети. На разных компьютерах может существовать различная кодировка символов, представление чисел и адресация. Что, весьма существенно для серверов высокого уровня: вычислительных, телекоммуникационных и баз данных.

Общим и основным решением проблемы мобильности систем, построенных на архитектуре «клиент-сервер», является опора на программные пакеты, выполняющие протоколы удалённого вызова процедур типа RPC. При использовании данных средств обращение к сервису в удаленном узле выглядит как обычный вызов процедуры. Средства RPC, в которых, несомненно, содержится вся информация касательно специфики сетевых протоколов и аппаратуры локальной сети, переводит вызов в последовательность сетевых взаимодействий. Тем самым, специфика протоколов и сетевой среды скрыта от прикладного программиста.

Когда вызывается удалённая процедура программы RPC, то производится преобразование форматов данных клиента в промежуточные машинно-независимые форматы, а затем всё преобразовывается в форматы данных сервера. При передаче ответных параметров производятся аналогичные преобразования. В том случае, если система реализована на основе стандартного пакета RPC, она может быть легко перемещена в любую открытую среду [[30]]. Реальное распространение архитектуры «клиент-сервер» является возможным только благодаря широкому внедрению в практику и развитию концепции открытых систем.


Как уже делался акцент выше – основной проблематикой систем, построенных на архитектуре «клиент-сервер», является то, что от них необходима высокая мобильность в широком классе аппаратно-программных решений открытых систем.

Клиент-серверная система управления базой данных опирается на несколько типов распределения обязанностей между сервером и клиентом:

  • Смешанные системы.
  • Многоуровневые системы.
  • «Интеллектуальный» сервер.
  • «Интеллектуальные» клиенты.

Схема реализации выбирается на основе анализа требований к:

  • Сетевому графику.
  • Производительности базы данных.
  • Ресурсам клиента и сервера.

2.2. «Интеллектуальные» клиенты.

«Интеллектуальные» клиенты являются одним из самых распространённых методов реализации клиент-серверных приложений. «Интеллектуальному» клиенту можно поручить выполнение сервисов представления данных так и как бизнес-логики. Тогда в этом случае функции сервера ограничиваются поддержкой собственно базы данных. Вся информация будет обрабатываться локально, что освобождает ресурсы сервера. Многие приложения, разработанные на Visual Basic, являются интеллектуальными клиентами.

Достоинствами «интеллектуальных» клиентов являются - простота архитектуры, что облегчает разработку и сопровождение системы. Наличие достаточно мощных и хорошо известных средств разработки. Клиент отлично подходит для хранения текущей информации о состоянии, например первичного ключа записи, которую сейчас просматривает пользователь.

Недостатками «интеллектуальных» клиентов являются - выполнение бизнес-правил на клиенте время от времени увеличивает сетевой трафик из-за необходимости передавать клиенту все данные для принятия решения на основе правил. Для модификации бизнес-логики необходимо повторное развертывание всех клиентов [[31]].

«Интеллектуальные» серверы – если перенести все бизнес-правила на SQL Server, где они реализуются в виде хранимых процедур, то создаётся «интеллектуальный» сервер. Роль сервера в такой клиент-серверной системе намного шире, чем у простого хранилища файлов, доступного множеству пользователей сети. Интеллект сервера проявляется в способности выполнять SQL-запросы и в качестве ответа возвращать результирующий набор данных.

Смешанные системы - в рамках двухуровневой реализации появляется такой тип систем, обладающий достоинствами как интеллектуальных клиентов, так и интеллектуальных серверов. Например, клиентский компонент смешанного решения, разработанный средствами Visual Basic, может вызывать хранимые процедуры SQL Server.