基於構件的軟體開發的發展方向 (轉)

worldblog發表於2007-12-10
基於構件的軟體開發的發展方向 (轉)[@more@]

基於構件的開發的發展方向


清華大學 謝曉芹 王克宏

 

構件技術應運而生

在資訊時代,新的技術革命正在改變我們日常生活的面貌,而這場技術革命的核心是軟體。在面向技術給解決軟體危機帶來曙光之時, 分散式計算的巨大壓力又給軟體開發提出了許多新的難題,使軟體開發仍處於高風險狀態。新的分散式網路計算要求軟體實現跨空間、跨時間、跨裝置、跨的共享,導致軟體在規模、複雜度、功能上的極大增長,迫使軟體要向異構協同工作、各層次上整合、可反覆重用的工業化道路上前進。為適應軟體的這種需求,新的軟體開發必須支援分散式計算、/結構、模組化和構件化整合,使軟體類似於一樣,可用不同的標準構件拼裝而成。具體地說可實現下列幾點要求: ● 提供一種手段,使應用軟體可用預先編好的、功能明確的產品部件定製而成, 並可用不同版本的部件實現應用的擴充套件和。 ● 利用模組化方法,將複雜的難以維護的系統分解為互相獨立、協同工作的部件,並努力使這些部件可反覆重用。 ● 突破時間、空間及不同硬體裝置的限制,利用客戶和軟體之間統一的介面實現跨平臺的互操作。 為滿足上述要求,軟體構件技術出現了。而構件重用的目標是達到需求、分析、設計、編碼、測試的重用。從此,一種影響軟體產業發展的新的軟體開發方法誕生了。 從抽象程度來看,物件導向技術已達到了類級重用(程式碼重用),它以類為封裝的單位。這樣的重用粒度還太小,不足以解決異構互操作和更高的重用。構件將抽象的程度提到一個更高的層次,它是對一組類的組合進行封裝,並代表完成一個或多個功能的特定服務,也為使用者提供了多個介面。整個構件隱藏了具體的實現,只用介面提供服務。這樣,在不同層次上, 構件均可以將底層的多個邏輯組合成高層次上的粒度更大的新構件,甚至直接封裝到一個系統,使模組的重用從程式碼級、物件級、架構級到系統級都可能實現,從而使軟體像硬體一樣,能任人裝配定製而成的夢想得以實現。近幾年來,構件技術的發展已證明了它的巨大威力,在這其中,標準和技術的突破,功不可沒! 至今, 構件技術已形成三個流派:Sun的Java平臺、的COM+、IBM的CORBA。 構件發展自律當先 基於構件的軟體開發技術近年來取得了突飛猛進的發展,這不僅對軟體產業的技術革新影響深遠,還將為許多其他領域帶來巨大的效益。早在1998年4月,在日本京都召開的基於構件的軟體開發(C)國際專題學術會議上達成了兩個共識: 1. 對於CBSD而言,物件技術並不是必需的,同時僅僅依靠物件技術也不能實現CBSD。 這似乎有些難以理解。物件技術僅僅是CBSD的開始,但是就物件技術本身而言,它並不能全面地表述CBSD所需的抽象概念,而且脫離物件技術,CBSD也完全可以實現。因此,對於CBSD而言,物件技術既不是必需的,僅有物件技術也是不夠的。CBSD將導致使用物件技術的系統設計方法、方法和組織形式的實質性變革。 具體地說,將構件看做是一個可替換的單元時,單純的物件技術就不夠了。構件的各種定義中都或多或少地強調了構件的一個特性:對上下文的依賴性。這一特夠透過在規範中定義一種“use”語句而實現,也就是對所需系統資源的一種宣告。儘管對這種方式很多人持有異議,他們認為使用這種“use”語句,意味著介面描述就是一種實現機制,而不是一種對實現方法的抽象,但是,物件技術卻根本不支援構件的這種特性,這樣不利於進行設計層的抽象,特別是在試圖使用已有的構件進行整合時,經常會遇到麻煩。 現在人們比較一致的觀點是將分散式物件技術當做是一種基礎設施,而把構件看做是能夠應用於不同的基礎設施的抽象和實現。 在實踐中人們也體會到這一點,如長事務的處理不能靠物件技術來解決。由於事務的原子性、一致性、隔離性和永續性的特點,不能把長事務簡單地看成一個物件,它是一連串處理步驟的序列。這也是企業應用軟體中常遇到的問題,目前一些伺服器上的軟體提供的事務服務,就是為了解決這個複雜的疑難問題。 2.構件離不開體系結構 由於發展CBSD的一個初衷是透過一種整合的開發方式來增強系統的靈活性,因此自然要考慮這種整合方式的可行性。然而,透過抽象介面來描述,已經超出了物件技術的能力。但是,對“”式構件的重用程度,與構件對一套預先定義的限制和約定的依賴程度有直接的關係。 大多數構件技術如、、CORBA等對於構件都有一定的限制。例如,儘管構件基礎設施對構件的介面有一定的訪問能力,但這種能力要求構件必須能夠實現一定的服務或遵循構件基礎設施所定義的一些規範。 許多專家認為,構件應當實現兩種介面:一種是功能性介面,能夠反映構件在系統中的角色;另一種是非功能性介面,能夠反映由底層的構件所定義的構件模型。非功能性介面描述了一種體系結構上的限制,這種限制允許CBS(components-based system)具有整合能力和其他的一些特性。所以,對構件概念的理解,必然與體系結構強加於構件的這些限制密切相關。 許多專家認為,儘管構件與其所屬的體系結構密切相關,但是上述的兩種介面仍然過於強調構件框架在軟體體系結構中的地位。而實際上,很多人都曾極力地尋求軟體體系結構和構件框架的區別。但是透過對體系結構的三種不同觀點的定義,保留構件框架概念的二義性: ● 執行期間:包括為基於構件的系統提供執行時服務的框架和模型。 ● 設計期間:包括對構件的特定觀點,如功能性介面和構件依賴性。 ● 整合期間:包括系統對各種構件進行整合時所需的各種因素,如生成器和一些構造期間的服務,一個構件框架可能就會提供這些服務。 在研討中出現的這些關於構件的更多特性,表明構件是一種設計階段的複雜實體,它包括抽象的概念和具體的實現。 因此,許多專家認為,使用現成構件的CBSD,把構件視為一種商業上的現成商品,在這種情況下,CBSD必須建立關於構件框架的行業規範。 構件影響不可小覷 要實現構件技術必須具備下列幾個條件: ● 有標準軟體體系結構,保證構件間通訊統一, 實現同步和非同步操作控制,突破本地空間限制,充分利用網路環境。 ● 構件有標準介面, 保證系統可分解成多個功能獨立的單元, 用構件組裝而成。 ● 構件獨立於語言。 ● 構件提供版本相容, 來實現應用系統的擴充套件和更新。 總之,CBSD為軟體開發技術帶來了新的生機,其影響力正在顯現。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-991053/,如需轉載,請註明出處,否則將追究法律責任。

相關文章