RMI - Remote Method Invocation

RMI (англ. Remote Method Invocation) — программный интерфейс вызова удаленных методов в языке Java.

Распределенная объектная модель, специфицирующая, каким образом производится вызов удаленных методов, работающих на другой виртуальной машине Java.

При доступе к объектам на другом компьютере возможно вызывать методы этого объекта. Необходимо только передать параметры метода на другой компьютер, сообщить объекту о необходимости выполнения метода, а затем получить обратно возвращаемое значение. Механизм RMI дает возможность организовать выполнение всех этих операций.

Типичная реализация модели Java-RMI, использующая объекты 'заглушки'(stub) и 'скелета'(skeleton).

В терминах RMI объект, который вызывает удаленный метод, называется клиентским объектом, а удаленный объект — серверным объектом. Компьютеры выступают в роли клиента и сервера только для конкретного вызова. Вполне возможно, что при выполнении следующей операции эти компьютеры поменяются ролями, то есть сервер предыдущего вызова может сам стать клиентом при обращении к объекту на другом компьютере.

При вызове метода удаленного объекта на самом деле вызывается обычный метод языка Java, инкапсулированный в специальном объекте-заглушке (stub), который является представителем серверного объекта. Заглушка находится на клиентском компьютере, а не на сервере. Она упаковывает параметры удаленного метода в блок байтов. Каждый параметр кодируется с помощью алгоритма, обеспечивающего независимость от аппаратуры. Например, числа всегда передаются в порядке, при котором сначала передается старший байт (big-endian). При этом объекты подвергаются сериализации. Процесс кодирования параметров называется развертыванием параметров (parameter marshaling). Основная цель развертывания параметров — преобразование их в формат, пригодный для передачи параметров от одной виртуальной машины к другой.

Метод, принадлежащий заглушке, создает блок, в который входят следующие элементы:

идентификатор удаленного объекта;

описание вызываемого метода;

развернутые параметры.

Затем метод заглушки посылает эту информацию серверу. Далее объект-получатель выполняет для каждого вызова удаленного метода следующие действия:

свертывание параметров;

поиск вызванного объекта;

вызов заданного метода;

извлечение и развертывание возвращаемого значения или исключения, сгенерированного данным методом;

передача пакета, состоящего из развернутых возвращаемых данных, объекту-заглушке на клиентском компьютере.

Клиентский объект-заглушка свертывает возвращаемое значение или исключение, полученное с сервера. Результат свертывания становится возвращаемым значением метода заглушки. Если удаленный метод возвращает исключение, то объект-заглушка повторит его в среде объекта-клиента.

Для вызова удаленного метода используется тот же синтаксис, что и для обращения к локальному методу. Например, чтобы вызвать метод getQuantity() объекта-заглушки centralWarehouse центрального хранилища данных на удаленном компьютере, потребуется использовать приведенный ниже код.

int q=centralWarehouse.getQuantity(“SuperSucker 100 Vacuum Cleaner”);

Для доступа к удаленным методам клиентский код всегда использует объектные переменные типы interface. Например, с приведенным выше методом может быть связан следующий интерфейс:

interface Warehouse {

int getQuantity(String description) throws RemoteException;

Product getProduct(Customer cust) throws RemoteException;

}

Объявление переменной для объекта, который реализует этот интерфейс, будет выглядеть так:

Warehouse centralWarehouse = …;

Конечно, интерфейсы представляют собой абстракции и содержат только перечень методов. Переменные типа interface всегда должны быть связаны с фактическим объектом. При вызове удаленных объектов переменная ссылается на объект-заглушку. При этом клиентская программа ничего не знает о типе заглушки, а сами заглушки и связанные с ними объекты создаются автоматически.

При передаче объекта другой программе (он может быть параметром либо возвращаемым значением удаленного метода) нужен файл класса, соответствующий этому объекту. Например, метод, который возвращает значение типа Product. При компиляции клиентской программы должен быть сгенерирован файл класса Product.class.

При загрузке фрагментов кода по сети всегда возникают сомнения по поводу должного обеспечения безопасности. В связи с этим в приложениях с использованием RMI применяется диспетчер защиты. Он защищает заглушки от проникновения в них вирусов.


Системы именований

-Служба доменных имен (DNS) - это система для именования компьютеров и сетевых служб, которая организует их в доменную структуру. Система именования DNS используется в сетях TCP/IP (например в Интернете) для нахождения компьютеров и служб по понятным именам. Когда пользователь вводит в приложении имя DNS, службы DNS могут сопоставить имя с другими сведениями, например с IP-адресом.

Например, большинство пользователей предпочитают для поиска в сети почтовых или веб-серверов иметь дело с понятными именами, например corp.contoso.com. Понятное имя легче запомнить. Однако компьютеры связываются друг с другом по сети с помощью числовых адресов. Чтобы облегчить использование сетевых ресурсов, системы именования, например служба DNS, обеспечивают сопоставление понятного имени компьютера или службы с его числовым адресом.

Роль DNS-сервера в операционной системе Windows Server 2008 объединяет поддержку стандартных протоколов DNS с преимуществами интеграции в доменные службы Active Directory и другие функциональные возможности безопасности и сетевых технологий Windows, включая такие расширенные возможности, как безопасные динамические обновления записей ресурсов DNS.

Функциональные возможности сервера

Роль DNS-сервера предоставляет следующие функциональные возможности:

DNS-сервер, соответствующий требованиям RFC

DNS - это открытый протокол. Он стандартизован в наборе документов RFC. Корпорация Майкрософт придерживается этих стандартных спецификаций.

Взаимодействие с другими внедрениями DNS-серверов

Так как служба DNS-сервера в операционной системе Windows Server 2008 совместима с RFC и может использовать стандартные форматы файла данных DNS и записей ресурсов, она может в полной мере работать с другими внедрениями DNS-серверов, такими как серверы, использующие программное обеспечение BIND.

Поддержка доменных служб Active Directory

Служба DNS необходима для поддержки доменных служб при предоставлении компьютерам в сети возможности находить контроллеры домена, а также для поддержки репликации доменных служб Active Directory. При установке роли сервера доменных служб Active Directory вместе с этим необходимо установить и настроить службу DNS-сервера на новом контроллере домена. Таким образом, будет достигнута наилучшая интеграция и поддержка доменных служб, а также улучшение функциональных возможностей DNS-сервера. Однако можно использовать и другой тип DNS-сервера для поддержки развертывания доменных служб Active Directory. При использовании других типов DNS-серверов учтите дополнительные вопросы, связанные с взаимодействием DNS.

Улучшения, связанные с хранилищем зоны DNS в доменных службах Active Directory

Зоны DNS могут храниться в разделах каталога домена или приложений, принадлежащих доменным службам Active Directory. Раздел каталога приложений - это структура данных в доменных службах Active Directory, в которых данные разделяются в соответствии с различными назначениями репликации. Можно указать, в каком разделе каталога приложений доменных служб Active Directory будет храниться зона, затем - набор контроллеров домена, между которыми будут реплицироваться данные зоны. Служба DNS-сервера поддерживает два раздела каталога приложений в каждом домене и лесу для хранения зон и их стандартной репликации: DomainDnsZones и ForestDnsZones.

Серверы условной пересылки

Служба DNS-сервера увеличивает функциональные возможности стандартных серверов пересылки, предоставляя серверы условной пересылки. Сервер условной пересылки - это DNS-сервер в сети, который пересылает DNS-запросы в соответствии с DNS-именем домена в запросе. Например, можно настроить DNS-сервер на пересылку всех получаемых им запросов, которые заканчиваются на corp.contoso.com, на IP-адрес определенного DNS-сервера или IP-адреса нескольких DNS-серверов.

Зона-заглушка

DNS поддерживает тип зоны, которая называется зоной-заглушкой. Зона-заглушка - это копия зоны, которая содержит только те записи ресурсов, которые необходимы для идентификации полномочных DNS-серверов этой зоны. Зона-заглушка содержит DNS-сервер, на котором размещена родительская зона, обновленная полномочными DNS-серверами для дочерней зоны. Она способствует эффективности разрешения DNS-имен.

Улучшенные функциональные возможности безопасности DNS

DNS обеспечивает улучшенное администрирование безопасности службы DNS-сервера, службы DNS-клиента и данных DNS.

Интеграция с другими сетевыми службами корпорации Майкрософт

Служба DNS-сервера предоставляет возможность интеграции с другими службами и содержит функциональные возможности, превышающие функции, определенные в документах RFC. Эти функциональные возможности включают интеграцию с доменными службами Active Directory, службами WINS и DHCP.

Улучшение администрирования

В диспетчере DNS, оснастке DNS в консоли управления (MMC), предоставляется улучшенный графический интерфейс для управления службой DNS-сервера. Также существует несколько мастеров настройки для выполнения обычных задач администрирования сервера. Кроме оснастки DNS, предоставлены другие средства, которые способствуют управлению и поддержке DNS-серверов и клиентов в сети.

Поддержка протокола динамического обновления, совместимого со стандартами RFC

Служба DNS-сервера разрешает динамическое обновление записей ресурсов, основанное на протоколе динамического обновления (документ RFC 2136). Это способствует улучшению администрирования DNS путем уменьшения времени, необходимого для управления этими записями вручную. Компьютеры, на которых работает служба DNS-клиента, могут динамически зарегистрировать собственные DNS-имена и IP-адреса.

Поддержка добавочных передач зоны между серверами

DNS-серверы, в файлах которых хранятся данные DNS, используют передачи зоны для репликации сведений о части пространства имен DNS. При передачах зон, не интегрированных в доменные службы Active Directory, служба DNS-сервера использует добавочную передачу зоны для репликации только измененной части зоны, что улучшает пропускную способность сети.

Разрешение имен узлов, состоящих из одного DNS-имени, без использования WINS

Служба DNS-сервера поддерживает зону глобальных имен GlobalNames для хранения имен с одним DNS-именем, то есть имен, которые не содержат имени родительского домена (например .com). В сетях, где не используется служба WINS, такая зона предоставляет возможность разрешения имен, состоящих из одного DNS-имени, для ограниченного набора централизованно управляемых серверов с фиксированными IP-адресами.

-Active Directory («Активные директории», AD) — LDAP-совместимая реализация службы каталогов корпорации Microsoft для операционных систем семейства Windows NT. Active Directory позволяет администраторам использовать групповые политики для обеспечения единообразия настройки пользовательской рабочей среды, разворачивать программное обеспечение на множестве компьютеров через групповые политики или посредством System Center Configuration Manager (ранее Microsoft Systems Management Server), устанавливать обновления операционной системы, прикладного и серверного программного обеспечения на всех компьютерах в сети, используя Службу обновления Windows Server. Active Directory хранит данные и настройки среды в централизованной базе данных. Сети Active Directory могут быть различного размера: от нескольких десятков до нескольких миллионов объектов.

Active Directory поддерживает следующие форматы именования объектов: универсальные имена типа UNC, URL и LDAP URL. Версия LDAP формата именования X.500 используется внутри Active Directory.

Каждый объект имеет различающееся имя (англ. distinguished name, DN). Например, объект принтера с именем HPLaser3 в подразделении «Маркетинг» и в домене foo.org будет иметь следующее различающееся имя: CN=HPLaser3,OU=Маркетинг,DC=foo,DC=org, где CN — это общее имя, OU — раздел, DC — класс объекта домена. Различающиеся имена могут иметь намного больше частей, чем четыре части в этом примере. У объектов также есть канонические имена. Это различающиеся имена, записанные в обратном порядке, без идентификаторов и с использованием косых черт в качестве разделителей: foo.org/Маркетинг/HPLaser3. Чтобы определить объект внутри его контейнера, используется относительное различающееся имя: CN=HPLaser3. У каждого объекта также есть глобально уникальный идентификатор (GUID) — уникальная и неизменная 128-битная строка, которая используется в Active Directory для поиска и репликации. Определённые объекты также имеют имя участника-пользователя (UPN, в соответствии с RFC 822) в формате объект@домен.

- Файловая система

- DIB (SMTP) (в лекциях есть, в нете нет) – именование организаций, приложений…









Дата добавления: 2018-09-24; просмотров: 622;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.017 сек.