Двухуровневая модель клиент-серверной структуры
Архитектура клиент-сервер предусматривает разделение процессов хранения и обработки данных. Структурная схема двухуровневой модели архитектуры клиент-сервер
В этой системе используются, как минимум, два самостоятельных процесса (клиента и сервера), которые взаимодействуют друг с другом. В таком понимании те функции, которые в файл-серверной системе выполняют рабочие станции, разделены. Хранение и манипулирование данными осуществляет сервер базы данных. Формированием пользовательского интерфейса занимаются программы-клиенты.
Существует несколько типов архитектуры двухуровневых систем клиент-серверной технологии, предусматривающих распределение функций по обработке информации и решению задач между сервером баз данных и клиент-программой.
Аппаратно эта модель похожа на файл-серверную модель. В состав двухуровневой модели входят сервер базы данных и рабочие станции клиентов.
Cервер базы данных может выполнять следующие функции:
§ физическое хранение данных;
§ манипулирование данными (поиск, выборка, модификация и т.д.);
§ логическая и математическая обработка данных по запросу клиента.
Серверы баз данных могут обслуживать различные типы баз данных (централизованные и распределенные, одноуровневые и многоуровневые). В качестве сервера баз данных используются программные изделия Microsoft SQL Server, Oracle, Sybase и др.
Формирование пользовательского интерфейса, организацию ввода и вывода в заданном виде в данной модели осуществляет программа-клиент.
Она также может производить дополнительную обработку данных. Программа - клиент посылает на сервер баз данных запрос на представление данных на определенном языке. Примером такого языка и соответственно типом базы данных является язык SQL (structured query language) - язык структурированных запросов для реляционной базы данных соответствующего типа.
В свою очередь, программа-клиент может представлять собой сложный инструментарий и базироваться не только на одной машине, но и на локальной вычислительной сети и на "настольной" CУБД.
Таким образом, при использовании двухуровневой технологии клиент-сервер обработку информации осуществляют как серверные, так и клиeнтские программы. Поэтому в зависимости от распределения функций между сервером баз данных и клиент-программой такие технологии можно разделить на три вида:
-технология “тонкого” или “бедного” клиента;
-технология “толстого” или “богатого” клиента;
-комбинированная технология.
При использовании технологии “тонкого” клиента (thin) клиент-программа осуществляет только интерфейс с пользователем и интерфейс с сервером баз данных в следующей последовательности:
§ запуск программы;
§ ввод запроса и исходных данных на сервер баз данных;
§ прием от него результатов решения задачи;
§ выдачу результатов решения задачи пользователю.
Вся обработка информации и решение задачи производится на сервере баз данных. Этот вид технологии позволяет предъявлять минимальные требования к параметрам рабочих станций, выполняющих функции клиента, что позволяет сократить затраты на внедрение конкретных пользовательских затрат.
При использовании технологии “толстого” клиента (fat) клиент-программа производит:
§ интерфейсные процедуры c пользователем по запуску программы и вводу-выводу информации;
§ передачу запроса на сервер баз данных на поиск необходимых данных;
§ полную обработку информации по решению задачи.
Сервер баз данных осуществляет в данном случае:
§ хранение массивов информации;
§ прием запросов от клиент-программы на манипуляцию с данными;
§ поиск адреса информации в базах данных, запись, чтение и корректировку массива по указанному адресу;
§ формирование ответов на запросы и предоставление их клиент-программе.
При использовании технологии “толстого” клиента возникают следующие сложности:
- сложная логика клиентского места увеличивает требования к мощности используемых технических средств, которые увеличиваются при расширении области использования клиент-программы и переходу к новым сетевым средствам,
- большая нагрузка на сеть, т.к. по линиям связи передается больший объем данных, чем при тонком “клиенте”.
Кроме того, перенос логики выполнения бизнес-процессов на клиентские места значительно усложняет процесс синхронизации клиентских приложений между собой.
При комбинированной технологии функции по обработке информации распределяются между клиент-программой и сервером баз данных. Клиент-программа производит также интерфейс с пользователем. Манипулирование данными и частичное решение задач производится на сервере баз данных.
Во всех трех вариантах по каналам сети в этом случае передаются запросы к серверу базы данных и ответы на эти запросы. Соответственно нагрузка на каналы сети значительно ниже, чем при файл-серверной структуре, а их пропускная способность значительно выше, что позволяет обслуживать большее количество клиентов.
Наиболее простым примером двухуровневой клиент-серверной технологии является схема взаимосвязи между банкоматом (периферийной ПЭВМ банка) и центральной ЭВМ банка. Банкомат производит ввод данных со смарткарты и клавиатуры и после их проверки и обработки в машине банка осуществляет выдачу банкнот или чеков.