Введение

RMI IIOP (читается как "RMI over IIOP") обозначает интерфейс Java Remote Method Invocation (RMI) поверх протокола Internet Inter Orb Protocol (IIOP), который предоставляет возможности распределенных вычислений Common Object Request Broker Architecture (CORBA) платформе Java. Изначально он был основан на двух спецификациях: сопоставлении языка Java с OMG IDL и CORBA/IIOP 2.3.1. Благодаря функциям, унаследованным от CORBA, программные компоненты, работающие совместно, могут быть написаны на разных языках программирования и выполняться на различных компьютерах. Иными словами, он поддерживает разнородные платформы и позволяет осуществлять удаленные вызовы процедур для выполнения подпрограмм на другом компьютере в соответствии с определением RMI.

История

Спецификация Java RMI IIOP была разработана для упрощения разработки приложений CORBA с сохранением всех основных преимуществ. Она была создана компаниями Sun Microsystems и IBM, объединяя возможности технологии Java RMI и технологии CORBA.

Спецификация

RMI IIOP использует генерируемый код для удаленных объектов и не требует дополнительных классов для нетривиальных данных, в отличие от CORBA. Это обеспечивает меньшую сложность и меньший размер. И CORBA, и RMI IIOP используют общий стандарт межорбитального взаимодействия – протокол General Inter-ORB Protocol. RMI IIOP в значительной степени основан на концепции "Объект по значению", которая служит контейнером или прямой заменой для структур, объединений, последовательностей, массивов и строк CORBA. Отдельное описание интерфейса IDL не требуется. Вместо этого определения структур данных обнаруживаются автоматически посредством механизмов рефлексии. Однако возможно генерировать определения IDL для используемых структур данных RMI IIOP и применять их для более тонкой настройки взаимодействия между RMI IIOP и партнерами CORBA. В последних версиях RMI IIOP слуги (servants) выводятся из стандартного класса Servant. Следовательно, их можно вручную подключить к CORBA ORB, используя один или несколько портативных адаптеров объектов (Portable Object Adapters), портативных перехватчиков (Portable Interceptors), служб именования CORBA, а также другие стандартные возможности CORBA.