壹、分布式計算技術的形成
CORBA (Common Object Request Broker Architecture) 是在1992年由OMG(Open Management Group) 組織提出的。那時的分布式應用環境都采用Client/Server架構,CORBA的應用很大程度的提高了分布式應用軟件的開發效率。
當時的另壹種分布式系統開發工具是Microsoft的DCOM(Distributed Common Object Model)。Microsoft為了使在Windows平臺上開發的各種應用軟件產品的功能能夠在運行時(Runtime)相互調用(比如在Microsoft Word中直接編輯Excel文件),實現了OLE(Linked and Embedded Object)技術,後來這個技術衍生為COM(Common Object Model)。
隨著Internet的普及和網絡服務(Web Services)的廣泛應用, Browser/Server架構的模式逐漸體現出它的優勢。 於是,Sun公司在其Java技術的基礎上推出了應用於B/S架構的J2EE的開發和應用平臺;Microsoft也在其DCOM技術的基礎上推出了主要面向B/S應用的.NET開發和應用平臺。
二、使用的協議
.NET中涵蓋的DCOM技術和CORBA壹樣,在網絡傳輸層都采用TCP/IP協議;也都有自己的IDL規範。所不同的是,在TCP/IP之上,CORBA采用GIOP/IIOP協議,所有CORBA服務器以IIOP通信,形成了ORB軟件通道;J2EE的RMI曾經采用獨立的通信協議,目前已經改為RMI/IIOP,體現了J2EE的開放性;DCOM也有自己的通信協議(TCP在135端口的服務),但微軟沒有公開這個協議的規範;同樣,CORBA的IDL采用類C++的定義,是公開的規範;DCOM的IDL的文件雖然是文本形式的,微軟沒有正式公布它的規範,在使用中,.NET的IDL是由開發工具生成的。
三、應用的環境
關於.NET,比爾蓋茨這樣說:“簡單地說,.NET是以微軟的各種產品為開發工具和應用平臺, 實現基於XML的網絡服務。”由此也可以看出,.NET在Microsoft的世界裏功能強大,但對於Unix和Linux這些在服務器市場占主要份額的系統,.NET顯得束手無策。
因此,J2EE顯示了它跨平臺的優勢,為網絡服務商提供了很好的面向前端(front-end)的開發和應用平臺, 隨著網絡服務進壹步廣泛應用和服務集成度的提高, 在網絡服務提供商的後臺會形成越來越龐大的分布式計算環境, CORBA模塊結構更適合後臺(back-end)的多種服務, 例如網絡服務的計費程序等. 因此可以看出, J2EE和CORBA技術在網絡服務(Web Services)這片藍天下, 各自有自己的海洋和陸地。如果在前端(front-end)使用了.NET開發平臺,那麽在後端(back-end)的分布式結構中,DCOM就是理想的選擇。
J2EE是純Java技術,很多測試顯示RMI(Java)服務器的響應速度遠遠低於非Java的CORBA服務器。因此,在壹些對數據處理速度和響應時間要求較高的系統開發中,要對RMI和CORBA的性能進行測試對比後再做選擇。
四、應用軟件的開發和維護
從應用軟件的開發過程的角度看, J2EE是完全開放式的平臺, 體現為既面向設計人員, 也面向開發人員的規範; CORBA也是壹種規範, 但更多體現為中間產品, CORBA產品的提供商才是這種規範的真正執行者, 對應用開發的程序員而言, 只要了解IDL語言的規範, 不必詳細知道ORB/GIOP/IIOP的協議細節。.NET作為Microsoft在網絡環境的主打, 體現為壹系列產品化的開發工具, 比如C#, C++, 等。這些開發工具是直接針對應用開發人員的。其實Sun公司提供的J2EE也是由許多軟件包(應用API)來面對開發人員的。
從軟件開發成本與周期以及軟件的維護角度看,J2EE比CORBA有以上優勢。
五、應用前景
對於分布式計算技術的架構,不能絕對地說哪壹個更好,只能說哪壹個更合適。針對不同的軟件項目需求,具體分析才是明智的選擇。
從宏觀市場看,CORBA產品的銷售並沒有想象那樣給CORBA產品提供商帶來可觀的利潤;而J2EE的呼聲也高於.NET; 隨著J2EE中RMI/IIOP與CORBA接口的完善,再加上開發費用的考慮和使用的方便性,J2EE壹攬子開放的環境會是人們首先考慮的選擇;但CORBA標準的強壯的兼容性,也使這種技術在大型系統開發中會占有壹席之地。