DS L-4 (Лекции по распределённым системам)
Описание файла
Файл "DS L-4" внутри архива находится в папке "Лекции по распределённым системам". PDF-файл из архива "Лекции по распределённым системам", который расположен в категории "". Всё это находится в предмете "распределённые системы" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "распределённые системы" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
РаспределенныевычислительныесистемыЛекция №4:Метамодель распределенной системы;принципы ПО среднего слояАлексей В. Бурдаков, к.т.н.burdakov@usa.net3-1План лекции• Метамодель распределенной системы• Объектно-ориентированное ПО среднего слоя• Разработка с помощью ОО ПО среднего слоя• Литература3-21Различные уровниабстракции системMeta-ObjectFacilityLevel 3Meta ObjectModelLevel 2ObjectTypesLevel 1ObjectsLevel 0Эталоннаямодельметаобъектногосредства OMG3-3Метамодель распределеннойсистемы• Распределенные системы состоят измножества компонентов• Компоненты являются гетерогенными• Компоненты взаимодействуют между собой• Должна быть общая модель компонентов,отражающая:• Состояние компонентов• Сервисы компонентов• Взаимодействие между компонентами3-42Объект (компонент)• Реализует функциональность с помощьюопераций• Обладает набором атрибутов, которые всовокупности определяют состояние объекта• Частные (private) – доступны внутри• Общие (public) – доступны из других компонентов;пара операций модификации• Только для чтения – доступны из другихкомпонентов для чтения• Статические атрибуты не поддерживаются3-5Объект (компонент)• Имеет уникальный объектный идентификатор• Присваивается при создании• Сохраняется на протяжении всей жизни• Объектная ссылка – дескриптор объекта• Используются для доступа к объектам• Может существовать несколько ссылок на данныйобъект• Равенство и идентичность:• Равные объекты (в соответствии с критериемравенства)• Идентичные объекты (имеющие одинаковыеидентификаторы)• Идентичные объекты равны, но не наоборот• Может вызывать исключительные события3-63Типы• Типы объектов определяют техарактеристики, которые являются общимидля похожих объектов• Задается с помощью интерфейса• Определяют набор операций и атрибутов• Объекты являются экземплярами типов• Экземпляр одного или• Нескольких типов• Связь с типом позволяет получить информациюоб атрибутах и операциях• Тип определяется интерфейсом3-7Необъектные типы• Высокие издержки на передачу объектов(ссылок на объекты)• Информация о местоположении• Информация о безопасности• Поддержка простых типов данных (логическиезначения, символы и числа)••••Являются значениямиНе имеют идентификаторовА) АтомарныеБ) Сложные (сконструированные)•Записи•Массивы•Последовательности•…3-84Заявки• Объектная заявка – триада из объектнойссылки, имени операции и наборафактических параметров• Значительно большие издержки посравнению с обычным вызовом• Устранение неоднородности данных• Синхронизирование клиента и сервера• Установление связи по сети3-9Исключения• Отказы происходят• Отказы должны скрываться промежуточнымслоем• Отказы, которые не могут быть скрытыпередаются в прикладные программы в видеисключений (exceptions)• Исключение – структура данных,предназначенная для хранения информацииоб отказах• Исключение генерируется объектом-сервероми передается объекту-клиенту3-105Исключения• Исключения• 1) Системные (генерируются промежуточнымслоем)• 2) Типо-зависимые (генерируются прикладнымкомпонентом)3-11Операции• Операция определяется• Именем• Списком входных и выходных параметров• Типом возвращаемого значения• Списком исключений3-126Подтипы и множественноенаследование• Подтип содержит (говорят – «наследует») всеоперации, атрибуты и исключения своего«супертипа»• Подтип содержит дополнительные элементы,т.е.
расширяет определение супертипа• Объектный тип может наследоваться отболее чем одного супертипа образуямножественное наследование• Преимущества••••Повторное использование типовОблегчение изменений в иерархической структуреОблегчение восприятия проектаПолиморфизм (вместо типа использование подтипа)3-13План лекции• Метамодель распределенной системы• Объектно-ориентированное ПО среднего слоя• Разработка с помощью ОО ПО среднего слоя• Литература3-147Язык определенияинтерфейсов (IDL)• Все реализации ПО среднего слоя реализуютЯзык определения интерфейсов• Сверх того, что предложено в RPC, IDL ОО ПОсреднего слоя поддерживает объектные типы вроли параметров, обработку ошибок инаследование• ОО ПО среднего слоя предоставляеткомпиляторы IDL, создающие клиентские исерверные стабы для реализации уровня сеансаи представления модели ISO/OSI3-15Пример IDLinterface Player : Object {typedef struct _Date {short day; short month; short year;} Date;attribute string name;readonly attribute Date DoB;};interface PlayerStore : Object {exception IDNotFound{};short save (in Player p);Player load(in short id) raises(IDNotFound);void print(in Player p);};3-168Реализация уровняпредставления• В дополнение к уровню представления,реализованному в RPC, ОО ПО среднего слоя:• Определяет представление объектных ссылок втранспортном слое• Поддерживает исключения• Выполняет маршалинг наследованных атрибутов3-17Реализация уровня сеансаОбъектныессылкиУзлыОбъектные ПроцессыОбъектыадаптеры3-189Реализация уровня сеанса• Задачи, решаемые уровнем сеанса:• Отображение объектных ссылок в узлы• Реализация примитивов активации и деактивацииобъектов• Вызов запрашиваемой операции• Синхронизация клиента с сервером3-19План лекции• Метамодель распределенной системы• Объектно-ориентированное ПО среднего слоя• Разработка с помощью ОО ПО среднего слоя• Литература3-2010Шаги разработкиПроектированиеОпределениеинтерфейсаГенерациясерверных стабовГенерацияклиентских стабовНаписаниекода сервераНаписаниекода клиентаРегистрациясервера3-21Обеспечение прозрачностидоступа• Стабы клиента декларируют те же операции, что исерверные объекты• Следовательно клиенты могут:• Выполнять локальные вызовы клиентских стабов• Или локальные вызовы серверных объектов(Без изменения кода)• ПО среднего слоя может ускорить выполнениезапросов не используя клиентские и серверныестабы3-2211Обеспечение прозрачностирасположения• Идентификатор объекта• Ссылки на объект• Клиент запрашивает выполнение операции усерверного объекта, идентифицированногообъектной ссылкой• Информация о физическом расположенииобъекта не нужна• Как получить объектные ссылки?3-23Генерация стабовTeam.idlTeam.idlIDL-CompilerTeamcl.hhTeamsv.hhTeamcl.ccTeamsv.ccincluded ingeneratesreads3-2412Реализацияклиента и сервераTeam.idlTeam.idlClient.ccClient.ccServer.ccServer.ccIDL-CompilerTeamcl.hhTeamsv.hhTeamcl.ccC++C++Compiler,Compiler,LinkerLinkerClientTeamsv.ccC++ Compiler, Linkerincluded ingeneratesreadsServer3-25Регистрация на сервере• Объектные адаптеры должны иметь возможностьнахождения и запуска серверов• Объекты сервера регистрируются в «репозитарииреализации» (реестре, и т.п.)• Процессы регистрации зависят от ПО среднегослоя и продукта• Объектный адаптер до выполнения запускасерверного объекта обращается к «репозитариюреализации»3-2613Литература / Internetисточники• В.
Эммерих Конструирование распределенныхобъектов. - М.:Мир. - 2002.• М.Р. Когаловский Энциклопедия технологий базданных. - М.: ФС. - 2002.• Ю.А. Григорьев, А.Д. Плутенко. - Жизненный циклпроектирования распределенных баз данных. Благовещенск. - 1999.• Э. Таненбаум, М.
Ван Стеен Распределенныесистемы. Принципы и парадигмы. – СПб.: Питер,2003. – 877 с.: ил. – (Серия «Классика computerscience»)• www.omg.org3-2714.