Файл: Технология «клиент-сервер» (Современные технологии).pdf

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

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

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

Добавлен: 17.05.2023

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

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

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

– описать практику использования технологий «клиент-сервер».


1. Описание технологии клиент-сервер

1.1. Характеристика понятия клиент-сервер

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

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

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

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

Основным принципом технологии «клиент-сервер» реализуется через разделение функций прикладного программного приложения на несколько групп: ввод и непосредственное отображение оперативных данных (взаимодействие с пользователем вычислительной системы); прикладные функции, являющиеся характерными для данной предметной области функционирования технологии «клиент-сервер»; функции непосредственного управления оперативными ресурсами некоторой вычислительной системы[5].


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

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

1.2. Описание моделей информационного взаимодействия в рамках технологии клиент-сервер

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

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

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

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


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

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

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

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

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

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

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


1.3. Характеристика архитектуры технологических решений клиент-сервер

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

Существует несколько видов архитектуры взаимодействия клиент-сервер: первый называется двухзвенной архитектурой клиент-серверного взаимодействия, второй – многоуровневая архитектура клиент-сервер (иногда его называют трехуровневой архитектурой или трехзвенной архитектурой, но это является частным случаем)[13].

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

Если посмотреть на представленную архитектуру с позиции web-сайта. То первый уровень данной архитектуры можно считать браузером, при помощи которого посетители заходят на web-сайт, второй уровень – это технологическая связка Apache + PHP, а третий уровень – это определенная база данных. Преимуществом практического использования данной модели является то, что программный код некоторого клиентского прикладного программного приложения и серверного разделен[15].

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

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