幸運的是,隨著企業的需求日增與技術演進,現在我們已擁有多種選擇可輕易地整合.NET與J2EE兩大平台。在目前的技術中,兩者的整合機制可分成三種類型:
底層協定(Wire Level)
這是走低階協定以進行整合的第一種方式。當然,除了「苦工式」整合,也就是自己建立socket或經HTTP通訊協定進行之外,技術人員也可考慮選用協力廠商的產品,例如:Intrinsyc Software的Ja.NET,或是JNBridge旗下的整合軟體等。(前者當然是Java與.NET名稱的整合,後者為Java與.NET橋樑的意思)。
其中,「Ja.NET」可視為Java之上的.NET Remoting(編按:Microsoft .NET Framework內的主要元件)的堆疊實作,而在Java平台上提供Ja.NET的執行時期模組(Run time),可支援TCP/IP、HTTP等溝通管道,也可同時支援SOAP或是二進位互通協定以提升溝通效率。透過此執行時期模組,.NET與Java/J2EE的資料型別不僅可以對應,還能進行雙向的溝通。
JNBridge也是類似架構,透過對應的執行時期模組與代理程式(proxy),.NET程式可以在不需要Java原始程式的狀況下與這些元件進行互通、繼承,並將其視為同一個程式內的.NET元件。以下為JNBridgePro的架構圖:
這類整合方式有諸多優點,包括更佳的互通效率、物件參考與生命週期的控制、支援回呼程式(call back)與事件(event),而能有更緊密的整合效益。但相反的,因為是較緊密型的整合,彈性也會變低。另外,這類整合也通常缺少動態尋找並新增服務的機制。一般來說,對於企業內部不同平台的整合仍是非常不錯的選擇。
訊息佇列或集線器(Message Queues或Hub)
點對點的整合只適合初期專案,也許利用上述的底層協定方式,或是下文將會提及的Web services進行互通。但是當.NET有N個模組,J2EE有M個模組,要互通就需要建立「N*M」的點對點連線,複雜性與困難度將之提升。因此,當整合進行到一定規模,可以開始考慮採用類似訊息佇列或是集線器等方式進行。
目前可見軟體,如MSMQ、IBM WebSphere MQ、Microsoft HIS、BizTalk Server,或者是Mind Electric公司的GAIA等,都能有效的將整合數量如同集線器一樣減至N+M的狀態。
這類技術概念如同集線器,可以整合不同的介面或透過外掛的Adaptor增加對於不同介面的支援。以Microsoft BizTalk為例,微軟與協力廠商所開發的Adaptor便超過一百個,其中包括SAP、Siebel、Java/J2EE、Web services、SQL Server、IBM WebSphere MQ等相對應的Adaptor。
換句話說,只要把先前.NET的N個模組與J2EE的M個模組各自透過Adaptor「安插」至類似BizTalk Server等具備「集線器概念」的伺服器,即能整合與應用不同元件。
由於不同平台之間的元件是非常鬆散結合的(loosely couple),相依性較低而適合N對M的整合以達到「服務導向架構」(SOA)的目標,這也是此類整合的諸多優點之一。例如,將一個.NET元件經Adaptor串接至某集線器概念伺服器之後,將可用不同的方式存取此元件,也許是經由J2EE、或者是利用Web services,甚至是IBM的MQ Series。如此一來,對.NET元件開發者而言,完全不必擔心未來使用這個元件的對象與技術平台為何。
為滿足進階的需求,這類型伺服器部分也內建安全性、交易、路由器等功能,導入成本當然所費不貲,甚至個別的Adaptor也要分開購買,因而適合有大量整合需求的企業採用。
網路服務(Web services)
前述兩種方式之外,以SOAP為基礎的Web services進行異質平台整合,可說是最具彈性與成本優勢的選擇。雖然Web services的規格在WS-I等國際組織推動之下,仍是「現在進行式」,但對於.NET與J2EE兩大平台進行基本整合與互通而言已是遊刃有餘。目前.NET與J2EE兩大平台都有對應的Web services實作,包括:
其中,Mind Electric將Glue稱為Java Web services的「Turbo Pascal」,意思為用Java撰寫Web services最簡單、最容易入門的工具。除簡單易用之外,Glue可單獨運作或是外掛至不同的應用程式伺服器,包括WebLogic、WebSphere、JBoss等,而其執行效率也比很多其他品牌的應用伺服器所實作的Web services效率更佳。
若從技術細節剖析,透過Glue可以將EJB對外包裝成Web services,並可以和JASS進行安全性整合、透過JMS提供可依賴的訊息機制…等。因此如果只是想單純的加入Web services支援,使用Glue會比昇級應用伺服器更划算。
進行整合的階段
雖然上面介紹了眾多不同整合的技術,但是一旦企業產生異質平台整合的需求,透過Web services先建立一個連接點對點的實驗性專案是比較好的選擇,一方面因為不同平台對應的技術已經非常成熟而開發容易,另一方面也是最節省成本而能清楚檢視效益的方式。
當然,如果不滿足於互通的效率,或是希望更進一步的進行更緊密的整合,包括繼承、雙向溝通、資料型別的對應等,使用協力廠商所提供的低階整合技術也是可以考慮的選擇。
一旦整合端點進行到超過一定數量以上,便該開始考慮訊息佇列或是集線器概念伺服器等的軟體,將可以大幅增進異質平台整合的速度。上圖是進行異質平台的選項指引:
在熟悉了這些整合技術之後,下ㄧ期開始將開始說明不同企業透過Web services進行整合的應用案例與分析。
6.蕉哥 於 2005/04/19 08:42 回應
快去 !快去撞 ! 撞完你就看懂他再說什麼囉 ~~~
配合著天空轉來轉去的星星月亮太陽...
更懂得作者再說什麼喔 !
5.台客 於 2005/04/10 22:07 回應
您們怎麼那麼厲害,都可以瞭解...您們怎麼那麼厲害,圖畫成那樣
都可以瞭解作者再說什麼,
還可以指指點點.
我都有看沒有懂! 我要去撞牆了 !
4.Bill Gates 於 2004/05/16 08:49 回應
上面的 你實在太沒眼光了 這大概是我有生以來看過最好的資訊評論超級讚的
應該請外國人把他翻譯成多國版本
放在各大資訊網站讓大家欣賞才對...
3.豬哥亮 於 2004/05/12 20:46 回應
我也來加一句: 微軟是我主子.因此,雖然生在盜版王國大陸,但我仍然用正版的.
2.微軟粉絲 於 2004/05/12 18:17 回應
我也來加一句, 真是太了不起了, 微軟萬歲 !我也來加一句, 真是太了不起了, 微軟萬歲 !
1.莊景明 於 2004/05/10 14:23 回應
真是精湛的見解,看來台灣微軟還是有高手存在了不起.