【摘 要】基于CBSE技術的發(fā)展,在SOFA、Fractal等學術型構件模型中對各種先進功能與特性的支持也較為成熟,但在主流工業(yè)構件模型的技術文檔中鮮有對這些先進技術的應用。本文分析了幾種學術模型的性能與發(fā)展,并以兩種較為成熟的學術構件模型SOFA、Fractal為基礎,對比它們與主流工業(yè)模型之間的差異并分析其原因,對構件技術更進一步的發(fā)展進行展望,以期促使CBSE技術得到更好更快的發(fā)展。
【關鍵詞】CBSE 學術模型 工業(yè)模型
一、引言
在國外以可重用構件組成大規(guī)模的企業(yè)應用的方式已發(fā)展為主流的軟件技術。構件通常被認為由黑盒的功能實現(xiàn)及外部接口組成。比較其他的軟件方法,基于構件的方法可以快速,靈活的建立軟件應用,代碼重用性高,實用性強。構件模型作為CBSE的核心技術,在國內外構件技術的研究發(fā)展中,都起到了十分重要的作用。
本文將對部分構件模型發(fā)展簡要介紹的基礎上,對在功能與實現(xiàn)上都有一定突出之處的SOFA與Fractal兩種學術構件模型與主流工業(yè)模型進行一些比較分析。
二、構件模型的分類
構件由不同的認知角度有多種定義,普遍接受的一種是:構件是能夠提供相對獨立服務的計算單元,具有規(guī)范的接口和顯式的環(huán)境依賴,且能夠被第三方組合。結合已有的研究文獻,我們可以看出構件模型研究的兩個關鍵問題在于內部實現(xiàn)與外部接口兩部分,所以我們基于這兩方面實現(xiàn)技術的不同,可以將構件模型按接口的不同類型與構件不同的組合方式進行分類。此外從構件生產與組裝的角度看,構件可模型以分為參考模型,描述模型以及實現(xiàn)模型等三類。我們還可以從構件模型在學術界和產業(yè)界不同的地位簡單地劃分為學術模型和工業(yè)模型,當然這個劃分只是說明該模型在某一應用領域作用更為突出。構件模型的分類方法還有很多,在本文中對這三種構件模型的分類方法有涉及之處。在學術模型中我們主要涉及經典的SOFA、SOFA2.0、Fractal等模型;在工業(yè)模型領域,由公認的CORBA,EJB作為代表。
三、學術構件模型
學術模型的發(fā)展與研究最終也是為工業(yè)的發(fā)展而努力。經典的工業(yè)模型如EJB,CCM等基于水平結構的構件模型,成熟性高,運行穩(wěn)定,但對許多先進特性支持不足。相對來說在學術模型研究中,構件模型通常提供先進的特性,但事物的影響都具有多面性,功能的先進也一定程度上導致了結構復雜性的增長,實現(xiàn)難度的增加以及運行效率的降低。
在SOFA和Fractal這兩種相似的學術構件模型中,都一定程度上實現(xiàn)了動態(tài)配置,并進一步豐富了構件與連接子的屬性。事實上,F(xiàn)ractal技術標準中并沒有連接子的定義,它定義了一種只用于控制邏輯,實現(xiàn)類似連接子功能的構件。Fractal模型的接口有內外之分,限制構件內部不與構件外部直接通信。這種模型在運行時系統(tǒng)的實現(xiàn)中,控制邏輯的構件與普通構件間易于混淆,框架復雜,配置與調試都比較復雜,系統(tǒng)運行的穩(wěn)定程度也不高。它還利用ADL對其架構進行形式化描述,對動態(tài)配置支持良好,并分別用JAVA、C++等多種代碼實現(xiàn)了運行時的環(huán)境。SOFA基于連接子的通信,復合構件的內部子構件關系是一種可視狀態(tài)。它用自己定義的ADL描述其框架,但對動態(tài)配置的支持僅限于單個構件的更新,不支持框架的動態(tài)改變,對通信方式的支持也不夠多樣化。近幾年在SOFA構件模型的發(fā)展中,研究出升級版SOFA2.0構件模型,它采取了元模型的策略,對框架的動態(tài)演化也支持到基于模板的程度,通信方式有更豐富的支持,對連接子的控制邏輯劃分更清楚,運行時系統(tǒng)也更穩(wěn)定高效。SOFA及其升級版SOFA2.0都有多種運行時環(huán)境的支持。
四、與工業(yè)構件模型的比較
構件模型對于構件間的連接通信,最初表現(xiàn)在功能接口的顯示描述上,EJB是一種只提供功能接口的水平層次構件模型。這種僅僅顯示功能接口的特征對構件間組合時所需要的信息提供不足,對開發(fā)人員的使用支持不夠好。在CORBA技術的發(fā)展中,從僅顯示提供功能接口發(fā)展到不僅需求接口顯式描述,而且升級到一種基于總線的分布式結構,獨立于軟硬件平臺以及實現(xiàn)語言,實現(xiàn)了構件的即插即用。
在學術模型中,構件接口的描述信息比工業(yè)模型的更豐富。第三小節(jié)中提到構件的分層結構帶來了優(yōu)點的同時使構件間的通信也更為復雜,事實上在SOFA2.0中針對這一情況對復合構件之間及不同層次間的通信都有限制。SOFA2.0中使用連接子實現(xiàn)接口適配和數(shù)據(jù)轉換等功能,使表面上并不兼容的構件也能進行組合。Fractal中也是采用了類似功能。在學術模型這種采用連接子的分層結構中,基于連接子的通信可以更容易的對不同類型的構件間通信進行支持,只用在接口上實現(xiàn)適配即可,不必對構件本身進行改動(而不只是傳統(tǒng)的方法調用,共享內存等)。在SOFA與Fractal模型中基于連接子的功能,還實現(xiàn)了對構件組合與通信的驗證。同時學術構件的功能邏輯與自身控制邏輯更加解耦,同時也擁有了更強的擴展性。結構復雜,功能豐富(如動態(tài)配置等)的同時也使應用系統(tǒng)的實現(xiàn)相對更復雜一些。
五、結束語
學術的發(fā)展由工業(yè)需求促進,學術研究進而促進工業(yè)進步,兩者之間是相輔相成的關系。本文通過分析國外較為熱點的SOFA、Fractal兩種學術模型,與當前主流工業(yè)模型相對比,分析兩類模型上的先進性與不足,為構件的進一步發(fā)展起到鋪墊作用。
參考文獻:
[1]呂建,馬曉星,陶先平,徐鋒,胡昊.網構軟件的研究與進展.中國科學E輯,2006,
[2]Petr Hnětynka1, Franti?ek Plá?il1,Dynamic Reconfiguration and Access to Services in Hierarchical Component Models.
[3] 陳波,李舟軍,陳火旺.構件模型研究綜述.計算機工程與科學.2008(30)