Файл: «Вариант 21. Модель клиент-сервер».pdf

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

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

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

Добавлен: 18.06.2023

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

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

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

ВВЕДЕНИЕ

Темпы современного развития информационных технологий поистине поражают воображения. Всё больший спектр задач подвластны искусственному интеллекту, и всё большие объемы работы выполняют компьютеры ежедневно. Грани, которые представители этой области вычерчивали, как недостижимые постепенно стираются, и мы уже сейчас можем видеть поколение программистов, которые в работе иногда даже не задумываются о том объёме вычислительной мощности, которые потребляют их программы. Темпы развития в этой области настолько стремительны, что поспеть за ними в экономическом аспекте становится всё сложнее, особенно это актуально для людей, которым не нужно использовать всё многообразие возможностей, предлагаемых на рынке услуг, а необходимо выполнять лишь определённый набор команд. В следствии этих фактов и возникли такие технологии как «облачные вычисления», многие веб-сервисы (как например почтовые сервисы), data mining, глобальные сети и прочие. В корне понимания озвученных технологий и многих других, как только проникающие в нашу жизнь, так и совсем привычных, лежит понимание клиент-серверной модели, поскольку именно эта модель лежит в основе всего вышеуказанного. Актуальность данного вопроса иллюстрируется большим количеством инвестиций в проекты, основой которой является модель клиент-серверных приложений. Исходя из этого может быть сформулирована гипотеза о том, что для понимания основ работы большого количества современных технологий необходимо изначально изучить модель клиент-сервера в базовом виде. Чтобы подтвердить или опровергнуть данную гипотезу необходимо решить следующие задачи:

  • Изучить основные понятия связанные с клиент-серверной моделью
  • Изучить протоколы взаимодействия между клиентской и серверной частью
  • Изучить основные технологии, использующие клиент-серверную модель
  • Составить критерии выбора стека технологий для составления клиент-серверной модели под конкретные задачи
  • Разработать клиент-серверное приложение и на его (их) основе изучить прикладные приёмы создания клиент серверной модели

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

Объектом исследования выступают технологии, которые используют или могут использовать клиент-серверную модель

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


ГЛАВА 1. ОСНОВЫ КЛИЕНТ-СЕРВЕРНОЙ МОДЕЛИ

1.1 ИСТОРИЯ РАЗВИТИЯ КЛИЕНТ-СЕРВЕРНОЙ МОДЕЛИ

Всё более обширной становится использования информационных систем, при всё более усложняющихся технологиях. Можно привести примеры систем, которые разрослись и усложнились настолько, что приобрели настолько глобальных характер, что от их работы зависит деятельность огромного количества людей. В виду своего глобального характера, что проявляется в том числе в необходимости обеспечить доступ к географически отдалённых друг от друга объектов, а также в силу разного рода других причин, такие системы имеют очень сложную архитектуру, которая предполагает функционирование в виде выполняющихся на отдельных узлах наборов компонентов. [1] Стоит учитывать, что со временем растёт как количество таких систем, так и требования, которые к ним предъявляют. Сложность создания таких систем высока, а стек технологий, задействованный в разработке отличается от того, что используется в «монолитных» системах. Тем не менее, ошибочно полагать, что такие распределенные системы являются изобретением последних лет. [3] Уже три десятилетия назад активно разрабатывались архитектурные модели «хост-компьютер +терминалы», реализованных на основе мейнфреймов (в качестве примера можно взять IBM-360/370 и компьютеры серии ЕС ЭВМ), или на основе мини-ЭВМ (таких как например PDP-11, или его отечественный аналога cm-4). [2] Отличительной особенностью этих систем являлась полная зависимость терминалов, которые представляли собой рабочие станции, от вычислений и команд, поступавших от хост-компьютера. Такой подход имел свои преимущества, по сравнению с другими реализациями управления, существоваших в то время. Так, множеству людей начало открываться большое разнообразие ресурсов хост-компьютера для использования одновременно, а также и довольно дорогие для тех времен периферийные устройства (принтеры, графопостроители, устройства ввода с магнитных лент и гибких дисков, дисковые накопители).Задействованное программное обеспечение в таком случае имело дело только с "локальными" ресурсами - с локальной файловой системой, локальной оперативной памятью и т.д. [4]


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

При увеличении объема перерабатываемых данных, а также по мере возрастания их стоимости стало очевидно, что доверять их обработку клиентским машинам нельзя. Любая ошибка на них (а чем больше клиентов, тем больше вероятность ошибки) приводит либо к потере данных, либо к их блокировкам в процессе работы, а, стало быть, к снижению общей производительности системы. [6] Следующим ключевым шагом стало повсеместное распространение идеологии клиент-серверной обработки. Это были "двухролевые" системы: клиент нес ответственность за отображение пользовательского интерфейса и выполнение кода приложения, а роль сервера обычно поручалась СУБД. В применении к примеру с файлом переход к клиент-серверной архитектуре может быть проиллюстрирован следующим образом: вместо того, чтобы читать файл целиком и обрабатывать его, машина-клиент передает машине-серверу запрос, в котором указывает, каким образом файл должен быть обработан. Сервер запрос клиента обрабатывает и возвращает ему результат.

Повсеместный переход на технологию "клиент-сервер" помог решить много старых проблем, но при этом создал много новых. Одной из основных трудностей было и остается определение границы между функционалом клиента и сервера. Часто решение о переносе части задач на сервер пагубно сказывается на общей производительности системы, и наоборот, перенос части нагрузки на клиента может привести к потере централизации. [7] По мере роста популярности систем "клиент-сервер" набирала силу и технология объектно-ориентированного программирования, которая предлагала перейти к системной архитектуре с тремя слоями: слой представления отводится пользовательскому интерфейсу, слой предметной области предназначен для описания основных функций приложения, необходимых для достижения поставленной перед ним цели, а третий слой представляет источник данных.


С появлением Web всем внезапно захотелось иметь системы "клиент-сервер", где в роли клиента выступал бы Web-браузер. Появившиеся инструментальные средства конструирования Web-страниц были в меньшей степени связаны с SQL и потому более подходили для реализации третьего уровня. [8]

В современном мире считается, что быстрый темп развития иноваций, тесно переплетающихся с клиент-серверным строением, до сих пор не стоит на месте – подавляющее количество баз данных, действующих в современности, создано благодаря данным разработкам. Не менее важными выступают разделы, которые граничат, с продвижением данной разработки - так называемые трехслойные и многослойные, а также децентрализованные приложения. Данные о последних годах развития компьютерного продукта повествует нам о том, что строение баз данных необходимо подбирать при помощи потребностей производства, но не собственных желаний работников. [9]

Не секрет, что правильная и четкая организация информационных бизнес-решений является слагающим фактором успеха любой компании. Особенно важным этот фактор является для предприятий среднего и малого бизнеса, которым необходима система, которая способна предоставить весь объем бизнес-логики для решения задач компании. [1] В то же время, такие системы для компаний со средним и малым масштабом сетей часто попадают подкритерий ―цена - качество‖, то есть должны обладать максимальной производительностью и надежностью при доступной цене. Первоначально системы такого уровня базировались на классической двухуровневой клиент-серверной архитектуре (Two-tier architecture). [1]

1.2 КЛИЕНТ-СЕРВЕРНАЯ АРХИТЕКТУРА

1.2.1 ОПРЕДЕЛЕНИЯ

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

Клиент-сервер есть вычислительная или сетевая архитектура, в которой задания или сетевая нагрузка распределены между поставщиками услуг (сервисов), называемыми серверами, и заказчиками услуг, называемыми клиентами. [1]

Сервер — это программа, представляющая какие-то услуги другим программам и обслуживающая запросы клиентов на получение ресурсово пределенного вида.

Клиент — это программа, использующая услугу, представляемую программой сервера.


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

1.2.2 РАЗВИТИЕ ИДЕЙ КЛИЕНТ-СЕРВЕРНОЙ КОНЦЕПЦИИ

Одними из главных недочётов современных компьютеров выступают их низкая вычислительная мощность, безопасность и необходимость

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

Зачастую множеству людей, активно использующим ЭВМ требуются как достойная вычислительная мощность так и подходящие возможности личных ПК. [2] Из-за этого в сферах, где для работы требуются сложные расчёты и применяются мощные изолированные мейнфреймы или обособленные кластеры с терминалами, работникам часто бывает необходимо использовать другие ЭВМ для операций, обслуживающих командный ввод в окно терминала. В связи с этим такие люди вынуждены знать минимум 2 разные ОС (внушительные ЭВМ, в классическом варианте, обладают такими операционными системами, как OC MVS, VMS, VM, UNIX, а ПК в свою очередь - MS DOS/MS Windows, OS/2 или Mac), а также искать пути преодоления проблем с двусторонней передачей сведений. По данным анкетирования, проводившегося среди работников около 300 крупнейших фирм США, пользователей ЭВМ оказалось, что 81% представителей нуждаются в доступности информации с двух и более компьютеров. [2] Для решения данной проблемы ПК стали группировать в ЛВС и обеспечивать их уникальными ОС ( NetWare фирмы Novell) для одновременного получения данных, расположенных в некоторых разных узлах сети. Данное изобретение является файл-сервером, но, к сожалению, они обладают некоторыми несовершенствами. Например, эта разработка не может в полном объёме гарантировать анонимность подключения и безопасность файлов. В сеть данные поступают в полном объёме, невзирая на то, что людям, использующим эти файлы необходима лишь их часть и эта проблема снижает скорость передачи данных и ощутимо загружает виртуальное пространство. [3] Неуязвимость структуры файл-серверов довольно низкая, например неполадки одного из серверов во время регистрации данных может обеспечить утрату или изменение нужного файла. Для обеспечения непротиворечивости данных приходится блокировать файлы, что также приводит к замедлению работы. Естественным желанием