Файл: Технология «Клиент-сервер (Введение)).pdf

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

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

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

Добавлен: 04.04.2023

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

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

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

Введение

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

Предметом исследования является организация системы доступа и обработки данных с помощью технологии «Клиент-сервер». Цель написания курсовой работы – рассмотреть принципы организации архитектуры «Клиент-сервер», ее основные возможности, достоинства и недостатки, области применения. Для успешного достижения поставленной цели необходимо решить ряд задач:

  1. дать характеристику особенностям построения и функционирования сетей, разработанных по технологии «Клиент-сервер»;
  2. рассмотреть существующие модели организации технологии «Клиент-сервер»;
  3. охарактеризовать программное обеспечение, применяющееся в архитектуре «Клиент-сервер»;
  4. изучить организацию обработки данных в рамках технологии «Клиент-сервер»;
  5. рассмотреть области применения данной технологии.

Общая характеристика архитектуры «Клиент-сервер»

Особенности построения и функционирования сетей, разработанных по технологии «Клиент-сервер»

«Клиент-сервер» — это технология, которая составляет основу вычислительной либо сетевой архитектуры. В сети, использующей такую технологию, задания или сетевая нагрузка распределяются между поставщиками услуг — сервисов, которые называют серверами, и заказчиками услуг, которые называют клиентами. Технология «клиент-сервер» отличается тем, что упрощает обслуживание вычислительной системы, к примеру, ремонт, замена, модернизация, перемещение сервера никак не сказывается на клиентах [3, с. 43].

Поскольку вся информация хранится на сервере, как правило, имеющем гораздо лучшую защиту, чем клиенты, данные находятся под меньшей угрозой повреждения, уничтожения или несанкционированного доступа. [2, с. 107]


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

Еще одним важным моментом, говорящим в пользу клиент-серверной технологии, является то, что она дает возможность объединить клиенты с разными аппаратными платформами, операционными системами и т.п. (ПК, планшет, смартфон). [11]

Архитектура, построенная по принципу «клиент-сервер» легко масштабируется, пользователь может работать сразу в нескольких приложениях.

Как и любая другая архитектура, технология клиент-сервер имеет определенные недостатки:

  1. выход из строя сервера делает неработоспособной вычислительную сеть в целом;
  2. поддержка работы такой архитектуры требует участия системного администратора;
  3. стоимость оборудования достаточно высока, т.к. к серверу предъявляются повышенные требования в плане производительности, объема памяти, степени защиты и т.п. [2, с. 112]

Клиент-серверная архитектура бывает нескольких разновидностей:

  1. многоуровневая архитектура клиент-сервер — где функционал обработки данных выполняется одним или несколькими отдельными серверами. Такой подход дает возможность разделить хранение, обработку и представление информации и делает более эффективным использование возможностей клиентов и серверов;
  2. сеть с выделенным сервером, где устройства централизованы и находятся под управлением одного или нескольких серверов. Рабочие станции (клиенты) обращаются к ресурсам сети через один или несколько серверов, в зависимости от масштабов сети. [8, с. 33]

Технология «клиент-сервер» появилась еще в 80-е гг. прошлого века, заменив малофункциональную модель файлового сервера для локальных сетей (FS) на появившиеся одна за другой модели RDA, DBS и AS. Технология легла в основу глобальной сети Internet, а затем, когда идея организации Internet была использована для организации корпоративных сетей, появилась технология Intranet, согласно которой вычислительные сети состоят из центральных серверов и распределенных компонентов представления информации конечному пользователю (браузеры). [12]

Взаимодействие между клиентом и сервером в Intranet происходит при помощи web-технологий.

Клиент и сервер взаимодействуют по схеме «запрос-ответ», представленной рисунке 1. [2, с. 133]

Рисунок 1― Архитектура «клиент-сервер»

Сервером ресурса называют компьютер или программу, которая управляет и (или) владеет каким-либо ресурсом. Клиентом называют компьютер или программу, которая запрашивает и пользуется каким-либо ресурсом. [12]


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

Основной принцип технологии «клиент-сервер» — разделение функций приложения на несколько групп:

    1. модули интерфейса с пользователем, или логика представления, через которую пользователь взаимодействует с приложением. Задача модулей состоит в том, чтобы обеспечить средства для наиболее эффективного обмена информацией между пользователем и информационной системой;
    2. модули хранения данных, или бизнес-логика, которая определяет функции, которые выполняют приложения;
    3. модули обработки данных, или логика доступа к данным, которые управляют ресурсами (функции управления ресурсами). Эти модули организуют интерфейс системы управления базами данных (СУБД), при помощи которого приложение управляет обращением и запросами к базе данных. [9, с. 35]

В классическом варианте архитектуры три основные части приложения распределяют по двум физическим модулям. Прикладной компонент размешают на сервере, компонент представления данных - на стороне клиента, компонент управления ресурсом разделяют между клиентом и сервером. [1, с. 96]

Во избежание несогласованности различных элементов системы были разработаны две модификации: «Толстый клиент», когда выполнение обработки данных происходит либо на стороне клиента, и «Тонкий клиент», когда обработка данных происходит на стороне сервера. Схема архитектур «Тонкий клиент» и «Толстый клиент» представлена в Приложении 1.

Оба варианта имеют серьезные недостатки. При «Толстом клиенте»:

  1. возникает перегрузка на сети, т.к. по ней идет передача необработанных избыточных данных;
  2. становится сложнее поддерживать систему и вносить в нее изменения;
  3. усложняется обновление ПО, поскольку его замена должна производиться по всей системе одновременно;
  4. сложнее распределять полномочия, поскольку разграничение доступа производится по таблицам, а не по действиям;
  5. недостаточная защита данных, поскольку возникают сложности с правильным распределением полномочий. [2, с. 144]

Во втором случае «Тонкий клиент» недостатки следующие:

  1. возникает проблема описания встроенных процедур и их отладки;
  2. систему с обработкой информации на сервере нельзя перенести на другую операционную систему;
  3. усложняется реализация, т.к. языки типа SQL не обладают возможностями для разработки подобного ПО и хорошими средствами отладки;
  4. низкая производительность и надежность программ на языках типа SQL;
  5. ошибка в программе зачастую приводит к выходу из строя всего сервера баз данных;
  6. программы невозможно перенести на другие системы и платформы. [12]

Чтобы решить перечисленные проблемы применяются многоуровневые архитектуры «Клиент-сервер», т.е. такая ее разновидность, в которой функционал обработки данных переносится на один либо несколько отдельных серверов. Данная технология дает возможность разделить функции хранения, обработки и представления данных для того чтобы возможности клиентов и серверов использовались наиболее эффективно. Данная архитектура появилась в середине 90-х годов прошлого века. В ней информационная система состоит из трех отдельных компонентов с разными функциональными возможностями: логика представления, бизнес-логика и логика доступа к данным. [11]

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

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

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

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

Рисунок 2 ― Сервер приложений

При таком подходе полностью разгружается клиент, он может направлять запросы промежуточному ПО и выполнять роль системы представления информации. [12]

Также максимально используются все возможности серверов. Такая модель может быть реализована с помощью средств Web-технологии ― браузера, CGI и Java.

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

Различные модели технологии «Клиент-сервер»

Отличия в реализации архитектуры «Клиент-сервер» определяются следующими факторами:

      1. виды ПО в логических компонентах и механизмы, которые используются для реализации их функций;
      2. распределение логических компонентов компьютерами в сети;
      3. механизмы, которые используются для связи между компонентами.

Исходя из этого, различаются три подхода:

      1. модель доступа к удаленным данным (Remote Date Access ― RDA);
      2. модель сервера базы данных (DateBase Server ― DBS);
      3. модель сервера приложений (Application Server ― AS) [3, с. 71].

Модель доступа к удаленным данным (RDA) является сетевой архитектурой технологии «Клиент-сервер», при которой выполнение кодов компонента представления и прикладного компонента происходит на компьютере-клиенте [3, с. 78].

Доступ к информационным ресурсам производится с помощью непроцедурного языка, к примеру, SQL, либо путем вызова функций специальной библиотеки, в случае наличия интерфейса прикладного программирования API. Удаленный компьютер по сети получает запросы к информационным ресурсам, обрабатывает и выполняет их, а затем возвращает клиенту блоки данных (Рисунок 3). [2, с. 208]

Рисунок 3 ― Модель доступа к удаленным данным

Основное преимущество RDA-модели заключается в широком выборе инструментов разработки приложений, быстрое создание desktop-приложений, которые работают с SQL-ориентированными СУБД. Однако RDA-модель имеет ряд ограничений:

  1. взаимодействие клиента и сервера посредством SQL-запросов существенно загружает сеть. Приложение является нераспределенным, его логика локализована на клиенте, поэтому взаимодействие его с сервером приводит к передаче большого объема данных, возможно, избыточных. При росте количества клиентов сеть ограничивает быстродействие информационной системы; [1, с. 113]
  2. функции представления и прикладные функции смешаны в одной программе, написанной на языке четвертого поколения (4GL), поэтому для внесения изменений в прикладные функции необходимо переписать полностью всю программу; [12]
  3. при коллективной работе над проектом каждый разработчик выполняет реализацию отдельных прикладных функций, поэтому сложно контролировать их непротиворечивость, единый стиль интерфейса и его целостность;
  4. замену ПО необходимо производить одновременно на всех компьютерах-клиентах;
  5. поскольку разграничение прав доступа происходит на стороне клиента, и разграничение выполняется только по таблицам базы данных, возникает низкий уровень безопасности. [2, с. 88]

Модель сервера баз данных (DBS — сетевая архитектура, в основе которой лежит механизм хранимых процедур, реализующий прикладные функции. [3, с. 83]

В DBS – модели понятие информационного ресурса сводится к базе данных, а приложение является распределенным. Компонент представления размещается на клиенте, а прикладной компонент, который реализует бизнес-функции, оформляется в виде набора хранимых процедур и размещается на сервере БД. Хранимые процедуры также называются компилируемыми резидентными процедурами или процедурами базы данных (Рисунок 4). [2, с. 220]