Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Клиент-серверная трехслойная архитектура






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

 

 
 

 

 


Рисунок 5. ИС в архитектуре " клиент-сервер", трехслойная архитектура

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

Отметим, что в данной архитектуре каждый из слоев ИС реализуется на своих аппаратных средствах: слой представления – на рабочих станциях с «тонким» клиентом», слой бизнес логики – на сервере приложений и слой доступа к данным – на сервере БД.

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

На стороне сервера БД в продуктах практически всех компаний происходит прием от клиента текста оператора на языке SQL. Далее:

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

¾ происходит выполнение оператора; в зависимости от типа оператора это осуществляется следующим образом:

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

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

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

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

· при выполнении операторов вызова ранее определенных и сохраненных в базе данных хранимых процедур в языке SQL в процедуру может быть помещена значительная часть приложения, которое при выполнении оператора вызова процедуры будет выполняться на стороне сервера, а не на стороне клиента.

· при выполнении оператора завершения транзакции сервер проверяет соблюдение всех, так называемых, отложенных ограничений целостности, к которым относятся ограничения, накладываемые на содержимое таблиц БД; эта проверка выполняется в серверной части приложения.

Из сказанного следует, что в клиент-серверной архитектуре клиенты могут быть достаточно " тонкими", а сервер остается достаточно " толстым", чтобы удовлетворить потребности всех клиентов.

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

Фактически, концепция локального кэширования БД является частным случаем концепции реплицированных баз данных. Для поддержки локального кэша БД программное обеспечение рабочих станций должно содержать компонент управления базами данных - упрощенный вариант сервера баз данных. Отдельной проблемой является обеспечение согласованности (когерентности) кэшей и общей БД. Здесь возможны различные решения - от автоматической поддержки согласованности за счет средств базового программного обеспечения управления БД до полного перекладывания этой задачи на прикладной уровень. При организации локальных кэшей клиенты становятся более толстыми, сервер тоньше не делается.

Подводя итог сказанному, отметим достоинства и недостатки трехслойной архитектуры клиент-сервер. Достоинства:

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

2. Наилучшая среди всех архитектур масштабируемость, как горизонтальная, так и вертикальная; горизонтальная масштабируемость обусловлена тем, что одна и та же система может работать как на одном отдельно стоящем компьютере, выполняя на нем программы СУБД, сервера приложений и клиентской части, так и в сети, состоящей из сотен и тысяч машин. Вертикальная масштабируемость, т.е. расширение функциональных возможностей ИС обусловлена тем, что она не достигается заменой сервера приложений на новый с требуемой функцией.

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

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

5. Дешевый трафик между сервером приложений и СУБД; трафик между сервером приложений и СУБД может быть большим, однако это всегда трафик локальной сети, пропускная способность которой достаточно велика и дешева; при запуске сервера приложений и СУБД на одной машине сетевой трафик сводится к нулю.

6. Снижение нагрузки на сервер БД по сравнению с 2.5-слойной схемой, а значит и повышение скорости работы системы в целом.

Недостатки:

1. Архитектура " клиент-сервер" требует, как правило, более мощных и, следовательно, дорогих аппаратных средств, чем архитектура " файл-сервер".

2. Выше расходы на администрирование и обслуживание серверной части.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.