Файл: Методологические аспекты архитектуры клиент-сервера.pdf
Добавлен: 29.03.2023
Просмотров: 229
Скачиваний: 2
Любая сеть, даже та, что построена с применением современных сетевых технологий, состоит из элементов клиент-серверного взаимодействия, основой для которой чаще всего является двухзвенная архитектура. Такое название она получила из-за необходимости в распределении трех основных компонентов между двумя узлами, т.е. сервером и клиентом.
Двухзвенная архитектура применяется в клиент-серверной системе там, где на клиентские запросы ответ напрямую предоставляет сервер в полном объеме, при этом задействует только собственные ресурсы (см. рисунок 5). Иными словами, сервер не задействует сторонние ресурсы и сетевые приложения для того, чтобы выполнить какой-либо запрос.
Клиент
Сервер
БД
запрос
ответ
Рис. 5 – Двухзвенная клиент-серверная архитектура [2, c.76]
В рамках двухзвенной архитектуры основных моделей и взаимодействия между ними, расположение компонентов сервера или клиента определяются за счет:
- сервер терминалов — распределенное представление данных;
- файл-сервер — доступ к удаленной базе данных и файловым ресурсам;
- сервер БД — удаленное представление данных;
- сервер приложений — удаленное приложение.
Исторически, первой появилась модель распределенного представления данных. Ее удалось реализовать на основе универсальной ЭВМ, которая выступала в роли сервера, к которому были подключены алфавитно-цифровые терминалы.
Пользователь осуществлял ввод данных при помощи клавиатуры на терминале, после чего они передавались на мэйнфрейм[1], где уже выполнялась их обработка, а также происходило формирование иллюстрации с результатами. Данные иллюстрации с результатами направлялись пользователю на экран терминала.
На момент появления локальных сетей и персональных компьютеров, смогли реализовать модель файлового сервера, который предоставлял доступ к файловым ресурсам, в том числе к удаленным базам данных. В данном случае, любой выделенный узел в сети являлся файловым сервером, содержащем размещенные файлы базы данных.
На клиентах выполняются приложения, состоящие из совмещенных компонентов прикладного и компонента представления, использующие в качестве локального файла подключенную удаленную базу данных. При этом, протоколы обмена являются набором низкоуровневых вызовов операций файловой системы. Данная модель уже показала свою неэффективность, т.к. при интенсивной работе с таблицами базы данных появляется большая нагрузка на сеть. Одним из частичных вариантов решения данной проблемы является поддержка тиражирования запросов и таблиц. В данном случае, обновлению подвергнется только модифицированная часть, а не вся таблица.
На момент появления специализированных систем управления баз данных появилась и возможность реализации другой модели доступа к удаленной базе данных - это модель сервера без данных. При данном варианте, ядро системы управления базы данных работает на сервере, протокол обмена функционирует с помощью языка SQL, а прикладная программа работает на клиенте.
Данный тип подхода, в сравнении с файловым сервером, приводит к уменьшению нагрузки на сеть и унификации интерфейса «клиент-сервер». Стоит отметить, что сетевой трафик остается довольно высоким, при этом, сохраняется отсутствие возможности в администрировании приложений, т.к. одна программа совмещает в себе несколько различных функций. Наряду с разработкой и внедрением баз данных механизма хранимых процедур, образовалась новая концепция активного сервера базы данных.
В данном формате некоторые функции прикладного компонента представлены в виде хранимых процедур, которые выполняются на стороне сервера. Вся остальная прикладная логика реализовывается на стороне клиентов. Протокол взаимодействия — соответствующий диалект языка SQL.
Преимуществами данного подхода являются: [4, c.56]
- возможность для централизованного администрирования прикладных функций;
- стоимость владения системой снижается, при помощи использования аренды сервера, а не покупки;
- значительное снижение сетевого трафика (т.к. передаются не SQL-запросы, а вызовы хранимых процедур).
Одним из основных недостатков является ограниченное количество средств, используемых при разработке хранимых процедур, если проводить аналогию с языками высокого уровня. Сервер приложений представляет собой реализацию прикладного компонента на стороне сервера. За счет переноса функций прикладного компонента на сервер, происходит снижение требований конфигурации самих клиентов, а также упрощает администрирование. При этом, сохраняются повышенные требования к безопасности, надежности и производительности сервера.
В данный период возможно отметить зарождение тенденции к возврату, к истокам клиент-серверной архитектуры, а именно к централизации всех вычислений, основанных на модели терминал-сервер. В нынешнее время терминалы представлены в виде минимального сбора аппаратных и программных средств, иными словами, представляют мультимедийные возможности.
Постоянная работа терминалов обеспечивается за счет высокопроизводительного сервера, на который вынесено все, включая даже виртуальные драйвера устройств и драйвера видеоподсистемы. Большое использование распределенных вычислений задает очередную тенденцию в клиент-серверных технологиях. Их реализация основана на модели сервера для приложений, в котором сетевое приложение делится на две и более частей, при этом, каждая может выполняться на отдельных устройствах.
Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате. В данной ситуации клиент-серверная архитектура из двухзвенный превращается в трехзвенную.
Зачастую, в качестве третьего звена в трехзвенной архитектуре выступает сервер приложений, иными словами компоненты распределяются в следующем виде: [6, c.73]
- предоставление данных - на стороне клиента;
- прикладной компонент - находится на выделенном сервере приложений;
- управление ресурсами - находится на сервере базы данных, представляющий собой запрашиваемые данные.
Трехзвенную архитектуру возможно расширить до многозвенной, за счет выделения дополнительных серверов, при этом, каждый из них представляет собой собственные сервисы позволит использовать услуги иных серверов разного уровня.
2. Методологические аспекты архитектуры клиент-сервера
2.1 Модель клиент-сервер, как основа построения информационных сервисов сети Интернет
В основу взаимодействия компонентов информационных сервисов сети Интернет, в большинстве случаев, положена модель клиент-сервер. Как правило, в качестве клиента выступает программа, которая установлена на компьютере пользователя, а в качестве сервера – программа, установленная у провайдера.
В данном контексте под провайдером понимают организацию или частное лицо, которые поддерживают информационные ресурсы. При этом, возможны два варианта организации самой информационной системы, которая обеспечивает доступ к информационному ресурсу.
Большинство систем Интернет построены по принципу взаимодействия «каждый с каждым», например, система World Wide Web, т.е. каждый пользователь может напрямую взаимодействовать с каждым сервером без посредников. Такой подход позволяет упростить всю технологическую схему построения системы, однако, приводит к порождению большого трафика в Сети. Альтернативный вариант построения системы, например, системы Usenet, когда пользователь может взаимодействовать только со «своим» сервером и не может обратиться к произвольному серверу в Сети. Однако, доступ он получает ко всей информации, которая присутствует в данной информационной системе, т.к. серверы обмениваются ею между собой.
2.2 Сравнительная характеристика действующих архитектур
Двухзвенная архитектура является самой простой, т.к. все запросы обрабатываются на одном сервере, однако, это делает ее менее надежной и обеспеченной повышенной производительностью сервера.
Трехзвенная архитектура сложнее, что позволяет распределять функции между серверами второго и третьего уровня, данная архитектура показывает: [10, c.86]
- высокий уровень масштабированному и гибкости;
- высокий уровень безопасности;
- высокий уровень производительности.
Надежность
Сервер баз данных осуществляет модификацию данных на основе механизма транзакций, который придает любой совокупности операций, объявленных как транзакция, следующие свойства:
- атомарность - при любых обстоятельствах будут либо выполнены все операции транзакции, либо не выполнена ни одна; целостность данных при завершении транзакции;
- независимость - транзакции, инициированные разными пользователями, не вмешиваются в дела друг друга;
- устойчивость к сбоям - после завершения транзакции, ее результаты уже не пропадут.
Механизм транзакций, поддерживаемый сервером баз данных, намного более эффективен, чем аналогичный механизм в настольных СУБД, т.к. сервер централизованно контролирует работу транзакций. Кроме того, в файл-серверной системе сбой на любой из рабочих станций может привести к потере данных и их недоступности для других рабочих станций, в то время, как в клиент-серверной системе сбой на клиенте, практически, никогда не сказывается на целостности данных и их доступности для других клиентов.
Масштабируемость
Масштабируемость - способность системы адаптироваться к росту количества пользователей и объема базы данных при адекватном повышении производительности аппаратной платформы, без замены программного обеспечения.
Общеизвестно, что возможности настольных СУБД серьезно ограничены - это пять-семь пользователей и 30-50 Мб, соответственно. Цифры, разумеется, представляют собой некие средние значения, в конкретных случаях они могут отклоняться как в ту, так и в другую сторону. Что наиболее существенно, эти барьеры нельзя преодолеть за счет наращивания возможностей аппаратуры.
Системы же на основе серверов баз данных могут поддерживать тысячи пользователей и сотни ГБ информации - дайте им только соответствующую аппаратную платформу.
Безопасность
Сервер баз данных предоставляет мощные средства защиты данных от несанкционированного доступа, невозможные в настольных СУБД. При этом, права доступа администрируются очень гибко - до уровня полей таблиц. Кроме того, можно вообще запретить прямое обращение к таблицам, осуществляя взаимодействие пользователя с данными через промежуточные объекты - представления и хранимые процедуры. Так что администратор может быть уверен - никакой слишком умный пользователь не прочитает то, что ему читать неположено.
Гибкость
В приложении, работающем с данными, можно выделить три логических слоя: [1, c.73]
- пользовательского интерфейса;
- правил логической обработки (бизнес-правил);
- управления данными.
В файл-серверной архитектуре все три слоя реализуются в одном монолитном приложении, функционирующем на рабочей станции. Поэтому изменения в любом из слоев приводят однозначно к модификации приложения и последующему обновлению его версий на рабочих станциях.
Архитектуру клиент-сервер задействуют в большинстве сетевых технологий, которые применяют для получения доступа к разным сетевым сервисам. Ключевыми сетевыми сервисами, в данном случае, являются:
- Web-серверы;
- серверы приложений;
- серверы баз данных;
- файл-серверы;
- прокси-серверы;
- файрволы;
- почтовые серверы;
- серверы удаленного доступа.
Web-серверы - раньше доступ к гипертекстовым документам предоставлялся по протоколу. В данное время, используют расширенные возможности, зачастую в работе с бинарными файлами.
Серверы приложений используются для предоставления централизованного решения любых прикладных задач в конкретной предметной области. Для выполнения этого решения пользователи могут использовать запуск серверных программ. Это позволяет снижать конфигурации и требования клиентом, а также упрощает общее управление сетью.
Серверы баз данных используются для обработки запросов от пользователей на языке SQL. Однако, системы управления баз данных находятся на сервере, к которому осуществляются подключения со стороны клиентских приложений.
Файл-сервер используется для хранения информации в формате файлов, а также дает доступ пользователям к ней. Также файл-сервер поддерживает определенный уровень защиты от несанкционированных доступов.
Прокси-сервер действует в качестве посредника, при этом, помогает пользователю получить информацию из интернета, поддерживая, при этом, защиту сети. Прокси-сервер способен сохранять всю запрашиваемую информацию на локальном диске в кэш-памяти, за счет чего дает возможность пользователям быстро ее использовать без повторного подключения к интернету.