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

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

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

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

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

Текст из PDF

Распределенныевычислительные системыЛекция №11:Расширенное взаимодействие междуобъектамиАлексей В. Бурдаков, к.т.н.burdakov@usa.netПлан лекции• Виды атак• Шифрование• Высокоуровневые сервисы• Сервисы безопасности в объектноориентированном среднем слое ПО1Мотивация• Запросы, которые мы рассматривали восновном имеют следующие свойства:– Две стороны (клиент и сервер)– Запускает выполнение одну операцию– Выполняется максимум один раз• Другие формы запросов также полезны• Рассмотрим другие формы– Синхронизация– Выполнение операций– НадежностьОглавление• Синхронизация запросов––––СинхронныеОдносторонниеОтложенные синхронныеАсинхронные• Множественность запросов– Групповые запросы– Множественные запросы• Надежность запросов2Синхронизация запросовСинхронизация запросов• OO-Middleware: synchronous requests.:Client:ClientOp():Server:Server• Синхронные запросы могут заблокироватьклиента когда в этом нет необходимости.Примеры:– Компоненты пользовательского интерфейса– Конкурентные запросыот разных серверов3Однонаправленные запрос• Возвращает контроль к клиенту как только запросбудет передан ПО среднего слоя• Клиент и сервер не синхронизированы• Исопльзовать если:– Сервер не вырабатывает результат– Ошибка исполнения операции может бытьпроигнорирована клиентом:Client:Server:Client:Serveroneway()Односторонний запрос с использованиеJava Threadsclass PrintSquad {static void main(String[] args) {Team team;Date date;// initializations of team and date omitted ...OnewayReqPrintSquad a=new OnewayReqPrintSquad(team,date);a.start();// continue to do work while request thread is blocked...}}// thread that invokes remote methodclass OnewayReqPrintSquad extends Thread {Team team;Date date;OnewayReqPrintSquad(Team t, Date d) {team=t; date=d;}public void run() {team.print(date); // call remote method and then die}}4Односторонний запрос в CORBA• Статически декларируется в определенииинтерфейса серверного объекта• Компилятор IDL проверяет, что:– Операция имеет тип void для возвращаемогозначения– Не имеет параметров out или inout– Не вызывает исключений, специфичных длятипа• Пример:interface Team {oneway void mail_timetable(in string tt);};Односторонние запросы в CORBA• В односторонних запросах декларации не могутиспользоваться: используйте динамическийинтерфейс:Client:Serverr=create_request()r:Requestsend()Op()delete()5Отложенные синхронные запросы• Возвращает управление клиенту как толькозапрос будет принят ПО среднего слоя• Клиент инициирует синхронизацию• Используется если:– Запрос занимает много времени– Клиент не должен блокироваться– Клиент может позволить накладные расходы, связанныес синхронизацией:Client:Clientsend():Request:Requestop():Server:Serverget_result()Отложенные синхронные запросы с потокамиclass PrintSquad {public void print(Team t, Date d) {DefSyncReqPrintSquad a=new DefSyncReqPrintSquad(t,d);// do something else here.a.join(this); // wait for request thread to die.System.out.println(a.getResult()); //get result and print}}// thread that invokes remote methodclass DefSyncReqPrintSquad extends Thread {String s;Team team;Date date;DefSyncReqPrintSquad(Team t, Date d) {team=t; date=d;}public String getResult() {return s;}public void run() {String s;s=team.asString(date);// call remote method and die}}6Отложенные синхронные запросы вCORBA• Определяются во время выполнения используя DII• Используя send() объекта Request• Используя get_response() для получения результата:Client:Clientr=create_request(“op”)send():Server:Serverr:Requestr:Requestop()get_response()Асинхронные запросы• Возвращает управление клиенту как толькозапрос передается ПО среднего слоя• Сервер начинает синхронизацияю• Используйте если:– Запрос занимает долгое время– Клиент не должен блокироваться– Сервер может позволить издержки синхронизации:Client:Clientop():Server:Server7Асинхронные запросы с использованиемпотоков• У клиента создан интерфейс для обратноговызова• Выполнить запрос во вновь созданном потоке• Клиент продолжает выполнение в основномпотоке• Новая нить заблокирована• Операция запроса инициирует обратный вызовдля передачи результата• Новый поток заканчивается когда запросвыполненАсинхронные запросы с потокамиinterface Callback {public void result(String s);}class PrintSquad implements Callback {public void Print(Team team, Date date){A=new AsyncReqPrintSquad(team,date,this);A.start(); // and then do something else}public void result(String s){System.out.print(s);}}class AsyncReqPrintSquad extends Thread {Team team; Date date; Callback call;AsyncReqPrintSquad(Team t, Date d, Callback c) {team=t;date=d;call=c;}public void run() {String s=team.AsString(date);call.result(s);}}8Асинхронные запросы с использованием очередейсообщений• Передачу сообщений обеспечивает ОО ПО– Microsoft Message Queue– CORBA Notification Service– Java Messaging Service• Запрос и ответ обеспечиваетсясообщениями• Использование двух очередей сообщений• Асинхронное выполнение запросов можетбыть обеспеченоАсинхронные запросы используя очередямисообщенийenterremoveRequest QueueClientServerremoveenterReply Queue9Разница между нитями и очередямисообщенийНити• Коммуникацияосуществляется сразу• Нет гарантированнойдоставки запроса• Может бытьреализована спомощью средств ОСи языкаОчереди сообщений• Буферизация сообщийна зпрос и ответ• Постоянноехранилище можетгарантироватьдоставку• Дополнительныелицензионныерасходы на серверысообщенийМножественные запросы10Множественные запросы• ОО ПО: единичные запросы– Два компонента: клиент и сервер– Выполнение одной операции– Не анонимно• Другие формы: множественные запросы– Более двух компонентов (групповые запросы)– Более одной операции (множественныезапросы)Групповые запросы• Пример:Trader:Trader:Channel:Channel:Ticker:Ticker :Ticker:Ticker :Ticker:Tickerconnect()connect()push()push()push()push()disconnect()connect()push()push()11Принципы группового взаимодействия• Групповое взаимодействие информируетгруппу компонентов о каком-либо событии• Две роли:– Производитель события– Потребитель события• Производитель и потребитель не знаютдруг о друге• Две формы запросов:– push-type: производитель инициируетвзаимодействие– pull-type: потребитель инициируетвзаимодействиеCORBA Сервис уведомления о событияхApplicationObjectsDomainInterfacesCORBAfacilitiesObject Request BrokerEventNotificationCORBAservices12Групповые запросы с сервисом сообщенийsa:sa:SupplierSupplierAdminAdminppc:ppc: ProxyProxyPushPushConsumerConsumer:Client:Clientsa=for_suppliers()sa=for_suppliers()ppc=obtain_push_consumer()ppc=obtain_push_consumer()push()push()ca:ca:ConsumerConsumerAdminAdmin:Event:EventChannelChannelpps:pps:ProxyPushProxyPushSupplierSupplier:Ticker:Tickerca=for_consumers()ca=for_consumers()pps=obtain_push_pps=obtain_push_supplier()supplier()connect_push_connect_push_consumer()consumer()push()push()Множественные запросы• Инициирует выполнение n операций спомощью одного запроса• Определяется во время выполнения• Преимущества:– Меньшие издержки на клентской стороне– Обработка результатов по мере поступления13Множественные запросы с нитями• Идея: клиент запрашивает сервериспользуя множественные конкурентныенити• Проблема: клиент не должен выбиратьпорядок получения результатов и недолжен блокироваться• Идея: использование дополнительнойпамяти для взаимодействия междуклиентами и нитями запросаНадежность запросов14Надежность запросов• Как мы можем быть уверены в том, чтозапрос был выполнен?• Крайности:– Гарантированное выполнение– Неизвестно• Между крайностями есть градации• Разработчики клиентов должныопределить на сколько надежными должныбыть запросы• Рзная классификация для одиночного имножественного запросаНадежность запросов• Одиночные–––––Точно один разАтомарноеНе болле одногоНе менее одногоВозможно• Множественные– k-надежность– Полностью упорядоченные– Лучшая попытка15Одиночные вызовы - надежность: Неболее одного• Надежность выполнения по умолчанию вОО ПО• Означает, что:– ПО среднего слоя пытается исполнить запросне более одного раза– ПО среднего слоя определяет ошибку иинформирует клиента• Хороший компромис между сложностью инадежностьюМножественные запросы – надежность:точно один запрос• Наиболее высокая степень надежностидля одиночных запросов• ПО среднего слоя гарантирует что запросывыполняются один и только один раз• Пример: Сервис уведомления CORBA• Сбой прозрачен как для разработчиков какклиента так и для сервера• Требует постоянного хранения данных• Накладывает ограничения напроизводительность16Множественные запросы – надежность:атомарная надежность• Атомарные запросы либо выполняютсяполностью либо вообще не выполняются• Клиенты знаю с какой точки выполнитьвосстановление• Осуществляется с помощью транзакций• Все еще достаточно дорогое выполнениеМножественные запросы – надежность: покрайней мере один раз• ПО среднего слоя гарантирует выполнение одинраз• Пример: ПО среднего слоя оринетированное насообщения (MQSeries)• Запрос может быть выполнен чаще• Достигается с помощью повторной посылкисообщения или ответа• Трудно для использвания с запросами, которыемодифицируют состояние серверного объекта17Одиночные запросы: возможно• Схоже с не более одного исполнения заисключением:• Клиенты не уведомляются о сбоях• Пример: однонаправленные запросыCORBA• Нет издежек на обработку ошибокНадежность запросов: K-надежность• Обобщение точно одного длямножественных запросов• Гарантирует что по крайней мере kзапросов группы или множествазапросов будет выполнено• Пример: Сервис уведомления CORBA18Надежность запросов: полностьюупорядоченные• Гарантирует, что группа запросов отодного множественного не перекроетпредыдущие множественные запросы• Пример: Сервис сообщений CORBAдостигает полностью упорядоченныхзапросов стоимостью использованиясинхронных запросов для каждогозапроса из группыНадежность запросов: максимальныеусилия• Нет гарантии выполнения запросовиз множества• Пример: Использование сервисасообщений CORBA для выполненияоднонаправленных операций19Ключевые моменты• Запросы в CORBA, COM И RMI по умолчанию:синхронные, одиночные и выполняются максимумодин раз• Нефункциональные требования могут требоватьдругих форм запросов• Несинхронные запросы, которые выполняются вCORBA, COM и RMI являются– Односторонними– Отложенными синхронными– АсинхроннымиКлючевые моменты• Множественные запросы могут бытьсгруппированы или представлятьмножеством запросов• Оба вида выполняют более одного запросаодномоментно• Групповые запросы являются анонимными• Множественные вопросы не являютсяанонимными• Запросы могут обмениватьпроизводительность на надежность20.

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