Добавлен: 27.06.2023
Просмотров: 88
Скачиваний: 2
СОДЕРЖАНИЕ
ГЛАВА 1 ТЕОРЕТИЧЕСКИЕ АСПЕКТЫ ТЕХНОЛОГИИ КЛИЕНТ-СЕРВИСА
1.1 Понятие и сущность технологии "клиент-сервис"
2.1 Архитектурные решения многопользовательского доступа к данным
2.2 Трехзвенная архитектура «клиент-сервер»
2.3 Пример использования трехзвенной архитектуры при построении информационной системы
2.4 Перспективы использования трехзвенной архитектуры «клиент-сервер»
Развитие компьютерных сетей и массовое внедрение персональных компьютеров дало возможность появления нового типа архитектуры, получившим название «файл-сервер». Эта технология организации совместной работы в вычислительной сети предполагает выделение одного из компьютеров исключительно под задачи ввода-вывода и хранения данных. Клиентские приложения пользователей при такой организации программной архитектуры самостоятельно выполняют всю необходимую обработку данных, а ресурсы компьютера-сервера используют для хранения информации в виде отдельных файлов [2, 3]. Существенным недостатком такой архитектуры также является небольшое число клиентов, способных одновременно работать с базой данной без заметного снижения производительности системы из-за физических ограничений на количество одновременного возможных сеансов доступа к одному и тому же файлу. Также к недостаткам данной архитектуры относят ее низкую надежность и безопасность [3].
Пришедшая на смену архитектуре «файлсервер» архитектура «клиент-сервер» предполагает наличие в сети выделенного компьютера-сервера, на котором располагается СУБД и хранятся базы данных. Клиентские приложения не могут обращаться непосредственно к данным, монопольным правом на доступ к информации обладает СУБД. Сервер обеспечивает интерпретацию запросов клиентов на доступ к данным, их выполнение за счет взаимодействия с базой данных, формирование результатов их выполнения и передачу этих результатов приложениям-клиентам. Взаимодействие приложений-клиентов и СУБД стандартно реализуются на структурном языке запросов SQL (Structured Query Language), а соответствующие базы данных принято называть реляционными [4]. Поскольку выполнение запроса происходит на сервере, там же, где хранятся данные, то нет необходимости в пересылке больших объемов информации, по сети предаются только запросы клиентов и результаты их выполнения, что значительно повышает быстродействие системы и снижает время ожидания результата запроса. Дополнительным преимуществом архитектуры является обеспечение высокой надежности механизма поддержания целостности базы данных и безопасности при одновременной работе большого числа пользователей за счет системы транзакций и разграничения доступа [4, 5].
Рис. 2.1. Концепция трехзвенной архитектуры «клиент-сервер» [6]
Сегодня клиент-серверная технология является фактически стандартом работы с данными и реализована в значительном количестве СУБД. Однако в процессе эксплуатации систем, основанных на данной архитектуре, был выявлен ряд существенных недостатков:
- недостаточная масштабируемость, т.е. ограниченная способность системы увеличивать свою производительность с увеличением нагрузки за счет добавлении ресурсов, а также недостаточная надежность, выраженная в невозможности продолжения работы при отказе сервера;
- необходимость привлечения системного администратора - высококвалифицированного технического специалиста, занимающегося обеспечением корректной и стабильной работы сервера;
- высокая стоимость серверного оборудования, связанная с необходимостью обеспечения обработки сервером большого количества запросов в единицу времени, а также необходимость обеспечения достаточно высокой пропускной способности сети передачи данных.
2.2 Трехзвенная архитектура «клиент-сервер»
В результате развития технологии «клиентсервер» была предложена новая, трехзвенная архитектурная модель программного комплекса (рисунок 1) [6].
Трехзвенная (трехуровневая, а также иногда многозвенная или многоуровневая) архитектура подразумевает наличие в системе трех основных компонентов:
- клиентский уровень, на котором обеспечивается интерфейс с пользователем путем передачи запросов пользователя на следующий уровень и представлении полученных от этого уровня результатов;
- уровень сервера приложений, на котором реализуется вся бизнес-логика, ранее входившая в состав клиентских приложений: обрабатывается запросы клиентов, выполняется логическая и математическая обработка данных, осуществляется передача данных между двумя окружающими уровнями;
- уровень данных (сервер баз данных), на котором обеспечивается хранение данных, извлечение необходимой информации по запросу от сервера приложений и передача ему этих данных для обработки. Доступ к этому уровню возможен только с уровня сервера приложений.
К основным преимуществам трехзвенной архитектуры относятся:
- возможность распределения функций системы по нескольким компонентам - разным физическим устройствам - клиентской рабочей станции, сервера приложений и сервера базы данных, что позволяет повысить надежность, безопасность и производительность системы в целом;
- масштабируемость, под которой понимают возможность оперативного увеличения производительности системы в зависимости от планируемой нагрузки за счет изменения конфигурации сервера приложений;
- конфигурируемость, т.е. возможность произвести изменение системы на любом из ее уровней при возникновении сбоев или в процессе планового обслуживания при неизменности всех остальных уровней, что достигается за счет изолированности уровней друг от друга. Таким образом, возможно осуществить, например, модификацию программного обеспечения отдельного уровня или наращивание вычислительной мощности компьютерного комплекса без какого либо воздействия на другие уровни обработки данных;
- значительно более низкие требования к пропускной способности канала передачи данных между клиентом и сервером приложений по сравнению с классической архитектурой «клиент-сервер»;
- минимальные требования к производительности и техническим характеристикам клиентского оборудования, что позволяет использовать в их качестве так называемые «тонкие» клиенты - мобильные устройства, вычислительных ресурсов которых достаточно лишь для запуска необходимого сетевого приложения через web- интерфейс [7].
2.3 Пример использования трехзвенной архитектуры при построении информационной системы
Трехзвенная архитектура построения многопользовательской программной системы для работы с базами данных была успешно использована нами при реализации программной задачи (ПЗ) «Контроль исполнения» из состава комплекса программных средств (КПС) «Инспекторские проверки», разработанной для нужд Федеральной таможенной службы Российской Федерации.
Клиентское программное обеспечение разрабатывалось в виде Windows Forms приложений с использованием языка программирования C# в среде инструментальной разработки Microsoft Visual Studio 2010 и языка серверной части PL/ SQL СУБД Oracle.
Программное обеспечение сервера приложений разрабатывалось с использованием языка программирования C# в среде инструментальной разработки Microsoft Visual Studio 2010.
В соответствии с требованиями технического задания на разработку ПЗ «Контроль исполнения» в качестве СУБД в системе применялись:
- на сервере баз данных - ORACLE Database Server версии 10g или выше
- на сервере приложений - ORACLE Client версии 10g или выше и MS .NET Data Provider for Oracle.
В соответствии с трехзвенной архитектурой общая концепция обработки данных в ПЗ «Контроль исполнения» предполагает разделение его составляющих на три уровня:
- уровень клиента;
- уровень доступа к данным;
- уровень данных.
Далее подробно рассмотрим каждый из уровней.
Уровень клиента - реализация интерфейсного компонента, приложение для конечного пользователя. Этот уровень в целях безопасности не имеет прямых связей с базой данных, однако помимо интерфейса здесь реализуются некоторые несложные операции с загруженными данными, проверка введенных значений и реализации правил и ограничений автоматизируемых операций, а также при необходимости алгоритмы шифрования данных.
Уровень доступа к данным (уровень сервера приложений). На этом уровне процедуры, реализованные через технологию провайдера DataAdapter возвращают данные от источника данных (Data Source), в качестве которого применяется СУБД Oracle, в виде структурированных наборов данных (DataSet) и изменяют данные в соответствии со значениями параметров системного класса OracleCommand, в котором отражаются изменения наборов данных DataSet. В качестве шаблона (т.е. прототипа DataSet) используются классы описатели данных - наследники класса DataSet.
Уровень данных - реализация самой СУБД. На этом уровне операции с базой данных выполняются с помощью хранимых процедур и триггеров СУБД, а также с помощью встроенных SQL-утверждений в программном коде сервера приложений.
Использование хранимых процедур диктуется следующими причинами:
- применение хранимых процедур в большинстве случаев повышает производительность, так как помогает оптимизировать план доступа к данным, используемым процедурой, и кэшировать эти данные для дальнейшего применения;
- использование хранимых процедур позволяет защищать их индивидуально на уровне базы данных. Клиенту можно выдать разрешения на выполнение хранимой процедуры, не предоставляя разрешения на доступ к используемым процедурой таблицам, что повышает защищенность данных;
- реализация бизнес-логики через хранимые процедуры позволяет упростить сопровождение системы, так как обычно легче изменить хранимую процедуру, чем «жестко зашитый» в развертываемый компонент оператор SQL;
- хранимые процедуры создают дополнительный уровень абстракции от схемы базы данных. Клиенту хранимой процедуры не требуется что-либо знать ни о деталях работы хранимой процедуры, ни о схеме базы данных;
- хранимые процедуры уменьшают сетевой трафик, так как в этом случае операторы SQL выполняются в пакетном режиме, а не путем передачи многократных запросов от клиента.
Использование встроенных в программный код SQL-утверждений позволяет воспользоваться более мощными средствами обработки параметров и генерации динамических SQL- запросов, а также, при необходимости, большей независимостью от используемых СУБД.
Рис. 2.2 Структура функционирования программной задачи «Контроль исполнения»
Для выполнения ряда специальных общесистемных функций в модель данных введен ряд общесистемных таблиц базы данных. В частности они используются:
- для хранения регистрационных параметров КПС;
- для выполнения задач организации разграничения доступа к ресурсам системы;
- для описания перечня таблиц базы данных (сущностей предметной области) и основных атрибутов этих сущностей;
- для организации мониторинга действий пользователей;
- для организации протоколирования изменений базы данных.
На уровне базы данных реализуется ряд общесистемных хранимых процедур и триггеров БД. В частности они обеспечивают:
- запись в протокол изменений БД;
- формирование уникальных ключей экземпляра БД;
- организацию каскадного удаления данных и другие действия служебного характера.
Модель, указывающая варианты реализации и размещения программных компонентов, приводится на рисунке 2.
В процессе работы системы возникают следующие потоки данных:
- со стороны клиента на сервер приложений передаются тип операций (запросов) и параметры, необходимые для выполнения этих операций;
- со стороны сервера приложений на клиента передаются результаты выполнения операций.
Это могут быть коды выполнения операций, наборы данных (Data Set), тексты сообщений, сложные объекты, содержащие специализированную информацию, а также любые другие данные, сформированные в результате работы сервера приложений с сервером баз данных.
Взаимодействие сервера приложений с сервером баз данных осуществляется либо вызовом хранимых процедур с получением результатов выполнения этих процедур, либо непосредственным выполнением SQL запросов.
Ядром ПЗ «Контроль исполнения» является сервер приложений, который выполняет следующие функции:
- получение запросов клиентских приложений на аутентификацию и идентификацию пользователей, и выполнение этих процедур;
- получение запросов клиентских приложений на выполнение специализированных функций, их выполнение и передача результатов выполнения клиентским приложениям;
- ведение сессий пользователей - информации о пользователе, его правах, идентификаторе сессии, время запуска сессии, время последнего обращения пользователя, выполняемые запросы и т.д.;
- организация доступа к базе данных;
- сервисные функции, такие как упаковка (распаковка) объектов данных, формирование SQL-запросов на основе набора параметров, очистка поисковых таблиц (таблиц, временно хранящих результаты выполнения поисковых запросов) и т.д.
2.4 Перспективы использования трехзвенной архитектуры «клиент-сервер»
На сегодняшний день распределенные СУБД являются одним из наиболее значимых направлений развития современного рынка программных продуктов. В связи с постоянным ростом объемов обрабатываемых данных, интенсивным развитием информационных сетей, в том числе беспроводных, повсеместным распространения мобильных гаджетов в качестве тонких клиентов, необходимость широкого внедрения трехзвенной архитектуры технологии «клиент - сервер» становится все более ощутимой. Например, подавляющее большинство из существующих на сегодняшний день мобильных устройств обладает широкими возможностями для работы с данными с помощью информационных сетей, и, стоит отметить, что эти возможности постоянно совершенствуются. Одним из основных способов доступа к данным с использованием таких устройств в качестве клиентских терминалов становится концепция облачных вычислений («cloud computing»), которая предполагает обеспечение удаленного динамического доступа пользователей к услугам, вычислительным ресурсам и приложениям (включая операционные системы и инфраструктуру) через информационные сети.