java和.net交互工具 jnbridgepro...
时间:2010-08-06 来源:chengjingdeni
JNBridgePro是一个通用的、Java和.NET的交互工具,用来“桥接Java和.NET”,包括EJBs、J2EE、J2SE、AWT、 Swing、SWT、.NET APIs、WinForms、ASP.NET及SharePoint Server。其核心产品基于.NET和Java的Remoting堆栈,并且针对调用代码在“被调用端”产生包含代理的二进制库。
最新公布的JNBridgePro 5.1主要的新特性列举如下:
* 支持Java和.NET类之间互访问的Visual Studio和Eclipse插件
* 完全的64位支持
* 数据压缩以实现更好的性能
JNBridgePro应用在.NET框架1.0、1.1、2.0、3.0及3.5和JDK 1.3.1及后续版本上。JNBridgePro 插件支持.NET框架2.0及后续版本以及JDK 1.4及后续版本。JNBridgePro独立的GUI依旧可用,它支持.NET框架和JDK的早期版本。
只要新的CLR和JVM是向后兼容的,那么在新的版本中使用当前的JNBridgePro就不会出现任何问题。如果加入了新的二进制格式,就会开发针对新格式和框架的JNBridgePro的新版本。
相对于Web Services和SOA,JNBridgePro有如下优势:
* JNBridgePro的TCP/二进制和共享内存机制要比Web Services快几个数量级。
* JNBridgePro 更适合访问扩展的面向对象的API,这与Web Service面向服务的方式正好相反,Web Service的这种方式会大大缩小访问点集合。在某些情况下,缩小的面向服务的方式是恰当的;但对于另外一些情况,JNBridgePro的面向对象的方式更加适合。
* 很多应用和库并不是面向Web Services的,并且在另外一些情况下,在同一台机器上或者同一个线程中使用Web Services去访问简单的库显得大材小用。JNBridgePro可以轻松应用到任何应用上,并且其共享内存机制对于同一台机器的访问是非常适合的,而Web Services在这种情况下就显得有些不合时宜。
* 实现Web Services是一个战略上的决定,通常需要来自组织的不同部门的决策者的批准才行。要想获得这个批准可能需要花费大量时间,并且很有可能还需要高层的批准。相反,JNBridgePro可以看做是战术上的解决方案,它允许端到端的交互,而这可能只需要开发者或者架构师级别上的人同意即可,并且实现这个是非常快的。当然,JNBridgePro也可以用在战略上,因为它具备了上面提到的一些优势。
JNBridgePro是Java和.NET之间的互交工具,能够将Java和.NET之间的任何对象联系起来,包括
Java side |
Object & class level |
.NET side |
Java side Java SE (J2SE) Java EE (J2EE) Java EE (J2EE) EJBs JMS JNDI Standalone JVMs AWT SWT Swing |
Objects Classes Instance members Static members Fields Properties Methods Generics Enums Events Transactions |
.NET rich-client GUIs ASP.NET Microsoft BizTalk Server SharePoint Server WinForm controls WPF |
JNBridgePro使得.NET程序可以在不需要Java原始程序的状况下与这些组件进行互通、继承,并将其视为同一个程序内的.NET组件,包括:跨平台的异常处理,集成的对象生命周期管理,垃圾回收,数据类型转换,以及对Eclipse和Visual Studio插件的支持。
图1 JNBridegPro对Eclipse的插件支持
图2 JNBridegPro对Visual Studio 2010的插件支持
使用JNBridgePro能够创建以下组织形式的Java和.NET应用程序:
- 相同主机上的同一进程共享内存
- 相同主机上的不同进程通过socket通信
- 网络上的任意主机采用快速二进制协议通信或使用HTTP/SOAP通信
图3 JNBridgePro通信机制
在应用中,即使用.NET又使用J2EE,实在不是一个好主意,不过很多场合下,可能你都无法避免会出现这种情况,你是使用什么方式来进行.NET和J2EE之间的通讯呢?JNBridge应该是一个好的选择。JNBridgePro的主页是http://www.jnbridge.com/jnbpro51.htm