Файл: Технология «клиент-сервер».pdf

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

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

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

Добавлен: 27.06.2023

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

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

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

Развитие компьютерных сетей и массовое внедрение персональных компьютеров дало воз­можность появления нового типа архитектуры, получившим название «файл-сервер». Эта тех­нология организации совместной работы в вы­числительной сети предполагает выделение од­ного из компьютеров исключительно под задачи ввода-вывода и хранения данных. Клиентские приложения пользователей при такой органи­зации программной архитектуры самостоятель­но выполняют всю необходимую обработку дан­ных, а ресурсы компьютера-сервера использу­ют для хранения информации в виде отдельных файлов [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»), которая предполагает обеспечение удаленного динамического доступа пользователей к услугам, вычислительным ре­сурсам и приложениям (включая операционные системы и инфраструктуру) через информацион­ные сети.