Министерство образования и науки Российской Федерации
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ОБРАЗОВАНИЯ
«РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ГИДРОМЕТЕОРОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ»
Факультет ИС и ГТ
Кафедра прикладной информатики
Реферат
На тему «Удаленный вызов метода, его реализация и использование»
Выполнил:
Студент 2 курса
группы ПИ-б15-1-1
Кочнев А.С.
Принял:
Преп. Дудкин Г. А.
Y
Введение 2
RMI-приложения 2
Интерфейсы в RMI 3
Уровни архитектуры RMI 4
Поиск удаленных объектов 4
Использование RMI 5
Пример RMI - приложения 5
Распространение классов RMI 8
Распределенная сборка мусора 9
Заключение 10
Оглавление
Введение 2
RMI-приложения 2
Интерфейсы в RMI 3
Уровни архитектуры RMI 4
Поиск удаленных объектов 4
Использование RMI 5
Пример RMI - приложения 5
Распространение классов RMI 8
Распределенная сборка мусора 9
Заключение 10
Введение
Главной целью разработчиков RMI было предоставление возможности программистам разрабатывать распределенные Java‑программы, используя такие же синтаксис и семантику, как и при разработке обычных нераспределенных программ. Для этого они должны были преобразовать модель работы классов и объектов в одной виртуальной машине Java™ (JVM) в новую модель работы классов и объектов в распределенной (несколько JVM) вычислительной среде.
RMI-приложения
Вызов Удаленных Методов Remote Method Invocation (RMI) является реализацией идей RPC для языка программирования Java.
RMI - продукт компании JavaSoft, разработанный для Java и интегрированный в JDK 1.1 и выше. RMI реализует распределенную модель вычислений и обеспечивает средства коммуникации между Java-программами (виртуальными Java-машинами), выполняющимися на одном или нескольких удаленных компьютерах. RMI позволяет клиентским и серверным приложениям через сеть вызывать методы клиентов/серверов, выполняющихся на виртуальных Java-машинах. Основное преимущество RMI заключается в том, что он предоставляет программисту программируемый интерфейс более высокого уровня, который позволяет передавать ссылку на удаленный объект в качестве аргумента или возвращать ее в качестве результата. RMI требует, чтобы на обоих концах соединения выполнялись Java-программы. Сетевое соединение достигается с использованием TCP/IP-протокола. Архитектура RMI приведена на рис. "Архитектура RMI".
Client Stub (переходник для клиента - некая сущность на клиенте, которая обеспечивает функции приема/передачи), и Server Skeleton (переходник для сервера - некая сущность на сервере, которая обрабатывает удаленные вызовы) порождены от общего интерфейса, но различаются тем, что Client Stub служит просто для подсоединения к RMI Registry, а Server Stub используется для связи непосредственно с функциями сервера.
RMI является в действительности новым видом брокера объектных запросов, который строится на объектной модели Java. Как и ORB, RMI вводит пять ключевых моментов:
1. Позволяет перемещать код в дополнение к данным.
2. Практически обеспечивает безопасность выполнения загружаемого кода.
3. Позволяет передавать объекты по значению.
4. Использует Java как язык определения интерфейса и как язык реализации.
5. Использует именующую схему на базе унифицированного указателя ресурсов Uniform Resource Locator (URL).
При этом производится преобразование объектов в последовательную форму - в поток байтов, передаваемых как параметр в сообщении с помощью протокола TCP/IP.
Интерфейсы RMI можно разделить на 4 категории:
- ядро RMI - определяет интерфейсы, необходимые для выполнения вызовов удаленных методов;
- служба именования RMI - определяет интерфейсы и классы, позволяющие получить ссылки на серверные объекты по имени;
- безопасность RMI - определяет новый менеджер безопасности RMI и интерфейсы загрузчика классов (RMI расширяет механизм загрузки классов Java по требованию на загрузку стаба);
- маршализация (упаковка запроса, включая параметры, возвращаемое значение, сам запрос, в стандартный формат, пригодный для передачи по сети) - RMI определяет интерфейсы нижнего уровня для маршализации удаленных объектов, которые используются для записи объектов Java в поток и для чтения объекта из потока.
JavaSoft и OMG работают над сближением объектных моделей RMI и CORBA. Это сближение происходит в двух областях:
- RMI через IIOP. JavaSoft разрабатывает версию RMI, которая работает поверх транспорта IIOP. IIOP предоставляет следующие преимущества для RMI:
1. Встроенную поддержку для распространения транзакций.
2. Поддержку брандмауэра на основе ORB с помощью заместителя IIOP (без HTTP-туннелирования).
3. Взаимодействие с объектами, написанными на других языках через подмножество RMI/IDL.
4. Открытый стандарт распределенных объектов.
- RMI/IDL. Стандарт CORBA Java в IDL является стандартом сближения CORBA/RMI. Он позволяет программистам Java определять интерфейсы CORBA c помощью семантики Java RMI вместо CORBA IDL. Компилятор использует эту семантику для автоматического создания CORBA IDL, стабов и скелетонов. Подмножество RMI/IDL позволяет программам RMI вызываться многоязычными клиентами CORBA с помощью IIOP; он также позволяет RMI-программам вызывать объекты CORBA, написанные на других языках.
RMI через IIOP кажется хорошим решением для системы CORBA/Java, поскольку объединяет две мощные технологии. Основным достоинством RMI является то, что с его помощью можно наиболее быстро и просто создать небольшую распределенную систему в чисто Java-среде. Основным недостатком RMI является невозможность интегрирования этого механизма с существующими приложениями.
