我们已经知道,CORBA的一项主要特性就是对RPC(远程过程调用)的支持。利用这一技术,我们的本地对象可调用位置远程对象内的方法。当然,目前已有一项固有的Java特性可以做完全相同的事情:RMI(参考第15章)。尽管RMI使Java对象之间进行RPC调用成为可能,但CORBA能在用任何语言编制的对象之间进行RPC。wenwentang.com这显然是一项很大的区别。
然而,可通过RMI调用远程、非Java代码的服务。我们需要的全部东西就是位于服务器那一端的、某种形式的封装Java对象,它将非Java代码“包裹”于其中。封装对象通过RMI同Java客户建立外部连接,并于内部建立与非Java代码的连接——采用前面讲到的某种技术,如JNI或J/Direct。
使用这种方法时,要求我们编写某种类型的“集成层”——这其实正是CORBA帮我们做的事情。但是这样做以后,就不再需要其他厂商开发的ORB了。