Файл: Варианты архитектуры клиент-сервер (Модели клиент-сервер).pdf

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

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

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

Добавлен: 25.06.2023

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

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

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

1. Введение.

Область использования информационных систем каждый день расширяется, и усложняются. Кое-какие системы развиваются так, что приобретают мировой масштаб, и от их правильного и безотказного функционирования зависит работа огромного количества людей. Вместе со сложностью и масштабностью систем растут и требования к ним. Данная система не является чем-то новым или недавно придуманным, два-три десятилетия назад при разработке информационных систем популярной была модель "хост-компьютер + терминалы", реализованная на базе мэйнфреймов (например, IBM-360/370 либо же российских аналогов - компьютеров серии ЕС ЭВМ), или на базе так называемых мини-ЭВМ (например, PDP-11, ещё имевших отечественный аналог - СМ-4). . Эта модель обладала бесспорными по тем временам достоинствами. Во-первых, пользователи такой системы использовали различные ресурсы хост компьютера и дорогостоящие для тех времен периферийные устройства (принтеры, графопостроители, дисковые накопители и т.д.). Также проектирование и разработка таких систем вызывает высокую сложность, а методы и средства, отличаются от принятых при разработке "монолитных" систем. Свойственной особенностью подобных систем была абсолютная "неинтеллектуальность" терминалов, применяемых в качестве рабочих мест - их работой управлял все тот же хост-компьютер. Используемое программное обеспечение работало только с "локальными" ресурсами компьютера. Правда, часть этих ресурсов была уже "псевдолокальной", например, файлы на сетевом диске. Файл обрабатывается самим узлом. И через какое-то время было ясно, что классические методы не работают. Начавшийся высокий рост индустрии персональных компьютеров вначале мало что изменил в принципе построения программных систем - большинство программ по-прежнему работали с локальными ресурсами. С увеличением объема перерабатываемых данных, и с возрастанием их стоимости стало понятно, что обрабатывать их на клиентских машинах больше нельзя. Любая ошибка на них ,а с количеством клиентов, растет вероятность ошибки, приводит к потере данных, либо к их блокировкам во время работы, а следовательно приводит к снижению всей производительности системы. Следующим главным шагом стало глобальное распространение технологии клиент-серверной обработки. Это были "двухролевые" системы: клиент работал отображением пользовательского интерфейса и выполнение кода приложения, а работа сервера поручалась СУБД. В применении к примеру с файлом переход к клиент-серверной архитектуре может быть изображен следующим образом: вместо того, чтобы читать файл целиком и обрабатывать его, клиент отправляет серверу запрос, в котором указывает, как файл должен быть обработан. Глобальный переход на технологию "клиент-сервер" помог решить много старых проблем, но, как это часто случается, создал много новых. Часто перенос части задач на сервер, может повлиять в негативную сторону на общей производительности системы, и наоборот, перенос части нагрузки на клиента может привести к потере централизации. Часто встречающаяся трудность была и всё ещё остается определение границ функционала между клиентом и сервером. По мере роста популярности систем "клиент-сервер" вместе с ней набирала силу технология объектно-ориентированного программирования, которая предлагала перейти к системной архитектуре с тремя слоями: слой представления отводится пользовательскому интерфейсу, слой предметной области предназначен для описания основных функций приложения, необходимых для достижения поставленной перед ним цели, а третий слой представляет источник данных. С появлением Web технологий пользователи были заинтересованы в системе "клиентсервер", где в роли клиента выступал бы Web-браузер. В наше время ещё считают, что бум технологий, связанных с клиент-серверной архитектурой, все еще продолжается – большинство работающих в настоящее время информационных систем выполнено в этой технологии. Но актуальными являются направления - трехслойные и многослойные, а также децентрализованные приложения. Очень важна правильная и четкая организация информационных бизнесрешений это главный фактор успеха любой компании, особенно важным это является для предприятий среднего и малого бизнеса, которым крайне важна система, которая способна предоставить весь объем бизнес-логики для решения задач компании. В то же время, такие системы для компаний со средним и малым масштабом сетей часто попадают под критерий ―цена - качество, то есть должны обладать максимальной производительностью и надежностью при доступной цене. Опыт последних лет разработки программного обеспечения (ПО) показывает, что архитектура информационной системы должна выбираться с учетом нужд бизнеса, а не личных пристрастий разработчиков. Первоначально системы такого уровня базировались на классической двухуровневой клиент-серверной архитектуре (Two-tier architecture).


1. Архитектура "клиент-сервер".

Архитектура информационной системы - концепция, характеризующая модель, структуру, производимые функции и связь компонентов информационной системы. Клиент-сервер (Client-server) — вычислительная или сетевая архитектура, в которой задания либо сетевая нагрузка распределены среди сервером и клиентами. Сервер — это программа, исполняющая запросы отправленные со стороны клиентов на получение ресурсов определенного вида. Клиент — это программа, использующая услугу, представляемую программой сервера.

Зачастую пользователи называют клиентом или сервером компьютер, на котором работает какая-либо из этих программ. По сути, клиент и сервер — это роли, исполняемые программами. Клиенты и сервера физически имеют возомжность находиться на одном компьютере. Одна и та же программа способна быть и клиентом, и сервером одновременно.

Клиент-серверная система характеризуется присутствием двух взаимодействующих друг с другом независимых процессов - клиента и сервера, которые, имеют возможность работать на различных компьютерах, обмениваясь данными по сети. По такой подобной схеме могут быть построены системы обработки данных на базе СУБД, почтовые и другие системы. Файл-серверная система так же пользуется технологией клиент-сервер, но с точки зрения архитектуры прикладных программ важным является то, какого рода ресурсы предоставляет клиентам сервер. В файл-серверной системе данные сохраняются на файловом сервере (например, Novell NetWare или Windows NT Server), а их обработка исполняется на рабочих станциях, на коих, работает одна из "настольных СУБД" - Access, FoxPro, Paradox и т.п. Приложение на рабочей станции делает следующие задачи как - составление пользовательского интерфейса, логическая обработка данных и конкретное манипулирование данными. Файловый сервер выполняет задачи самого невысокого уровня - открытие, закрытие и изменение файлов, но не базы данных. База данных находится только в памяти рабочей станции. И так добивается конкретного управления данными несколькими автономными и несогласованными между собой процессами. Не считая того, что для всякой обработки все данные нужно передать по сети с сервера на рабочую станцию. Понятие архитектуры клиент-сервер в системах управления предприятием связано с разделением всякой прикладной программы на три ведущих компонента или же слоя. Этими тремя компонентами считаются:


  • компонент представления (визуализации) данных;
  • компонент прикладной логики;
  • компонент управления базой данных.

2.Варианты архитектуры "клиент-сервер".

Двухуровневая клиент-серверная архитектура.

Данная архитектура возымела высокое распространение в начале 1990-х годов по причине подъема рынка персональных компьютеров и снижения спроса на мэйнфреймы. Сначало системы базировались на традиционной двухуровневой архитектуре. Клиент-серверным приложением данном случаи называют информационную систему, основанная на применении серверов баз данных. Компанией Gartner Group, была разработана двухзвенная модель взаимодействия клиент-сервер, двухзвенным она была названа по причинен того, что три элемента приложения по разному распределяются между двумя узлами. Первой моделью распределенного представления данных, которая реализовывалась на универсальных вычислительных машинах с подключенными к ней неинтеллектуальными терминалами. Управление данными и взаимодействие с пользователем систематизировались в единой программе, на терминал загружался только интерфейс пользователя, сформированный на центральном компьютере. В следствии с ростом популярности персональных компьютеров (ПК) и локальных сетей, были разработаны модели доступа к удаленной базе данных. Базовой архитектурой в начале для сети персональных компьютеров была файл-сервер. В этой архитектуре один компьютер является файловым сервером, а на клиентах выполняются приложения, в которых совмещены элементы представления, СУБД и прикладная программа. Протокол обмена представляет собой коллекцию вызовов не высокого уровня файловой системы. Данная архитектура возымела следующие недостатки - большой сетевой трафик и отсутствие единого доступа к ресурсам. Появление использование другой реализации модели доступа к удаленной базе данных произошло благодаря созданию первых специализированных серверов баз данных появилась возможность другой реализации. Это позволило ядру СУБД функционировать на сервере, а общение с протоколом обмена при помощи языка SQL, и следовательно уменьшить нагрузку на сеть и унифицировать интерфейс "клиент-сервер". Но, это не позволило заметно уменьшить сетевой трафик, и по-прежнему невозможно грамотное администрирование, причина тому совмещение различных функций в одной программе. Для решения этих недостатков разработали концепцию активного сервера, который использовал принцип хранимых процедур. Это позволило часть прикладного компонента перенести на сервер (модель распределенного приложения). Процедуры хранятся в словаре базы данных, разделяются между несколькими клиентами и выполняются на том же компьютере, что и SQL-сервер.


Преимущества такого подхода:

  • возможно централизованное администрирование прикладных

функций,

  • значительно снижается сетевой трафик (т.к. не идет передача на сервер, а вызывается сохраненная процедур).

Недостаток – малое количество средств разработки хранимых процедур.

На практике обычно используется смешанный подход:

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

процедурами на сервере;

  • более сложные прикладные функции реализуются на клиенте

непосредственно в прикладной программе;

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

Преимуществами данной архитектуры являются:

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

Недостатками данной архитектуры являются:

  • неработоспособность сервера может сделать неработоспособной всю

вычислительную сеть;

  • администрирование данной системы требует квалифицированного

профессионала;

  • высокая стоимость оборудования;
  • бизнес логика приложений осталась в клиентском ПО.

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

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