Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Архитектура распределенных СУБД





 

В текущем быстро изменяющемся компьютерном мире существуют, по меньшей мере, три базисных идеологии: клиент-сервер, Web и распределенные объекты (DCOM, CORBA). Каждое из этих направлений в свою очередь имеет достаточное множество решений и стандартов от различныхх производителей. Нынешняя ситуация влечет за собой большую озабоченность независимых разработчиков и потребителей.

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

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

Технология «клиент-сервер» предусматривает, что отбор данных для ответа на запрос делается сервером, а клиенту передается только результат - те данные, которые были запрошены (рис 1). При работе с файл-серверной версией вся ответственность за сохранность и целостность базы данных ложится на программу и сетевую операционную систему. Обработка всех данных осуществляется на рабочих местах, а сервер используется только как разделяемый накопитель. Каждый пользователь непосредственно использует информацию и вносит изменения в файлы данных и в индексные файлы [22].

Рис. 1. Сравнение технологий файлового сервера и «клиент-сервера».

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

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

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

Различают двухуровневую и трехуровневую модель «клиент-сервер» (рис. 2). Эта модель, возможно, наиболее общая, поскольку она подобна схеме разработки локальных баз данных. Многие системы «клиент-сервер», используемые сегодня, развились из существующих локальных приложений базы данных, которые хранят свои данные в файле на сервере. Перенос систем осуществляется для повышения эффективности работы, защищенности и надежности базы данных [3].

 

Рис. 2. Двухуровневая модель «клиент-сервер».

Преимущества модели:

1) делает возможным, в большинстве случаев, распределение функций вычислительной системы между несколькими независимыми компьютерами. Это позволяет упростить обслуживание вычислительной системы. В частности, замена, ремонт, модернизация или перемещение сервера не затрагивают клиентов. Все данные хранятся на сервере, который защищён намного лучше, чем большинство клиентов. На сервере намного легче осуществлять контроль полномочий для разрешения доступа к данным только тех клиентов, которые обладают соответствующими правами доступа;

2) позволяет объединять различных клиенты. Использовать ресурсы одного сервера часто могут клиенты с разными аппаратными платформами, операционными системами и т. п. [8].

Недостатки модели:

1) неработоспособность сервера может сделать неработоспособной всю вычислительную сеть;

2) поддержка работы данной системы требует отдельного специалиста - системного администратора;

3) высокая стоимость оборудования [21].

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

Трехуровневая архитектура клиент-сервер — разновидность модели «клиент-сервер», в которой функция обработки данных вынесена на один или несколько отдельных серверов. Это дает возможность разделить функции хранения, обработки и представления данных для наиболее эффективного использования возможностей серверов и клиентов.

Достоинства:

1) масштабируемость;

2) конфигурируемость — изолированность уровней друг от друга позволяет (при правильном развертывании архитектуры) быстро и простыми средствами переконфигурировать систему при возникновении сбоев или при плановом обслуживании на одном из уровней;

3) высокая безопасность;

4) высокая надёжность;

5) низкие требования к скорости канала (сети) между терминалами и сервером приложений;

6) низкие требования к производительности и техническим характеристикам терминалов, как следствие снижение их стоимости. Терминалом может выступать не только компьютер, но и, например, мобильный телефон [21].

Но также имеются и недостатки архитектыры. По сравнению c клиент-серверной или файл-серверной архитектурой можно выделить следующие недостатки трёхуровневой архитектуры:

1) более высокая сложность создания приложений;

2) сложнее в разворачивании и администрировании;

3) высокие требования к производительности серверов приложений и сервера базы данных, а, значит, и высокая стоимость серверного оборудования;

4) высокие требования к скорости канала (сети) между сервером базы данных и серверами приложений.

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

Рис. 3. Трехуровневая модель «клиент-сервер».

 

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

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

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

В серверных сетях происходит четкое разделение функций между компьютерами: одни их них постоянно являются клиентами, а другие — серверами. Компьютерные сети предоставляют многообразные услуги, соответственно имеется несколько типов серверов, а именно: сетевой сервер, файловый сервер, сервер печати, почтовый сервер и др. Сетевой сервер является специализированным компьютером, который ориентирован на выполнение основного объема вычислительных работ и функций по управлению компьютерной сетью. Данный сервер содержит в себе ядро сетевой операционной системы, под управлением которой происходит работа всей локальной сети. Сетевой сервер обладает достаточно высоким быстродействием и большим объемом памяти. При подобной сетевой организации функции рабочих станций сводятся к вводу-выводу информации и обмену ею с сетевым сервером [19].

Главной функцией файлового сервера является хранение, управление и передача файлов данных. Файловый сервер не обрабатывает и не изменяет сохраняемые и передаваемые им файлы. Он может «не знать», является ли файл текстовым документом, графическим изображением или электронной таблицей. В общем случае на файловом сервере может отсутствовать клавиатура и монитор. Различные изменения в файлах данных реализуются с клиентских рабочих станций. Поэтому клиенты считывают файлы данных с файлового сервера, выполняя при этом необходимые изменения данных и возвращая их обратно на файловый сервер. Данный тип организации имеет наибольший успех при работе большого количества пользователей с общей базой данных. В рамках больших сетей может одновременно использоваться несколько файловых серверов.

Сервер печати (принт-сервер) представляет собой печатающее устройство, которое с помощью сетевого адаптера подключается к передающей среде. Данное сетевое печатающее устройство является самостоятельным и работает независимо от других сетевых устройств. Сервер печати обслуживает заявки на печать от всех серверов и рабочих станций [12]. В качестве серверов печати используются специальные высокопроизводительные принтеры. При высокой интенсивности обмена данными с глобальными сетями в рамках локальных сетей выделяются почтовые серверы, с помощью которых обрабатываются сообщения электронной почты. Для эффективного взаимодействия с сетью Internet могут использоваться Web-серверы.

Date: 2015-07-24; view: 696; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.007 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию