Файл: ТЕХНОЛОГИЯ «КЛИЕНТ-СЕРВЕР»..pdf

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

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

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

Добавлен: 02.04.2023

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

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

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

ВВЕДЕНИЕ

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

Позднее, при возникновении новых моделей структуры «Клиент-сервер» (RDA, DBS и AS), модель файлового сервера для локальных сетей (FS) с малым функционалом была упразднена.

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

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

Данная тема была выбрана мной в следствии постоянного присутствия технологии «Клиент-сервер» в моей работе, будь то «Банк-клиент», тонкие «терминальные» клиенты, 1С: предприятие и т.д.

Суть технологии «клиент-сервер»

Определение сервер и клиент

Правильное решение предприятий, имеющих крупный «парк» компьютеров – это модель «клиент-сервер». Как правило в такой сети отдельный компьютер подключается к одному или нескольким мощным компьютерам, которые называются серверами.


Сервер - это компьютер, или выполняющаяся на нём программа, которая предоставляет клиентам доступ к общим ресурсам и управляет этими ресурсами[1].

Клиент - пользователь (получатель) услуг и/или ресурсов, которые предоставляет сервер[2].

Общие принципы организации технологии «клиент-сервер»

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

- программа, установленная на компьютере пользователя, которая может осуществлять сетевой запрос с целью получения объекта, и предназначенная для его обработки (например, просмотра, изменения или печати документа);

- программа, установленная, как правило, на компьютере, где расположен информационный объект, которая может осуществлять по запросу поиск и пересылку объекта, а также упорядочивание доступа к нему нескольких пользователей;

- правила (протокол) взаимодействия между этими программами.

Технология взаимодействия, в которой одна программа запрашивает выполнение какой-либо совокупности действий ("запрашивает услугу"), а другая ее выполняет, называется технологией "клиент-сервер"[3]. Участники такого взаимодействия называются соответственно клиентом (client) и сервером (server) (см. рис.1). Достаточно часто клиентом (или сервером) называют компьютеры, на которых функционирует то или иное клиентское (или серверное) программное обеспечение.

Запрос

Ответ

Сервер

Рабочая станция

Рис. 1. Клиент -сервер

Следует особо отметить, что набор действий, понимаемых как запрашиваемая услуга, - это не обязательно чтение (получение) объекта. В том числе это может быть сохранение (запись), пересылка объекта и т.д.

Архитектура «клиент-сервер»

Роль клиента и сервера в архитектуре

Роль серверов состоит в обеспечение централизованной защиты и управлении трафиком, а так же в предоставление клиентам ресурсов: информации, приложений и доступа к устройствам совместного пользования (например, к принтерам)[4]. В клиент - серверной среде в роли клиентов выступают настольные ПК (именно ПК, а не неинтеллектуальные терминалы!) под управлением любой операционной системы. Клиент, как правило, использует собственные вычислительные мощности для обработки информации, полученной от сервера, но полагается на сервер в части предоставления необходимых данных и приложений. Такое распределение ролей в обработке информации называется клиентской (front - end) и серверной (back - end) обработки[5].


Наряду с успешным функционированием в собственной «родной» среде, сети модели клиент - сервер могут работать с микрокомпьютерами и мэйнфреймами. Именно эта гибкость вкупе с достаточно низкой (по сравнению с традиционными решениями) стоимостью и обуславливает привлекательность клиент - серверных сетей. Работая в такой среде на компьютере - клиенте, возможно использование трех разных методов обработки информации: автономной работы, взаимодействия с другими ПК сети и подключения к серверу или мэйнфрейму для доступа к хранящейся там информации[6].

Двухуровневая архитектура

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

Технология «Клиент – сервер» - это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи[7] (см. рис. 2).

Запрос к базе данных

Ответ

Сервер

Рабочая станция

Манипуляция с БД

БД

Рис. 2. Архитектура «Клинт-Сервер»

Компьютер (или программа), управляющий и/или владеющий каким-либо ресурсом, называют сервером этого ресурса[8].

Компьютер (или программа), запрашивающий и пользующийся каким-либо ресурсом, называют клиентом этого ресурса[9].

Сервер и клиент могут располагаться как на одном компьютере (ПК), так и на разных ПК в сети. Также может возникать такая ситуация, когда некоторый программный блок будет одновременно выполнять функции сервера по отношению к одному блоку и клиента по отношению к другому.

Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы:

- модули интерфейса с пользователем;

По-другому эту группу называют логикой представления. Через эту группу пользователи взаимодействуют с приложением. Ее задача состоит в том, чтобы обеспечить средства для наиболее эффективного обмена информацией между пользователем и информационной системой, независимо от конкретных характеристик логики представления (интерфейс командной строки, сложные графические пользовательские интерфейсы, интерфейсы через посредника).[10]


- модули хранения данных;

Эту группу по-другому называют бизнес-логикой. Бизнес-логика определяет, для чего конкретно предназначено приложение (например, прикладные функции, характерные для данной предметной области). Разделение приложения по границам между программами обеспечивает естественную основу для распределения приложения на нескольких компьютерах.[11]

- модули обработки данных (функции управления ресурсами);

Эту группу по-другому называют логикой доступа к данным или алгоритмами доступа к данным. Они исторически рассматривались как специфический для конкретного приложения интерфейс к механизму постоянного хранения данных наподобие файловой системы или СУБД. За счет модулей обработки данных организуется специфический для приложения интерфейс к СУБД. За счет интерфейса приложение управляет соединениями с базой данных и запросами к ней (перевод специфических для конкретного приложения запросов на язык SQL, получение результатов и перевод этих результатов обратно в специфические для конкретного приложения структуры данных)[12].

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

Выделяются следующие компоненты, в соответствии с разделением функций в любом приложении:

- компонент представления данных;

- прикладной компонент;

- компонент управления ресурсом[13].

В двухуровневой архитектуре клиент-сервер распределяется три основные части приложения по двум физическим модулям. Как правило, прикладной компонент находиться на сервере (например, сервере базы данных), компонент представления данных - на стороне клиента, а компонент управления ресурсом распределяется между клиентской и серверной частями[14]. В этом и заключается главный недостаток классической двухуровневой архитектуры.

При установке и сопровождении, в классической (двухуровневой) архитектуре при разбиении алгоритмов обработки данных разработчики обязаны иметь полную информацию о последних изменениях, внесенных в систему, и понимать эти изменения, что создает значительные сложности при разработке клиент-серверных систем, из-за чего необходимо тратить серьезные усилия на согласование действий разных групп специалистов[15]. В действиях разработчиков часто возникают расхождения, а это затрудняет развитие системы и необходимо изменять уже готовые и проверенные элементы.


Во избежание диссонанса различных элементов архитектуры были разработаны две модификации двухуровневой архитектуры «Клиент – сервер»: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»).

В этих архитектурах разработчики попытались выполнять обработку данных на одной из двух физических частей - либо на стороне клиента («Толстый клиент»), либо на сервере («Тонкий клиент).

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

При разработки двухуровневой классической архитектуры «Клиент – сервер», стоит помнить следующее:

- архитектура «Толстый сервер» точная копия архитектуры «Тонкий клиент»[17] (рисунок 3);

Клиенты

Данные

Сервер

Рис.3. Архитектура «Тонкий клиент»

Передача запроса от клиента на сервер, обработка запроса сервером и передача результата клиенту. При этом архитектуры имеют следующие недостатки:

- усложняется реализация, так как языки типа SQL не приспособлены для разработки подобного ПО и нет хороших средств отладки[18];

- производительность программ, написанных на языках типа SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем;

- программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных;

- получившиеся таким образом программы полностью непереносимы на другие системы и платформы[19].

- архитектура «Тонкий сервер» копия архитектуры «Толстый клиент» (рисунок 4).

На стороне клиента происходит обработка запроса, то есть происходит передача клиенту всех необработанных данных с сервера. При этом архитектуры имеют следующие недостатки:

- усложняется обновление ПО, поскольку его замену нужно производить одновременно по всей системе;