Distributed System L-8 (Лекции по распределённым системам)

PDF-файл Distributed System L-8 (Лекции по распределённым системам) Распределённые системы (14045): Лекции - 10 семестр (2 семестр магистратуры)Distributed System L-8 (Лекции по распределённым системам) - PDF (14045) - СтудИзба2017-12-22СтудИзба

Описание файла

Файл "Distributed System L-8" внутри архива находится в папке "Лекции по распределённым системам". PDF-файл из архива "Лекции по распределённым системам", который расположен в категории "". Всё это находится в предмете "распределённые системы" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "распределённые системы" в общих файлах.

Просмотр PDF-файла онлайн

Текст из PDF

РаспределенныевычислительныесистемыЛекция №8:Долговременное хранениераспределенных объектовАлексей В. Бурдаков, к.т.н.burdakov@usa.net8-1План лекции• Концепция долговременного хранения объектов• Применение хранилищ данных•Файлы•РСУБД•ОСУБД8-21Объекты с внутреннимсостоянием и без него• Объекты в распределенной вычислительнойсистеме могут быть:• С внутренним состоянием (statefull)• Атрибуты в определении интерфейса – достаточное, но ненеобходимое условие• Внутренние переменные экземпляра• Без внутреннего состояния (stateless)• Долговечными (persistent) – продолжающиесуществовать и после завершения процесса• Использование энергонезависимой памяти• Временными (transient)• Хранение в энергозависимой памяти• Пример: служба именования• statefull• persistent8-3Долговременное хранение(persistence)• Долговременное хранение - способность объектапереживать процесс, в котором он находится• Состояние должно запоминаться на промежутокдеактивации и активации8-42Как реализоватьдолговременное хранение?• Сохранить объект на постоянном носителе додеактивации• Восстановить объект с постоянного носителяпосле активации• В качестве хранилища может использоваться:•Файловая система•Реляционная СУБД•ООСУБД•Флэш-память8-5Прозрачностьдолговременного хранения• Долговременное хранение должно бытьпрозрачным как для пользователей, так и дляпроектировщиков клиентских объектовКлиентскиеобъектыСерверныеобъектыКлиентскийинтерфейсХранимыеобъектыИнтерфейсдолг.

хранения8-63Концепции долговременногохраненияОбъектыХраненияВоплощениеобластихраненияХранилищеданныхСессииОбластихраненияВоплощениеобъектахранения8-7Основные понятия• Хранилище данных (datastore) - абстрактноепонятие, охватывающее различные технологиихранения - от файлов до ООБД, пример: БД• Область хранения (storage home) - контейнер,содержащий долговременные представленияхранимых объектов, пример: таблица• Объект хранения (storage object) представление состояния объекта-сервера вобласти хранения, пример: запись в таблице РБД• Тип хранения (storage type) - определяетинтерфейс объекта хранения8-84Основные понятия• Воплощение объекта хранения (storage objectincarnation) - представление объекта хранения впроцессах, является объектом языкапрограммирования• Воплощение области хранения (storage homeincarnation) - представление экземпляра областихранения на языке программирования• Ключ - атрибут, однозначно идентифицирующийобъект хранения в пределах области хранения• Сессия - логическая связь между хранилищемданных и процессом, в котором выполняетсяобъект-сервер8-9Пример• Долговременное хранение объектов сервисаименованияUEFAQPRPremierMUn anitedternea1.Ka FCiserstdEnuthSo itedUnelsBochuFirsChnManchesterUnitedternLauyerBaBVBEnglandlau2.gam1.

LigaLinyCup rseWinnGerma8-105PSSDL - Язык определения службыдолговременного хранения• PSSDL (Язык определения состояний службыдолговременного хранения) - строгоесупермножество языка CORBA/IDL• Дополнительно обеспечивает определение:•объектов хранения•областей хранения•ключей8-11Определение типов хранения// file NamingContextState.pssdl#include <CosNaming.idl>storagetypespec NamingContextState{Object resolve(in CosNaming::NameComponent n)raises(CosNaming::NotFound, CosNaming::CannotProceed,CosNaming::InvalidName);void bind(in CosNaming::NameComponent n, in Object obj)raises(CosNaming::NotFound, CosNaming::CannotProceed,CosNaming::InvalidName, CosNaming::AlreadyBound);void unbind(in CosNaming::NameComponent n, in Object obj)raises(CosNaming::NotFound, CosNaming::CannotProceed,CosNaming::InvalidName);void rebind(in CosNaming::NameComponent n, in Object obj)raises(CosNaming::NotFound, CosNaming::CannotProceed,CosNaming::InvalidName); };Storagehomespec NamingContextStateHome of NamingContextState {ref <NamingContextState> create();};8-126Архитектура сервисапостоянного храненияРеализациясерверного объектаВоплощение хранимого объектаВоплощение области храненияИнтерфейс управленияСоединениями и сессиямиОбъект хранения иСхема области храненияПрикладной интерфейсхранилища данныхХранилище данных8-13Компилятор с языка PDLСпецификацииОбласти храненияи типа хранения(PSSDL)РеализацииОбласти храненияи типа хранения( Язык прогр.)PDLкомпиляторСхемаОбласти храненияи типа хранения8-147Применение хранилищ данныхдля организации постоянногохранения8-15Технологии хранения• Файлы•Экстернализация CORBA•Сериализация Java•Структурированное хранение COM• Реляционные СУБД•Объектно-реляционное отображение•JDBC/ODBC• Объектные БД•Versant•O28-168Экстернализация в CORBA• Технология, позволяющая:•Записывать композитные объекты в бинарного потока•Считывать композитные объекты из бинарного потока• Бинарный поток может быть сохранен в илисчитан с файловой системы• Поддерживается реализациями CORBA (службаэкстернализации)8-17Служба экстернализации вCORBA• Спецификация принята в 1994 г.• Для обеспечения интероперабельностиразличных реализаций спецификациястандартизировала:•Формат хранения атомарных типов данных•Способ представления сконструированных данных8-189ИнтерфейсыэкстернализацииStreamableFactoryIdentifiableObjectLifeCycleObjectStreamableStreamStreamIOStreamFactoryRelationshipNodeRole8-19Сценарий экстернализацииc: TeamMgmntsf:StreamFactorycreate()sio:StreamIOs:Streamexternalize(t)t:Teamexternalize_to_stream(sio)write_string(t->name())write_object(player1)write_object(player2)8-2010Сценарий интернализацииc: TeamMgmnts:Streaminternalize(ff)sf:StreamableFactoryff:FactoryFindersio:StreamIOfind_factories("Team")create_uninitialized()internalize_from_stream(sio,ff)t:Teamname=read_string()player1=read_object()player2=read_object()8-21Сериализация в Java• Перевод объектов Java в поток• Отслеживает все объекты на которые естьссылки• Поток может быть записан в файл• Объекты должны реализовывать интерфейсSerializable• Атрибуты, которые нет необходимости хранитьдолговременно, могут быть продекларированы вопределении класса как transient8-2211Сериализация в Java: Типы<<Interface>>SerializableObjectInputFileInputStreamObjectOutputFileOutputStreamSessionPortableNCtxState8-23Сценарий сериализации вJava: POA: Session1: flush()o : ObjectOutputs : FileOutputStreamt:PortableNCtxState2: s=new ()3: o=new(s)4: writeObject(t)5: flush()8-2412Интерфейсы долговременногохранения в СОМIPersistStream позволяет представлятьобъекты в виде бинарныхпоследовательностейIPersistFile позволяет сохранять объектыв байтовый поток<<Interface>>IUnknown<<Interface>>IPersist+ GetClassID()<<Interface>>IPersistStorage+ IsDirty()+ InitNew()+ Load()+ Save()+ SaveCompleted()+ HandsOffStorage()<<Interface>>IPersistStream+ IsDirty()+ Load()+ Save()+ GetSizeMax()<<Interface>>IPersistFile+ IsDirty()+ Load()+ Save()+ SaveCompleted()+ GetCurFile()8-25Структурированное хранение вСОМ• СОМ также поддерживает структурированноехранение объектов• СОМ поддерживает композицию объектов –помещение объектов в объекты – контейнеры(например объект Word содержащий Excel)• Объекты-контейнеры управляют жизненнымциклом хранящихся в них объектов• Позволяет применять инкрементную загрузку иизменение, а также вложенное хранение8-2613Проблемы, связанные сдолговременным хранением вфайлах• Отображение в файлы может бытьнеэффективным (большие издержки наобработку потоков) для больших композитныхобъектов• Файловые системы обеспечивают примитивный ислабый контроль за одновременным доступом(например, нет контроля за взаимнымиблокировками и т.п.)• Файловые системы не обеспечиваютотказоустойчивость (транзакции)8-27РСУБД• Примеры РСУБД:•Ingres•Oracle•Sybase•DB2•Microsoft SQL Server•Microsoft Access• Основаны на реляционной модели•Таблицы•Кортежей•Неструктурированных (атомарных) атрибутов8-2814Отображение в РСУБД• Схема РСУБД состоит из набора таблиц• Определяется таблица для каждого типа• В каждой таблице создается•Первичный ключ для идентификации объекта•Колонка для каждого атрибута объекта•Отображение атомарных типов ПО среднего слоя напримитивные типы, поддерживаемые РСУБД•Вторичные ключи для объектных ссылок• Статическое разрешение наследования8-29Отображение в РСУБД:Пример• Создать схему для данных сервиса именования:CREATE TABLE NamingCtxts (id TEXT, objref TEXT,CONSTRAINT c1 PRIMARY KEY (id))CREATE TABLE Bindings (id TEXT, name TEXT, kind TEXT, objref TEXT,CONSTRAINT c2 PRIMARY KEY(id))CREATE TABLE NameBindings (nctx TEXT, bind TEXT,CONSTRAINT c3 FOREIGN KEY(nctx) REFERENCES NamingCtxts(id),CONSTRAINT c4 FOREIGN KEY(bind) REFERENCES Bindings(id))8-3015Таблицы хранилища сервисаименованияnctx78844556611133227bind10111213141516171823456789NameBindingsBindingsid110111213141516171823456789idkindUEFANCtxBayernTeamBochumTeamLauternTeamKaiserslauternTeamManchester United TeamMan UnitedTeamChelseaTeamQPRTeamSouth End United TeamGermanyNCtxEnglandNCtxCup WinnersNCtxPremierNCtxFirstNCtx1.

LigaNCtx2. LigaNCtxBVBTeamid objref1 lasd098asjasfd08lasdsfhasdf02 kljsadpoweurasldkfjasofduqels3 aslkjdksahdfksgdf9qeijksadhfs4 ashkw09we4ty0slajdfhisafsgfsobjref5 saldkjfdasldkjfalsdkfh0828lsdjlasd098asjasfd08lasdsfhasdf06 sosdihfw9y4t02-1jwohfkasjdnf7 lsadkfh924357109ejaojkasbjaasldhf2y4395-qFDOhdsfksadh8 asldkjfh29y35r-q[ofdhdasldgj2kasdughf92ry5u-0ASPSDFAKkasjsdhf923r5-00OSADFISAGkasjsdhf923r5-00OSADFISAGlasasaskjhasldjfadfh293ruasldlasasaskjhasldjfadfh293ruasldksajdfgw4y250-2=0sdhfkasjgsaksdhf9245-qSIDHFOASFaslh33i4y50wswfahsdkfjh29345yoakljsadpoweurasldkfjasofduqelsaslkjdksahdfksgdf9qeijksadhfsashkw09we4ty0slajdfhisafsgfssaldkjfdasldkjfalsdkfh0828lsdjsosdihfw9y4t02-1jwohfkasjdnflsadkfh924357109ejaojkasbjaasldkjfh29y35r-q[ofdhdasldgj2ksaldfhqweoiry[pa\sonasglsas8-31NamingCtxtsЗапросы• Разрешение привязки именSELECT Bindings.objrefFROM Bindings,NameBindings,NamingCtxtsWHERE NamingCtxts.objref="lsadkfh924357109ejaojkasbja" ANDBindings.name="BVB" ANDBindings.id=NameBindings.bind ANDNamingCtxts.id=NameBindings.nctx• Получение всех привязок для контекстаSELECT Bindings.name_id,(SELECT name_idFROM BindingsWHERE Bindings.id=NameBindings.naming_context)FROM NameBindings,BindingsWHERE NameBindings.binding=Bindings.id8-3216Реализация запросов впрограммах• Внедренный SQL• ODBC (Open Database Connectivity –Microsoft)• JDBC (Java Database Connectivity – Sun)8-33Проблемы, связанные схранением в РСУБД• Долговременное хранение в РСУБД– Осложняется несовпадением импеданса (impedancemismatch)– Просто реализуемо за счет широкого распространения идоступности РСУБД• Долговременное хранение в ОСУБД– Упрощено за счет концептуальной схожести• Объектных моделей• Связываний языка программирования8-3417Объектные СУБД• Стандартизацию в области ОСУБД проводитObject Database Management Group – ODMG• Организована в 1991 г.

разработчикамиОСУБД (GemStone, O2, ObjectStore, Objectivity,Poet, Versant)• В качестве исходной платформы длястандарта на ряду с прочим был использованстандарт CORBA 1.0 для обеспечения:– Переносимости приложений между ОСУБД– Интероперабельности с архитектурой CORBA8-35Стандарт ODMG• ODMG опубликовала 3 основных версии стандарта:• 1.0 в 1993 – базовый стандарт, связывание с С++ иSmalltalk• 2.0 в 1997 – дополнено связыванием с Java,изменения в объектной модели, расширениястандарта, определение репозитария метаданных• 3.0 в 2000 – существенное расширение связывания сязыками (организация постоянного хранения)8-3618Стандарт ODMG• Объектная модель является расширением объектноймодели OMG/OMA• Язык определения схемы – ODL (Object DefinitionLanguage) является расширением OMG/IDL• Связывание с программными языками– С++– Java– Smalltalk• Язык объектных запросов (OQL)• Поддержка долговременного хранения дляуказанных языков программирования• ODMG участвовал в разработке стандарта PSS8-37Пример: контекст именованияв ODLtypedef NameComponent struct {string id;string kind;};typedef struct ListElement {NameComponent name;Object obj;};interface ODLPortableNctxState {list<ListElement> m_list;extent ODLPortableNctxStateHome;Object resolve(in NameComponent n);void bind(in NameComponent n, in Object obj);void unbind(in NameComponent n, in Object obj);void rebind(in NameComponent n, in Object obj);};8-3819Отображение в ОСУБД• ОСУБД устраняют проблему «несовпаденияимпеданса» за счет использования объектноймодели• Поддерживают хранение композитныхобъектов уменьшая время выборки объекта(нет необходимости его «сборки»)• Поддерживают ассоциативные связи, чтопозволило использовать более быстрыеметоды навигации по таким связям• Поддерживают связи иерархии, упрощающиеопределение классов/интерфейсов8-39Сравнение различных методовхранения: ФС, РСУБД, ОСУБД• Долговременное хранение в файлах––––Нет затрат на лицензированиеЭкстернализация не является прозрачной для реализаций объектовОтсутствует контроль за одновременным доступомНе обеспечивает отказоустойчивость• Долговременное хранение в РСУБД– Просто реализуемо за счет широкого распространения и доступностиРСУБД– Осложняется «несовпадением импеданса»• Долговременное хранение в ОСУБД– Упрощено за счет концептуальной схожести объектных моделей– Связываний языка программирования8-4020Основные моменты• Долговременное хранение реализуется длясерверных объектов с внутренним состоянием• Долговременное хранение прозрачно дляразработчиков и проектировщиков клиентскихобъектов• Реализация долговременного хранения м.б.реализована с помощью Persistent State Service• PDL используется для определения структурданных для долговременного хранения8-41Основные моменты• Долговременное хранение м.б.

реализовано спомощью– Файловой системы– РСУБД– ОСУБД• Компилятор PDL автоматически генерируетреализацию долговременного хранения– Генерирует схему РБД– Генерирует операции доступа для сохранения илизагрузки состояния8-4221Литература / Internetисточники• В. Эммерих Конструирование распределенныхобъектов. - М.:Мир. - 2002.• М.Р. Когаловский Энциклопедия технологий базданных. - М.: ФС. - 2002.• Ю.А.

Григорьев, А.Д. Плутенко. - Жизненный циклпроектирования распределенных баз данных. Благовещенск. - 1999.• Э. Таненбаум, М. Ван Стеен Распределенныесистемы. Принципы и парадигмы. – СПб.: Питер,2003. – 877 с.: ил. – (Серия «Классика computerscience»)• www.omg.org8-4322.

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5167
Авторов
на СтудИзбе
437
Средний доход
с одного платного файла
Обучение Подробнее