Обычно компоненты сети не равноправны: у одних есть доступ к ресурсам (например, принтер, процессор, система управления базой данных (СУБД), файловая система и так далее), другие имеют возможность обращаться к этим ресурсам.
Технология «Клиент – сервер» — это архитектура программного комплекса, в которой происходит распределение прикладной программы по двум логически различным компонентам (клиент и сервер), взаимодействующим по схеме «запрос-ответ» и решающим свои определенные задачи (рисунок 6). Здесь и далее рисунков нет, почему то не открылись…
Рисунок 6 – Архитектура «Клиент – сервер»
Компьютер (или программа), управляющий и/или владеющий каким-либо ресурсом, называют сервером этого ресурса.
Компьютер (или программа), запрашивающий и пользующийся каким-либо ресурсом, называют клиентом этого ресурса.
Клиент и сервер могут находиться как на одном компьютере (ПК), так и на разных ПК в сети. Также может возникать такая ситуация, когда некоторый программный блок будет одновременно выполнять функции сервера по отношению к одному блоку и клиента по отношению к другому.
Чем веб-приложения отличаются от веб-сайтов | Иван Петриченко
Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы:
интерфейса с пользователем
Также эту группу называют логикой представления. Через эту группу пользователи взаимодействуют с приложением. Независимо от конкретных характеристик логики представления (интерфейс командной строки, сложные графические пользовательские интерфейсы, интерфейсы через посредника) ее задача состоит в том, чтобы обеспечить средства для наиболее эффективного обмена информацией между пользователем и информационной системой.
модули хранения данных;
Эту группу также называют бизнес-логикой. Бизнес-логика определяет, для чего конкретно предназначено приложение (например, прикладные функции, характерные для данной предметной области). Разделение приложения по границам между программами обеспечивает естественную основу для распределения приложения на нескольких компьютерах.
— модули обработки данных (функции управления ресурсами);
Эту группу также называют логикой доступа к данным или алгоритмами доступа к данным. Алгоритмы доступа к данным исторически рассматривались как специфический для конкретного приложения интерфейс к механизму постоянного хранения данных наподобие файловой системы или СУБД. При помощи модулей обработки данных организуется специфический для приложения интерфейс к СУБД. При помощи интерфейса приложение управляет соединениями с базой данных и запросами к ней (перевод специфических для конкретного приложения запросов на язык SQL, получение результатов и перевод этих результатов обратно в специфические для конкретного приложения структуры данных).
Каждая из этих групп может быть реализована независимо от двух других. Например, не изменяя программ, используемых для хранения и обработки данных, можно изменить интерфейс с пользователем таким образом, что одни и те же данные будут отображаться в виде таблиц, графиков или гистограмм. Очень простые приложения часто способны собрать все три части в единственную программу, и подобное разделение соответствует функциональным границам.
Лучший Игровой Компьютер-2023. Лайфхаки, нюансы и хитрости сборки. Эфир от 12.06.2023.
В соответствии с разделением функций в любом приложении выделяются следующие компоненты:
— компонент представления данных;
— компонент управления ресурсом.
В классической архитектуре клиент-сервер приходится распределять три основные части приложения по двум физическим модулям. Обычно прикладной компонент располагается на сервере (например, сервере базы данных), компонент представления данных — на стороне клиента, а компонент управления ресурсом распределяется между клиентской и серверной частями. В этом заключается основной недостаток классической двухуровневой архитектуры.
В двухзвенной архитектуре при разбиении алгоритмов обработки данных разработчики должны иметь полную информацию о последних изменениях, внесенных в систему, и понимать эти изменения, что создает большие сложности при разработке клиент-серверных систем, их установке и сопровождении, поскольку необходимо тратить значительные усилия на координацию действий разных групп специалистов. В действиях разработчиков часто возникают противоречия, а это тормозит развитие системы и вынуждает изменять уже готовые и проверенные элементы.
Чтобы избежать несогласованности различных элементов архитектуры были созданы две модификации двухзвенной архитектуры «Клиент – сервер»: «Толстый клиент» («Тонкий сервер») и «Тонкий клиент» («Толстый сервер»).
В данных архитектурах разработчики попытались выполнять обработку данных на одной из двух физических частей — либо на стороне клиента («Толстый клиент»), либо на сервере («Тонкий клиент).
Каждый подход имеет свои недостатки. В первом случае неоправданно перегружается сеть, потому что по ней передаются необработанные, а значит, избыточные данные. Кроме того, усложняется поддержка системы и ее изменение, так как замена алгоритма вычислений или исправление ошибки требует одновременной полной замены всех интерфейсных программ, а иначе могут возникнуть ошибки или несогласованность данных. Если же вся обработка информации выполняется на сервере, то возникает проблема описания встроенных процедур и их отладки. Систему с обработкой информации на сервере абсолютно невозможно перенести на другую платформу (ОС), что является серьезным недостатком.
Есди все-таки разрабатывается двухуровневая классическая архитектура «Клиент – сервер», то необходимо помнить следующее:
— архитектура «Толстый сервер» аналогична архитектуре «Тонкий клиент» (рисунок 33);
Рисунок 33. – Архитектура «Тонкий клиент»
Передача запроса от клиента на сервер, обработка запроса сервером и передача результата клиенту. При этом архитектуры имеют следующие недостатки:
— усложняется реализация, так как языки типа SQL не приспособлены для разработки подобного ПО и нет хороших средств отладки;
— производительность программ, написанных на языках типа SQL, значительно ниже, чем созданных на других языках, что имеет важное значение для сложных систем;
— программы, написанные на СУБД-языках, обычно работают недостаточно надежно; ошибка в них может привести к выходу из строя всего сервера баз данных;
— получившиеся таким образом программы полностью непереносимы на другие системы и платформы.
— архитектура «Тонкий сервер» аналогична архитектуре «Толстый клиент» (рисунок 34).
Обработка запроса происходит на стороне клиента, то есть происходит передача клиенту всех необработанных данных с сервера. При этом архитектуры имеют следующие недостатки:
— усложняется обновление ПО, поскольку его замену нужно производить одновременно по всей системе;
— усложняется распределение полномочий, так как разграничение доступа происходит не по действиям, а по таблицам;
— перегружается сеть вследствие передачи по ней необработанных данных;
— слабая защита данных, поскольку сложно правильно распределить полномочия.
Рисунок 34. – Архитектура «Толстый клиент»
Для решения перечисленных проблем используются многоуровневые (три и более уровней) архитектуры «Клиент-сервер».
Источник: studfile.net
Механизмы клиент-серверного взаимодействия с СУБД.
Архитектура «клиент-сервер» определяет общие принципы организации взаимодействия в сети, где имеются серверы, узлы-поставщики некоторых специфичных функций (сервисов) и клиенты, потребители этих функций.
Практические реализации такой архитектуры называются клиент-серверными технологиями. Каждая технология определяет собственные или использует имеющиеся правила взаимодейстия между клиентом и сервером, которые называются протоколом обмена (протоколом взаимодействия).
основная идея архитектуры «клиент-сервер» состоит в разделении сетевого приложения на несколько компонентов, каждый из которых реализует специфический набор сервисов. Компоненты такого приложения могут выполняться на разных компьютерах, выполняя серверные и/или клиентские функции. Это позволяет повысить надежность, безопасность и производительность сетевых приложений и сети в целом.
65. Опишите механизм хранимых процедур. Приведите примеры использования.
Храни́мая процеду́ра — объект базы данных, представляющий собой набор SQL-инструкций, который компилируется один раз и хранится на сервере. Хранимые процедуры очень похожи на обыкновенные процедуры языков высокого уровня, у них могут быть входные и выходные параметры и локальные переменные, в них могут производиться числовые вычисления и операции над символьными данными, результаты которых могут присваиваться переменным и параметрам. В хранимых процедурах могут выполняться стандартные операции с базами данных (как DDL, так и DML). Кроме того, в хранимых процедурах возможны циклы и ветвления, то есть в них могут использоваться инструкции управления процессом исполнения.
Хранимые процедуры похожи на определяемые пользователем функции (UDF). Основное различие заключается в том, что пользовательские функции можно использовать как и любое другое выражение в SQL запросе, в то время как хранимые процедуры должны быть вызваны с помощью функции CALL:
CALL процедура(…)
EXECUTE процедура(…)
Хранимые процедуры могут возвращать множества результатов, то есть результаты запроса SELECT. Такие множества результатов могут обрабатываться, используя курсоры, другими сохранёнными процедурами, возвращая указатель результирующего множества, либо же приложениями. Хранимые процедуры могут также содержать объявленные переменные для обработки данных и курсоров, которые позволяют организовать цикл по нескольким строкам в таблице. Стандарт SQL предоставляет для работы выражения IF, LOOP, REPEAT, CASE и многие другие. Хранимые процедуры могут принимать переменные, возвращать результаты или изменять переменные и возвращать их, в зависимости от того, где переменная объявлена.
66. Принципы организации СУБД при использовании технологии «клиент-сервер». Задачи, выполняемые клиентским и серверным приложением. Функции пользователей.
Компьютер (или программа), управляющий и/или владеющий каким-либо ресурсом, называют сервером этого ресурса.
Компьютер (или программа), запрашивающий и пользующийся каким-либо ресурсом, называют клиентом этого ресурса.
Клиент и сервер могут находиться как на одном компьютере (ПК), так и на разных ПК в сети. Также может возникать такая ситуация, когда некоторый программный блок будет одновременно выполнять функции сервера по отношению к одному блоку и клиента по отношению к другому.
Основной принцип технологии «Клиент-сервер» заключается в разделении функций приложения как минимум на три группы:
— модули интерфейса с пользователем;
Также эту группу называют логикой представления. Через эту группу пользователи взаимодействуют с приложением. Независимо от конкретных характеристик логики представления (интерфейс командной строки, сложные графические пользовательские интерфейсы, интерфейсы через посредника) ее задача состоит в том, чтобы обеспечить средства для наиболее эффективного обмена информацией между пользователем и информационной системой.
— модули хранения данных;
Эту группу также называют бизнес-логикой. Бизнес-логика определяет, для чего конкретно предназначено приложение (например, прикладные функции, характерные для данной предметной области). Разделение приложения по границам между программами обеспечивает естественную основу для распределения приложения на нескольких компьютерах.
— модули обработки данных (функции управления ресурсами);
Эту группу также называют логикой доступа к данным или алгоритмами доступа к данным. Алгоритмы доступа к данным исторически рассматривались как специфический для конкретного приложения интерфейс к механизму постоянного хранения данных наподобие файловой системы или СУБД. При помощи модулей обработки данных организуется специфический для приложения интерфейс к СУБД. При помощи интерфейса приложение управляет соединениями с базой данных и запросами к ней (перевод специфических для конкретного приложения запросов на язык SQL, получение результатов и перевод этих результатов обратно в специфические для конкретного приложения структуры данных).
Каждая из этих групп может быть реализована независимо от двух других. Например, не изменяя программ, используемых для хранения и обработки данных, можно изменить интерфейс с пользователем таким образом, что одни и те же данные будут отображаться в виде таблиц, графиков или гистограмм. Очень простые приложения часто способны собрать все три части в единственную программу, и подобное разделение соответствует функциональным границам.
67. Резервное копирование. Цель, задачи, основные понятия.
Резервное копирование (англ. backup copy) — процесс создания копии данных на носителе (жёстком диске, дискете и т. д.), предназначенном для восстановления данных в оригинальном или новом месте их расположения в случае их повреждения или разрушения.
Резервное копирование необходимо для возможности быстрого и недорогого восстановления информации (документов, программ, настроек и т. д.) в случае утери рабочей копии информации по какой-либо причине.
Источник: cyberpedia.su
Технология клиент-сервер
Роли
Сервер – компьютер, управляющий тем или иным ресурсом.
Клиент – компьютер (или программа), запрашивающий и
пользующийся каким-либо ресурсом
Для одного ресурса можно выполнять роль клиента, для другого –
сервера.
3.
Служба WWW
Основная служба в сети Интернет, позволяющая получать доступ к
информации на любых серверах, подключенных к сети.
WWW построена по схеме «клиент-сервер».
В качестве клиента выступает браузер, который является также и
интерпретатором HTML.
4.
Понятие «Веб-сервера»
Web-сервер
— программа, запущенная на узле сети Интернет и выдающая
посетителям этого узла web-страницы по запросам. Также webсервером часто называется узел, на котором эта программа
запущена, или даже компьютер, являющийся таким узлом.
5.
Дополнительные функции
Автоматизация работы веб страниц;
ведение журнала обращений пользователей к ресурсам;
аутентификация и авторизация пользователей;
поддержка динамически генерируемых страниц;
поддержка HTTPS для защищённых соединений с клиентами.
6.
Клиенты
В качестве клиентов для обращения к веб-серверам могут
использоваться различные программы и устройства:
веб-браузер, работающий на настольном компьютере
переносном устройстве (например, карманном ПК);
или
разнообразные программы, самостоятельно обращающиеся к вебсерверам для получения обновлений или другой информации
(например, антивирус может периодически запрашивать у
определённого веб-сервера обновления своих баз данных);
мобильный телефон, получающий доступ к ресурсам веб-сервера
при помощи протокола WAP;
другие цифровые устройства или бытовая техника.
7.
8.
Принципы работы в
двухзвенной архитектуре
Выделяет в каждой
составляющие:
программе
следующие
функциональные
средства и логика пользовательского интерфейса — эта часть
отвечает за организацию представления данных на экране, она
включает в себя средства и ресурсы пользовательского интерфейса, а
также правила и возможные сценарии взаимодействия с
пользователем; прикладная логика – это часть выполняет основную
обработку данных программой, содержит набор
правил для
принятия решений, а также все необходимые вычислительные
процедуры и операции
логика работы с данными — эта часть обеспечивает выполнение
простейших
операций над данными: выбор данных, поиск,
сортировка, фильтрация, а также заполнение, модификация и
удаление некоторых структур данных;
файловые операции — эта часть обеспечивает выполнение
стандартных операций над файлами и файловой системой, которые,
как правило, реализуются с помощью функций ОС
9.
Архитектуры
локальные базы данных и архитектура «файл-сервер»;
архитектура «клиент-сервер»;
многозвенная (трехзвенная N-tier или multi-tier) архитектура
10.
Локальная архитектура
При работе с локальными базами данных сами БД
расположены на том же компьютере, что и
приложения, осуществляющие доступ к ним.
Работа с БД происходит в однопользовательском
режиме.
Ядро
БД
пользователя.
распложено
на
компьютере
Приложение ответственно за поддержание
целостности БД и за выполнение запросов к БД.
11.
Структура приложения,
построенного в архитектуре
«файл-сервер»
При работе в архитектуре «файл-сервер» БД
приложение расположены на файловом сервере сети.
и
Возможна многопользовательская работа с одной и той
же БД, когда каждый пользователь со своего компьютера
запускает приложение, расположенное на сетевом
сервере.
Тогда на компьютере пользователя запускается копия
приложения. По каждому запросу к БД из приложения,
данные из таблиц БД перегоняются на компьютер
пользователя, независимо от того, сколько реально нужно
данных для выполнения запроса. После этого
выполняется запрос.
12.
Архитектура клиентсервер
Архитектура «клиент-сервер» разделяет функции
приложения пользователя (называемого клиентом) и
сервера.
Взаимодействие сервера БД и приложения клиента
происходит сл. Образом: клиент формирует запрос и
отправляет серверу, сервер принимает запрос, выполняет
его и результат возвращает клиенту. В клиентском
приложении – только интерпретация полученных от
сервера данных, реализация интерфейса с пользователем
и ввод данных.
13.
Классическая двухуровневая
модель Клиент-Сервер с
источником данных
Простейшие клиент-серверные разработки могут реализоваться следующим образом:
клиент – на базе Visual Basic, связь с серверной частью через DAO-ODBC (активные объекты и
контейнер баз данных) с базой данных сервера – на базе SQL-сервера.
Преимущества:
— уменьшение сетевого трафика
— единые для всех пользователей правила по обеспечению достоверности и секретности
данных
Недостатки такой модели:
—
перегрузка клиентской части – длительное время ожидание ответа
—
проблемы синхронизации приложений
—
затруднительны процессы размножения и модификации разработки.
—
Ограниченное число пользователей
14.
Трёхуровневая модель
́ овневая архитектур
́ а, или трёхзве́нная архитекту́ра (англ.
Трёхур
three-tier или англ. Multitier architecture) — архитектурная модель
программного комплекса, предполагающая наличие в нём трёх
компонентов: клиентского приложения (обычно называемого
«тонким клиентом» или терминалом), сервера приложений, к
которому подключено клиентское приложение, и сервера базы
данных, с которым работает сервер приложений.
15.
Распределенная
(многоуровневая) модель
Если между клиентом и сервером существует несколько процессов,
то говорят о многоуровневой архитектуре. Здесь выделяются WEBсервер, программа-расширение, сервер баз данных и клиент в виде
браузера.
16.
Типы клиентов в системе
клиент-сервер
Толстый клиент, rich client архитектуре клиент-сервер — это
приложение, обеспечивающее (в противовес тонкому клиенту)
полную функциональность и независимость от центрального
сервера.
Часто сервер в этом случае является лишь хранилищем данных, а
вся работа по обработке и представлению этих данных переносится
на машину клиента
17.
Тонкий клиент
Тонкий клиент, thin client в компьютерных технологиях —
компьютер или программа-клиент в сетях с клиент-серверной или
терминальной архитектурой, где большая часть задач по обработке
информации перенесена на сервер и права доступа клиента строго
ограничены. Примером тонкого клиента может служить компьютер
с браузером, использующийся для работы с веб-приложениями.
18.
Вопросы
1. Какие функциональные составляющие включает в себя общая
модель разбиения каждой программы?
2. Что такое файл-сервер? Какие функции он выполняет?
3. Каким образом поддерживается удаленный доступ к файлам?
4. Какие файловые операции выполняет файл-сервер?
5. Нарисуйте схему доступа к данным для двух приложений типа
«файл сервер»
6. Назовите недостатки архитектуры «файл—сервер»
7. Область применения архитектуры «файл-сервер»
8. Архитектура клиент-сервер. Разновидности архитектуры.
Источник: ppt-online.org