Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > RMI


Автор: ElectricalStorm 16.2.2004, 14:15
Расскажите в двух словах что RMI такое ?

Автор: Sun 16.2.2004, 15:21
RMI - Remote Method Invocation, технология позволяющая удаленно запускать методы экземпляра класса (например как в DCOM COM+). На основе RMI построена технология CORBA.

Автор: XClan 16.2.2004, 15:22
Реестр RMI - это простой сервис имен удаленных объектов, который позволяет удаленным клиентам получать ссылку на удаленный объект по имени

Автор: KDA 16.2.2004, 16:24
По имени из реестра запрашивается удаленный объект, точнее его копия,
после чего все вызываемые клиентом методы будут вызываться на сервере,
а результат возвращается обратно клиенту.

Автор: Guest 9.9.2005, 17:03
Как реализовать RMI на локальной машине

Автор: AntonSaburov 9.9.2005, 18:05
Читайте FAQ - http://vingrad.ru/JAVA-JAV-000103

Автор: vzf 12.10.2005, 19:27
+ на javagu.ru есть неплохая статья с примерами и упражнениями по RMI

Автор: pvo 12.10.2005, 20:04
Цитата(Sun @ 16.2.2004, 15:21)
На основе RMI построена технология CORBA.

RMI - изначально был чисто явской технологией.
CORBA - изначально технология для взаимодействия объектов, написанных на разных языках.
Кроме того, CORBA появилась пораньше явы. http://www.alunos.di.fc.ul.pt/manuais/corba14/ch01/ch01.htm#Heading9

Автор: LSD 12.10.2005, 20:11
pvo CORBA использует RMI для вызовов методов.

Автор: pvo 12.10.2005, 20:17
Цитата(LSD @ 12.10.2005, 20:11)
CORBA использует RMI для вызовов методов.

Неверное утверждение. Как, например, работает CORBA в Delphi? Через RMI? smile

Автор: LSD 12.10.2005, 20:20
Реализация CORBA для Java использует RMI. Если тебе так больше нравится.

Автор: pvo 12.10.2005, 20:32
Цитата(LSD @ 12.10.2005, 20:20)
Реализация CORBA для Java использует RMI

о5 неверно. Правильно так: RMI может использовать IIOP для выполнения вызовов.
И возможность такая появилась сравнительно недавно.
http://java.sun.com/j2se/1.3/docs/guide/rmi-iiop/index.html

PS Реализаций CORBA для Java существует несколько.

Автор: LSD 12.10.2005, 20:35
Цитата(pvo @ 12.10.2005, 21:32)
Правильно так: RMI может использовать IIOP для выполнения вызовов.

А если не RMI, то что?

Автор: pvo 12.10.2005, 20:47
Цитата(LSD @ 12.10.2005, 20:35)
А если не RMI, то что?

Укрупненно схема CORBA взаимодействия такая:
Object1 <--> IIOP <--> Object2
Реализацию IIOP можно написать с использованием обычных сокетов.

В RMI с момента его выхода существует свой протокол обмена, отличный от IIOP. По-моему он называется RMITP (что-то типа RMI Transport Protocol)
о5 же укрупненно, схема взаимодействия в RMI:

JavaObject1 <--> RMITP <-->JavaObject2

А с недавнего времени ( с java 1.3 кажется) появилась такая схема:

JavaObject1 <--> RMITP <--> IIOP <--> Object2


Автор: LSD 12.10.2005, 20:49
Цитата(pvo @ 12.10.2005, 21:47)
Реализацию IIOP можно написать с использованием обычных сокетов.

Пример реализации IIOP без использования RMI в студию smile

Автор: pvo 12.10.2005, 21:00
Цитата(LSD @ 12.10.2005, 20:49)
Пример реализации IIOP без использования RMI в студию

Их есть у меня:

1. Delphi, Cpp & so on - там точно нет RMI, но есть сокеты.
2. Для Java - например, JacORB http://www.jacorb.org/features.html

Автор: LSD 12.10.2005, 21:13
Цитата(pvo @ 12.10.2005, 22:00)
Для Java - например, JacORB Here

Хорошо, исправим формулировку Реализация CORBA для Java иногда использует RMI.

Автор: pvo 12.10.2005, 21:24
Цитата(LSD @ 12.10.2005, 21:13)
Хорошо, исправим формулировку Реализация CORBA для Java иногда использует RMI.


Так лучше. Но правильнее поменять местами слова RMI & CORBA. Ведь называется же RMI-over-IIOP, а не IIOP-over-RMI smile

Автор: FatherFrost 17.10.2005, 11:10
pvo прав. RMI и CORBA - это разные технологии. Так в поставке JSDK есть как регистр RMI, так и ORB для CORBA. Вот через что реализован этот ОРБ я не знаю. Но знаю точно, что он нормально соединяется через сервис имен с удаленным объектом. В java, как и в срр изначально CORBA была реализована полностью, в отличии от Delphi, где долго не было реализации POA.

Автор: ZAVS 21.10.2005, 13:36
Новая технология называется RMI-IIOP. Она использует основные интерфейсы RMI и плюс к этому новые классы и интерфейсы из пакета javax.rmi. например PortableRemoteObject.
В RMI-IIOP использует JNDI вместо RMI registory.
И плюс ко всему вся технология EJB основано на RMI-IIOP. Так что к EJB можно обратиться и из не java обьектов .

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)