1. 程式人生 > >J2EE、CORBA、DNA三種主流中介軟體平臺比較(3)

J2EE、CORBA、DNA三種主流中介軟體平臺比較(3)

三、主流中介軟體技術平臺
  下面重點闡述和比較了三大主流中介軟體技術平臺,使讀者加深對中介軟體技術理解。
  
  1.當前支援伺服器端中介軟體技術的平臺
  
  考察當前主流的分佈計算技術平臺,主要有OMG的CORBA、Sun的J2EE和Microsoft DNA 2000。它們都是支援伺服器端中介軟體技術開發的平臺,但都有其各自的特點,將分別闡述如下。
  
  (1)OMG的CORBA
  
  CORBA分佈計算技術是OMG組織基於眾多開放系統平臺廠商提交的分佈物件互操作內容的基礎上制定的公共物件請求代理體系規範。
  
  CORBA分佈計算技術,是由絕大多數分佈計算平臺廠商所支援和遵循的系統規範技術,具有模型完整、先進,獨立於系統平臺和開發語言,被支援程度廣泛的特點,已逐漸成為分佈計算技術的標準。COBRA標準主要分為3個層次:物件請求代理、公共物件服務和公共設施。最底層是物件請求代理ORB,規定了分佈物件的定義(介面)和語言對映,實現物件間的通訊和互操作,是分佈物件系統中的"軟匯流排";在ORB之上定義了很多公共服務,可以提供諸如併發服務、名字服務、事務(交易)服務、安全服務等各種各樣的服務;最上層的公共設施則定義了元件框架,提供可直接為業務物件使用的服務,規定業務物件有效協作所需的協定規則。目前,CORBA相容的分佈計算產品層出不窮,其中有中介軟體廠商的ORB產品,如BEAM3,IBM Component Broker,有分佈物件廠商推出的產品,如IONAObix和OOCObacus等。
  
  CORBA規範的近期發展,增加了面向Internet的特性,服務質量控制和CORBA構件模型(CORBA Component Model)。
  
  Internet整合特性包括了針對IIOP傳輸的防火牆(Firewall)和可內部操作的定義了URL命名格式的命名服務(Naming Service)。
  
  服務質量控制包括能夠具有質量控制的非同步訊息服務,一組針對嵌入系統的CORBA定義,一組關於實時CORBA與容錯CORBA的請求方案。
  
  CORBA CCM(CORBA Component Model)技術,是在支援POA的CORBA規範(版本2.3以後)基礎上,結合EJB當前規範的基礎上發展起來的。CORBA構件模型,是OMG組織制定的一個用於開發和配置分散式應用的伺服器端中介軟體模型規範,它主要包括如下三項內容:
  
  a、抽象構件模型,用以描述伺服器端構件結構及構件間互操作的結構;
  
  b、構件容器結構,用以提供通用的構件執行和管理環境,並支援對安全、事務、持久狀態等系統服務的整合;
  
  c、構件的配置和打包規範,CCM使用打包技術來管理構件的二進位制、多語言版本的可執行程式碼和配置資訊,並制定了構件包的具體內容和基於XML的文件內容標準。
  
  總之,CORBA的特點是大而全,互操作性和開放性非常好。CORBA的缺點是龐大而複雜,並且技術和標準的更新相對較慢,COBRA規範從1.0升級到2.0所花的時間非常短,而再往上的版本的釋出就相對十分緩慢了。在具體的應用中使用不是很多。
  
  (2)Sun的J2EE
  
  為了推動基於Java的伺服器端應用開發, Sun於是在1999年底推出了Java2技術及相關的J2EE規範,J2EE的目標是:提供平臺無關的、可移植的、支援併發訪問和安全的,完全基於Java的開發伺服器端中介軟體的標準。
  
  在J2EE中,Sun給出了完整的基於Java語言開發面向企業分佈應用規範,其中,在分散式互操作協議上,J2EE同時支援RMI和IIOP,而在伺服器端分散式應用的構造形式,則包括了Java Servlet、JSP(Java Server Page)、EJB等多種形式,以支援不同的業務需求,而且Java應用程式具有"Write once,run anywhere"的特性,使得J2EE技術在釋出計算領域得到了快速發展。
  
  J2EE簡化了構件可伸縮的、其於構件伺服器端應用的複雜度,雖然DNA 2000也一樣,但最大的區別是DNA 2000是一個產品,J2EE是一個規範,不同的廠家可以實現自己的符合J2EE規範的產品,J2EE規範,是眾多廠家參與制定的,它不為Sun所獨有,而且其支援跨平臺的開發,目前許多大的分佈計算平臺廠商都公開支援與J2EE相容技術。
  
  EJB是Sun推出的基於Java的伺服器端構件規範J2EE的一部分,自從J2EE推出之後,得到了廣泛的發展,已經成為應用伺服器端的標準技術。SunEJB技術是在Java Bean本地構件基礎上,發展的面向伺服器端分佈應用構件技術。它基於Java語言,提供了基於Java二進位制位元組程式碼的重用方式。EJB給出了系統的伺服器端分佈構件規範,這包括了構件、構件容器的介面規範以及構件打包、構件配置等的標準規範內容。EJB技術的推出,使得用Java基於構件方法開發伺服器端分散式應用成為可能。從企業應用多層結構的角度,EJB是業務邏輯層的中介軟體技術,與JavaBeans不同,它提供了事務處理的能力,自從三層結構提出以後,中間層,也就是業務邏輯層,是處理事務的核心,從資料儲存層分離,取代了儲存層的大部分地位。從分散式計算的角度,EJB像CORBA一樣,提供了分散式技術的基礎。提供了物件之間的通訊手段。從Internet技術應用的角度,EJB和Servlet,JSP一起成為新一代應用伺服器的技術標準,EJB中的Bean可以分為會話Bean和實體Bean,前者維護會話,後者處理事務,現在Servlet負責與客戶端通訊,訪問EJB,並把結果通過JSP產生頁面傳回客戶端。
  
  J2EE的優點是,伺服器市場的主流還是大型機和UNIX平臺,這意味著以Java開發構件,能夠做到"Write once,run anywhere",開發的應用可以配置到包括Windows平臺在內的任何伺服器端環境中去。
  
  (3)Microsoft DNA 2000
  
  Microsoft DNA 2000(Distributed interNet Applications)是Microsoft在推出Windows2000系列作業系統平臺基礎上,在擴充套件了分佈計算模型,以及改造Back Office系列伺服器端分佈計算產品後釋出的新的分佈計算體系結構和規範。
  
  在伺服器端,DNA 2000提供了ASP、COM、Cluster等的應用支援。目前,DNA2000在技術結構上有著巨大的優越性。一方面,由於Microsoft是作業系統平臺廠商,因此DNA 2000技術得到了底層作業系統平臺的強大支援;另一方面,由於Microsoft的作業系統平臺應用廣泛,支援該系統平臺的應用開發廠商數目眾多,因此在實際應用中,DNA 2000得到了眾多應用開發商的採用和支援。
  
  DNA 2000融合了當今最先進的分佈計算理論和思想,如事務處理、可伸縮性、非同步訊息佇列、叢集等內容。DNA使得開發可以基於Microsoft平臺的伺服器構件應用,其中,如資料庫事務服務、非同步通訊服務和安全服務等,都由底層的分佈物件系統提供。以Microsoft為首的DCOM/COM/COM+陣營,從DDE,OLE到ActiveX等,提供了中介軟體開發的基礎,如VC,VB,Delphi等都支援DCOM,包括OLE DB在內新的資料庫存取技術,隨著Windows2000的釋出,Microsoft的DCOM/COM/COM+技術,在DNA2000分佈計算結構基礎上,展現了一個全新的分佈構件應用模型。首先,DCOM/COM/COM+的構件仍然採用普通的COM(Component Object Model)模型。COM最初作為Microsoft桌面系統的構件技術,主要為本地的OLE應用服務,但是隨著Microsoft伺服器作業系統NT和DCOM的釋出,COM通過底層的遠端支援使得構件技術延伸到了分佈應用領域。DCOM/COM/COM+更將其擴充為面向伺服器端分佈應用的業務邏輯中介軟體。通過COM+的相關服務設施,如負載均衡、記憶體資料庫、物件池、構件管理與配置等等,DCOM/COM/COM+將COM、DCOM、MTS的功能有機地統一在一起,形成了一個概念、功能強的構件應用體系結構。而且,DNA2000是單一廠家提供的分佈物件構件模型,開發者使用的是同一廠家提供的系列開發工具,這比組合多家開發工具更有吸引力。
  
  但是它的不足是依賴於Microsoft的作業系統平臺,因而在其它開發系統平臺(如Unix、Linux)上不能發揮作用。
  
  2.相關性比較分析
  
  目前,針對上述的各種分佈計算平臺技術,都出現了相似且具有可比性的分散式構件,即CORBA CCM(CORBA Component Model)技術、SUN的EJB(Enterprise JavaBean)技術和DNA 2000中的COM/DCOM/COM+技術。
  
  對於以上三個分佈計算平臺,本文采用業界常用的做法從以下三個方面進行分析:
  
  整合性:整合性主要反映在基礎平臺對應用程式互操作能力的支援上。它要求分佈在不同機器平臺和作業系統上、採用不同的語言或者開發工具生成的各類商業應用必須能整合在一起,構成一個統一的企業計算框架。這一整合框架必須建立在網路的基礎之上,並且具備對於遺留應用的整合能力;
  
  可用性:要求所採用的軟體構件技術必須是成熟的技術,相應的產品也必須是成熟的產品,在至關重要的企業應用中能夠穩定、安全、可靠地執行。另外,由於資料庫在企業計算中扮演著重要角色,軟體構件技術應能與資料庫技術緊密整合;
  
  可擴充套件性:整合框架必須是可擴充套件的,能夠協調不同的設計模式和實現策略,可以根據企業計算的需求進行裁剪,並能迅速反應市場的變化和技術的發展趨勢。通過保證當前應用的可重用性,最大程度地保護企業的投資。
  
  下表從整合性,可用性,可擴充套件性三個方面,給出了上述三種主流分佈計算平臺的比較結果。
  

  雖然這三種平臺因為其形成的歷史背景和商業背景有所不同,各自有自己的側重和特點,其實在它們之間也有很大的相通性和互補性。