構(gòu)件技術與中間件
當前位置:點晴教程→知識管理交流
→『 企業(yè)管理交流 』
[p]引言 [br][br] 網(wǎng)絡計算帶領軟件產(chǎn)業(yè)進入了一個新的時代,商機無限,但同時挑戰(zhàn)也無限。以電子商務為代表的技術潮流正將大到企業(yè)計算、小到個人數(shù)字代理的各種應用,在世界范圍內(nèi)聯(lián)結(jié)起來,軟件制造業(yè)正面臨著一些新的課題,如復雜的分布環(huán)境、靈活的應用模式、廣泛的包容性等,傳統(tǒng)的軟件設計思想已遠遠不夠。 [br][br] 在這一背景下,構(gòu)件技術應運而生,并逐漸炙手可熱。不同于oo技術強調(diào)對個體的抽象,構(gòu)件則更推廣了對象封裝的內(nèi)涵,側(cè)重于復雜系統(tǒng)中組成部分的協(xié)調(diào)關系,強調(diào)實體在環(huán)境中的存在形式,形成一個專門的技術領域。 [br][br] 中間件作為存在于系統(tǒng)軟件與應用之間的特殊層次,抽象了典型的應用模式,從而使應用軟件制造者可以更多地將思路放在業(yè)務邏輯中,并基于標準的形式進行開發(fā),這樣就使軟件構(gòu)架化成為可能。一些工業(yè)標準的推出,進一步使中間件成為可復用構(gòu)件的運行框架,加速了軟件復用的現(xiàn)實化進程。 [br][br] 本文從構(gòu)件在現(xiàn)實軟件發(fā)展中的地位展開,分析了中間件在系統(tǒng)組織層次中所起的作用,闡述了構(gòu)件化思想對中間件本身的促進作用,提出了一種構(gòu)件化中間件的發(fā)展模式。 [br][br][br]構(gòu)件技術的基本思想 [br][br] oo技術是在"數(shù)據(jù)+算法"的基礎上提升了對事物的認識方法,對象的概念符合人們認識世界的習慣。而構(gòu)件的思想則更多地將重點從建模本身發(fā)展到對軟件生產(chǎn)的考慮,即構(gòu)件可以在應用領域的軟件生產(chǎn)中作為零件納入新的體系中被重用。因此,構(gòu)件是oo思想的沿襲和擴展,認識事物的角度從對象個體本身上升到個體在群體中的作用。 [br][br] 構(gòu)件有幾個基本屬性: [br][br]1、構(gòu)件是可獨立配置的單元,因此構(gòu)件必須自包容。 [br]2、構(gòu)件強調(diào)與環(huán)境和其他構(gòu)件的分離,因此構(gòu)件的實現(xiàn)是嚴格封裝的,外界沒機會或沒必要知道構(gòu)件內(nèi)部的實現(xiàn)細節(jié)。 [br]3、構(gòu)件可以在適當?shù)沫h(huán)境中被復合使用,因此構(gòu)件需要提供清楚的接口規(guī)范,可以與環(huán)境交互。 [br]4、構(gòu)件不應當是持續(xù)的,即構(gòu)件沒有個體特有的屬性,理解為構(gòu)件不應當與自身副本區(qū)別,在任 [br]何環(huán)境中,最多僅有特定構(gòu)件的一份副本。 [br][br] 可以看出,構(gòu)件沿襲了對象的封裝特性,但同時并不局限在一個對象,其內(nèi)部可以封裝一個或多個類、原型對象甚至過程,結(jié)構(gòu)是靈活的。構(gòu)件突出了自包容和被包容的特性,這就是作為軟件生產(chǎn)線上作為零件的必要特征。 [br][br] 構(gòu)件技術的關鍵點涉及構(gòu)件做什么、構(gòu)件交互的規(guī)則、構(gòu)件存在的環(huán)境等,相應在現(xiàn)實中有各種支撐性的技術,如: [br]1、構(gòu)件模型,研究構(gòu)件的本質(zhì)特征及構(gòu)件間的關系; [br]2、構(gòu)件描述語言,以構(gòu)件模型為基礎,解決構(gòu)件的精確描述、理解和組裝問題; [br]3、構(gòu)件分類與檢索,研究構(gòu)件的分類策略、組織模式及檢索策略,建立構(gòu)件庫系統(tǒng),支持構(gòu)件的有效管理; [br]4、構(gòu)件復合組裝,包括源代碼級的組裝和基于構(gòu)件對象互操作性的運行級組裝; [br]5、標準化,包括構(gòu)件模型的標準化和構(gòu)件庫的標準化; [br]6、軟件構(gòu)架,研究如何快速、可靠地應用可復用構(gòu)件系統(tǒng)進行系統(tǒng)構(gòu)造的方式,著重于軟件系統(tǒng)自身的整體結(jié)構(gòu)和構(gòu)件間的互聯(lián)。 [br][br][br]中間件:構(gòu)件存在的基礎 [br][br] 構(gòu)件技術在最初時更多是作為一種思想存在,進而才在一些關鍵的環(huán)節(jié)上發(fā)展出解決問題的技術分支。構(gòu)件的存在某種程度上極大地依賴了構(gòu)架技術,或環(huán)境、基礎設施、計算平臺,只有在適當?shù)臉?gòu)架中,軟件才有可能被抽象和隔離,最終成為構(gòu)件。因此,單獨討論構(gòu)件是抽象而空洞的。構(gòu)架不是操作系統(tǒng)、數(shù)據(jù)庫或網(wǎng)絡協(xié)議,也不完全是應用,而是在某種特定意義上的構(gòu)件運行容器,層次上界于應用和基礎設施之間。 [br][br] 中間件,從本質(zhì)上是對分布式應用的抽象,因而拋開了與應用相關的業(yè)務邏輯的細節(jié),保留了典型的分布交互模式的關鍵特征。經(jīng)過抽象,將紛繁復雜的分布式系統(tǒng)經(jīng)過提煉和必要的隔離后,以統(tǒng)一的層面形式呈現(xiàn)給應用。應用在中間件提供的環(huán)境中可以更好地集中于業(yè)務邏輯上,并以構(gòu)件化的形式存在,最終自然而然地在異構(gòu)環(huán)境中實現(xiàn)良好的協(xié)同工作。 [br][br] 不難看出,中間件與構(gòu)架實際是從兩種不同的角度看待軟件的中間層次,可以這樣說:中間件就是構(gòu)架,或構(gòu)件模型的具體實現(xiàn),是構(gòu)件軟件存在的基礎,中間件促進了構(gòu)件化軟件。從下面列舉的一些中間件的特征,可以看出,中間件與構(gòu)架本質(zhì)上是一致的。 [br][br]面向需求的構(gòu)件應用 [br][br] 基于構(gòu)架的構(gòu)件化軟件開發(fā)應當是面向需求的,即設計者集中精力于業(yè)務邏輯本身,而不必為分布式應用中的通信、效率、互操作、可靠性、容錯性、完整性等大量與業(yè)務無直接關系但又非常重要的問題,而耗費大量的精力,理想的構(gòu)架在這些方面應當為構(gòu)件軟件提供良好的運行環(huán)境。事實上,這些正是中間件所要解決的問題,因此,基于中間件開發(fā)的應用真正是面向需求的,從本質(zhì)上符合構(gòu)件化設計的思想。 [br][br]使業(yè)務邏輯容易劃分 [br][br] 服務器構(gòu)件要求有很好的業(yè)務自包容性,應用開發(fā)者可以按照不同的業(yè)務進行功能的劃分,體現(xiàn)為不同的接口或交互模式。針對每種業(yè)務的設計和開發(fā)是可以獨立進行的。 [br][br] 構(gòu)架和中間件有同樣的目標:提供業(yè)務的分隔和包容性。例如:消息中間件規(guī)定了消息是有屬性的,其中部分屬性則與業(yè)務的劃分有關,某種服務構(gòu)件只進行相應類型的消息交互。至于如何保證業(yè)務的分類運行與管理,則是中間件的事情。 [br][br] 因此可以說,中間件和構(gòu)架都實現(xiàn)了構(gòu)件向應用的集成。 [br][br][br]構(gòu)件的封裝、設計與實現(xiàn)隔離 [br][br] 構(gòu)件對外發(fā)生作用或構(gòu)件間的交互,都是通過規(guī)范定義的接口進行,構(gòu)件使用者只需要知道構(gòu)件的接口,而不關心其內(nèi)部實現(xiàn),這是設計與實現(xiàn)分開的關鍵。構(gòu)架就應當提供構(gòu)件交互的規(guī)則,并基于這些規(guī)則實現(xiàn)類似容器的標準環(huán)境。 [br][br] 中間件在分布交互模式上都規(guī)定了接口(或類似)機制,如idl就是描述接口的語言規(guī)范,從早期的dce到現(xiàn)在的corba、dcom、java rmi等都使用idl描述接口,所不同的只是語言規(guī)范。客戶訪問服務(或?qū)ο蠓椒ǎ┚ㄟ^接口進行,至于服務采用怎樣的內(nèi)部實現(xiàn)、基于怎樣的語言、甚至怎樣的操作系統(tǒng)、數(shù)據(jù)庫,開發(fā)者都不用關心。類似地,消息隊列也可作為分布交互的手段,消息的語法和語義定義保證了使用與實現(xiàn)的分離,使用消息隊列的客戶或服務是不依賴于對方的。既然中間件能隔離設計與實現(xiàn),能在分布的環(huán)境中封裝實現(xiàn)的細節(jié),那么,基于中間件的構(gòu)件開發(fā)也就是可能的。 [br][br]隔離應用構(gòu)件與復雜系統(tǒng)資源 [br][br] 構(gòu)架很重要的一個功能就是將系統(tǒng)資源與應用構(gòu)件隔離,這是保證構(gòu)件可重用甚至"即插即用"的基礎,與中間件的意圖同樣是一致的。中間件最大的優(yōu)勢之一就是屏蔽多樣的系統(tǒng)資源,保證良好的互操作性。應用構(gòu)件開發(fā)者只需要按照中間件規(guī)定的模式進行設計開發(fā),不必考慮下層的系統(tǒng)平臺。因此可以說,中間件真正提供了與環(huán)境隔離的構(gòu)件開發(fā)模式。 [br][br]符合標準的交互模型 [br][br] 構(gòu)架不是什么具體軟件,而是抽象的模型,但模型中應當定義一些可操作的成分,如標準的協(xié)議。標準的中間件則實現(xiàn)了構(gòu)架的模型,實現(xiàn)了標準的協(xié)議,如基于corba的對象中間件使用的是corba規(guī)范作為構(gòu)架模型,具體則實現(xiàn)了可互操作的giop協(xié)議,映射到tcp/ip為iiop協(xié)議,定義了cdr數(shù)據(jù)表示語法、數(shù)據(jù)包格式、消息語義等內(nèi)容。因此,基于中間件的構(gòu)件是符合標準模型的。 [br][br]軟件重用 [br][br] 軟件重用是構(gòu)件化軟件生產(chǎn)的根本目標之一,中間件提供了構(gòu)件封裝、構(gòu)件交互規(guī)則、構(gòu)件與環(huán)境的隔離及構(gòu)架設施等機制,這些都為軟件重用提供了方便的解決方案。 [br][br] 另外,通過類似應用橋的機制,中間件可以建立訪問過去應用的通道;或者在新的中間件體系中建立特殊的運行容器,封裝以往的應用,從而最終做到對應用遺產(chǎn)的繼承性重用。 [br][br]提供對應用構(gòu)件的管理 [br][br] 基于中間件的構(gòu)件軟件可以方便地進行管理,因為構(gòu)件總可以通過方便的標識機制進行劃分,還可以使用構(gòu)件庫機制配合一些管理規(guī)則。例如,微軟的com就利用windows系統(tǒng)注冊表配合幾種唯一標識構(gòu)件的方式,實現(xiàn)構(gòu)件的登記、注銷、定位。corba規(guī)范中有接口池、實現(xiàn)池等規(guī)范定義,配合應用登記管理的機制,也能對應用構(gòu)件實施管理。 [br][br] 總之不難得出結(jié)論,基于中間件開發(fā)的應用是構(gòu)件化的,中間件提供了構(gòu)件的體系結(jié)構(gòu),大大提高了應用構(gòu)件生產(chǎn)的效率和質(zhì)量。 [br][br][br]構(gòu)件思想對中間件的作用 [br][br] 中間件本身作為軟件產(chǎn)品,正處于方興未艾之際,因此本身也可以借鑒構(gòu)件思想,構(gòu)件化的軟件開發(fā)對中間件同樣適用。 [br][br] 首先,中間件作為分布式計算平臺,涉及資源多樣,包括各種操作系統(tǒng)、數(shù)據(jù)庫、網(wǎng)絡協(xié)議甚至語言,其目標是在分布的環(huán)境中統(tǒng)一使用這些資源。因此,可以建立針對這些資源的構(gòu)件庫,以動態(tài)、靈活的方式進行構(gòu)件的裝配,如針對不同的面向連接的網(wǎng)絡協(xié)議,可使用統(tǒng)一語義的網(wǎng)絡驅(qū)動器構(gòu)件,最靈活的情況是根據(jù)配置動態(tài)綁定。 [br][br] 其次,中間件的一個重要的設計目標是互操作,而互操作的關鍵是有清晰而與實現(xiàn)無關的接口。因此在互操作的邊界上,必須將構(gòu)件的思想融入設計中。 [br][br] 再次,中間件的應用范圍越來越廣,但應用有不同的需要,不同的業(yè)務特點,如果僅僅依靠固定的模式去套用,顯然不合適。例如,多數(shù)mis應用并不需要交易管理;有些分布應用也沒有oltp的特點;金融應用中安全就顯得十分關鍵;拓展到web的應用則特別要求精干、安全和適應性強。因此,中間件必須設計成可伸縮的體系,由一些可替換的構(gòu)件組成,如某些重于可靠,某些強調(diào)實時,某些則需要小巧。產(chǎn)品只有這種定位,才能在變化迅速的市場上總是適應需求,立于不敗之地。 [br][br] 第四,中間件不是最終的應用,需要服務于應用開發(fā),但可以面向典型業(yè)務的模型,以方便應用的開發(fā),這些模型可以以構(gòu)件的形式作為產(chǎn)品提供。例如,corba服務和設施就是一些典型應用的抽象體現(xiàn),使用這些服務的構(gòu)件,應用可以大大減少開發(fā)規(guī)模,并獲得良好的效果。以構(gòu)架化技術術語講,就是領域建模。 [br][br] 第五,成功的商業(yè)軟件都是非常便于管理的,同樣中間件也有可配置性的需要,管理整個系統(tǒng)是個復雜的行為,但如果轉(zhuǎn)化為若干簡單行為的統(tǒng)一,對開發(fā)就很簡單而明確。事實上,標準的網(wǎng)絡管理協(xié)議正是蘊涵了這種思想。基于構(gòu)件化開發(fā)的中間件也一樣,各個構(gòu)件自身是獨立配置的單元,只需進行集成就可達到系統(tǒng)的管理目標。 [br][br] 因此,構(gòu)件化的軟件設計思想在中間件發(fā)展中起到了重要的作用,可以預見,構(gòu)件化的中間件在今后市場上是有強大生命力的。 [br][br][br]結(jié)束語 [br][br] 構(gòu)件是一種前沿的軟件設計思想,對整個軟件行業(yè)的發(fā)展有著至關重要的推動作用。而中間件作為應用軟件系統(tǒng)集成的關鍵技術,保證了構(gòu)件化思想的實施,并為構(gòu)件提供了真正的運行空間。中間件領域工業(yè)化標準的制定、統(tǒng)一及實現(xiàn),使基于構(gòu)件的應用開發(fā)成為可能。反過來,構(gòu)件對新一代中間件產(chǎn)品中也起到促進作用。 [br][br] 回顧經(jīng)典的工業(yè)化革命,不難得出一些有益的啟示:功能再復雜的產(chǎn)品都是由大量標準的零件(盡管零件可能只在本領域內(nèi)有用)組成,零件在生產(chǎn)線上裝配成一個成品,所有零件在成品中共同發(fā)揮作用。分工越細致、專業(yè)生產(chǎn)的程度越高,總體生產(chǎn)效率就越高。而構(gòu)件技術所扮演的角色就是把零件、生產(chǎn)線和裝配運行的概念運用在在軟件工業(yè)中,可以預見,軟構(gòu)件技術是軟件產(chǎn)業(yè)化革命的必然發(fā)展趨勢。[/p]
該文章在 2010/5/12 23:46:26 編輯過 |
關鍵字查詢
相關文章
正在查詢... |