160 likes | 286 Views
Софийски Университет “ Св. Климент Охридски ”. RMI over IIOP. Кратък технически обзор. Светлин Наков www.nakov.com. Технологията RMI. RMI е съкращение от Remote Method Invocation Представлява Java технология за разработка на разпределени приложения
E N D
Софийски Университет“Св. Климент Охридски” RMI over IIOP Кратък технически обзор Светлин Наков www.nakov.com
Технологията RMI • RMI е съкращение от Remote Method Invocation • Представлява Java технология за разработка на разпределени приложения • Позволява обекти от една JVM да използват обекти от други (отдалечени) JVM • Използват се обикновени Java интерфейси • Комуникацията е прозрачна за програмиста • С отдалечените обекти се работи също както с обикновени Java обекти – разликата е само в начина на инстанциране • Поддържа се distributed garbage collector
Протоколът IIOP • IIOP е съкращение от Internet Inter-ORB Protocol • Позволява програми написани на различни езици да комуникират по TCP/IP мрежи чрез отдалечено извикване на методи • Разработен е от Object Management Group (OMG) • Основен преносен протокол в Common Object Request Broker Architecture (CORBA)стандарта • Чрез него си комуникират ORB-тата на CORBA-базирани разпределени приложения • Използва за транспортен слой TCP • Предава заявките и отговорите в бинарен вид
Нуждата от RMI over IIOP • Технологията RMI • е лесна за употреба, но специфична за Java • използва за преносен слой протокола JMRP (Java Remote Message Protocol) • Технологията CORBA • e платформено и езиково независима, но e сложна за използване • използва за преносен слой протокола IIOP • Целта на RMIover IIOP (RMI-IIOP) e • да комбинира леснотата на работа с RMI и междуплатформената преносимост на CORBA • да осигури на RMI взаимодействие с CORBA
Протоколът RMI-IIOP • Разработен е съвместно от IBM и Sun • Дава възможност RMI обекти да използват IIOP протокола за да комуникират с CORBA обекти и помежду си • Изпълнява пълната функционалност на CORBA Object Request Broker-ите (ORB) • Дава възможност на Java 2 програмистите да пишат CORBA приложения без да разбират от IDL • Позволява пренасяне на сериализирани обекти между компонентите на разпределени Java приложения, както при RMI
RMI-IIOP в Java 2 платформата • Позволява CORBA клиенти да извикват Java RMI сървъри • Позволява Java RMI клиенти да извикват CORBA сървъри (когато интерфейсите им са съвместими) • RMI обектите могат да комуникират по между си както по JRMP, така и по IIOP • Всеки CORBA клиент може да ползва RMI сървър по RMI-IIOP, но обратно не винаги е възможно • Компилаторът rmicима специална опция, която указва дали да се генерират IIOP или JRMPstubs и skeletons
RMI-IIOP или RMI (JRMP) • Предимствата на RMI-IIOP: • Позволява взаимодействие с други езици за програмиране и платформи • Поддържа автоматично предаване на контексти за транзакция и за сигурност • Предимства на RMI (JRMP): • Поддържа distributed garbage collection • След извличане на обект от naming услугата се извършва typecasting, а не narrow • Константите в отдалечения интерфейс могат да бъдат не само от примитивни типове
JRMP RMI Server RMI Client CORBA Server CORBA Client IIOP RMI и CORBA – взаимодействие • Преди въвеждането на RMI-IIOP
RMI Client RMI Server RMI-IIOP Client RMI-IIOP Server CORBA Client CORBA Server RMI и CORBA – взаимодействие • След въвеждането на RMI-IIOP ... взаимодействието е много по-богато
Създаването на RMI-IIOP • Нуждата от съвместимост между RMI и CORBA стандартите е осъзната от Java и CORBA общностите • За установяване на съвместимост между RMI и CORBA се налагат някои промени: • Objects by value – позволява пренасяне на сложни структури от данни (всички сериализируеми Java обекти) през IIOP • Java-to-IDL mapping – нова, променена версия на спецификацията • Създава се стандарта CORBA 2.3, в който са нанесени необходимите промени
Разработка на Java приложения с RMI-IIOP
Разработка на C++ приложения с RMI-IIOP
Перспективи пред IIOP и RMI-IIOP • Преодоляване на различията между RMI и CORBA след въвеждането на RMI-IIOP • Java RMI интерфейсите не поддържат всичките възможности на IDL (не всеки IDL има аналог в RMI) • CORBA не поддържа distributed garbage collection • Security моделите на RMI и CORBA се различават • Интеграция на IIOP с .NET Remoting • IIOP.NET свързва .NET Remoting с CORBA и RMI аналогично на RMI-IIOP • Borland Janeva – имплементира IIOP канал в .NET Remoting
Използвана литература • Wollrath A. and Waldo J., The Java Tutorial: RMI – http://java.sun.com/docs/books/tutorial/rmi/ • TechTarget Network – IIOP Glossary Definition – http://searchnetworking.techtarget.com/gDefinition/0,294236,sid7_gci214019,00.html • Java RMI-IIOP Documentation – http://java.sun.com/j2se/1.3/docs/guide/rmi-iiop/ • Hagge D., RMI-IIOP in the Enterprise – http://www-106.ibm.com/developerworks/java/library/j-rmi-iiop/ • Andoh A., Nash S., RMI over IIOP – http://www.javaworld.com/javaworld/jw-12-1999/jw-12-iiop.html
Използвана литература • Programming WebLogic RMI over IIOP – http://edocs.bea.com/wls/docs81/rmi_iiop/index.html • Ergul S., Java Primer: RMI Over IIOP – When the Java and CORBA Worlds Collide – http://www.adtmag.com/java/articleold.asp?id=687 • IIOP.NET – http://iiop-net.sourceforge.net/ • Borland Janeva – http://www.borland.com/janeva/
Дискусия Въпроси?