RMI-IIOP

RMI-IIOP

RMIJava為核心,可與採用本機方法與現有系統相連接。IIOP,Internet Inter-ORB Protocol(網際網路內部對象請求代理協議),它是一個用於CORBA 2.0及兼容平台上的協議。用來在CORBA對象請求代理之間交流的協議。Java中使得程序可以和其他語言的CORBA實現實現互操作性的協議。

簡介


RMI以Java為核心,可與採用本機方法與現有系統相連接。這就是說,RMI可採用自然、直接和功能全面的方式為您提供分散式計算技術,而這種技術可幫助您以不斷遞增和無縫的方式為整個系統添加Java功能。
RMI-IIOP出現以前,只有RMI和CORBA兩種選擇來進行分散式程序設計,二者之間不能協作。RMI-IIOP綜合了RMI 和CORBA的優點,克服了他們的缺點,使得程序員能更方便的編寫分散式程序設計,實現分散式計算。
首先,RMI-IIOP綜合了RMI的簡單性和CORBA的多語言性(兼容性),其次RMI-IIOP克服了RMI只能 用於Java的缺點和CORBA的複雜性(可以不用掌握IDL)。

標準服務


RMI-IIOP由API組成,這些API允許使用不依賴於底層協議的RMI風格編程。作為那些API的實現,它同時支持Java SE本地RMI協議和CORBA IIOP協議。通過支持IIOP協議,Java EE應用程序就可以使用RMI-IIOP來訪問CORBA服務,並且該應用程序兼容RMI編程約束(請查看RMI-IIOP的詳細說明)。這樣的CORBA服務通常由Java EE產品之外的組件定義,一般存在於以前遺留下來的系統中。只要求Java EE應用程序客戶端可以使用RMI-IIOP API來直接定義它們自己的CORBA服務。通常這樣的CORBA對象用於在訪問其它的CORBA對象時進行回調。
當訪問EJB組件時,Java EE應用程序必須使用RMI-IIOP API,特別是javax.rmi.PortableRemoteObject類的narrow方法,正如EJB規範所描述的。這些企業Bean可以獨立於協議。需要注意的是,當使用依賴注入代替JNDI就行查找時,通常不需要使用narrow方法; 在注入對象引用之前,容器會為應用程序執行narrow方法。Java EE產品必須能夠使用IIOP協議輸出和訪問企業Bean,這在EJB規範中被明確規定。對IIOP協議的支持使Java EE產品之間的交互成為可能,不過,Java EE產品也可以使用其它的協議。