Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TEKhNOLOGII_RAZRABOTKI_RASPREDELENN_Kh_PRILOZhE...doc
Скачиваний:
10
Добавлен:
12.11.2019
Размер:
201.73 Кб
Скачать
  1. Тиражирование данных, определение, необходимость, типы тиражирования (синхронное, асинхронное), механизмы тиражирования, архитектура систем синхронизации данных. Преимущества и недостатки.

Тиражирование данных

Способ распространения изменённых данных.

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

  1. Синхронное (двухфазная фиксация) - предполагают практически одновременное изменение всех данных во всех узлах системы. Если один из узлов недоступен, то тиражирование отменяется. Синхронное тиражирование является более сложным в реализации, но при нём невозможен случай когда в системе существуют различные копии одних и тех же данных. Перед обновлением основной копии данных на сервере, он отправляет всем клиентам команду блокировки данных. После чего сервер рассылает изменённую копию данных для внесения изменений в локальные копии. После внесения изменений, каждый клиент отправляет серверу подтверждение, если сервером были получены подтверждения от всех клиентов, то сервер отправляет команду фиксации транзакции. Если хотя бы от одного из клиентов подтверждение не пришло, то тиражирование данных отменяется. После завершения тиражирования, блокировка с данных снимается. Синхронное тиражирование применяется для обеспечения согласованности и целостности данных, и различные его реализации присутствуют практически во всех корпоративных СУБД. А при большом количестве узлов (>50) добиться того чтобы все клиенты изменили свою копию данных практически невозможно, но если это получается, то время на выполнение тиражирования достаточно велико. Условиями применимости синхронного тиражирования являются:

    1. Изменения должны и могут распространяться немедленно.

    2. Необходимо обеспечить высокую степень целостности данных.

    3. Необходимо обеспечить абсолютную согласованность данных.(Ни одна копия не должна иметь старую копию)

  1. Асинхронное – В силу недостатков синхронного тиражирования, в последнее время всё большую популярность приобретает асинхронное тиражирование, которо5е предполагает копирование данных на локальные машины, с последующим их изменением. При асинхронном тиражировании, сначала изменяется основная копия на сервере, а уже потом изменение вносится в локальные копии. Если одна из таких копий оказывается не доступной, то изменения в неё будут внесены позже. В первую очередь обнавляются доступные копии. Если к окончанию процесса тиражирования остались не обновлённые копии, то для их изменения требуется вмешательство администратора. Моджет применяться в 2 случаях:

    1. Изменения не должны распространяться немедленно.

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

Тиражирование осуществляется с помощью 3 архитектурных схем:

  1. Главный подчинённый(которая допускает реализацию 2 вариантов)

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

    2. Горячее резервирование(Данный вариант предполагает копирование данных не только на клиентах, но и на второй вспомогательный сервер, который в случае выхода из строя первого сервера, играет роль основного)

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

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

В распределённых вычислительных системах часто возникает проблема синхронизации данных, хранящихся на различных компьютерах.

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

  1. Тиражирование слиянием.(максимальная автономность отдельных копий данных и суть его заключается в том что при изменении копии локальной СУБД сохраняют все команды над данными и их последовательность. В некоторый момент времени, происходит подключение к главному узлу, и передача произведённых над данными команд в этот узел.) Пример: Организация в которой, сотрудники выезжают на встречи с клиентом для заключения контрактов, при этом работа производится в автономном режиме. Как только сотрудник приезжает в главный офис, он подключается к серверу, передаёт ему все изменения данных и получает обновленные данные от сервера.

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

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

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

  5. Распределённые транзакции.(В случае изменения данных, сервер инициирует распределённую транзакцию, в которую привлекаются все клиенты, а после изменния локальных копий, клиенты сообщают серверу об этом, и сервер посылает команду – зафиксировать транзакцию. Если один из клиентов, не подтвердил, то транзакция отменяется.)

  1. GRID-технология. Примеры распределенных проектов. Причины развития GRID. Задачи, решаемые с помощью GRID. Типы GRID-систем. Примеры использования GRID-систем. Инструментарий для разработки GRID-систем. Понятие виртуальной организации (ВО), примеры, требования к ВО. Интероперабельность. Архитектура GRID-систем.

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

Примеры распределенных проектов

  • TERRA ONE;

  • SETI@home;

  • Einstein@home;

  • Folding@home;

  • Climate Prediction;

  • LHC@home;

Причины развития GRID

  • Развитие сетей.

  • Появление сложных задач.

  • GRID позволяет получить результат быстрее и дешевле (администрирование).

  • Экономия денег на эксплуатации систем.

  • Появление стандарта GRID.

  • Появление реальных проектов, реализованных с помощью GRID.

  • Производство компьютеров и ПО, позволяющих строить GRID.

Задачи решаемые с помощью GRID

  1. массовая обработка потоков данных большого объема;

  2. многопараметрический анализ данных;

  3. моделирование на удаленных суперкомпьютерах;

  4. реалистичная визуализация больших наборов данных;

  5. сложные бизнес-приложения с большими объемами вычислений.

Типы GRID-систем

Анализируя существующие проекты по построению грид-систем можно сделать вывод о трех направлениях развития грид-технологии:

  1. вычислительный грид (Computational Grid),

  2. грид для интенсивной обработки данных(Data Grid),

  3. семантический Грид для оперирования данными из различных баз данных (Semantic Grid).

Грид – это соединение технологии, инфраструктуры и стандартов.

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

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

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

Инструментальные средства GRID

Компоненты хранилища данных Amazon.com

  1. извлечение данных из исходных систем;

  2. интеграция, преобразование и денормализация данных;

  3. блок обработки запросов и анализа данных;

  4. блок доступа к данным и публикации.

Виртуальная организация

Виртуальная организация (Virtual Organization - VO) является динамическим сообществом людей и/или учреждений, которые совместно используют вычислительные ресурсы в соответствии с согласованными между ними правилами. Эти правила регулируют доступ ко всем типам средств, включая компьютеры, программное обеспечение и данные.

ВО

  • Участники промышленного консорциума, финансирующие создание нового самолёта;

  • Команды кризисного менеджмента, а также базы данных и системы моделирования, которые используются этими командами при выборе способа действия в связи с непредвиденной ситуацией;

  • Участники многолетних, крупных международных объединений в области физики высоких энергий.

Требования к ВО

  • Поддержка различных сетевых схем: от схемы “клиент – сервер” до схемы “одноранговая сеть”.

  • Контроль за разделением ресурсов.

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

Интероперабельность

  • Взаимодействие различных программных и аппаратных средств.

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

Модель песочных часов

Фабрикаты

Уровень фабрикатов предоставляет ресурсы:

  • физические ресурсы: вычислительные ресурсы, системы хранения, каталоги, сетевые ресурсы и сенсоры;

  • логические ресурсы: распределённая файловая система, кластер компьютеров или распределённый пул компьютеров.

Связь

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

Требования:

  • решение вопросов передачи информации, её маршрутизации и присваивания имён;

  • коммуникационные протоколы - TCP/IP;

  • аутентификация: однократная регистрация, делегирование и т.п.

Уровень ресурсов

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

Для осуществления доступа и контроля локальных ресурсов процедуры уровня Ресурсов, реализующие эти протоколы, обращаются к функциям уровня Фабрикатов.

Уровень ресурсов 2

Протоколы уровня Ресурсов:

  • Информационные протоколы, используемые для получения сведений о структуре и состоянии ресурса. Например, о его конфигурации, текущей загрузке и политике использования.

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

Кооперация

Уровень Ресурсов нацелен на взаимодействие с одним ресурсом.

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

Уровень приложения

Уровень приложений содержит пользовательские программные приложения, которые применяются в среде ВО.

Методы коммуникаций: сокеты, мейлслоты, каналы. Особенности, достоинства, недостатки. Сравнение.

Каналы

Каналы – средство межпроцессорной коммуникации между сервером канала и одним или несколькими клиентами канала; процесс создающий канал = сервер; процесс открывающий записывающий = клиент.

Каналы:

  • именованные (Named Pipes)

  • неименованные (Anonymous Pipes)

Именованным при создании присваивается уникальное имя, которое доступно другим процессам.

\\имя сервера\pipe\имя канала

Или ip/символьное имя PC

Если локальная машина \\.\pipe\имя канала

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

Базовый объект для реализации канала – файл.

ReadFile(…);

WriteFile(…);

Канал – объект ядра ОС. winAPI – работа с каналом.

NT – создание, открытие, win9x – открытие

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

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

«+»

  • гарантированная доставка сообщений

  • возможность синхронной и асинхронной передачи сообщений

«-»

  • только в локальных сетях

mail slots

mail slots – средство межпроцессорной коммуникации, которое позволяет осуществлять межстороннюю передачу данных от одного или нескольких клиентов к одному или нескольким серверам.

На физическом уровне = файл

Объект ядра ОС → winAPI

\\имя сервера\mailslot\имя mailslot

ip

символ

.

* – для отправки широковещательных запросов (отправить сразу всем компьютерам в сети, некоторого домена) – отличие от Named Pipes и «+»

Только в локальной сети. Одностороння передача данных.

Сокеты – sockets

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

В 80-х, Berkley, в Unix

В середине 90-х в windows свои sockets - windows sockets, winsocks. Для создания необходимо указать IP адрес компьютера, номер порта и тип сокета. Тип сокета определяет особенности типа связи, допустимые приложения.

Сервер – приложение, которое создало сокет.

Клиент – приложение, которое открывает сокет.

2 типа сокетов:

  • потоковые (поточные)

  • датаграммные

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]