Добавлен: 04.04.2023
Просмотров: 97
Скачиваний: 3
Введение
Сетевая архитектура «Клиент-сервер» появилась еще в 80-х гг. прошлого века, заменив централизованную схему управления вычислительным процессом на мейнфреймах, и явилась своего рода прорывом в развитии технологий организации вычислительных систем. Высокая надежность, легкое масштабирование, обеспечение одновременной работы пользователей с несколькими приложениями, оперативная обработка информации, предоставление пользователю высококачественного интерфейса и другие возможности позволили данной технологии получить свое дальнейшее развитие и широко использоваться по настоящее время. Именно это является основной причиной выбора темы исследования, проведенного в рамках написания данной курсовой работы.
Предметом исследования является организация системы доступа и обработки данных с помощью технологии «Клиент-сервер». Цель написания курсовой работы – рассмотреть принципы организации архитектуры «Клиент-сервер», ее основные возможности, достоинства и недостатки, области применения. Для успешного достижения поставленной цели необходимо решить ряд задач:
- дать характеристику особенностям построения и функционирования сетей, разработанных по технологии «Клиент-сервер»;
- рассмотреть существующие модели организации технологии «Клиент-сервер»;
- охарактеризовать программное обеспечение, применяющееся в архитектуре «Клиент-сервер»;
- изучить организацию обработки данных в рамках технологии «Клиент-сервер»;
- рассмотреть области применения данной технологии.
Общая характеристика архитектуры «Клиент-сервер»
Особенности построения и функционирования сетей, разработанных по технологии «Клиент-сервер»
«Клиент-сервер» — это технология, которая составляет основу вычислительной либо сетевой архитектуры. В сети, использующей такую технологию, задания или сетевая нагрузка распределяются между поставщиками услуг — сервисов, которые называют серверами, и заказчиками услуг, которые называют клиентами. Технология «клиент-сервер» отличается тем, что упрощает обслуживание вычислительной системы, к примеру, ремонт, замена, модернизация, перемещение сервера никак не сказывается на клиентах [3, с. 43].
Поскольку вся информация хранится на сервере, как правило, имеющем гораздо лучшую защиту, чем клиенты, данные находятся под меньшей угрозой повреждения, уничтожения или несанкционированного доступа. [2, с. 107]
Кроме того, на сервере более простой является организация контроля полномочий, и впоследствии разрешение доступа к данным только клиентам, которым предоставлены соответствующие права.
Еще одним важным моментом, говорящим в пользу клиент-серверной технологии, является то, что она дает возможность объединить клиенты с разными аппаратными платформами, операционными системами и т.п. (ПК, планшет, смартфон). [11]
Архитектура, построенная по принципу «клиент-сервер» легко масштабируется, пользователь может работать сразу в нескольких приложениях.
Как и любая другая архитектура, технология клиент-сервер имеет определенные недостатки:
- выход из строя сервера делает неработоспособной вычислительную сеть в целом;
- поддержка работы такой архитектуры требует участия системного администратора;
- стоимость оборудования достаточно высока, т.к. к серверу предъявляются повышенные требования в плане производительности, объема памяти, степени защиты и т.п. [2, с. 112]
Клиент-серверная архитектура бывает нескольких разновидностей:
- многоуровневая архитектура клиент-сервер — где функционал обработки данных выполняется одним или несколькими отдельными серверами. Такой подход дает возможность разделить хранение, обработку и представление информации и делает более эффективным использование возможностей клиентов и серверов;
- сеть с выделенным сервером, где устройства централизованы и находятся под управлением одного или нескольких серверов. Рабочие станции (клиенты) обращаются к ресурсам сети через один или несколько серверов, в зависимости от масштабов сети. [8, с. 33]
Технология «клиент-сервер» появилась еще в 80-е гг. прошлого века, заменив малофункциональную модель файлового сервера для локальных сетей (FS) на появившиеся одна за другой модели RDA, DBS и AS. Технология легла в основу глобальной сети Internet, а затем, когда идея организации Internet была использована для организации корпоративных сетей, появилась технология Intranet, согласно которой вычислительные сети состоят из центральных серверов и распределенных компонентов представления информации конечному пользователю (браузеры). [12]
Взаимодействие между клиентом и сервером в Intranet происходит при помощи web-технологий.
Клиент и сервер взаимодействуют по схеме «запрос-ответ», представленной рисунке 1. [2, с. 133]
Рисунок 1― Архитектура «клиент-сервер»
Сервером ресурса называют компьютер или программу, которая управляет и (или) владеет каким-либо ресурсом. Клиентом называют компьютер или программу, которая запрашивает и пользуется каким-либо ресурсом. [12]
Клиент и сервер могут находиться на одном ПК либо на разных. Также возможен вариант, при котором некий программный блок одновременно выполняет функцию сервера по отношению к одному блоку и функцию клиента по отношению к другому.
Основной принцип технологии «клиент-сервер» — разделение функций приложения на несколько групп:
-
- модули интерфейса с пользователем, или логика представления, через которую пользователь взаимодействует с приложением. Задача модулей состоит в том, чтобы обеспечить средства для наиболее эффективного обмена информацией между пользователем и информационной системой;
- модули хранения данных, или бизнес-логика, которая определяет функции, которые выполняют приложения;
- модули обработки данных, или логика доступа к данным, которые управляют ресурсами (функции управления ресурсами). Эти модули организуют интерфейс системы управления базами данных (СУБД), при помощи которого приложение управляет обращением и запросами к базе данных. [9, с. 35]
В классическом варианте архитектуры три основные части приложения распределяют по двум физическим модулям. Прикладной компонент размешают на сервере, компонент представления данных - на стороне клиента, компонент управления ресурсом разделяют между клиентом и сервером. [1, с. 96]
Во избежание несогласованности различных элементов системы были разработаны две модификации: «Толстый клиент», когда выполнение обработки данных происходит либо на стороне клиента, и «Тонкий клиент», когда обработка данных происходит на стороне сервера. Схема архитектур «Тонкий клиент» и «Толстый клиент» представлена в Приложении 1.
Оба варианта имеют серьезные недостатки. При «Толстом клиенте»:
- возникает перегрузка на сети, т.к. по ней идет передача необработанных избыточных данных;
- становится сложнее поддерживать систему и вносить в нее изменения;
- усложняется обновление ПО, поскольку его замена должна производиться по всей системе одновременно;
- сложнее распределять полномочия, поскольку разграничение доступа производится по таблицам, а не по действиям;
- недостаточная защита данных, поскольку возникают сложности с правильным распределением полномочий. [2, с. 144]
Во втором случае «Тонкий клиент» недостатки следующие:
- возникает проблема описания встроенных процедур и их отладки;
- систему с обработкой информации на сервере нельзя перенести на другую операционную систему;
- усложняется реализация, т.к. языки типа SQL не обладают возможностями для разработки подобного ПО и хорошими средствами отладки;
- низкая производительность и надежность программ на языках типа SQL;
- ошибка в программе зачастую приводит к выходу из строя всего сервера баз данных;
- программы невозможно перенести на другие системы и платформы. [12]
Чтобы решить перечисленные проблемы применяются многоуровневые архитектуры «Клиент-сервер», т.е. такая ее разновидность, в которой функционал обработки данных переносится на один либо несколько отдельных серверов. Данная технология дает возможность разделить функции хранения, обработки и представления данных для того чтобы возможности клиентов и серверов использовались наиболее эффективно. Данная архитектура появилась в середине 90-х годов прошлого века. В ней информационная система состоит из трех отдельных компонентов с разными функциональными возможностями: логика представления, бизнес-логика и логика доступа к данным. [11]
Логика представления данных включает всю работу с пользователем. На этом уровне пользователи могут не только взаимодействовать с приложением, вводить данные и просматривать результаты запросов, но и управлять манипулированием данными и их форматированием после того, как они попадают на клиентскую сторону. В веб-технологии задача уровня представления данных выполняет браузер.
Бизнес-логика представляет собой правила, алгоритмы реакции приложения на действия пользователя или на внутренние события, правила обработки данных.
Логика доступа к данным включает в себя хранение, выборка, модификация и удаление данных, связанных с решаемой приложением прикладной задачей.
Также отличительной особенностью многоуровневой архитектуры является сервер приложений, предназначенный для осуществления бизнес-логики (Рисунок 2). [2, с. 145]
Рисунок 2 ― Сервер приложений
При таком подходе полностью разгружается клиент, он может направлять запросы промежуточному ПО и выполнять роль системы представления информации. [12]
Также максимально используются все возможности серверов. Такая модель может быть реализована с помощью средств Web-технологии ― браузера, CGI и Java.
Многоуровневые клиент-серверные системы легко переносятся на Web-технологию путем замены клиентской части на универсальный или специализированный браузер, а к серверу приложений добавить Web-сервер и небольшие программы для вызова серверных процедур, которые разрабатываются в основном при помощи технологии Java.
Различные модели технологии «Клиент-сервер»
Отличия в реализации архитектуры «Клиент-сервер» определяются следующими факторами:
-
-
- виды ПО в логических компонентах и механизмы, которые используются для реализации их функций;
- распределение логических компонентов компьютерами в сети;
- механизмы, которые используются для связи между компонентами.
-
Исходя из этого, различаются три подхода:
-
-
- модель доступа к удаленным данным (Remote Date Access ― RDA);
- модель сервера базы данных (DateBase Server ― DBS);
- модель сервера приложений (Application Server ― AS) [3, с. 71].
-
Модель доступа к удаленным данным (RDA) является сетевой архитектурой технологии «Клиент-сервер», при которой выполнение кодов компонента представления и прикладного компонента происходит на компьютере-клиенте [3, с. 78].
Доступ к информационным ресурсам производится с помощью непроцедурного языка, к примеру, SQL, либо путем вызова функций специальной библиотеки, в случае наличия интерфейса прикладного программирования API. Удаленный компьютер по сети получает запросы к информационным ресурсам, обрабатывает и выполняет их, а затем возвращает клиенту блоки данных (Рисунок 3). [2, с. 208]
Рисунок 3 ― Модель доступа к удаленным данным
Основное преимущество RDA-модели заключается в широком выборе инструментов разработки приложений, быстрое создание desktop-приложений, которые работают с SQL-ориентированными СУБД. Однако RDA-модель имеет ряд ограничений:
- взаимодействие клиента и сервера посредством SQL-запросов существенно загружает сеть. Приложение является нераспределенным, его логика локализована на клиенте, поэтому взаимодействие его с сервером приводит к передаче большого объема данных, возможно, избыточных. При росте количества клиентов сеть ограничивает быстродействие информационной системы; [1, с. 113]
- функции представления и прикладные функции смешаны в одной программе, написанной на языке четвертого поколения (4GL), поэтому для внесения изменений в прикладные функции необходимо переписать полностью всю программу; [12]
- при коллективной работе над проектом каждый разработчик выполняет реализацию отдельных прикладных функций, поэтому сложно контролировать их непротиворечивость, единый стиль интерфейса и его целостность;
- замену ПО необходимо производить одновременно на всех компьютерах-клиентах;
- поскольку разграничение прав доступа происходит на стороне клиента, и разграничение выполняется только по таблицам базы данных, возникает низкий уровень безопасности. [2, с. 88]
Модель сервера баз данных (DBS — сетевая архитектура, в основе которой лежит механизм хранимых процедур, реализующий прикладные функции. [3, с. 83]
В DBS – модели понятие информационного ресурса сводится к базе данных, а приложение является распределенным. Компонент представления размещается на клиенте, а прикладной компонент, который реализует бизнес-функции, оформляется в виде набора хранимых процедур и размещается на сервере БД. Хранимые процедуры также называются компилируемыми резидентными процедурами или процедурами базы данных (Рисунок 4). [2, с. 220]