Главная » Просмотр файлов » DCOM (курсовая работа)

DCOM (курсовая работа) (548068), страница 2

Файл №548068 DCOM (курсовая работа) (DCOM (курсовая работа)) 2 страницаDCOM (курсовая работа) (548068) страница 22015-08-23СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 2)

И хотяCoCreatelnstanceEx создана для работы с удаленными объектами, нет причин, по которым клиенты немогли бы использовать ее для эффективного создания экземпляров объектов, реализованныхлокальными серверами и серверами "в процессе".CoCreateInstanceEx также имеет параметр, позволяющий клиенту указать машину, на которойдолжен быть создан объект. Вместо того, чтобы полагаться в определении удаленной системы налокальный реестр, клиент может динамически выбирать удаленную машину во время создания объекта.Имя машины задается, как и в предыдущем случае, —доменным именем, адресом IP или в другомформате, поддерживаемом сетевыми протоколами.

Поскольку CoCreateInstanceEx, как иCoCreateInstance, использует CoGetClassObject для получения указателя на интерфейс соответствующейфабрики класса, постольку имя машины необходимо передать при вызове CoGetClassObject. Для этогоиспользуется зарезервированный ранее параметр, так что необходимость в новой функцииCoGetClassObjectEx отпадает.Объединение создания и инициализацииПосле того, как объект создан клиентом, следующим шагом обычно является инициализацияобъекта путем выдачи ему команды загрузить перманентные данные. Например, клиент может вызватьметод IPersistFile::Load вновь созданного объекта для загрузки данных из файла. Если объект хранитсвои перманентные данные, используя структурированное хранилище, клиент может вызватьIPersistStorage::Load, передав указатель на соответствующее хранилище.Этот двухэтапный процесс создания и затем инициализации при использовании удаленногообъекта не претерпевает никаких изменений — клиент по-прежнему выполняет оба шага и волен делатьэто традиционным способом, вызвав сначала СоCreateInstance или CoCreateInstanceEx и обратившисьзатем к соответствующему методу интерфейса IPersist для инициализации объекта.

Но если объектвыполняется на удаленной машине, то выполнение этих шагов требует серии циклов "запрос-ответ", чтоможет быть неприемлемо медленно. Чтобы улучшить ситуацию, DCOM предоставляет клиентам двеальтернативные функции, каждая из которых создает и инициализирует объект за один прием. Еслиобъект выполняется локально, то использование этих функций представляет собой главным образомлишь дополнительное удобство (хотя некоторый выигрыш в производительности достигается и здесь засчет сокращений числа вызовов между процессами), но для удаленных объектов реализация этихфункций оптимизирована.Первая функция — CoGetInstanceFromFile — создает новый объект и инициализирует егоданными из файла.

Параметры функции включают машину, на которой создается объект, CLSID, имяфайла и, подобно CoCreateInstanceEx, список IID нужных клиенту интерфейсов. Если CLSID не задан,функция пытается определить его по имени файла так, как это делает файловый моникер.Использование этой функции аналогично вызову CoCreateInstanceEx и последующему обращению кметоду IPersistFile::Load объекта.

Вторая функция — CoGetInstanceFromIStorage — работает сходнымобразом за исключением того, что ей передается указатель на IStorage (он задает соответствующее4хранилище), а не имя файла. Вызов второй функции аналогичен вызову CoCreateInstanceEx споследующим обращением к методу IPersistStorage::Load объекта.Хотя обе функции позволяют указать машину, на которой должен быть создан объект, ни длятой, ни для другой эта информация не обязательна. Если имя машины не задано, место созданияобъекта зависит от нескольких факторов.

Когда в локальном реестре данный CLSID связан с именемудаленной машины, как было описано выше, объект создается на указанном компьютере. А если записьдля класса в реестре содержит значение ActivateAtStorage, то объект создается на той машине, гдерасположен заданный файл или хранилище.Возможно также, что машина, на которой вызывается CoGetInstanceFromFile илиCoGetInstanceFromIStorage, вообще не имеет информации о данном классе — локальный реестр можетне содержать записи для соответствующего CLSID.

Тогда предпринимается попытка создать объект натой машине, где находится указанный файл или хранилище. Если и в реестре той машины нет никакойинформации о данном классе, вызов функции завершается с ошибкой. В противном случае объектсоздается на той же машине, где находится файл или хранилище, как если бы в локальном реестре былозначение ActivateAtStorage.Использование моникераЧтобы создать удаленный объект, клиент может воспользоваться и моникером — объектом,который знает, как создать и инициализировать один экземпляр другого объекта.

Моникеры могутвыполнять создание экземпляров и инициализацию объектов как на локальных, так и на удаленныхмашинах. Для клиента моникера невидимо, исполняется созданный моникером объект локально илиудаленно. Место, где выполняется объект, может быть невидимо и самому моникеру.Когда клиент вызывает для моникера IMoniker::BindToObject, последний обычно вызываетCoCreateInstance с CLSID, полученным из своих перманентных данных. Затем моникер инициализируетвновь созданный объект, используя информацию своих перманентных данных — например, имя файла.Если для CLSID, передаваемого моникером CoCreateInstance, в реестре указана удаленная машина, тообъект будет создан на этой машине.

При этом сам моникер не узнает, что он создал удаленный объект.Но моникер может быть в курсе того, что создает объект на удаленном компьютере. Привызове клиентом метода моникера IMoniker::BindToObject есть вероятность, что перманентноехранилище объекта, указываемого моникером, находится на удаленной машине и что в реестреклиентской машины для класса объекта указано ActivateAtStorage. В этом случае моникер создаетобъект на той машине, где находится перманентное хранилище объекта, подобно CoGetInstanceFromFileи СоGetInstanceFromIStorage.Файловый моникер содержит имя файла, которое обычно задает и местонахождениеперманентных данных объекта (файл) и класс объекта (определяется по расширению имени файла или,возможно, по содержимому файла).

Если данный файл хранится на удаленном файл-сервере, а не налокальной машине и если в реестре локальной машины присутствует ActivateAtStorage, моникерсоздаст объект на файл-сервере, а не на локальном компьютере.Моникер URL содержит URL, определяющий местонахождение перманентного хранилищаобъекта. Если в локальном реестре для класса объекта, идентифицируемого этим моникером URL,задано ActivateAtStorage, то вызов метода моникера IMoniker::BindToObject создаст объект накомпьютере, указанном URL, а не на машине, где исполняются моникер и/или его клиент.

Затем,моникер приказывает объекту загрузить его перманентные данные по информации, заданной URL. И,подобно CoGetInstanceFromFile и CoGetInstanceFromIStorage, файловый моникер или моникер URLавтоматически пытаются создать объект на той же машине, где находится его перманентное хранилище,если в локальном реестре моникером не найдено информации о классе объекта.Доступ к удаленному объектуВозможность удаленного создания объекта СОМ — первое, что нужно для работы враспределенной среде. С точки зрения клиента, доступ к такому удаленному объекту осуществляетсятак же, как и к локальному — все абсолютно одинаково.

Однако скрывающаяся за этим реальностьгораздо сложнее — ведь для доступа к удаленным методам используются механизмы, совершенноотличные от механизмов работы с локальными объектами.5Объектный RPCПосле запуска удаленного объекта и получения указателей его интерфейсов клиент можетвызывать методы этих интерфейсов. Вызов метода объекта "в процессе", по сути, означаетнепосредственное обращение к нему через виртуальную таблицу (а в случае диспинтерфейса и черезIDispatch::Invoke). Обращение к методу объекта, реализованного в локальном сервере, требует участиязаместителя, заглушки и некоторого механизма коммуникаций между процессами.Вызов метода объекта, реализованного в удаленном сервере, также использует заместитель изаглушку, но в данном случае клиенту необходимо выполнить вызов удаленной процедуры (RPC)сервера.

Протоколов RPC хватает в избытке, и Microsoft решила не создавать новый, но адаптироватьсуществующий. Этот протокол — Microsoft называет его MS RPC — заимствован из OSF DCE(Microsoft, однако, не заимствовала у OSF реализацию протокола; MS RPC представляет собой другуюреализацию DCE RPC, созданную на основе общедоступной спецификации). Как сам MS RPC, так и егомодификация для DCOM — объектный RPC (Object RPC) — посылают по сети информацию в том жеформате, что и DCE RPC (т.е.

используют ту же структуру пакета). Хотя ORPC включает ряд новыхсоглашений по взаимодействию клиента с сервером, добавляет несколько новых типов данных ииспользует некоторые поля пакета особым образом, сама структура пакетов осталась прежней.DCE RPC и MS RPC на самом деле включают в себя два разных протокола, которыеподдерживаются и ORPC. Один из них — CN или СО — используется поверх протоколов сустановлением логических соединений (connection-oriented protocols), таких как TCP (TransmissionControl Protocol).

Поскольку CN подразумевает, что нижележащий протокол гарантирует надежнуюдоставку данных, то он не проверяет точность передачи. Другой протокол — DG или CL —используется поверх транспорта без установления логического соединения (также называемогопротоколом дейтаграмм), такого как UDP (User Datagram Protocol). Рассматривая нижележащийпротокол как совершенно ненадежный, DG реализует собственные механизмы, гарантирующиенадежную доставку данных.

Характеристики

Тип файла
PDF-файл
Размер
185,94 Kb
Тип материала
Высшее учебное заведение

Список файлов курсовой работы

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