Файл: Технология клиент-сервер (Описание клиент-серверной технологии).pdf
Добавлен: 28.06.2023
Просмотров: 140
Скачиваний: 3
Введение
Как правило компьютеры и программы, входящие в состав информационной системы, не являются равноправными. Некоторые из них владеют ресурсами, другие имеют возможность обращаться к этим ресурсам. Компьютер, управляющий ресурсом, называют сервером этого ресурса. Клиент и сервер какого-либо ресурса могут находится как в рамках одной вычислительной системы, так и на различных компьютерах, связанных сетью.
Основной принцип технологии «клиент-сервер» заключается в разделении функций приложения на три группы:
- ввод и отображение данных (взаимодействие с пользователем);
- прикладные функции, характерные для данной предметной области;
- функции управления ресурсами (файловой системой, базой данных и т.д.).
Поэтому, в любом приложении выделяются следующие компоненты:
- компонент представления данных;
- прикладной компонент;
- компонент управления ресурсом.
Связь между компонентами осуществляется по определенным правилам, которые называют «протокол взаимодействия».
В данной работе рассматривается разработка клиент-серверного приложения для учёта штрафов ГИБДД.
Описание клиент-серверной технологии
Концепция технологии
Архитектура информационной системы - концепция, определяющая модель, структуру, выполняемые функции и взаимосвязь компонентов информационной системы. [3]
Клиент-серверная архитектура наиболее часто используется для создания корпоративных баз данных, в которых информация не только хранится, но и периодически поддается обработке различными методами. Именно база данных является главным элементом любой корпоративной информационной системы, а на сервере располагается ядро этой базы. Так, на сервере происходят наиболее сложные операции, касающиеся ввода, хранения, обработки и модификации данных. Когда пользователь (клиент) обращается к базе данных (серверу), происходит обработка запроса: непосредственно обращение к базе данных и возврат ответа (результата обработки). Результат обработки – это сообщение сети об успешном проведении операции или ошибке. Серверные компьютеры могут обрабатывать одновременно обращение нескольких клиентов к одному и тому же файлу. Такая работа и передача данных по сети позволяет ускорить работу используемых приложений.
Компоненты информационной системы по выполняемым функциям можно разделить на три слоя: слой представления, слой бизнес-логики и слой доступа к данным. [2]
Слой представления – все, что связано с взаимодействием с пользователем: нажатие кнопок, движение мыши, отрисовка изображения, вывод результатов поиска и т.д.
Бизнес логика - правила, алгоритмы реакции приложения на действия пользователя или на внутренние события, правила обработки данных.
Слой доступа к данным - хранение, выборка, модификация и удаление данных, связанных с решаемой приложением прикладной задачей.
Основные особенности данной архитектуры:
- Клиентская программа работает с данными через запросы к серверному ПО.
- Базовые функции приложения разделены между клиентом и сервером.
Плюсы:
- Полная поддержка многопользовательской работы.
- Гарантия целостности данных. [5]
В основе этой технологии лежат два основных понятия: клиент и сервер. Клиент - компьютер, осуществляющий запрос к серверу на выполнение каких-либо действий или предоставление какой-либо информации. Сервер - компьютер, обычно более мощный, чем компьютер-клиент. Модель функционирования такой системы заключается в следующем: клиент делает запрос серверу, сервер (серверная часть) получает запрос, выполняет его и отсылает результат клиенту (клиентская часть).
Сервер может обслуживать нескольких клиентов одновременно. В этом случае говорят о многопользовательском режиме. Только не стоит понимать слово «одновременно» в буквальном смысле. Запросы выполняются сервером последовательно. Если одновременно приходит более одного запроса, то запросы устанавливаются в очередь. В данном случае очередь - это список невыполненных клиентских запросов. Иногда запросы могут иметь приоритеты. Приоритет - это уровень «важности» выполнения запроса. Запросы с более высокими приоритетами должны выполняться раньше. [7]
Существует концепции построения системы клиент-сервер:
1) Слабый клиент - мощный сервер - вся обработка информации осуществляется целиком сервером. Сервер посылает готовый результат, не требующий дополнительной обработки. Клиент только ведет диалог с пользователем: составляет запрос, отсылает запрос, принимает запрос и выводит информацию на экран (на принтер, в файл).
2) Сильный клиент - часть обработки информации перепоручается клиенту. [6]
Итак, клиент-серверная информационная система состоит в простейшем случае из трех основных компонентов:
- сервер баз данных, управляющий хранением данных, доступом и защитой, резервным копированием, отслеживающий целостность данных в соответствии с бизнес-правилами и, самое главное, выполняющий запросы клиента;
- клиент, предоставляющий интерфейс пользователя, выполняющий логику приложения, проверяющий допустимость данных, посылающий запросы к серверу и получающий ответы от него;
- сеть и коммуникационное программное обеспечение, осуществляющее взаимодействие между клиентом и сервером посредством сетевых протоколов.
Есть и более сложные реализации архитектуры клиент/сервер, например, трехуровневые информационные системы с использованием серверов приложений
Одной из необходимых частей клиент-серверной технологии является СУБД.
СУБД
База данных – это созданная структура хранения информации для конкретно поставленной цели. Это совокупность таблиц определённой целевой направленности.
Система управления базами данных (СУБД) – это комплекс программных средств, который разработан для управления данными, структурой базы данных, контролем доступа к данным. А также, позволяющим искать и выдавать информацию в читаемом формате.
Сведения, подлежащие сбору и хранению – это сущность. Свойства сущностей формируют группу по их общим свойствам.
Набор сущностей – это объединение сущностей, которые связаны общими свойствами.
Свойства сущностей – атрибуты. В каждой сущностей может содержаться несколько атрибутов.
Строка таблицы (или кортеж отношения) является отдельной сущностью внутри набора сущностей.
Столбец таблицы данных является атрибутом, который обладает своим уникальным именем в пределах таблицы.
Пересечение столбца и строки даёт одно единственное значение.
В таблице должны содержаться атрибут или группа атрибутов, которые уникально идентифицируют каждую строку.
Отображение значений в таблице должно происходить в одинаковом формате. Т.е., если атрибуту присвоен определённый тип, то все данные, содержащиеся в данном поле должны соответствовать этому типу.
Столбец таблицы имеет диапазон значений, который называется доменом атрибута. [8]
Порядок строк и столбцов не должен нести смысловой нагрузки.
Основные характеристики любой БД:
- актуальность данных и их адекватность;
- полнота данных;
- управляемость БД;
- лёгкость в использовании и переносе данных;
- устойчивость к несанкционированным воздействиям, а также надёжность эксплуатации; [9]
Преимущества организации СУБД:
Сокращение избыточности данных в базе. Дублирование хранимой информации может быть сведено к минимуму, так как данные распределены между связанными таблицами. При использовании несколькими программами одних и тех же данных, они хранятся в едином экземпляре.
Устраняется противоречивость данных, что является следствием отсутствия избыточности информации.
Повторное использование данных. Это означает, что данные вводятся один раз и используются многократно.
Комплексная оптимизация. Все противоречивые требования пользователя к данным устраняются максимально.
Данные стандартизированы, что делает доступ к ним проще.
Разграничение прав пользователей. Т.е. для доступа к определённой группе данных требуется являться членом определённой группы пользователей, наделёнными такими полномочиями.
Обеспечение целостности данных. Т.е. данные, которые хранятся в БД должны быть точными и непротиворечивыми.
Отношение – это ассоциация между двумя сущностями, которая позволяет точно определять связь экземпляра одной сущности с некоторым количеством экземпляров другой сущности.
Различают следующие типы связей:
- Связь один-к-одному - данная сущность может быть связана только с одной другой сущностью и наоборот. В реляционных моделях встречается редко, но обычно несёт логический характер разделения данных. Практической пользы разделения таких данных мало.
- Связь многие-ко-многим - это означает, что сущность связана с несколькими другими сущностями. Самая распространённая и идеальная связь для реляционной модели данных. Обычно организуется при помощи первичных и внешних ключей. [1]
- Связи многие-ко-многим означает, что несколько одних сущностей могут соответствовать многим другим сущностям. В реляционной модели реализуется сложно, так как противоречит основополагающим правилам. При реализации такого типа связей следует прибегать к разбиению на несколько связей тип один-ко-многим. При этом будет составлена промежуточная сущность, которая будет включать первичные ключи связываемых таблиц.
Рассмотрим подробнее понятие ключи таблиц данных.
Ключ включает в себя один или несколько атрибутов, который определяет весь набор атрибутов.
В каждой таблице должен быть определён первичный ключ, который идентифицирует строку.
Определение первичного ключа позволяет обеспечить целостность данных на уровне сущностей. [5]
Первичный ключ не может содержать значение «null», так как это приведёт к потере целостности данных.
Если ключ состоит из нескольких атрибутов, то он является составным ключом. А каждый атрибут, который входит в составной ключ является ключевым атрибутом. На практике лучше не использовать составные ключи, так как это осложняет процесс обработки и внесения данных.
Центральная концепция реляционных баз данных – функциональная зависимость – атрибут В функционально зависит от атрибута А, если каждое значение атрибута А определяет одно и только одно значение атрибута В.
Первичный ключ одной таблицы, который используется в качестве поля другой таблицы называется внешним ключом. Этот механизм позволяет контролировать избыточность данных. Таблицы базы данных совместно используют атрибуты.
Проектирование баз данных включает следующие требования:
- Данные должны отображаться адекватно. Это включает: полноту и актуальность данных; динамичность модели.
- Возможность взаимодействия с пользователями разных категорий и в разных режимах.
- Данные должны быть защищены от случайных или преднамеренных разрушений БД. Должна обеспечиваться конфиденциальность данных. Надёжность и целостность данных.
Должна быть обеспечена взаимная независимость данных от программ.
Данные, которые обрабатываются в базе должны поддерживать определённую технологию, а также, соответствовать определённым характеристикам функционирования.
При проектировании базы данных разработчик должен заботиться о целостности данных. Нормализованная структура таблиц позволяет избавиться от нарушений связи, а также, от внесения некорректных значений. При этом требуется определить наилучший путь обеспечения целостности. Стойкость и точность данных - на этих аспектах основывается целостность данных.
Связь с базой данных по технологии клиент-сервер
Рассмотрим язык программирования Delphi. В нём предусмотрена технология ADO, которая позволяет наладить связь с любой СУБД и организовать клиент-серверную архитектуру.
Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к источникам данных различных типов. Например, приложение, использующее ADO, может применять одинаково сложные операции и к данным, хранящимся на корпоративном сервере SQL, и к электронным таблицам, и локальным СУБД. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.
В Delphi была реализована возможность работы с технологией ADO через компоненты. Это позволяет быстро создавать системы управления базами данных любой сложности.