Архитектура Клиент Сервер Описание

 admin  
  • Архитектура «клиент—сервер». Взаимодействие сервера базы данных и приложения клиента происходит следующим образом: клиент формирует запрос и отсылает его серверу. Сервер, приняв запрос, выполняет его, и результат возвращает клиенту. В клиентском приложении в основном осуществляется интерпретация полученных от сервера данных, реализация интерфейса с пользователем и ввод данных, а также реализация части бизнес-правил. Назовите основные характеристики архитектуры «клиент—сервер». Расскажите о двухзвенной модели архитектуры «клиент—сервер». Подробнее расскажите о преимуществах и недостатках двухзвенной модели архитектуры «клиент—сервер».
  • Каждый человек, работавший с компьютером, слышал о технологии клиент-сервер.
  1. Архитектуры Клиент Сервер Описание
  2. Архитектура Клиент Сервер

«Клиент — сервер» (англ. Client–server) — вычислительная или сетевая архитектура, в которой.

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

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

Для реализации серверов БД используются системное ПО реляционных СУБД, понимающих язык запросов SQL, например: Oracle, Informix, Sybase, MSSQLServer. Многие из этих СУБД работают на различных аппаратных платформах и в средах разных ОС. Объектами разработки в приложениях клиент-сервер, помимо диалога и логики обработки, являются, прежде всего, реляционная модель данных и связанный с ней набор SQL-операторов для типовых запросов для этой БД. Большинство конфигураций клиент-сервер используют двухзвенную модель, состоящую из сервера и клиента, который обращается к услугам сервера. Для эффективной реализации такой схемы часто используют неоднородную сеть. В классической схеме клиент-сервер значительная часть приложения располагается на клиенте, а СУБД - на сервере.

Поскольку эта схема предъявляет наименьшие требования к серверу, она обладает наилучшей масштабируемостью. Однако сложные приложения, вызывающие большое взаимодействие с БД, могут жестко загрузить как клиента, так и сеть. Результаты SQL-запроса должны вернуться к клиенту для обработки, потому что там находится логика принятия решения. Такая схема возлагает дополнительное бремя администрирования приложений, разбросанных по различным клиентским узлам.

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

Группу инструментальных средств для создания информационных приложений с архитектурой клиент-сервер можно разделить на следующие подгруппы:. среды разработки приложений для серверов баз данных;. независимые от СУБД инструменты для создания приложений клиент-сервер; средства поддержки распределенных информационных приложений. Среды разработки приложений для серверов БД представляют собой системы программирования четвертого поколения 4GL или инструментальные средства быстрой разработки приложений RAD (RapidApplicationDevelopment). Особенностями этой подгруппы средств являются:.

реализация удаленного доступа к СУБД по двухзвенной схеме клиент-сервер;. связь клиентских приложений с серверами БД с помощью непроцедурного языка структурированных запросов SQL (кроме серверов Btrieve);. обеспечение целостности БД, включая целостность транзакций;. поддержка хранимых процедур на серверах БД;. реализация клиентских и серверных триггеров-процедур;. генерация элементов диалогового интерфейса и отчетов. В качестве примера можно назвать инструменты Informix/4GL, Oracle.Forms и др.

Независимые инструментальные средства, ориентированные на многие платформы СУБД, представлены в виде средств быстрой разработки приложений RAD. SQL является наиболее мощным и популярным языком манипулирования данными реляционных систем управления базами данных (СУБД). Основные возможности языка, доступные в SQL-ориентированных СУБД, определены в рамках специального стандарта ANSI/ISO.

Архитектуры Клиент Сервер Описание

SQL-стандарт признан с 1982 года, а формально определен как ANSI-стандарт Х3.135 в 1986 году и как ISO-стандарт - в 1987. Стандартизация возможностей SQL продолжается и сейчас. На смену стандарту SQL2, реализованному в большинстве коммерческих СУБД, приходит новый вариант - SQL3.

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

SQL в стандарте ANSI/ISO является реляционно-полным языком, и СУБД, поддерживающие его, удовлетворяют всем правилам Кодда. Подход от Microsoft: COM и ASP.

3 Технология «Клиент – сервер» Технология «клиент-сервер» пришла на смену централизованной схеме управления вычислительным процессом на мейнфреймах еще в 80-х годах прошлого века. Благодаря высокой живучести и надежности вычислительной системы, легкости масштабирования, возможности одновременной работы пользователя с несколькими приложениями, высокой оперативности обработки информации, обеспечению пользователя высококачественным интерфейсом и другим возможностям эта весьма перспективная и далеко не исчерпавшая себя технология получила свое дальнейшее развитие. Со временем малофункциональную модель файлового сервера для локальных сетей (FS) заменили появившиеся одна за одной модели структуры «Клиент- сервер» (RDA, DBS и AS). Заняв нишу баз данных, технология «Клиент – сервер» стала основной технологией глобальной сети Internet. Далее, в результате перенесения идей сети Internet в среду корпоративных систем, появилась технология Intranet.

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

В то же время реализации этой технологии в конкретных программных продуктах и даже в видах программного обеспечения различаются весьма существенно. 3.1 Классическая двухуровневая архитектура «Клиент – сервер» Обычно компоненты сети не равноправны: у одних есть доступ к ресурсам (например, принтер, процессор, система управления базой данных (СУБД), файловая система и так далее), другие имеют возможность обращаться к этим ресурсам.

Технология «Клиент – сервер» - это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи (рисунок 6). Рисунок 6 – Архитектура «Клиент – сервер» Компьютер (или программа), управляющий и/или владеющий каким-либо ресурсом, называют сервером этого ресурса. Компьютер (или программа), запрашивающий и пользующийся каким-либо ресурсом, называют клиентом этого ресурса. Клиент и сервер могут находиться как на одном компьютере (ПК), так и на разных ПК в сети. Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы: - модули интерфейса с пользователем; Также эту группу называют логикой представления. Через эту группу пользователи взаимодействуют с приложением.

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

Разделение приложения по границам между программами обеспечивает естественную основу для распределения приложения на нескольких компьютерах. модули обработки данных (функции управления ресурсами); Эту группу также называют логикой доступа к данным или алгоритмами доступа к данным.

Архитектура Клиент Сервер Описание

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

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

Архитектура Клиент Сервер

В классической архитектуре клиент-сервер приходится распределять три основные части приложения по двум физическим модулям. Обычно прикладной компонент располагается на сервере (например, сервере базы данных), компонент представления данных - на стороне клиента, а компонент управления ресурсом распределяется между клиентской и серверной частями. В этом заключается основной недостаток классической двухуровневой архитектуры. В двухзвенной архитектуре при разбиении алгоритмов обработки данных разработчики должны иметь полную информацию о последних изменениях, внесенных в систему, и понимать эти изменения, что создает большие сложности при разработке клиент-серверных систем, их установке и сопровождении, поскольку необходимо тратить значительные усилия на координацию действий разных групп специалистов. В действиях разработчиков часто возникают противоречия, а это тормозит развитие системы и вынуждает изменять уже готовые и проверенные элементы. Чтобы избежать несогласованности различных элементов архитектуры были созданы две модификации двухзвенной архитектуры «Клиент – сервер»: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»). В данных архитектурах разработчики попытались выполнять обработку данных на одной из двух физических частей - либо на стороне клиента («Толстый клиент»), либо на сервере («Тонкий клиент).

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

Если же вся обработка информации выполняется на сервере, то возникает проблема описания встроенных процедур и их отладки. Систему с обработкой информации на сервере абсолютно невозможно перенести на другую платформу (ОС), что является серьезным недостатком. Есди все-таки разрабатывается двухуровневая классическая архитектура «Клиент – сервер», то необходимо помнить следующее: - архитектура «Толстый сервер» аналогична архитектуре «Тонкий клиент» (рисунок 33). – Архитектура «Тонкий клиент» Передача запроса от клиента на сервер, обработка запроса сервером и передача результата клиенту. При этом архитектуры имеют следующие недостатки: - усложняется реализация, так как языки типа SQL не приспособлены для разработки подобного ПО и нет хороших средств отладки; - производительность программ, написанных на языках типа SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем; - программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных; - получившиеся таким образом программы полностью непереносимы на другие системы и платформы. архитектура «Тонкий сервер» аналогична архитектуре «Толстый клиент» (рисунок 34). Обработка запроса происходит на стороне клиента, то есть происходит передача клиенту всех необработанных данных с сервера.

При этом архитектуры имеют следующие недостатки: - усложняется обновление ПО, поскольку его замену нужно производить одновременно по всей системе; - усложняется распределение полномочий, так как разграничение доступа происходит не по действиям, а по таблицам; - перегружается сеть вследствие передачи по ней необработанных данных; - слабая защита данных, поскольку сложно правильно распределить полномочия. – Архитектура «Толстый клиент» Для решения перечисленных проблем используются многоуровневые (три и более уровней) архитектуры «Клиент-сервер». 3.2 Трехуровневая модель С середины 90-х годов прошлого века признание специалистов получила трехзвенная архитектура «Клиент – сервер», которая разделила информационную систему по функциональным возможностям на три отдельных компонента: логика представления, бизнес-логика и логика доступа к данным. В отличие от двухзвенной архитектуры в трехзвенной появляется дополнительное звено - сервер приложений, который предназначен для осуществления бизнес-логики, при этом полностью разгружается клиент, который направляет запросы промежуточному программному обеспечению, и максимально используются все возможности серверов.

   Coments are closed