Добавлен: 28.04.2023
Просмотров: 466
Скачиваний: 1
СОДЕРЖАНИЕ
1.Описание технологии «клиент-сервер»
1.1.Понятие технологии «клиент-сервер»
1.2.Модели информационного взаимодействия «клиент-сервер»
1.3.Архитектура технологических решений «клиент-сервер»
2.Современные технологии «клиент-сервер»
2.1.Технологии обработки страниц web-сайта.
2.2.Реализация бизнес-задач на базе использования web-сайта.
2.3.Описание сетевых систем управления базами данных.
3.Практика использования технологических решений «клиент-сервер»
Введение
Актуальность выполнения работы обусловлена тем, что область применения информационно-коммуникационных технологий постоянно расширяется, а сами они становятся все более и более сложными и технологичными. Некоторые системы вырастают и усложняются настолько, что приобретают глобальный характер, и от их правильного и надежного функционирования начинает зависеть деятельность десятков или даже сотен тысяч человек.
В силу своей глобальности (необходимо обеспечить оперативный доступ к вычислительной системе из территориально разнесенных между собой точек), а также в силу других причин такие вычислительные системы часто имеют сложную архитектуру, предполагающую их функционирование в виде набора технологических компонентов, каждый из которых выполняется на отдельном узле.
Поскольку число таких систем постоянно возрастает, требования, предъявляемые к ним, достаточно велики и многогранны. Сложность непосредственного проектирования и разработки таких систем высока, а методы и средства, которые принимались в процессе практической реализации таких проектов, отличны от принятых при разработке монолитных вычислительных систем.
Повсеместный переход на технологические решения «клиент-сервер» помогает решить достаточно большое количество старых проблем, но при этом появилось много новых. Одной из основных трудностей было и остается определение границы между функционалом клиента и сервера. Часто решение о переносе части задач на сервер пагубно сказывается на общей производительности системы, и наоборот, перенос части нагрузки на клиента может привести к потере централизации.
По мере роста популярности систем «клиент-сервер» набирала силу и технология объектно-ориентированного программирования, которая предлагала перейти к системной архитектуре с тремя слоями: слой представления отводится пользовательскому интерфейсу, слой предметной области предназначен для описания основных функций приложения, необходимых для достижения поставленной перед ним цели, а третий слой представляет источник данных.
Объект исследования – интернет-технологии.
Предмет исследования – технология «клиент-сервер»
Целью данной работы является изучение технологии «клиент-сервер».
В соответствии с целью была определена необходимость постановки и решения следующих задач:
– дать понятие технологии «клиент-сервер»;
– описать модели взаимодействия «клиент-сервер»;
– описать архитектуру «клиент-сервер»;
– дать характеристику современным технологиям «клиент-сервер»;
– описать практику использования технологий «клиент-сервер».
1.Описание технологии «клиент-сервер»
1.1.Понятие технологии «клиент-сервер»
«Клиент–сервер» представляет собой вычислительную или сетевую архитектуру, в которой задания или сетевая нагрузка распределяется между активными поставщиками услуг, которые называются серверами, и заказчиками услуг, клиентами [3, с. 19]. Фактически клиент и сервер – это специальное прикладное программное обеспечение.
В связи с тем, что одна прикладная программа-сервер может выполнять структурированные запросы от большого количества прикладных программ-клиентов, её целесообразно размещать на специально выделенной вычислительной системе, которая настраивается особым образом, как правило, совместно с другими прикладными программами-серверами, поэтому производительность данной вычислительной машины должна быть достаточно высокой.
Из-за особенной роли такой машины в вычислительной сети, специфики её программного обеспечения и оборудования, её также называют сервером, а машины, которое выполняют клиентские прикладные программы, соответственно, клиентами.
Как правило, персональные компьютеры и прикладные программы, которые входят в состав вычислительной системы, не являются равноправными в данной системе. Некоторые из них владеют вычислительными ресурсами, другие включают комплекс возможностей обращения к этим вычислительным ресурсам. Компьютер, который управляет вычислительными ресурсами, называется сервером такого ресурса. Клиент и сервер некоторого вычислительного ресурса могут находиться как в рамках одной системы, так и на различных персональных компьютерах, которые связаны вычислительной сетью.
Основным принципом технологии «клиент-сервер» реализуется через разделение функций прикладного программного приложения на несколько групп: ввод и непосредственное отображение оперативных данных (взаимодействие с пользователем вычислительной системы); прикладные функции, являющиеся характерными для данной предметной области функционирования технологии «клиент-сервер»; функции непосредственного управления оперативными ресурсами некоторой вычислительной системы.
Поэтому, в любом прикладном программном приложении можно выделить следующие компоненты: компонент представления данных; прикладной компонент; компонент управления ресурсом.
Связь между компонентами осуществляется по определенным правилам, которые называют «протокол взаимодействия».
1.2.Модели информационного взаимодействия «клиент-сервер»
Компанией Gartner Group, которая специализируется на исследованиях в области информационных технологий, предложена такая классификация двухзвенных моделей взаимодействия клиент-сервер (двухзвенными эти модели называются в связи с тем, что три компонента прикладного программного приложения разным образом распределяются между двумя вычислительными узлами).
Исторически первой появилась модель распределенного представления оперативных данных, реализованная на универсальной ЭВМ с обеспечением непосредственного подключения к ней терминалами. Управление оперативными данными и организация их непосредственного взаимодействия с пользователем при этом объединялись в одной прикладной программе, на терминал выполнялась передача только «картинки», которая была сформирована на основном компьютере [8, с. 86].
Затем, с появлением персональных компьютеров и локальных вычислительных сетей, были реализованы специализированные модели доступа к удаленным базам данных. Некоторое время базовой для вычислительных сетей персональных компьютеров была архитектура файлового сервера. При этом один из персональных компьютеров представлял собой файловый сервер, на клиентах выполнялись прикладные приложения, в которых были совмещены компоненты представления и прикладной компонент (некоторая система управления базами данных и прикладная программа) [16, с. 250].
При этом, протокол обмена представлял собой специализированный набор низкоуровневых вызовов операций к файловой системе. Такая архитектура, которая была реализована, как правило, при помощи использования персональных вычислительных систем управления базами данных, имеет существенные недостатки, среди которых можно выделить достаточно высокий сетевой трафик и практически полное отсутствие унифицированного доступа к ресурсам.
С появлением первых специализированных серверов баз данных была реализована уникальная модель доступа к удаленным базам данных. При использовании такого подхода ядро системы управления базами данных работает на сервере, протокол обмена обеспечивается при помощи использования языка структурированных запросов SQL. Такой подход в сравнении с файловым сервером ведет к значительному снижению загрузки вычислительной сети и практически полной унификации интерфейса «клиент-сервер» [13, с. 74]. Однако, в таком случае сетевой трафик остается высоким, кроме того, по прежнему является невозможным хорошее администрирование программных приложений, в связи с тем что, в одной прикладной программе совмещаются разные функции обработки данных.
Позже была разработана уникальная концепция активного сервера, который использовал специализированный механизм хранимых процедур обработки оперативных данных. Это позволило составную часть прикладного компонента перенести на сервер (что реализует модель распределенного прикладного программного приложения). Процедуры, в таком случае, хранятся в словаре определенной базы данных, разделяются между несколькими клиентами и выполняются на том же компьютере, что и SQL-сервер [21, с. 369].
Преимуществом использования такого подхода является появление возможностей централизованного администрирования прикладных функций, позволяет значительно снизить сетевой трафик (т.к. передаются не SQL-запросы, а только сами вызовы хранимых процедур). Недостатком такого подхода является некоторая ограниченность средств разработки хранимых процедур в сравнении с использованием языков программирования общего назначения (C и Pascal).
В последнее время также наблюдается некоторые тенденции ко все большему практическому использованию специализированной модели распределенного прикладного программного приложения. Характерной чертой таких прикладных программных приложений является логическое разделение приложения на несколько частей, каждая из которых может быть выполнена на отдельном персональном компьютере. Выделенные части прикладного программного приложения взаимодействуют друг с другом, по средствам обмена необходимыми сообщениями в заранее согласованном формате передачи данных. На практике обычно используется смешанный подход, который предполагает:
– простейшие прикладные программные функции выполняются хранимыми процедурами на сервере;
– более сложные реализуются на клиенте непосредственно в прикладной программе [24, с. 54].
Сейчас ряд поставщиков коммерческих систем управления базами данных объявило о серьезных планах практической реализации уникальных механизмов выполнения хранимых процедур с использованием языка программирования Java. Это соответствует концепции «тонкого клиента», функцией которого остается только непосредственное отображение оперативных данных (модель удаленного представления данных).
1.3.Архитектура технологических решений «клиент-сервер»
Архитектура клиент-сервер определяет лишь общие принципы непосредственного взаимодействия между персональными компьютерами, детали практического взаимодействия определяют различные протоколы обработки данных. Данная концепция говорит, что необходимо разделять машины в вычислительной сети на клиентские, которым всегда что-то надо и на серверные, которые дают то, что надо. При таком взаимодействии всегда начинает клиент, а правила, по которым выполняется это взаимодействие описывает используемый протокол.
Существует несколько видов архитектуры взаимодействия клиент-сервер: первый называется двухзвенной архитектурой клиент-серверного взаимодействия, второй – многоуровневая архитектура клиент-сервер (иногда его называют трехуровневой архитектурой или трехзвенной архитектурой, но это является частным случаем).
Принцип работы двухуровневой архитектуры взаимодействия клиент-сервер реализуется через то, что обработка структурированного запроса выполняется на одной вычислительной машине без практического использования сторонних вычислительных ресурсов. Двухзвенная архитектура предъявляет достаточно жесткие требования к общей производительности сервера, но в тоже время является надежной. Двухуровневую модель взаимодействия клиент-сервер можно увидеть на рис. 1.
Здесь четко видно, что есть определенный клиент (первый уровень), позволяющий определенному человеку сделать свой запрос, и есть сервер, обрабатывающий пользовательский запрос.
Рис. 1. Двухуровневая модель взаимодействия клиент-сервер
Если говорить про многоуровневую архитектуру взаимодействия клиент-сервер, то в качестве усредненного примера можно привести любую современную систему управления базами данных (за исключением, SQLite, которая не использует технологию клиент-сервер) [4, с. 89].
Суть практической реализации многоуровневой архитектуры заключается в том, что пользовательские запросы обрабатываются сразу несколькими серверами. Использование такого подхода позволяет существенно уменьшить нагрузку на вычислительный сервер из-за того, что происходит необходимое распределение операций, но в то же самое время использование данного подхода не может быть надежным, как двухзвенная архитектура. На рис. 2 можно увидеть пример многоуровневой архитектуры клиент-сервер.
Если посмотреть на представленную архитектуру с позиции web-сайта. То первый уровень данной архитектуры можно считать браузером, при помощи которого посетители заходят на web-сайт, второй уровень – это технологическая связка Apache + PHP, а третий уровень – это определенная база данных. Преимуществом практического использования данной модели является то, что программный код некоторого клиентского прикладного программного приложения и серверного разделен.