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