Распределенные системы
В последние время резко возрос интерес к так называемым распределенным системам. Подраспределенными системамиобычно понимают программные комплексы, составные части которых функционируют на разных компьютерах в сети.
Эти части взаимодействуют друг с другом, используя ту или иную технологию различного уровня.
Рост популярности распределенных систем вызван существенным ужесточением требований, предъявляемых заказчиком к современным программным продуктам.
Важнейшими из этих требований являются следующие:
• Обеспечение масштабируемости систем, т.е. способности эффективно обслуживать как малое, так и очень большое количество клиентов одновременно.
• Надежность создаваемых приложений. Программный комплекс должен быть устойчив не только к ошибкам пользователей, но и к сбоям в системе коммуникаций. Надежность подразумевает использование транзакций, т.е. гарантированного перехода системы в процессе функционирования из одного устойчивого и достоверного состояния в другое.
• Возможность непрерывной работы в течение длительного времени (так называемый режим 24x7, т.е. режим круглосуточной работы в течение недель и месяцев).
• Высокий уровень безопасности системы, под которой понимается не только контроль доступности тех или иных ресурсов системы и защищенность информации на всех этапах функционирования, но и отслеживание выполняемых действий с высокой степенью достоверности.
• Высокая скорость разработки приложений и простота их сопровождения и модификации с использованием программистов средней квалификации.
Оказалось, что обеспечить соответствие этим требованиям, используя традиционные технологии - а именно, двухзвенные системы "клиент-сервер", в которых в качестве серверов выступают системы управления базами данных, почти невозможно.
Причины построения распределенной системы:
• Размещение часто используемых данных ближе к клиенту, что позволяет минимизировать сетевой трафик.
• Расположение часто меняющихся данных в одном месте, обеспечивающее минимизацию затрат по синхронизации копий данных.
• Увеличение надежности комплекса к единичным отказам серверов (горячее резервирование).
• Понижение стоимости системы за счет использования группы небольших серверов вместо одного мощного центрального сервера.
Часто распределение базы данных изначально определяется требованиями бизнеса, например когда объединяется информация нескольких крупных подразделений одной компании и требуется постоянный обмен данными между филиалами.
Решение о распределенной базе данных оправданно и для систем, где есть четко выраженные группа меняющихся данных и группа устойчивых данных, по которым выполняются отчеты. Тогда в самом простом варианте работают два сервера: один обслуживает часто меняющиеся данные — это, как правило, OLTP (On-Line Transaction Processing. — Прим. ред.), второй — отчеты, то есть DSS (Decision Support System. — Прим. ред.). Ряд СУБД не очень хорошо совмещает обработку OLTP- и DSS-потоков запросов, поскольку для этих двух типов потоков запросов оптимальные параметры конфигурации серверов будут различаться. Решение такой базы данных как распределенной может оказаться более выгодным.
Для создания распределенной системы должны выполняться следующие условия:
• Непротиворечивость данных, независимо от того, какой клиент к какому серверу обратился.
• Производительность распределенной базы данных должна удовлетворять требованиям заказчика, а это может оказаться более сложной задачей, чем в случае централизованной базы данных.
• Надежность распределенной базы данных не должна уступать надежности централизованной базы данных.
Необходимо учитывать, что стратегия распределения данных должна определяться не политикой предприятия (что обычно пытается навязать руководство), а требованиями надежности и производительности системы. При построении распределенной базы данных следует уделить особое внимание проектированию топологии сети. Узлы распределенной базы данных должны быть соединены скоростными надежными линями связи. Это же касается линий соединения узлов базы данных и серверов приложений. Наличие низкоскоростного и ненадежного канала связи между узлами распределенной базы данных резко повышает количество детектируемых отказов сети.
В распределенной базе данных могут быть использованы следующие типы вызовов:
• Удаленные DDL- и DML- операции, а также выборка данных.
• Синхронные удаленные вызовы процедур.
• Асинхронные удаленные вызовы процедур.
• Непротиворечивые снимки.
• Асинхронная симметричная репликация.
• Синхронная симметричная репликация.
• Вызов распределенного запроса (запрашивает данные на чтение и модификацию с нескольких узлов).
Для каждой СУБД принципы, влияющие на детали распределения базы данных, индивидуальны.
Дата добавления: 2015-05-08; просмотров: 870;