關於集成技術方面,我本不想比較,其實所有的開發者都明白一個道理,微軟的開發平台天生就具有集成的優勢,其實不用戰斗,這場戰役已經勝負明晰了,.NET身出名門,它在這場戰斗勝利,我想很多人不會持太大的歧義,那麼就讓我們來看看.NET在哪些方面勝過J2EE的。
雖然我是個Java狂熱者,在Java開發這三年多時間裡,它給了我很多的快樂和收獲,至少在生活,我可以用他來維持生計,但是今天我不得不把一些贊美的話留給.NET,因為我非常喜歡微軟的體系結構,早期我用VB開發的時候,就對微軟集成技術和API所歎服,他可以給你提供非常清晰解決方案和思想描述,並且非常的簡單易懂。
.NET集成技術
過去,微軟的體系結構只是建立在COM/DCOM基礎上,COM/DCOM是進程間通信的二進制標准。雖然這個標准本身沒有什麼失誤,但是它與微軟以外的領域格格不入。也就是說,這個標准成了實現與其它軟件平台集成之間的瓶頸。
除此之外,數據庫的操作方面也是一個問題,雖然ADO簡化了數據訪問,但是把數據從一個地方傳送到另外一個地方就成了問題,ADO Recordset(記錄集)對象是一個存儲數據的二進制結構,而這種二進制格式對於非微軟的平台沒有任何意義。
.NET彌補了這些缺陷,因為它完全基於標准。比如,數據用XML的格式通過進程邊界,而這個數據有一個到XSD的連接,所以任何客戶端都可以正確地轉化數據。
同時,.NET集成技術又完全體現在WebServices上。(基於SOAP的WebServices是微軟的創新,來源於微軟的簡單對象訪問協議,或者稱為SOAP)
.NET把WebServices作為唯一的集成解決方案,因此我們可以非常簡單的使用它。在.NET中使用WebServices就如同使用其他核心語言API一樣,例如Strings或Collections。
.NET與生俱來的優勢是任何一個開發平台 都無法比擬的,它可以和微軟用及非微軟很多相關產品進行有機的結合,能夠開發出更加優化的產品。
J2EE集成技術
Java(或J2EE)提供的集成API比微軟的要更廣泛並且更復雜。對於在企業中你所能想到的每一種集成技術J2EE都有一個相應的API。
在J2EE中,舉足輕重的API有JMS和EJBs。JMS是一個統一面向消息中間件的接口的規范,而EJB多重應用程序的標准,目前依然被頻繁用於不同的任務中。
在J2EE中還有簡單對象遠程規范RMI-IIOP,還有用於將Java程序連接到非Java程序和軟件包以及中間件的JCA適配器技術,Java程序員能夠間接地訪問數據庫的JDO規范,J2EE同時也沒有放棄WebServices,這可能是我所看到的最冗長的WebServices API-JAX-RPC。
總體來說,J2EE擁有一大堆API,但是其中的少數是你在開發中能用到的,並且很多API讓你感覺他非常的麻煩。
總結:
假如你有一個集成問題的時候,會選擇這兩種競爭技術的哪一種作為解決方案呢?除非你能從每一個可能的方面控制服務器的環境,那麼J2EE是你最佳的選擇。
以上所說只是我的個人感覺,在這個方面,.NET更具透明性,它的WebServices實現起來更平滑。
但是我們知道,企業集成業務通常是非常多樣的,企業通常不會讓一切東西都運行在Windows Server上,而是可能包括Solaris、Linux或HP-UX等多種系統的組合,這些情況都有可能左右你的選擇。
因此具體選擇哪一種平台,要根據你的實際情況來定,不可一概而論。