Файл: Варианты архитектуры клиент-сервер (Варианты архитектуры «клиент-сервер»).pdf

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

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

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

Добавлен: 30.04.2023

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

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

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

Введение

Актуальность выполнения данной работы обусловлена тем, что современное информационное пространство предполагает обработку большого количества разрозненной информации. Использование разрозненных информационно-коммуникационных технологий уже недостаточно для обеспечения эффективной работы организации и пользователя, в частности. Перевод сервисов в облака позволяет предоставить организациям более широкий спектр услуг и надежность обработки информации. И при этом, использование технологии клиент-сервер позволяет достичь максимального эффекта обработки информации.

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

Объект исследования – интернет-технологии.

Предмет исследования – технология «клиент-сервер».

Целью данной работы является изучение вариантов архитектуры «клиент-сервер».

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

– дать характеристику технологии «клиент-сервер»;

– изучить модели взаимодействия «клиент-сервер»;

– описать варианты архитектур «клиент-сервер»;

– представить программную реализацию предметной задачи.

1. Технология «клиент-сервер»

1.1. Понятие технологии «клиент-сервер»

«Клиент–сервер» представляет собой вычислительную или сетевую архитектуру, в которой задания или сетевая нагрузка распределены между поставщиками услуг, называемыми серверами, и заказчиками услуг, называемыми клиентами. Фактически клиент и сервер – это специальное программное обеспечение [1].

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


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

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

– ввод и непосредственное отображение данных (взаимодействие с пользователем);

– прикладные функции, которые являются характерными для данной предметной области;

– функции управления оперативными ресурсами вычислительной системы [4].

Поэтому, в любом прикладном программном приложении выделяются следующие компоненты:

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

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

– компонент управления ресурсом.

Связь между компонентами осуществляется по определенным правилам, которые называют «протокол взаимодействия».

Преимущества практического использования технологии «клиент-сервер»:

– отсутствие дублирования кода программы-сервера прикладными программами-клиентами;

– так как все вычисления выполняются на сервере, то требования к персональным компьютерам, на которых установлен клиент, существенно снижаются;

– все данные хранятся на сервере, который, как правило, защищён гораздо лучше большинства клиентов. На сервере проще может быть организован контроль полномочий, чтобы разрешать доступ к данным только клиентам с определенными правами доступа [7].

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

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

– поддержка работы данной системы требует отдельного специалиста – системного администратора;

– высокая стоимость требуемого оборудования.

1.2. Модели взаимодействия «клиент-сервер»


Компанией Gartner Group, специализирующейся в области исследования информационных технологий, предложена следующая классификация двухзвенных моделей взаимодействия клиент-сервер (двухзвенными эти модели называются потому, что три компонента приложения различным образом распределяются между двумя узлами).

Исторически первой появилась модель распределенного представления данных, которая реализовывалась на универсальной ЭВМ с подключенными к ней неинтеллектуальными терминалами. Управление данными и взаимодействие с пользователем при этом объединялись в одной программе, на терминал передавалась только «картинка», сформированная на центральном компьютере [10].

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

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

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

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

Преимущества такого подхода: возможно централизованное администрирование прикладных функций, значительно снижается сетевой трафик (т.к. передаются не структурированные SQL-запросы, а вызовы хранимых процедур). Недостаток - ограниченность специализированных средств разработки хранимых процедур по сравнению с языками общего назначения (C и Pascal).


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

– простейшие прикладные функции выполняются хранимыми процедурами на сервере;

– более сложные реализуются на клиенте непосредственно в прикладной программе [11].

Сейчас ряд поставщиков коммерческих систем управления базами данных объявило о планах реализации механизмов выполнения хранимых процедур с использованием языка программирования Java. Это соответствует концепции «тонкого клиента», функцией которого остается только непосредственное отображение данных (модель удаленного представления данных).

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

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

Появление архитектуры клиент-сервер, как и многих других новых компьютерных технологий, сопровождалось рождением новой терминологии, которые и являются компонентами технологии «клиент-сервер»:

– прикладной программный интерфейс (Application Programming Interface, API) - набор функций и подпрограмм, обеспечивающих взаимодействие клиентов и серверов;

– клиент - объект, запрашивающий информацию по сети. Как правило, это персональный компьютер или рабочая станция, запрашивающая информацию у сервера;

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

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


– сервер - компьютер (как правило, высокопроизводительная рабочая станция, миникомпьютер или мэйнфрейм), хранящий информацию, с которой работают сетевые клиенты;

– язык структурированных запросов (Structured Query Language, SQL) - разработанный корпорацией IBM и стандартизованный институтом ANSI язык для создания, управления и изменения баз данных [6].

Каждый сервер в окружении клиент-сервер предоставляет клиентам набор услуг. Наиболее распространенным типом сервера в архитектуре клиент-сервер является сервер баз данных, как правило, управляющий реляционной базой данных. Высокопроизводительный сервер обеспечивает коллективный доступ нескольких клиентов к одной и той же базе данных [13].

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

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

2. Варианты архитектуры «клиент-сервер»

2.1. Двухуровневая архитектура «клиент-сервер»

В любой сети (даже одноранговой), построенной на современных сетевых технологиях, присутствуют элементы клиент-серверного взаимодействия, чаще всего на основе двухзвенной архитектуры. Двухзвенной (two-tier, 2-tier) она называется из-за необходимости распределения трех базовых компонентов между двумя узлами (клиентом и сервером).

Двухзвенная архитектура используется в клиент-серверных системах, где вычислительный сервер отвечает на клиентские запросы напрямую и в полном объеме, при этом используя только собственные вычислительные ресурсы [3].

Т.е. сервер не вызывает сторонние сетевые прикладные программные приложения и не обращается к сторонним вычислительным ресурсам для выполнения какой-либо части пользовательского структурированного запроса (рис. 1).