Distributed System L-7 (Лекции по распределённым системам)
Описание файла
Файл "Distributed System L-7" внутри архива находится в папке "Лекции по распределённым системам". PDF-файл из архива "Лекции по распределённым системам", который расположен в категории "". Всё это находится в предмете "распределённые системы" из 10 семестр (2 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "распределённые системы" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
РаспределенныевычислительныесистемыЛекция №7:Определение местонахожденияраспределенных объектовАлексей В. Бурдаков, к.т.н.burdakov@usa.net6-1Мотивация• Важное свойство распределенной системы –прозрачность расположения• Пример системы с зашитым IP-адресом:•Невозможно перенести сервер на другой узел• Объектная ссылка – универсальный механизмадресации объектов• Каким образом получить объектную ссылку?•Именование (нахождение объектов по логическимименам - «белые страницы»)•Трейдинг (нахождение объектов по функциональным инефункциональным (качественным) характеристикам –«желтые страницы»)6-21План лекции• Именование объектов• Объектный трейдинг6-3Общие принципы именования• ОО ПО среднего слоя использует объектныессылки для адресации серверных объектов• Необходим способ получения таких ссылок• Имя (последовательность строк) могло бы бытьпривязано к объектной ссылке• По имени могла бы быть получена ссылка6-42Общие принципы именования• В распределенной системе может бытьмножество распределенных объектов• Серверные объекты могут иметь несколько имен• Это приводит к большому объему связок имяссылка в системе• Пространство имен д.б.
организованоиерархически для того, чтобы избежать:•Конфликты имен•Деградацию производительности при привязке иполучении ссылок• Иерархия м.б. достигнута с помощью контекстов6-5Контексты именованияUEFAQPRPremierMUn anitedternea1.Ka FCisersBochutdEnuthSo itedUnBVBFirselsChnManchesterUnitedternLauyerBalau2.gam1.
LigaLiEnglandCup rseWinnnyGerma6-63Общие принципы именования:композитные имена• Имена составлены из возможно более чемодного компонента• Используется для описания навигации черезнесколько контекстов именования• Пример:(“UEFA”, “England”, “Premier”, “Chelsea”)6-7Общие принципы именования:поведение сервера именования• Привязки имен к ссылкам управляютсясерверами имен• Не для каждого серверного объекта нужно имя• Серверные объекты могут иметь несколько имен• Серверы имен должны долговременно хранитьпривязку• Эффективное получение ссылок по именам• Серверы именования м.б. распределенными6-84Сервис именования CORBA• Поддерживает привязку имен CORBA кобъектным ссылкам• Имена сгруппированы по контекстам именования• Для одной объектной ссылки может бытьопределено несколько имен• Не все объектные ссылки нуждаются в именах6-9Архитектура сервиса имен6-105Имена CORBA• Имена составляются из простых имен• Простые имена представляют собой пары«значение-тип»• Атрибут «значение» используется дляразрешения имен• Атрибут «тип» (kind) используется дляпредоставления информации о роли объекта6-11IDL типы для именmodule CosNaming {typedef string Istring;struct NameComponent {Istring id;Istring kind;};typedef sequence <NameComponent>Name;...};6-126Интерфейсы IDL• Сервис именования определен двумя IDLинтерфейсами• NamingContext определяет привязки имен кобъектам и выдает информацию по привязке• BindingIterator определяет набор операций дляитераций по набору имен, определенных вконтексте именования6-13Интерфейс NamingContextinterface NamingContext {void bind(in Name n, in Object obj)raises (NotFound, ...);Object resolve(in Name n)raises(NotFound,CannotProceed,...);void unbind (in Name n)raises (NotFound, CannotProceed...);NamingContext new_context();NamingContext bind_new_context(in Name n)raises (NotFound, ...)void list(in unsigned long how_many,out BindingList bl,out BindingIterator bi);};6-147Интерфейс BindingIteratorinterface BindingIterator {boolean next_one(out Binding b);boolean next_n(in unsigned long how_many,out BindingList bl);void destroy();}6-15Сценарии именования:привязка• Привязать команду Bielefeid к первой лиги, акоманду Frankfurt - отвязатьc:Clientroot: NamingContext1L:NamingContext1L=resolve("UEFA","Germany","1.
Liga")bind("Arm. Bielefeld", bielefeld)unbind("Eintr. Frankfurt")6-168Начало работы с сервисомимен• Как получить корневой контекст именования?• Интерфейс ORB обеспечивает дляинициализации следующее:module CORBA {interface ORB {typedef string ObjectId;typedef sequence <ObjectId> ObjectIdList;exception InvalidName{};ObjectIdList list_initial_services();Object resolve_initial_references(in ObjectId identifier)raises(InvalidName);}}6-17Сценарий именования:разрешение• Распечатать состав Дортмундской Боруссииc:Clientroot: Naming D:Namingdo:TeamContextContextD=resolve("UEFA","Germany")do=resolve("1.
Liga","BVB")print()6-189Сценарий именования:итерации• Распечатать все команды 1-й немецкой лигиc:Client1.Liga:Naming bi:BindingContextIteratort:Teamlist(0,bl,bi)t=next_one().valuename()t=next_one().valuename()t=next_one().valuename()...6-19Именование в СОМ: клички• Moniker – кличка• Поддержка привязки и разрешения имен• Пространство имен м.б. иерархическиструктурировано6-2010Именование в СОМ:интерфейс IMonikerinterface IMoniker : IPersistStream {HRESULT BindToObject([in] IBindCtx *pbc,[in, unique] IMoniker *pmkToLeft,[in] REFIID riid,[out, iid_is(riid)] void **ppv);...}6-21Создание мониторов:IParseDisplayName• Для того, чтобы быть поименованым, серверныйобъект должен реализовывать интерфейсIParseDisplayName• Создает объект-монитор разбирая внешнее(текстовое) имя, называемое отображаемымименемinterface IParseDisplayName {HRESULT MkParseDisplayName([in] IBindCtx *pbc,[in,string] const OLECHAR *pwszName,[out] ULONG *ppchEaten[out] IMoniker **ppmk);}6-2211Оценка• СОМ имеет внутренние и внешние имена (кличкии отображаемые имена), что усложняетименование• Именование СОМ переплетено с другимичастями спецификации СОМ (контейнеры)• Именование СОМ не прозрачно дляразработчиков серверных объектов, т.к.
онидолжны реализовывать IParseDisplayName6-23Именование в Java/RMI• Упрощенная версия именования в CORBA• Нет композитных имен• Ограничения по безопасности: привязки имен немогут быть созданы с удаленных узлов• На каждом узле д.б. реестр• Различные реестры должны быть интегрированыв федеративные пространства имен6-2412Именование в Java/RMI:реестрpackage java.rmi.registry;public interface Registry extends java.rmi.Remote {public static final int REGISTRY_PORT = 1099;public java.rmi.Remote lookup(String name)throws java.rmi.RemoteException,java.rmi.NotBoundException,java.rmi.AccessException;public void bind(String name, java.rmi.Remote obj)throws java.rmi.RemoteException,java.rmi.AlreadyBoundException,java.rmi.AccessException;public void rebind(String name, java.rmi.Remote obj)throws java.rmi.RemoteException,java.rmi.AccessException;public void unbind(String name)throws java.rmi.RemoteException,java.rmi.NotBoundException,java.rmi.AccessException;public String[] list()throws java.rmi.RemoteException,java.rmi.AccessException;}6-25Именование в Java/RMI:использование реестра:LocateRegistryroot=getRegistry(“ns.fifa.org”)c:Clientroot:1L:BVB:E:do:TeamRegistry Registry Registry RegistryE=lookup("UEFA")D=lookup(“Germany”)1L=lookup(“1.
Liga”)BVB=lookup(“BVB”)print()6-2613Именование в Java/RMI:оценка• Отсутствие иерархии в именовании увеличиваеткол-во удаленных операций необходимых дляразрешения имен• Поиск корневого узла не всегда прозрачно вотношении размещения• Ограничения безопасности уничтожаетпрозрачность размещения6-27Именование: ограничения• Клиент должен знать имя сервера• Такой способ поиска нужных объектов неподходит, если клиент ищет сервис сопределенными функциями и качеством, но незнает имя сервиса6-2814План лекции• Именование объектов• Объектный трейдинг6-29Характеристикитрейдер-сервиса• Обнаружение объектов независимо от ихфизического расположения• Именование не приемлемо когда клиент:•Не знает имя сервиса•Существует несколько сервисов с одинаковымифункциями• Трейдер-сервис поддерживает обнаружениесерверов по функциональности и качествупредоставляемого сервиса• Именование Белые страницы• Трейдер-сервис Желтые страницы6-3015Характеристикитрейдер-сервисаTraderоспрза2:1:экспорт• Трейдер-сервис работает в качестве посредникамежду клиентом и сервером• Позволяет клиенту менять перспективу с «кто?»на «что?»3:выполнениеExporterImporter• Та же самая идея:•биржевой брокер6-31Характеристикитрейдер-сервиса• Общий язык между клиентом и сервером:•Тип сервиса•Качество сервиса• Сервер регистрирует сервис в трейдере• Клиент запрашивает трейдер:•получить сервис определенного типа•сервис определенного качества• Трейдер поддерживает:•сопоставление сервисов•«торговлю сервисами»6-3216Пример• Сервер «видео по требованию»СерверПровайдер“видео потреб.”MGMWarnerПользовательTraderIndependent6-33Процесс «трейдинга»• Сервер «видео по требованию»:Client:TraderMGM:VoDSWarner:VoDSexport()export()query()modify()download()6-3417Определение типа сервиса• Определение типа сервиса•функциональность, определенная сервисом•характеристика качества сервиса (QoS)• Функциональность определяется типом объекта• QoS определена свойствами:•имя свойства•тип свойства•значение свойства•режим работы•обязательный/не обязательный•только для чтения/модифицируемый6-35Пример: тип сервисаtypedef enum {VGA,SVGA,XGA} Resolution;service video_on_demand {interface VideoServer;readonly mandatory property float fee;readonly mandatory property Resolutionres;modifiable optional property floatbandwidth;}6-3618Определение ограничений• Импортер сервиса определяет желаемыекачества сервиса в качестве части запроса:• Пример:fee<10 AND res >=SGA AND bandwidth>=256• Трейдер выдает в качестве ответа на запростолько те сервисы, которые удовлетворяютограничениям6-37Политики трейдинга• В зависимости от ограничений и доступныхсервисов, большой набор предложений можетбыть возвращен в качестве результата• Политики трейдинга могут использоваться дляограничения количества найденных предложений•Указание максимального числа результатов•Ограничения по замещению сервисов•Ограничения по модифицируемым свойствам6-3819Федерации трейдеров• Масштабируемость приводит к необходимостисоздания федераций трейдеров• Трейдер, участвующий в федерации:•предлагает информацию о сервисах другим трейдерам•запрашивает других трейдеров в случае если он неможет удовлетворить запрос• Проблемы•непрерывный импорт•дублирование предложений6-39Граф процесса трейдингаT1query.hop_count=4def_follow_policy=alwaysmax_hop_count=5T2Предлож.