Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
11
Добавлен:
27.11.2024
Размер:
237.08 Кб
Скачать

Лекция 11. Объектные, распределенные технологии на основе

спецификаций консорциума OMG:

CORBA – как технология распределенных приложений.

CORBA (Common Request Broker Architecture) - архитектура для построения распределенных объектных приложений.

Была предложена некоммерческой организацией - консорциумом OMG

(Object Management Group), состоящей из нескольких сотен ведущих компаний из отрасли разработки программного обеспечения (включая таких гигантов, как Microsoft и Borland/Inprise). CORBA описывает стандартную архитектуру для обмена информацией между распределенными объектами,

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

Более того, поскольку CORBA определяет стандартный интерфейс между объектами, операционная система, в которой работает объект, и язык,

на котором он составлен, не имеют значения.

Если объект удовлетворяет требованиям CORBA, он способен обмениваться информацией с другими распределенными объектами.

CORBA определяет механизм, обеспечивающий взаимодействие приложений в распределенной системе. Главными компонентами стандарта

CORBA являются:

объектный брокер запросов (Object Request Broker);

язык определения интерфейсов (Interface Definition Language).

Вспецификацию CORBA включено также несколько дополнительных, н

оочень важных сервисов:

сервис динамического формирования запросов (DII);

сервис репозитория интерфейсов (IR);

сервис динамической обработки запросов (DSI);

сервис, обеспечивающий взаимодействие различных брокеров запросов (GIOP).

Лекция 12. ODMG - разработка стандартов для объектных баз данных.

Object Database Management Group (ODMG) была сформирована для выработки стандартов объектных баз данных. В отличие от OMG,

фокусирующей свою деятельность на обеспечении интероперабельности приложений, ODMG стремится к обеспечению мобильности исходных текстов программ. Это подразумевает, что должны быть стандартизированы языки доступа к базам данных (но не внутренняя реализация программных продуктов). Разработанный стандарт ODMG 93 определяет общую объектную модель и общий язык для баз данных. Эти меры призваны обеспечить необходимый уровень переносимости приложений.

Объектная модель данных ОDBMS, предложенная группой ODMG,

расширяет модель консорциума OMG, добавляя ряд новых концепций.

-Связи между объектами. ODMG/OM определяет представление этих связей, управление ими и их использование.

-Типы, определяющие множество свойств объекта. Свойства могут иметь форму атрибутов и связей.

-Специальный тип "транзакции", определяющий механизм поддержки свойств атомарности, целостности, долговременности и согласованности при выполнении запросов к базе данных.

-Специальный тип "база данных", позволяющий БД быть представленной как объект в объектной модели данных.

Стандарт ODMG определяет работу с объектами, поэтому названия языков претерпели соответствующие трансформации: в стандарте ODMG 93

специфицируются языки определения объектов (ODL) и объектных запросов

(OQL). ODMG не стандартизует язык манипулирования объектами. Вместо этого ODMG определяет, как отобразить необходимые манипуляции со структурами и объектами на обычные объектно-ориентированные языки программирования.

Лекция 13. Технология тиражирования данных. Основная концепция.

Во многих случаях узким местом распределенных систем, построенных на основе технологий "клиент-сервер" или объектного связывания данных,

является недостаточно высокая производительность из-за необходимости передачи по сети большого количества данных.

Технология тиражирования данных, выступает как альтернатива технологии распределенных баз данных. Каждая база данных (как для СУБД,

так и для множества работающих с ней пользователей) всегда является локальной: локально размещаются данные, необходимые в данном узле распределенной системы, локально завершаются все транзакции.

Тиражирование данных - это асинхронный перенос изменений объектов исходной базы данных (source database) в базы данных,

принадлежащие к различным узлам распределенной системы. Функции тиражирования данных возложены на специальный компонент СУБД -

сервер тиражирования данных, называемый репликатором (replicator), задача которого состоит в обеспечении идентичности данных в принимающих базах данных (target database) данным в исходной БД.

Сигналом для запуска репликатора служит срабатывание правила

(rule), перехватывающего любые изменения тиражируемого объекта БД, а

для обеспечения надежности передачи репликатор использует протокол двухфазовой фиксации транзакции.

Возникают 2 проблемы:

обеспечение согласованного состояния во всех репликах количества и значений общих данных;

обеспечение согласованного состояния во всех репликах структуры данных Репликой называют особую копию БД для размещения на другом

компьютере сети с целью автономной работы пользователей с одинаковыми

(согласованными) данными общего пользования.

Лекция 14. Протоколы тиражирования данных.

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

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

Типичный протокол тиражирования, обеспечивающий сериализуемость по критерию полной эквивалентности копий, известен под названием ROWA (Read-Once/Write-All - одно чтение, запись во все копии).

Протокол ROWA отображает чтение x Read(x) на операцию чтения какой-

либо из копий x Read(xi). Из какой именно копии будет производиться чтение, неважно - этот вопрос может решаться из соображений эффективности. Каждая операция записи в логический элемент данных x

отображается на множество операций записи во все физические копии x.

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

Было предложено несколько альтернативных алгоритмов,

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

Все они ослабляют ROWA, сопоставляя операцию записи с некоторым подмножеством физических копий.

Лекция 15. Целостность данных и протоколы обеспечения надежности

Распределенные СУБД потенциально более надежны в силу того, что системные компоненты в них дублируются, и тем самым исключаются одиночные точки отказа. Однако это входит в противоречие с проблемой целостности данных, для решения которой необходимо синхронное и согласованное изменение данных в нескольких локальных базах данных,

составляющих DDB.

В распределенной СУБД различаются четыре типа сбоев:

сбой транзакции,

сбой узла (системы),

сбой носителя (диска),

сбой коммуникационной линии.

Протоколы обеспечения надежности поддерживают два свойства транзакций: атомарность и долговечность. Атомарность означает, что выполняются либо все действия транзакции, либо не выполняется ни одно

(принцип "все или ничего"). Атомарность гарантируется даже в условиях возможных отказов. Долговечность означает, что результат успешно завершенной (зафиксированной) транзакции сохраняется даже при последующих сбоях.

Для обеспечения атомарности и долговечности необходимы протоколы атомарной фиксации;

протоколы распределенного восстановления.

Если DDB однородна - то есть на всех узлах данные хранятся в формате одной базы и на всех узлах функционирует одна и та же СУБД, то в качестве протокола атомарной фиксации является протокол двухфазовой фиксации транзакций (2PC - 2 Phase Commit).

Лекция 16. Мониторы обработки транзакций. Протокол 2РС.

Мониторы обработки транзакций (Transaction Processing Monitor -

TPM), или, проще, мониторы транзакций - программные системы (которые часто относят к категории middleware), обеспечивающие эффективное управление информационно-вычислительными ресурсами в распределенной системе. Они представляют собой гибкую, открытую среду для разработки и управления мобильными приложениями, ориентированными на оперативную обработку распределенных транзакций. В числе важнейших характеристик ТРМ - масштабируемость, поддержка функциональной полноты и целостности приложений, достижение максимальной производительности при обработке данных при невысоких стоимостных показателях, поддержка целостности данных в гетерогенной среде.

Корректное выполнение транзакции должно гарантировать выполнение четырех условий – так называемых свойств ACID (Atomicity (атомарность), Consistency (согласованность), Isolation (изолированность), Durability

(долговременность). В системе без TPM обеспечение свойств ACID берут на себя серверы распределенной базы данных на основе протокола 2РС – (twoPhase Commit – двухфазное подтверждение). Протокол 2РС описывает двухфазный процесс, в котором перед началом распределенной транзакции все системы опрашиваются о готовности выполнить необходимые действия.

Если каждый из серверов баз данных дает утвердительный ответ, транзакция выполняется на всех задействованных источниках данных. Если хотя бы в одном месте происходит какой-либо сбой, будет выполнен откат всех частей транзакции.

1 фаза 2PC - подготовка к фиксации транзакции (голосование).

2 фаза 2PCглобальные фиксация или откат транзакции (принятие решения).

Лекция 17. Управление одновременным доступом

Если множество пользователей одновременно осуществляют доступ

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

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

Наиболее популярные алгоритмы управления одновременным доступом основаны на механизме блокировок. В такой схеме всякий раз,

когда транзакция пытается получить доступ к какой-либо единице памяти

(как правило, странице), на эту единицу накладывается блокировка в одном из режимов - разделяемом или исключительном. Блокировки накладываются в соответствии с правилами совместимости блокировок, исключающими конфликты чтение-запись, запись-чтение и запись-запись.

Согласно известной теореме, сериализуемость транзакций заведомо гарантируется, если блокировки, относящиеся к одновременно выполняемым транзакциям, удовлетворяют простому правилу: "Ни одна блокировка от имени какой-либо транзакции не должна устанавливаться, пока не будет снята ранее установленная блокировка". Это правило известно под названием

двухфазового блокирования.