Теория и практика построения баз данных (1088289), страница 139
Текст из файла (страница 139)
Клиент-серверная архитектура Компьютер удаленной обработки ПП = прикладная программа 646 Глава 17. Совместное использование данных предприятия Системы удаленной обработки Классическим методом поддержки многопользовательской базы данных является удаленная обработка (ге1ергосезз'пя), прп которой используется один компьютер и один процессор. Вся обработка производится этим единственным компьютером. На рис. 17.1 показана типичн тя система удаленной обработки (ге!ергосеЫпд зузсетп). Пользователи работают с неинтеллектуальными (чглупымиь) терминалами (или с микрокомпьютерами, эмулирующими такие терминалы), которые передают сообгдения о транзакциях н данные центральному компьютеру. Часть операционной системы, отвечающая за управление связью, принимает сообщения и данные и передает их соответствующим прикладным программам.
Программы обращаются к СУБД, а СУБД выполняет операции с базой дшшых, используя ту часть операционной сцстемы, которая отвечает за обработку данных. Когда транзакция завершается, подсистема управления связью возвращает результаты пользователям, сидящим у терминалов. На рис. 17.1 показаны л пользователей, транзакции которых обрабатывают три различные прикладные программы. Поскольку на стороне пользователя интеллектуальные устройства присутствуют в ограниченной степени (имеются в виду, естественно, терлгиналзн), все команды форматирования вывода должны генерироваться процессором центральнога компьютера и передаваться по линии связи. Это означает, что пользовательский интерфейс имеет текстовую ориентацию и примитивен по своей сути.
Системы, подобные этой, называются системами удаленной обработки, поскольку связь между всеми входами и выходами осуществляется через находящийся на расстоянии центральный компьютер, ведущий обработку. ОС„, = часть операционной системы, отвечающая за управление коммуникацией ОС,д = часть операционной системы, отвечающая за управление данными Рмс. 17.1. Связи между программами е системе удаленной обработки данных Архитектуры организационных систем обработки данных 647 Исторически системы удаленной обработки были наиболее распространенной альтернативой многопользовательским системам баз данных.
Но по мере уменьшения соотношения цены и производительности для компьютеров и, в частности, с появлением персональных компьютеров, они были вытеснены другими системами, состояьчими более чем из одного компьютера. Клиент-серверные системы На рис. 17.2 изображена схема одной из таких систем, которая носит название клиент-серверной гистемы (сйепг-зегтег зузгещ). В отличие от системы удаленной обработки, в которой имеется только один компьютер, клиент-серверная система состоит из множества компьютеров, объединенных а сеть. Одни компьютеры, называемые клиентами (с!1епгз), занимаются обработкой прикладных программ. Другие компьютеры, называемые серверами (зегуегз), занимаются обработкой базы данных. ОС„д = часть операционной системы, отвечающая за управление данными На рис.
17.2 показан пример, в котором каждый из и пользователей имеет свой клиентский компьютер, обрабатывающий приложения, — пользователь 0зег1 обрабатывает на компьютере Сйел11 приложения АР1 и АР2, пользователь 0зег2 обрабатывает приложение АР2 на компьютере Сйеп12, а пользователь 0зег1т' обрабатывает приложения АР2 и АРЗ на компьютере Сйепгй. Второй компьютер— это сервер базы данных.
Тип компьютеров может быть совершенно разным. Теоретически, в роли клиентских компьютеров могут выступать большие ЭВМ или микрокомпьютеры. Пользователь 1 Пользователь 2 сервера Пользователь и ной системы, ю отвечающая за сетевую коммуникаци ОС„= часть операционной системы, отвечающая за управление данными 5ЕСЕСТ МАМЕ. Я008Е55 ГМОМ С0510МЕ8 ЫМЕКЕ 7!8=98033 646 Глава 17. Совместное использование данных предприятия Однако из соображений стоимости функции клиентов почти всегда выполняют микрокомпьютеры.
Точно так же в роли сервера может выступать компьютер любого типа, но по экономическим причинам функции сервера чапее всего выполняет микрокомпьютер. Клиенты и серверы соединяются в локальную (ЕА!к!) или глобальную (ЪЧА)ч) сеть. Хотя редко случается, чтобы в качестве клиентских машин использовалось что-либо иное, кроме микрокомпьютеров, роль сервера иногда выполняется болыпой ЭВМ, особенно когда сервер должен иметь болыную вычислительную мощность или когда из соображений безопасности и для большего контроля за базой данных размещение ее на микрокомпьютере представляется неуместным.
Система на рис. 17.2 имеет один сервер, хотя это не всегда так. Различные серверы могут обрабатывать различные базы данных илп предоставлять клиентам другие услуги. Напрт1мер, в фирме, занимающейся инженерными разработками, один сервер может обрабатывать базу данных, а на другом могут работать системы автоматического проектирования.
Если обработкой базы данных занимаются несколько серверов, то чтобы такая система могла считаться клиент-серверной, каждый из серверов должен обрабатывать свою базу данных. Если же два сервера обрабатывают одну базу данных, такая система уже не может претендовать на название клиент-серверной, а назвать ее следует системой распределенной обработки базы данных. Системы совместного использования файлов Вторая многопользовательская архитектура представлена на рис. 17.3.
В этой архитектуре, которая носит название архитектуры с совжестпыж испвльэоваииеж файлов (Т!1е-з1таг!пя), на пользовательских компьютерах находятся не только прикладные программы, но и СУБД. В этом случае сервер является файловым сервером, а не сервером базы данных. Почти во всех системах с совместным использованием файлов применяются локальные сети из микрокомпьютеров. Архитектура с совместным использованием файлов была разработана до клиент-серверной архитектуры и во многих отношениях является более примитивной. При совместном использовании файлов СУБД каждого пользовательского компьютера посылает запросы на обработку файлов подсистеме обработки данных операционной системы файлового сервера.
Это означает, что при такой архитектуре график в локальной сети гораздо больше, чем при клиент-серверной архитектуре. Рассмотрим, например, запрос, возврашаю~пий столбцы Магпе и АеЫгеээ всех строк таблицы СО5ТОМЕй, где столбец Лр имеет значение 98033. В клиент-серверной системе прикладная программа послала бы следующую 5ЯЕ;команду: Сервер возвратил бы столбцы Маппе и Аоогеьа всех строк, удовлетворяющих критерию отбора. Архитектуры организационных систем обработки данных 649 Рис.
17.3. Архитектура с совместным использованием файлов В системе с совместным использованием файлов СУБД находится на локальном компьютере, поэтому программы на файловом сервере не способны обработать 5(11:запрос. Подобная обработка должна происходить на пользовательском компьютере, поэтому СУБД вынуждена запрашивать у файлового сервера всю таблицу СО5ТОМЕЙ целиком. Если эта таблица имеет индексы или другие связанные с ней избыточные данные, они также должны быть переданы клиенту. Ясно, что при совместном использовании файлов по локальной сети передаются гораздо большие объемы данных. Из-за этих проблем системы с совместным использованием файлов редко используются для обработки больших объемов данных, которая ориентирована на транзакции.
Слишком много данных необходимо блокировать и передавать для выполнения каждой транзакции, и производительность такой архитектуры оказывается слишком низкой. Однако для этой архитектуры все же есть одно применение: запрос данных, загруженных из базы. Если одному или нескольким пользователям требуется доступ к большим фрагментам базы данных для составления отчетов или ответов на запросы, то, возможно, имеет смысл поставить сервер, загружающий большие порции данных. При этом загруженные данные не обновляются и не возвращаются в базу данных.
Примеры обработки загруженных данных мы будем рассматривать далее в этой главе. Системы с совместным использованием файлов имеют также приложения, не связанные с базами данных. В качестве примера можно привести системы, где требуется хранить большие файлы (звук, графику и анимацию) на высокоскоростных дисках большого объема. С помощью таких систем организуется также совместное использование дорогих принтеров, плоттеров и другого периферийного оборудования. 650 Глава 17. Совместное использование данных предприятия Архитектуры организационных систем обработки данных 651 Системы обработки распределенных баз данных Четвертая альтернатива (рис.
17А) — зто системы обработки распределенных баз данных, в которых база данных распределена по множеству компьютеров. На рис. 17А база данных (или часть ее) хранится на всех п компьютерах. Как показано на рисунке, компьютеры 1, 2 и и обрабатывают и приложения, и базу данных, а компьютер 3 обрабатывает только базу данных. Пользователь 1 Пользователь 2 Пользователь 3 3 Компьютер и ОСскть = часть операционной системы, отвечающая за сетевую коммуникацию ОС„д = часть операционной системы, отвечающая за управление данными СУРБД - "система управления распределенными базами данных Рис. 1 г.4. Архитектура распределенной базы данных Пунктирная линия, которой обведены файлы, означает, что база данных включает в себя все сегменты, хранящиеся на всех и компьютерах.
Эти компью- теры люгут физически размещаться в одном помещении, а могут — в разных кон- цах планеты. Распределенная обработка и обработка распределенных баз данных Обратимся снова к рис. 17.1, 17.2, 17.3 и 17А. Система с совместным использованием файлов, клиент-серверная система и система обработки распределенных баз данных игиеют одно важное отличие от спстегиы удаленной обработки данных: всех них для обработки приложений или СУБД используется более одного компьютера. Соответственно, большинство сказало бы, что все зги три архитектуры являются примерами распределенных систем (г)!зтг!Ьцгес! зуаетпз), поскольку обработка приложения распределена по нескольким компьютерам.
Обратите внимание, однако, что сама база данных является распределенной только в архитектуре на рис. 17А. Ни в клиент-серверной системе, нн в системе с совместным использованием файлов база данных не распределена по множеству компьютеров. Следовательно, большинство не причислило бы клиент-серверную архитектуру и архитектуру с совместным использованием файлов к системам распределенных баз данных (г!1зтг!Ьцгег! г!агаЪззе зуавешз).