Инструменты пользователя

Инструменты сайта


examination:rsubd:question21

Вопрос №21. Системы «Клиент-Сервер»

Введение

Системы «клиент/сервер» могут рассматриваться как частный случай распределенных систем. Точнее, система «клиент/сервер» – это распределенная система, в которой одни узлы – клиенты, а другие – серверы; все данные размещены на узлах, которые являются серверами; все приложения выполняются на узлах-клиентах и «швы видны пользователю» (полная локальная независимость не предоставляется).


Рис. 8. Система «клиент/сервер»

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

Термин «клиент/сервер» определяет архитектуру, или логическое разделение обязанностей. Клиент – это приложение, которое называют также интерфейсной частью (frontend), а сервер – прикладной частью (backend) или СУБД. Однако именно потому, что всю систему можно так четко разделить на две части, появилась возможность эксплуатации ее частей на разных компьютерах. И эта возможность по многим причинам оказалась настолько привлекательной, что под понятием система «клиент/сервер» на практике подразумевается исключительно тот случай, когда клиент и сервер действительно размещаются на разных компьютерах. Хотя это и несколько вольное использование термина, но оно широко распространено.

Возможны несколько вариантов основной схемы, которые описаны ниже.

  • Несколько клиентов могут совместно использовать один и тот же сервер (фактически это обычная практика).
  • Отдельный клиент может иметь доступ к нескольким серверам. Этот вариант, в свою очередь, подразделяется на два представленных ниже случая.
    • Клиент ограничен доступом за один раз лишь к одному серверу, т.е. каждый отдельный запрос к базе данных должен быть направлен только на один сервер. Невозможно в пределах одного запроса получить данные с двух или нескольких различных серверов. Более того, пользователь должен знать, на каком именно сервере хранятся те или иные части данных.
    • Клиент может иметь одновременный доступ к нескольким серверам, т.е. отдельный запрос может объединять данные с нескольких серверов. А это означает,

что несколько серверов представляются клиенту так, как будто это на самом деле один сервер. Пользователь не должен знать, какие части данных хранятся на каждом сервере.

Но во втором случае фактически описана система распределенной базы данных (швы оказываются скрытыми). Это не совсем то, что обычно подразумевают под термином «клиент/сервер».

examination/rsubd/question21.txt · Последние изменения: 2014/01/15 08:21 (внешнее изменение)