Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Технология «Клиент-сервер (Введение))

Содержание:

Введение

Сетевая архитектура «Клиент-сервер» появилась еще в 80-х гг. прошлого века, заменив централизованную схему управления вычислительным процессом на мейнфреймах, и явилась своего рода прорывом в развитии технологий организации вычислительных систем. Высокая надежность, легкое масштабирование, обеспечение одновременной работы пользователей с несколькими приложениями, оперативная обработка информации, предоставление пользователю высококачественного интерфейса и другие возможности позволили данной технологии получить свое дальнейшее развитие и широко использоваться по настоящее время. Именно это является основной причиной выбора темы исследования, проведенного в рамках написания данной курсовой работы.

Предметом исследования является организация системы доступа и обработки данных с помощью технологии «Клиент-сервер». Цель написания курсовой работы – рассмотреть принципы организации архитектуры «Клиент-сервер», ее основные возможности, достоинства и недостатки, области применения. Для успешного достижения поставленной цели необходимо решить ряд задач:

  1. дать характеристику особенностям построения и функционирования сетей, разработанных по технологии «Клиент-сервер»;
  2. рассмотреть существующие модели организации технологии «Клиент-сервер»;
  3. охарактеризовать программное обеспечение, применяющееся в архитектуре «Клиент-сервер»;
  4. изучить организацию обработки данных в рамках технологии «Клиент-сервер»;
  5. рассмотреть области применения данной технологии.

Общая характеристика архитектуры «Клиент-сервер»

Особенности построения и функционирования сетей, разработанных по технологии «Клиент-сервер»

«Клиент-сервер» — это технология, которая составляет основу вычислительной либо сетевой архитектуры. В сети, использующей такую технологию, задания или сетевая нагрузка распределяются между поставщиками услуг — сервисов, которые называют серверами, и заказчиками услуг, которые называют клиентами. Технология «клиент-сервер» отличается тем, что упрощает обслуживание вычислительной системы, к примеру, ремонт, замена, модернизация, перемещение сервера никак не сказывается на клиентах [3, с. 43].

Поскольку вся информация хранится на сервере, как правило, имеющем гораздо лучшую защиту, чем клиенты, данные находятся под меньшей угрозой повреждения, уничтожения или несанкционированного доступа. [2, с. 107]

Кроме того, на сервере более простой является организация контроля полномочий, и впоследствии разрешение доступа к данным только клиентам, которым предоставлены соответствующие права.

Еще одним важным моментом, говорящим в пользу клиент-серверной технологии, является то, что она дает возможность объединить клиенты с разными аппаратными платформами, операционными системами и т.п. (ПК, планшет, смартфон). [11]

Архитектура, построенная по принципу «клиент-сервер» легко масштабируется, пользователь может работать сразу в нескольких приложениях.

Как и любая другая архитектура, технология клиент-сервер имеет определенные недостатки:

  1. выход из строя сервера делает неработоспособной вычислительную сеть в целом;
  2. поддержка работы такой архитектуры требует участия системного администратора;
  3. стоимость оборудования достаточно высока, т.к. к серверу предъявляются повышенные требования в плане производительности, объема памяти, степени защиты и т.п. [2, с. 112]

Клиент-серверная архитектура бывает нескольких разновидностей:

  1. многоуровневая архитектура клиент-сервер — где функционал обработки данных выполняется одним или несколькими отдельными серверами. Такой подход дает возможность разделить хранение, обработку и представление информации и делает более эффективным использование возможностей клиентов и серверов;
  2. сеть с выделенным сервером, где устройства централизованы и находятся под управлением одного или нескольких серверов. Рабочие станции (клиенты) обращаются к ресурсам сети через один или несколько серверов, в зависимости от масштабов сети. [8, с. 33]

Технология «клиент-сервер» появилась еще в 80-е гг. прошлого века, заменив малофункциональную модель файлового сервера для локальных сетей (FS) на появившиеся одна за другой модели RDA, DBS и AS. Технология легла в основу глобальной сети Internet, а затем, когда идея организации Internet была использована для организации корпоративных сетей, появилась технология Intranet, согласно которой вычислительные сети состоят из центральных серверов и распределенных компонентов представления информации конечному пользователю (браузеры). [12]

Взаимодействие между клиентом и сервером в Intranet происходит при помощи web-технологий.

Клиент и сервер взаимодействуют по схеме «запрос-ответ», представленной рисунке 1. [2, с. 133]

https://works.doklad.ru/images/b_WBz8swNHk/31b25bc0.jpg

Рисунок 1― Архитектура «клиент-сервер»

Сервером ресурса называют компьютер или программу, которая управляет и (или) владеет каким-либо ресурсом. Клиентом называют компьютер или программу, которая запрашивает и пользуется каким-либо ресурсом. [12]

Клиент и сервер могут находиться на одном ПК либо на разных. Также возможен вариант, при котором некий программный блок одновременно выполняет функцию сервера по отношению к одному блоку и функцию клиента по отношению к другому.

Основной принцип технологии «клиент-сервер» — разделение функций приложения на несколько групп:

    1. модули интерфейса с пользователем, или логика представления, через которую пользователь взаимодействует с приложением. Задача модулей состоит в том, чтобы обеспечить средства для наиболее эффективного обмена информацией между пользователем и информационной системой;
    2. модули хранения данных, или бизнес-логика, которая определяет функции, которые выполняют приложения;
    3. модули обработки данных, или логика доступа к данным, которые управляют ресурсами (функции управления ресурсами). Эти модули организуют интерфейс системы управления базами данных (СУБД), при помощи которого приложение управляет обращением и запросами к базе данных. [9, с. 35]

В классическом варианте архитектуры три основные части приложения распределяют по двум физическим модулям. Прикладной компонент размешают на сервере, компонент представления данных - на стороне клиента, компонент управления ресурсом разделяют между клиентом и сервером. [1, с. 96]

Во избежание несогласованности различных элементов системы были разработаны две модификации: «Толстый клиент», когда выполнение обработки данных происходит либо на стороне клиента, и «Тонкий клиент», когда обработка данных происходит на стороне сервера. Схема архитектур «Тонкий клиент» и «Толстый клиент» представлена в Приложении 1.

Оба варианта имеют серьезные недостатки. При «Толстом клиенте»:

  1. возникает перегрузка на сети, т.к. по ней идет передача необработанных избыточных данных;
  2. становится сложнее поддерживать систему и вносить в нее изменения;
  3. усложняется обновление ПО, поскольку его замена должна производиться по всей системе одновременно;
  4. сложнее распределять полномочия, поскольку разграничение доступа производится по таблицам, а не по действиям;
  5. недостаточная защита данных, поскольку возникают сложности с правильным распределением полномочий. [2, с. 144]

Во втором случае «Тонкий клиент» недостатки следующие:

  1. возникает проблема описания встроенных процедур и их отладки;
  2. систему с обработкой информации на сервере нельзя перенести на другую операционную систему;
  3. усложняется реализация, т.к. языки типа SQL не обладают возможностями для разработки подобного ПО и хорошими средствами отладки;
  4. низкая производительность и надежность программ на языках типа SQL;
  5. ошибка в программе зачастую приводит к выходу из строя всего сервера баз данных;
  6. программы невозможно перенести на другие системы и платформы. [12]

Чтобы решить перечисленные проблемы применяются многоуровневые архитектуры «Клиент-сервер», т.е. такая ее разновидность, в которой функционал обработки данных переносится на один либо несколько отдельных серверов. Данная технология дает возможность разделить функции хранения, обработки и представления данных для того чтобы возможности клиентов и серверов использовались наиболее эффективно. Данная архитектура появилась в середине 90-х годов прошлого века. В ней информационная система состоит из трех отдельных компонентов с разными функциональными возможностями: логика представления, бизнес-логика и логика доступа к данным. [11]

Логика представления данных включает всю работу с пользователем. На этом уровне пользователи могут не только взаимодействовать с приложением, вводить данные и просматривать результаты запросов, но и управлять манипулированием данными и их форматированием после того, как они попадают на клиентскую сторону. В веб-технологии задача уровня представления данных выполняет браузер.

Бизнес-логика представляет собой правила, алгоритмы реакции приложения на действия пользователя или на внутренние события, правила обработки данных.

Логика доступа к данным включает в себя хранение, выборка, модификация и удаление данных, связанных с решаемой приложением прикладной задачей.

Также отличительной особенностью многоуровневой архитектуры является сервер приложений, предназначенный для осуществления бизнес-логики (Рисунок 2). [2, с. 145]

https://works.doklad.ru/images/b_WBz8swNHk/m1fb445c6.jpg

Рисунок 2 ― Сервер приложений

При таком подходе полностью разгружается клиент, он может направлять запросы промежуточному ПО и выполнять роль системы представления информации. [12]

Также максимально используются все возможности серверов. Такая модель может быть реализована с помощью средств Web-технологии ― браузера, CGI и Java.

Многоуровневые клиент-серверные системы легко переносятся на Web-технологию путем замены клиентской части на универсальный или специализированный браузер, а к серверу приложений добавить Web-сервер и небольшие программы для вызова серверных процедур, которые разрабатываются в основном при помощи технологии Java.

Различные модели технологии «Клиент-сервер»

Отличия в реализации архитектуры «Клиент-сервер» определяются следующими факторами:

      1. виды ПО в логических компонентах и механизмы, которые используются для реализации их функций;
      2. распределение логических компонентов компьютерами в сети;
      3. механизмы, которые используются для связи между компонентами.

Исходя из этого, различаются три подхода:

      1. модель доступа к удаленным данным (Remote Date Access ― RDA);
      2. модель сервера базы данных (DateBase Server ― DBS);
      3. модель сервера приложений (Application Server ― AS) [3, с. 71].

Модель доступа к удаленным данным (RDA) является сетевой архитектурой технологии «Клиент-сервер», при которой выполнение кодов компонента представления и прикладного компонента происходит на компьютере-клиенте [3, с. 78].

Доступ к информационным ресурсам производится с помощью непроцедурного языка, к примеру, SQL, либо путем вызова функций специальной библиотеки, в случае наличия интерфейса прикладного программирования API. Удаленный компьютер по сети получает запросы к информационным ресурсам, обрабатывает и выполняет их, а затем возвращает клиенту блоки данных (Рисунок 3). [2, с. 208]

https://works.doklad.ru/images/b_WBz8swNHk/255e480e.jpg

Рисунок 3 ― Модель доступа к удаленным данным

Основное преимущество RDA-модели заключается в широком выборе инструментов разработки приложений, быстрое создание desktop-приложений, которые работают с SQL-ориентированными СУБД. Однако RDA-модель имеет ряд ограничений:

  1. взаимодействие клиента и сервера посредством SQL-запросов существенно загружает сеть. Приложение является нераспределенным, его логика локализована на клиенте, поэтому взаимодействие его с сервером приводит к передаче большого объема данных, возможно, избыточных. При росте количества клиентов сеть ограничивает быстродействие информационной системы; [1, с. 113]
  2. функции представления и прикладные функции смешаны в одной программе, написанной на языке четвертого поколения (4GL), поэтому для внесения изменений в прикладные функции необходимо переписать полностью всю программу; [12]
  3. при коллективной работе над проектом каждый разработчик выполняет реализацию отдельных прикладных функций, поэтому сложно контролировать их непротиворечивость, единый стиль интерфейса и его целостность;
  4. замену ПО необходимо производить одновременно на всех компьютерах-клиентах;
  5. поскольку разграничение прав доступа происходит на стороне клиента, и разграничение выполняется только по таблицам базы данных, возникает низкий уровень безопасности. [2, с. 88]

Модель сервера баз данных (DBS — сетевая архитектура, в основе которой лежит механизм хранимых процедур, реализующий прикладные функции. [3, с. 83]

В DBS – модели понятие информационного ресурса сводится к базе данных, а приложение является распределенным. Компонент представления размещается на клиенте, а прикладной компонент, который реализует бизнес-функции, оформляется в виде набора хранимых процедур и размещается на сервере БД. Хранимые процедуры также называются компилируемыми резидентными процедурами или процедурами базы данных (Рисунок 4). [2, с. 220]

https://works.doklad.ru/images/b_WBz8swNHk/a7823bc.jpg

Рисунок 4 ― Модель сервера баз данных

Преимущества DBS-модели перед RDA-моделью заключаются в возможности централизованного администрирования различных функций, снижение трафика сети, возможность разделения процедуры между несколькими приложениями, экономия ресурсов компьютера за счет использования единожды созданного плана выполнения процедуры. Однако необходимо перечислить и недостатки DBS-модели:

  1. процедурные расширения SQL, которые применяются для написания хранимых процедур, встроены в конкретные СУБД и имеют ограниченные возможности. Поэтому система не является мобильной относительно СУБД. Отсутствие в СУБД возможностей отладки и тестирования, а также хранимых процедур может привести к сбою, а зачастую к полной неработоспособности всей БД; [9]
  2. не предусмотрены варианты взаимодействия клиента и сервера для децентрализации приложений, например, хранимые очереди, асинхронные вызовы и др.;
  3. DBS-модель не обеспечивает требуемой эффективности использования вычислительных ресурсов. Ограничения в ядре СУБД не позволяют организовать полноценный эффективный баланс загрузки, перенос процедур на другие серверы БД. [11]

Модель сервера приложений (AS) (Рисунок 5) — сетевая архитектура, которая представляет собой процесс, выполняемый на клиенте и отвечающий за ввод и отображение данных пользователем. Основной элемент модели AS-сервер приложения на удаленном компьютере (или нескольких компьютерах), который представляет собой группу сервисов (служб). [3, с. 113; 2, с. 238]

https://works.doklad.ru/images/b_WBz8swNHk/m28d92711.jpg

Рисунок 5 - Модель сервера приложений

В сети может быть несколько серверов приложений, в этом случае каждый из них предоставляет определенный перечень услуг. Каждая программа, которая пользуется данными услугами, считается клиентом приложения. Клиент обращается с запросом к конкретной службе, серверы приложений обезличены и служат для создания графического интерфейса с пользователем. Запросы клиента выстраиваются в очередь к AS-процессу, который извлекает и передает их службе в соответствии с приоритетами.

Доступ к информационным ресурсам, необходимым для решения прикладных задач, обеспечивает, как и в RDA-модели, менеджер ресурсов, к примеру, SQL-сервер. [12]

Из прикладных компонентов доступны базы данных, очереди, почтовые службы и др. Серверы приложений выполняются, как правило, на том же компьютере, где работает менеджер ресурсов, поэтому нет необходимости в направлении SQL-запросов по сети, что повышает производительность системы.

AS-модель является универсальной системой, в которой может быть неограниченное количество уровней, взаимодействующих между собой. Она отличается четким разграничением логических компонентов, возможностью баланса загрузки между несколькими серверами, рациональным выбором программных средств для их реализации, что обеспечивает такой уровень гибкости, защиты данных и открытости, который недостижим в моделях RDA и DBS. Система может работать по медленным линиям связи, что позволяет снизить трафик между клиентом и сервером приложений. [3, с. 103]

В AS-модели реализована трехзвенная схема разделения функций, в которой прикладной компонент выделен, как важнейший изолированный элемент приложения, имеющий стандартизированные интерфейсы с двумя другими компонентами. [11]

Сравнительный анализ моделей технологий «Файловый сервер» и «Клиент-сервер» представлены в таблице в Приложении 2.

Технология «Клиент-сервер» также является системой распределенных вычислений, в которой участвуют несколько серверов. Распределенные вычисления являются одной из разновидностей системы «Клиент-сервер», поэтому пользователи получают все те преимущества, к примеру, рост общей пропускной способности и возможность многозадачной работы.

Так как обработка осуществляется в любом месте сети, распределенные вычисления в архитектуре «Клиент-сервер» дают гарантию эффективного масштабирования [1, с. 155].

Для того чтобы достичь баланса между клиентом и сервером, компонент приложения должен выполняться на сервере только в том случае, если более эффективной будет именно централизованная обработка. Если логика программы, взаимодействующей с централизованными данными, находится на одной машине с данными, нет необходимости передавать их по сети, и требования к сетевой среде могут быть снижены.

Выводы по главе 1:

  1. Двухуровневая архитектура значительно уступает многоуровневой технологии, которая используется в настоящее время. Различаются три модификации многоуровневой архитектуры «Клиент-сервер» — RDA, DBS и AS.
  2. В основе моделей RDA и DBS лежит двухзвенная схема разделения функций. В RDA-модели прикладные функции выполняются клиентом, в DBS-модели — ядром СУБД. В RDA-модели прикладной компонент сливается с компонентом представления, в DBS-модели интегрируется в компонент доступа к ресурсам.
  3. Если требуется работа небольших информационных систем, не требующая графического интерфейса с пользователем, можно выбрать FS-модель. Проблема графического интерфейса решается путем применения RDA-модели. DBS-модель хорошо подходит для СУБД. AS-модель — лучший вариант для разработки крупных информационных систем и при использовании низкоскоростных каналов связи.

ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ и организация работы СУБД В архитектуре «Клиент-Сервер»

Программное обеспечение технологии «Клиент-сервер»

Архитектура «Клиент-сервер» подразумевает, что компьютеры-серверы должны быть мощнее компьютеров-клиентов, поскольку выполняют более ответственные задачи, такие как администрирование, исполнение одновременно большого количества запросов, организация защиты информации и др. Для организации сети по технологии «Клиент-сервер» необходимо использовать соответствующее ПО, в которое входит клиентская и серверная часть. [7, с. 136]

ПО, которое устанавливается на сервер для управления базой данных, реагирует на запросы клиентов и производит поиск информации, а затем возвращает результат поиска.

Обработка данных на сервере состоит из сортировки, извлечения запрошенной информации и ее направление в адрес пользователя. Кроме того, ПО сервера выполняет обновление, удаление, добавление, защиту информации и др. [5, с. 218]

Также на сервере размещаются хранимые процедуры, которые помогают в процессе обработки данных за счет, уменьшения длины кода и используемого дискового пространства на клиентах. Одна хранимая процедура может вызываться неограниченным количеством клиентов, и ее нет необходимости включать в код каждой программы. Также хранимые процедуры способствуют уменьшению сетевого трафика, поскольку единственное обращение клиента вызывает выполнение серии команд хранимой процедуры, т.е. нет необходимости выполнять каждую из команд по отдельному запросу. [11]

Одновременно с этим производится контроль безопасности для предотвращения несанкционированного запуска пользователем некоторых процедур.

Возможности модели «Клиент-сервер» дополняются инструментальными средствами, приложениями и утилитами для интерфейсной части. Они включают в себя средства запросов, упрощающие доступ к данным сервера за счет использования предопределенных запросов и встроенных возможностей создания отчетов, пользовательских приложений. Другие приложения, к примеру, Microsoft Access, располагают своим собственным SQL для обеспечения доступа к управлению базами данных от различных разработчиков. [12]

Для реализации системы «Клиент-сервер» требуются специально созданные части интерфейса, и средства разработки программ, а такие программы как Microsoft Visual Basic значительно упрощают для разработчиков и администраторов написание приложений, предназначенных для доступа к серверам БД.

Если используется ОС Windows, на сервере зачастую устанавливается комплекс программ MS BackOffice. В его состав входят:

  1. сетевая ОС Windows Server;
  2. System Management Server — система сетевого администрирования;
  3. SQL Server — сервер управления БД;
  4. сервер, устанавливающий соединения с хост-компьютерами SNA Server;
  5. сервер системы email Exchange Server;
  6. Internet Information Server для работы с Internet. [5, с. 226]

Процессы разработки и развертывания программного обеспечения архитектуры клиент-сервер, значительно опередили процессы стандартизации распределенных вычислений во всех аспектах и физического, и прикладного уровня. Отсутствуют стандарты, что затрудняет создание интегрированной конфигурации из устройств разных разработчиков.

Основные достоинства архитектуры «Клиент-сервер» — ее модульность и возможность объединения различных платформ и приложений, поэтому необходимо решить вопросы совместимости этих платформ и приложений. Для этого у разработчиков должен быть набор инструментальных средств, которые обеспечивают единый стиль доступа к системным ресурсам на всех платформах. Это позволяет разработчикам программировать приложения с одинаковым интерфейсом на различных ПК, которые являются и серверами и рабочими станциями, и применяют одинаковый метод доступа к данным независимо от их расположения. [11]

Эти требования можно удовлетворить путем использования стандартных интерфейсов и протоколов между приложениями и коммуникационным ПО, с одной стороны, и операционной системой с другой. Данные интерфейсы и протоколы называются промежуточным программным обеспечением. Стандартные программные интерфейсы облегчают установку и использование одного и того же приложения на серверах и рабочих станциях различных конфигураций. Стандартизованные протоколы позволяют взаимодействовать различным серверным интерфейсам с клиентами. [12]

Существуют разные по сложности пакеты промежуточного программного обеспечения. Производители клиентов и серверов, как правило, предлагают на выбор ряд популярных пакетов промежуточного программного обеспечения, чтобы пользователь мог сначала выбрать определенную стратегию развертывания промежуточного ПО, а затем приобрести оборудование от разных разработчиков, которое поддерживает данную стратегию. На рисунке 6 представлен вариант применения промежуточного ПО в архитектуре «Клиент-сервер». [11]

Точная роль промежуточного программного обеспечения зависит от вычислительной модели клиент-сервер. Существует несколько классов приложений клиент-сервер, которые зависят от способа разделения функций приложения. Промежуточное ПО включает в себя клиентский и серверный компонент.

Рисунок 6 ― Пример применения промежуточного ПО в архитектуре «Клиент-сервер»

Основное назначение промежуточного ПО — обеспечение доступа приложения или пользователя к услугам, которые предоставляются на серверах, таким образом, чтобы различие серверов не мешало их работе. [1, с. 188]

Как уже говорилось ранее, стандартным средством доступа к реляционной базе данных для локальных и удаленных пользователей или приложений является язык структурированных запросов (SQL). Кроме того, многие производители реляционных БД добавляют к нему свои собственные расширения.

Организация обработки данных в СУБД с архитектурой «Клиент-сервер»

Существуют различные классификации баз данных, к примеру, по степени изменчивости они делятся на условно-постоянные, которые (такие БД используются в основном для справочных систем) и сильно динамичные (используются, к примеру, в банковских системах).

Термин «сервер баз данных» чаше всего используется для обозначения в целом СУБД, которая основана на архитектуре «Клиент-сервер», т.е. и серверной, и клиентской части. Такие СУБД используются для хранения и организации доступа к базам данных. [7, с. 169]

Ведение БД осуществляется системами управления базами данных, которые значительно отличаются друг от друга и по возможностям в плане функционала, и по эксплуатационным характеристикам. [11]

В большинстве случаев одна база данных полностью находится в одном узле сети и обслуживается одним сервером, однако серверы БД являются простым и недорогим эквивалентом распределенных баз данных, т.к. общая база данных является доступной для каждого пользователя в локальной сети.

К примеру, для БД с условно-постоянными данными к важнейшим характеристикам относятся скорость обработки запросов и скорость создания выходных отчетов по БД, а показатель скорости обработки транзакций и контроль целостности БД при обработке транзакций не столь критичны. А для БД с динамичными данными, в которые постоянно вносятся изменения, важнейшими показателями будут показатель скорости обработки транзакций, возможность контроля целостности, скорость формирования отчетов, синхронность по чтению и транзакциям. Скорость обработки запросов будет менее важна. Поэтому различные СУБД должны применяться для работы с БД разных классов. [8, с. 54]

Поскольку, как было отмечено ранее, основным интерфейсом между клиентской и серверной частями является язык запросов баз данных SQL. Совокупное понятие SQL-сервер имеет отношение ко всем серверам баз данных, которые основаны на SQL. Они имеют свои недостатки и преимущества. С одной стороны, плюсов является стандартный интерфейс, с другой — минусом является то, что такой высокий уровень интерфейса между клиентской и серверной частями системы на клиентской стороне поддерживает очень ограниченное количество программ СУБД. Это нормально в том случае, когда на стороне клиента установлена маломощная рабочая станция. Но если клиентский ПК обладает достаточной мощностью, возникает желание перенести на него больше функций управления БД и тем самым разгрузить сервер, являющийся узким местом всей системы. Перспективным является направление гибкого конфигурирования системы, когда распределение функционала между клиентской и пользовательской частями СУБД фиксируется в процессе установки системы. [12]

Одним из основных механизмов в организации обработки данных в СУБД, независимо от архитектуры, является механизм транзакций. [2, с. 311]

Архитектура «Клиент-сервер» в этом плане не является исключением. Транзакция — это последовательность операций над данными, которая выполняется, как целостный неделимый блок. Завершенной транзакция считается только в том случае, если все операции, которые в нее входят, выполнены успешно. Если возникает ошибка в какой-либо из операций, входящей в состав транзакции, последняя является незавершенной и происходит откат транзакции, т.е. возвращение данных к тому состоянию, в котором они находились до начала транзакции. В случае, когда все операции, которые входят в состав транзакции, успешно выполнены, происходит процесс фиксирования транзакции. [2, с. 316]

Механизм поддержки транзакций крайне важен. В качестве примера можно привести перечисление денег между счетами клиентов банка. В данном случае в транзакцию входит множество операций, начиная с перечисления денег и заканчивая их получением другим клиентом. При возникновении сбоя в какой-либо операции, составляющей транзакцию, процесс перечисления средств будет нарушен, и они останутся у отправителя. [11]

Транзакция является также способом координации последовательных изменений ресурса либо их совокупности. В большинстве случаев такая координация осуществляется централизованным механизмом - менеджером транзакций. Это программа или совокупность программ, с помощью которых согласовывается работа различных составляющих информационной системы. [5, с. 329]

Логически менеджер транзакций состоит из нескольких частей:

  1. коммуникационный менеджер, который обеспечивает контроль обмена сообщениями между составляющими информационной системы;
  2. менеджер авторизации, который выполняет функцию обеспечения аутентификации пользователей и проверки прав их доступа;
  3. менеджер транзакций, функцией которого является управление распределенными операциями;
  4. менеджер ведения журнальных записей, контролирующий восстановление и откат транзакций;
  5. менеджер блокировок, задачей которого является обеспечение правильного доступа к совместно используемым данным. [5, с. 336]

В большинстве случаев коммуникационный менеджер объединяется с авторизационным, а работа менеджера транзакций происходит совместно с работой менеджеров блокировок и системных записей. Первые менеджеры транзакций появились еще в начале 70-х гг. прошлого века в технологии «Файловый сервер». С появлением архитектуры «Клиент-сервер» в них произошли серьезные технологические изменения.

Если информационная система состоит из достаточно большого количества разнообразных информационных ресурсов и серверов приложений, требуется решить задачу оптимального управления всеми ее компонентами, для чего применяются мониторы обработки транзакций. [11]

Они представляют собой программные системы, которые эффективно управляют информационно-вычислительными ресурсами в распределенной системе. Это гибкая, открытая среда, в которой происходит разработка и управление мобильными приложениями, ориентированными на оперативную обработку распределенных транзакций. В основном мониторы транзакций характеризуются поддержкой функциональной полноты, масштабируемостью и целостностиью приложений, максимальной производительностью процесса обработки данных, невысокой стоимостью, поддержкой целостности данных в гетерогенной среде, позволяющей хранить данные в различных форматах. [12]

По сути своей, мониторы транзакций ― это программная прослойка между приложением и СУБД, поэтому их наличие упрощает процесс разработки банковских, бухгалтерских или складских СУБД. Вначале разработчиком создается достаточно функциональная однопользовательская программная версия, в которой параллельно решаются задачи производительности и логики. За счет использования мониторов транзакций эти задачи выносятся на уровень администратора системы, а приложение необходимо модифицировать таким образом, чтобы оно выдавать транзакции на языке монитора транзакций, вместо того, чтобы обращаться прямо к базе данных через обычные механизмы.

Основные характеристики мониторов транзакций:

  1. гибкость доступа к данным, т.к. их использование не несет практически никаких ограничений на многообразие или сложность запросов доступа к СУБД;
  2. производительность, что объясняется тем, что монитор транзакций является многопоточным приложением, которое одновременно открывает собственное соединение с СУБД и устраняет необходимость выполнять такое соединение прикладными процессами напрямую. [11]

За счет этого сокращается количество пользователей, формирующих запросы к СУБД в каждый момент времени, что особенно важно для СУБД с реализацией «Один к одному», где для каждого клиента на сервере формируется отдельный процесс (Приложение 3).

Таким образом, для работы каждого клиентского приложения выполняются процессы — по одному на сервере и клиентской системе. [9, с. 88]

Мониторы транзакций применяются для снижения дополнительных расходов на организацию управления большим количеством процессов. Обычно они предполагают наличие одного кластера из нескольких процессов (от одного до пяти), которые работают на серверной системе. Сами процессы располагают внутренней многопотоковой организацией, чем обеспечивается обслуживание запросов большого количества клиентов.

TP-мониторы позволяют также добиться лучшей производительности путем сокращения общего объема пересылки данных между СУБД и прикладным процессом. [7, с. 113]

Это достигается за счет некоторой части каждой транзакции, которая включает в себя минимально требуемые данные. Это особенно важно, когда сеть сильно загружена, или при низкой полосе пропускания, а также в глобальных сетях, к примеру, спутниковый Internet. [5, с. 122]

В качестве примера монитора транзакций можно привести Microsoft Transaction Server (MTS). Данная разработка поддерживает обработку транзакций, служб масштабирования, управления подключениями и администрирования, позволяющих создавать и развертывать масштабируемые серверные приложения. При этом управление транзакциями становится прозрачным для разработчика компонентов. [11]

Кроме всего перечисленного, современные мониторы транзакций позволяют разрабатывать функционально сложные, распределенные, разнородные и сохраняющие свою жизнеспособность в течение долгого времени приложения.

Выводы:

  1. Для организации сети по технологии «Клиент-сервер» необходимо использовать соответствующее ПО, в которое входит клиентская и серверная часть. На сервере происходит сортировка, извлечение запрошенной информации и ее направление в адрес пользователя, а также обновление, удаление, добавление, защиту информации, а также хранимые процедуры. На стороне клиента размешаются средства запросов и создания отчетов.
  2. Одним из основных механизмов в организации обработки данных в СУБД является механизм транзакций, т.е. последовательностей операций над данными, которые выполняются целостным неделимым блоком. Транзакции координируются централизованным менеджером транзакций.
  3. Для оптимального управления всеми компонентами системы применяются мониторы обработки транзакций.

Применение технологии «Клиент-сервер» в глобальной сети Internet и корпоративных сетях Intranet

По своей сути, архитектура Internet не что иное, как архитектура «Клиент-сервер», поскольку пользователь работает с браузером, который является программой - клиентом (Internet Explorer, Google Chrome и др.). Браузер обращается с запросом к web-серверам, обслуживающим одновременно десятки сотен и сотни запросов от клиентов со всего мира.

Компьютеры-серверы постоянно соединены с глобальной сетью и предоставляют пользователям различные сервисы (например, отправка почты, загрузка и скачивание файлов и т.д.). [4, с. 128]

Web-серверы защищены от сбоев электропитания и работают обычно под одной из модификаций ОС UNIX. Клиентами являются ПК с установленными на них браузерами, которые подключены к глобальной сети не постоянно, а лишь по мере необходимости.

В качестве примеров программ-серверов можно привести DNS-сервер (для ответов на DNS-запросы по соответствующему протоколу), ftp-сервер (для передачи файлов), сервер приложений (для удаленной работы с приложениями), сервер электронной почты и др. [10, с. 314].

Общая схема организации сети Internet с применением технологии «Клиент-сервер» приведена в Приложении 4.

Существует большое количество технологий и языков программирования для разработки Internet – приложений для серверной и клиентской части. В последние годы стала широко применяться технология Java, которая дает возможность создавать универсальные системы со смешанной архитектурой. Приложения, которые работают на клиентской стороне, называются апплетами (applets), на серверной ― сервлетами (servlets). [6, с. 191]

Достаточно большой популярностью также пользуется Flash-технология, с помощью которой создаются медиа-насыщенные интерактивные ресурсы, рабочая нагрузка в основном при этом ложится на ПК пользователя.

Все программы, которые передаются с сервера на клиентские ПК и запускаются на выполнение, должны отвечать одному важному требованию: они не должны иметь возможности использовать ресурсы компьютера, на котором они выполняются. Такое требование вполне обосновано тем, что Java-апплеты и JavaScript-сценарии передаются по сети и запускаются автоматически без участия пользователя, поэтому работа этих приложений должна быть абсолютно безопасной для ПК. Иначе говоря, языки, на которых создаются приложения, выполняющиеся на клиентах, должны быть непригодны для написания вирусного и шпионского ПО. [6, с. 214]

Технология «Клиент-сервер» для Internet организована следующим образом:

    1. клиентом формируются и посылаются запросы на сервер;
    2. на сервере производятся необходимые действия с данными, формируется результат и передаётся его клиенту;
    3. полученный клиентом результат отображается на его устройстве вывода и ждет дальнейших действий пользователя. [4, с. 200]

Цикл повторяется до тех пор, пока пользователь не закончит работу с сервером.

В сервисе WWW передача информации происходит посредством протокола НТТР, при этом взаимодействие с сервером происходит через механизм URL [10, с. 351].

Схема передачи информации по протоколу НТТР включает в себя следующие этапы (Приложение 4):

  1. браузер преобразует доменное имя из URL в IP-адрес и устанавливает соединение с сервером, затем передает оставшуюся часть URL на сервер;
  2. сервер определяет путь и имя файла по URL, при необходимости динамически его формирует его динамически, затем пересылает файл браузеру и разрывает соединение;
  3. браузер отображает документ.

Для получения информации из любых баз данных в сети Internet служит интерфейс CGI (Common Gateway Interface), который позволяет формировать SQL-запросы. Также можно реализовать счетчики посещений, гостевые книги и т.п. [10, с. 360]

Для реализации CGI используются скрипты на языках программирования высокого уровня (С++, Perl, VisualBasic, Pascal, Java и др.). В последнее время также широко используется интерфейс создания веб-приложений Internet Server Application Programming Interface (ISAPI). Он дает возможность разработчикам создавать веб-приложения, способные работать с большей скоростью, чем программы CGI, т.к. они обладают более тесной интеграцией с веб-серверами. При помощи ISAPI Internet connector происходит взаимодействие с базами данных (SQL Server, Oracle, Access, и др.) посредством драйверов Open Database Connectivity (ODBC). [4, с. 183]

Также в клиент-серверной технологии сети Internet используется технология Server Sides Includes (SSI/SSI+), которая служит для динамического формирования документов, в том числе и для работы с БД. Скрипт содержится в HTML-файле, который при пересылке сканируется сервером на наличие SSI-инструкций и результат динамически подставляется в посылаемый документ. [6, с. 245]

SSI реализуется через входящие в состав браузера динамические библиотеки. Аналогичен принцип работы со скриптами на языке PHP.

Схожа по технике формирования динамических страниц технология Active Server Pages (ASP) от компании Microsoft, основой которой является использование объектов и компонент COM, ActiveX и т.п. Работа с перечисленными компонентами осуществляется средствами языков VBScript или JavaScript.

С целью реализации всех достоинств глобальной сети, но в пределах сети организации и с обеспечением секретности внутренней информации компании, была разработана концепция сети Intranet — частная компьютерная сеть, которая является внутренней web-системой в пределах одной организации. В Intranet используются те же стандарты и протоколы, что и в глобальной сети Internet. Схема реализации сети Intranet, основанная на архитектуре «Клиент-сервер» представлена в Приложении 5.

Клиент и сервер взаимодействуют обычно по локальной сети, где есть выход в Internet через брандмауэр (firewall) ― ПК с установленным на нем специальном ПО. Это дает возможность идентифицировать любого входящего извне пользователя и запретить или разрешить ему доступ; провести аудит и протоколирование вхождений, криптографическое шифрование секретной информации и экранирование, т.е. одностороннюю передачу данных. [4, с. 204]

Основные функции Intranet включают в себя корпоративную электронную почту, совместное использование файлов, каталогизацию, кроссплатформенную совместимость, поиск и управление сетью. Эти функции дают возможность компании сформировать единое информационное пространство, внутри которого пользователи могут находиться не только на разных этажах здания, но и в различных регионах и даже странах.

Основные достоинства Intranet:

  1. универсальность, т.к. технологии Intranet дает возможность поддерживать единый документооборот в организации;
  2. прозрачная интеграция, поскольку открытые стандарты Web, позволяют легко интегрироваться в уже существующую гетерогенную среду и при этом сохранять затраты на аппаратное обеспечение; [10, с. 402]
  3. гибкость, поскольку использование браузера, как средства доступа к корпоративной сети, позволяет получить единый инструмент для работы с базами данных, приложениями и другими службами;
  4. ценовая эффективность, т.к. затраты при использовании Intranet Web-технологии достаточно низкие, например, за счет Web-приложений для работы с базами данных, которые используют Web-браузер как единый интерфейс, можно существенно снизить стоимость разработки и сопровождения программного обеспечения клиентской части;
  5. безопасность, поскольку технология «Клиент-сервер» дает возможность построить Intranet-сеть той степени защищенности, которая необходима;
  6. высокая производительность, поскольку одним из основополагающих принципов построения Intranet является наращиваемость. [10, с. 402]

Как любая другая технология, Intranet имеет свои недостатки:

  1. легкий доступ к корпоративным данным может спровоцировать их утечку к конкурентам через недобросовестных сотрудников;
  2. работоспособность и гибкость Intranet требуют значительных накладных расходов на разработку и администрирование;
  3. как и любая другая сеть, Intranet может быть взломан и использован в корыстных целях. [6, с. 818]

Выводы по главе 3:

        1. Архитектура «Клиент-сервер» лежит в основе всемирной сети Internet, поскольку пользователь работает с браузером, который является программой - клиентом и обращается с запросом к web-серверам.
        2. Сеть Intranet, которая является внутренней web-системой в пределах одной организации, также построена на принципах технологии «Клиент-сервер» и используются те же стандарты и протоколы, что и в глобальной сети Internet.

Заключение

По результатам проведенного исследования можно сделать ряд выводов:

  1. В настоящее время широко используются три основные многоуровневые модели технологии «Клинет-сервер» — RDA, DBS и AS.
  2. Основой моделей RDA и DBS является двухзвенная схема разделения функций. В RDA-модели прикладные функции выполняются на стороне клиента, а в DBS-модели за их выполнение отвечает ядро СУБД. В RDA-модели прикладной компонент объединен с компонентом представления, в DBS-модели он является частью компонента доступа к ресурсам.
  3. Если для организации сети требуется наличие графического интерфейса, лучшим решением будет RDA-модели. DBS-модель хорошо подходит для СУБД. AS-модель является лучшим вариантом для разработки крупных информационных систем и в случае, когда в распоряжении разработчика имеются только низкоскоростные каналы связи.
  4. Программное обеспечение, применяемое для организации сети в технологии «Клиент-сервер», состоит из клиентской и серверной частей. Серверная часть отвечает за сортировку, извлечение запрошенной информации и ее направление в адрес пользователя, обновление, удаление, добавление, защиту информации, а также хранимые процедуры. Клиентская часть отвечает за формирование запросов и создание отчетов.
  5. Основополагающим механизмом в организации обработки данных в СУБД является механизм транзакций, которые представляют собой набор операций над данными, которые выполняются целостным неделимым блоком. За координацию транзакций отвечает централизованный менеджер транзакций.
  6. Оптимальное управление всеми компонентами системы осуществляется с помощью мониторов обработки транзакций.
  7. Архитектура «Клиент-сервер» является основой всемирной сети Internet, поскольку работа пользователя происходит через браузер, который является программой-клиентом и обращается с запросом к web-серверам.
  8. Сети Intranet, которая являются внутренними web-системами в масштабах одной организации, также построены на принципах технологии «Клиент-сервер» и используют те же стандарты и протоколы, что и в глобальной сети Internet.

Архитектура «Клиент-сервер», являясь основной технологией построения сетей в настоящее время, может иметь и перспективы развития, благодаря появлению новых моделей и совершенствованию программного обеспечения.

Список использованных источников

  1. Анатольев А.Г. Сетевые технологии. Программное обеспечение компьютерных сетей /А.Г. Анатольев. — Омск: ОмГТУ, 2012. — 217 с.
  2. Барфилд Э. Программирование клиент-сервер в локальных вычислительных сетях / Э. Барфилд, Б. Уолтерс. — М.: Информационно-издательский дом «Филинъ», 2017. — 424 с.
  3. Зафиевский А.В., Короткин А.А., Лататуев А.Н. Базы данных /А.В. Зафиевский, А.А. Короткин, А.Н. Лататуев. — Ярославль: Яросл. гос. ун-т им. П. Г. Демидова (ЯрГУ), 2012. – 164с.
  4. Ибе О. Компьютерные сети и службы удаленного доступа / О. Ибе. — М.: Книга по Требованию, 2017. — 334 c.
  5. Молчанов А.Ю. Системное программное обеспечение: Учебник для вузов. 3-е изд. /А.Ю. Молчанов. — СПб.: Питер, 2014. — 464 с.
  6. Олифер В. Компьютерные сети / В. Олифер, Н. Олифер. — СПб.: Питер, 2016. — 996 с.
  7. Радченко Г.И. Распределенные вычислительные системы /Г.И. Радченко. — Челябинск, Фотохудожник, 2012. — 184 с.
  8. Рудалев B.Г.Клиент-серверные приложения баз данных. Учебное пособие для вузов /В.Г. Рудалев, С.С. Пронин. — Воронеж: Издательско-полиграфический центр Воронежского государственного университета, 2014. — 82 с.
  9. Семёнова И.И. Разработка клиент-серверных приложений с использованием технологий Oracle /И.И. Семенова. — Учебно-методическое пособие. ― Омск: Изд-во СибАДИ, 2015. — 108 с.
  10. Таненбаум Э. Компьютерные сети / Э. Таненбаум, Д. Уэзеролл. — СПб.: Питер, 2016. — 612 с.
  11. Архитектура клиент-сервер. URL: http://portal.tpu.ru:7777/SHARED/f/FAS/study/avis/lectures/cli-se.pdf (дата обращения 28.03.2019)
  12. Компоненты сетевого приложения. Клиент-серверное взаимодействие и роли серверов. URL: http://www.4stud.info/networking/lecture5.html (дата обращения 01.04.2019)

Приложение 1

Архитектура «Тонкий клиент» и «Толстый клиент»

https://works.doklad.ru/images/b_WBz8swNHk/m12463294.jpg

Рисунок 7 ― Архитектура «Тонкий клиент»

https://works.doklad.ru/images/b_WBz8swNHk/m1d9108f9.jpg

Рисунок 8 ― Архитектура «Толстый клиент»

Приложение 2

Сравнение моделей технологий «Файловый сервер» и «Клиент–сервер»

Критерии

«Файловый сервер»

«Клиент-сервер»

FS - модель

RDA-модель

DBS-модель

AS-модель

Сложность разработки приложений

Низкая

Низкая

Высокая

Высокая

Сложность администрирования

Низкая

Высокая

Высокая

Высокая

Степень защиты данных

Высокая

Низкая

Высокая

Высокая

Требования к характеристикам сервера

Высокие

Низкие

Высокие

Высокие

Трафик, создаваемый в сети

Низкий

Очень высокий

Низкий

Низкий

Сложность обновления ПО

Низкая

Высокая

Низкая

Низкая

Требования к характеристикам сети

Низкие

Очень высокие

Низкие

Низкие

Распределение загрузки

Нет

Есть

Есть

Есть

Требования к характеристикам рабочих станций

-

Очень высокие

Низкие

Низкие

Использование графического интерфейса

-

+

+

+

Использование символьного интерфейса

+

+

+

+

Приложение 3

Конфигурация СУБД с архитектурой «Клиент-сервер» для работы с мониторами обработки транзакций

https://works.doklad.ru/images/b_WBz8swNHk/mfea5360.jpg

Приложение 4

Технология «Клиент-сервер» для Internet

https://works.doklad.ru/images/b_WBz8swNHk/m25186d8b.png

Схема работы по HTTP в архитектуре «Клиент-сервер» для Internet

https://works.doklad.ru/images/b_WBz8swNHk/m2fd59157.jpg

Приложение 5

Общая схема Intranet с архитектурой «Клиент-сервер»

https://works.doklad.ru/images/b_WBz8swNHk/m5e3f2bd3.jpg